@vpxa/aikit 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1207 -0
- package/bin/aikit.mjs +10 -0
- package/package.json +92 -0
- package/packages/aikit-client/dist/direct-client.d.ts +37 -0
- package/packages/aikit-client/dist/direct-client.js +1 -0
- package/packages/aikit-client/dist/index.d.ts +5 -0
- package/packages/aikit-client/dist/index.js +1 -0
- package/packages/aikit-client/dist/mcp-client.d.ts +19 -0
- package/packages/aikit-client/dist/mcp-client.js +4 -0
- package/packages/aikit-client/dist/parsers.d.ts +35 -0
- package/packages/aikit-client/dist/parsers.js +2 -0
- package/packages/aikit-client/dist/types.d.ts +62 -0
- package/packages/aikit-client/dist/types.js +1 -0
- package/packages/analyzers/dist/blast-radius-analyzer.d.ts +19 -0
- package/packages/analyzers/dist/blast-radius-analyzer.js +6 -0
- package/packages/analyzers/dist/dependency-analyzer.d.ts +32 -0
- package/packages/analyzers/dist/dependency-analyzer.js +8 -0
- package/packages/analyzers/dist/diagram-generator.d.ts +16 -0
- package/packages/analyzers/dist/diagram-generator.js +2 -0
- package/packages/analyzers/dist/entry-point-analyzer.d.ts +40 -0
- package/packages/analyzers/dist/entry-point-analyzer.js +4 -0
- package/packages/analyzers/dist/index.d.ts +12 -0
- package/packages/analyzers/dist/index.js +1 -0
- package/packages/analyzers/dist/knowledge-producer.d.ts +40 -0
- package/packages/analyzers/dist/knowledge-producer.js +26 -0
- package/packages/analyzers/dist/pattern-analyzer.d.ts +15 -0
- package/packages/analyzers/dist/pattern-analyzer.js +2 -0
- package/packages/analyzers/dist/regex-call-graph.d.ts +10 -0
- package/packages/analyzers/dist/regex-call-graph.js +1 -0
- package/packages/analyzers/dist/structure-analyzer.d.ts +19 -0
- package/packages/analyzers/dist/structure-analyzer.js +4 -0
- package/packages/analyzers/dist/symbol-analyzer.d.ts +14 -0
- package/packages/analyzers/dist/symbol-analyzer.js +9 -0
- package/packages/analyzers/dist/ts-call-graph.d.ts +29 -0
- package/packages/analyzers/dist/ts-call-graph.js +1 -0
- package/packages/analyzers/dist/types.d.ts +110 -0
- package/packages/analyzers/dist/types.js +1 -0
- package/packages/chunker/dist/call-graph-extractor.d.ts +25 -0
- package/packages/chunker/dist/call-graph-extractor.js +1 -0
- package/packages/chunker/dist/chunker-factory.d.ts +19 -0
- package/packages/chunker/dist/chunker-factory.js +1 -0
- package/packages/chunker/dist/chunker.interface.d.ts +13 -0
- package/packages/chunker/dist/chunker.interface.js +1 -0
- package/packages/chunker/dist/code-chunker.d.ts +17 -0
- package/packages/chunker/dist/code-chunker.js +11 -0
- package/packages/chunker/dist/extractors/call-extractor.d.ts +24 -0
- package/packages/chunker/dist/extractors/call-extractor.js +1 -0
- package/packages/chunker/dist/extractors/entry-point-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/entry-point-detector.js +1 -0
- package/packages/chunker/dist/extractors/import-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/import-extractor.js +1 -0
- package/packages/chunker/dist/extractors/pattern-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/pattern-detector.js +1 -0
- package/packages/chunker/dist/extractors/scope-resolver.d.ts +26 -0
- package/packages/chunker/dist/extractors/scope-resolver.js +1 -0
- package/packages/chunker/dist/extractors/symbol-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/symbol-extractor.js +3 -0
- package/packages/chunker/dist/extractors/types.d.ts +44 -0
- package/packages/chunker/dist/extractors/types.js +1 -0
- package/packages/chunker/dist/generic-chunker.d.ts +15 -0
- package/packages/chunker/dist/generic-chunker.js +5 -0
- package/packages/chunker/dist/index.d.ts +19 -0
- package/packages/chunker/dist/index.js +1 -0
- package/packages/chunker/dist/markdown-chunker.d.ts +17 -0
- package/packages/chunker/dist/markdown-chunker.js +3 -0
- package/packages/chunker/dist/wasm/languages.d.ts +18 -0
- package/packages/chunker/dist/wasm/languages.js +1 -0
- package/packages/chunker/dist/wasm/query-executor.d.ts +70 -0
- package/packages/chunker/dist/wasm/query-executor.js +1 -0
- package/packages/chunker/dist/wasm/runtime.d.ts +44 -0
- package/packages/chunker/dist/wasm/runtime.js +1 -0
- package/packages/chunker/dist/wasm/types.d.ts +84 -0
- package/packages/chunker/dist/wasm/types.js +1 -0
- package/packages/chunker/dist/wasm-chunker.d.ts +23 -0
- package/packages/chunker/dist/wasm-chunker.js +6 -0
- package/packages/chunker/src/queries/go/calls.scm +11 -0
- package/packages/chunker/src/queries/go/entry-points.scm +20 -0
- package/packages/chunker/src/queries/go/imports.scm +6 -0
- package/packages/chunker/src/queries/go/patterns.scm +25 -0
- package/packages/chunker/src/queries/go/symbols.scm +26 -0
- package/packages/chunker/src/queries/java/calls.scm +10 -0
- package/packages/chunker/src/queries/java/entry-points.scm +27 -0
- package/packages/chunker/src/queries/java/imports.scm +11 -0
- package/packages/chunker/src/queries/java/patterns.scm +27 -0
- package/packages/chunker/src/queries/java/symbols.scm +28 -0
- package/packages/chunker/src/queries/javascript/calls.scm +21 -0
- package/packages/chunker/src/queries/javascript/entry-points.scm +31 -0
- package/packages/chunker/src/queries/javascript/imports.scm +32 -0
- package/packages/chunker/src/queries/javascript/patterns.scm +28 -0
- package/packages/chunker/src/queries/javascript/symbols.scm +52 -0
- package/packages/chunker/src/queries/python/calls.scm +11 -0
- package/packages/chunker/src/queries/python/entry-points.scm +21 -0
- package/packages/chunker/src/queries/python/imports.scm +14 -0
- package/packages/chunker/src/queries/python/patterns.scm +25 -0
- package/packages/chunker/src/queries/python/symbols.scm +17 -0
- package/packages/chunker/src/queries/rust/calls.scm +20 -0
- package/packages/chunker/src/queries/rust/entry-points.scm +7 -0
- package/packages/chunker/src/queries/rust/imports.scm +26 -0
- package/packages/chunker/src/queries/rust/patterns.scm +18 -0
- package/packages/chunker/src/queries/rust/symbols.scm +73 -0
- package/packages/chunker/src/queries/typescript/calls.scm +21 -0
- package/packages/chunker/src/queries/typescript/entry-points.scm +48 -0
- package/packages/chunker/src/queries/typescript/imports.scm +35 -0
- package/packages/chunker/src/queries/typescript/patterns.scm +47 -0
- package/packages/chunker/src/queries/typescript/symbols.scm +79 -0
- package/packages/chunker/wasm/tree-sitter-c.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-cpp.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-go.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-java.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-javascript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-kotlin.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-php.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-python.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-ruby.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-rust.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-scala.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-swift.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-typescript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter.wasm +0 -0
- package/packages/cli/dist/aikit-init.d.ts +54 -0
- package/packages/cli/dist/aikit-init.js +1 -0
- package/packages/cli/dist/commands/analyze.d.ts +6 -0
- package/packages/cli/dist/commands/analyze.js +2 -0
- package/packages/cli/dist/commands/context-cmds.d.ts +6 -0
- package/packages/cli/dist/commands/context-cmds.js +1 -0
- package/packages/cli/dist/commands/environment.d.ts +6 -0
- package/packages/cli/dist/commands/environment.js +1 -0
- package/packages/cli/dist/commands/execution.d.ts +6 -0
- package/packages/cli/dist/commands/execution.js +1 -0
- package/packages/cli/dist/commands/flow.d.ts +6 -0
- package/packages/cli/dist/commands/flow.js +1 -0
- package/packages/cli/dist/commands/graph.d.ts +6 -0
- package/packages/cli/dist/commands/graph.js +6 -0
- package/packages/cli/dist/commands/init/adapters.d.ts +28 -0
- package/packages/cli/dist/commands/init/adapters.js +1 -0
- package/packages/cli/dist/commands/init/config.d.ts +10 -0
- package/packages/cli/dist/commands/init/config.js +3 -0
- package/packages/cli/dist/commands/init/constants.d.ts +41 -0
- package/packages/cli/dist/commands/init/constants.js +1 -0
- package/packages/cli/dist/commands/init/curated.d.ts +7 -0
- package/packages/cli/dist/commands/init/curated.js +1 -0
- package/packages/cli/dist/commands/init/frontmatter.d.ts +54 -0
- package/packages/cli/dist/commands/init/frontmatter.js +2 -0
- package/packages/cli/dist/commands/init/index.d.ts +36 -0
- package/packages/cli/dist/commands/init/index.js +5 -0
- package/packages/cli/dist/commands/init/manifest.d.ts +71 -0
- package/packages/cli/dist/commands/init/manifest.js +1 -0
- package/packages/cli/dist/commands/init/scaffold.d.ts +46 -0
- package/packages/cli/dist/commands/init/scaffold.js +1 -0
- package/packages/cli/dist/commands/init/templates.d.ts +9 -0
- package/packages/cli/dist/commands/init/templates.js +194 -0
- package/packages/cli/dist/commands/init/user.d.ts +61 -0
- package/packages/cli/dist/commands/init/user.js +5 -0
- package/packages/cli/dist/commands/knowledge.d.ts +6 -0
- package/packages/cli/dist/commands/knowledge.js +1 -0
- package/packages/cli/dist/commands/search.d.ts +6 -0
- package/packages/cli/dist/commands/search.js +1 -0
- package/packages/cli/dist/commands/system.d.ts +6 -0
- package/packages/cli/dist/commands/system.js +4 -0
- package/packages/cli/dist/commands/upgrade.d.ts +6 -0
- package/packages/cli/dist/commands/upgrade.js +1 -0
- package/packages/cli/dist/commands/workspace.d.ts +6 -0
- package/packages/cli/dist/commands/workspace.js +1 -0
- package/packages/cli/dist/context.d.ts +7 -0
- package/packages/cli/dist/context.js +1 -0
- package/packages/cli/dist/helpers.d.ts +55 -0
- package/packages/cli/dist/helpers.js +5 -0
- package/packages/cli/dist/index.d.ts +10 -0
- package/packages/cli/dist/index.js +3 -0
- package/packages/cli/dist/types.d.ts +9 -0
- package/packages/cli/dist/types.js +1 -0
- package/packages/core/dist/constants.d.ts +74 -0
- package/packages/core/dist/constants.js +1 -0
- package/packages/core/dist/content-detector.d.ts +13 -0
- package/packages/core/dist/content-detector.js +1 -0
- package/packages/core/dist/errors.d.ts +20 -0
- package/packages/core/dist/errors.js +1 -0
- package/packages/core/dist/global-registry.d.ts +63 -0
- package/packages/core/dist/global-registry.js +1 -0
- package/packages/core/dist/index.d.ts +7 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/logger.d.ts +32 -0
- package/packages/core/dist/logger.js +1 -0
- package/packages/core/dist/types.d.ts +133 -0
- package/packages/core/dist/types.js +1 -0
- package/packages/dashboard/dist/assets/index-BjA4YODs.js +21 -0
- package/packages/dashboard/dist/assets/index-BjA4YODs.js.map +1 -0
- package/packages/dashboard/dist/assets/index-CHpVij2M.css +1 -0
- package/packages/dashboard/dist/index.html +18 -0
- package/packages/elicitation/dist/build.d.ts +14 -0
- package/packages/elicitation/dist/build.js +1 -0
- package/packages/elicitation/dist/fields.d.ts +32 -0
- package/packages/elicitation/dist/fields.js +1 -0
- package/packages/elicitation/dist/index.d.ts +5 -0
- package/packages/elicitation/dist/index.js +1 -0
- package/packages/elicitation/dist/normalize.d.ts +15 -0
- package/packages/elicitation/dist/normalize.js +1 -0
- package/packages/elicitation/dist/types.d.ts +88 -0
- package/packages/elicitation/dist/types.js +1 -0
- package/packages/embeddings/dist/embedder.interface.d.ts +26 -0
- package/packages/embeddings/dist/embedder.interface.js +1 -0
- package/packages/embeddings/dist/index.d.ts +3 -0
- package/packages/embeddings/dist/index.js +1 -0
- package/packages/embeddings/dist/onnx-embedder.d.ts +22 -0
- package/packages/embeddings/dist/onnx-embedder.js +1 -0
- package/packages/enterprise-bridge/dist/cache.d.ts +28 -0
- package/packages/enterprise-bridge/dist/cache.js +1 -0
- package/packages/enterprise-bridge/dist/er-client.d.ts +37 -0
- package/packages/enterprise-bridge/dist/er-client.js +1 -0
- package/packages/enterprise-bridge/dist/evolution-collector.d.ts +62 -0
- package/packages/enterprise-bridge/dist/evolution-collector.js +1 -0
- package/packages/enterprise-bridge/dist/index.d.ts +8 -0
- package/packages/enterprise-bridge/dist/index.js +1 -0
- package/packages/enterprise-bridge/dist/policy-store.d.ts +45 -0
- package/packages/enterprise-bridge/dist/policy-store.js +1 -0
- package/packages/enterprise-bridge/dist/push-adapter.d.ts +23 -0
- package/packages/enterprise-bridge/dist/push-adapter.js +1 -0
- package/packages/enterprise-bridge/dist/result-merger.d.ts +14 -0
- package/packages/enterprise-bridge/dist/result-merger.js +1 -0
- package/packages/enterprise-bridge/dist/types.d.ts +81 -0
- package/packages/enterprise-bridge/dist/types.js +1 -0
- package/packages/flows/dist/adapters/claude-plugin.d.ts +12 -0
- package/packages/flows/dist/adapters/claude-plugin.js +1 -0
- package/packages/flows/dist/adapters/copilot.d.ts +10 -0
- package/packages/flows/dist/adapters/copilot.js +1 -0
- package/packages/flows/dist/adapters/index.d.ts +11 -0
- package/packages/flows/dist/adapters/index.js +1 -0
- package/packages/flows/dist/adapters/native.d.ts +10 -0
- package/packages/flows/dist/adapters/native.js +1 -0
- package/packages/flows/dist/builtins.d.ts +16 -0
- package/packages/flows/dist/builtins.js +1 -0
- package/packages/flows/dist/foundation.d.ts +20 -0
- package/packages/flows/dist/foundation.js +11 -0
- package/packages/flows/dist/git.d.ts +34 -0
- package/packages/flows/dist/git.js +1 -0
- package/packages/flows/dist/index.d.ts +12 -0
- package/packages/flows/dist/index.js +1 -0
- package/packages/flows/dist/loader.d.ts +13 -0
- package/packages/flows/dist/loader.js +2 -0
- package/packages/flows/dist/registry.d.ts +23 -0
- package/packages/flows/dist/registry.js +1 -0
- package/packages/flows/dist/state-machine.d.ts +23 -0
- package/packages/flows/dist/state-machine.js +1 -0
- package/packages/flows/dist/symlinks.d.ts +17 -0
- package/packages/flows/dist/symlinks.js +1 -0
- package/packages/flows/dist/types.d.ts +112 -0
- package/packages/flows/dist/types.js +1 -0
- package/packages/indexer/dist/file-hasher.d.ts +13 -0
- package/packages/indexer/dist/file-hasher.js +1 -0
- package/packages/indexer/dist/filesystem-crawler.d.ts +29 -0
- package/packages/indexer/dist/filesystem-crawler.js +1 -0
- package/packages/indexer/dist/graph-extractor.d.ts +18 -0
- package/packages/indexer/dist/graph-extractor.js +1 -0
- package/packages/indexer/dist/hash-cache.d.ts +24 -0
- package/packages/indexer/dist/hash-cache.js +1 -0
- package/packages/indexer/dist/incremental-indexer.d.ts +56 -0
- package/packages/indexer/dist/incremental-indexer.js +1 -0
- package/packages/indexer/dist/index.d.ts +6 -0
- package/packages/indexer/dist/index.js +1 -0
- package/packages/present/dist/index.html +709 -0
- package/packages/server/dist/api.d.ts +3 -0
- package/packages/server/dist/api.js +1 -0
- package/packages/server/dist/auto-gc.d.ts +30 -0
- package/packages/server/dist/auto-gc.js +1 -0
- package/packages/server/dist/completions.d.ts +14 -0
- package/packages/server/dist/completions.js +1 -0
- package/packages/server/dist/config.d.ts +14 -0
- package/packages/server/dist/config.js +1 -0
- package/packages/server/dist/cross-workspace.d.ts +43 -0
- package/packages/server/dist/cross-workspace.js +1 -0
- package/packages/server/dist/curated-manager.d.ts +92 -0
- package/packages/server/dist/curated-manager.js +5 -0
- package/packages/server/dist/dashboard-static.d.ts +27 -0
- package/packages/server/dist/dashboard-static.js +1 -0
- package/packages/server/dist/elicitor.d.ts +18 -0
- package/packages/server/dist/elicitor.js +1 -0
- package/packages/server/dist/index.d.ts +1 -0
- package/packages/server/dist/index.js +1 -0
- package/packages/server/dist/mcp-logging.d.ts +11 -0
- package/packages/server/dist/mcp-logging.js +1 -0
- package/packages/server/dist/output-schemas.d.ts +242 -0
- package/packages/server/dist/output-schemas.js +1 -0
- package/packages/server/dist/prompts.d.ts +13 -0
- package/packages/server/dist/prompts.js +13 -0
- package/packages/server/dist/replay-interceptor.d.ts +23 -0
- package/packages/server/dist/replay-interceptor.js +1 -0
- package/packages/server/dist/resource-links.d.ts +34 -0
- package/packages/server/dist/resource-links.js +1 -0
- package/packages/server/dist/resources/curated-resources.d.ts +13 -0
- package/packages/server/dist/resources/curated-resources.js +2 -0
- package/packages/server/dist/resources/resource-notifier.d.ts +45 -0
- package/packages/server/dist/resources/resource-notifier.js +1 -0
- package/packages/server/dist/resources/resources.d.ts +8 -0
- package/packages/server/dist/resources/resources.js +2 -0
- package/packages/server/dist/sampling.d.ts +41 -0
- package/packages/server/dist/sampling.js +2 -0
- package/packages/server/dist/server.d.ts +47 -0
- package/packages/server/dist/server.js +3 -0
- package/packages/server/dist/structured-content-guard.d.ts +26 -0
- package/packages/server/dist/structured-content-guard.js +1 -0
- package/packages/server/dist/task-manager.d.ts +40 -0
- package/packages/server/dist/task-manager.js +1 -0
- package/packages/server/dist/tool-metadata.d.ts +38 -0
- package/packages/server/dist/tool-metadata.js +1 -0
- package/packages/server/dist/tool-prefix.d.ts +12 -0
- package/packages/server/dist/tool-prefix.js +1 -0
- package/packages/server/dist/tools/analyze.tools.d.ts +14 -0
- package/packages/server/dist/tools/analyze.tools.js +8 -0
- package/packages/server/dist/tools/audit.tool.d.ts +8 -0
- package/packages/server/dist/tools/audit.tool.js +1 -0
- package/packages/server/dist/tools/brainstorm.tool.d.ts +7 -0
- package/packages/server/dist/tools/brainstorm.tool.js +9 -0
- package/packages/server/dist/tools/bridge.tools.d.ts +34 -0
- package/packages/server/dist/tools/bridge.tools.js +15 -0
- package/packages/server/dist/tools/context.tools.d.ts +15 -0
- package/packages/server/dist/tools/context.tools.js +10 -0
- package/packages/server/dist/tools/evolution.tools.d.ts +7 -0
- package/packages/server/dist/tools/evolution.tools.js +5 -0
- package/packages/server/dist/tools/execution.tools.d.ts +14 -0
- package/packages/server/dist/tools/execution.tools.js +4 -0
- package/packages/server/dist/tools/flow.tools.d.ts +7 -0
- package/packages/server/dist/tools/flow.tools.js +1 -0
- package/packages/server/dist/tools/forge.tools.d.ts +13 -0
- package/packages/server/dist/tools/forge.tools.js +10 -0
- package/packages/server/dist/tools/forget.tool.d.ts +8 -0
- package/packages/server/dist/tools/forget.tool.js +1 -0
- package/packages/server/dist/tools/graph.tool.d.ts +7 -0
- package/packages/server/dist/tools/graph.tool.js +5 -0
- package/packages/server/dist/tools/infra.tools.d.ts +10 -0
- package/packages/server/dist/tools/infra.tools.js +5 -0
- package/packages/server/dist/tools/list.tool.d.ts +7 -0
- package/packages/server/dist/tools/list.tool.js +2 -0
- package/packages/server/dist/tools/lookup.tool.d.ts +7 -0
- package/packages/server/dist/tools/lookup.tool.js +3 -0
- package/packages/server/dist/tools/manipulation.tools.d.ts +10 -0
- package/packages/server/dist/tools/manipulation.tools.js +4 -0
- package/packages/server/dist/tools/onboard.tool.d.ts +9 -0
- package/packages/server/dist/tools/onboard.tool.js +2 -0
- package/packages/server/dist/tools/persistence.tools.d.ts +10 -0
- package/packages/server/dist/tools/persistence.tools.js +5 -0
- package/packages/server/dist/tools/policy.tools.d.ts +7 -0
- package/packages/server/dist/tools/policy.tools.js +3 -0
- package/packages/server/dist/tools/present/browser.d.ts +4 -0
- package/packages/server/dist/tools/present/browser.js +93 -0
- package/packages/server/dist/tools/present/helpers.d.ts +18 -0
- package/packages/server/dist/tools/present/helpers.js +1 -0
- package/packages/server/dist/tools/present/html.d.ts +18 -0
- package/packages/server/dist/tools/present/html.js +5 -0
- package/packages/server/dist/tools/present/index.d.ts +2 -0
- package/packages/server/dist/tools/present/index.js +1 -0
- package/packages/server/dist/tools/present/markdown.d.ts +17 -0
- package/packages/server/dist/tools/present/markdown.js +8 -0
- package/packages/server/dist/tools/present/templates.d.ts +14 -0
- package/packages/server/dist/tools/present/templates.js +472 -0
- package/packages/server/dist/tools/present/tool.d.ts +27 -0
- package/packages/server/dist/tools/present/tool.js +19 -0
- package/packages/server/dist/tools/present-blocks.d.ts +46 -0
- package/packages/server/dist/tools/present-blocks.js +27 -0
- package/packages/server/dist/tools/present-charts.d.ts +31 -0
- package/packages/server/dist/tools/present-charts.js +34 -0
- package/packages/server/dist/tools/present-theme.d.ts +14 -0
- package/packages/server/dist/tools/present-theme.js +395 -0
- package/packages/server/dist/tools/present-utils.d.ts +11 -0
- package/packages/server/dist/tools/present-utils.js +1 -0
- package/packages/server/dist/tools/present.tool.d.ts +2 -0
- package/packages/server/dist/tools/present.tool.js +1 -0
- package/packages/server/dist/tools/produce.tool.d.ts +7 -0
- package/packages/server/dist/tools/produce.tool.js +4 -0
- package/packages/server/dist/tools/read.tool.d.ts +7 -0
- package/packages/server/dist/tools/read.tool.js +2 -0
- package/packages/server/dist/tools/reindex.tool.d.ts +11 -0
- package/packages/server/dist/tools/reindex.tool.js +3 -0
- package/packages/server/dist/tools/remember.tool.d.ts +9 -0
- package/packages/server/dist/tools/remember.tool.js +4 -0
- package/packages/server/dist/tools/replay.tool.d.ts +6 -0
- package/packages/server/dist/tools/replay.tool.js +3 -0
- package/packages/server/dist/tools/restore.tool.d.ts +6 -0
- package/packages/server/dist/tools/restore.tool.js +3 -0
- package/packages/server/dist/tools/search.tool.d.ts +11 -0
- package/packages/server/dist/tools/search.tool.js +10 -0
- package/packages/server/dist/tools/status.tool.d.ts +20 -0
- package/packages/server/dist/tools/status.tool.js +3 -0
- package/packages/server/dist/tools/update.tool.d.ts +8 -0
- package/packages/server/dist/tools/update.tool.js +1 -0
- package/packages/server/dist/tools/utility.tools.d.ts +15 -0
- package/packages/server/dist/tools/utility.tools.js +13 -0
- package/packages/server/dist/version-check.d.ts +32 -0
- package/packages/server/dist/version-check.js +1 -0
- package/packages/store/dist/graph-store.interface.d.ts +118 -0
- package/packages/store/dist/graph-store.interface.js +1 -0
- package/packages/store/dist/index.d.ts +6 -0
- package/packages/store/dist/index.js +1 -0
- package/packages/store/dist/lance-store.d.ts +44 -0
- package/packages/store/dist/lance-store.js +1 -0
- package/packages/store/dist/sqlite-graph-store.d.ts +45 -0
- package/packages/store/dist/sqlite-graph-store.js +58 -0
- package/packages/store/dist/store-factory.d.ts +12 -0
- package/packages/store/dist/store-factory.js +1 -0
- package/packages/store/dist/store.interface.d.ts +54 -0
- package/packages/store/dist/store.interface.js +1 -0
- package/packages/tools/dist/audit.d.ts +65 -0
- package/packages/tools/dist/audit.js +6 -0
- package/packages/tools/dist/batch.d.ts +23 -0
- package/packages/tools/dist/batch.js +1 -0
- package/packages/tools/dist/changelog.d.ts +36 -0
- package/packages/tools/dist/changelog.js +2 -0
- package/packages/tools/dist/check.d.ts +48 -0
- package/packages/tools/dist/check.js +2 -0
- package/packages/tools/dist/checkpoint.d.ts +19 -0
- package/packages/tools/dist/checkpoint.js +1 -0
- package/packages/tools/dist/codemod.d.ts +39 -0
- package/packages/tools/dist/codemod.js +2 -0
- package/packages/tools/dist/compact.d.ts +41 -0
- package/packages/tools/dist/compact.js +3 -0
- package/packages/tools/dist/config-extractor.d.ts +9 -0
- package/packages/tools/dist/config-extractor.js +7 -0
- package/packages/tools/dist/data-transform.d.ts +12 -0
- package/packages/tools/dist/data-transform.js +1 -0
- package/packages/tools/dist/dead-symbols.d.ts +28 -0
- package/packages/tools/dist/dead-symbols.js +2 -0
- package/packages/tools/dist/delegate.d.ts +36 -0
- package/packages/tools/dist/delegate.js +1 -0
- package/packages/tools/dist/diagram-builder.d.ts +9 -0
- package/packages/tools/dist/diagram-builder.js +9 -0
- package/packages/tools/dist/diff-parse.d.ts +28 -0
- package/packages/tools/dist/diff-parse.js +3 -0
- package/packages/tools/dist/digest.d.ts +50 -0
- package/packages/tools/dist/digest.js +6 -0
- package/packages/tools/dist/dogfood-log.d.ts +49 -0
- package/packages/tools/dist/dogfood-log.js +2 -0
- package/packages/tools/dist/encode.d.ts +16 -0
- package/packages/tools/dist/encode.js +1 -0
- package/packages/tools/dist/env-info.d.ts +30 -0
- package/packages/tools/dist/env-info.js +1 -0
- package/packages/tools/dist/eval.d.ts +15 -0
- package/packages/tools/dist/eval.js +2 -0
- package/packages/tools/dist/evidence-map.d.ts +92 -0
- package/packages/tools/dist/evidence-map.js +2 -0
- package/packages/tools/dist/file-cache.d.ts +41 -0
- package/packages/tools/dist/file-cache.js +3 -0
- package/packages/tools/dist/file-summary.d.ts +52 -0
- package/packages/tools/dist/file-summary.js +2 -0
- package/packages/tools/dist/file-walk.d.ts +6 -0
- package/packages/tools/dist/file-walk.js +1 -0
- package/packages/tools/dist/find-examples.d.ts +29 -0
- package/packages/tools/dist/find-examples.js +3 -0
- package/packages/tools/dist/find.d.ts +49 -0
- package/packages/tools/dist/find.js +1 -0
- package/packages/tools/dist/forge-classify.d.ts +44 -0
- package/packages/tools/dist/forge-classify.js +2 -0
- package/packages/tools/dist/forge-ground.d.ts +61 -0
- package/packages/tools/dist/forge-ground.js +1 -0
- package/packages/tools/dist/git-context.d.ts +25 -0
- package/packages/tools/dist/git-context.js +3 -0
- package/packages/tools/dist/graph-query.d.ts +86 -0
- package/packages/tools/dist/graph-query.js +1 -0
- package/packages/tools/dist/guide.d.ts +25 -0
- package/packages/tools/dist/guide.js +1 -0
- package/packages/tools/dist/health.d.ts +16 -0
- package/packages/tools/dist/health.js +2 -0
- package/packages/tools/dist/http-request.d.ts +25 -0
- package/packages/tools/dist/http-request.js +1 -0
- package/packages/tools/dist/index.d.ts +57 -0
- package/packages/tools/dist/index.js +1 -0
- package/packages/tools/dist/lane.d.ts +41 -0
- package/packages/tools/dist/lane.js +6 -0
- package/packages/tools/dist/measure.d.ts +42 -0
- package/packages/tools/dist/measure.js +2 -0
- package/packages/tools/dist/onboard-utils.d.ts +12 -0
- package/packages/tools/dist/onboard-utils.js +1 -0
- package/packages/tools/dist/onboard.d.ts +50 -0
- package/packages/tools/dist/onboard.js +18 -0
- package/packages/tools/dist/parse-output.d.ts +82 -0
- package/packages/tools/dist/parse-output.js +2 -0
- package/packages/tools/dist/path-resolver.d.ts +14 -0
- package/packages/tools/dist/path-resolver.js +1 -0
- package/packages/tools/dist/process-manager.d.ts +20 -0
- package/packages/tools/dist/process-manager.js +1 -0
- package/packages/tools/dist/queue.d.ts +40 -0
- package/packages/tools/dist/queue.js +1 -0
- package/packages/tools/dist/regex-test.d.ts +33 -0
- package/packages/tools/dist/regex-test.js +1 -0
- package/packages/tools/dist/regex-utils.d.ts +8 -0
- package/packages/tools/dist/regex-utils.js +1 -0
- package/packages/tools/dist/rename.d.ts +31 -0
- package/packages/tools/dist/rename.js +2 -0
- package/packages/tools/dist/replay.d.ts +59 -0
- package/packages/tools/dist/replay.js +4 -0
- package/packages/tools/dist/response-envelope.d.ts +43 -0
- package/packages/tools/dist/response-envelope.js +1 -0
- package/packages/tools/dist/restore-points.d.ts +22 -0
- package/packages/tools/dist/restore-points.js +1 -0
- package/packages/tools/dist/schema-validate.d.ts +25 -0
- package/packages/tools/dist/schema-validate.js +1 -0
- package/packages/tools/dist/scope-map.d.ts +51 -0
- package/packages/tools/dist/scope-map.js +1 -0
- package/packages/tools/dist/snippet.d.ts +35 -0
- package/packages/tools/dist/snippet.js +1 -0
- package/packages/tools/dist/stash.d.ts +14 -0
- package/packages/tools/dist/stash.js +1 -0
- package/packages/tools/dist/stratum-card.d.ts +30 -0
- package/packages/tools/dist/stratum-card.js +4 -0
- package/packages/tools/dist/symbol.d.ts +45 -0
- package/packages/tools/dist/symbol.js +3 -0
- package/packages/tools/dist/synthesis-engine.d.ts +13 -0
- package/packages/tools/dist/synthesis-engine.js +6 -0
- package/packages/tools/dist/test-run.d.ts +28 -0
- package/packages/tools/dist/test-run.js +2 -0
- package/packages/tools/dist/text-utils.d.ts +24 -0
- package/packages/tools/dist/text-utils.js +2 -0
- package/packages/tools/dist/time-utils.d.ts +20 -0
- package/packages/tools/dist/time-utils.js +1 -0
- package/packages/tools/dist/trace.d.ts +29 -0
- package/packages/tools/dist/trace.js +2 -0
- package/packages/tools/dist/truncation.d.ts +33 -0
- package/packages/tools/dist/truncation.js +7 -0
- package/packages/tools/dist/watch.d.ts +32 -0
- package/packages/tools/dist/watch.js +1 -0
- package/packages/tools/dist/web-fetch.d.ts +47 -0
- package/packages/tools/dist/web-fetch.js +8 -0
- package/packages/tools/dist/web-search.d.ts +25 -0
- package/packages/tools/dist/web-search.js +1 -0
- package/packages/tools/dist/workset.d.ts +47 -0
- package/packages/tools/dist/workset.js +1 -0
- package/packages/tui/dist/App-DU2KEylW.js +2 -0
- package/packages/tui/dist/App.d.ts +13 -0
- package/packages/tui/dist/App.js +2 -0
- package/packages/tui/dist/CuratedPanel-BIamXLNy.js +2 -0
- package/packages/tui/dist/LogPanel-Bo8a8QXB.js +3 -0
- package/packages/tui/dist/SearchPanel-CpJGczAc.js +2 -0
- package/packages/tui/dist/StatusPanel-BAbUxyqQ.js +2 -0
- package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
- package/packages/tui/dist/devtools-DMOZMn70.js +7 -0
- package/packages/tui/dist/hooks/useKBClient.d.ts +9 -0
- package/packages/tui/dist/hooks/useKBClient.js +2 -0
- package/packages/tui/dist/hooks/usePolling.d.ts +8 -0
- package/packages/tui/dist/hooks/usePolling.js +2 -0
- package/packages/tui/dist/index-BXafekwr.d.ts +64 -0
- package/packages/tui/dist/index.d.ts +7 -0
- package/packages/tui/dist/index.js +2 -0
- package/packages/tui/dist/jsx-runtime-y6Gdq5PZ.js +294 -0
- package/packages/tui/dist/panels/CuratedPanel.d.ts +7 -0
- package/packages/tui/dist/panels/CuratedPanel.js +2 -0
- package/packages/tui/dist/panels/LogPanel.d.ts +7 -0
- package/packages/tui/dist/panels/LogPanel.js +2 -0
- package/packages/tui/dist/panels/SearchPanel.d.ts +7 -0
- package/packages/tui/dist/panels/SearchPanel.js +2 -0
- package/packages/tui/dist/panels/StatusPanel.d.ts +7 -0
- package/packages/tui/dist/panels/StatusPanel.js +2 -0
- package/packages/tui/dist/react-D__J1GQe.js +24 -0
- package/packages/tui/dist/useKBClient-C35iA4uG.js +2 -0
- package/packages/tui/dist/usePolling-BbjnRWgx.js +2 -0
- package/scaffold/README.md +192 -0
- package/scaffold/adapters/claude-code.mjs +56 -0
- package/scaffold/adapters/copilot.mjs +270 -0
- package/scaffold/definitions/agents.mjs +189 -0
- package/scaffold/definitions/bodies.mjs +487 -0
- package/scaffold/definitions/hooks.mjs +43 -0
- package/scaffold/definitions/models.mjs +56 -0
- package/scaffold/definitions/plugins.mjs +38 -0
- package/scaffold/definitions/prompts.mjs +145 -0
- package/scaffold/definitions/protocols.mjs +679 -0
- package/scaffold/definitions/tools.mjs +229 -0
- package/scaffold/flows/aikit-advanced/flow.json +60 -0
- package/scaffold/flows/aikit-advanced/skills/execute/SKILL.md +124 -0
- package/scaffold/flows/aikit-advanced/skills/plan/SKILL.md +100 -0
- package/scaffold/flows/aikit-advanced/skills/spec/SKILL.md +100 -0
- package/scaffold/flows/aikit-advanced/skills/task/SKILL.md +99 -0
- package/scaffold/flows/aikit-advanced/skills/verify/SKILL.md +122 -0
- package/scaffold/flows/aikit-basic/flow.json +36 -0
- package/scaffold/flows/aikit-basic/skills/assess/SKILL.md +82 -0
- package/scaffold/flows/aikit-basic/skills/implement/SKILL.md +105 -0
- package/scaffold/flows/aikit-basic/skills/verify/SKILL.md +96 -0
- package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +21 -0
- package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +21 -0
- package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +12 -0
- package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +12 -0
- package/scaffold/general/agents/Debugger.agent.md +34 -0
- package/scaffold/general/agents/Documenter.agent.md +53 -0
- package/scaffold/general/agents/Explorer.agent.md +63 -0
- package/scaffold/general/agents/Frontend.agent.md +29 -0
- package/scaffold/general/agents/Implementer.agent.md +33 -0
- package/scaffold/general/agents/Orchestrator.agent.md +149 -0
- package/scaffold/general/agents/Planner.agent.md +79 -0
- package/scaffold/general/agents/README.md +57 -0
- package/scaffold/general/agents/Refactor.agent.md +36 -0
- package/scaffold/general/agents/Researcher-Alpha.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Beta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Delta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Gamma.agent.md +20 -0
- package/scaffold/general/agents/Security.agent.md +55 -0
- package/scaffold/general/agents/_shared/architect-reviewer-base.md +60 -0
- package/scaffold/general/agents/_shared/code-agent-base.md +262 -0
- package/scaffold/general/agents/_shared/code-reviewer-base.md +64 -0
- package/scaffold/general/agents/_shared/decision-protocol.md +27 -0
- package/scaffold/general/agents/_shared/forge-protocol.md +90 -0
- package/scaffold/general/agents/_shared/researcher-base.md +101 -0
- package/scaffold/general/agents/templates/adr-template.md +28 -0
- package/scaffold/general/agents/templates/execution-state.md +26 -0
- package/scaffold/general/prompts/ask.prompt.md +21 -0
- package/scaffold/general/prompts/debug.prompt.md +25 -0
- package/scaffold/general/prompts/design.prompt.md +23 -0
- package/scaffold/general/prompts/implement.prompt.md +26 -0
- package/scaffold/general/prompts/plan.prompt.md +25 -0
- package/scaffold/general/prompts/review.prompt.md +32 -0
- package/scaffold/general/skills/adr-skill/SKILL.md +329 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-madr.md +89 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-readme.md +20 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-simple.md +46 -0
- package/scaffold/general/skills/adr-skill/references/adr-conventions.md +95 -0
- package/scaffold/general/skills/adr-skill/references/examples.md +193 -0
- package/scaffold/general/skills/adr-skill/references/review-checklist.md +77 -0
- package/scaffold/general/skills/adr-skill/references/template-variants.md +52 -0
- package/scaffold/general/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
- package/scaffold/general/skills/adr-skill/scripts/new_adr.js +391 -0
- package/scaffold/general/skills/adr-skill/scripts/set_adr_status.js +169 -0
- package/scaffold/general/skills/aikit/SKILL.md +521 -0
- package/scaffold/general/skills/brainstorming/SKILL.md +259 -0
- package/scaffold/general/skills/brainstorming/scripts/frame-template.html +365 -0
- package/scaffold/general/skills/brainstorming/scripts/helper.js +216 -0
- package/scaffold/general/skills/brainstorming/scripts/server.cjs +9 -0
- package/scaffold/general/skills/brainstorming/scripts/server.src.cjs +249 -0
- package/scaffold/general/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/scaffold/general/skills/brainstorming/visual-companion.md +430 -0
- package/scaffold/general/skills/c4-architecture/SKILL.md +295 -0
- package/scaffold/general/skills/c4-architecture/references/advanced-patterns.md +552 -0
- package/scaffold/general/skills/c4-architecture/references/c4-syntax.md +492 -0
- package/scaffold/general/skills/c4-architecture/references/common-mistakes.md +437 -0
- package/scaffold/general/skills/lesson-learned/SKILL.md +105 -0
- package/scaffold/general/skills/lesson-learned/references/anti-patterns.md +55 -0
- package/scaffold/general/skills/lesson-learned/references/se-principles.md +109 -0
- package/scaffold/general/skills/multi-agents-development/SKILL.md +435 -0
- package/scaffold/general/skills/multi-agents-development/architecture-review-prompt.md +81 -0
- package/scaffold/general/skills/multi-agents-development/code-quality-review-prompt.md +91 -0
- package/scaffold/general/skills/multi-agents-development/implementer-prompt.md +93 -0
- package/scaffold/general/skills/multi-agents-development/parallel-dispatch-example.md +167 -0
- package/scaffold/general/skills/multi-agents-development/spec-review-prompt.md +81 -0
- package/scaffold/general/skills/present/SKILL.md +424 -0
- package/scaffold/general/skills/requirements-clarity/SKILL.md +324 -0
- package/scaffold/general/skills/session-handoff/SKILL.md +189 -0
- package/scaffold/general/skills/session-handoff/references/handoff-template.md +139 -0
- package/scaffold/general/skills/session-handoff/references/resume-checklist.md +80 -0
- package/scaffold/general/skills/session-handoff/scripts/check_staleness.js +269 -0
- package/scaffold/general/skills/session-handoff/scripts/create_handoff.js +299 -0
- package/scaffold/general/skills/session-handoff/scripts/list_handoffs.js +113 -0
- package/scaffold/general/skills/session-handoff/scripts/validate_handoff.js +241 -0
- package/scaffold/generate.mjs +82 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region packages/tui/src/panels/CuratedPanel.d.ts
|
|
5
|
+
declare function CuratedPanel(): React.ReactElement;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { CuratedPanel };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region packages/tui/src/panels/LogPanel.d.ts
|
|
5
|
+
declare function LogPanel(): React.ReactElement;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { LogPanel };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region packages/tui/src/panels/SearchPanel.d.ts
|
|
5
|
+
declare function SearchPanel(): React.ReactElement;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { SearchPanel };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region packages/tui/src/panels/StatusPanel.d.ts
|
|
5
|
+
declare function StatusPanel(): React.ReactElement;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { StatusPanel };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import{t as e}from"./chunk-D6axbAb-.js";
|
|
3
|
+
/**
|
|
4
|
+
* @license React
|
|
5
|
+
* react.production.js
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the MIT license found in the
|
|
10
|
+
* LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/
|
|
12
|
+
var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ee(e,t){return E(e.type,t,e.props)}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(k,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=ee(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+A(a,u),c+=M(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+A(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(j(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},I={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=I,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.4`})),n=e(((e,t)=>{process.env.NODE_ENV!==`production`&&(function(){function n(e,t){Object.defineProperty(a.prototype,e,{get:function(){console.warn(`%s(...) is deprecated in plain JavaScript React classes. %s`,t[0],t[1])}})}function r(e){return typeof e!=`object`||!e?null:(e=oe&&e[oe]||e[`@@iterator`],typeof e==`function`?e:null)}function i(e,t){e=(e=e.constructor)&&(e.displayName||e.name)||`ReactClass`;var n=e+`.`+t;se[n]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,e),se[n]=!0)}function a(e,t,n){this.props=e,this.context=t,this.refs=W,this.updater=n||H}function o(){}function s(e,t,n){this.props=e,this.context=t,this.refs=W,this.updater=n||H}function c(){}function l(e){return``+e}function u(e){try{l(e);var t=!1}catch{t=!0}if(t){t=console;var n=t.error,r=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return n.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,r),l(e)}}function d(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ce?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case I:return`Fragment`;case L:return`Profiler`;case te:return`StrictMode`;case z:return`Suspense`;case ie:return`SuspenseList`;case ae:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case F:return`Portal`;case ne:return e.displayName||`Context`;case R:return(e._context.displayName||`Context`)+`.Consumer`;case re:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case B:return t=e.displayName||null,t===null?d(e.type)||`Memo`:t;case V:t=e._payload,e=e._init;try{return d(e(t))}catch{}}return null}function f(e){if(e===I)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===V)return`<...>`;try{var t=d(e);return t?`<`+t+`>`:`<...>`}catch{return`<...>`}}function p(){var e=q.A;return e===null?null:e.getOwner()}function m(){return Error(`react-stack-top-frame`)}function h(e){if(J.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function g(e,t){function n(){ue||(ue=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,`key`,{get:n,configurable:!0})}function _(){var e=d(this.type);return fe[e]||(fe[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function v(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:P,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,`ref`,{enumerable:!1,value:null}):Object.defineProperty(e,`ref`,{enumerable:!1,get:_}),e._store={},Object.defineProperty(e._store,`validated`,{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,`_debugInfo`,{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,`_debugStack`,{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,`_debugTask`,{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function y(e,t){return t=v(e.type,t,e.props,e._owner,e._debugStack,e._debugTask),e._store&&(t._store.validated=e._store.validated),t}function b(e){x(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===V&&(e._payload.status===`fulfilled`?x(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function x(e){return typeof e==`object`&&!!e&&e.$$typeof===P}function S(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}function C(e,t){return typeof e==`object`&&e&&e.key!=null?(u(e.key),S(``+e.key)):t.toString(36)}function w(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(c,c):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function T(e,t,n,i,a){var o=typeof e;(o===`undefined`||o===`boolean`)&&(e=null);var s=!1;if(e===null)s=!0;else switch(o){case`bigint`:case`string`:case`number`:s=!0;break;case`object`:switch(e.$$typeof){case P:case F:s=!0;break;case V:return s=e._init,T(s(e._payload),t,n,i,a)}}if(s){s=e,a=a(s);var c=i===``?`.`+C(s,0):i;return K(a)?(n=``,c!=null&&(n=c.replace(ge,`$&/`)+`/`),T(a,t,n,``,function(e){return e})):a!=null&&(x(a)&&(a.key!=null&&(s&&s.key===a.key||u(a.key)),n=y(a,n+(a.key==null||s&&s.key===a.key?``:(``+a.key).replace(ge,`$&/`)+`/`)+c),i!==``&&s!=null&&x(s)&&s.key==null&&s._store&&!s._store.validated&&(n._store.validated=2),a=n),t.push(a)),1}if(s=0,c=i===``?`.`:i+`:`,K(e))for(var l=0;l<e.length;l++)i=e[l],o=c+C(i,l),s+=T(i,t,n,o,a);else if(l=r(e),typeof l==`function`)for(l===e.entries&&(he||console.warn(`Using Maps as children is not supported. Use an array of keyed ReactElements instead.`),he=!0),e=l.call(e),l=0;!(i=e.next()).done;)i=i.value,o=c+C(i,l++),s+=T(i,t,n,o,a);else if(o===`object`){if(typeof e.then==`function`)return T(w(e),t,n,i,a);throw t=String(e),Error(`Objects are not valid as a React child (found: `+(t===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:t)+`). If you meant to render a collection of children, use an array instead.`)}return s}function E(e,t,n){if(e==null)return e;var r=[],i=0;return T(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ee(e){if(e._status===-1){var t=e._ioInfo;t!=null&&(t.start=t.end=performance.now()),t=e._result;var n=t();if(n.then(function(t){if(e._status===0||e._status===-1){e._status=1,e._result=t;var r=e._ioInfo;r!=null&&(r.end=performance.now()),n.status===void 0&&(n.status=`fulfilled`,n.value=t)}},function(t){if(e._status===0||e._status===-1){e._status=2,e._result=t;var r=e._ioInfo;r!=null&&(r.end=performance.now()),n.status===void 0&&(n.status=`rejected`,n.reason=t)}}),t=e._ioInfo,t!=null){t.value=n;var r=n.displayName;typeof r==`string`&&(t.name=r)}e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return t=e._result,t===void 0&&console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
13
|
+
|
|
14
|
+
Your code should look like:
|
|
15
|
+
const MyComponent = lazy(() => import('./MyComponent'))
|
|
16
|
+
|
|
17
|
+
Did you accidentally put curly braces around the import?`,t),`default`in t||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
18
|
+
|
|
19
|
+
Your code should look like:
|
|
20
|
+
const MyComponent = lazy(() => import('./MyComponent'))`,t),t.default;throw e._result}function D(){var e=q.H;return e===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
|
|
21
|
+
1. You might have mismatching versions of React and the renderer (such as React DOM)
|
|
22
|
+
2. You might be breaking the Rules of Hooks
|
|
23
|
+
3. You might have more than one copy of React in the same app
|
|
24
|
+
See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),e}function O(){q.asyncTransitions--}function k(e){if(Y===null)try{var n=(`require`+Math.random()).slice(0,7);Y=(t&&t[n]).call(t,`timers`).setImmediate}catch{Y=function(e){!1===ve&&(ve=!0,typeof MessageChannel>`u`&&console.error(`This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.`));var t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(void 0)}}return Y(e)}function A(e){return 1<e.length&&typeof AggregateError==`function`?AggregateError(e):e[0]}function j(e,t){t!==X-1&&console.error(`You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. `),X=t}function M(e,t,n){var r=q.actQueue;if(r!==null)if(r.length!==0)try{N(r),k(function(){return M(e,t,n)});return}catch(e){q.thrownErrors.push(e)}else q.actQueue=null;0<q.thrownErrors.length?(r=A(q.thrownErrors),q.thrownErrors.length=0,n(r)):t(e)}function N(e){if(!Q){Q=!0;var t=0;try{for(;t<e.length;t++){var n=e[t];do{q.didUsePromise=!1;var r=n(!1);if(r!==null){if(q.didUsePromise){e[t]=n,e.splice(0,t);return}n=r}else break}while(1)}e.length=0}catch(n){e.splice(0,t+1),q.thrownErrors.push(n)}finally{Q=!1}}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var P=Symbol.for(`react.transitional.element`),F=Symbol.for(`react.portal`),I=Symbol.for(`react.fragment`),te=Symbol.for(`react.strict_mode`),L=Symbol.for(`react.profiler`),R=Symbol.for(`react.consumer`),ne=Symbol.for(`react.context`),re=Symbol.for(`react.forward_ref`),z=Symbol.for(`react.suspense`),ie=Symbol.for(`react.suspense_list`),B=Symbol.for(`react.memo`),V=Symbol.for(`react.lazy`),ae=Symbol.for(`react.activity`),oe=Symbol.iterator,se={},H={isMounted:function(){return!1},enqueueForceUpdate:function(e){i(e,`forceUpdate`)},enqueueReplaceState:function(e){i(e,`replaceState`)},enqueueSetState:function(e){i(e,`setState`)}},U=Object.assign,W={};Object.freeze(W),a.prototype.isReactComponent={},a.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},a.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};var G={isMounted:[`isMounted`,`Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.`],replaceState:[`replaceState`,`Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).`]};for($ in G)G.hasOwnProperty($)&&n($,G[$]);o.prototype=a.prototype,G=s.prototype=new o,G.constructor=s,U(G,a.prototype),G.isPureReactComponent=!0;var K=Array.isArray,ce=Symbol.for(`react.client.reference`),q={H:null,A:null,T:null,S:null,actQueue:null,asyncTransitions:0,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1,didUsePromise:!1,thrownErrors:[],getCurrentStack:null,recentlyCreatedOwnerStacks:0},J=Object.prototype.hasOwnProperty,le=console.createTask?console.createTask:function(){return null};G={react_stack_bottom_frame:function(e){return e()}};var ue,de,fe={},pe=G.react_stack_bottom_frame.bind(G,m)(),me=le(f(m)),he=!1,ge=/\/+/g,_e=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ve=!1,Y=null,X=0,Z=!1,Q=!1,ye=typeof queueMicrotask==`function`?function(e){queueMicrotask(function(){return queueMicrotask(e)})}:k;G=Object.freeze({__proto__:null,c:function(e){return D().useMemoCache(e)}});var $={map:E,forEach:function(e,t,n){E(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return E(e,function(){t++}),t},toArray:function(e){return E(e,function(e){return e})||[]},only:function(e){if(!x(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=ae,e.Children=$,e.Component=a,e.Fragment=I,e.Profiler=L,e.PureComponent=s,e.StrictMode=te,e.Suspense=z,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=q,e.__COMPILER_RUNTIME=G,e.act=function(e){var t=q.actQueue,n=X;X++;var r=q.actQueue=t===null?[]:t,i=!1;try{var a=e()}catch(e){q.thrownErrors.push(e)}if(0<q.thrownErrors.length)throw j(t,n),e=A(q.thrownErrors),q.thrownErrors.length=0,e;if(typeof a==`object`&&a&&typeof a.then==`function`){var o=a;return ye(function(){i||Z||(Z=!0,console.error(`You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);`))}),{then:function(e,a){i=!0,o.then(function(i){if(j(t,n),n===0){try{N(r),k(function(){return M(i,e,a)})}catch(e){q.thrownErrors.push(e)}if(0<q.thrownErrors.length){var o=A(q.thrownErrors);q.thrownErrors.length=0,a(o)}}else e(i)},function(e){j(t,n),0<q.thrownErrors.length?(e=A(q.thrownErrors),q.thrownErrors.length=0,a(e)):a(e)})}}}var s=a;if(j(t,n),n===0&&(N(r),r.length!==0&&ye(function(){i||Z||(Z=!0,console.error("A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"))}),q.actQueue=null),0<q.thrownErrors.length)throw e=A(q.thrownErrors),q.thrownErrors.length=0,e;return{then:function(e,t){i=!0,n===0?(q.actQueue=r,k(function(){return M(s,e,t)})):e(s)}}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.captureOwnerStack=function(){var e=q.getCurrentStack;return e===null?null:e()},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=U({},e.props),i=e.key,a=e._owner;if(t!=null){var o;a:{if(J.call(t,`ref`)&&(o=Object.getOwnPropertyDescriptor(t,`ref`).get)&&o.isReactWarning){o=!1;break a}o=t.ref!==void 0}for(s in o&&(a=p()),h(t)&&(u(t.key),i=``+t.key),t)!J.call(t,s)||s===`key`||s===`__self`||s===`__source`||s===`ref`&&t.ref===void 0||(r[s]=t[s])}var s=arguments.length-2;if(s===1)r.children=n;else if(1<s){o=Array(s);for(var c=0;c<s;c++)o[c]=arguments[c+2];r.children=o}for(r=v(e.type,i,r,a,e._debugStack,e._debugTask),i=2;i<arguments.length;i++)b(arguments[i]);return r},e.createContext=function(e){return e={$$typeof:ne,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:R,_context:e},e._currentRenderer=null,e._currentRenderer2=null,e},e.createElement=function(e,t,n){for(var r=2;r<arguments.length;r++)b(arguments[r]);r={};var i=null;if(t!=null)for(c in de||!(`__self`in t)||`key`in t||(de=!0,console.warn(`Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform`)),h(t)&&(u(t.key),i=``+t.key),t)J.call(t,c)&&c!==`key`&&c!==`__self`&&c!==`__source`&&(r[c]=t[c]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];Object.freeze&&Object.freeze(o),r.children=o}if(e&&e.defaultProps)for(c in a=e.defaultProps,a)r[c]===void 0&&(r[c]=a[c]);i&&g(r,typeof e==`function`?e.displayName||e.name||`Unknown`:e);var c=1e4>q.recentlyCreatedOwnerStacks++;return v(e,i,r,p(),c?Error(`react-stack-top-frame`):pe,c?le(f(e)):me)},e.createRef=function(){var e={current:null};return Object.seal(e),e},e.forwardRef=function(e){e!=null&&e.$$typeof===B?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof e==`function`?e.length!==0&&e.length!==2&&console.error(`forwardRef render functions accept exactly two parameters: props and ref. %s`,e.length===1?`Did you forget to use the ref parameter?`:`Any additional parameter will be undefined.`):console.error(`forwardRef requires a render function but was given %s.`,e===null?`null`:typeof e),e!=null&&e.defaultProps!=null&&console.error(`forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?`);var t={$$typeof:re,render:e},n;return Object.defineProperty(t,`displayName`,{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,`name`,{value:t}),e.displayName=t)}}),t},e.isValidElement=x,e.lazy=function(e){e={_status:-1,_result:e};var t={$$typeof:V,_payload:e,_init:ee},n={name:`lazy`,start:-1,end:-1,value:null,owner:null,debugStack:Error(`react-stack-top-frame`),debugTask:console.createTask?console.createTask(`lazy()`):null};return e._ioInfo=n,t._debugInfo=[{awaited:n}],t},e.memo=function(e,t){e??console.error(`memo: The first argument must be a component. Instead received: %s`,e===null?`null`:typeof e),t={$$typeof:B,type:e,compare:t===void 0?null:t};var n;return Object.defineProperty(t,`displayName`,{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,`name`,{value:t}),e.displayName=t)}}),t},e.startTransition=function(e){var t=q.T,n={};n._updatedFibers=new Set,q.T=n;try{var r=e(),i=q.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&(q.asyncTransitions++,r.then(O,O),r.then(c,_e))}catch(e){_e(e)}finally{t===null&&n._updatedFibers&&(e=n._updatedFibers.size,n._updatedFibers.clear(),10<e&&console.warn(`Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.`)),t!==null&&n.types!==null&&(t.types!==null&&t.types!==n.types&&console.error(`We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.`),t.types=n.types),q.T=t}},e.unstable_useCacheRefresh=function(){return D().useCacheRefresh()},e.use=function(e){return D().use(e)},e.useActionState=function(e,t,n){return D().useActionState(e,t,n)},e.useCallback=function(e,t){return D().useCallback(e,t)},e.useContext=function(e){var t=D();return e.$$typeof===R&&console.error(`Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?`),t.useContext(e)},e.useDebugValue=function(e,t){return D().useDebugValue(e,t)},e.useDeferredValue=function(e,t){return D().useDeferredValue(e,t)},e.useEffect=function(e,t){return e??console.warn(`React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?`),D().useEffect(e,t)},e.useEffectEvent=function(e){return D().useEffectEvent(e)},e.useId=function(){return D().useId()},e.useImperativeHandle=function(e,t,n){return D().useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return e??console.warn(`React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?`),D().useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return e??console.warn(`React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?`),D().useLayoutEffect(e,t)},e.useMemo=function(e,t){return D().useMemo(e,t)},e.useOptimistic=function(e,t){return D().useOptimistic(e,t)},e.useReducer=function(e,t,n){return D().useReducer(e,t,n)},e.useRef=function(e){return D().useRef(e)},e.useState=function(e){return D().useState(e)},e.useSyncExternalStore=function(e,t,n){return D().useSyncExternalStore(e,t,n)},e.useTransition=function(){return D().useTransition()},e.version=`19.2.4`,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),r=e(((e,r)=>{process.env.NODE_ENV===`production`?r.exports=t():r.exports=n()}));export{r as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import{r as e}from"./chunk-D6axbAb-.js";import{t}from"./react-D__J1GQe.js";var n=e(t(),1);const r=(0,n.createContext)(null),i=r.Provider;function a(){let e=(0,n.useContext)(r);if(!e)throw Error(`useKBClient must be used within KBClientProvider`);return e}export{a as n,i as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import{r as e}from"./chunk-D6axbAb-.js";import{t}from"./react-D__J1GQe.js";var n=e(t(),1);function r(e,t){let[r,i]=(0,n.useState)(null),[a,o]=(0,n.useState)(null),s=(0,n.useRef)(e);return s.current=e,(0,n.useEffect)(()=>{let e=!0,n=!1,r=async()=>{if(!n){n=!0;try{let t=await s.current();e&&(i(t),o(null))}catch(t){e&&o(t instanceof Error?t:Error(String(t)))}finally{n=!1}}};r();let a=setInterval(()=>{r()},t);return()=>{e=!1,clearInterval(a)}},[t]),{data:r,error:a}}export{r as t};
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Scaffold System — Contributor Guide
|
|
2
|
+
|
|
3
|
+
> **⚠️ GOLDEN RULE: Never edit files in `scaffold/general/` or `scaffold/claude-code/` directly.**
|
|
4
|
+
> They are **generated output** and will be overwritten by `generate.mjs`.
|
|
5
|
+
> Always edit the **source files** in `scaffold/definitions/`.
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
scaffold/
|
|
11
|
+
├── definitions/ ← SOURCE OF TRUTH (edit here)
|
|
12
|
+
│ ├── agents.mjs Agent metadata (name, description, model, tools, category)
|
|
13
|
+
│ ├── bodies.mjs Agent body text (mode instructions per agent)
|
|
14
|
+
│ ├── models.mjs Available models per IDE
|
|
15
|
+
│ ├── protocols.mjs Shared protocol files (_shared/*.md) + templates
|
|
16
|
+
│ ├── tools.mjs Tool capability → IDE tool mappings
|
|
17
|
+
│ ├── prompts.mjs Prompt file content
|
|
18
|
+
│ ├── hooks.mjs Hook definitions
|
|
19
|
+
│ └── plugins.mjs Plugin definitions
|
|
20
|
+
│
|
|
21
|
+
├── adapters/ ← IDE-specific generators
|
|
22
|
+
│ ├── copilot.mjs GitHub Copilot adapter (active — generates ~32 files)
|
|
23
|
+
│ └── claude-code.mjs Claude Code adapter (stub — no output yet)
|
|
24
|
+
│
|
|
25
|
+
├── generate.mjs ← BUILD SCRIPT (run after any change)
|
|
26
|
+
│
|
|
27
|
+
├── general/ ← GENERATED OUTPUT for Copilot (DO NOT EDIT)
|
|
28
|
+
│ ├── agents/
|
|
29
|
+
│ │ ├── _shared/ Protocol files (from PROTOCOLS in protocols.mjs)
|
|
30
|
+
│ │ ├── templates/ Template files (from TEMPLATES in protocols.mjs)
|
|
31
|
+
│ │ └── *.agent.md Agent files (from AGENT_BODIES in bodies.mjs)
|
|
32
|
+
│ └── prompts/ Prompt files (from PROMPTS in prompts.mjs)
|
|
33
|
+
│
|
|
34
|
+
└── claude-code/ ← GENERATED OUTPUT for Claude Code (stub, DO NOT EDIT)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Data Flow
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
definitions/*.mjs → generate.mjs → scaffold/general/ → aikit init → .github/ (user project)
|
|
41
|
+
(source) (build script) (generated output) (deploy) (user workspace)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## How to Make Changes
|
|
45
|
+
|
|
46
|
+
### Step 1: Edit Source Files
|
|
47
|
+
|
|
48
|
+
| What you want to change | Edit this file |
|
|
49
|
+
|--------------------------|---------------|
|
|
50
|
+
| An agent's body/instructions | `definitions/bodies.mjs` → `AGENT_BODIES[agentName]` |
|
|
51
|
+
| Shared rules for code agents | `definitions/protocols.mjs` → `PROTOCOLS['code-agent-base']` |
|
|
52
|
+
| Shared rules for researchers | `definitions/protocols.mjs` → `PROTOCOLS['researcher-base']` |
|
|
53
|
+
| Agent metadata (model, tools) | `definitions/agents.mjs` → `AGENTS[agentName]` |
|
|
54
|
+
| Available models | `definitions/models.mjs` |
|
|
55
|
+
| Tool mappings | `definitions/tools.mjs` |
|
|
56
|
+
| Prompt files | `definitions/prompts.mjs` |
|
|
57
|
+
|
|
58
|
+
### Step 2: Regenerate Output
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
node scaffold/generate.mjs
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This will:
|
|
65
|
+
1. Clean `general/agents/` and `general/prompts/` directories
|
|
66
|
+
2. Regenerate all files from definitions via the copilot adapter
|
|
67
|
+
3. Print every file written (expect ~32 files)
|
|
68
|
+
|
|
69
|
+
To generate for a specific IDE only:
|
|
70
|
+
```bash
|
|
71
|
+
node scaffold/generate.mjs --ide copilot
|
|
72
|
+
node scaffold/generate.mjs --ide claude-code
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Step 3: Verify
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Syntax check the source file you edited
|
|
79
|
+
node -c scaffold/definitions/bodies.mjs
|
|
80
|
+
node -c scaffold/definitions/protocols.mjs
|
|
81
|
+
|
|
82
|
+
# Verify your changes appear in generated output
|
|
83
|
+
# (use grep/Select-String for key phrases)
|
|
84
|
+
grep -r "your key phrase" scaffold/general/agents/
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Step 4: Commit Both Source AND Generated
|
|
88
|
+
|
|
89
|
+
Always commit the definition source files AND the regenerated output together.
|
|
90
|
+
The generated files are checked into git so `aikit init` can deploy them without
|
|
91
|
+
running the generator.
|
|
92
|
+
|
|
93
|
+
## Source File Details
|
|
94
|
+
|
|
95
|
+
### bodies.mjs
|
|
96
|
+
|
|
97
|
+
Contains `AGENT_BODIES` — an object mapping agent names to their body text.
|
|
98
|
+
|
|
99
|
+
- Most values are **template literal strings** (`` `...` ``)
|
|
100
|
+
- The **Orchestrator** body is a **function** `(agentTable) => string` because it
|
|
101
|
+
dynamically includes the agent roster table
|
|
102
|
+
- Backticks inside content must be escaped: `` \` ``
|
|
103
|
+
|
|
104
|
+
```js
|
|
105
|
+
export const AGENT_BODIES = {
|
|
106
|
+
Orchestrator: (agentTable) => `# Orchestrator\n${agentTable}\n...`,
|
|
107
|
+
Implementer: `# Implementer\n...`,
|
|
108
|
+
Debugger: `# Debugger\n...`,
|
|
109
|
+
// ...
|
|
110
|
+
};
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### protocols.mjs
|
|
114
|
+
|
|
115
|
+
Contains `PROTOCOLS` and `TEMPLATES` — objects mapping names to markdown content.
|
|
116
|
+
|
|
117
|
+
- Each `PROTOCOLS` key becomes a file in `_shared/`:
|
|
118
|
+
- `'code-agent-base'` → `agents/_shared/code-agent-base.md`
|
|
119
|
+
- `'researcher-base'` → `agents/_shared/researcher-base.md`
|
|
120
|
+
- `'decision-protocol'` → `agents/_shared/decision-protocol.md`
|
|
121
|
+
- etc.
|
|
122
|
+
- Each `TEMPLATES` key becomes a file in `templates/`
|
|
123
|
+
- All values are template literals — escape backticks as `` \` ``
|
|
124
|
+
|
|
125
|
+
**Protocol → Agent mapping:**
|
|
126
|
+
|
|
127
|
+
| Protocol | Used by |
|
|
128
|
+
|----------|---------|
|
|
129
|
+
| `code-agent-base` | Implementer, Frontend, Refactor, Debugger |
|
|
130
|
+
| `researcher-base` | Researcher-Alpha/Beta/Gamma/Delta |
|
|
131
|
+
| `code-reviewer-base` | Code-Reviewer-Alpha/Beta |
|
|
132
|
+
| `architect-reviewer-base` | Architect-Reviewer-Alpha/Beta |
|
|
133
|
+
| `decision-protocol` | Referenced by Orchestrator workflow |
|
|
134
|
+
| `forge-protocol` | Referenced by code-agent-base |
|
|
135
|
+
|
|
136
|
+
### agents.mjs
|
|
137
|
+
|
|
138
|
+
Defines every agent's metadata:
|
|
139
|
+
- `description`, `argumentHint` — displayed in the agent picker
|
|
140
|
+
- `model` — which LLM model to use
|
|
141
|
+
- `tools` — abstract capability list (mapped to IDE-specific tools by the adapter)
|
|
142
|
+
- `category` — orchestration, implementation, diagnostics, research, review, etc.
|
|
143
|
+
- `sharedBase` — for variant agents (e.g., Researcher-Alpha uses `researcher-base`)
|
|
144
|
+
|
|
145
|
+
## How Users Receive Changes
|
|
146
|
+
|
|
147
|
+
When users run `aikit init`, the scaffold files are deployed to their `.github/` directory.
|
|
148
|
+
|
|
149
|
+
### First Install (Legacy Path)
|
|
150
|
+
|
|
151
|
+
`copyDirectoryRecursive()` — copies all scaffold files, **skips existing** files.
|
|
152
|
+
No tracking, no merging.
|
|
153
|
+
|
|
154
|
+
### Updates (Smart Path)
|
|
155
|
+
|
|
156
|
+
`smartCopyScaffold()` — manifest-based with `.aikit-scaffold.json`:
|
|
157
|
+
|
|
158
|
+
| File Status | Strategy | Behavior |
|
|
159
|
+
|-------------|----------|----------|
|
|
160
|
+
| `new` (not in manifest, not on disk) | deploy | Copy file, record hash |
|
|
161
|
+
| `new` (not in manifest, exists on disk) | record | Record hash only (preserve user edits) |
|
|
162
|
+
| `outdated` (source hash changed) | `merge-frontmatter` | **Agent files**: update body, union tools, keep user's model choice |
|
|
163
|
+
| `outdated` (source hash changed) | `overwrite` | **Protocol/shared files**: replace entirely |
|
|
164
|
+
| `current` (unchanged) | skip | No action |
|
|
165
|
+
|
|
166
|
+
The update strategy is determined by `getUpdateStrategy(relPath)` based on the file path.
|
|
167
|
+
|
|
168
|
+
**Key implication**: When you update an agent body in `bodies.mjs`, existing users will
|
|
169
|
+
get the updated body text while preserving their custom model choice and any extra tools
|
|
170
|
+
they added. Protocol files (`_shared/*.md`) are fully replaced.
|
|
171
|
+
|
|
172
|
+
## Common Mistakes
|
|
173
|
+
|
|
174
|
+
| Mistake | Why it's wrong | What to do instead |
|
|
175
|
+
|---------|---------------|-------------------|
|
|
176
|
+
| Editing `.agent.md` in `general/agents/` | Will be overwritten by `generate.mjs` | Edit `bodies.mjs` for agent bodies |
|
|
177
|
+
| Editing `_shared/*.md` in `general/agents/` | Will be overwritten by `generate.mjs` | Edit `protocols.mjs` PROTOCOLS constant |
|
|
178
|
+
| Forgetting to run `generate.mjs` | Generated files will be stale, `aikit init` deploys stale files | Always run after editing definitions |
|
|
179
|
+
| Committing only source OR only generated | Source and output will be out of sync | Commit both together |
|
|
180
|
+
| Unescaped backticks in template literals | JS syntax error in definitions | Use `` \` `` inside template literal strings |
|
|
181
|
+
|
|
182
|
+
## PR Checklist
|
|
183
|
+
|
|
184
|
+
- [ ] Changes made in `scaffold/definitions/*.mjs` (NOT in generated output)
|
|
185
|
+
- [ ] `node -c scaffold/definitions/<changed-file>.mjs` passes (syntax check)
|
|
186
|
+
- [ ] `node scaffold/generate.mjs` runs without errors
|
|
187
|
+
- [ ] Generated output contains expected changes (verified with grep)
|
|
188
|
+
- [ ] Both source and generated files included in commit
|
|
189
|
+
- [ ] If adding a new agent: entry in `agents.mjs` + body in `bodies.mjs`
|
|
190
|
+
- [ ] If adding a new protocol: entry in `protocols.mjs` + reference in relevant agent bodies
|
|
191
|
+
- [ ] If adding a new file type: check `getUpdateStrategy()` returns correct merge strategy
|
|
192
|
+
- [ ] Consider impact on existing user installations (will merge preserve their customizations?)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code adapter — generates Claude Code config from definitions.
|
|
3
|
+
*
|
|
4
|
+
* Output format:
|
|
5
|
+
* CLAUDE.md — Main instructions (agents + protocols inline)
|
|
6
|
+
* .claude/settings.json — Hooks config
|
|
7
|
+
* .mcp.json — MCP server config
|
|
8
|
+
* .claude/commands/{name}.md — Slash commands (from prompts)
|
|
9
|
+
*
|
|
10
|
+
* Status: STUB — not yet implemented.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export const CLAUDE_FLOWS_SECTION = [
|
|
14
|
+
'## Flows',
|
|
15
|
+
'',
|
|
16
|
+
"This project uses aikit's pluggable flow system. Check flow status with the `flow_status` MCP tool.",
|
|
17
|
+
"If a flow is active, follow the current step's skill instructions. Advance with `flow_step({ action: 'next' })`.",
|
|
18
|
+
'Use `flow_list` to see available flows and `flow_start` to begin one.',
|
|
19
|
+
].join('\n');
|
|
20
|
+
|
|
21
|
+
export const CLAUDE_ORCHESTRATOR_FLOW_ROUTING_SECTION = [
|
|
22
|
+
'## Flow-Aware Routing',
|
|
23
|
+
'',
|
|
24
|
+
'At session start, check for an active flow:',
|
|
25
|
+
'1. Call `flow_status` to check if a flow is active',
|
|
26
|
+
"2. If active and status is 'active':",
|
|
27
|
+
' - Note the current step name and skill path',
|
|
28
|
+
" - Load the current step's skill file",
|
|
29
|
+
' - Follow its instructions for this step',
|
|
30
|
+
" - When step is complete, call `flow_step({ action: 'next' })`",
|
|
31
|
+
'3. If no active flow:',
|
|
32
|
+
' - Check `flow_list` for available flows',
|
|
33
|
+
' - Suggest starting a flow based on the task type',
|
|
34
|
+
" - Use `flow_start({ flow: '<name>' })` to begin",
|
|
35
|
+
'',
|
|
36
|
+
'### Flow MCP Tools',
|
|
37
|
+
'| Tool | Purpose |',
|
|
38
|
+
'|------|---------|',
|
|
39
|
+
'| `flow_list` | List installed flows and active flow |',
|
|
40
|
+
'| `flow_info` | Get detailed flow info including steps |',
|
|
41
|
+
'| `flow_start` | Start a named flow |',
|
|
42
|
+
'| `flow_step` | Advance: next, skip, or redo current step |',
|
|
43
|
+
'| `flow_status` | Check current execution state |',
|
|
44
|
+
'| `flow_reset` | Clear flow state to start over |',
|
|
45
|
+
].join('\n');
|
|
46
|
+
|
|
47
|
+
export function generateClaudeCode() {
|
|
48
|
+
// TODO: Implement Claude Code adapter
|
|
49
|
+
// - Inline agent instructions into CLAUDE.md sections
|
|
50
|
+
// - Shared/common agent instructions should append CLAUDE_FLOWS_SECTION.
|
|
51
|
+
// - The Orchestrator section should also append CLAUDE_ORCHESTRATOR_FLOW_ROUTING_SECTION.
|
|
52
|
+
// - Map prompts to slash commands
|
|
53
|
+
// - Map hooks to .claude/settings.json hooks config
|
|
54
|
+
// - Generate .mcp.json
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copilot adapter — generates GitHub Copilot agent files from definitions.
|
|
3
|
+
*
|
|
4
|
+
* Output format:
|
|
5
|
+
* agents/{Name}.agent.md — YAML frontmatter + markdown body
|
|
6
|
+
* agents/_shared/{name}.md — Shared protocol files
|
|
7
|
+
* agents/templates/execution-state.md
|
|
8
|
+
* agents/README.md
|
|
9
|
+
* prompts/{name}.prompt.md — YAML frontmatter + markdown body
|
|
10
|
+
*
|
|
11
|
+
* Copilot-specific conventions:
|
|
12
|
+
* - model field appends " (copilot)" suffix
|
|
13
|
+
* - tools are listed as YAML array in frontmatter
|
|
14
|
+
* - prompts target a specific agent via `agent:` field
|
|
15
|
+
* - hooks are embedded in copilot-instructions.md (not separate files)
|
|
16
|
+
* - plugins/skills are SKILL.md files in .github/skills/
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { AGENTS } from '../definitions/agents.mjs';
|
|
20
|
+
import { AGENT_BODIES } from '../definitions/bodies.mjs';
|
|
21
|
+
import { MODELS, VARIANT_GROUPS } from '../definitions/models.mjs';
|
|
22
|
+
import { PROMPTS } from '../definitions/prompts.mjs';
|
|
23
|
+
import { PROTOCOLS, TEMPLATES } from '../definitions/protocols.mjs';
|
|
24
|
+
import { IDE_CAPABILITIES } from '../definitions/tools.mjs';
|
|
25
|
+
|
|
26
|
+
// ─── Copilot tool mapping ─────────────────────────────────────────────────
|
|
27
|
+
|
|
28
|
+
/** Map abstract IDE capability names to Copilot tool identifiers */
|
|
29
|
+
const COPILOT_TOOL_MAP = {
|
|
30
|
+
terminal: 'execute/runInTerminal',
|
|
31
|
+
problems: 'read/problems',
|
|
32
|
+
readFile: 'read/readFile',
|
|
33
|
+
lastCommand: 'read/terminalLastCommand',
|
|
34
|
+
subagent: 'agent/runSubagent',
|
|
35
|
+
createFile: 'edit/createFile',
|
|
36
|
+
editFiles: 'edit/editFiles',
|
|
37
|
+
rename: 'edit/rename',
|
|
38
|
+
createDirectory: 'edit/createDirectory',
|
|
39
|
+
search: 'search/changes, search/codebase, search/usages',
|
|
40
|
+
web: 'web/fetch, web/githubRepo',
|
|
41
|
+
todo: 'todo',
|
|
42
|
+
memory: 'vscode/memory',
|
|
43
|
+
askQuestions: 'vscode/askQuestions',
|
|
44
|
+
resolveMemoryFileUri: 'vscode/resolveMemoryFileUri',
|
|
45
|
+
runCommand: 'vscode/runCommand',
|
|
46
|
+
switchAgent: 'vscode/switchAgent',
|
|
47
|
+
killTerminal: 'execute/killTerminal',
|
|
48
|
+
createTask: 'execute/createAndRunTask',
|
|
49
|
+
terminalSel: 'read/terminalSelection',
|
|
50
|
+
fileSearch: 'search/fileSearch',
|
|
51
|
+
listDir: 'search/listDirectory',
|
|
52
|
+
textSearch: 'search/textSearch',
|
|
53
|
+
searchSubagent: 'search/searchSubagent',
|
|
54
|
+
browser:
|
|
55
|
+
'browser/openBrowserPage, browser/readPage, browser/screenshotPage, browser/navigatePage, browser/clickElement, browser/dragElement, browser/hoverElement, browser/typeInPage, browser/runPlaywrightCode, browser/handleDialog',
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
function buildToolsYaml(toolRole) {
|
|
59
|
+
const capabilities = IDE_CAPABILITIES[toolRole] || [];
|
|
60
|
+
const copilotTools = capabilities.map((cap) => COPILOT_TOOL_MAP[cap]).filter(Boolean);
|
|
61
|
+
// Use server wildcard instead of listing all 67 tools individually.
|
|
62
|
+
// VS Code expands `<server-name>/*` to all tools from that MCP server.
|
|
63
|
+
return `[${[...copilotTools, 'aikit/*'].join(', ')}]`;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function copilotModel(agentName) {
|
|
67
|
+
const base = MODELS[agentName];
|
|
68
|
+
return base ? `${base} (copilot)` : 'Claude Opus 4.6 (copilot)';
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const FLOWS_SECTION = [
|
|
72
|
+
'## Flows',
|
|
73
|
+
'',
|
|
74
|
+
"This project uses aikit's pluggable flow system. Check flow status with the `flow_status` MCP tool.",
|
|
75
|
+
"If a flow is active, follow the current step's skill instructions. Advance with `flow_step({ action: 'next' })`.",
|
|
76
|
+
'Use `flow_list` to see available flows and `flow_start` to begin one.',
|
|
77
|
+
].join('\n');
|
|
78
|
+
|
|
79
|
+
// ─── Agent file generators ────────────────────────────────────────────────
|
|
80
|
+
|
|
81
|
+
function buildAgentTable() {
|
|
82
|
+
const rows = [];
|
|
83
|
+
for (const [name, def] of Object.entries(AGENTS)) {
|
|
84
|
+
if (def.variants) {
|
|
85
|
+
for (const suffix of VARIANT_GROUPS[name] || []) {
|
|
86
|
+
const fullName = `${name}-${suffix}`;
|
|
87
|
+
const model = MODELS[fullName] || 'Unknown';
|
|
88
|
+
const varDef = def.variants[suffix] || {};
|
|
89
|
+
const desc = varDef.description || def.description;
|
|
90
|
+
rows.push(`| **${fullName}** | ${desc} | ${model} | ${def.category} |`);
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
const model = MODELS[name] || 'Unknown';
|
|
94
|
+
rows.push(`| **${name}** | ${def.description} | ${model} | ${def.category} |`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return `| Agent | Purpose | Model | Category |\n|-------|---------|-------|----------|\n${rows.join('\n')}`;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function generateVariantAgent(roleName, suffix, def) {
|
|
101
|
+
const fullName = `${roleName}-${suffix}`;
|
|
102
|
+
const varDef = def.variants[suffix] || {};
|
|
103
|
+
const model = copilotModel(fullName);
|
|
104
|
+
const desc = varDef.description || def.description;
|
|
105
|
+
const identity =
|
|
106
|
+
varDef.identity ||
|
|
107
|
+
(suffix === VARIANT_GROUPS[roleName]?.[0]
|
|
108
|
+
? `, the primary ${roleName} agent.`
|
|
109
|
+
: `, a variant of ${roleName}. Same responsibilities, different model perspective.`);
|
|
110
|
+
|
|
111
|
+
const sharedRef = def.sharedBase
|
|
112
|
+
? `\n**Read .github/agents/_shared/${def.sharedBase}.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.`
|
|
113
|
+
: '';
|
|
114
|
+
|
|
115
|
+
const extra = def.extraBody ? `\n\n${def.extraBody}` : '';
|
|
116
|
+
|
|
117
|
+
const skillsSection = def.skills?.length
|
|
118
|
+
? `\n\n## Skills (load on demand)\n\n| Skill | When to load |\n|-------|--------------|\n${def.skills.map(([s, w]) => `| ${s} | ${w} |`).join('\n')}`
|
|
119
|
+
: '';
|
|
120
|
+
|
|
121
|
+
const title = def.title || roleName;
|
|
122
|
+
|
|
123
|
+
return `---
|
|
124
|
+
description: '${desc}'
|
|
125
|
+
${def.argumentHint ? `argument-hint: ${def.argumentHint}\n` : ''}tools: ${buildToolsYaml(def.toolRole)}
|
|
126
|
+
model: ${model}
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
# ${fullName} - ${title}
|
|
130
|
+
|
|
131
|
+
You are **${fullName}**${identity}${extra}
|
|
132
|
+
${sharedRef}${skillsSection}
|
|
133
|
+
|
|
134
|
+
${FLOWS_SECTION}
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function generateSingleAgent(name, def) {
|
|
139
|
+
const model = copilotModel(name);
|
|
140
|
+
const body =
|
|
141
|
+
typeof AGENT_BODIES[name] === 'function'
|
|
142
|
+
? AGENT_BODIES[name](buildAgentTable())
|
|
143
|
+
: AGENT_BODIES[name] || '';
|
|
144
|
+
|
|
145
|
+
const title = def.title || name;
|
|
146
|
+
|
|
147
|
+
return `---
|
|
148
|
+
description: '${def.description}'
|
|
149
|
+
${def.argumentHint ? `argument-hint: ${def.argumentHint}\n` : ''}tools: ${buildToolsYaml(def.toolRole)}
|
|
150
|
+
model: ${model}
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
# ${name} - ${title}
|
|
154
|
+
|
|
155
|
+
You are the **${name}**, ${def.description.toLowerCase().replace(/^./, (c) => c.toLowerCase())}
|
|
156
|
+
|
|
157
|
+
${body}
|
|
158
|
+
|
|
159
|
+
${FLOWS_SECTION}
|
|
160
|
+
`;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// ─── Prompt file generator ────────────────────────────────────────────────
|
|
164
|
+
|
|
165
|
+
function generatePrompt(_name, def) {
|
|
166
|
+
const kbTools = (def.tools || []).map((t) => `aikit/${t}`);
|
|
167
|
+
const toolsYaml = kbTools.map((t) => ` - ${t}`).join('\n');
|
|
168
|
+
return `---
|
|
169
|
+
description: "${def.description}"
|
|
170
|
+
agent: "${def.agent}"
|
|
171
|
+
tools:
|
|
172
|
+
${toolsYaml}
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
${def.content}
|
|
176
|
+
`;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// ─── README generator ─────────────────────────────────────────────────────
|
|
180
|
+
|
|
181
|
+
function generateReadme() {
|
|
182
|
+
return `# Agents
|
|
183
|
+
|
|
184
|
+
This directory contains AI agent definitions generated by \`@vpxa/aikit init\`.
|
|
185
|
+
|
|
186
|
+
## Agent Roster
|
|
187
|
+
|
|
188
|
+
${buildAgentTable()}
|
|
189
|
+
|
|
190
|
+
## Multi-Model Pattern
|
|
191
|
+
|
|
192
|
+
Variant agents (Researcher-Alpha/Beta/Gamma/Delta, Code-Reviewer-Alpha/Beta, Architect-Reviewer-Alpha/Beta) share the same methodology via files in \`_shared/\`. They differ only in which LLM model backs them — enabling multi-model decision analysis and dual-review workflows.
|
|
193
|
+
|
|
194
|
+
**Agent names are model-agnostic.** The model behind Alpha/Beta/Gamma/Delta can be changed in \`scaffold/definitions/models.mjs\` without renaming any agent files.
|
|
195
|
+
|
|
196
|
+
## Structure
|
|
197
|
+
|
|
198
|
+
\`\`\`
|
|
199
|
+
agents/
|
|
200
|
+
{Name}.agent.md — Agent definition (YAML frontmatter + instructions)
|
|
201
|
+
_shared/ — Shared protocols referenced by multiple agents
|
|
202
|
+
code-agent-base.md — Base for all code-modifying agents
|
|
203
|
+
researcher-base.md — Base for all Researcher variants
|
|
204
|
+
code-reviewer-base.md — Base for all Code-Reviewer variants
|
|
205
|
+
architect-reviewer-base.md — Base for all Architect-Reviewer variants
|
|
206
|
+
decision-protocol.md — Multi-model decision protocol rules
|
|
207
|
+
forge-protocol.md — FORGE quality gate protocol
|
|
208
|
+
templates/
|
|
209
|
+
execution-state.md — Orchestrator state tracking template
|
|
210
|
+
adr-template.md — Architecture Decision Record template
|
|
211
|
+
\`\`\`
|
|
212
|
+
|
|
213
|
+
## Regenerating
|
|
214
|
+
|
|
215
|
+
To regenerate after changing models or agent definitions:
|
|
216
|
+
|
|
217
|
+
\`\`\`bash
|
|
218
|
+
cd knowledge-base
|
|
219
|
+
node scaffold/generate.mjs
|
|
220
|
+
\`\`\`
|
|
221
|
+
`;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// ─── Public API ───────────────────────────────────────────────────────────
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Generate all Copilot scaffold files.
|
|
228
|
+
* Returns an array of { path, content } objects.
|
|
229
|
+
* The caller (generate.mjs) is responsible for writing them to disk.
|
|
230
|
+
*/
|
|
231
|
+
export function generateCopilot() {
|
|
232
|
+
const files = [];
|
|
233
|
+
|
|
234
|
+
// Agent files
|
|
235
|
+
for (const [name, def] of Object.entries(AGENTS)) {
|
|
236
|
+
if (def.variants) {
|
|
237
|
+
for (const suffix of VARIANT_GROUPS[name] || []) {
|
|
238
|
+
files.push({
|
|
239
|
+
path: `agents/${name}-${suffix}.agent.md`,
|
|
240
|
+
content: generateVariantAgent(name, suffix, def),
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
} else {
|
|
244
|
+
files.push({
|
|
245
|
+
path: `agents/${name}.agent.md`,
|
|
246
|
+
content: generateSingleAgent(name, def),
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Shared protocols
|
|
252
|
+
for (const [name, content] of Object.entries(PROTOCOLS)) {
|
|
253
|
+
files.push({ path: `agents/_shared/${name}.md`, content: `${content}\n` });
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Templates
|
|
257
|
+
for (const [name, content] of Object.entries(TEMPLATES)) {
|
|
258
|
+
files.push({ path: `agents/templates/${name}.md`, content: `${content}\n` });
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// README
|
|
262
|
+
files.push({ path: 'agents/README.md', content: generateReadme() });
|
|
263
|
+
|
|
264
|
+
// Prompts
|
|
265
|
+
for (const [name, def] of Object.entries(PROMPTS)) {
|
|
266
|
+
files.push({ path: `prompts/${name}.prompt.md`, content: generatePrompt(name, def) });
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
return files;
|
|
270
|
+
}
|