@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,383 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Corpus Builder
|
|
3
|
+
*
|
|
4
|
+
* Utility for creating and exporting ground truth corpora with validation.
|
|
5
|
+
*
|
|
6
|
+
* @module testing/corpus/corpus-builder
|
|
7
|
+
*/
|
|
8
|
+
import * as fs from 'fs/promises';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
/**
|
|
11
|
+
* CorpusBuilder - Build and export ground truth corpora
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const builder = new CorpusBuilder({
|
|
16
|
+
* type: 'ai-vs-human',
|
|
17
|
+
* name: 'AI vs Human Writing Corpus',
|
|
18
|
+
* description: 'Labeled corpus for AI pattern detection validation',
|
|
19
|
+
* schema: {
|
|
20
|
+
* groundTruthType: 'boolean',
|
|
21
|
+
* formatDescription: 'true for AI-generated, false for human-written'
|
|
22
|
+
* },
|
|
23
|
+
* linkedNFRs: ['NFR-ACC-001']
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // Add items
|
|
27
|
+
* builder.addItem({
|
|
28
|
+
* id: 'doc-001',
|
|
29
|
+
* content: 'This is a sample document...',
|
|
30
|
+
* groundTruth: true, // AI-generated
|
|
31
|
+
* metadata: { source: 'gpt-4' }
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // Validate and export
|
|
35
|
+
* const validation = builder.validate();
|
|
36
|
+
* if (validation.valid) {
|
|
37
|
+
* await builder.export({
|
|
38
|
+
* outputDir: './tests/fixtures/corpora',
|
|
39
|
+
* version: '1.0.0'
|
|
40
|
+
* });
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export class CorpusBuilder {
|
|
45
|
+
options;
|
|
46
|
+
items = new Map();
|
|
47
|
+
constructor(options) {
|
|
48
|
+
this.options = options;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Add an item to the corpus
|
|
52
|
+
*
|
|
53
|
+
* @param item - Ground truth item
|
|
54
|
+
* @throws {Error} If item ID already exists
|
|
55
|
+
*/
|
|
56
|
+
addItem(item) {
|
|
57
|
+
if (this.items.has(item.id)) {
|
|
58
|
+
throw new Error(`Duplicate item ID: ${item.id}`);
|
|
59
|
+
}
|
|
60
|
+
this.items.set(item.id, item);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Add multiple items to the corpus
|
|
64
|
+
*
|
|
65
|
+
* @param items - Array of ground truth items
|
|
66
|
+
*/
|
|
67
|
+
addItems(items) {
|
|
68
|
+
for (const item of items) {
|
|
69
|
+
this.addItem(item);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Remove an item from the corpus
|
|
74
|
+
*
|
|
75
|
+
* @param itemId - Item identifier
|
|
76
|
+
* @returns True if item was removed
|
|
77
|
+
*/
|
|
78
|
+
removeItem(itemId) {
|
|
79
|
+
return this.items.delete(itemId);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get an item by ID
|
|
83
|
+
*
|
|
84
|
+
* @param itemId - Item identifier
|
|
85
|
+
* @returns Item or undefined
|
|
86
|
+
*/
|
|
87
|
+
getItem(itemId) {
|
|
88
|
+
return this.items.get(itemId);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get all items
|
|
92
|
+
*
|
|
93
|
+
* @returns Array of all items
|
|
94
|
+
*/
|
|
95
|
+
getAllItems() {
|
|
96
|
+
return Array.from(this.items.values());
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get item count
|
|
100
|
+
*/
|
|
101
|
+
getItemCount() {
|
|
102
|
+
return this.items.size;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Clear all items
|
|
106
|
+
*/
|
|
107
|
+
clear() {
|
|
108
|
+
this.items.clear();
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Validate the corpus
|
|
112
|
+
*
|
|
113
|
+
* @returns Validation result
|
|
114
|
+
*/
|
|
115
|
+
validate() {
|
|
116
|
+
const errors = [];
|
|
117
|
+
const warnings = [];
|
|
118
|
+
// Check minimum items
|
|
119
|
+
if (this.items.size === 0) {
|
|
120
|
+
errors.push('Corpus is empty');
|
|
121
|
+
}
|
|
122
|
+
else if (this.items.size < 10) {
|
|
123
|
+
warnings.push(`Corpus has only ${this.items.size} items - may not be statistically significant`);
|
|
124
|
+
}
|
|
125
|
+
// Validate each item against schema
|
|
126
|
+
for (const [id, item] of this.items) {
|
|
127
|
+
const itemErrors = this.validateItem(item);
|
|
128
|
+
for (const error of itemErrors) {
|
|
129
|
+
errors.push(`Item ${id}: ${error}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Check label distribution
|
|
133
|
+
const distribution = this.calculateLabelDistribution();
|
|
134
|
+
const labels = Object.keys(distribution);
|
|
135
|
+
if (labels.length === 1 && this.items.size > 1) {
|
|
136
|
+
warnings.push('All items have the same label - corpus may not be useful for validation');
|
|
137
|
+
}
|
|
138
|
+
// Check for severe class imbalance
|
|
139
|
+
if (labels.length > 1) {
|
|
140
|
+
const counts = Object.values(distribution);
|
|
141
|
+
const max = Math.max(...counts);
|
|
142
|
+
const min = Math.min(...counts);
|
|
143
|
+
if (max > min * 10) {
|
|
144
|
+
warnings.push('Severe class imbalance detected - largest class is 10x+ larger than smallest');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
valid: errors.length === 0,
|
|
149
|
+
errors,
|
|
150
|
+
warnings
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Validate a single item against schema
|
|
155
|
+
*/
|
|
156
|
+
validateItem(item) {
|
|
157
|
+
const errors = [];
|
|
158
|
+
const schema = this.options.schema;
|
|
159
|
+
// Check required item fields
|
|
160
|
+
if (!item.id) {
|
|
161
|
+
errors.push('Missing required field: id');
|
|
162
|
+
}
|
|
163
|
+
if (item.content === undefined) {
|
|
164
|
+
errors.push('Missing required field: content');
|
|
165
|
+
}
|
|
166
|
+
if (item.groundTruth === undefined) {
|
|
167
|
+
errors.push('Missing required field: groundTruth');
|
|
168
|
+
}
|
|
169
|
+
// Validate ground truth type
|
|
170
|
+
const gtType = typeof item.groundTruth;
|
|
171
|
+
if (schema.groundTruthType === 'boolean' && gtType !== 'boolean') {
|
|
172
|
+
errors.push(`Ground truth should be boolean, got ${gtType}`);
|
|
173
|
+
}
|
|
174
|
+
if (schema.groundTruthType === 'string' && gtType !== 'string') {
|
|
175
|
+
errors.push(`Ground truth should be string, got ${gtType}`);
|
|
176
|
+
}
|
|
177
|
+
if (schema.groundTruthType === 'number' && gtType !== 'number') {
|
|
178
|
+
errors.push(`Ground truth should be number, got ${gtType}`);
|
|
179
|
+
}
|
|
180
|
+
if (schema.groundTruthType === 'object' && (gtType !== 'object' || Array.isArray(item.groundTruth))) {
|
|
181
|
+
errors.push(`Ground truth should be object, got ${gtType}`);
|
|
182
|
+
}
|
|
183
|
+
if (schema.groundTruthType === 'array' && !Array.isArray(item.groundTruth)) {
|
|
184
|
+
errors.push(`Ground truth should be array, got ${gtType}`);
|
|
185
|
+
}
|
|
186
|
+
// Check required fields for object type
|
|
187
|
+
if (schema.groundTruthType === 'object' && schema.requiredFields && typeof item.groundTruth === 'object') {
|
|
188
|
+
for (const field of schema.requiredFields) {
|
|
189
|
+
if (!(field in item.groundTruth)) {
|
|
190
|
+
errors.push(`Ground truth missing required field: ${field}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Check enum values for string type
|
|
195
|
+
if (schema.groundTruthType === 'string' && schema.enumValues && typeof item.groundTruth === 'string') {
|
|
196
|
+
if (!schema.enumValues.includes(item.groundTruth)) {
|
|
197
|
+
errors.push(`Ground truth value '${item.groundTruth}' not in allowed values: ${schema.enumValues.join(', ')}`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return errors;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Calculate label distribution
|
|
204
|
+
*/
|
|
205
|
+
calculateLabelDistribution() {
|
|
206
|
+
const distribution = {};
|
|
207
|
+
for (const item of this.items.values()) {
|
|
208
|
+
const label = String(item.groundTruth);
|
|
209
|
+
distribution[label] = (distribution[label] || 0) + 1;
|
|
210
|
+
}
|
|
211
|
+
return distribution;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Export corpus to files
|
|
215
|
+
*
|
|
216
|
+
* @param options - Export options
|
|
217
|
+
* @throws {Error} If corpus is invalid
|
|
218
|
+
*/
|
|
219
|
+
async export(options) {
|
|
220
|
+
// Validate first
|
|
221
|
+
const validation = this.validate();
|
|
222
|
+
if (!validation.valid) {
|
|
223
|
+
throw new Error(`Cannot export invalid corpus: ${validation.errors.join(', ')}`);
|
|
224
|
+
}
|
|
225
|
+
const maxItemsPerFile = options.maxItemsPerFile || 1000;
|
|
226
|
+
const items = this.getAllItems();
|
|
227
|
+
// Create directories
|
|
228
|
+
const manifestDir = path.join(options.outputDir, 'manifests');
|
|
229
|
+
const dataDir = path.join(options.outputDir, 'data', this.options.type);
|
|
230
|
+
await fs.mkdir(manifestDir, { recursive: true });
|
|
231
|
+
await fs.mkdir(dataDir, { recursive: true });
|
|
232
|
+
// Split items into files
|
|
233
|
+
const dataFiles = [];
|
|
234
|
+
const chunks = this.chunkArray(items, maxItemsPerFile);
|
|
235
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
236
|
+
const fileName = chunks.length === 1
|
|
237
|
+
? `${this.options.type}-v${options.version}.json`
|
|
238
|
+
: `${this.options.type}-v${options.version}-part${i + 1}.json`;
|
|
239
|
+
const filePath = path.join(dataDir, fileName);
|
|
240
|
+
await fs.writeFile(filePath, JSON.stringify(chunks[i], null, 2), 'utf-8');
|
|
241
|
+
dataFiles.push(fileName);
|
|
242
|
+
}
|
|
243
|
+
// Create manifest
|
|
244
|
+
const manifest = {
|
|
245
|
+
name: this.options.name,
|
|
246
|
+
type: this.options.type,
|
|
247
|
+
version: options.version,
|
|
248
|
+
description: this.options.description,
|
|
249
|
+
createdAt: new Date().toISOString(),
|
|
250
|
+
updatedAt: new Date().toISOString(),
|
|
251
|
+
itemCount: items.length,
|
|
252
|
+
schema: this.options.schema,
|
|
253
|
+
labelDistribution: this.calculateLabelDistribution(),
|
|
254
|
+
linkedNFRs: this.options.linkedNFRs,
|
|
255
|
+
dataFiles
|
|
256
|
+
};
|
|
257
|
+
const manifestPath = path.join(manifestDir, `${this.options.type}-v${options.version}.json`);
|
|
258
|
+
await fs.writeFile(manifestPath, JSON.stringify(manifest, null, 2), 'utf-8');
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Split array into chunks
|
|
262
|
+
*/
|
|
263
|
+
chunkArray(array, chunkSize) {
|
|
264
|
+
const chunks = [];
|
|
265
|
+
for (let i = 0; i < array.length; i += chunkSize) {
|
|
266
|
+
chunks.push(array.slice(i, i + chunkSize));
|
|
267
|
+
}
|
|
268
|
+
return chunks;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Import items from existing JSON file
|
|
272
|
+
*
|
|
273
|
+
* @param filePath - Path to JSON file
|
|
274
|
+
* @throws {Error} If file cannot be read or parsed
|
|
275
|
+
*/
|
|
276
|
+
async importFromFile(filePath) {
|
|
277
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
278
|
+
const data = JSON.parse(content);
|
|
279
|
+
if (Array.isArray(data)) {
|
|
280
|
+
this.addItems(data);
|
|
281
|
+
}
|
|
282
|
+
else if (data.items && Array.isArray(data.items)) {
|
|
283
|
+
this.addItems(data.items);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
throw new Error('Invalid file format: expected array of items or object with items array');
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Get corpus statistics
|
|
291
|
+
*/
|
|
292
|
+
getStatistics() {
|
|
293
|
+
return {
|
|
294
|
+
itemCount: this.items.size,
|
|
295
|
+
labelDistribution: this.calculateLabelDistribution(),
|
|
296
|
+
type: this.options.type
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Pre-configured builder factories for each corpus type
|
|
302
|
+
*/
|
|
303
|
+
export const CorpusBuilders = {
|
|
304
|
+
/**
|
|
305
|
+
* Create AI vs Human writing corpus builder
|
|
306
|
+
*/
|
|
307
|
+
aiVsHuman() {
|
|
308
|
+
return new CorpusBuilder({
|
|
309
|
+
type: 'ai-vs-human',
|
|
310
|
+
name: 'AI vs Human Writing Corpus',
|
|
311
|
+
description: 'Labeled documents for AI pattern detection validation',
|
|
312
|
+
schema: {
|
|
313
|
+
groundTruthType: 'boolean',
|
|
314
|
+
formatDescription: 'true for AI-generated, false for human-written'
|
|
315
|
+
},
|
|
316
|
+
linkedNFRs: ['NFR-ACC-001']
|
|
317
|
+
});
|
|
318
|
+
},
|
|
319
|
+
/**
|
|
320
|
+
* Create codebase metadata corpus builder
|
|
321
|
+
*/
|
|
322
|
+
codebases() {
|
|
323
|
+
return new CorpusBuilder({
|
|
324
|
+
type: 'codebases',
|
|
325
|
+
name: 'Codebase Metadata Corpus',
|
|
326
|
+
description: 'Codebases with verified metadata for intake validation',
|
|
327
|
+
schema: {
|
|
328
|
+
groundTruthType: 'object',
|
|
329
|
+
requiredFields: ['language', 'framework', 'techStack'],
|
|
330
|
+
formatDescription: 'Object with language, framework, techStack fields'
|
|
331
|
+
},
|
|
332
|
+
linkedNFRs: ['NFR-ACC-002']
|
|
333
|
+
});
|
|
334
|
+
},
|
|
335
|
+
/**
|
|
336
|
+
* Create traceability links corpus builder
|
|
337
|
+
*/
|
|
338
|
+
traceability() {
|
|
339
|
+
return new CorpusBuilder({
|
|
340
|
+
type: 'traceability',
|
|
341
|
+
name: 'Requirements Traceability Corpus',
|
|
342
|
+
description: 'Requirements with verified traceability links',
|
|
343
|
+
schema: {
|
|
344
|
+
groundTruthType: 'object',
|
|
345
|
+
requiredFields: ['requirementId', 'codeFiles', 'testFiles'],
|
|
346
|
+
formatDescription: 'Object with requirementId, codeFiles array, testFiles array'
|
|
347
|
+
},
|
|
348
|
+
linkedNFRs: ['NFR-TRACE-05', 'NFR-TRACE-06']
|
|
349
|
+
});
|
|
350
|
+
},
|
|
351
|
+
/**
|
|
352
|
+
* Create security attacks corpus builder
|
|
353
|
+
*/
|
|
354
|
+
securityAttacks() {
|
|
355
|
+
return new CorpusBuilder({
|
|
356
|
+
type: 'security-attacks',
|
|
357
|
+
name: 'Security Attack Patterns Corpus',
|
|
358
|
+
description: 'Known attack patterns for security detection validation',
|
|
359
|
+
schema: {
|
|
360
|
+
groundTruthType: 'object',
|
|
361
|
+
requiredFields: ['attackType', 'severity'],
|
|
362
|
+
formatDescription: 'Object with attackType (sql-injection, xss, etc.) and severity (critical, high, medium, low)'
|
|
363
|
+
},
|
|
364
|
+
linkedNFRs: ['NFR-SEC-ACC-01']
|
|
365
|
+
});
|
|
366
|
+
},
|
|
367
|
+
/**
|
|
368
|
+
* Create template recommendations corpus builder
|
|
369
|
+
*/
|
|
370
|
+
templateRecommendations() {
|
|
371
|
+
return new CorpusBuilder({
|
|
372
|
+
type: 'template-recommendations',
|
|
373
|
+
name: 'Template Recommendation Corpus',
|
|
374
|
+
description: 'Scenarios with expected template recommendations',
|
|
375
|
+
schema: {
|
|
376
|
+
groundTruthType: 'array',
|
|
377
|
+
formatDescription: 'Array of recommended template IDs'
|
|
378
|
+
},
|
|
379
|
+
linkedNFRs: ['NFR-TMPL-07']
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
//# sourceMappingURL=corpus-builder.js.map
|