@aiwg/cli 0.0.0-bootstrap.0 → 2026.7.17
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/README.md +21 -1
- package/bin/aiwg.mjs +349 -0
- package/dist/src/a2a/agent-card.js +145 -0
- package/dist/src/a2a/client.js +411 -0
- package/dist/src/a2a/hitl-cli.js +171 -0
- package/dist/src/a2a/hitl-driver.js +370 -0
- package/dist/src/a2a/hitl.js +181 -0
- package/dist/src/a2a/http.js +193 -0
- package/dist/src/a2a/jcs.js +128 -0
- package/dist/src/a2a/jws.js +187 -0
- package/dist/src/a2a/types.js +24 -0
- package/dist/src/a2a/webhook.js +240 -0
- package/dist/src/activity-log/cli.js +348 -0
- package/dist/src/activity-log/parser.js +81 -0
- package/dist/src/activity-log/types.js +50 -0
- package/dist/src/agents/agent-deployer.js +367 -0
- package/dist/src/agents/agent-packager.js +271 -0
- package/dist/src/agents/agent-validator.js +271 -0
- package/dist/src/agents/grounding/knowledge-base.js +161 -0
- package/dist/src/agents/grounding/types.js +12 -0
- package/dist/src/agents/index.js +10 -0
- package/dist/src/agents/packaged-agent-inventory.js +75 -0
- package/dist/src/agents/types.js +7 -0
- package/dist/src/api/index.d.ts +10 -0
- package/dist/src/api/index.js +10 -0
- package/dist/src/artifacts/address-parser.js +73 -0
- package/dist/src/artifacts/audit/cli.js +183 -0
- package/dist/src/artifacts/audit/drift.js +122 -0
- package/dist/src/artifacts/audit/types.js +12 -0
- package/dist/src/artifacts/backends/graphology-backend.js +160 -0
- package/dist/src/artifacts/backends/json-backend.js +129 -0
- package/dist/src/artifacts/backends/sqlite-backend.js +199 -0
- package/dist/src/artifacts/browser-export.js +622 -0
- package/dist/src/artifacts/capability-resolver.js +94 -0
- package/dist/src/artifacts/checksum-manifest.js +91 -0
- package/dist/src/artifacts/citation-parser.js +162 -0
- package/dist/src/artifacts/cli.js +1462 -0
- package/dist/src/artifacts/corpus-tools/citation-densify.js +311 -0
- package/dist/src/artifacts/corpus-tools/cli.js +393 -0
- package/dist/src/artifacts/corpus-tools/corpus-graph.js +225 -0
- package/dist/src/artifacts/corpus-tools/curator.js +186 -0
- package/dist/src/artifacts/corpus-tools/discovery-log.js +70 -0
- package/dist/src/artifacts/corpus-tools/funder-network.js +141 -0
- package/dist/src/artifacts/corpus-tools/induction-audit.js +233 -0
- package/dist/src/artifacts/corpus-tools/integrity-scan.js +202 -0
- package/dist/src/artifacts/corpus-tools/profile-communities.js +166 -0
- package/dist/src/artifacts/corpus-tools/profile-edges.js +72 -0
- package/dist/src/artifacts/corpus-tools/profile-embed.js +113 -0
- package/dist/src/artifacts/corpus-tools/profile-generate-fm.js +167 -0
- package/dist/src/artifacts/corpus-tools/profile-generate.js +181 -0
- package/dist/src/artifacts/corpus-tools/profile-metrics.js +98 -0
- package/dist/src/artifacts/corpus-tools/profile-status.js +86 -0
- package/dist/src/artifacts/corpus-tools/profile-temporal.js +139 -0
- package/dist/src/artifacts/corpus-tools/radar-init.js +93 -0
- package/dist/src/artifacts/corpus-tools/radar-report.js +118 -0
- package/dist/src/artifacts/corpus-tools/radar-shared.js +189 -0
- package/dist/src/artifacts/corpus-tools/radar-status.js +68 -0
- package/dist/src/artifacts/corpus-tools/sidecar-lint.js +233 -0
- package/dist/src/artifacts/corpus-tools/sidecar-repair.js +277 -0
- package/dist/src/artifacts/corpus-tools/snapshot.js +591 -0
- package/dist/src/artifacts/corpus-tools/source-types.js +164 -0
- package/dist/src/artifacts/corpus-tools/vision-extract.js +243 -0
- package/dist/src/artifacts/corpus-views/build.js +126 -0
- package/dist/src/artifacts/corpus-views/corpus-config.js +124 -0
- package/dist/src/artifacts/corpus-views/ref-parser.js +437 -0
- package/dist/src/artifacts/corpus-views/renderers.js +353 -0
- package/dist/src/artifacts/corpus-views/taxonomies.js +131 -0
- package/dist/src/artifacts/dep-graph.js +173 -0
- package/dist/src/artifacts/discover-facets.js +375 -0
- package/dist/src/artifacts/embedding-index.js +354 -0
- package/dist/src/artifacts/enrichment/cli.js +240 -0
- package/dist/src/artifacts/enrichment/prompt.js +47 -0
- package/dist/src/artifacts/enrichment/store.js +90 -0
- package/dist/src/artifacts/enrichment/types.js +12 -0
- package/dist/src/artifacts/fortemi-core-query-adapter.js +475 -0
- package/dist/src/artifacts/fortemi-core-sync.js +251 -0
- package/dist/src/artifacts/fortemi-shard-export.js +44 -0
- package/dist/src/artifacts/fulltext.js +108 -0
- package/dist/src/artifacts/graph-backend.js +51 -0
- package/dist/src/artifacts/graph-query.js +247 -0
- package/dist/src/artifacts/hybrid-query.js +225 -0
- package/dist/src/artifacts/index-builder.js +1089 -0
- package/dist/src/artifacts/index-reader.js +112 -0
- package/dist/src/artifacts/index-status.js +193 -0
- package/dist/src/artifacts/legacy-index-migration.js +169 -0
- package/dist/src/artifacts/move.js +154 -0
- package/dist/src/artifacts/operational-state.js +239 -0
- package/dist/src/artifacts/prebuilt-build-lock.js +49 -0
- package/dist/src/artifacts/query-engine.js +1955 -0
- package/dist/src/artifacts/source-graph.js +529 -0
- package/dist/src/artifacts/stats.js +169 -0
- package/dist/src/artifacts/types.js +606 -0
- package/dist/src/artifacts/views/cli.js +293 -0
- package/dist/src/artifacts/views/definition.js +170 -0
- package/dist/src/artifacts/views/store.js +149 -0
- package/dist/src/artifacts/views/types.js +8 -0
- package/dist/src/artifacts/watcher.js +255 -0
- package/dist/src/catalog/builtin-models.json +636 -0
- package/dist/src/catalog/cli.js +228 -0
- package/dist/src/catalog/cli.mjs +289 -0
- package/dist/src/catalog/index.js +15 -0
- package/dist/src/catalog/loader.js +217 -0
- package/dist/src/catalog/loader.mjs +251 -0
- package/dist/src/catalog/sources.json +41 -0
- package/dist/src/catalog/types.js +8 -0
- package/dist/src/channel/manager.mjs +504 -0
- package/dist/src/cli/agent-spawn.js +178 -0
- package/dist/src/cli/cli-extension-loader.js +245 -0
- package/dist/src/cli/command-log.js +275 -0
- package/dist/src/cli/config-loader.js +232 -0
- package/dist/src/cli/env.js +82 -0
- package/dist/src/cli/errors.js +150 -0
- package/dist/src/cli/find-package-root.js +40 -0
- package/dist/src/cli/git-hooks.js +250 -0
- package/dist/src/cli/handlers/agentcard.js +206 -0
- package/dist/src/cli/handlers/artifacts.js +76 -0
- package/dist/src/cli/handlers/best-practices-audit.js +280 -0
- package/dist/src/cli/handlers/cockpit.js +137 -0
- package/dist/src/cli/handlers/command-log.js +37 -0
- package/dist/src/cli/handlers/daemon.js +59 -0
- package/dist/src/cli/handlers/diagnose.js +300 -0
- package/dist/src/cli/handlers/execution-mode.js +105 -0
- package/dist/src/cli/handlers/feedback.js +341 -0
- package/dist/src/cli/handlers/help.js +147 -0
- package/dist/src/cli/handlers/index.js +302 -0
- package/dist/src/cli/handlers/init.js +179 -0
- package/dist/src/cli/handlers/install.js +129 -0
- package/dist/src/cli/handlers/issues.js +46 -0
- package/dist/src/cli/handlers/lint.js +42 -0
- package/dist/src/cli/handlers/local-executor.js +315 -0
- package/dist/src/cli/handlers/marketplace.js +168 -0
- package/dist/src/cli/handlers/mc.js +1010 -0
- package/dist/src/cli/handlers/models.js +352 -0
- package/dist/src/cli/handlers/packages.js +155 -0
- package/dist/src/cli/handlers/ralph-launcher.js +717 -0
- package/dist/src/cli/handlers/ralph.js +575 -0
- package/dist/src/cli/handlers/refresh.js +432 -0
- package/dist/src/cli/handlers/regenerate.js +336 -0
- package/dist/src/cli/handlers/repo-access.js +109 -0
- package/dist/src/cli/handlers/run.js +165 -0
- package/dist/src/cli/handlers/runtime-info.js +301 -0
- package/dist/src/cli/handlers/sandbox.js +197 -0
- package/dist/src/cli/handlers/scaffolding.js +149 -0
- package/dist/src/cli/handlers/script-runner.js +121 -0
- package/dist/src/cli/handlers/sdlc-accelerate.js +148 -0
- package/dist/src/cli/handlers/serve.js +1835 -0
- package/dist/src/cli/handlers/session.js +348 -0
- package/dist/src/cli/handlers/setup.js +440 -0
- package/dist/src/cli/handlers/skill-lint.js +367 -0
- package/dist/src/cli/handlers/skill-usage.js +74 -0
- package/dist/src/cli/handlers/steward.js +567 -0
- package/dist/src/cli/handlers/subcommands.js +1702 -0
- package/dist/src/cli/handlers/team.js +337 -0
- package/dist/src/cli/handlers/types.js +11 -0
- package/dist/src/cli/handlers/use.js +2772 -0
- package/dist/src/cli/handlers/utilities.js +703 -0
- package/dist/src/cli/handlers/version.js +134 -0
- package/dist/src/cli/handlers/workspace-context.js +93 -0
- package/dist/src/cli/handlers/workspace.js +126 -0
- package/dist/src/cli/help-generator.js +178 -0
- package/dist/src/cli/hooks/builtin/activity-log-hook.js +126 -0
- package/dist/src/cli/hooks/executor.js +96 -0
- package/dist/src/cli/hooks/index.js +15 -0
- package/dist/src/cli/hooks/registry.js +143 -0
- package/dist/src/cli/hooks/types.js +13 -0
- package/dist/src/cli/log.js +492 -0
- package/dist/src/cli/project-isolation/detect.js +70 -0
- package/dist/src/cli/project-isolation/index.js +7 -0
- package/dist/src/cli/project-isolation/signals.js +17 -0
- package/dist/src/cli/project-isolation/warning.js +102 -0
- package/dist/src/cli/prompt-utils.js +155 -0
- package/dist/src/cli/provider-deployment-plan.js +126 -0
- package/dist/src/cli/provider-resolution.js +119 -0
- package/dist/src/cli/router.js +305 -0
- package/dist/src/cli/scope-resolver.js +392 -0
- package/dist/src/cli/skill-usage.js +616 -0
- package/dist/src/cli/ui.js +224 -0
- package/dist/src/cli/watch-service.js +203 -0
- package/dist/src/cli/workflow-orchestrator.js +478 -0
- package/dist/src/cli/workspace-signals.js +321 -0
- package/dist/src/community/footer.js +14 -0
- package/dist/src/community/links.js +123 -0
- package/dist/src/community/milestones.js +46 -0
- package/dist/src/community/nudge-policy.js +93 -0
- package/dist/src/config/aiwg-config.js +883 -0
- package/dist/src/config/cli.js +703 -0
- package/dist/src/config/gitignore.js +156 -0
- package/dist/src/config/project-artifacts.js +76 -0
- package/dist/src/config/user-config.js +428 -0
- package/dist/src/config/user-registry.js +127 -0
- package/dist/src/config/workspace.js +276 -0
- package/dist/src/contributors/detect.js +39 -0
- package/dist/src/contributors/discover.js +172 -0
- package/dist/src/contributors/heuristic.js +186 -0
- package/dist/src/contributors/index.js +11 -0
- package/dist/src/contributors/types.js +13 -0
- package/dist/src/contributors/validation.js +116 -0
- package/dist/src/data/community.schema.json +43 -0
- package/dist/src/data/community.yaml +16 -0
- package/dist/src/extensions/capability-index.js +270 -0
- package/dist/src/extensions/claude-hooks-installer.js +268 -0
- package/dist/src/extensions/commands/definitions.js +3485 -0
- package/dist/src/extensions/deployment-registration.js +463 -0
- package/dist/src/extensions/index.js +22 -0
- package/dist/src/extensions/loader.js +132 -0
- package/dist/src/extensions/managed-marker.js +100 -0
- package/dist/src/extensions/manifest.js +196 -0
- package/dist/src/extensions/project-local-activity.js +114 -0
- package/dist/src/extensions/project-local-discovery.js +261 -0
- package/dist/src/extensions/project-local-doctor.js +281 -0
- package/dist/src/extensions/project-local-gitignore.js +176 -0
- package/dist/src/extensions/project-local-paths.js +121 -0
- package/dist/src/extensions/project-local-promote.js +218 -0
- package/dist/src/extensions/project-local-remove.js +373 -0
- package/dist/src/extensions/project-local-scaffold.js +252 -0
- package/dist/src/extensions/project-quickref.js +291 -0
- package/dist/src/extensions/registry.js +368 -0
- package/dist/src/extensions/shadow-resolver.js +271 -0
- package/dist/src/extensions/types.js +86 -0
- package/dist/src/extensions/upstream-registry.js +195 -0
- package/dist/src/extensions/validation.js +631 -0
- package/dist/src/features/catalog.js +88 -0
- package/dist/src/features/cli.js +197 -0
- package/dist/src/features/installer.js +57 -0
- package/dist/src/features/paths.js +14 -0
- package/dist/src/features/runtime.js +21 -0
- package/dist/src/features/status.js +134 -0
- package/dist/src/hooks/laziness-detection.js +532 -0
- package/dist/src/intake/git-history-analyzer.js +486 -0
- package/dist/src/intake/index.js +9 -0
- package/dist/src/issues/cli.js +327 -0
- package/dist/src/issues/index.js +5 -0
- package/dist/src/issues/live.js +154 -0
- package/dist/src/issues/local.js +666 -0
- package/dist/src/issues/sync.js +143 -0
- package/dist/src/issues/types.js +2 -0
- package/dist/src/issues/workflows.js +164 -0
- package/dist/src/kb/cli.js +173 -0
- package/dist/src/lint/cli.js +171 -0
- package/dist/src/lint/loader.js +225 -0
- package/dist/src/lint/reporters.js +141 -0
- package/dist/src/lint/runner.js +364 -0
- package/dist/src/lint/types.js +10 -0
- package/dist/src/marketplace/cache.js +110 -0
- package/dist/src/marketplace/identifier.js +63 -0
- package/dist/src/marketplace/registry.js +36 -0
- package/dist/src/marketplace/sources/clawhub.js +53 -0
- package/dist/src/marketplace/sources/git.js +45 -0
- package/dist/src/marketplace/types.js +9 -0
- package/dist/src/mcp/adapters/codex-runtime.js +224 -0
- package/dist/src/mcp/cli.mjs +1197 -0
- package/dist/src/mcp/elicitation.mjs +149 -0
- package/dist/src/mcp/helpers.mjs +287 -0
- package/dist/src/mcp/index.mjs +11 -0
- package/dist/src/mcp/profiles.js +263 -0
- package/dist/src/mcp/profiles.mjs +360 -0
- package/dist/src/mcp/registry.js +376 -0
- package/dist/src/mcp/registry.mjs +387 -0
- package/dist/src/mcp/server.mjs +633 -0
- package/dist/src/mcp/test-simple.mjs +271 -0
- package/dist/src/mcp/tools/command-run.mjs +101 -0
- package/dist/src/mcp/tools/discovery.mjs +291 -0
- package/dist/src/mcp/tools/interaction.mjs +87 -0
- package/dist/src/mcp/tools/orchestration.mjs +320 -0
- package/dist/src/mcp/tools/subsystems.mjs +640 -0
- package/dist/src/memory/cli.js +166 -0
- package/dist/src/memory/project-registry.js +282 -0
- package/dist/src/metrics/artifact-metrics.js +184 -0
- package/dist/src/metrics/context-budget.js +174 -0
- package/dist/src/metrics/token-counter.js +133 -0
- package/dist/src/models/config-loader.js +228 -0
- package/dist/src/models/index.js +22 -0
- package/dist/src/models/model-capabilities.v1.json +120 -0
- package/dist/src/models/model-catalog.v1.json +96 -0
- package/dist/src/models/model-discovery.js +521 -0
- package/dist/src/models/provider-models.js +73 -0
- package/dist/src/models/provider-policy.js +273 -0
- package/dist/src/models/resolver.js +245 -0
- package/dist/src/models/router.js +70 -0
- package/dist/src/models/types.js +8 -0
- package/dist/src/models/wrapper-deployment.js +178 -0
- package/dist/src/models/wrapper-route.js +54 -0
- package/dist/src/ops/cli.js +268 -0
- package/dist/src/ops/registry.js +623 -0
- package/dist/src/packages/adapters/clawhub.js +113 -0
- package/dist/src/packages/adapters/git.js +153 -0
- package/dist/src/packages/adapters/gitea.js +93 -0
- package/dist/src/packages/adapters/github.js +69 -0
- package/dist/src/packages/adapters/local-cache.js +89 -0
- package/dist/src/packages/package-registry.js +143 -0
- package/dist/src/packages/registry.js +238 -0
- package/dist/src/packages/types.js +11 -0
- package/dist/src/plugin/cross-framework-ops.js +475 -0
- package/dist/src/plugin/framework-config-loader.js +235 -0
- package/dist/src/plugin/framework-detector.js +186 -0
- package/dist/src/plugin/framework-isolator.js +341 -0
- package/dist/src/plugin/framework-migration.js +371 -0
- package/dist/src/plugin/metadata-validator.js +906 -0
- package/dist/src/plugin/plugin-installer.js +436 -0
- package/dist/src/plugin/plugin-status.js +369 -0
- package/dist/src/plugin/plugin-uninstaller.js +473 -0
- package/dist/src/plugin/registry-validator.js +344 -0
- package/dist/src/plugin/skill-command-translator.js +415 -0
- package/dist/src/plugin/workspace-creator.js +189 -0
- package/dist/src/plugin/workspace-migrator.js +821 -0
- package/dist/src/policy/authorization.js +390 -0
- package/dist/src/policy/repo-access.js +215 -0
- package/dist/src/provenance/cli.js +16 -0
- package/dist/src/providers/capability-matrix.js +300 -0
- package/dist/src/providers/capability-matrix.yaml +514 -0
- package/dist/src/providers/provider-definitions.js +977 -0
- package/dist/src/providers/provider-definitions.mjs +159 -0
- package/dist/src/providers/provider-inventory.js +169 -0
- package/dist/src/quality/feedback-ab.js +174 -0
- package/dist/src/quality/feedback-collector.js +176 -0
- package/dist/src/quality/feedback-tracker.js +123 -0
- package/dist/src/quality/patterns/adr.json +24 -0
- package/dist/src/quality/patterns/sad.json +24 -0
- package/dist/src/quality/patterns/test-plan.json +24 -0
- package/dist/src/quality/patterns/use-case.json +24 -0
- package/dist/src/quality/scoring.js +157 -0
- package/dist/src/reflections/cli.js +15 -0
- package/dist/src/release/plan.js +139 -0
- package/dist/src/research/cache/manager.js +227 -0
- package/dist/src/research/clients/arxiv.js +156 -0
- package/dist/src/research/clients/base.js +197 -0
- package/dist/src/research/clients/crossref.js +112 -0
- package/dist/src/research/clients/semantic-scholar.js +126 -0
- package/dist/src/research/clients/unpaywall.js +87 -0
- package/dist/src/research/index.js +14 -0
- package/dist/src/research/query-cli.js +336 -0
- package/dist/src/research/services/acquisition.js +313 -0
- package/dist/src/research/services/archival.js +225 -0
- package/dist/src/research/services/citation.js +279 -0
- package/dist/src/research/services/discovery.js +243 -0
- package/dist/src/research/services/documentation.js +269 -0
- package/dist/src/research/services/index.js +14 -0
- package/dist/src/research/services/provenance.js +279 -0
- package/dist/src/research/services/quality.js +370 -0
- package/dist/src/research/services/types.js +7 -0
- package/dist/src/research/storage-cli.js +20 -0
- package/dist/src/research/types.js +47 -0
- package/dist/src/resources/index.d.ts +2 -0
- package/dist/src/resources/index.js +2 -0
- package/dist/src/resources/web-release.d.ts +89 -0
- package/dist/src/resources/web-release.js +882 -0
- package/dist/src/rlm/cache/cli.js +162 -0
- package/dist/src/rlm/cache/hash.js +35 -0
- package/dist/src/rlm/cache/store.js +170 -0
- package/dist/src/rlm/cache/types.js +8 -0
- package/dist/src/rlm/cli.js +650 -0
- package/dist/src/serve/a2a-terminal-observer.js +120 -0
- package/dist/src/serve/agent-router.js +205 -0
- package/dist/src/serve/dispatch-router.js +171 -0
- package/dist/src/serve/executor-registry.js +715 -0
- package/dist/src/serve/mission-conductor.js +177 -0
- package/dist/src/serve/orchestrator-adapter.js +113 -0
- package/dist/src/serve/orchestrator-override.js +94 -0
- package/dist/src/serve/orchestrator-pty.js +133 -0
- package/dist/src/serve/pty-bridge.js +799 -0
- package/dist/src/serve/sandbox-registry.js +832 -0
- package/dist/src/serve/screen-reader.js +228 -0
- package/dist/src/serve/stack-adapters.js +68 -0
- package/dist/src/serve/telemetry.js +143 -0
- package/dist/src/skills/adapters/clawhub.js +250 -0
- package/dist/src/skills/adapters/local.js +335 -0
- package/dist/src/skills/adapters/openclaw.js +316 -0
- package/dist/src/skills/cli.js +334 -0
- package/dist/src/skills/registry.js +117 -0
- package/dist/src/skills/run.js +259 -0
- package/dist/src/skills/runtime.js +94 -0
- package/dist/src/skills/types.js +10 -0
- package/dist/src/smiths/agentsmith/demo.js +116 -0
- package/dist/src/smiths/agentsmith/examples.js +300 -0
- package/dist/src/smiths/agentsmith/generator.js +503 -0
- package/dist/src/smiths/agentsmith/index.js +11 -0
- package/dist/src/smiths/agentsmith/types.js +8 -0
- package/dist/src/smiths/commandsmith/example.js +220 -0
- package/dist/src/smiths/commandsmith/generator.js +288 -0
- package/dist/src/smiths/commandsmith/index.js +41 -0
- package/dist/src/smiths/commandsmith/templates.js +296 -0
- package/dist/src/smiths/commandsmith/types.js +7 -0
- package/dist/src/smiths/context-pipeline/aiwg-md.js +104 -0
- package/dist/src/smiths/context-pipeline/allowlist.js +195 -0
- package/dist/src/smiths/context-pipeline/claude-hook.js +127 -0
- package/dist/src/smiths/context-pipeline/discovery.js +187 -0
- package/dist/src/smiths/context-pipeline/external-links-section.js +49 -0
- package/dist/src/smiths/context-pipeline/finalization.js +147 -0
- package/dist/src/smiths/context-pipeline/generator.js +477 -0
- package/dist/src/smiths/context-pipeline/index.js +30 -0
- package/dist/src/smiths/context-pipeline/legacy-inject.js +103 -0
- package/dist/src/smiths/context-pipeline/managed-hook.js +95 -0
- package/dist/src/smiths/context-pipeline/overflow.js +212 -0
- package/dist/src/smiths/context-pipeline/parallelism-section.js +94 -0
- package/dist/src/smiths/context-pipeline/provider-policy.js +64 -0
- package/dist/src/smiths/context-pipeline/sanitizer.js +93 -0
- package/dist/src/smiths/context-pipeline/types.js +23 -0
- package/dist/src/smiths/context-pipeline/workspace-context.js +988 -0
- package/dist/src/smiths/hook-bridge/codex-translator.js +129 -0
- package/dist/src/smiths/hook-bridge/copilot-translator.js +64 -0
- package/dist/src/smiths/hook-bridge/factory-translator.js +43 -0
- package/dist/src/smiths/hook-bridge/hermes-translator.js +88 -0
- package/dist/src/smiths/hook-bridge/index.js +79 -0
- package/dist/src/smiths/hook-bridge/loader.js +116 -0
- package/dist/src/smiths/hook-bridge/shim.js +89 -0
- package/dist/src/smiths/hook-bridge/types.js +31 -0
- package/dist/src/smiths/index.js +39 -0
- package/dist/src/smiths/mcpsmith/analyzers/cli-analyzer.js +390 -0
- package/dist/src/smiths/mcpsmith/example.js +119 -0
- package/dist/src/smiths/mcpsmith/generator.js +236 -0
- package/dist/src/smiths/mcpsmith/index.js +17 -0
- package/dist/src/smiths/mcpsmith/types.js +10 -0
- package/dist/src/smiths/platform-paths.js +101 -0
- package/dist/src/smiths/skillsmith/codex-sidecar.js +85 -0
- package/dist/src/smiths/skillsmith/collision-detector.js +249 -0
- package/dist/src/smiths/skillsmith/demo.js +83 -0
- package/dist/src/smiths/skillsmith/examples.js +161 -0
- package/dist/src/smiths/skillsmith/generator.js +316 -0
- package/dist/src/smiths/skillsmith/index.js +12 -0
- package/dist/src/smiths/skillsmith/namespace-adapter.js +180 -0
- package/dist/src/smiths/skillsmith/platform-resolver.js +157 -0
- package/dist/src/smiths/skillsmith/types.js +9 -0
- package/dist/src/smiths/toolsmith/index.js +10 -0
- package/dist/src/smiths/toolsmith/runtime-discovery.mjs +710 -0
- package/dist/src/smiths/toolsmith/types.js +8 -0
- package/dist/src/storage/backends/fortemi.js +227 -0
- package/dist/src/storage/backends/fs.js +134 -0
- package/dist/src/storage/backends/logseq.js +309 -0
- package/dist/src/storage/backends/obsidian.js +233 -0
- package/dist/src/storage/cli.js +468 -0
- package/dist/src/storage/config.js +272 -0
- package/dist/src/storage/index.js +108 -0
- package/dist/src/storage/subsystem-cli.js +201 -0
- package/dist/src/storage/types.js +33 -0
- package/dist/src/testing/corpus/corpus-builder.js +383 -0
- package/dist/src/testing/corpus/ground-truth-manager.js +460 -0
- package/dist/src/testing/corpus/index.js +10 -0
- package/dist/src/testing/fixtures/index.js +9 -0
- package/dist/src/testing/fixtures/test-data-factory.js +472 -0
- package/dist/src/testing/generators/index.js +11 -0
- package/dist/src/testing/generators/test-case-generator.js +393 -0
- package/dist/src/testing/generators/test-code-generator.js +384 -0
- package/dist/src/testing/generators/use-case-parser.js +325 -0
- package/dist/src/testing/index.js +11 -0
- package/dist/src/tracker/capability-protocol.js +118 -0
- package/dist/src/update/checker.mjs +396 -0
- package/dist/src/update/notifier.mjs +235 -0
- package/dist/src/writing/content-diversifier.js +804 -0
- package/dist/src/writing/example-generator.js +959 -0
- package/dist/src/writing/example-templates.js +99 -0
- package/dist/src/writing/pattern-library.js +486 -0
- package/dist/src/writing/patterns/banned-phrases.json +4413 -0
- package/dist/src/writing/patterns/formulaic-structures.json +1300 -0
- package/dist/src/writing/patterns/generic-adjectives.json +1510 -0
- package/dist/src/writing/patterns/hedging-language.json +2096 -0
- package/dist/src/writing/patterns/transition-words.json +1285 -0
- package/dist/src/writing/patterns/weak-verbs.json +1112 -0
- package/dist/src/writing/prompt-optimizer.js +660 -0
- package/dist/src/writing/prompt-templates.js +583 -0
- package/dist/src/writing/scoring-config-loader.js +168 -0
- package/dist/src/writing/validation-engine.js +595 -0
- package/dist/src/writing/validation-rules.js +380 -0
- package/dist/src/writing/voice-analyzer.js +439 -0
- package/dist/src/writing/voice-calibration.js +661 -0
- package/dist/src/writing/voice-profiles.json +588 -0
- package/package.json +64 -9
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Handler Index
|
|
3
|
+
*
|
|
4
|
+
* Aggregates all extracted command handlers for registry-based routing.
|
|
5
|
+
*
|
|
6
|
+
* @implements @.aiwg/architecture/decisions/ADR-001-unified-extension-system.md
|
|
7
|
+
* @tests @test/unit/cli/handlers/index.test.ts
|
|
8
|
+
* @issue #42
|
|
9
|
+
*/
|
|
10
|
+
// Re-export types
|
|
11
|
+
export * from './types.js';
|
|
12
|
+
export { createScriptRunner, DefaultScriptRunner } from './script-runner.js';
|
|
13
|
+
// Import all handlers
|
|
14
|
+
import { helpHandler } from './help.js';
|
|
15
|
+
import { versionHandler } from './version.js';
|
|
16
|
+
import { useHandler } from './use.js';
|
|
17
|
+
import { statusHandler, wizardHandler, migrateWorkspaceHandler, rollbackWorkspaceHandler, workspaceHandlers, } from './workspace.js';
|
|
18
|
+
import { prefillCardsHandler, contributeStartHandler, validateMetadataHandler, doctorHandler, updateHandler, utilityHandlers, } from './utilities.js';
|
|
19
|
+
import { skillLintHandler } from './skill-lint.js';
|
|
20
|
+
import { addAgentHandler, addCommandHandler, addSkillHandler, addBehaviorHandler, addTemplateHandler, scaffoldAddonHandler, scaffoldExtensionHandler, scaffoldFrameworkHandler, scaffoldingHandlers, } from './scaffolding.js';
|
|
21
|
+
import { behaviorHandler, daemonInitHandler, daemonHandlers, } from './daemon.js';
|
|
22
|
+
import { ralphHandler, ralphStatusHandler, ralphAbortHandler, ralphResumeHandler, ralphAttachHandler, ralphExternalHandler, ralphMemoryHandler, ralphConfigHandler, ralphHandlers, } from './ralph.js';
|
|
23
|
+
import { mcpHandler, catalogHandler, listHandler, removeHandler, promoteHandler, newBundleHandler, quickrefHandler, newProjectHandler, installPluginHandler, uninstallPluginHandler, pluginStatusHandler, packagePluginHandler, packageAllPluginsHandler, indexHandler, corpusHandler, discoverHandler, showHandler, featuresHandler, skillsHandler, configHandler, opsHandler, storageHandler, activityLogHandler, kbHandler, memoryHandler, reflectionsHandler, provenanceHandler, researchStoreHandler, researchQueryHandler, chunkHandler, fanoutHandler, rlmPrepHandler, rlmSearchHandler, rlmStatusCliHandler, rlmCacheHandler, subcommandHandlers, } from './subcommands.js';
|
|
24
|
+
import { runtimeInfoHandler } from './runtime-info.js';
|
|
25
|
+
import { agentcardHandler } from './agentcard.js';
|
|
26
|
+
import { bestPracticesAuditHandler } from './best-practices-audit.js';
|
|
27
|
+
// sync was renamed to refresh (#694). refreshHandler exposes both 'refresh'
|
|
28
|
+
// (primary) and 'sync' (deprecated alias) to preserve backward compatibility.
|
|
29
|
+
import { refreshHandler } from './refresh.js';
|
|
30
|
+
import { regenerateHandler, regenerateHandlers } from './regenerate.js';
|
|
31
|
+
import { workspaceContextHandler, workspaceContextHandlers } from './workspace-context.js';
|
|
32
|
+
import { artifactsHandler, artifactsHandlers } from './artifacts.js';
|
|
33
|
+
import { mcHandler, mcHandlers } from './mc.js';
|
|
34
|
+
import { sdlcAccelerateHandler } from './sdlc-accelerate.js';
|
|
35
|
+
import { teamHandler, teamHandlers } from './team.js';
|
|
36
|
+
import { installHandler } from './install.js';
|
|
37
|
+
import { packagesHandler } from './packages.js';
|
|
38
|
+
import { marketplaceHandler } from './marketplace.js';
|
|
39
|
+
import { initHandler } from './init.js';
|
|
40
|
+
import { setupHandler } from './setup.js';
|
|
41
|
+
import { runHandler } from './run.js';
|
|
42
|
+
import { stewardHandler, stewardHandlers } from './steward.js';
|
|
43
|
+
import { serveHandler } from './serve.js';
|
|
44
|
+
import { lintHandler } from './lint.js';
|
|
45
|
+
import { feedbackHandler } from './feedback.js';
|
|
46
|
+
import { sessionHandler } from './session.js';
|
|
47
|
+
import { sandboxHandler, sandboxHandlers } from './sandbox.js';
|
|
48
|
+
import { diagnoseHandler } from './diagnose.js';
|
|
49
|
+
import { localExecutorHandler, localExecutorServeHandler } from './local-executor.js';
|
|
50
|
+
import { executionModeHandler } from './execution-mode.js';
|
|
51
|
+
import { repoAccessHandler, repoAccessHandlers } from './repo-access.js';
|
|
52
|
+
import { issueHandler, issueAuditHandler } from './issues.js';
|
|
53
|
+
import { cockpitHandler } from './cockpit.js';
|
|
54
|
+
import { commandLogHandler } from './command-log.js';
|
|
55
|
+
import { skillUsageHandler } from './skill-usage.js';
|
|
56
|
+
import { modelsHandler } from './models.js';
|
|
57
|
+
// Re-export individual handlers
|
|
58
|
+
export {
|
|
59
|
+
// Maintenance
|
|
60
|
+
helpHandler, versionHandler, doctorHandler, updateHandler, refreshHandler, regenerateHandler, workspaceContextHandler,
|
|
61
|
+
// Framework management
|
|
62
|
+
useHandler, listHandler, removeHandler, promoteHandler, installHandler, packagesHandler, marketplaceHandler, initHandler, setupHandler, issueHandler, issueAuditHandler, runHandler,
|
|
63
|
+
// Project
|
|
64
|
+
newBundleHandler, quickrefHandler, newProjectHandler,
|
|
65
|
+
// Workspace
|
|
66
|
+
statusHandler, wizardHandler, migrateWorkspaceHandler, rollbackWorkspaceHandler,
|
|
67
|
+
// Subcommands
|
|
68
|
+
mcpHandler, catalogHandler, modelsHandler, indexHandler, artifactsHandler, corpusHandler, discoverHandler, showHandler, featuresHandler, skillsHandler, configHandler, opsHandler, storageHandler, activityLogHandler, commandLogHandler, skillUsageHandler, kbHandler, memoryHandler, reflectionsHandler, provenanceHandler, researchStoreHandler, researchQueryHandler, runtimeInfoHandler, agentcardHandler,
|
|
69
|
+
// Agentic Tools (RLM)
|
|
70
|
+
chunkHandler, fanoutHandler, rlmPrepHandler, rlmSearchHandler, rlmStatusCliHandler, rlmCacheHandler,
|
|
71
|
+
// Utilities
|
|
72
|
+
prefillCardsHandler, contributeStartHandler, validateMetadataHandler, skillLintHandler, cockpitHandler,
|
|
73
|
+
// Plugin
|
|
74
|
+
installPluginHandler, uninstallPluginHandler, pluginStatusHandler, packagePluginHandler, packageAllPluginsHandler,
|
|
75
|
+
// Scaffolding
|
|
76
|
+
addAgentHandler, addCommandHandler, addSkillHandler, addBehaviorHandler, addTemplateHandler, scaffoldAddonHandler, scaffoldExtensionHandler, scaffoldFrameworkHandler,
|
|
77
|
+
// Daemon
|
|
78
|
+
behaviorHandler, daemonInitHandler,
|
|
79
|
+
// Ralph
|
|
80
|
+
ralphHandler, ralphStatusHandler, ralphAbortHandler, ralphResumeHandler, ralphAttachHandler, ralphExternalHandler, ralphMemoryHandler, ralphConfigHandler,
|
|
81
|
+
// Mission Control
|
|
82
|
+
mcHandler,
|
|
83
|
+
// SDLC Orchestration
|
|
84
|
+
sdlcAccelerateHandler,
|
|
85
|
+
// Research / Validation
|
|
86
|
+
bestPracticesAuditHandler,
|
|
87
|
+
// Agent Teams
|
|
88
|
+
teamHandler,
|
|
89
|
+
// Steward
|
|
90
|
+
stewardHandler,
|
|
91
|
+
// Serve
|
|
92
|
+
serveHandler,
|
|
93
|
+
// Local Executor (#1181)
|
|
94
|
+
localExecutorHandler, localExecutorServeHandler,
|
|
95
|
+
// Sandbox management
|
|
96
|
+
sandboxHandler,
|
|
97
|
+
// Diagnose
|
|
98
|
+
diagnoseHandler, executionModeHandler,
|
|
99
|
+
// Repo Access
|
|
100
|
+
repoAccessHandler,
|
|
101
|
+
// Lint
|
|
102
|
+
lintHandler, };
|
|
103
|
+
// Re-export handler arrays
|
|
104
|
+
export { workspaceHandlers, utilityHandlers, scaffoldingHandlers, ralphHandlers, subcommandHandlers, mcHandlers, teamHandlers, stewardHandlers, regenerateHandlers, workspaceContextHandlers, artifactsHandlers, daemonHandlers, sandboxHandlers, repoAccessHandlers, };
|
|
105
|
+
/**
|
|
106
|
+
* All registered command handlers
|
|
107
|
+
*
|
|
108
|
+
* Used by the registry to build the command routing table.
|
|
109
|
+
*/
|
|
110
|
+
export const allHandlers = [
|
|
111
|
+
// Maintenance (shown first in help)
|
|
112
|
+
helpHandler,
|
|
113
|
+
versionHandler,
|
|
114
|
+
doctorHandler,
|
|
115
|
+
updateHandler,
|
|
116
|
+
refreshHandler,
|
|
117
|
+
regenerateHandler,
|
|
118
|
+
workspaceContextHandler,
|
|
119
|
+
// Framework management
|
|
120
|
+
useHandler,
|
|
121
|
+
listHandler,
|
|
122
|
+
removeHandler,
|
|
123
|
+
promoteHandler,
|
|
124
|
+
installHandler,
|
|
125
|
+
packagesHandler,
|
|
126
|
+
marketplaceHandler,
|
|
127
|
+
// Project setup
|
|
128
|
+
newBundleHandler,
|
|
129
|
+
quickrefHandler,
|
|
130
|
+
newProjectHandler,
|
|
131
|
+
initHandler,
|
|
132
|
+
setupHandler,
|
|
133
|
+
issueHandler,
|
|
134
|
+
issueAuditHandler,
|
|
135
|
+
runHandler,
|
|
136
|
+
// Workspace management
|
|
137
|
+
...workspaceHandlers,
|
|
138
|
+
// Subcommand handlers (MCP, catalog, index, skills)
|
|
139
|
+
mcpHandler,
|
|
140
|
+
catalogHandler,
|
|
141
|
+
modelsHandler,
|
|
142
|
+
indexHandler,
|
|
143
|
+
artifactsHandler,
|
|
144
|
+
corpusHandler,
|
|
145
|
+
discoverHandler,
|
|
146
|
+
showHandler,
|
|
147
|
+
featuresHandler,
|
|
148
|
+
skillsHandler,
|
|
149
|
+
runtimeInfoHandler,
|
|
150
|
+
agentcardHandler,
|
|
151
|
+
// Utilities
|
|
152
|
+
prefillCardsHandler,
|
|
153
|
+
contributeStartHandler,
|
|
154
|
+
validateMetadataHandler,
|
|
155
|
+
skillLintHandler,
|
|
156
|
+
cockpitHandler,
|
|
157
|
+
// Plugin packaging
|
|
158
|
+
installPluginHandler,
|
|
159
|
+
uninstallPluginHandler,
|
|
160
|
+
pluginStatusHandler,
|
|
161
|
+
packagePluginHandler,
|
|
162
|
+
packageAllPluginsHandler,
|
|
163
|
+
// Scaffolding
|
|
164
|
+
...scaffoldingHandlers,
|
|
165
|
+
// Agent loop
|
|
166
|
+
...ralphHandlers,
|
|
167
|
+
// Mission Control
|
|
168
|
+
...mcHandlers,
|
|
169
|
+
// Agent Teams
|
|
170
|
+
...teamHandlers,
|
|
171
|
+
// Steward (capability awareness)
|
|
172
|
+
...stewardHandlers,
|
|
173
|
+
// SDLC Orchestration
|
|
174
|
+
sdlcAccelerateHandler,
|
|
175
|
+
// Research / Validation
|
|
176
|
+
bestPracticesAuditHandler,
|
|
177
|
+
// Daemon
|
|
178
|
+
...daemonHandlers,
|
|
179
|
+
// Config
|
|
180
|
+
configHandler,
|
|
181
|
+
executionModeHandler,
|
|
182
|
+
// Ops
|
|
183
|
+
opsHandler,
|
|
184
|
+
// Storage (#934)
|
|
185
|
+
storageHandler,
|
|
186
|
+
// Activity Log (#934, #964)
|
|
187
|
+
activityLogHandler,
|
|
188
|
+
// Command invocation log (#1614)
|
|
189
|
+
commandLogHandler,
|
|
190
|
+
// Skill usage telemetry (#1649)
|
|
191
|
+
skillUsageHandler,
|
|
192
|
+
// Knowledge Base (#934, #965)
|
|
193
|
+
kbHandler,
|
|
194
|
+
// Memory subsystem (#934, #966)
|
|
195
|
+
memoryHandler,
|
|
196
|
+
// Reflections subsystem (#934, #967)
|
|
197
|
+
reflectionsHandler,
|
|
198
|
+
// Provenance subsystem (#934, #968)
|
|
199
|
+
provenanceHandler,
|
|
200
|
+
// Research subsystem (#934, #968)
|
|
201
|
+
researchStoreHandler,
|
|
202
|
+
researchQueryHandler,
|
|
203
|
+
// Agentic Tools (RLM support tools)
|
|
204
|
+
chunkHandler,
|
|
205
|
+
fanoutHandler,
|
|
206
|
+
rlmPrepHandler,
|
|
207
|
+
rlmSearchHandler,
|
|
208
|
+
rlmStatusCliHandler,
|
|
209
|
+
rlmCacheHandler,
|
|
210
|
+
// Web dashboard
|
|
211
|
+
serveHandler,
|
|
212
|
+
// Local Executor (#1181)
|
|
213
|
+
localExecutorHandler,
|
|
214
|
+
localExecutorServeHandler,
|
|
215
|
+
// Sandbox management (#917)
|
|
216
|
+
...sandboxHandlers,
|
|
217
|
+
// Diagnose bundle (#925)
|
|
218
|
+
diagnoseHandler,
|
|
219
|
+
// Lint
|
|
220
|
+
lintHandler,
|
|
221
|
+
// Feedback (#885)
|
|
222
|
+
feedbackHandler,
|
|
223
|
+
// Session (#884)
|
|
224
|
+
sessionHandler,
|
|
225
|
+
// Repo access policy (#1376)
|
|
226
|
+
...repoAccessHandlers,
|
|
227
|
+
];
|
|
228
|
+
/**
|
|
229
|
+
* Build alias map from all handlers
|
|
230
|
+
*
|
|
231
|
+
* Maps command aliases to canonical handler IDs.
|
|
232
|
+
*
|
|
233
|
+
* @returns Map of alias -> handler ID
|
|
234
|
+
*/
|
|
235
|
+
export function buildAliasMap() {
|
|
236
|
+
const aliasMap = new Map();
|
|
237
|
+
for (const handler of allHandlers) {
|
|
238
|
+
// Add canonical ID
|
|
239
|
+
aliasMap.set(handler.id, handler.id);
|
|
240
|
+
// Add all aliases
|
|
241
|
+
for (const alias of handler.aliases) {
|
|
242
|
+
aliasMap.set(alias, handler.id);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return aliasMap;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Build handler map for O(1) lookup
|
|
249
|
+
*
|
|
250
|
+
* @returns Map of handler ID -> handler
|
|
251
|
+
*/
|
|
252
|
+
export function buildHandlerMap() {
|
|
253
|
+
const handlerMap = new Map();
|
|
254
|
+
for (const handler of allHandlers) {
|
|
255
|
+
handlerMap.set(handler.id, handler);
|
|
256
|
+
}
|
|
257
|
+
return handlerMap;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Resolve a command to its handler
|
|
261
|
+
*
|
|
262
|
+
* @param command - Raw command from CLI (may be alias)
|
|
263
|
+
* @param aliasMap - Alias map from buildAliasMap()
|
|
264
|
+
* @param handlerMap - Handler map from buildHandlerMap()
|
|
265
|
+
* @returns Handler or undefined if not found
|
|
266
|
+
*/
|
|
267
|
+
export function resolveHandler(command, aliasMap, handlerMap) {
|
|
268
|
+
const canonicalId = aliasMap.get(command);
|
|
269
|
+
if (!canonicalId)
|
|
270
|
+
return undefined;
|
|
271
|
+
return handlerMap.get(canonicalId);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Get handlers grouped by category
|
|
275
|
+
*
|
|
276
|
+
* Used for generating organized help text.
|
|
277
|
+
*
|
|
278
|
+
* @returns Map of category -> handlers
|
|
279
|
+
*/
|
|
280
|
+
export function getHandlersByCategory() {
|
|
281
|
+
const categoryMap = new Map();
|
|
282
|
+
for (const handler of allHandlers) {
|
|
283
|
+
const category = handler.category;
|
|
284
|
+
const handlers = categoryMap.get(category) || [];
|
|
285
|
+
handlers.push(handler);
|
|
286
|
+
categoryMap.set(category, handlers);
|
|
287
|
+
}
|
|
288
|
+
return categoryMap;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Get total handler count
|
|
292
|
+
*/
|
|
293
|
+
export function getHandlerCount() {
|
|
294
|
+
return allHandlers.length;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get total alias count (including canonical IDs)
|
|
298
|
+
*/
|
|
299
|
+
export function getAliasCount() {
|
|
300
|
+
return buildAliasMap().size;
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Init Command Handler
|
|
3
|
+
*
|
|
4
|
+
* Implements `aiwg init` — the first-run wizard that creates
|
|
5
|
+
* `.aiwg/aiwg.config` for the current project.
|
|
6
|
+
*
|
|
7
|
+
* Prompts:
|
|
8
|
+
* 1. Which AI provider toolchains does this project target?
|
|
9
|
+
* 2. Would you like to add any scripts? (optional)
|
|
10
|
+
*
|
|
11
|
+
* Runs automatically on first `aiwg use` when no config exists.
|
|
12
|
+
* Can also be run explicitly to reconfigure.
|
|
13
|
+
*
|
|
14
|
+
* @implements #621
|
|
15
|
+
*/
|
|
16
|
+
import readline from 'readline';
|
|
17
|
+
import { readAiwgConfig, writeAiwgConfig, emptyConfig, populateDeployedTo, VALID_PROVIDERS, getConfigPath, } from '../../config/aiwg-config.js';
|
|
18
|
+
import * as ui from '../ui.js';
|
|
19
|
+
import { askString as sharedAskString, askYesNo as sharedAskYesNo } from '../prompt-utils.js';
|
|
20
|
+
import { writeNormalizedAiwgMd } from '../../smiths/context-pipeline/finalization.js';
|
|
21
|
+
import { ensureWorkspaceContext } from '../../smiths/context-pipeline/workspace-context.js';
|
|
22
|
+
const PROVIDER_LABELS = {
|
|
23
|
+
claude: 'Claude Code .claude/',
|
|
24
|
+
copilot: 'GitHub Copilot .github/',
|
|
25
|
+
cursor: 'Cursor .cursor/',
|
|
26
|
+
opencode: 'OpenCode .opencode/',
|
|
27
|
+
warp: 'Warp Terminal .warp/',
|
|
28
|
+
windsurf: 'Windsurf AGENTS.md',
|
|
29
|
+
factory: 'Factory AI .factory/',
|
|
30
|
+
codex: 'OpenAI Codex ~/.codex/',
|
|
31
|
+
openclaw: 'OpenClaw ~/.openclaw/',
|
|
32
|
+
hermes: 'Hermes (MCP) aiwg mcp',
|
|
33
|
+
};
|
|
34
|
+
// Local aliases for the shared prompt utilities. These preserve existing
|
|
35
|
+
// call sites (askYesNo/askString) while routing through a single timeout
|
|
36
|
+
// and unref-discipline implementation in `src/cli/prompt-utils.ts`.
|
|
37
|
+
// Phase 3 (#920) will replace these with @clack/prompts.
|
|
38
|
+
const askYesNo = sharedAskYesNo;
|
|
39
|
+
const askString = sharedAskString;
|
|
40
|
+
/**
|
|
41
|
+
* Prompt for a comma-separated provider selection
|
|
42
|
+
*/
|
|
43
|
+
async function askProviders(rl, signal) {
|
|
44
|
+
const list = VALID_PROVIDERS.map((p, i) => ` ${i + 1}. ${PROVIDER_LABELS[p] ?? p}`).join('\n');
|
|
45
|
+
console.log('');
|
|
46
|
+
console.log(' Available providers:');
|
|
47
|
+
console.log(list);
|
|
48
|
+
console.log('');
|
|
49
|
+
// Multi-select (comma-separated) — stays hand-rolled rather than adopting
|
|
50
|
+
// listSelect because #926's POC targets single-select only. `signal`
|
|
51
|
+
// threading is the full migration from the spike.
|
|
52
|
+
const answer = await askString(rl, ' Enter provider numbers (comma-separated) or names [1]: ', '', signal);
|
|
53
|
+
if (!answer)
|
|
54
|
+
return ['claude']; // default
|
|
55
|
+
const parts = answer.split(',').map(s => s.trim()).filter(Boolean);
|
|
56
|
+
const selected = [];
|
|
57
|
+
for (const part of parts) {
|
|
58
|
+
const num = parseInt(part, 10);
|
|
59
|
+
if (!isNaN(num) && num >= 1 && num <= VALID_PROVIDERS.length) {
|
|
60
|
+
selected.push(VALID_PROVIDERS[num - 1]);
|
|
61
|
+
}
|
|
62
|
+
else if (VALID_PROVIDERS.includes(part)) {
|
|
63
|
+
selected.push(part);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
ui.warn(` Unknown provider '${part}' — skipped`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return selected.length > 0 ? selected : ['claude'];
|
|
70
|
+
}
|
|
71
|
+
export const initHandler = {
|
|
72
|
+
id: 'init',
|
|
73
|
+
name: 'Init',
|
|
74
|
+
description: 'Initialise the baseline .aiwg/aiwg.config for an agent-led project setup',
|
|
75
|
+
category: 'project',
|
|
76
|
+
aliases: [],
|
|
77
|
+
async execute(ctx) {
|
|
78
|
+
const force = ctx.args.includes('--force');
|
|
79
|
+
// Treat a missing stdin TTY as non-interactive so piped/backgrounded
|
|
80
|
+
// invocations never attempt to create a readline interface. This is a
|
|
81
|
+
// single authoritative check — downstream code MUST NOT re-derive
|
|
82
|
+
// interactive-ness from process.stdin.isTTY again.
|
|
83
|
+
const nonInteractive = ctx.args.includes('--non-interactive') ||
|
|
84
|
+
ctx.args.includes('--yes') ||
|
|
85
|
+
!process.stdin.isTTY ||
|
|
86
|
+
!process.stdout.isTTY ||
|
|
87
|
+
process.env['CI'] === 'true';
|
|
88
|
+
const projectDir = ctx.cwd;
|
|
89
|
+
ui.blank();
|
|
90
|
+
console.log(` ${ui.brandMark()} ${ui.bold('AIWG Baseline Config')}`);
|
|
91
|
+
ui.rule();
|
|
92
|
+
// Check for existing config
|
|
93
|
+
const existing = await readAiwgConfig(projectDir);
|
|
94
|
+
if (existing && !force) {
|
|
95
|
+
ui.info(`Config already exists: ${getConfigPath(projectDir)}`);
|
|
96
|
+
await writeNormalizedAiwgMd(projectDir);
|
|
97
|
+
console.log(` Providers: ${existing.providers.join(', ')}`);
|
|
98
|
+
const scriptCount = Object.keys(existing.scripts).length;
|
|
99
|
+
if (scriptCount > 0) {
|
|
100
|
+
console.log(` Scripts: ${Object.keys(existing.scripts).join(', ')}`);
|
|
101
|
+
}
|
|
102
|
+
ui.blank();
|
|
103
|
+
ui.dim(' Ask your AIWG agent to review repo, tracker, delivery, signing, and provider policy.');
|
|
104
|
+
ui.dim(' Agents may use `aiwg setup project --dry-run` as the CLI helper for that review.');
|
|
105
|
+
ui.dim(' Run `aiwg init --force` only when you need to recreate the baseline config.');
|
|
106
|
+
ui.blank();
|
|
107
|
+
return { exitCode: 0 };
|
|
108
|
+
}
|
|
109
|
+
let providers;
|
|
110
|
+
let scripts = {};
|
|
111
|
+
if (nonInteractive) {
|
|
112
|
+
// Non-interactive: use defaults
|
|
113
|
+
providers = ['claude'];
|
|
114
|
+
scripts = {
|
|
115
|
+
deploy: 'aiwg use all',
|
|
116
|
+
doctor: 'aiwg doctor',
|
|
117
|
+
sync: 'aiwg sync',
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
// Interactive wizard
|
|
122
|
+
const rl = readline.createInterface({
|
|
123
|
+
input: process.stdin,
|
|
124
|
+
output: process.stdout,
|
|
125
|
+
});
|
|
126
|
+
try {
|
|
127
|
+
// Thread ctx.signal through every prompt so Ctrl-C during the wizard
|
|
128
|
+
// cancels cleanly instead of being absorbed by readline (POC #926).
|
|
129
|
+
providers = await askProviders(rl, ctx.signal);
|
|
130
|
+
console.log('');
|
|
131
|
+
const addScripts = await askYesNo(rl, ' Add default scripts (deploy, doctor, sync)? [Y/n]: ', true, ctx.signal);
|
|
132
|
+
if (addScripts) {
|
|
133
|
+
scripts = {
|
|
134
|
+
deploy: 'aiwg use all',
|
|
135
|
+
doctor: 'aiwg doctor',
|
|
136
|
+
sync: 'aiwg sync',
|
|
137
|
+
};
|
|
138
|
+
const addCustom = await askYesNo(rl, ' Add a custom script? [y/N]: ', false, ctx.signal);
|
|
139
|
+
if (addCustom) {
|
|
140
|
+
const name = await askString(rl, ' Script name: ', '', ctx.signal);
|
|
141
|
+
const cmd = await askString(rl, ' Command: ', '', ctx.signal);
|
|
142
|
+
if (name && cmd) {
|
|
143
|
+
scripts[name] = cmd;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
rl.close();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Build config
|
|
153
|
+
let config = emptyConfig(providers);
|
|
154
|
+
config.scripts = scripts;
|
|
155
|
+
// Populate deployedTo from disk for entries with empty deployedTo (#721)
|
|
156
|
+
config = await populateDeployedTo(config, projectDir);
|
|
157
|
+
// Write
|
|
158
|
+
await writeAiwgConfig(projectDir, config);
|
|
159
|
+
const normalizedAiwgMdPath = await writeNormalizedAiwgMd(projectDir);
|
|
160
|
+
const workspace = await ensureWorkspaceContext(projectDir);
|
|
161
|
+
ui.blank();
|
|
162
|
+
ui.success(`Created ${getConfigPath(projectDir)}`);
|
|
163
|
+
ui.success(`Created ${normalizedAiwgMdPath}`);
|
|
164
|
+
ui.success(`${workspace.action === 'created' ? 'Created' : 'Preserved'} WORKSPACE.md`);
|
|
165
|
+
ui.success(`Providers: ${providers.join(', ')}`);
|
|
166
|
+
if (Object.keys(scripts).length > 0) {
|
|
167
|
+
ui.success(`Scripts: ${Object.keys(scripts).join(', ')}`);
|
|
168
|
+
}
|
|
169
|
+
ui.blank();
|
|
170
|
+
console.log(' Next steps:');
|
|
171
|
+
console.log(' Ask your AIWG agent: "Help me set up this project for AIWG."');
|
|
172
|
+
console.log(' The agent may use `aiwg setup project --dry-run` to preview policy choices.');
|
|
173
|
+
console.log(' aiwg use sdlc Deploy SDLC framework to configured providers');
|
|
174
|
+
console.log(' aiwg run List all defined scripts');
|
|
175
|
+
ui.blank();
|
|
176
|
+
return { exitCode: 0 };
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install Command Handler
|
|
3
|
+
*
|
|
4
|
+
* Implements `aiwg install <ref>` for installing frameworks, addons, and
|
|
5
|
+
* extensions from Git repositories into the local package cache.
|
|
6
|
+
*
|
|
7
|
+
* Supported ref formats:
|
|
8
|
+
* owner/name → Gitea shorthand (configured host)
|
|
9
|
+
* owner/name@v1.2.0 → Gitea shorthand with version
|
|
10
|
+
* github:owner/name → GitHub shorthand
|
|
11
|
+
* github:owner/name@v1.2.0 → GitHub shorthand with version
|
|
12
|
+
* clawhub:owner/name → ClawHub / OpenClaw registry
|
|
13
|
+
* openclaw:owner/name → ClawHub alias
|
|
14
|
+
* https://... → direct Git URL
|
|
15
|
+
* git@host:owner/name.git → SSH URL
|
|
16
|
+
*
|
|
17
|
+
* @implements #557
|
|
18
|
+
* @implements #804
|
|
19
|
+
*/
|
|
20
|
+
import path from 'path';
|
|
21
|
+
import { installPackage } from '../../packages/registry.js';
|
|
22
|
+
import { recordDeployment } from '../../packages/package-registry.js';
|
|
23
|
+
import { createScriptRunner } from './script-runner.js';
|
|
24
|
+
import { handlerResultFromError } from '../errors.js';
|
|
25
|
+
import * as ui from '../ui.js';
|
|
26
|
+
function parseFlag(args, flag) {
|
|
27
|
+
const idx = args.indexOf(flag);
|
|
28
|
+
if (idx === -1 || idx + 1 >= args.length)
|
|
29
|
+
return undefined;
|
|
30
|
+
return args[idx + 1];
|
|
31
|
+
}
|
|
32
|
+
function hasFlag(args, flag) {
|
|
33
|
+
return args.includes(flag);
|
|
34
|
+
}
|
|
35
|
+
export const installHandler = {
|
|
36
|
+
id: 'install',
|
|
37
|
+
name: 'Install Package',
|
|
38
|
+
description: 'Install a framework, addon, or extension from a Git repository',
|
|
39
|
+
category: 'framework',
|
|
40
|
+
aliases: [],
|
|
41
|
+
async execute(ctx) {
|
|
42
|
+
const rawRef = ctx.args[0];
|
|
43
|
+
if (!rawRef) {
|
|
44
|
+
return {
|
|
45
|
+
exitCode: 1,
|
|
46
|
+
message: [
|
|
47
|
+
'Error: Package reference required',
|
|
48
|
+
'',
|
|
49
|
+
'Usage:',
|
|
50
|
+
' aiwg install owner/name # Gitea shorthand',
|
|
51
|
+
' aiwg install github:owner/name # GitHub shorthand',
|
|
52
|
+
' aiwg install clawhub:owner/name # ClawHub / OpenClaw registry',
|
|
53
|
+
' aiwg install openclaw:owner/name # ClawHub alias',
|
|
54
|
+
' aiwg install owner/name@v1.2.0 # Pin to version',
|
|
55
|
+
' aiwg install https://git.example.com/a/b # Direct URL',
|
|
56
|
+
'',
|
|
57
|
+
'Options:',
|
|
58
|
+
' --deploy Deploy immediately after install',
|
|
59
|
+
' --provider <name> Target provider (claude, copilot, cursor...)',
|
|
60
|
+
' --target <dir> Project directory to deploy into',
|
|
61
|
+
' --refresh Force re-pull even if cached',
|
|
62
|
+
].join('\n'),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const deploy = hasFlag(ctx.args, '--deploy');
|
|
66
|
+
const refresh = hasFlag(ctx.args, '--refresh');
|
|
67
|
+
const provider = parseFlag(ctx.args, '--provider') ?? 'claude';
|
|
68
|
+
const target = parseFlag(ctx.args, '--target') ?? ctx.cwd;
|
|
69
|
+
ui.blank();
|
|
70
|
+
console.log(` ${ui.brandMark()} ${ui.bold('aiwg install')} ${ui.dimText(rawRef)}`);
|
|
71
|
+
ui.rule();
|
|
72
|
+
// Fetch package
|
|
73
|
+
ui.info(`Resolving ${rawRef}...`);
|
|
74
|
+
let cachePath;
|
|
75
|
+
let key;
|
|
76
|
+
let type;
|
|
77
|
+
let namespace;
|
|
78
|
+
try {
|
|
79
|
+
({ cachePath, key, type, namespace } = await installPackage(rawRef, { refresh }));
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
// Preserve AiwgError.exitCode while keeping the "Error: " prefix users
|
|
83
|
+
// are used to seeing from `aiwg install`.
|
|
84
|
+
const result = handlerResultFromError(error);
|
|
85
|
+
return { ...result, message: `Error: ${result.message}` };
|
|
86
|
+
}
|
|
87
|
+
ui.success(`Installed: ${key} (${type})`);
|
|
88
|
+
ui.dimText(` Cache: ${cachePath}`);
|
|
89
|
+
if (namespace !== 'aiwg') {
|
|
90
|
+
ui.dimText(` Namespace: ${namespace}`);
|
|
91
|
+
}
|
|
92
|
+
// Optionally deploy
|
|
93
|
+
if (deploy) {
|
|
94
|
+
ui.info(`Deploying ${key} to ${provider}...`);
|
|
95
|
+
const runner = createScriptRunner(ctx.frameworkRoot);
|
|
96
|
+
const deployArgs = [
|
|
97
|
+
'--source', cachePath,
|
|
98
|
+
'--deploy-commands',
|
|
99
|
+
'--deploy-skills',
|
|
100
|
+
'--deploy-rules',
|
|
101
|
+
'--provider', provider,
|
|
102
|
+
'--target', target,
|
|
103
|
+
'--namespace', namespace,
|
|
104
|
+
'--quiet',
|
|
105
|
+
];
|
|
106
|
+
const deployResult = await runner.run('tools/agents/deploy-agents.mjs', deployArgs, { capture: true });
|
|
107
|
+
if (deployResult.exitCode !== 0) {
|
|
108
|
+
ui.warn(`Deploy failed (exit ${deployResult.exitCode})`);
|
|
109
|
+
if (deployResult.message)
|
|
110
|
+
ui.dim(` ${deployResult.message}`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
ui.success(`Deployed to ${provider} in ${path.relative(process.cwd(), target) || '.'}`);
|
|
114
|
+
// Record deployment
|
|
115
|
+
await recordDeployment(key, {
|
|
116
|
+
projectPath: target,
|
|
117
|
+
provider,
|
|
118
|
+
deployedAt: new Date().toISOString(),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
ui.blank();
|
|
123
|
+
if (!deploy) {
|
|
124
|
+
ui.info(`To deploy: aiwg use ${key.split('/').pop() ?? key}`);
|
|
125
|
+
}
|
|
126
|
+
return { exitCode: 0 };
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Issue command handler.
|
|
3
|
+
*
|
|
4
|
+
* Routes `aiwg issue ...` to the local issue CLI. External tracker operations
|
|
5
|
+
* remain governed by `.aiwg/aiwg.config` `remotes.issue_tracker`.
|
|
6
|
+
*
|
|
7
|
+
* @issue #1462
|
|
8
|
+
*/
|
|
9
|
+
import { handlerResultFromError } from '../errors.js';
|
|
10
|
+
export const issueHandler = {
|
|
11
|
+
id: 'issue',
|
|
12
|
+
name: 'Issue',
|
|
13
|
+
description: 'Local issue storage commands under .aiwg/issues/',
|
|
14
|
+
category: 'project',
|
|
15
|
+
aliases: ['issues'],
|
|
16
|
+
async execute(ctx) {
|
|
17
|
+
try {
|
|
18
|
+
const { main } = await import('../../issues/cli.js');
|
|
19
|
+
await main(ctx.args, ctx.cwd);
|
|
20
|
+
return { exitCode: 0 };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
const result = handlerResultFromError(error);
|
|
24
|
+
return { ...result, message: `Issue command failed: ${result.message}` };
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
export const issueAuditHandler = {
|
|
29
|
+
id: 'issue-audit',
|
|
30
|
+
name: 'Issue Audit',
|
|
31
|
+
description: 'Audit local issues under .aiwg/issues/ when --provider local is supplied',
|
|
32
|
+
category: 'project',
|
|
33
|
+
aliases: ['audit-issues'],
|
|
34
|
+
async execute(ctx) {
|
|
35
|
+
try {
|
|
36
|
+
const { auditLocalIssuesCli } = await import('../../issues/workflows.js');
|
|
37
|
+
await auditLocalIssuesCli(ctx.args, ctx.cwd);
|
|
38
|
+
return { exitCode: 0 };
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
const result = handlerResultFromError(error);
|
|
42
|
+
return { ...result, message: `Issue audit failed: ${result.message}` };
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=issues.js.map
|