Sprints 46-58 implement the cross-language porting foundation: language-to-IR adapters, equivalence checking, gate validation, legacy ingestion, managed/dynamic families, low-level/logic-actor semantics, debug workflow tooling, AST-native family tools, Rust/CPP raising tools, system-level orchestration, query family, and porting gates. Sprint 59 adds the governance layer (policy packs, review boards, waiver packets, ambiguity triage, decision ledger) with the whetstone_review_porting_decision MCP tool. Also includes: sprint plans 46-130, MCP taskitem pipeline scripts, CLAUDE.md, docs, and full test matrix (steps 689-828). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
239 lines
17 KiB
JSON
239 lines
17 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(ls:*)",
|
|
"Bash(git add:*)",
|
|
"Bash(git commit -m \"$\\(cat <<''EOF''\nAdd textgen definitions for all Phase 1 AST concepts\n\n- Added ConceptTextGenDeclaration nodes for all 38 Phase 1 concepts\n- Includes textgen rules for core concepts \\(Module, Function, Parameter, Variable\\)\n- Textgen rules for statements \\(Block, Assignment, If, Loops, Return, etc.\\)\n- Textgen rules for expressions \\(BinaryOp, UnaryOp, FunctionCall, Literals, etc.\\)\n- Textgen rules for types \\(Primitive, List, Set, Map, Tuple, Array, Optional, Custom\\)\n- Textgen rules for annotations \\(Annotation, DerefStrategy, OptimizationLock, LangSpecific\\)\n\nCo-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>\nEOF\n\\)\")",
|
|
"Bash(git commit:*)",
|
|
"WebFetch(domain:raw.githubusercontent.com)",
|
|
"WebSearch",
|
|
"WebFetch(domain:mps-support.jetbrains.com)",
|
|
"WebFetch(domain:www.jetbrains.com)",
|
|
"Bash(wc:*)",
|
|
"Bash(python3:*)",
|
|
"Bash(python:*)",
|
|
"WebFetch(domain:github.com)",
|
|
"WebFetch(domain:java.hotexamples.com)",
|
|
"Bash(dir:*)",
|
|
"Bash(cmake:*)",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Debug\\\\step1_test.exe\")",
|
|
"Bash(/e/Whetstone_DSL/editor/build/step1_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/step2_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/step3_test.exe)",
|
|
"Bash(build/step3_test.exe)",
|
|
"Bash(build/step4_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/step5_test.exe)",
|
|
"Bash(git checkout:*)",
|
|
"Bash(g++:*)",
|
|
"Bash(/e/vcpkg/vcpkg.exe list:*)",
|
|
"Bash(powershell:*)",
|
|
"Bash(E:\\\\vcpkg\\\\vcpkg.exe search:*)",
|
|
"Bash(findstr:*)",
|
|
"Bash(\"E:\\\\vcpkg\\\\vcpkg.exe\" list)",
|
|
"Bash(git status:*)",
|
|
"Bash(\"E:\\\\vcpkg\\\\vcpkg.exe\" install:*)",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\step39_test.exe\")",
|
|
"Bash(where:*)",
|
|
"Bash(winget install:*)",
|
|
"Bash(\"C:\\\\Program Files \\(x86\\)\\\\Inno Setup 6\\\\ISCC.exe\" \"E:\\\\Whetstone_DSL\\\\installer\\\\windows\\\\setup.iss\")",
|
|
"Bash(reg query:*)",
|
|
"Bash(\"C:\\\\Users\\\\Bill\\\\AppData\\\\Local\\\\Programs\\\\Inno Setup 6\\\\ISCC.exe\" \"E:\\\\Whetstone_DSL\\\\installer\\\\windows\\\\setup.iss\")",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\installer\\\\WhetstoneEditor-0.1.0-setup.exe\")",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\whetstone_editor.exe\")",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\step60_test.exe\")",
|
|
"Bash(^d \")",
|
|
"Bash(vcpkg list:*)",
|
|
"Bash(E:\\\\vcpkg\\\\vcpkg.exe list:*)",
|
|
"Bash(cmd /c \"E:\\\\vcpkg\\\\vcpkg.exe list 2>NUL | findstr tree-sitter\")",
|
|
"Bash(cmd /c \"dir E:\\\\vcpkg\\\\vcpkg.exe 2>NUL && echo FOUND || echo NOT_FOUND\")",
|
|
"Bash(cmd /c \"if exist E:\\\\vcpkg\\\\vcpkg.exe \\(echo FOUND\\) else \\(echo NOT_FOUND\\)\")",
|
|
"Bash(cmd /c \"where vcpkg 2>&1\")",
|
|
"Bash(cmd /c \"echo %VCPKG_ROOT%\")",
|
|
"Bash(gh release view:*)",
|
|
"WebFetch(domain:api.github.com)",
|
|
"Bash(\"C:\\\\Program Files\\\\CMake\\\\bin\\\\cmake.exe\" --version)",
|
|
"Bash(cl.exe:*)",
|
|
"Bash(\"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\VsDevCmd.bat\" -arch=amd64)",
|
|
"Bash(cmd /c \"\"\"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\VsDevCmd.bat\"\" -arch=amd64 >nul 2>&1 && where cl.exe\")",
|
|
"Bash(cmd /c \"call \"\"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\VC\\\\Auxiliary\\\\Build\\\\vcvars64.bat\"\" >nul 2>&1 && where cl.exe\")",
|
|
"Bash(cmd.exe /c:*)",
|
|
"Bash(VCPKG_ROOT=\"E:/Whetstone_DSL/editor/build/vcpkg_installed/x64-windows\":*)",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\":*)",
|
|
"Bash(git config:*)",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\" --build:*)",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\" --build \"E:/Whetstone_DSL/editor/build\" --target step51_test --config Release)",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\" --build \"E:/Whetstone_DSL/editor/build\" --target step53_test --config Release)",
|
|
"Bash(\"E:/Whetstone_DSL/editor/build/Release/step50_test.exe\")",
|
|
"Bash(\"E:/Whetstone_DSL/editor/build/Release/step51_test.exe\")",
|
|
"Bash(\"E:/Whetstone_DSL/editor/build/Release/step53_test.exe\")",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\" --build \"E:/Whetstone_DSL/editor/build\" --target step49_test --config Release)",
|
|
"Bash(\"E:/Whetstone_DSL/editor/build/Release/step49_test.exe\")",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\" --build \"E:/Whetstone_DSL/editor/build\" --target step60_test --config Release)",
|
|
"Bash(\"E:/Whetstone_DSL/editor/build/Release/step60_test.exe\")",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\" --build \"E:/Whetstone_DSL/editor/build\" --target step52_test --config Release)",
|
|
"Bash(\"E:/Whetstone_DSL/editor/build/Release/step52_test.exe\")",
|
|
"Bash(\"C:/Program Files/CMake/bin/cmake.exe\" --build \"E:/Whetstone_DSL/editor/build\" --target step54_test --config Release)",
|
|
"Bash(\"E:/Whetstone_DSL/editor/build/Release/step54_test.exe\")",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\step54_test.exe\")",
|
|
"Bash(./vcpkg search:*)",
|
|
"Bash(./Release/step59_test.exe:*)",
|
|
"Bash(./Release/step60_test.exe:*)",
|
|
"Bash(./Release/step61_test.exe:*)",
|
|
"Bash(./Release/step62_test.exe:*)",
|
|
"Bash(./Release/step63_test.exe:*)",
|
|
"Bash(./Release/step64_test.exe:*)",
|
|
"Bash(./Release/step65_test.exe:*)",
|
|
"Bash(powershell.exe:*)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step68_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step69_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step70_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step71_test.exe)",
|
|
"Bash(for exe in Release/step68_test.exe Release/step69_test.exe Release/step70_test.exe Release/step71_test.exe)",
|
|
"Bash(./$exe)",
|
|
"Bash(done)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step73_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step75_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step72_test.exe)",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step74_test.exe)",
|
|
"Bash(for exe in Release/step72_test.exe Release/step73_test.exe Release/step74_test.exe Release/step75_test.exe)",
|
|
"Bash(start \"\" \"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\whetstone_editor.exe\")",
|
|
"Bash(/e/Whetstone_DSL/editor/build/Release/step76_test.exe:*)",
|
|
"Bash(git -C \"E:\\\\Whetstone_DSL\" log --oneline -20)",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\step40_test.exe\")",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\step90_test.exe\")",
|
|
"Bash(gh api:*)",
|
|
"Bash(\"E:\\\\Whetstone_DSL\\\\editor\\\\build\\\\Release\\\\step115_test.exe\")",
|
|
"Bash(git stash:*)",
|
|
"Bash(E:/Whetstone_DSL/editor/build/Release/step40_test.exe:*)",
|
|
"Bash(E:/Whetstone_DSL/editor/build/Release/step90_test.exe:*)",
|
|
"Bash(E:/Whetstone_DSL/editor/build/Release/step115_test.exe:*)",
|
|
"Bash(E:/Whetstone_DSL/editor/build/Release/step120_test.exe:*)",
|
|
"Bash(find:*)",
|
|
"Bash(build/Release/step206_test.exe)",
|
|
"Bash(build/Release/step201_test.exe)",
|
|
"Bash(./step201_test.exe:*)",
|
|
"Bash(./step206_test.exe)",
|
|
"Bash(./step213_test.exe:*)",
|
|
"Bash(./build/Debug/step206_test.exe)",
|
|
"Bash(dpkg:*)",
|
|
"Bash(pkg-config:*)",
|
|
"Bash(ldd:*)",
|
|
"Bash(echo:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build/step245_test:*)",
|
|
"WebFetch(domain:www.mcpevals.io)",
|
|
"Bash(./step246_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build/step246_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build/whetstone_mcp:*)",
|
|
"Bash(make:*)",
|
|
"Bash(./step247_test:*)",
|
|
"Bash(git push:*)",
|
|
"Bash(./step248_test:*)",
|
|
"Bash(grep:*)",
|
|
"Bash(./step249_test)",
|
|
"Bash(./step245_test)",
|
|
"Bash(./step250_test:*)",
|
|
"Bash(./step251_test:*)",
|
|
"Bash(./step252_test:*)",
|
|
"Bash(./step253_test:*)",
|
|
"Bash(./step254_test:*)",
|
|
"Bash(./step255_test:*)",
|
|
"Bash(./step257_test:*)",
|
|
"Bash(./step258_test:*)",
|
|
"Bash(./step259_test:*)",
|
|
"Bash(./step260_test:*)",
|
|
"Bash(./step261_test:*)",
|
|
"Bash(./step262_test:*)",
|
|
"Bash(./step263_test:*)",
|
|
"Bash(./step264_test:*)",
|
|
"Bash(./step265_test:*)",
|
|
"Bash(./step266_test:*)",
|
|
"Bash(/tmp/min_test)",
|
|
"Bash(gdb:*)",
|
|
"Bash(./step267_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build/step267_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build/step268_test:*)",
|
|
"Bash(./step268_test:*)",
|
|
"Bash(./step269_test:*)",
|
|
"Bash(./vcpkg install:*)",
|
|
"Bash(./step270_test:*)",
|
|
"Bash(./step271_test:*)",
|
|
"Bash(./step272_test:*)",
|
|
"Bash(./step273_test:*)",
|
|
"Bash(./step274_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step272_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step273_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step274_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step275_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step276_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step277_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step267_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step268_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step271_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step278_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step279_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step280_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step281_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step282_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step283_test)",
|
|
"Bash(./build-native/step284_test:*)",
|
|
"Bash(./build-native/step285_test:*)",
|
|
"Bash(for t in 284 285 286 287 288 289)",
|
|
"Bash(build-native/step$t_test)",
|
|
"Bash(for t in 285 286 287 288 289)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step$t_test)",
|
|
"Bash(do cmake --build build-native --target step$t_test)",
|
|
"Bash(sort:*)",
|
|
"Bash(./step290_test:*)",
|
|
"Bash(./step291_test:*)",
|
|
"Bash(./step292_test:*)",
|
|
"Bash(./step293_test:*)",
|
|
"Bash(./step294_test:*)",
|
|
"Bash(./step295_test:*)",
|
|
"Bash(./step296_test:*)",
|
|
"Bash(./step297_test:*)",
|
|
"Bash(./step298_test:*)",
|
|
"Bash(./step299_test:*)",
|
|
"Bash(./step300_test:*)",
|
|
"Bash(./step301_test:*)",
|
|
"Bash(./step289_test:*)",
|
|
"Bash(./step302_test:*)",
|
|
"Bash(./step303_test:*)",
|
|
"Bash(./step304_test:*)",
|
|
"Bash(./step305_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/debug_await)",
|
|
"Bash(./step306_test:*)",
|
|
"Bash(./step307_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step307_test:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/tests/debug_go_cst.cpp << 'CPPEOF'\n#include <cstdio>\n#include <cstring>\n#include <string>\n#include <tree_sitter/api.h>\n\nextern \"C\" const TSLanguage* tree_sitter_go\\(\\);\n\nstatic void dump_tree\\(TSNode node, const char* source, int indent\\) {\n const char* type = ts_node_type\\(node\\);\n bool is_named = ts_node_is_named\\(node\\);\n\n uint32_t start = ts_node_start_byte\\(node\\);\n uint32_t end = ts_node_end_byte\\(node\\);\n\n // Extract the text snippet \\(truncated for readability\\)\n std::string text\\(source + start, source + end\\);\n if \\(text.size\\(\\) > 60\\) {\n text = text.substr\\(0, 57\\) + \"...\";\n }\n // Replace newlines with \\\\\\\\n for display\n for \\(size_t i = 0; i < text.size\\(\\); i++\\) {\n if \\(text[i] == '\\\\n'\\) {\n text.replace\\(i, 1, \"\\\\\\\\n\"\\);\n i++; // skip past the replacement\n }\n }\n\n // Print with indentation\n for \\(int i = 0; i < indent; i++\\) printf\\(\" \"\\);\n printf\\(\"%s%s [%u-%u] \\\\\"%s\\\\\"\\\\n\",\n is_named ? \"\" : \"\\(anon\\) \",\n type, start, end, text.c_str\\(\\)\\);\n\n // Recurse into children \\(all children, not just named\\)\n uint32_t child_count = ts_node_child_count\\(node\\);\n for \\(uint32_t i = 0; i < child_count; i++\\) {\n TSNode child = ts_node_child\\(node, i\\);\n dump_tree\\(child, source, indent + 1\\);\n }\n}\n\nint main\\(\\) {\n const char* source =\n \"package main\\\\n\"\n \"\\\\n\"\n \"func make\\(\\) {\\\\n\"\n \" fn := func\\(x int\\) int { return x + 1 }\\\\n\"\n \"}\\\\n\";\n\n printf\\(\"=== Go Source ===\\\\n%s\\\\n\", source\\);\n\n TSParser* parser = ts_parser_new\\(\\);\n ts_parser_set_language\\(parser, tree_sitter_go\\(\\)\\);\n\n TSTree* tree = ts_parser_parse_string\\(parser, nullptr, source, strlen\\(source\\)\\);\n TSNode root = ts_tree_root_node\\(tree\\);\n\n printf\\(\"=== CST Dump \\(all nodes\\) ===\\\\n\"\\);\n dump_tree\\(root, source, 0\\);\n\n // Also print the S-expression for quick reference\n char* sexp = ts_node_string\\(root\\);\n printf\\(\"\\\\n=== S-Expression ===\\\\n%s\\\\n\", sexp\\);\n free\\(sexp\\);\n\n ts_tree_delete\\(tree\\);\n ts_parser_delete\\(parser\\);\n return 0;\n}\nCPPEOF)",
|
|
"Bash(./debug_go_cst:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/tests/debug_elisp_cst.cpp << 'CPPEOF'\n#include <cstdio>\n#include <cstring>\n#include <string>\n#include <tree_sitter/api.h>\n\nextern \"C\" const TSLanguage* tree_sitter_elisp\\(\\);\n\nstatic void dump\\(TSNode node, const char* source, int depth\\) {\n const char* type = ts_node_type\\(node\\);\n uint32_t start = ts_node_start_byte\\(node\\);\n uint32_t end = ts_node_end_byte\\(node\\);\n\n // Extract the node text\n std::string text\\(source + start, source + end\\);\n // Collapse newlines for readability\n for \\(auto& c : text\\) {\n if \\(c == '\\\\n'\\) c = ' ';\n }\n if \\(text.size\\(\\) > 72\\) {\n text = text.substr\\(0, 69\\) + \"...\";\n }\n\n // Print with indentation\n for \\(int i = 0; i < depth; i++\\) printf\\(\" \"\\);\n printf\\(\"[%s] \\\\\"%s\\\\\" \\(named=%d, bytes %u..%u\\)\\\\n\",\n type, text.c_str\\(\\),\n ts_node_is_named\\(node\\),\n start, end\\);\n\n // Recurse into children\n uint32_t count = ts_node_child_count\\(node\\);\n for \\(uint32_t i = 0; i < count; i++\\) {\n dump\\(ts_node_child\\(node, i\\), source, depth + 1\\);\n }\n}\n\nint main\\(\\) {\n const char* source = \"\\(defun make \\(\\)\\\\n \\(lambda \\(x\\) \\(+ x 1\\)\\)\\)\\\\n\";\n\n TSParser* parser = ts_parser_new\\(\\);\n ts_parser_set_language\\(parser, tree_sitter_elisp\\(\\)\\);\n\n TSTree* tree = ts_parser_parse_string\\(parser, nullptr, source, \\(uint32_t\\)strlen\\(source\\)\\);\n TSNode root = ts_tree_root_node\\(tree\\);\n\n printf\\(\"Source:\\\\n%s\\\\n\", source\\);\n printf\\(\"--- CST dump ---\\\\n\"\\);\n dump\\(root, source, 0\\);\n\n ts_tree_delete\\(tree\\);\n ts_parser_delete\\(parser\\);\n return 0;\n}\nCPPEOF)",
|
|
"Bash(LD_LIBRARY_PATH=/home/bill/vcpkg/installed/x64-linux/lib:. ./debug_elisp_cst:*)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step305_test)",
|
|
"Bash(/home/bill/CLionProjects/whetstone_DSL/editor/build-native/step306_test)",
|
|
"Bash(apt list:*)",
|
|
"Bash(sudo apt-get update:*)",
|
|
"Bash(sudo apt-get install:*)",
|
|
"Bash(git -C /home/bill/Documents/CLionProjects/whetstone_DSL log --oneline -20)",
|
|
"Bash(git -C /home/bill/Documents/CLionProjects/whetstone_DSL status -u)",
|
|
"Bash(git -C /home/bill/Documents/CLionProjects/whetstone_DSL diff --stat HEAD)",
|
|
"Bash(git -C /home/bill/Documents/CLionProjects/whetstone_DSL diff --stat HEAD -- ':\\(exclude\\).claude')",
|
|
"Bash(git -C /home/bill/Documents/CLionProjects/whetstone_DSL ls-files --others --exclude-standard -- editor/src/ editor/tests/)",
|
|
"Bash(ssh-keygen:*)",
|
|
"Bash(ssh:*)",
|
|
"Bash(./step320_test:*)",
|
|
"Bash(./step321_test:*)",
|
|
"Bash(./step322_test:*)",
|
|
"Bash(./step323_test:*)",
|
|
"Bash(./step324_test:*)",
|
|
"Bash(./step325_test:*)",
|
|
"Bash(./step326_test)",
|
|
"Bash(./step327_test:*)",
|
|
"Bash(./step328_test:*)",
|
|
"Bash(./step329_test:*)",
|
|
"Bash(./step330_test:*)",
|
|
"Bash(./step331_test:*)",
|
|
"Bash(./step332_test:*)"
|
|
]
|
|
}
|
|
}
|