@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,503 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates agents following the 10 Golden Rules from the Agent Design Bible.
|
|
5
|
+
*
|
|
6
|
+
* @architecture @.aiwg/architecture/software-architecture-doc.md
|
|
7
|
+
*/
|
|
8
|
+
import { AgentPackager } from '../../agents/agent-packager.js';
|
|
9
|
+
import { getProviderDefinition } from '../../providers/provider-definitions.js';
|
|
10
|
+
import { compileModelPolicy, renderCodexAgentToml, } from '../../models/provider-policy.js';
|
|
11
|
+
import { collectProviderInventory } from '../../providers/provider-inventory.js';
|
|
12
|
+
import { resolveDynamicModelCatalog } from '../../models/model-discovery.js';
|
|
13
|
+
import * as fs from 'fs/promises';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { existsSync } from 'fs';
|
|
16
|
+
import { fileURLToPath } from 'url';
|
|
17
|
+
/**
|
|
18
|
+
* Template configurations following 10 Golden Rules
|
|
19
|
+
*/
|
|
20
|
+
const TEMPLATE_CONFIGS = {
|
|
21
|
+
simple: {
|
|
22
|
+
modelTier: 'haiku',
|
|
23
|
+
tools: ['Read', 'Write'],
|
|
24
|
+
maxTools: 2,
|
|
25
|
+
canDelegate: false,
|
|
26
|
+
readOnly: false,
|
|
27
|
+
description: 'Simple agents for focused, single-purpose tasks',
|
|
28
|
+
},
|
|
29
|
+
complex: {
|
|
30
|
+
modelTier: 'sonnet',
|
|
31
|
+
tools: ['Read', 'Write', 'Grep'],
|
|
32
|
+
maxTools: 3,
|
|
33
|
+
canDelegate: false,
|
|
34
|
+
readOnly: false,
|
|
35
|
+
description: 'Complex agents requiring analysis and decision-making',
|
|
36
|
+
},
|
|
37
|
+
orchestrator: {
|
|
38
|
+
modelTier: 'opus',
|
|
39
|
+
tools: ['Task'],
|
|
40
|
+
maxTools: 1,
|
|
41
|
+
canDelegate: true,
|
|
42
|
+
readOnly: true,
|
|
43
|
+
description: 'Orchestrators that delegate to other agents (Task tool only)',
|
|
44
|
+
},
|
|
45
|
+
validator: {
|
|
46
|
+
modelTier: 'sonnet',
|
|
47
|
+
tools: ['Read', 'Grep'],
|
|
48
|
+
maxTools: 2,
|
|
49
|
+
canDelegate: false,
|
|
50
|
+
readOnly: true,
|
|
51
|
+
description: 'Validators for quality checks (read-only)',
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Agent Generator
|
|
56
|
+
*/
|
|
57
|
+
export class AgentGenerator {
|
|
58
|
+
packager;
|
|
59
|
+
constructor() {
|
|
60
|
+
this.packager = new AgentPackager();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Generate agent following 10 Golden Rules
|
|
64
|
+
*/
|
|
65
|
+
async generateAgent(options) {
|
|
66
|
+
// Step 1: Validate inputs
|
|
67
|
+
this.validateOptions(options);
|
|
68
|
+
// Step 2: Get template configuration
|
|
69
|
+
const template = options.template || 'simple';
|
|
70
|
+
const templateConfig = TEMPLATE_CONFIGS[template];
|
|
71
|
+
// Step 3: Select model tier
|
|
72
|
+
const modelTier = options.model || templateConfig.modelTier;
|
|
73
|
+
const modelPolicy = this.modelPolicyForTier(modelTier);
|
|
74
|
+
// Step 4: Select tools
|
|
75
|
+
const tools = this.selectTools(options.tools, templateConfig);
|
|
76
|
+
// Step 5: Build agent structure
|
|
77
|
+
const structure = await this.buildAgentStructure(options, templateConfig);
|
|
78
|
+
// Step 6: Generate agent content
|
|
79
|
+
const content = this.generateContent(structure, modelPolicy, tools);
|
|
80
|
+
// Step 7: Transform for platform
|
|
81
|
+
const compiled = compileModelPolicy({
|
|
82
|
+
provider: this.modelProvider(options.platform),
|
|
83
|
+
artifact: 'agent',
|
|
84
|
+
policy: modelPolicy,
|
|
85
|
+
catalog: await this.loadEffectiveCatalog(options.projectPath),
|
|
86
|
+
});
|
|
87
|
+
const platformContent = await this.transformForPlatform(content, options.name, options.description, compiled.fields.model ?? modelTier, modelPolicy, compiled.effectiveEffort, tools, options.platform, options.category, options.version);
|
|
88
|
+
// Step 8: Determine deployment path
|
|
89
|
+
const deploymentPath = this.getDeploymentPath(options.projectPath, options.platform, options.name);
|
|
90
|
+
return {
|
|
91
|
+
name: options.name,
|
|
92
|
+
path: deploymentPath,
|
|
93
|
+
content: platformContent,
|
|
94
|
+
platform: options.platform,
|
|
95
|
+
model: modelTier,
|
|
96
|
+
modelPolicy,
|
|
97
|
+
tools,
|
|
98
|
+
category: options.category,
|
|
99
|
+
version: options.version,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Deploy generated agent
|
|
104
|
+
*/
|
|
105
|
+
async deployAgent(agent) {
|
|
106
|
+
const dir = path.dirname(agent.path);
|
|
107
|
+
// Ensure target directory exists
|
|
108
|
+
await fs.mkdir(dir, { recursive: true });
|
|
109
|
+
// Write file
|
|
110
|
+
await fs.writeFile(agent.path, agent.content, 'utf-8');
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Validate agent options
|
|
114
|
+
*/
|
|
115
|
+
validateOptions(options) {
|
|
116
|
+
if (!options.name || !/^[a-z0-9-]+$/.test(options.name)) {
|
|
117
|
+
throw new Error('Agent name must be kebab-case (lowercase with hyphens)');
|
|
118
|
+
}
|
|
119
|
+
if (!options.description || options.description.length < 10) {
|
|
120
|
+
throw new Error('Agent description must be at least 10 characters');
|
|
121
|
+
}
|
|
122
|
+
if (!options.platform) {
|
|
123
|
+
throw new Error('Platform is required');
|
|
124
|
+
}
|
|
125
|
+
if (!options.projectPath) {
|
|
126
|
+
throw new Error('Project path is required');
|
|
127
|
+
}
|
|
128
|
+
// Validate custom tools don't exceed template max
|
|
129
|
+
if (options.tools) {
|
|
130
|
+
const template = options.template || 'simple';
|
|
131
|
+
const maxTools = TEMPLATE_CONFIGS[template].maxTools;
|
|
132
|
+
if (options.tools.length > maxTools) {
|
|
133
|
+
throw new Error(`Template '${template}' allows maximum ${maxTools} tools (Golden Rule #2: Minimal Tools)`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Select tools based on template and overrides
|
|
139
|
+
*/
|
|
140
|
+
selectTools(customTools, config) {
|
|
141
|
+
if (customTools && customTools.length > 0) {
|
|
142
|
+
// Validate count
|
|
143
|
+
if (customTools.length > config.maxTools) {
|
|
144
|
+
throw new Error(`Maximum ${config.maxTools} tools allowed for this template (Golden Rule #2)`);
|
|
145
|
+
}
|
|
146
|
+
return customTools;
|
|
147
|
+
}
|
|
148
|
+
return config.tools;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Build agent structure from options
|
|
152
|
+
*/
|
|
153
|
+
async buildAgentStructure(options, config) {
|
|
154
|
+
const title = this.toTitleCase(options.name);
|
|
155
|
+
// Build structure from guidance or use defaults
|
|
156
|
+
const structure = {
|
|
157
|
+
title,
|
|
158
|
+
description: options.description,
|
|
159
|
+
expertise: this.extractExpertise(options.guidance, config),
|
|
160
|
+
responsibilities: this.extractResponsibilities(options.guidance, config),
|
|
161
|
+
workflow: this.generateWorkflow(config),
|
|
162
|
+
outputFormat: this.generateOutputFormat(options.guidance, config),
|
|
163
|
+
constraints: this.generateConstraints(config),
|
|
164
|
+
examples: this.generateExamples(options.guidance),
|
|
165
|
+
};
|
|
166
|
+
return structure;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Extract expertise from guidance
|
|
170
|
+
*/
|
|
171
|
+
extractExpertise(guidance, config) {
|
|
172
|
+
const expertise = [];
|
|
173
|
+
// Add template-specific expertise
|
|
174
|
+
if (config.canDelegate) {
|
|
175
|
+
expertise.push('Multi-agent orchestration and workflow coordination');
|
|
176
|
+
expertise.push('Task decomposition and parallel execution patterns');
|
|
177
|
+
}
|
|
178
|
+
else if (config.readOnly) {
|
|
179
|
+
expertise.push('Code analysis and quality validation');
|
|
180
|
+
expertise.push('Pattern detection and compliance checking');
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
expertise.push('Domain-specific task execution');
|
|
184
|
+
expertise.push('File manipulation and content generation');
|
|
185
|
+
}
|
|
186
|
+
// Extract from guidance if provided
|
|
187
|
+
if (guidance) {
|
|
188
|
+
const expertisePatterns = [
|
|
189
|
+
/expert in (.+?)(?:\.|,|$)/gi,
|
|
190
|
+
/knowledge of (.+?)(?:\.|,|$)/gi,
|
|
191
|
+
/understands (.+?)(?:\.|,|$)/gi,
|
|
192
|
+
];
|
|
193
|
+
for (const pattern of expertisePatterns) {
|
|
194
|
+
const matches = guidance.matchAll(pattern);
|
|
195
|
+
for (const match of matches) {
|
|
196
|
+
expertise.push(match[1].trim());
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return expertise;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Extract responsibilities from guidance
|
|
204
|
+
*/
|
|
205
|
+
extractResponsibilities(guidance, config) {
|
|
206
|
+
const responsibilities = [];
|
|
207
|
+
// Add template-specific responsibilities
|
|
208
|
+
if (config.canDelegate) {
|
|
209
|
+
responsibilities.push('Decompose complex tasks into agent-sized subtasks');
|
|
210
|
+
responsibilities.push('Launch parallel agent execution when appropriate');
|
|
211
|
+
responsibilities.push('Synthesize results from multiple agents');
|
|
212
|
+
}
|
|
213
|
+
else if (config.readOnly) {
|
|
214
|
+
responsibilities.push('Analyze files and patterns without modification');
|
|
215
|
+
responsibilities.push('Report findings with specific evidence');
|
|
216
|
+
responsibilities.push('Escalate issues requiring human decision');
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
responsibilities.push('Execute well-defined tasks with clear scope');
|
|
220
|
+
responsibilities.push('Verify preconditions before taking action');
|
|
221
|
+
responsibilities.push('Report results with clear success/failure indication');
|
|
222
|
+
}
|
|
223
|
+
// Extract from guidance
|
|
224
|
+
if (guidance) {
|
|
225
|
+
const responsibilityPatterns = [
|
|
226
|
+
/must (.+?)(?:\.|,|$)/gi,
|
|
227
|
+
/should (.+?)(?:\.|,|$)/gi,
|
|
228
|
+
/responsible for (.+?)(?:\.|,|$)/gi,
|
|
229
|
+
];
|
|
230
|
+
for (const pattern of responsibilityPatterns) {
|
|
231
|
+
const matches = guidance.matchAll(pattern);
|
|
232
|
+
for (const match of matches) {
|
|
233
|
+
const resp = match[1].trim();
|
|
234
|
+
if (!resp.includes('not') && !resp.includes("don't")) {
|
|
235
|
+
responsibilities.push(resp);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return responsibilities.slice(0, 5); // Max 5 responsibilities (Golden Rule #1: Single Responsibility)
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Generate workflow steps
|
|
244
|
+
*/
|
|
245
|
+
generateWorkflow(config) {
|
|
246
|
+
const workflow = [];
|
|
247
|
+
// Common steps (Golden Rules #3, #4, #5)
|
|
248
|
+
workflow.push('**Verify inputs**: Check all required parameters are provided and valid');
|
|
249
|
+
if (!config.readOnly) {
|
|
250
|
+
workflow.push('**Ground before acting**: Use Read/Grep to verify current state');
|
|
251
|
+
}
|
|
252
|
+
// Template-specific workflow
|
|
253
|
+
if (config.canDelegate) {
|
|
254
|
+
workflow.push('**Decompose task**: Break into parallel-ready subtasks');
|
|
255
|
+
workflow.push('**Launch agents**: Use Task tool to delegate subtasks');
|
|
256
|
+
workflow.push('**Synthesize results**: Combine agent outputs into cohesive result');
|
|
257
|
+
}
|
|
258
|
+
else if (config.readOnly) {
|
|
259
|
+
workflow.push('**Scan and analyze**: Use Read/Grep to examine files');
|
|
260
|
+
workflow.push('**Identify issues**: Flag violations or areas of concern');
|
|
261
|
+
workflow.push('**Report findings**: Provide actionable recommendations');
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
workflow.push('**Execute task**: Perform the requested operation');
|
|
265
|
+
workflow.push('**Verify result**: Confirm expected outcome achieved');
|
|
266
|
+
}
|
|
267
|
+
// Always include uncertainty handling (Golden Rule #5)
|
|
268
|
+
workflow.push('**Handle uncertainty**: Escalate to user if ambiguous or out of scope');
|
|
269
|
+
return workflow;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Generate output format
|
|
273
|
+
*/
|
|
274
|
+
generateOutputFormat(guidance, config) {
|
|
275
|
+
// Extract format from guidance if specified
|
|
276
|
+
if (guidance) {
|
|
277
|
+
const formatMatch = guidance.match(/output format[:\s]+(.+?)(?:\.|$)/i);
|
|
278
|
+
if (formatMatch) {
|
|
279
|
+
return formatMatch[1].trim();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// Default formats by template
|
|
283
|
+
if (config.canDelegate) {
|
|
284
|
+
return 'Structured summary with sections for each delegated task and synthesized conclusion';
|
|
285
|
+
}
|
|
286
|
+
else if (config.readOnly) {
|
|
287
|
+
return 'Issue report with severity, location, and recommended actions';
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
return 'Concise confirmation with key details (files modified, lines changed, etc.)';
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Generate constraints
|
|
295
|
+
*/
|
|
296
|
+
generateConstraints(config) {
|
|
297
|
+
const constraints = [];
|
|
298
|
+
// Golden Rule #2: Minimal Tools
|
|
299
|
+
constraints.push(`Limited to ${config.maxTools} tool(s): ${config.tools.join(', ')}`);
|
|
300
|
+
// Template-specific constraints
|
|
301
|
+
if (config.readOnly) {
|
|
302
|
+
constraints.push('Read-only: Cannot modify files or execute commands');
|
|
303
|
+
}
|
|
304
|
+
if (config.canDelegate) {
|
|
305
|
+
constraints.push('Delegation-only: Uses Task tool, does not perform direct operations');
|
|
306
|
+
}
|
|
307
|
+
// Golden Rule #1: Single Responsibility
|
|
308
|
+
constraints.push('Single responsibility: Stays within defined scope');
|
|
309
|
+
// Golden Rule #5: Uncertainty
|
|
310
|
+
constraints.push('Escalates ambiguous requests to user rather than guessing');
|
|
311
|
+
return constraints;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Generate examples from guidance
|
|
315
|
+
*/
|
|
316
|
+
generateExamples(guidance) {
|
|
317
|
+
if (!guidance)
|
|
318
|
+
return undefined;
|
|
319
|
+
const examples = [];
|
|
320
|
+
const examplePattern = /example[:\s]+(.+?)(?:\.|$)/gi;
|
|
321
|
+
const matches = guidance.matchAll(examplePattern);
|
|
322
|
+
for (const match of matches) {
|
|
323
|
+
examples.push(match[1].trim());
|
|
324
|
+
}
|
|
325
|
+
return examples.length > 0 ? examples : undefined;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Generate full agent content
|
|
329
|
+
*/
|
|
330
|
+
generateContent(structure, model, tools) {
|
|
331
|
+
const lines = [];
|
|
332
|
+
// Title and description
|
|
333
|
+
lines.push(`# ${structure.title}`);
|
|
334
|
+
lines.push('');
|
|
335
|
+
lines.push(structure.description);
|
|
336
|
+
lines.push('');
|
|
337
|
+
// Expertise
|
|
338
|
+
lines.push('## Expertise');
|
|
339
|
+
lines.push('');
|
|
340
|
+
for (const item of structure.expertise) {
|
|
341
|
+
lines.push(`- ${item}`);
|
|
342
|
+
}
|
|
343
|
+
lines.push('');
|
|
344
|
+
// Responsibilities
|
|
345
|
+
lines.push('## Responsibilities');
|
|
346
|
+
lines.push('');
|
|
347
|
+
for (const item of structure.responsibilities) {
|
|
348
|
+
lines.push(`- ${item}`);
|
|
349
|
+
}
|
|
350
|
+
lines.push('');
|
|
351
|
+
// Workflow
|
|
352
|
+
lines.push('## Workflow');
|
|
353
|
+
lines.push('');
|
|
354
|
+
for (let i = 0; i < structure.workflow.length; i++) {
|
|
355
|
+
lines.push(`${i + 1}. ${structure.workflow[i]}`);
|
|
356
|
+
}
|
|
357
|
+
lines.push('');
|
|
358
|
+
// Output Format
|
|
359
|
+
lines.push('## Output Format');
|
|
360
|
+
lines.push('');
|
|
361
|
+
lines.push(structure.outputFormat);
|
|
362
|
+
lines.push('');
|
|
363
|
+
// Constraints
|
|
364
|
+
if (structure.constraints && structure.constraints.length > 0) {
|
|
365
|
+
lines.push('## Constraints');
|
|
366
|
+
lines.push('');
|
|
367
|
+
for (const item of structure.constraints) {
|
|
368
|
+
lines.push(`- ${item}`);
|
|
369
|
+
}
|
|
370
|
+
lines.push('');
|
|
371
|
+
}
|
|
372
|
+
// Examples
|
|
373
|
+
if (structure.examples && structure.examples.length > 0) {
|
|
374
|
+
lines.push('## Examples');
|
|
375
|
+
lines.push('');
|
|
376
|
+
for (const example of structure.examples) {
|
|
377
|
+
lines.push(`- ${example}`);
|
|
378
|
+
}
|
|
379
|
+
lines.push('');
|
|
380
|
+
}
|
|
381
|
+
// 10 Golden Rules compliance note
|
|
382
|
+
lines.push('---');
|
|
383
|
+
lines.push('');
|
|
384
|
+
lines.push('**Note**: This agent follows the 10 Golden Rules for agent design:');
|
|
385
|
+
lines.push('');
|
|
386
|
+
lines.push('1. **Single Responsibility** - One clear purpose');
|
|
387
|
+
lines.push(`2. **Minimal Tools** - ${tools.length} tool(s) maximum`);
|
|
388
|
+
lines.push('3. **Explicit I/O** - Clear inputs and outputs');
|
|
389
|
+
lines.push('4. **Grounding** - Verifies before acting');
|
|
390
|
+
lines.push('5. **Uncertainty** - Escalates ambiguity');
|
|
391
|
+
lines.push('6. **Context Scope** - Filters distractors');
|
|
392
|
+
lines.push('7. **Recovery** - Handles errors gracefully');
|
|
393
|
+
lines.push(`8. **Model Tier** - ${model.role}/${model.tier} canonical policy for task complexity`);
|
|
394
|
+
lines.push('9. **Parallel Ready** - Safe for concurrent execution');
|
|
395
|
+
lines.push('10. **Observable** - Traceable output');
|
|
396
|
+
return lines.join('\n');
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Transform content for platform
|
|
400
|
+
*/
|
|
401
|
+
async transformForPlatform(content, name, description, model, modelPolicy, effort, tools, platform, category, version) {
|
|
402
|
+
if (platform === 'codex') {
|
|
403
|
+
return renderCodexAgentToml({
|
|
404
|
+
name,
|
|
405
|
+
description,
|
|
406
|
+
developerInstructions: [
|
|
407
|
+
content,
|
|
408
|
+
'',
|
|
409
|
+
'## Canonical Model Policy',
|
|
410
|
+
'',
|
|
411
|
+
`- model-role: ${modelPolicy.role}`,
|
|
412
|
+
`- model-tier: ${modelPolicy.tier}`,
|
|
413
|
+
].join('\n'),
|
|
414
|
+
model,
|
|
415
|
+
...(effort ? { modelReasoningEffort: effort } : {}),
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
// Create AgentInfo-like structure for packager
|
|
419
|
+
const agentInfo = {
|
|
420
|
+
metadata: {
|
|
421
|
+
name,
|
|
422
|
+
description,
|
|
423
|
+
model,
|
|
424
|
+
modelRole: modelPolicy.role,
|
|
425
|
+
modelTier: modelPolicy.tier,
|
|
426
|
+
tools,
|
|
427
|
+
category: category,
|
|
428
|
+
version,
|
|
429
|
+
},
|
|
430
|
+
content,
|
|
431
|
+
filePath: '', // Not used
|
|
432
|
+
fileName: '', // Not used
|
|
433
|
+
};
|
|
434
|
+
const packaged = await this.packager.package(agentInfo, platform);
|
|
435
|
+
return packaged.content;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Get deployment path for platform
|
|
439
|
+
*/
|
|
440
|
+
getDeploymentPath(projectPath, platform, name) {
|
|
441
|
+
if (platform === 'codex')
|
|
442
|
+
return path.join(projectPath, '.codex/agents', `${name}.toml`);
|
|
443
|
+
const platformDir = getProviderDefinition(platform)?.paths.artifacts.agents ?? '';
|
|
444
|
+
const ext = this.packager.getFileExtension(platform);
|
|
445
|
+
return path.join(projectPath, platformDir, `${name}${ext}`);
|
|
446
|
+
}
|
|
447
|
+
modelProvider(platform) {
|
|
448
|
+
return (platform === 'generic' ? 'claude' : platform);
|
|
449
|
+
}
|
|
450
|
+
modelPolicyForTier(tier) {
|
|
451
|
+
if (tier === 'haiku')
|
|
452
|
+
return { role: 'efficiency', tier: 'economy', effort: 'low' };
|
|
453
|
+
if (tier === 'opus')
|
|
454
|
+
return { role: 'reasoning', tier: 'premium', effort: 'high' };
|
|
455
|
+
return { role: 'coding', tier: 'standard', effort: 'medium' };
|
|
456
|
+
}
|
|
457
|
+
async loadEffectiveCatalog(projectPath) {
|
|
458
|
+
const aiwgRoot = this.findAiwgRoot();
|
|
459
|
+
const inventory = await collectProviderInventory(projectPath, { detectProcess: false });
|
|
460
|
+
return resolveDynamicModelCatalog({
|
|
461
|
+
aiwgRoot,
|
|
462
|
+
inventory,
|
|
463
|
+
allowNetwork: false,
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
findAiwgRoot() {
|
|
467
|
+
let cursor = path.dirname(fileURLToPath(import.meta.url));
|
|
468
|
+
for (let i = 0; i < 8; i++) {
|
|
469
|
+
if (existsSync(path.join(cursor, 'agentic/code/providers/model-catalog.v1.json')))
|
|
470
|
+
return cursor;
|
|
471
|
+
const next = path.dirname(cursor);
|
|
472
|
+
if (next === cursor)
|
|
473
|
+
break;
|
|
474
|
+
cursor = next;
|
|
475
|
+
}
|
|
476
|
+
return process.cwd();
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Convert kebab-case to Title Case
|
|
480
|
+
*/
|
|
481
|
+
toTitleCase(kebab) {
|
|
482
|
+
return kebab
|
|
483
|
+
.split('-')
|
|
484
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
485
|
+
.join(' ');
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Get template configuration
|
|
489
|
+
*/
|
|
490
|
+
getTemplateConfig(template) {
|
|
491
|
+
return TEMPLATE_CONFIGS[template];
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* List all available templates
|
|
495
|
+
*/
|
|
496
|
+
listTemplates() {
|
|
497
|
+
return Object.entries(TEMPLATE_CONFIGS).map(([name, config]) => ({
|
|
498
|
+
name: name,
|
|
499
|
+
config,
|
|
500
|
+
}));
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentSmith - Agent Generation with Platform-Aware Deployment
|
|
3
|
+
*
|
|
4
|
+
* Generates custom agents following the 10 Golden Rules and deploys them
|
|
5
|
+
* to platform-specific locations with proper format transformations.
|
|
6
|
+
*
|
|
7
|
+
* @module smiths/agentsmith
|
|
8
|
+
*/
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export * from './generator.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for AgentSmith - Agent Generation with Platform-Aware Deployment
|
|
3
|
+
*
|
|
4
|
+
* AgentSmith generates custom agents following the 10 Golden Rules and deploys
|
|
5
|
+
* them to platform-specific locations with proper format transformations.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=types.js.map
|