@aiwg/cli 0.0.0-bootstrap.0 → 2026.7.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +22 -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 +1486 -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 +886 -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 +65 -9
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills CLI Commands
|
|
3
|
+
*
|
|
4
|
+
* Provides CLI interface for multi-registry skill operations:
|
|
5
|
+
* - search: Search skills across registries
|
|
6
|
+
* - info: Show detailed skill information
|
|
7
|
+
* - list: List all available skills
|
|
8
|
+
* - install: Install a skill from a registry
|
|
9
|
+
* - publish: Publish a skill to a registry
|
|
10
|
+
*
|
|
11
|
+
* @implements #539
|
|
12
|
+
*/
|
|
13
|
+
import { spawn } from 'child_process';
|
|
14
|
+
import { searchSkills, listSkills, getSkillInfo, installSkill, publishSkill, getAllAdapters, } from './registry.js';
|
|
15
|
+
import { parseAgentSpawnFlags, buildAgentArgs, getProviderConfig, isSpawnableProvider, } from '../cli/agent-spawn.js';
|
|
16
|
+
const SUPPORTED_TARGETS = [
|
|
17
|
+
'claude', 'copilot', 'factory', 'cursor', 'codex', 'opencode',
|
|
18
|
+
'warp', 'windsurf', 'openclaw', 'openhuman', 'hermes', 'generic',
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Parse --provider and --target flags from args
|
|
22
|
+
*/
|
|
23
|
+
function parseFlags(args) {
|
|
24
|
+
const rest = [];
|
|
25
|
+
let provider;
|
|
26
|
+
let target;
|
|
27
|
+
for (let i = 0; i < args.length; i++) {
|
|
28
|
+
if (args[i] === '--provider' && i + 1 < args.length) {
|
|
29
|
+
provider = args[i + 1];
|
|
30
|
+
i++;
|
|
31
|
+
}
|
|
32
|
+
else if (args[i] === '--target' && i + 1 < args.length) {
|
|
33
|
+
target = args[i + 1];
|
|
34
|
+
i++;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
rest.push(args[i]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { provider, target, rest };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Format skill results as a table
|
|
44
|
+
*/
|
|
45
|
+
function displaySkillsTable(skills) {
|
|
46
|
+
if (skills.length === 0) {
|
|
47
|
+
console.log(' No skills found.');
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Group by source
|
|
51
|
+
const bySource = new Map();
|
|
52
|
+
for (const skill of skills) {
|
|
53
|
+
const list = bySource.get(skill.source) || [];
|
|
54
|
+
list.push(skill);
|
|
55
|
+
bySource.set(skill.source, list);
|
|
56
|
+
}
|
|
57
|
+
for (const [source, sourceSkills] of bySource) {
|
|
58
|
+
console.log(`\n ${source} (${sourceSkills.length} skills):`);
|
|
59
|
+
console.log(' ' + '-'.repeat(70));
|
|
60
|
+
for (const skill of sourceSkills) {
|
|
61
|
+
const name = skill.name.padEnd(28);
|
|
62
|
+
const pkg = (skill.package || '').padEnd(18);
|
|
63
|
+
const desc = skill.description.slice(0, 40);
|
|
64
|
+
console.log(` ${name} ${pkg} ${desc}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Handle 'skills search' command
|
|
70
|
+
*/
|
|
71
|
+
async function handleSearch(args) {
|
|
72
|
+
const { provider, rest } = parseFlags(args);
|
|
73
|
+
const query = rest.join(' ');
|
|
74
|
+
if (!query) {
|
|
75
|
+
console.error('Error: Search query required');
|
|
76
|
+
console.log('Usage: aiwg skills search <query> [--provider <registry>]');
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
const results = await searchSkills(query, provider);
|
|
80
|
+
console.log('');
|
|
81
|
+
console.log(`Search results for "${query}"${provider ? ` (${provider})` : ''}:`);
|
|
82
|
+
displaySkillsTable(results);
|
|
83
|
+
console.log('');
|
|
84
|
+
console.log(` ${results.length} skill(s) found`);
|
|
85
|
+
console.log('');
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Handle 'skills info' command
|
|
89
|
+
*/
|
|
90
|
+
async function handleInfo(args) {
|
|
91
|
+
const { provider, rest } = parseFlags(args);
|
|
92
|
+
const name = rest[0];
|
|
93
|
+
if (!name) {
|
|
94
|
+
console.error('Error: Skill name required');
|
|
95
|
+
console.log('Usage: aiwg skills info <name> [--provider <registry>]');
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
const details = await getSkillInfo(name, provider);
|
|
99
|
+
if (!details) {
|
|
100
|
+
console.error(`Error: Skill '${name}' not found`);
|
|
101
|
+
console.log("Run 'aiwg skills search <query>' to find skills");
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
console.log('');
|
|
105
|
+
console.log(`Skill: ${details.name}`);
|
|
106
|
+
console.log('');
|
|
107
|
+
console.log(`Source: ${details.source}`);
|
|
108
|
+
if (details.package)
|
|
109
|
+
console.log(`Package: ${details.package}`);
|
|
110
|
+
if (details.version)
|
|
111
|
+
console.log(`Version: ${details.version}`);
|
|
112
|
+
console.log(`Description: ${details.description}`);
|
|
113
|
+
if (details.platforms && details.platforms.length > 0) {
|
|
114
|
+
console.log(`Platforms: ${details.platforms.join(', ')}`);
|
|
115
|
+
}
|
|
116
|
+
if (details.triggers && details.triggers.length > 0) {
|
|
117
|
+
console.log('');
|
|
118
|
+
console.log('Triggers:');
|
|
119
|
+
for (const trigger of details.triggers) {
|
|
120
|
+
console.log(` - ${trigger}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (details.scripts && details.scripts.length > 0) {
|
|
124
|
+
console.log('');
|
|
125
|
+
console.log('Scripts:');
|
|
126
|
+
for (const script of details.scripts) {
|
|
127
|
+
console.log(` - ${script}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (details.path) {
|
|
131
|
+
console.log('');
|
|
132
|
+
console.log(`Path: ${details.path}`);
|
|
133
|
+
}
|
|
134
|
+
console.log('');
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Handle 'skills list' command
|
|
138
|
+
*/
|
|
139
|
+
async function handleList(args) {
|
|
140
|
+
const { provider } = parseFlags(args);
|
|
141
|
+
const results = await listSkills(provider);
|
|
142
|
+
console.log('');
|
|
143
|
+
console.log(`Available skills${provider ? ` (${provider})` : ''}:`);
|
|
144
|
+
displaySkillsTable(results);
|
|
145
|
+
console.log('');
|
|
146
|
+
console.log(` ${results.length} skill(s) total`);
|
|
147
|
+
// Show registry availability
|
|
148
|
+
const adapters = getAllAdapters();
|
|
149
|
+
console.log('');
|
|
150
|
+
console.log(' Registries:');
|
|
151
|
+
for (const adapter of adapters) {
|
|
152
|
+
const available = await adapter.isAvailable();
|
|
153
|
+
const status = available ? '\u2713' : '\u2013';
|
|
154
|
+
console.log(` ${status} ${adapter.name} (${adapter.id})`);
|
|
155
|
+
}
|
|
156
|
+
console.log('');
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Handle 'skills install' command
|
|
160
|
+
*
|
|
161
|
+
* Supports cross-platform deployment:
|
|
162
|
+
* aiwg skills install <name> --provider <registry> --target <platform>
|
|
163
|
+
*
|
|
164
|
+
* --provider: which registry to pull from (local, clawhub, openclaw)
|
|
165
|
+
* --target: which platform to deploy to (claude, copilot, cursor, etc.)
|
|
166
|
+
* Defaults to claude. Uses platform-aware path translation.
|
|
167
|
+
*/
|
|
168
|
+
async function handleInstall(args) {
|
|
169
|
+
const { provider, target, rest } = parseFlags(args);
|
|
170
|
+
const name = rest[0];
|
|
171
|
+
if (!name) {
|
|
172
|
+
console.error('Error: Skill name required');
|
|
173
|
+
console.log('Usage: aiwg skills install <name> [--provider <registry>] [--target <platform>]');
|
|
174
|
+
console.log('');
|
|
175
|
+
console.log('Options:');
|
|
176
|
+
console.log(' --provider Registry to pull from (local, clawhub, openclaw). Default: local');
|
|
177
|
+
console.log(' --target Platform to deploy to (claude, copilot, cursor, etc.). Default: claude');
|
|
178
|
+
console.log('');
|
|
179
|
+
console.log('Examples:');
|
|
180
|
+
console.log(' aiwg skills install parallel-dispatch');
|
|
181
|
+
console.log(' aiwg skills install parallel-dispatch --target copilot');
|
|
182
|
+
console.log(' aiwg skills install my-skill --provider clawhub --target cursor');
|
|
183
|
+
console.log('');
|
|
184
|
+
console.log(`Supported targets: ${SUPPORTED_TARGETS.join(', ')}`);
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
const registry = provider || 'local';
|
|
188
|
+
const targetPlatform = target || 'claude';
|
|
189
|
+
if (target && !SUPPORTED_TARGETS.includes(target)) {
|
|
190
|
+
console.error(`Error: Unknown target platform '${target}'`);
|
|
191
|
+
console.log(`Supported: ${SUPPORTED_TARGETS.join(', ')}`);
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
try {
|
|
195
|
+
await installSkill(name, { projectDir: process.cwd(), target: targetPlatform }, registry);
|
|
196
|
+
console.log(`Installed skill '${name}' from ${registry} → ${targetPlatform}`);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
200
|
+
process.exit(1);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Handle 'skills publish' command
|
|
205
|
+
*/
|
|
206
|
+
async function handlePublish(args) {
|
|
207
|
+
const { provider, rest } = parseFlags(args);
|
|
208
|
+
const packageDir = rest[0] || process.cwd();
|
|
209
|
+
if (!provider) {
|
|
210
|
+
console.error('Error: --provider required');
|
|
211
|
+
console.log('Usage: aiwg skills publish [dir] --provider <registry>');
|
|
212
|
+
console.log('');
|
|
213
|
+
console.log('Example:');
|
|
214
|
+
console.log(' aiwg skills publish --provider clawhub');
|
|
215
|
+
process.exit(1);
|
|
216
|
+
}
|
|
217
|
+
try {
|
|
218
|
+
await publishSkill(packageDir, provider);
|
|
219
|
+
console.log(`Published skill to ${provider}`);
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
223
|
+
process.exit(1);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Handle 'skills run' command
|
|
228
|
+
*
|
|
229
|
+
* Looks up a skill by name, substitutes $ARGUMENTS, and dispatches
|
|
230
|
+
* the full skill prompt to the configured provider for execution.
|
|
231
|
+
*
|
|
232
|
+
* Always routes through a provider — no local execution fallback.
|
|
233
|
+
*
|
|
234
|
+
* @implements roctinam/aiwg#630
|
|
235
|
+
*/
|
|
236
|
+
async function handleRun(args) {
|
|
237
|
+
const { opts, remaining } = parseAgentSpawnFlags(args);
|
|
238
|
+
const skillName = remaining[0];
|
|
239
|
+
const skillArgs = remaining.slice(1);
|
|
240
|
+
if (!skillName) {
|
|
241
|
+
console.error('Error: Skill name required');
|
|
242
|
+
console.log('Usage: aiwg skills run <skill-name> [args...] [--provider <provider>]');
|
|
243
|
+
console.log('');
|
|
244
|
+
console.log('Examples:');
|
|
245
|
+
console.log(' aiwg skills run workspace-health');
|
|
246
|
+
console.log(' aiwg skills run ralph "Fix failing tests" --completion "npm test passes"');
|
|
247
|
+
console.log(' aiwg skills run doc-sync --dry-run --provider claude');
|
|
248
|
+
process.exit(1);
|
|
249
|
+
}
|
|
250
|
+
const details = await getSkillInfo(skillName);
|
|
251
|
+
if (!details) {
|
|
252
|
+
console.error(`Error: Skill '${skillName}' not found`);
|
|
253
|
+
console.log("Run 'aiwg skills list' to see available skills");
|
|
254
|
+
process.exit(1);
|
|
255
|
+
}
|
|
256
|
+
if (!details.content) {
|
|
257
|
+
console.error(`Error: Skill '${skillName}' has no executable content`);
|
|
258
|
+
process.exit(1);
|
|
259
|
+
}
|
|
260
|
+
// Substitute $ARGUMENTS with the provided args
|
|
261
|
+
const argString = skillArgs.join(' ');
|
|
262
|
+
const prompt = details.content.replace(/\$ARGUMENTS/g, argString);
|
|
263
|
+
// Resolve provider — default to claude
|
|
264
|
+
const providerName = opts.provider ?? 'claude';
|
|
265
|
+
if (!isSpawnableProvider(providerName)) {
|
|
266
|
+
const config = getProviderConfig(providerName);
|
|
267
|
+
console.error(`Error: Provider '${config.name}' cannot be spawned from the CLI.`);
|
|
268
|
+
if (config.guidanceMessage) {
|
|
269
|
+
console.log('');
|
|
270
|
+
console.log(config.guidanceMessage);
|
|
271
|
+
}
|
|
272
|
+
process.exit(1);
|
|
273
|
+
}
|
|
274
|
+
const config = getProviderConfig(providerName);
|
|
275
|
+
const spawnArgs = buildAgentArgs(prompt, opts);
|
|
276
|
+
console.log(`Running skill '${skillName}' via ${config.name}...`);
|
|
277
|
+
console.log('');
|
|
278
|
+
const child = spawn(config.binary, spawnArgs, { stdio: 'inherit' });
|
|
279
|
+
child.on('error', (err) => {
|
|
280
|
+
console.error(`Error: Failed to spawn ${config.binary}: ${err.message}`);
|
|
281
|
+
process.exit(1);
|
|
282
|
+
});
|
|
283
|
+
child.on('close', (code) => {
|
|
284
|
+
process.exit(code ?? 1);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Main skills command router
|
|
289
|
+
*/
|
|
290
|
+
export async function main(args) {
|
|
291
|
+
const subcommand = args[0];
|
|
292
|
+
const subcommandArgs = args.slice(1);
|
|
293
|
+
switch (subcommand) {
|
|
294
|
+
case 'run':
|
|
295
|
+
await handleRun(subcommandArgs);
|
|
296
|
+
break;
|
|
297
|
+
case 'search':
|
|
298
|
+
await handleSearch(subcommandArgs);
|
|
299
|
+
break;
|
|
300
|
+
case 'info':
|
|
301
|
+
await handleInfo(subcommandArgs);
|
|
302
|
+
break;
|
|
303
|
+
case 'list':
|
|
304
|
+
await handleList(subcommandArgs);
|
|
305
|
+
break;
|
|
306
|
+
case 'install':
|
|
307
|
+
await handleInstall(subcommandArgs);
|
|
308
|
+
break;
|
|
309
|
+
case 'publish':
|
|
310
|
+
await handlePublish(subcommandArgs);
|
|
311
|
+
break;
|
|
312
|
+
case undefined:
|
|
313
|
+
console.error('Error: Skills subcommand required');
|
|
314
|
+
console.log('Available: run, search, info, list, install, publish');
|
|
315
|
+
console.log('');
|
|
316
|
+
console.log('Examples:');
|
|
317
|
+
console.log(' aiwg skills run workspace-health');
|
|
318
|
+
console.log(' aiwg skills run ralph "Fix failing tests" --completion "npm test passes"');
|
|
319
|
+
console.log(' aiwg skills list');
|
|
320
|
+
console.log(' aiwg skills search "parallel"');
|
|
321
|
+
console.log(' aiwg skills info parallel-dispatch');
|
|
322
|
+
console.log(' aiwg skills search "testing" --provider clawhub');
|
|
323
|
+
console.log(' aiwg skills install parallel-dispatch');
|
|
324
|
+
console.log(' aiwg skills install parallel-dispatch --target copilot');
|
|
325
|
+
console.log(' aiwg skills install my-skill --provider clawhub --target cursor');
|
|
326
|
+
process.exit(1);
|
|
327
|
+
break;
|
|
328
|
+
default:
|
|
329
|
+
console.error(`Error: Unknown skills subcommand '${subcommand}'`);
|
|
330
|
+
console.log('Available: run, search, info, list, install, publish');
|
|
331
|
+
process.exit(1);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Registry Coordinator
|
|
3
|
+
*
|
|
4
|
+
* Aggregates search results across multiple registry adapters
|
|
5
|
+
* (local, clawhub, openclaw) into a unified interface.
|
|
6
|
+
*
|
|
7
|
+
* @implements #539
|
|
8
|
+
*/
|
|
9
|
+
import { LocalAdapter } from './adapters/local.js';
|
|
10
|
+
import { ClawHubAdapter } from './adapters/clawhub.js';
|
|
11
|
+
import { OpenClawAdapter } from './adapters/openclaw.js';
|
|
12
|
+
/**
|
|
13
|
+
* All known registry adapters
|
|
14
|
+
*/
|
|
15
|
+
const ALL_ADAPTERS = [
|
|
16
|
+
new LocalAdapter(),
|
|
17
|
+
new ClawHubAdapter(),
|
|
18
|
+
new OpenClawAdapter(),
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Get adapter by ID
|
|
22
|
+
*/
|
|
23
|
+
export function getAdapter(id) {
|
|
24
|
+
return ALL_ADAPTERS.find((a) => a.id === id);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get all registered adapters
|
|
28
|
+
*/
|
|
29
|
+
export function getAllAdapters() {
|
|
30
|
+
return ALL_ADAPTERS;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Search across all adapters (or a specific one)
|
|
34
|
+
*/
|
|
35
|
+
export async function searchSkills(query, providerId) {
|
|
36
|
+
const adapters = providerId
|
|
37
|
+
? ALL_ADAPTERS.filter((a) => a.id === providerId)
|
|
38
|
+
: ALL_ADAPTERS;
|
|
39
|
+
const results = [];
|
|
40
|
+
for (const adapter of adapters) {
|
|
41
|
+
const available = await adapter.isAvailable();
|
|
42
|
+
if (!available)
|
|
43
|
+
continue;
|
|
44
|
+
const adapterResults = await adapter.search(query);
|
|
45
|
+
results.push(...adapterResults);
|
|
46
|
+
}
|
|
47
|
+
return results;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* List all skills across adapters (or a specific one)
|
|
51
|
+
*/
|
|
52
|
+
export async function listSkills(providerId) {
|
|
53
|
+
const adapters = providerId
|
|
54
|
+
? ALL_ADAPTERS.filter((a) => a.id === providerId)
|
|
55
|
+
: ALL_ADAPTERS;
|
|
56
|
+
const results = [];
|
|
57
|
+
for (const adapter of adapters) {
|
|
58
|
+
const available = await adapter.isAvailable();
|
|
59
|
+
if (!available)
|
|
60
|
+
continue;
|
|
61
|
+
const adapterResults = await adapter.list();
|
|
62
|
+
results.push(...adapterResults);
|
|
63
|
+
}
|
|
64
|
+
return results;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get detailed skill info (checks adapters in order)
|
|
68
|
+
*/
|
|
69
|
+
export async function getSkillInfo(name, providerId) {
|
|
70
|
+
const adapters = providerId
|
|
71
|
+
? ALL_ADAPTERS.filter((a) => a.id === providerId)
|
|
72
|
+
: ALL_ADAPTERS;
|
|
73
|
+
for (const adapter of adapters) {
|
|
74
|
+
const available = await adapter.isAvailable();
|
|
75
|
+
if (!available)
|
|
76
|
+
continue;
|
|
77
|
+
const info = await adapter.info(name);
|
|
78
|
+
if (info)
|
|
79
|
+
return info;
|
|
80
|
+
}
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Install a skill from a specific registry with cross-platform deployment
|
|
85
|
+
*/
|
|
86
|
+
export async function installSkill(name, options, providerId) {
|
|
87
|
+
const adapter = getAdapter(providerId);
|
|
88
|
+
if (!adapter) {
|
|
89
|
+
throw new Error(`Unknown registry: ${providerId}`);
|
|
90
|
+
}
|
|
91
|
+
if (!adapter.install) {
|
|
92
|
+
throw new Error(`Registry '${providerId}' does not support install`);
|
|
93
|
+
}
|
|
94
|
+
const available = await adapter.isAvailable();
|
|
95
|
+
if (!available) {
|
|
96
|
+
throw new Error(`Registry '${providerId}' is not available`);
|
|
97
|
+
}
|
|
98
|
+
await adapter.install(name, options);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Publish a skill to a specific registry
|
|
102
|
+
*/
|
|
103
|
+
export async function publishSkill(packageDir, providerId) {
|
|
104
|
+
const adapter = getAdapter(providerId);
|
|
105
|
+
if (!adapter) {
|
|
106
|
+
throw new Error(`Unknown registry: ${providerId}`);
|
|
107
|
+
}
|
|
108
|
+
if (!adapter.publish) {
|
|
109
|
+
throw new Error(`Registry '${providerId}' does not support publish`);
|
|
110
|
+
}
|
|
111
|
+
const available = await adapter.isAvailable();
|
|
112
|
+
if (!available) {
|
|
113
|
+
throw new Error(`Registry '${providerId}' is not available`);
|
|
114
|
+
}
|
|
115
|
+
await adapter.publish(packageDir);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=registry.js.map
|