conatus 0.1.0
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 +189 -0
- package/dist/adapter-layer.d.ts +67 -0
- package/dist/adapter-layer.d.ts.map +1 -0
- package/dist/adapter-layer.js +50 -0
- package/dist/adapter-layer.js.map +1 -0
- package/dist/adapters/a2a-adapter.d.ts +49 -0
- package/dist/adapters/a2a-adapter.d.ts.map +1 -0
- package/dist/adapters/a2a-adapter.js +211 -0
- package/dist/adapters/a2a-adapter.js.map +1 -0
- package/dist/adapters/a2a-client.d.ts +28 -0
- package/dist/adapters/a2a-client.d.ts.map +1 -0
- package/dist/adapters/a2a-client.js +178 -0
- package/dist/adapters/a2a-client.js.map +1 -0
- package/dist/adapters/browser-use-cli.d.ts +19 -0
- package/dist/adapters/browser-use-cli.d.ts.map +1 -0
- package/dist/adapters/browser-use-cli.js +112 -0
- package/dist/adapters/browser-use-cli.js.map +1 -0
- package/dist/adapters/claude-api.d.ts +10 -0
- package/dist/adapters/claude-api.d.ts.map +1 -0
- package/dist/adapters/claude-api.js +63 -0
- package/dist/adapters/claude-api.js.map +1 -0
- package/dist/adapters/claude-code-cli.d.ts +14 -0
- package/dist/adapters/claude-code-cli.d.ts.map +1 -0
- package/dist/adapters/claude-code-cli.js +99 -0
- package/dist/adapters/claude-code-cli.js.map +1 -0
- package/dist/adapters/file-existence-datasource.d.ts +16 -0
- package/dist/adapters/file-existence-datasource.d.ts.map +1 -0
- package/dist/adapters/file-existence-datasource.js +71 -0
- package/dist/adapters/file-existence-datasource.js.map +1 -0
- package/dist/adapters/github-issue-datasource.d.ts +45 -0
- package/dist/adapters/github-issue-datasource.d.ts.map +1 -0
- package/dist/adapters/github-issue-datasource.js +329 -0
- package/dist/adapters/github-issue-datasource.js.map +1 -0
- package/dist/adapters/github-issue.d.ts +87 -0
- package/dist/adapters/github-issue.d.ts.map +1 -0
- package/dist/adapters/github-issue.js +497 -0
- package/dist/adapters/github-issue.js.map +1 -0
- package/dist/adapters/openai-codex.d.ts +26 -0
- package/dist/adapters/openai-codex.d.ts.map +1 -0
- package/dist/adapters/openai-codex.js +112 -0
- package/dist/adapters/openai-codex.js.map +1 -0
- package/dist/adapters/shell-datasource.d.ts +36 -0
- package/dist/adapters/shell-datasource.d.ts.map +1 -0
- package/dist/adapters/shell-datasource.js +138 -0
- package/dist/adapters/shell-datasource.js.map +1 -0
- package/dist/capability-detector.d.ts +124 -0
- package/dist/capability-detector.d.ts.map +1 -0
- package/dist/capability-detector.js +576 -0
- package/dist/capability-detector.js.map +1 -0
- package/dist/character-config.d.ts +34 -0
- package/dist/character-config.d.ts.map +1 -0
- package/dist/character-config.js +53 -0
- package/dist/character-config.js.map +1 -0
- package/dist/cli/cli-logger.d.ts +3 -0
- package/dist/cli/cli-logger.d.ts.map +1 -0
- package/dist/cli/cli-logger.js +12 -0
- package/dist/cli/cli-logger.js.map +1 -0
- package/dist/cli/commands/config.d.ts +12 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +345 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +6 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/daemon.js +99 -0
- package/dist/cli/commands/daemon.js.map +1 -0
- package/dist/cli/commands/goal-raw.d.ts +7 -0
- package/dist/cli/commands/goal-raw.d.ts.map +1 -0
- package/dist/cli/commands/goal-raw.js +93 -0
- package/dist/cli/commands/goal-raw.js.map +1 -0
- package/dist/cli/commands/goal-utils.d.ts +41 -0
- package/dist/cli/commands/goal-utils.d.ts.map +1 -0
- package/dist/cli/commands/goal-utils.js +184 -0
- package/dist/cli/commands/goal-utils.js.map +1 -0
- package/dist/cli/commands/goal.d.ts +22 -0
- package/dist/cli/commands/goal.d.ts.map +1 -0
- package/dist/cli/commands/goal.js +382 -0
- package/dist/cli/commands/goal.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts +9 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +336 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/cli/commands/report.d.ts +3 -0
- package/dist/cli/commands/report.d.ts.map +1 -0
- package/dist/cli/commands/report.js +29 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/run.d.ts +10 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +159 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/suggest.d.ts +7 -0
- package/dist/cli/commands/suggest.d.ts.map +1 -0
- package/dist/cli/commands/suggest.js +466 -0
- package/dist/cli/commands/suggest.js.map +1 -0
- package/dist/cli/ensure-api-key.d.ts +14 -0
- package/dist/cli/ensure-api-key.d.ts.map +1 -0
- package/dist/cli/ensure-api-key.js +28 -0
- package/dist/cli/ensure-api-key.js.map +1 -0
- package/dist/cli/setup.d.ts +18 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +147 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/utils.d.ts +9 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +113 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/cli-runner.d.ts +32 -0
- package/dist/cli-runner.d.ts.map +1 -0
- package/dist/cli-runner.js +467 -0
- package/dist/cli-runner.js.map +1 -0
- package/dist/codex-llm-client.d.ts +47 -0
- package/dist/codex-llm-client.d.ts.map +1 -0
- package/dist/codex-llm-client.js +193 -0
- package/dist/codex-llm-client.js.map +1 -0
- package/dist/context-provider.d.ts +16 -0
- package/dist/context-provider.d.ts.map +1 -0
- package/dist/context-provider.js +107 -0
- package/dist/context-provider.js.map +1 -0
- package/dist/context-providers/workspace-context.d.ts +8 -0
- package/dist/context-providers/workspace-context.d.ts.map +1 -0
- package/dist/context-providers/workspace-context.js +217 -0
- package/dist/context-providers/workspace-context.js.map +1 -0
- package/dist/core/suggest/repo-context.d.ts +8 -0
- package/dist/core/suggest/repo-context.d.ts.map +1 -0
- package/dist/core/suggest/repo-context.js +154 -0
- package/dist/core/suggest/repo-context.js.map +1 -0
- package/dist/core-loop.d.ts +63 -0
- package/dist/core-loop.d.ts.map +1 -0
- package/dist/core-loop.js +521 -0
- package/dist/core-loop.js.map +1 -0
- package/dist/cross-goal-portfolio.d.ts +153 -0
- package/dist/cross-goal-portfolio.d.ts.map +1 -0
- package/dist/cross-goal-portfolio.js +790 -0
- package/dist/cross-goal-portfolio.js.map +1 -0
- package/dist/curiosity-engine.d.ts +177 -0
- package/dist/curiosity-engine.d.ts.map +1 -0
- package/dist/curiosity-engine.js +736 -0
- package/dist/curiosity-engine.js.map +1 -0
- package/dist/daemon-runner.d.ts +109 -0
- package/dist/daemon-runner.d.ts.map +1 -0
- package/dist/daemon-runner.js +389 -0
- package/dist/daemon-runner.js.map +1 -0
- package/dist/data-source-adapter.d.ts +42 -0
- package/dist/data-source-adapter.d.ts.map +1 -0
- package/dist/data-source-adapter.js +223 -0
- package/dist/data-source-adapter.js.map +1 -0
- package/dist/drive/drive-scorer.d.ts +96 -0
- package/dist/drive/drive-scorer.d.ts.map +1 -0
- package/dist/drive/drive-scorer.js +240 -0
- package/dist/drive/drive-scorer.js.map +1 -0
- package/dist/drive/drive-system.d.ts +99 -0
- package/dist/drive/drive-system.d.ts.map +1 -0
- package/dist/drive/drive-system.js +344 -0
- package/dist/drive/drive-system.js.map +1 -0
- package/dist/drive/gap-calculator.d.ts +80 -0
- package/dist/drive/gap-calculator.d.ts.map +1 -0
- package/dist/drive/gap-calculator.js +219 -0
- package/dist/drive/gap-calculator.js.map +1 -0
- package/dist/drive/reward-log.d.ts +51 -0
- package/dist/drive/reward-log.d.ts.map +1 -0
- package/dist/drive/reward-log.js +48 -0
- package/dist/drive/reward-log.js.map +1 -0
- package/dist/drive/satisficing-helpers.d.ts +28 -0
- package/dist/drive/satisficing-helpers.d.ts.map +1 -0
- package/dist/drive/satisficing-helpers.js +111 -0
- package/dist/drive/satisficing-helpers.js.map +1 -0
- package/dist/drive/satisficing-judge.d.ts +140 -0
- package/dist/drive/satisficing-judge.d.ts.map +1 -0
- package/dist/drive/satisficing-judge.js +432 -0
- package/dist/drive/satisficing-judge.js.map +1 -0
- package/dist/drive/satisficing-propagation.d.ts +30 -0
- package/dist/drive/satisficing-propagation.d.ts.map +1 -0
- package/dist/drive/satisficing-propagation.js +196 -0
- package/dist/drive/satisficing-propagation.js.map +1 -0
- package/dist/drive/stall-detector.d.ts +113 -0
- package/dist/drive/stall-detector.d.ts.map +1 -0
- package/dist/drive/stall-detector.js +378 -0
- package/dist/drive/stall-detector.js.map +1 -0
- package/dist/drive-scorer.d.ts +96 -0
- package/dist/drive-scorer.d.ts.map +1 -0
- package/dist/drive-scorer.js +235 -0
- package/dist/drive-scorer.js.map +1 -0
- package/dist/drive-system.d.ts +92 -0
- package/dist/drive-system.d.ts.map +1 -0
- package/dist/drive-system.js +325 -0
- package/dist/drive-system.js.map +1 -0
- package/dist/embedding-client.d.ts +49 -0
- package/dist/embedding-client.d.ts.map +1 -0
- package/dist/embedding-client.js +141 -0
- package/dist/embedding-client.js.map +1 -0
- package/dist/ethics-gate.d.ts +70 -0
- package/dist/ethics-gate.d.ts.map +1 -0
- package/dist/ethics-gate.js +567 -0
- package/dist/ethics-gate.js.map +1 -0
- package/dist/event-server.d.ts +23 -0
- package/dist/event-server.d.ts.map +1 -0
- package/dist/event-server.js +69 -0
- package/dist/event-server.js.map +1 -0
- package/dist/execution/adapter-layer.d.ts +88 -0
- package/dist/execution/adapter-layer.d.ts.map +1 -0
- package/dist/execution/adapter-layer.js +123 -0
- package/dist/execution/adapter-layer.js.map +1 -0
- package/dist/execution/checkpoint-manager.d.ts +49 -0
- package/dist/execution/checkpoint-manager.d.ts.map +1 -0
- package/dist/execution/checkpoint-manager.js +143 -0
- package/dist/execution/checkpoint-manager.js.map +1 -0
- package/dist/execution/context-budget.d.ts +35 -0
- package/dist/execution/context-budget.d.ts.map +1 -0
- package/dist/execution/context-budget.js +73 -0
- package/dist/execution/context-budget.js.map +1 -0
- package/dist/execution/dimension-selector.d.ts +22 -0
- package/dist/execution/dimension-selector.d.ts.map +1 -0
- package/dist/execution/dimension-selector.js +57 -0
- package/dist/execution/dimension-selector.js.map +1 -0
- package/dist/execution/impact-analyzer.d.ts +24 -0
- package/dist/execution/impact-analyzer.d.ts.map +1 -0
- package/dist/execution/impact-analyzer.js +88 -0
- package/dist/execution/impact-analyzer.js.map +1 -0
- package/dist/execution/parallel-executor.d.ts +35 -0
- package/dist/execution/parallel-executor.d.ts.map +1 -0
- package/dist/execution/parallel-executor.js +162 -0
- package/dist/execution/parallel-executor.js.map +1 -0
- package/dist/execution/pipeline-executor.d.ts +54 -0
- package/dist/execution/pipeline-executor.d.ts.map +1 -0
- package/dist/execution/pipeline-executor.js +250 -0
- package/dist/execution/pipeline-executor.js.map +1 -0
- package/dist/execution/reflection-generator.d.ts +24 -0
- package/dist/execution/reflection-generator.d.ts.map +1 -0
- package/dist/execution/reflection-generator.js +143 -0
- package/dist/execution/reflection-generator.js.map +1 -0
- package/dist/execution/result-reconciler.d.ts +23 -0
- package/dist/execution/result-reconciler.d.ts.map +1 -0
- package/dist/execution/result-reconciler.js +109 -0
- package/dist/execution/result-reconciler.js.map +1 -0
- package/dist/execution/session-manager.d.ts +182 -0
- package/dist/execution/session-manager.d.ts.map +1 -0
- package/dist/execution/session-manager.js +506 -0
- package/dist/execution/session-manager.js.map +1 -0
- package/dist/execution/task-approval-check.d.ts +9 -0
- package/dist/execution/task-approval-check.d.ts.map +1 -0
- package/dist/execution/task-approval-check.js +14 -0
- package/dist/execution/task-approval-check.js.map +1 -0
- package/dist/execution/task-approval.d.ts +37 -0
- package/dist/execution/task-approval.d.ts.map +1 -0
- package/dist/execution/task-approval.js +147 -0
- package/dist/execution/task-approval.js.map +1 -0
- package/dist/execution/task-execution-types.d.ts +14 -0
- package/dist/execution/task-execution-types.d.ts.map +1 -0
- package/dist/execution/task-execution-types.js +2 -0
- package/dist/execution/task-execution-types.js.map +1 -0
- package/dist/execution/task-executor.d.ts +30 -0
- package/dist/execution/task-executor.d.ts.map +1 -0
- package/dist/execution/task-executor.js +196 -0
- package/dist/execution/task-executor.js.map +1 -0
- package/dist/execution/task-generation.d.ts +154 -0
- package/dist/execution/task-generation.d.ts.map +1 -0
- package/dist/execution/task-generation.js +406 -0
- package/dist/execution/task-generation.js.map +1 -0
- package/dist/execution/task-health-check.d.ts +38 -0
- package/dist/execution/task-health-check.d.ts.map +1 -0
- package/dist/execution/task-health-check.js +66 -0
- package/dist/execution/task-health-check.js.map +1 -0
- package/dist/execution/task-lifecycle.d.ts +122 -0
- package/dist/execution/task-lifecycle.d.ts.map +1 -0
- package/dist/execution/task-lifecycle.js +303 -0
- package/dist/execution/task-lifecycle.js.map +1 -0
- package/dist/execution/task-pipeline-cycle.d.ts +45 -0
- package/dist/execution/task-pipeline-cycle.d.ts.map +1 -0
- package/dist/execution/task-pipeline-cycle.js +134 -0
- package/dist/execution/task-pipeline-cycle.js.map +1 -0
- package/dist/execution/task-prompt-builder.d.ts +9 -0
- package/dist/execution/task-prompt-builder.d.ts.map +1 -0
- package/dist/execution/task-prompt-builder.js +165 -0
- package/dist/execution/task-prompt-builder.js.map +1 -0
- package/dist/execution/task-verifier.d.ts +112 -0
- package/dist/execution/task-verifier.d.ts.map +1 -0
- package/dist/execution/task-verifier.js +782 -0
- package/dist/execution/task-verifier.js.map +1 -0
- package/dist/gap-calculator.d.ts +80 -0
- package/dist/gap-calculator.d.ts.map +1 -0
- package/dist/gap-calculator.js +218 -0
- package/dist/gap-calculator.js.map +1 -0
- package/dist/goal/goal-decomposer.d.ts +30 -0
- package/dist/goal/goal-decomposer.d.ts.map +1 -0
- package/dist/goal/goal-decomposer.js +167 -0
- package/dist/goal/goal-decomposer.js.map +1 -0
- package/dist/goal/goal-dependency-graph.d.ts +119 -0
- package/dist/goal/goal-dependency-graph.d.ts.map +1 -0
- package/dist/goal/goal-dependency-graph.js +322 -0
- package/dist/goal/goal-dependency-graph.js.map +1 -0
- package/dist/goal/goal-negotiator.d.ts +66 -0
- package/dist/goal/goal-negotiator.d.ts.map +1 -0
- package/dist/goal/goal-negotiator.js +260 -0
- package/dist/goal/goal-negotiator.js.map +1 -0
- package/dist/goal/goal-suggest.d.ts +85 -0
- package/dist/goal/goal-suggest.d.ts.map +1 -0
- package/dist/goal/goal-suggest.js +178 -0
- package/dist/goal/goal-suggest.js.map +1 -0
- package/dist/goal/goal-tree-manager.d.ts +71 -0
- package/dist/goal/goal-tree-manager.d.ts.map +1 -0
- package/dist/goal/goal-tree-manager.js +580 -0
- package/dist/goal/goal-tree-manager.js.map +1 -0
- package/dist/goal/goal-tree-pruner.d.ts +25 -0
- package/dist/goal/goal-tree-pruner.d.ts.map +1 -0
- package/dist/goal/goal-tree-pruner.js +93 -0
- package/dist/goal/goal-tree-pruner.js.map +1 -0
- package/dist/goal/goal-tree-quality.d.ts +22 -0
- package/dist/goal/goal-tree-quality.d.ts.map +1 -0
- package/dist/goal/goal-tree-quality.js +183 -0
- package/dist/goal/goal-tree-quality.js.map +1 -0
- package/dist/goal/goal-validation.d.ts +20 -0
- package/dist/goal/goal-validation.d.ts.map +1 -0
- package/dist/goal/goal-validation.js +93 -0
- package/dist/goal/goal-validation.js.map +1 -0
- package/dist/goal/negotiator-context.d.ts +13 -0
- package/dist/goal/negotiator-context.d.ts.map +1 -0
- package/dist/goal/negotiator-context.js +119 -0
- package/dist/goal/negotiator-context.js.map +1 -0
- package/dist/goal/negotiator-prompts.d.ts +31 -0
- package/dist/goal/negotiator-prompts.d.ts.map +1 -0
- package/dist/goal/negotiator-prompts.js +65 -0
- package/dist/goal/negotiator-prompts.js.map +1 -0
- package/dist/goal/negotiator-steps.d.ts +59 -0
- package/dist/goal/negotiator-steps.d.ts.map +1 -0
- package/dist/goal/negotiator-steps.js +269 -0
- package/dist/goal/negotiator-steps.js.map +1 -0
- package/dist/goal/state-aggregator.d.ts +89 -0
- package/dist/goal/state-aggregator.d.ts.map +1 -0
- package/dist/goal/state-aggregator.js +292 -0
- package/dist/goal/state-aggregator.js.map +1 -0
- package/dist/goal/tree-loop-orchestrator.d.ts +79 -0
- package/dist/goal/tree-loop-orchestrator.d.ts.map +1 -0
- package/dist/goal/tree-loop-orchestrator.js +230 -0
- package/dist/goal/tree-loop-orchestrator.js.map +1 -0
- package/dist/goal-dependency-graph.d.ts +112 -0
- package/dist/goal-dependency-graph.d.ts.map +1 -0
- package/dist/goal-dependency-graph.js +291 -0
- package/dist/goal-dependency-graph.js.map +1 -0
- package/dist/goal-negotiator.d.ts +109 -0
- package/dist/goal-negotiator.d.ts.map +1 -0
- package/dist/goal-negotiator.js +1044 -0
- package/dist/goal-negotiator.js.map +1 -0
- package/dist/goal-tree-manager.d.ts +120 -0
- package/dist/goal-tree-manager.d.ts.map +1 -0
- package/dist/goal-tree-manager.js +954 -0
- package/dist/goal-tree-manager.js.map +1 -0
- package/dist/guardrail-runner.d.ts +29 -0
- package/dist/guardrail-runner.d.ts.map +1 -0
- package/dist/guardrail-runner.js +81 -0
- package/dist/guardrail-runner.js.map +1 -0
- package/dist/index.d.ts +95 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/drive-score-adapter.d.ts +39 -0
- package/dist/knowledge/drive-score-adapter.d.ts.map +1 -0
- package/dist/knowledge/drive-score-adapter.js +32 -0
- package/dist/knowledge/drive-score-adapter.js.map +1 -0
- package/dist/knowledge/embedding-client.d.ts +49 -0
- package/dist/knowledge/embedding-client.d.ts.map +1 -0
- package/dist/knowledge/embedding-client.js +141 -0
- package/dist/knowledge/embedding-client.js.map +1 -0
- package/dist/knowledge/knowledge-decisions.d.ts +41 -0
- package/dist/knowledge/knowledge-decisions.d.ts.map +1 -0
- package/dist/knowledge/knowledge-decisions.js +191 -0
- package/dist/knowledge/knowledge-decisions.js.map +1 -0
- package/dist/knowledge/knowledge-graph.d.ts +74 -0
- package/dist/knowledge/knowledge-graph.d.ts.map +1 -0
- package/dist/knowledge/knowledge-graph.js +207 -0
- package/dist/knowledge/knowledge-graph.js.map +1 -0
- package/dist/knowledge/knowledge-manager.d.ts +138 -0
- package/dist/knowledge/knowledge-manager.d.ts.map +1 -0
- package/dist/knowledge/knowledge-manager.js +497 -0
- package/dist/knowledge/knowledge-manager.js.map +1 -0
- package/dist/knowledge/knowledge-revalidation.d.ts +27 -0
- package/dist/knowledge/knowledge-revalidation.d.ts.map +1 -0
- package/dist/knowledge/knowledge-revalidation.js +130 -0
- package/dist/knowledge/knowledge-revalidation.js.map +1 -0
- package/dist/knowledge/knowledge-search.d.ts +49 -0
- package/dist/knowledge/knowledge-search.d.ts.map +1 -0
- package/dist/knowledge/knowledge-search.js +108 -0
- package/dist/knowledge/knowledge-search.js.map +1 -0
- package/dist/knowledge/knowledge-transfer-prompts.d.ts +45 -0
- package/dist/knowledge/knowledge-transfer-prompts.d.ts.map +1 -0
- package/dist/knowledge/knowledge-transfer-prompts.js +72 -0
- package/dist/knowledge/knowledge-transfer-prompts.js.map +1 -0
- package/dist/knowledge/knowledge-transfer.d.ts +148 -0
- package/dist/knowledge/knowledge-transfer.d.ts.map +1 -0
- package/dist/knowledge/knowledge-transfer.js +718 -0
- package/dist/knowledge/knowledge-transfer.js.map +1 -0
- package/dist/knowledge/learning-cross-goal.d.ts +19 -0
- package/dist/knowledge/learning-cross-goal.d.ts.map +1 -0
- package/dist/knowledge/learning-cross-goal.js +173 -0
- package/dist/knowledge/learning-cross-goal.js.map +1 -0
- package/dist/knowledge/learning-feedback.d.ts +26 -0
- package/dist/knowledge/learning-feedback.d.ts.map +1 -0
- package/dist/knowledge/learning-feedback.js +183 -0
- package/dist/knowledge/learning-feedback.js.map +1 -0
- package/dist/knowledge/learning-pipeline-prompts.d.ts +134 -0
- package/dist/knowledge/learning-pipeline-prompts.d.ts.map +1 -0
- package/dist/knowledge/learning-pipeline-prompts.js +103 -0
- package/dist/knowledge/learning-pipeline-prompts.js.map +1 -0
- package/dist/knowledge/learning-pipeline.d.ts +108 -0
- package/dist/knowledge/learning-pipeline.d.ts.map +1 -0
- package/dist/knowledge/learning-pipeline.js +467 -0
- package/dist/knowledge/learning-pipeline.js.map +1 -0
- package/dist/knowledge/memory-compression.d.ts +44 -0
- package/dist/knowledge/memory-compression.d.ts.map +1 -0
- package/dist/knowledge/memory-compression.js +289 -0
- package/dist/knowledge/memory-compression.js.map +1 -0
- package/dist/knowledge/memory-distill.d.ts +31 -0
- package/dist/knowledge/memory-distill.d.ts.map +1 -0
- package/dist/knowledge/memory-distill.js +170 -0
- package/dist/knowledge/memory-distill.js.map +1 -0
- package/dist/knowledge/memory-index.d.ts +11 -0
- package/dist/knowledge/memory-index.d.ts.map +1 -0
- package/dist/knowledge/memory-index.js +134 -0
- package/dist/knowledge/memory-index.js.map +1 -0
- package/dist/knowledge/memory-lifecycle.d.ts +172 -0
- package/dist/knowledge/memory-lifecycle.d.ts.map +1 -0
- package/dist/knowledge/memory-lifecycle.js +398 -0
- package/dist/knowledge/memory-lifecycle.js.map +1 -0
- package/dist/knowledge/memory-persistence.d.ts +30 -0
- package/dist/knowledge/memory-persistence.d.ts.map +1 -0
- package/dist/knowledge/memory-persistence.js +120 -0
- package/dist/knowledge/memory-persistence.js.map +1 -0
- package/dist/knowledge/memory-phases.d.ts +14 -0
- package/dist/knowledge/memory-phases.d.ts.map +1 -0
- package/dist/knowledge/memory-phases.js +14 -0
- package/dist/knowledge/memory-phases.js.map +1 -0
- package/dist/knowledge/memory-query.d.ts +4 -0
- package/dist/knowledge/memory-query.d.ts.map +1 -0
- package/dist/knowledge/memory-query.js +64 -0
- package/dist/knowledge/memory-query.js.map +1 -0
- package/dist/knowledge/memory-selection.d.ts +80 -0
- package/dist/knowledge/memory-selection.d.ts.map +1 -0
- package/dist/knowledge/memory-selection.js +356 -0
- package/dist/knowledge/memory-selection.js.map +1 -0
- package/dist/knowledge/memory-stats.d.ts +7 -0
- package/dist/knowledge/memory-stats.d.ts.map +1 -0
- package/dist/knowledge/memory-stats.js +162 -0
- package/dist/knowledge/memory-stats.js.map +1 -0
- package/dist/knowledge/memory-tier.d.ts +47 -0
- package/dist/knowledge/memory-tier.d.ts.map +1 -0
- package/dist/knowledge/memory-tier.js +212 -0
- package/dist/knowledge/memory-tier.js.map +1 -0
- package/dist/knowledge/transfer-trust.d.ts +40 -0
- package/dist/knowledge/transfer-trust.d.ts.map +1 -0
- package/dist/knowledge/transfer-trust.js +137 -0
- package/dist/knowledge/transfer-trust.js.map +1 -0
- package/dist/knowledge/vector-index.d.ts +65 -0
- package/dist/knowledge/vector-index.d.ts.map +1 -0
- package/dist/knowledge/vector-index.js +153 -0
- package/dist/knowledge/vector-index.js.map +1 -0
- package/dist/knowledge-graph.d.ts +70 -0
- package/dist/knowledge-graph.d.ts.map +1 -0
- package/dist/knowledge-graph.js +194 -0
- package/dist/knowledge-graph.js.map +1 -0
- package/dist/knowledge-manager.d.ts +110 -0
- package/dist/knowledge-manager.d.ts.map +1 -0
- package/dist/knowledge-manager.js +544 -0
- package/dist/knowledge-manager.js.map +1 -0
- package/dist/knowledge-transfer.d.ts +101 -0
- package/dist/knowledge-transfer.d.ts.map +1 -0
- package/dist/knowledge-transfer.js +484 -0
- package/dist/knowledge-transfer.js.map +1 -0
- package/dist/learning-pipeline.d.ts +107 -0
- package/dist/learning-pipeline.d.ts.map +1 -0
- package/dist/learning-pipeline.js +840 -0
- package/dist/learning-pipeline.js.map +1 -0
- package/dist/llm/base-llm-client.d.ts +20 -0
- package/dist/llm/base-llm-client.d.ts.map +1 -0
- package/dist/llm/base-llm-client.js +48 -0
- package/dist/llm/base-llm-client.js.map +1 -0
- package/dist/llm/codex-llm-client.d.ts +41 -0
- package/dist/llm/codex-llm-client.d.ts.map +1 -0
- package/dist/llm/codex-llm-client.js +188 -0
- package/dist/llm/codex-llm-client.js.map +1 -0
- package/dist/llm/llm-client.d.ts +54 -0
- package/dist/llm/llm-client.d.ts.map +1 -0
- package/dist/llm/llm-client.js +148 -0
- package/dist/llm/llm-client.js.map +1 -0
- package/dist/llm/ollama-client.d.ts +24 -0
- package/dist/llm/ollama-client.d.ts.map +1 -0
- package/dist/llm/ollama-client.js +94 -0
- package/dist/llm/ollama-client.js.map +1 -0
- package/dist/llm/openai-client.d.ts +34 -0
- package/dist/llm/openai-client.d.ts.map +1 -0
- package/dist/llm/openai-client.js +140 -0
- package/dist/llm/openai-client.js.map +1 -0
- package/dist/llm/provider-config.d.ts +55 -0
- package/dist/llm/provider-config.d.ts.map +1 -0
- package/dist/llm/provider-config.js +136 -0
- package/dist/llm/provider-config.js.map +1 -0
- package/dist/llm/provider-factory.d.ts +25 -0
- package/dist/llm/provider-factory.d.ts.map +1 -0
- package/dist/llm/provider-factory.js +111 -0
- package/dist/llm/provider-factory.js.map +1 -0
- package/dist/llm-client.d.ts +65 -0
- package/dist/llm-client.d.ts.map +1 -0
- package/dist/llm-client.js +151 -0
- package/dist/llm-client.js.map +1 -0
- package/dist/logger.d.ts +30 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +121 -0
- package/dist/logger.js.map +1 -0
- package/dist/loop/core-loop-capability.d.ts +19 -0
- package/dist/loop/core-loop-capability.d.ts.map +1 -0
- package/dist/loop/core-loop-capability.js +107 -0
- package/dist/loop/core-loop-capability.js.map +1 -0
- package/dist/loop/core-loop-learning.d.ts +34 -0
- package/dist/loop/core-loop-learning.d.ts.map +1 -0
- package/dist/loop/core-loop-learning.js +78 -0
- package/dist/loop/core-loop-learning.js.map +1 -0
- package/dist/loop/core-loop-phases-b.d.ts +25 -0
- package/dist/loop/core-loop-phases-b.d.ts.map +1 -0
- package/dist/loop/core-loop-phases-b.js +510 -0
- package/dist/loop/core-loop-phases-b.js.map +1 -0
- package/dist/loop/core-loop-phases.d.ts +40 -0
- package/dist/loop/core-loop-phases.d.ts.map +1 -0
- package/dist/loop/core-loop-phases.js +228 -0
- package/dist/loop/core-loop-phases.js.map +1 -0
- package/dist/loop/core-loop-types.d.ts +202 -0
- package/dist/loop/core-loop-types.d.ts.map +1 -0
- package/dist/loop/core-loop-types.js +38 -0
- package/dist/loop/core-loop-types.js.map +1 -0
- package/dist/loop/tree-loop-runner.d.ts +24 -0
- package/dist/loop/tree-loop-runner.d.ts.map +1 -0
- package/dist/loop/tree-loop-runner.js +116 -0
- package/dist/loop/tree-loop-runner.js.map +1 -0
- package/dist/memory-lifecycle.d.ts +244 -0
- package/dist/memory-lifecycle.d.ts.map +1 -0
- package/dist/memory-lifecycle.js +1328 -0
- package/dist/memory-lifecycle.js.map +1 -0
- package/dist/notification-dispatcher.d.ts +36 -0
- package/dist/notification-dispatcher.d.ts.map +1 -0
- package/dist/notification-dispatcher.js +363 -0
- package/dist/notification-dispatcher.js.map +1 -0
- package/dist/observation/capability-dependencies.d.ts +45 -0
- package/dist/observation/capability-dependencies.d.ts.map +1 -0
- package/dist/observation/capability-dependencies.js +208 -0
- package/dist/observation/capability-dependencies.js.map +1 -0
- package/dist/observation/capability-detector.d.ts +72 -0
- package/dist/observation/capability-detector.d.ts.map +1 -0
- package/dist/observation/capability-detector.js +372 -0
- package/dist/observation/capability-detector.js.map +1 -0
- package/dist/observation/capability-registry.d.ts +48 -0
- package/dist/observation/capability-registry.d.ts.map +1 -0
- package/dist/observation/capability-registry.js +131 -0
- package/dist/observation/capability-registry.js.map +1 -0
- package/dist/observation/context-provider.d.ts +39 -0
- package/dist/observation/context-provider.d.ts.map +1 -0
- package/dist/observation/context-provider.js +177 -0
- package/dist/observation/context-provider.js.map +1 -0
- package/dist/observation/data-source-adapter.d.ts +42 -0
- package/dist/observation/data-source-adapter.d.ts.map +1 -0
- package/dist/observation/data-source-adapter.js +227 -0
- package/dist/observation/data-source-adapter.js.map +1 -0
- package/dist/observation/observation-apply.d.ts +18 -0
- package/dist/observation/observation-apply.d.ts.map +1 -0
- package/dist/observation/observation-apply.js +138 -0
- package/dist/observation/observation-apply.js.map +1 -0
- package/dist/observation/observation-datasource.d.ts +21 -0
- package/dist/observation/observation-datasource.d.ts.map +1 -0
- package/dist/observation/observation-datasource.js +96 -0
- package/dist/observation/observation-datasource.js.map +1 -0
- package/dist/observation/observation-engine.d.ts +156 -0
- package/dist/observation/observation-engine.d.ts.map +1 -0
- package/dist/observation/observation-engine.js +359 -0
- package/dist/observation/observation-engine.js.map +1 -0
- package/dist/observation/observation-helpers.d.ts +112 -0
- package/dist/observation/observation-helpers.d.ts.map +1 -0
- package/dist/observation/observation-helpers.js +173 -0
- package/dist/observation/observation-helpers.js.map +1 -0
- package/dist/observation/observation-llm.d.ts +46 -0
- package/dist/observation/observation-llm.d.ts.map +1 -0
- package/dist/observation/observation-llm.js +220 -0
- package/dist/observation/observation-llm.js.map +1 -0
- package/dist/observation/observation-task.d.ts +29 -0
- package/dist/observation/observation-task.d.ts.map +1 -0
- package/dist/observation/observation-task.js +51 -0
- package/dist/observation/observation-task.js.map +1 -0
- package/dist/observation/workspace-context.d.ts +8 -0
- package/dist/observation/workspace-context.d.ts.map +1 -0
- package/dist/observation/workspace-context.js +229 -0
- package/dist/observation/workspace-context.js.map +1 -0
- package/dist/observation-engine.d.ts +218 -0
- package/dist/observation-engine.d.ts.map +1 -0
- package/dist/observation-engine.js +711 -0
- package/dist/observation-engine.js.map +1 -0
- package/dist/ollama-client.d.ts +30 -0
- package/dist/ollama-client.d.ts.map +1 -0
- package/dist/ollama-client.js +112 -0
- package/dist/ollama-client.js.map +1 -0
- package/dist/openai-client.d.ts +40 -0
- package/dist/openai-client.d.ts.map +1 -0
- package/dist/openai-client.js +155 -0
- package/dist/openai-client.js.map +1 -0
- package/dist/pid-manager.d.ts +18 -0
- package/dist/pid-manager.d.ts.map +1 -0
- package/dist/pid-manager.js +64 -0
- package/dist/pid-manager.js.map +1 -0
- package/dist/portfolio-manager.d.ts +147 -0
- package/dist/portfolio-manager.d.ts.map +1 -0
- package/dist/portfolio-manager.js +371 -0
- package/dist/portfolio-manager.js.map +1 -0
- package/dist/portfolio-rebalance.d.ts +75 -0
- package/dist/portfolio-rebalance.d.ts.map +1 -0
- package/dist/portfolio-rebalance.js +254 -0
- package/dist/portfolio-rebalance.js.map +1 -0
- package/dist/prompt/context-assembler.d.ts +70 -0
- package/dist/prompt/context-assembler.d.ts.map +1 -0
- package/dist/prompt/context-assembler.js +346 -0
- package/dist/prompt/context-assembler.js.map +1 -0
- package/dist/prompt/formatters.d.ts +49 -0
- package/dist/prompt/formatters.d.ts.map +1 -0
- package/dist/prompt/formatters.js +136 -0
- package/dist/prompt/formatters.js.map +1 -0
- package/dist/prompt/gateway.d.ts +30 -0
- package/dist/prompt/gateway.d.ts.map +1 -0
- package/dist/prompt/gateway.js +43 -0
- package/dist/prompt/gateway.js.map +1 -0
- package/dist/prompt/index.d.ts +12 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +9 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/purposes/capability.d.ts +64 -0
- package/dist/prompt/purposes/capability.d.ts.map +1 -0
- package/dist/prompt/purposes/capability.js +38 -0
- package/dist/prompt/purposes/capability.js.map +1 -0
- package/dist/prompt/purposes/checkpoint.d.ts +22 -0
- package/dist/prompt/purposes/checkpoint.d.ts.map +1 -0
- package/dist/prompt/purposes/checkpoint.js +17 -0
- package/dist/prompt/purposes/checkpoint.js.map +1 -0
- package/dist/prompt/purposes/curiosity.d.ts +41 -0
- package/dist/prompt/purposes/curiosity.d.ts.map +1 -0
- package/dist/prompt/purposes/curiosity.js +20 -0
- package/dist/prompt/purposes/curiosity.js.map +1 -0
- package/dist/prompt/purposes/dependency.d.ts +34 -0
- package/dist/prompt/purposes/dependency.d.ts.map +1 -0
- package/dist/prompt/purposes/dependency.js +21 -0
- package/dist/prompt/purposes/dependency.js.map +1 -0
- package/dist/prompt/purposes/ethics.d.ts +47 -0
- package/dist/prompt/purposes/ethics.d.ts.map +1 -0
- package/dist/prompt/purposes/ethics.js +89 -0
- package/dist/prompt/purposes/ethics.js.map +1 -0
- package/dist/prompt/purposes/final-migration.d.ts +15 -0
- package/dist/prompt/purposes/final-migration.d.ts.map +1 -0
- package/dist/prompt/purposes/final-migration.js +15 -0
- package/dist/prompt/purposes/final-migration.js.map +1 -0
- package/dist/prompt/purposes/goal-decomposition.d.ts +46 -0
- package/dist/prompt/purposes/goal-decomposition.d.ts.map +1 -0
- package/dist/prompt/purposes/goal-decomposition.js +20 -0
- package/dist/prompt/purposes/goal-decomposition.js.map +1 -0
- package/dist/prompt/purposes/goal-quality.d.ts +61 -0
- package/dist/prompt/purposes/goal-quality.d.ts.map +1 -0
- package/dist/prompt/purposes/goal-quality.js +37 -0
- package/dist/prompt/purposes/goal-quality.js.map +1 -0
- package/dist/prompt/purposes/index.d.ts +29 -0
- package/dist/prompt/purposes/index.d.ts.map +1 -0
- package/dist/prompt/purposes/index.js +320 -0
- package/dist/prompt/purposes/index.js.map +1 -0
- package/dist/prompt/purposes/knowledge-transfer.d.ts +81 -0
- package/dist/prompt/purposes/knowledge-transfer.d.ts.map +1 -0
- package/dist/prompt/purposes/knowledge-transfer.js +33 -0
- package/dist/prompt/purposes/knowledge-transfer.js.map +1 -0
- package/dist/prompt/purposes/knowledge.d.ts +88 -0
- package/dist/prompt/purposes/knowledge.d.ts.map +1 -0
- package/dist/prompt/purposes/knowledge.js +59 -0
- package/dist/prompt/purposes/knowledge.js.map +1 -0
- package/dist/prompt/purposes/learning.d.ts +70 -0
- package/dist/prompt/purposes/learning.d.ts.map +1 -0
- package/dist/prompt/purposes/learning.js +32 -0
- package/dist/prompt/purposes/learning.js.map +1 -0
- package/dist/prompt/purposes/memory-distill.d.ts +75 -0
- package/dist/prompt/purposes/memory-distill.d.ts.map +1 -0
- package/dist/prompt/purposes/memory-distill.js +27 -0
- package/dist/prompt/purposes/memory-distill.js.map +1 -0
- package/dist/prompt/purposes/observation.d.ts +25 -0
- package/dist/prompt/purposes/observation.d.ts.map +1 -0
- package/dist/prompt/purposes/observation.js +17 -0
- package/dist/prompt/purposes/observation.js.map +1 -0
- package/dist/prompt/purposes/strategy-template.d.ts +57 -0
- package/dist/prompt/purposes/strategy-template.d.ts.map +1 -0
- package/dist/prompt/purposes/strategy-template.js +31 -0
- package/dist/prompt/purposes/strategy-template.js.map +1 -0
- package/dist/prompt/purposes/strategy.d.ts +41 -0
- package/dist/prompt/purposes/strategy.d.ts.map +1 -0
- package/dist/prompt/purposes/strategy.js +19 -0
- package/dist/prompt/purposes/strategy.js.map +1 -0
- package/dist/prompt/purposes/task-generation.d.ts +26 -0
- package/dist/prompt/purposes/task-generation.d.ts.map +1 -0
- package/dist/prompt/purposes/task-generation.js +22 -0
- package/dist/prompt/purposes/task-generation.js.map +1 -0
- package/dist/prompt/purposes/verification.d.ts +25 -0
- package/dist/prompt/purposes/verification.d.ts.map +1 -0
- package/dist/prompt/purposes/verification.js +17 -0
- package/dist/prompt/purposes/verification.js.map +1 -0
- package/dist/prompt/slot-definitions 2.d.ts +33 -0
- package/dist/prompt/slot-definitions 2.d.ts.map +1 -0
- package/dist/prompt/slot-definitions 2.js +332 -0
- package/dist/prompt/slot-definitions 2.js.map +1 -0
- package/dist/prompt/slot-definitions.d.ts +33 -0
- package/dist/prompt/slot-definitions.d.ts.map +1 -0
- package/dist/prompt/slot-definitions.js +383 -0
- package/dist/prompt/slot-definitions.js.map +1 -0
- package/dist/provider-config.d.ts +43 -0
- package/dist/provider-config.d.ts.map +1 -0
- package/dist/provider-config.js +131 -0
- package/dist/provider-config.js.map +1 -0
- package/dist/provider-factory.d.ts +23 -0
- package/dist/provider-factory.d.ts.map +1 -0
- package/dist/provider-factory.js +83 -0
- package/dist/provider-factory.js.map +1 -0
- package/dist/reporting-engine.d.ts +58 -0
- package/dist/reporting-engine.d.ts.map +1 -0
- package/dist/reporting-engine.js +592 -0
- package/dist/reporting-engine.js.map +1 -0
- package/dist/runtime/daemon-runner.d.ts +147 -0
- package/dist/runtime/daemon-runner.d.ts.map +1 -0
- package/dist/runtime/daemon-runner.js +549 -0
- package/dist/runtime/daemon-runner.js.map +1 -0
- package/dist/runtime/event-server.d.ts +50 -0
- package/dist/runtime/event-server.d.ts.map +1 -0
- package/dist/runtime/event-server.js +192 -0
- package/dist/runtime/event-server.js.map +1 -0
- package/dist/runtime/logger.d.ts +57 -0
- package/dist/runtime/logger.d.ts.map +1 -0
- package/dist/runtime/logger.js +254 -0
- package/dist/runtime/logger.js.map +1 -0
- package/dist/runtime/notification-dispatcher.d.ts +49 -0
- package/dist/runtime/notification-dispatcher.d.ts.map +1 -0
- package/dist/runtime/notification-dispatcher.js +444 -0
- package/dist/runtime/notification-dispatcher.js.map +1 -0
- package/dist/runtime/notifier-registry.d.ts +26 -0
- package/dist/runtime/notifier-registry.d.ts.map +1 -0
- package/dist/runtime/notifier-registry.js +36 -0
- package/dist/runtime/notifier-registry.js.map +1 -0
- package/dist/runtime/pid-manager.d.ts +18 -0
- package/dist/runtime/pid-manager.d.ts.map +1 -0
- package/dist/runtime/pid-manager.js +61 -0
- package/dist/runtime/pid-manager.js.map +1 -0
- package/dist/runtime/plugin-loader.d.ts +78 -0
- package/dist/runtime/plugin-loader.d.ts.map +1 -0
- package/dist/runtime/plugin-loader.js +349 -0
- package/dist/runtime/plugin-loader.js.map +1 -0
- package/dist/satisficing-judge.d.ts +113 -0
- package/dist/satisficing-judge.d.ts.map +1 -0
- package/dist/satisficing-judge.js +592 -0
- package/dist/satisficing-judge.js.map +1 -0
- package/dist/session-manager.d.ts +159 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +458 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/stall-detector.d.ts +100 -0
- package/dist/stall-detector.d.ts.map +1 -0
- package/dist/stall-detector.js +306 -0
- package/dist/stall-detector.js.map +1 -0
- package/dist/state-aggregator.d.ts +89 -0
- package/dist/state-aggregator.d.ts.map +1 -0
- package/dist/state-aggregator.js +290 -0
- package/dist/state-aggregator.js.map +1 -0
- package/dist/state-manager.d.ts +121 -0
- package/dist/state-manager.d.ts.map +1 -0
- package/dist/state-manager.js +547 -0
- package/dist/state-manager.js.map +1 -0
- package/dist/strategy/cross-goal-portfolio.d.ts +118 -0
- package/dist/strategy/cross-goal-portfolio.d.ts.map +1 -0
- package/dist/strategy/cross-goal-portfolio.js +431 -0
- package/dist/strategy/cross-goal-portfolio.js.map +1 -0
- package/dist/strategy/portfolio-allocation.d.ts +36 -0
- package/dist/strategy/portfolio-allocation.d.ts.map +1 -0
- package/dist/strategy/portfolio-allocation.js +215 -0
- package/dist/strategy/portfolio-allocation.js.map +1 -0
- package/dist/strategy/portfolio-momentum.d.ts +11 -0
- package/dist/strategy/portfolio-momentum.d.ts.map +1 -0
- package/dist/strategy/portfolio-momentum.js +64 -0
- package/dist/strategy/portfolio-momentum.js.map +1 -0
- package/dist/strategy/portfolio-scheduling.d.ts +25 -0
- package/dist/strategy/portfolio-scheduling.d.ts.map +1 -0
- package/dist/strategy/portfolio-scheduling.js +133 -0
- package/dist/strategy/portfolio-scheduling.js.map +1 -0
- package/dist/strategy/strategy-helpers.d.ts +109 -0
- package/dist/strategy/strategy-helpers.d.ts.map +1 -0
- package/dist/strategy/strategy-helpers.js +125 -0
- package/dist/strategy/strategy-helpers.js.map +1 -0
- package/dist/strategy/strategy-manager-base.d.ts +95 -0
- package/dist/strategy/strategy-manager-base.d.ts.map +1 -0
- package/dist/strategy/strategy-manager-base.js +363 -0
- package/dist/strategy/strategy-manager-base.js.map +1 -0
- package/dist/strategy/strategy-manager.d.ts +65 -0
- package/dist/strategy/strategy-manager.d.ts.map +1 -0
- package/dist/strategy/strategy-manager.js +226 -0
- package/dist/strategy/strategy-manager.js.map +1 -0
- package/dist/strategy/strategy-template-registry.d.ts +84 -0
- package/dist/strategy/strategy-template-registry.d.ts.map +1 -0
- package/dist/strategy/strategy-template-registry.js +350 -0
- package/dist/strategy/strategy-template-registry.js.map +1 -0
- package/dist/strategy-manager.d.ts +128 -0
- package/dist/strategy-manager.d.ts.map +1 -0
- package/dist/strategy-manager.js +579 -0
- package/dist/strategy-manager.js.map +1 -0
- package/dist/strategy-template-registry.d.ts +80 -0
- package/dist/strategy-template-registry.d.ts.map +1 -0
- package/dist/strategy-template-registry.js +320 -0
- package/dist/strategy-template-registry.js.map +1 -0
- package/dist/task-lifecycle.d.ts +167 -0
- package/dist/task-lifecycle.d.ts.map +1 -0
- package/dist/task-lifecycle.js +1161 -0
- package/dist/task-lifecycle.js.map +1 -0
- package/dist/traits/character-config.d.ts +34 -0
- package/dist/traits/character-config.d.ts.map +1 -0
- package/dist/traits/character-config.js +53 -0
- package/dist/traits/character-config.js.map +1 -0
- package/dist/traits/curiosity-engine.d.ts +185 -0
- package/dist/traits/curiosity-engine.d.ts.map +1 -0
- package/dist/traits/curiosity-engine.js +530 -0
- package/dist/traits/curiosity-engine.js.map +1 -0
- package/dist/traits/curiosity-proposals.d.ts +38 -0
- package/dist/traits/curiosity-proposals.d.ts.map +1 -0
- package/dist/traits/curiosity-proposals.js +259 -0
- package/dist/traits/curiosity-proposals.js.map +1 -0
- package/dist/traits/curiosity-transfer.d.ts +27 -0
- package/dist/traits/curiosity-transfer.d.ts.map +1 -0
- package/dist/traits/curiosity-transfer.js +50 -0
- package/dist/traits/curiosity-transfer.js.map +1 -0
- package/dist/traits/ethics-gate.d.ts +72 -0
- package/dist/traits/ethics-gate.d.ts.map +1 -0
- package/dist/traits/ethics-gate.js +591 -0
- package/dist/traits/ethics-gate.js.map +1 -0
- package/dist/traits/trust-manager.d.ts +90 -0
- package/dist/traits/trust-manager.d.ts.map +1 -0
- package/dist/traits/trust-manager.js +276 -0
- package/dist/traits/trust-manager.js.map +1 -0
- package/dist/tree-loop-orchestrator.d.ts +79 -0
- package/dist/tree-loop-orchestrator.d.ts.map +1 -0
- package/dist/tree-loop-orchestrator.js +225 -0
- package/dist/tree-loop-orchestrator.js.map +1 -0
- package/dist/trust-manager.d.ts +67 -0
- package/dist/trust-manager.d.ts.map +1 -0
- package/dist/trust-manager.js +201 -0
- package/dist/trust-manager.js.map +1 -0
- package/dist/tui/actions.d.ts +38 -0
- package/dist/tui/actions.d.ts.map +1 -0
- package/dist/tui/actions.js +229 -0
- package/dist/tui/actions.js.map +1 -0
- package/dist/tui/app.d.ts +24 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +159 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/approval-overlay.d.ts +8 -0
- package/dist/tui/approval-overlay.d.ts.map +1 -0
- package/dist/tui/approval-overlay.js +20 -0
- package/dist/tui/approval-overlay.js.map +1 -0
- package/dist/tui/chat.d.ts +15 -0
- package/dist/tui/chat.d.ts.map +1 -0
- package/dist/tui/chat.js +196 -0
- package/dist/tui/chat.js.map +1 -0
- package/dist/tui/dashboard.d.ts +9 -0
- package/dist/tui/dashboard.d.ts.map +1 -0
- package/dist/tui/dashboard.js +69 -0
- package/dist/tui/dashboard.js.map +1 -0
- package/dist/tui/entry.d.ts +3 -0
- package/dist/tui/entry.d.ts.map +1 -0
- package/dist/tui/entry.js +222 -0
- package/dist/tui/entry.js.map +1 -0
- package/dist/tui/fuzzy.d.ts +22 -0
- package/dist/tui/fuzzy.d.ts.map +1 -0
- package/dist/tui/fuzzy.js +66 -0
- package/dist/tui/fuzzy.js.map +1 -0
- package/dist/tui/help-overlay.d.ts +6 -0
- package/dist/tui/help-overlay.d.ts.map +1 -0
- package/dist/tui/help-overlay.js +12 -0
- package/dist/tui/help-overlay.js.map +1 -0
- package/dist/tui/intent-recognizer.d.ts +19 -0
- package/dist/tui/intent-recognizer.d.ts.map +1 -0
- package/dist/tui/intent-recognizer.js +125 -0
- package/dist/tui/intent-recognizer.js.map +1 -0
- package/dist/tui/markdown-renderer.d.ts +37 -0
- package/dist/tui/markdown-renderer.d.ts.map +1 -0
- package/dist/tui/markdown-renderer.js +220 -0
- package/dist/tui/markdown-renderer.js.map +1 -0
- package/dist/tui/report-view.d.ts +6 -0
- package/dist/tui/report-view.d.ts.map +1 -0
- package/dist/tui/report-view.js +79 -0
- package/dist/tui/report-view.js.map +1 -0
- package/dist/tui/use-loop.d.ts +54 -0
- package/dist/tui/use-loop.d.ts.map +1 -0
- package/dist/tui/use-loop.js +185 -0
- package/dist/tui/use-loop.js.map +1 -0
- package/dist/types/a2a.d.ts +972 -0
- package/dist/types/a2a.d.ts.map +1 -0
- package/dist/types/a2a.js +130 -0
- package/dist/types/a2a.js.map +1 -0
- package/dist/types/capability.d.ts +292 -0
- package/dist/types/capability.d.ts.map +1 -0
- package/dist/types/capability.js +53 -0
- package/dist/types/capability.js.map +1 -0
- package/dist/types/character.d.ts +20 -0
- package/dist/types/character.d.ts.map +1 -0
- package/dist/types/character.js +10 -0
- package/dist/types/character.js.map +1 -0
- package/dist/types/checkpoint.d.ts +109 -0
- package/dist/types/checkpoint.d.ts.map +1 -0
- package/dist/types/checkpoint.js +27 -0
- package/dist/types/checkpoint.js.map +1 -0
- package/dist/types/core.d.ts +175 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +154 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/cross-portfolio.d.ts +378 -0
- package/dist/types/cross-portfolio.d.ts.map +1 -0
- package/dist/types/cross-portfolio.js +155 -0
- package/dist/types/cross-portfolio.js.map +1 -0
- package/dist/types/curiosity.d.ts +443 -0
- package/dist/types/curiosity.d.ts.map +1 -0
- package/dist/types/curiosity.js +86 -0
- package/dist/types/curiosity.js.map +1 -0
- package/dist/types/daemon.d.ts +111 -0
- package/dist/types/daemon.d.ts.map +1 -0
- package/dist/types/daemon.js +37 -0
- package/dist/types/daemon.js.map +1 -0
- package/dist/types/data-source.d.ts +311 -0
- package/dist/types/data-source.d.ts.map +1 -0
- package/dist/types/data-source.js +53 -0
- package/dist/types/data-source.js.map +1 -0
- package/dist/types/dependency.d.ts +108 -0
- package/dist/types/dependency.d.ts.map +1 -0
- package/dist/types/dependency.js +21 -0
- package/dist/types/dependency.js.map +1 -0
- package/dist/types/drive.d.ts +194 -0
- package/dist/types/drive.d.ts.map +1 -0
- package/dist/types/drive.js +77 -0
- package/dist/types/drive.js.map +1 -0
- package/dist/types/embedding.d.ts +59 -0
- package/dist/types/embedding.d.ts.map +1 -0
- package/dist/types/embedding.js +22 -0
- package/dist/types/embedding.js.map +1 -0
- package/dist/types/ethics.d.ts +169 -0
- package/dist/types/ethics.d.ts.map +1 -0
- package/dist/types/ethics.js +47 -0
- package/dist/types/ethics.js.map +1 -0
- package/dist/types/gap.d.ts +146 -0
- package/dist/types/gap.d.ts.map +1 -0
- package/dist/types/gap.js +41 -0
- package/dist/types/gap.js.map +1 -0
- package/dist/types/goal-tree.d.ts +180 -0
- package/dist/types/goal-tree.d.ts.map +1 -0
- package/dist/types/goal-tree.js +73 -0
- package/dist/types/goal-tree.js.map +1 -0
- package/dist/types/goal.d.ts +1233 -0
- package/dist/types/goal.d.ts.map +1 -0
- package/dist/types/goal.js +119 -0
- package/dist/types/goal.js.map +1 -0
- package/dist/types/guardrail.d.ts +104 -0
- package/dist/types/guardrail.d.ts.map +1 -0
- package/dist/types/guardrail.js +34 -0
- package/dist/types/guardrail.js.map +1 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +31 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/knowledge.d.ts +402 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/types/knowledge.js +116 -0
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/learning.d.ts +292 -0
- package/dist/types/learning.d.ts.map +1 -0
- package/dist/types/learning.js +120 -0
- package/dist/types/learning.js.map +1 -0
- package/dist/types/memory-lifecycle.d.ts +617 -0
- package/dist/types/memory-lifecycle.d.ts.map +1 -0
- package/dist/types/memory-lifecycle.js +159 -0
- package/dist/types/memory-lifecycle.js.map +1 -0
- package/dist/types/negotiation.d.ts +450 -0
- package/dist/types/negotiation.d.ts.map +1 -0
- package/dist/types/negotiation.js +84 -0
- package/dist/types/negotiation.js.map +1 -0
- package/dist/types/notification.d.ts +879 -0
- package/dist/types/notification.d.ts.map +1 -0
- package/dist/types/notification.js +75 -0
- package/dist/types/notification.js.map +1 -0
- package/dist/types/pipeline.d.ts +191 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +62 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/plugin.d.ts +335 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +61 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/portfolio.d.ts +146 -0
- package/dist/types/portfolio.d.ts.map +1 -0
- package/dist/types/portfolio.js +55 -0
- package/dist/types/portfolio.js.map +1 -0
- package/dist/types/reflection.d.ts +34 -0
- package/dist/types/reflection.d.ts.map +1 -0
- package/dist/types/reflection.js +14 -0
- package/dist/types/reflection.js.map +1 -0
- package/dist/types/report.d.ts +205 -0
- package/dist/types/report.d.ts.map +1 -0
- package/dist/types/report.js +59 -0
- package/dist/types/report.js.map +1 -0
- package/dist/types/satisficing.d.ts +130 -0
- package/dist/types/satisficing.d.ts.map +1 -0
- package/dist/types/satisficing.js +54 -0
- package/dist/types/satisficing.js.map +1 -0
- package/dist/types/session.d.ts +95 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +36 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/stall.d.ts +68 -0
- package/dist/types/stall.d.ts.map +1 -0
- package/dist/types/stall.js +28 -0
- package/dist/types/stall.js.map +1 -0
- package/dist/types/state.d.ts +245 -0
- package/dist/types/state.d.ts.map +1 -0
- package/dist/types/state.js +36 -0
- package/dist/types/state.js.map +1 -0
- package/dist/types/strategy.d.ts +541 -0
- package/dist/types/strategy.d.ts.map +1 -0
- package/dist/types/strategy.js +55 -0
- package/dist/types/strategy.js.map +1 -0
- package/dist/types/suggest.d.ts +92 -0
- package/dist/types/suggest.d.ts.map +1 -0
- package/dist/types/suggest.js +15 -0
- package/dist/types/suggest.js.map +1 -0
- package/dist/types/task-group.d.ts +231 -0
- package/dist/types/task-group.d.ts.map +1 -0
- package/dist/types/task-group.js +14 -0
- package/dist/types/task-group.js.map +1 -0
- package/dist/types/task.d.ts +258 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +66 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/trust.d.ts +126 -0
- package/dist/types/trust.d.ts.map +1 -0
- package/dist/types/trust.js +38 -0
- package/dist/types/trust.js.map +1 -0
- package/dist/utils/errors.d.ts +17 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +34 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/json-io.d.ts +28 -0
- package/dist/utils/json-io.d.ts.map +1 -0
- package/dist/utils/json-io.js +71 -0
- package/dist/utils/json-io.js.map +1 -0
- package/dist/utils/paths.d.ts +14 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +38 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/sleep.d.ts +2 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +4 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/vector-index.d.ts +39 -0
- package/dist/vector-index.d.ts.map +1 -0
- package/dist/vector-index.js +111 -0
- package/dist/vector-index.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// ─── Constants ───
|
|
3
|
+
const DEPENDENCIES_PATH = "capability_dependencies.json";
|
|
4
|
+
// ─── loadDependencies ───
|
|
5
|
+
/**
|
|
6
|
+
* Reads the capability dependency map from disk.
|
|
7
|
+
* Returns an empty array if the file does not exist.
|
|
8
|
+
*/
|
|
9
|
+
export async function loadDependencies(deps) {
|
|
10
|
+
const raw = await deps.stateManager.readRaw(DEPENDENCIES_PATH);
|
|
11
|
+
if (raw === null) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const parsed = z
|
|
15
|
+
.array(z.object({ capability_id: z.string(), depends_on: z.array(z.string()) }))
|
|
16
|
+
.safeParse(raw);
|
|
17
|
+
return parsed.success ? parsed.data : [];
|
|
18
|
+
}
|
|
19
|
+
// ─── saveDependencies ───
|
|
20
|
+
/**
|
|
21
|
+
* Persists the dependency map to disk.
|
|
22
|
+
*/
|
|
23
|
+
export async function saveDependencies(deps, dependencies) {
|
|
24
|
+
await deps.stateManager.writeRaw(DEPENDENCIES_PATH, dependencies);
|
|
25
|
+
}
|
|
26
|
+
// ─── addDependency ───
|
|
27
|
+
/**
|
|
28
|
+
* Records that capabilityId depends on the capabilities listed in dependsOn.
|
|
29
|
+
* If an entry already exists for capabilityId, it is replaced.
|
|
30
|
+
*/
|
|
31
|
+
export async function addDependency(deps, capabilityId, dependsOn) {
|
|
32
|
+
const allDeps = await loadDependencies(deps);
|
|
33
|
+
const existingIndex = allDeps.findIndex((d) => d.capability_id === capabilityId);
|
|
34
|
+
const entry = { capability_id: capabilityId, depends_on: dependsOn };
|
|
35
|
+
if (existingIndex >= 0) {
|
|
36
|
+
allDeps[existingIndex] = entry;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
allDeps.push(entry);
|
|
40
|
+
}
|
|
41
|
+
await saveDependencies(deps, allDeps);
|
|
42
|
+
}
|
|
43
|
+
// ─── getDependencies ───
|
|
44
|
+
/**
|
|
45
|
+
* Returns the list of capability IDs that the given capabilityId depends on.
|
|
46
|
+
* Returns an empty array if no dependency entry exists.
|
|
47
|
+
*/
|
|
48
|
+
export async function getDependencies(deps, capabilityId) {
|
|
49
|
+
const allDeps = await loadDependencies(deps);
|
|
50
|
+
const entry = allDeps.find((d) => d.capability_id === capabilityId);
|
|
51
|
+
return entry ? entry.depends_on : [];
|
|
52
|
+
}
|
|
53
|
+
// ─── resolveDependencies ───
|
|
54
|
+
/**
|
|
55
|
+
* Performs a topological sort of the given capability dependencies using Kahn's algorithm.
|
|
56
|
+
* Returns an ordered list of capability IDs with dependencies appearing before the
|
|
57
|
+
* capabilities that depend on them.
|
|
58
|
+
*
|
|
59
|
+
* Capabilities referenced only as dependents (not appearing as `capability_id`) are
|
|
60
|
+
* implicitly treated as roots and prepended to the sorted output.
|
|
61
|
+
*/
|
|
62
|
+
export function resolveDependencies(dependencies) {
|
|
63
|
+
if (dependencies.length === 0) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
// Collect all node IDs (both as keys and as dependency targets)
|
|
67
|
+
const allIds = new Set();
|
|
68
|
+
for (const dep of dependencies) {
|
|
69
|
+
allIds.add(dep.capability_id);
|
|
70
|
+
for (const d of dep.depends_on) {
|
|
71
|
+
allIds.add(d);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Build adjacency: dep.capability_id depends on dep.depends_on[i]
|
|
75
|
+
// Topological order: dependency nodes come first
|
|
76
|
+
// inDegree[node] = number of nodes that have `node` as a dependency target
|
|
77
|
+
// Edge direction for Kahn's: dependency → dependent (dependency must come first)
|
|
78
|
+
const inDegree = new Map();
|
|
79
|
+
// adjacency: from prerequisite → [nodes that depend on it]
|
|
80
|
+
const adj = new Map();
|
|
81
|
+
for (const id of allIds) {
|
|
82
|
+
inDegree.set(id, 0);
|
|
83
|
+
adj.set(id, []);
|
|
84
|
+
}
|
|
85
|
+
for (const dep of dependencies) {
|
|
86
|
+
for (const prereq of dep.depends_on) {
|
|
87
|
+
// prereq must come before dep.capability_id
|
|
88
|
+
// adj entries are initialized for all IDs in allIds (loop above)
|
|
89
|
+
const adjList = adj.get(prereq);
|
|
90
|
+
if (adjList)
|
|
91
|
+
adjList.push(dep.capability_id);
|
|
92
|
+
inDegree.set(dep.capability_id, (inDegree.get(dep.capability_id) ?? 0) + 1);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Kahn's algorithm
|
|
96
|
+
const queue = [];
|
|
97
|
+
for (const [id, degree] of inDegree) {
|
|
98
|
+
if (degree === 0) {
|
|
99
|
+
queue.push(id);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Sort queue for deterministic output
|
|
103
|
+
queue.sort();
|
|
104
|
+
const result = [];
|
|
105
|
+
while (queue.length > 0) {
|
|
106
|
+
const node = queue.shift();
|
|
107
|
+
result.push(node);
|
|
108
|
+
const neighbors = adj.get(node) ?? [];
|
|
109
|
+
for (const neighbor of neighbors) {
|
|
110
|
+
const newDegree = (inDegree.get(neighbor) ?? 0) - 1;
|
|
111
|
+
inDegree.set(neighbor, newDegree);
|
|
112
|
+
if (newDegree === 0) {
|
|
113
|
+
queue.push(neighbor);
|
|
114
|
+
queue.sort();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
// ─── detectCircularDependency ───
|
|
121
|
+
/**
|
|
122
|
+
* Detects whether the given dependency list contains a circular dependency.
|
|
123
|
+
* Returns the cycle as an array of capability IDs if found, or null if no cycle exists.
|
|
124
|
+
*/
|
|
125
|
+
export function detectCircularDependency(dependencies) {
|
|
126
|
+
if (dependencies.length === 0) {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
// Build adjacency list: node → nodes it depends on
|
|
130
|
+
const adj = new Map();
|
|
131
|
+
for (const dep of dependencies) {
|
|
132
|
+
adj.set(dep.capability_id, dep.depends_on);
|
|
133
|
+
}
|
|
134
|
+
// DFS-based cycle detection with path tracking
|
|
135
|
+
const visited = new Set();
|
|
136
|
+
const inStack = new Set();
|
|
137
|
+
const stackPath = [];
|
|
138
|
+
const dfs = (node) => {
|
|
139
|
+
if (inStack.has(node)) {
|
|
140
|
+
// Found a cycle — extract the cycle path from stackPath
|
|
141
|
+
const cycleStart = stackPath.indexOf(node);
|
|
142
|
+
return [...stackPath.slice(cycleStart), node];
|
|
143
|
+
}
|
|
144
|
+
if (visited.has(node)) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
visited.add(node);
|
|
148
|
+
inStack.add(node);
|
|
149
|
+
stackPath.push(node);
|
|
150
|
+
const neighbors = adj.get(node) ?? [];
|
|
151
|
+
for (const neighbor of neighbors) {
|
|
152
|
+
const cycle = dfs(neighbor);
|
|
153
|
+
if (cycle !== null) {
|
|
154
|
+
return cycle;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
stackPath.pop();
|
|
158
|
+
inStack.delete(node);
|
|
159
|
+
return null;
|
|
160
|
+
};
|
|
161
|
+
for (const dep of dependencies) {
|
|
162
|
+
if (!visited.has(dep.capability_id)) {
|
|
163
|
+
const cycle = dfs(dep.capability_id);
|
|
164
|
+
if (cycle !== null) {
|
|
165
|
+
return cycle;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
// ─── getAcquisitionOrder ───
|
|
172
|
+
/**
|
|
173
|
+
* Reorders a list of CapabilityGaps so that capabilities with dependencies on
|
|
174
|
+
* other gaps in the list come after those dependencies.
|
|
175
|
+
* Independent capabilities (no deps in the list) maintain their original relative order.
|
|
176
|
+
*/
|
|
177
|
+
export async function getAcquisitionOrder(deps, gaps) {
|
|
178
|
+
if (gaps.length === 0) {
|
|
179
|
+
return [];
|
|
180
|
+
}
|
|
181
|
+
const allDeps = await loadDependencies(deps);
|
|
182
|
+
// Build a dependency list restricted to capabilities that appear in the gaps list
|
|
183
|
+
const gapIds = new Set(gaps.map((g) => g.missing_capability.name));
|
|
184
|
+
const relevantDeps = [];
|
|
185
|
+
for (const dep of allDeps) {
|
|
186
|
+
if (gapIds.has(dep.capability_id)) {
|
|
187
|
+
// Only include depends_on entries that are also in the gaps list
|
|
188
|
+
const filteredDependsOn = dep.depends_on.filter((d) => gapIds.has(d));
|
|
189
|
+
if (filteredDependsOn.length > 0) {
|
|
190
|
+
relevantDeps.push({ capability_id: dep.capability_id, depends_on: filteredDependsOn });
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (relevantDeps.length === 0) {
|
|
195
|
+
// No cross-gap dependencies — return original order
|
|
196
|
+
return [...gaps];
|
|
197
|
+
}
|
|
198
|
+
const sortedIds = resolveDependencies(relevantDeps);
|
|
199
|
+
// Gaps that appear in the sorted order are placed first (in sorted order),
|
|
200
|
+
// gaps not in the sorted list (truly independent) maintain their relative original order.
|
|
201
|
+
const inSortedSet = new Set(sortedIds);
|
|
202
|
+
const independent = gaps.filter((g) => !inSortedSet.has(g.missing_capability.name));
|
|
203
|
+
const dependent = sortedIds
|
|
204
|
+
.map((id) => gaps.find((g) => g.missing_capability.name === id))
|
|
205
|
+
.filter((g) => g !== undefined);
|
|
206
|
+
return [...independent, ...dependent];
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=capability-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-dependencies.js","sourceRoot":"","sources":["../../src/observation/capability-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { StateManager } from "../state-manager.js";
|
|
2
|
+
import { ReportingEngine } from "../reporting-engine.js";
|
|
3
|
+
import type { ILLMClient } from "../llm/llm-client.js";
|
|
4
|
+
import type { IPromptGateway } from "../prompt/gateway.js";
|
|
5
|
+
import type { Task } from "../types/task.js";
|
|
6
|
+
import type { PluginMatchResult } from "../types/plugin.js";
|
|
7
|
+
import type { PluginLoader } from "../runtime/plugin-loader.js";
|
|
8
|
+
import type { Capability, CapabilityRegistry, CapabilityGap, CapabilityStatus, AcquisitionContext, CapabilityAcquisitionTask, CapabilityVerificationResult, CapabilityDependency } from "../types/capability.js";
|
|
9
|
+
import type { AgentResult } from "../execution/adapter-layer.js";
|
|
10
|
+
export declare class CapabilityDetector {
|
|
11
|
+
private readonly stateManager;
|
|
12
|
+
private readonly llmClient;
|
|
13
|
+
private readonly reportingEngine;
|
|
14
|
+
private readonly pluginLoader?;
|
|
15
|
+
private readonly gateway?;
|
|
16
|
+
constructor(stateManager: StateManager, llmClient: ILLMClient, reportingEngine: ReportingEngine, pluginLoader?: PluginLoader, gateway?: IPromptGateway);
|
|
17
|
+
/**
|
|
18
|
+
* Analyzes a task description against the capability registry via LLM.
|
|
19
|
+
* Returns a CapabilityGap if the task requires unavailable capabilities,
|
|
20
|
+
* or null if all required capabilities are available.
|
|
21
|
+
*/
|
|
22
|
+
detectDeficiency(task: Task): Promise<CapabilityGap | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Goal-level analog of detectDeficiency(). Takes a goal description and a flat
|
|
25
|
+
* list of adapter capability strings (e.g. ["create_github_issue", "execute_code"]),
|
|
26
|
+
* combines them with registry capabilities, and uses LLM to determine if any
|
|
27
|
+
* capabilities required by the goal are missing.
|
|
28
|
+
*
|
|
29
|
+
* Returns a CapabilityGap (without related_task_id) if a gap is found, or null if
|
|
30
|
+
* all required capabilities are available.
|
|
31
|
+
*/
|
|
32
|
+
detectGoalCapabilityGap(goalDescription: string, adapterCapabilities: string[], goalDimensions?: string[]): Promise<{
|
|
33
|
+
gap: CapabilityGap;
|
|
34
|
+
acquirable: boolean;
|
|
35
|
+
suggestedPlugins?: PluginMatchResult[];
|
|
36
|
+
} | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Finds installed plugins that match the goal's dimensions.
|
|
39
|
+
* Returns plugins with matchScore >= 0.5, sorted by score then trust.
|
|
40
|
+
*/
|
|
41
|
+
matchPluginsForGoal(goalDimensions: string[]): Promise<PluginMatchResult[]>;
|
|
42
|
+
loadRegistry(): Promise<CapabilityRegistry>;
|
|
43
|
+
saveRegistry(registry: CapabilityRegistry): Promise<void>;
|
|
44
|
+
registerCapability(cap: Capability, context?: AcquisitionContext): Promise<void>;
|
|
45
|
+
removeCapability(capabilityId: string): Promise<void>;
|
|
46
|
+
findCapabilityByName(name: string): Promise<Capability | null>;
|
|
47
|
+
getAcquisitionHistory(goalId: string): Promise<AcquisitionContext[]>;
|
|
48
|
+
setCapabilityStatus(capabilityName: string, capabilityType: CapabilityGap["missing_capability"]["type"], status: CapabilityStatus): Promise<void>;
|
|
49
|
+
escalateToUser(gap: CapabilityGap, goalId: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Returns true if consecutiveFailures has reached the escalation threshold (>= 3).
|
|
52
|
+
* This confirms that repeated failures are due to a capability deficiency.
|
|
53
|
+
*/
|
|
54
|
+
confirmDeficiency(_taskId: string, consecutiveFailures: number): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Deterministically creates a CapabilityAcquisitionTask from a CapabilityGap.
|
|
57
|
+
* Pure synchronous function — no LLM needed. Rules from design doc §5.3.
|
|
58
|
+
*/
|
|
59
|
+
planAcquisition(gap: CapabilityGap): CapabilityAcquisitionTask;
|
|
60
|
+
/**
|
|
61
|
+
* Uses LLM to verify a newly acquired capability.
|
|
62
|
+
* Checks basic operation, error handling, and scope boundary.
|
|
63
|
+
* Returns "pass", "fail", or "escalate" (if max verification attempts reached).
|
|
64
|
+
*/
|
|
65
|
+
verifyAcquiredCapability(capability: Capability, acquisitionTask: CapabilityAcquisitionTask, agentResult: AgentResult): Promise<CapabilityVerificationResult>;
|
|
66
|
+
addDependency(capabilityId: string, dependsOn: string[]): Promise<void>;
|
|
67
|
+
getDependencies(capabilityId: string): Promise<string[]>;
|
|
68
|
+
resolveDependencies(dependencies: CapabilityDependency[]): string[];
|
|
69
|
+
detectCircularDependency(dependencies: CapabilityDependency[]): string[] | null;
|
|
70
|
+
getAcquisitionOrder(gaps: CapabilityGap[]): Promise<CapabilityGap[]>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=capability-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-detector.d.ts","sourceRoot":"","sources":["../../src/observation/capability-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CapabilityAcquisitionTaskSchema, CapabilityGapSchema, } from "../types/capability.js";
|
|
3
|
+
import { loadRegistry, saveRegistry, registerCapability, removeCapability, findCapabilityByName, getAcquisitionHistory, setCapabilityStatus, escalateToUser, } from "./capability-registry.js";
|
|
4
|
+
import { addDependency, getDependencies, resolveDependencies, detectCircularDependency, getAcquisitionOrder, } from "./capability-dependencies.js";
|
|
5
|
+
// ─── Constants ───
|
|
6
|
+
const CONSECUTIVE_FAILURE_THRESHOLD = 3;
|
|
7
|
+
// ─── LLM response schema for deficiency detection ───
|
|
8
|
+
const DeficiencyResponseSchema = z.union([
|
|
9
|
+
z.object({
|
|
10
|
+
has_deficiency: z.literal(false),
|
|
11
|
+
}),
|
|
12
|
+
z.object({
|
|
13
|
+
has_deficiency: z.literal(true),
|
|
14
|
+
missing_capability: z.object({
|
|
15
|
+
name: z.string(),
|
|
16
|
+
type: z.enum(["tool", "permission", "service"]),
|
|
17
|
+
}),
|
|
18
|
+
reason: z.string(),
|
|
19
|
+
alternatives: z.array(z.string()),
|
|
20
|
+
impact_description: z.string(),
|
|
21
|
+
}),
|
|
22
|
+
]);
|
|
23
|
+
// ─── LLM response schema for goal-level capability gap detection ───
|
|
24
|
+
const GoalCapabilityGapResponseSchema = z.union([
|
|
25
|
+
z.object({
|
|
26
|
+
has_gap: z.literal(false),
|
|
27
|
+
}),
|
|
28
|
+
z.object({
|
|
29
|
+
has_gap: z.literal(true),
|
|
30
|
+
missing_capability: z.object({
|
|
31
|
+
name: z.string(),
|
|
32
|
+
type: z.enum(["tool", "permission", "service", "data_source"]),
|
|
33
|
+
}),
|
|
34
|
+
reason: z.string(),
|
|
35
|
+
alternatives: z.array(z.string()),
|
|
36
|
+
impact_description: z.string(),
|
|
37
|
+
acquirable: z.boolean(),
|
|
38
|
+
}),
|
|
39
|
+
]);
|
|
40
|
+
// ─── CapabilityDetector ───
|
|
41
|
+
export class CapabilityDetector {
|
|
42
|
+
stateManager;
|
|
43
|
+
llmClient;
|
|
44
|
+
reportingEngine;
|
|
45
|
+
pluginLoader;
|
|
46
|
+
gateway;
|
|
47
|
+
constructor(stateManager, llmClient, reportingEngine, pluginLoader, gateway) {
|
|
48
|
+
this.stateManager = stateManager;
|
|
49
|
+
this.llmClient = llmClient;
|
|
50
|
+
this.reportingEngine = reportingEngine;
|
|
51
|
+
this.pluginLoader = pluginLoader;
|
|
52
|
+
this.gateway = gateway;
|
|
53
|
+
}
|
|
54
|
+
// ─── detectDeficiency ───
|
|
55
|
+
/**
|
|
56
|
+
* Analyzes a task description against the capability registry via LLM.
|
|
57
|
+
* Returns a CapabilityGap if the task requires unavailable capabilities,
|
|
58
|
+
* or null if all required capabilities are available.
|
|
59
|
+
*/
|
|
60
|
+
async detectDeficiency(task) {
|
|
61
|
+
const registry = await this.loadRegistry();
|
|
62
|
+
const availableCapabilities = registry.capabilities
|
|
63
|
+
.filter((c) => c.status === "available")
|
|
64
|
+
.map((c) => `- ${c.name} (${c.type}): ${c.description}`)
|
|
65
|
+
.join("\n");
|
|
66
|
+
const systemPrompt = "You are a capability analyzer for an AI orchestration system. " +
|
|
67
|
+
"Your job is to determine whether a given task can be executed with the available capabilities. " +
|
|
68
|
+
"Respond with valid JSON only — no markdown, no explanation outside the JSON.";
|
|
69
|
+
const userMessage = `Analyze the following task and determine if any required capabilities are missing.\n\n` +
|
|
70
|
+
`Task description: ${task.work_description}\n` +
|
|
71
|
+
`Task rationale: ${task.rationale}\n` +
|
|
72
|
+
`Task approach: ${task.approach}\n\n` +
|
|
73
|
+
`Available capabilities:\n${availableCapabilities || "(none registered)"}\n\n` +
|
|
74
|
+
`Respond with JSON in one of these two formats:\n` +
|
|
75
|
+
`If all capabilities are available:\n` +
|
|
76
|
+
`{ "has_deficiency": false }\n\n` +
|
|
77
|
+
`If a capability is missing:\n` +
|
|
78
|
+
`{\n` +
|
|
79
|
+
` "has_deficiency": true,\n` +
|
|
80
|
+
` "missing_capability": { "name": "<name>", "type": "tool|permission|service" },\n` +
|
|
81
|
+
` "reason": "<why this capability is needed>",\n` +
|
|
82
|
+
` "alternatives": ["<alternative approach 1>", "<alternative approach 2>"],\n` +
|
|
83
|
+
` "impact_description": "<impact if capability remains unavailable>"\n` +
|
|
84
|
+
`}`;
|
|
85
|
+
let parsed;
|
|
86
|
+
if (this.gateway) {
|
|
87
|
+
parsed = await this.gateway.execute({
|
|
88
|
+
purpose: "capability_detect",
|
|
89
|
+
additionalContext: { deficiency_prompt: userMessage },
|
|
90
|
+
responseSchema: DeficiencyResponseSchema,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
const response = await this.llmClient.sendMessage([{ role: "user", content: userMessage }], { system: systemPrompt });
|
|
95
|
+
parsed = this.llmClient.parseJSON(response.content, DeficiencyResponseSchema);
|
|
96
|
+
}
|
|
97
|
+
if (!parsed.has_deficiency) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const gap = CapabilityGapSchema.parse({
|
|
101
|
+
missing_capability: parsed.missing_capability,
|
|
102
|
+
reason: parsed.reason,
|
|
103
|
+
alternatives: parsed.alternatives,
|
|
104
|
+
impact_description: parsed.impact_description,
|
|
105
|
+
related_task_id: task.id,
|
|
106
|
+
});
|
|
107
|
+
return gap;
|
|
108
|
+
}
|
|
109
|
+
// ─── detectGoalCapabilityGap ───
|
|
110
|
+
/**
|
|
111
|
+
* Goal-level analog of detectDeficiency(). Takes a goal description and a flat
|
|
112
|
+
* list of adapter capability strings (e.g. ["create_github_issue", "execute_code"]),
|
|
113
|
+
* combines them with registry capabilities, and uses LLM to determine if any
|
|
114
|
+
* capabilities required by the goal are missing.
|
|
115
|
+
*
|
|
116
|
+
* Returns a CapabilityGap (without related_task_id) if a gap is found, or null if
|
|
117
|
+
* all required capabilities are available.
|
|
118
|
+
*/
|
|
119
|
+
async detectGoalCapabilityGap(goalDescription, adapterCapabilities, goalDimensions) {
|
|
120
|
+
try {
|
|
121
|
+
const registry = await this.loadRegistry();
|
|
122
|
+
const registryCapabilityLines = registry.capabilities
|
|
123
|
+
.filter((c) => c.status === "available")
|
|
124
|
+
.map((c) => `- ${c.name} (${c.type}): ${c.description}`);
|
|
125
|
+
const adapterCapabilityLines = adapterCapabilities.map((cap) => `- ${cap} (adapter-declared)`);
|
|
126
|
+
const allAvailableLines = [...registryCapabilityLines, ...adapterCapabilityLines];
|
|
127
|
+
const availableCapabilities = allAvailableLines.length > 0 ? allAvailableLines.join("\n") : "(none registered)";
|
|
128
|
+
const systemPrompt = "You are a capability analyzer for an AI orchestration system. " +
|
|
129
|
+
"Your job is to determine whether a given goal can be achieved with the available capabilities. " +
|
|
130
|
+
"Respond with valid JSON only — no markdown, no explanation outside the JSON.";
|
|
131
|
+
const userMessage = `Analyze the following goal and determine if any required capabilities are missing.\n\n` +
|
|
132
|
+
`Goal description: ${goalDescription}\n\n` +
|
|
133
|
+
`Available capabilities (from capability registry and declared adapter capabilities):\n${availableCapabilities}\n\n` +
|
|
134
|
+
`Respond with JSON in one of these two formats:\n` +
|
|
135
|
+
`If all capabilities are available:\n` +
|
|
136
|
+
`{ "has_gap": false }\n\n` +
|
|
137
|
+
`If a capability is missing:\n` +
|
|
138
|
+
`{\n` +
|
|
139
|
+
` "has_gap": true,\n` +
|
|
140
|
+
` "missing_capability": { "name": "<name>", "type": "tool|permission|service|data_source" },\n` +
|
|
141
|
+
` "reason": "<why this capability is needed>",\n` +
|
|
142
|
+
` "alternatives": ["<alternative approach 1>", "<alternative approach 2>"],\n` +
|
|
143
|
+
` "impact_description": "<impact if capability remains unavailable>",\n` +
|
|
144
|
+
` "acquirable": true|false\n` +
|
|
145
|
+
`}`;
|
|
146
|
+
let parsed;
|
|
147
|
+
if (this.gateway) {
|
|
148
|
+
parsed = await this.gateway.execute({
|
|
149
|
+
purpose: "capability_goal_gap",
|
|
150
|
+
additionalContext: { goal_gap_prompt: userMessage },
|
|
151
|
+
responseSchema: GoalCapabilityGapResponseSchema,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
const response = await this.llmClient.sendMessage([{ role: "user", content: userMessage }], { system: systemPrompt });
|
|
156
|
+
try {
|
|
157
|
+
parsed = this.llmClient.parseJSON(response.content, GoalCapabilityGapResponseSchema);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (!parsed.has_gap) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
const gap = CapabilityGapSchema.parse({
|
|
167
|
+
missing_capability: parsed.missing_capability,
|
|
168
|
+
reason: parsed.reason,
|
|
169
|
+
alternatives: parsed.alternatives,
|
|
170
|
+
impact_description: parsed.impact_description,
|
|
171
|
+
// related_task_id intentionally omitted — this is goal-level, not task-level
|
|
172
|
+
});
|
|
173
|
+
const result = {
|
|
174
|
+
gap,
|
|
175
|
+
acquirable: parsed.acquirable ?? false,
|
|
176
|
+
};
|
|
177
|
+
if (this.pluginLoader && goalDimensions && goalDimensions.length > 0) {
|
|
178
|
+
result.suggestedPlugins = await this.matchPluginsForGoal(goalDimensions);
|
|
179
|
+
}
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// ─── matchPluginsForGoal ───
|
|
187
|
+
/**
|
|
188
|
+
* Finds installed plugins that match the goal's dimensions.
|
|
189
|
+
* Returns plugins with matchScore >= 0.5, sorted by score then trust.
|
|
190
|
+
*/
|
|
191
|
+
async matchPluginsForGoal(goalDimensions) {
|
|
192
|
+
if (!this.pluginLoader || goalDimensions.length === 0) {
|
|
193
|
+
return [];
|
|
194
|
+
}
|
|
195
|
+
const pluginStates = await this.pluginLoader.loadAll();
|
|
196
|
+
const results = [];
|
|
197
|
+
for (const state of pluginStates) {
|
|
198
|
+
if (state.status !== "loaded")
|
|
199
|
+
continue;
|
|
200
|
+
const pluginDimensions = state.manifest.dimensions ?? [];
|
|
201
|
+
if (pluginDimensions.length === 0)
|
|
202
|
+
continue;
|
|
203
|
+
const matchedDimensions = goalDimensions.filter((d) => pluginDimensions.includes(d));
|
|
204
|
+
const matchScore = matchedDimensions.length / goalDimensions.length;
|
|
205
|
+
if (matchScore < 0.5)
|
|
206
|
+
continue;
|
|
207
|
+
results.push({
|
|
208
|
+
pluginName: state.name,
|
|
209
|
+
matchScore,
|
|
210
|
+
matchedDimensions,
|
|
211
|
+
trustScore: state.trust_score,
|
|
212
|
+
autoSelectable: state.trust_score >= 20,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
// Sort by matchScore descending, then trustScore descending
|
|
216
|
+
results.sort((a, b) => {
|
|
217
|
+
if (b.matchScore !== a.matchScore)
|
|
218
|
+
return b.matchScore - a.matchScore;
|
|
219
|
+
return b.trustScore - a.trustScore;
|
|
220
|
+
});
|
|
221
|
+
return results;
|
|
222
|
+
}
|
|
223
|
+
// ─── Registry wrappers ───
|
|
224
|
+
async loadRegistry() {
|
|
225
|
+
return loadRegistry({ stateManager: this.stateManager });
|
|
226
|
+
}
|
|
227
|
+
async saveRegistry(registry) {
|
|
228
|
+
return saveRegistry({ stateManager: this.stateManager }, registry);
|
|
229
|
+
}
|
|
230
|
+
async registerCapability(cap, context) {
|
|
231
|
+
return registerCapability({ stateManager: this.stateManager }, cap, context);
|
|
232
|
+
}
|
|
233
|
+
async removeCapability(capabilityId) {
|
|
234
|
+
return removeCapability({ stateManager: this.stateManager }, capabilityId);
|
|
235
|
+
}
|
|
236
|
+
async findCapabilityByName(name) {
|
|
237
|
+
return findCapabilityByName({ stateManager: this.stateManager }, name);
|
|
238
|
+
}
|
|
239
|
+
async getAcquisitionHistory(goalId) {
|
|
240
|
+
return getAcquisitionHistory({ stateManager: this.stateManager }, goalId);
|
|
241
|
+
}
|
|
242
|
+
async setCapabilityStatus(capabilityName, capabilityType, status) {
|
|
243
|
+
return setCapabilityStatus({ stateManager: this.stateManager }, capabilityName, capabilityType, status);
|
|
244
|
+
}
|
|
245
|
+
async escalateToUser(gap, goalId) {
|
|
246
|
+
return escalateToUser({ reportingEngine: this.reportingEngine }, gap, goalId);
|
|
247
|
+
}
|
|
248
|
+
// ─── confirmDeficiency ───
|
|
249
|
+
/**
|
|
250
|
+
* Returns true if consecutiveFailures has reached the escalation threshold (>= 3).
|
|
251
|
+
* This confirms that repeated failures are due to a capability deficiency.
|
|
252
|
+
*/
|
|
253
|
+
confirmDeficiency(_taskId, consecutiveFailures) {
|
|
254
|
+
return consecutiveFailures >= CONSECUTIVE_FAILURE_THRESHOLD;
|
|
255
|
+
}
|
|
256
|
+
// ─── planAcquisition ───
|
|
257
|
+
/**
|
|
258
|
+
* Deterministically creates a CapabilityAcquisitionTask from a CapabilityGap.
|
|
259
|
+
* Pure synchronous function — no LLM needed. Rules from design doc §5.3.
|
|
260
|
+
*/
|
|
261
|
+
planAcquisition(gap) {
|
|
262
|
+
const capabilityName = gap.missing_capability.name;
|
|
263
|
+
const capabilityType = gap.missing_capability.type;
|
|
264
|
+
let method;
|
|
265
|
+
let task_description;
|
|
266
|
+
if (capabilityType === "tool") {
|
|
267
|
+
method = "tool_creation";
|
|
268
|
+
task_description =
|
|
269
|
+
`Create a tool named "${capabilityName}" that fulfills the following need: ${gap.reason}. ` +
|
|
270
|
+
`The tool should be implemented and made available for use. ` +
|
|
271
|
+
`Impact if unavailable: ${gap.impact_description}`;
|
|
272
|
+
}
|
|
273
|
+
else if (capabilityType === "permission") {
|
|
274
|
+
method = "permission_request";
|
|
275
|
+
task_description =
|
|
276
|
+
`Request permission for "${capabilityName}" from the user or system administrator. ` +
|
|
277
|
+
`Reason the permission is needed: ${gap.reason}. ` +
|
|
278
|
+
`Impact if unavailable: ${gap.impact_description}`;
|
|
279
|
+
}
|
|
280
|
+
else if (capabilityType === "service") {
|
|
281
|
+
method = "service_setup";
|
|
282
|
+
task_description =
|
|
283
|
+
`Set up the service "${capabilityName}" required for the following reason: ${gap.reason}. ` +
|
|
284
|
+
`Configure and verify the service is operational. ` +
|
|
285
|
+
`Impact if unavailable: ${gap.impact_description}`;
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
// data_source — treated as a form of service setup
|
|
289
|
+
method = "service_setup";
|
|
290
|
+
task_description =
|
|
291
|
+
`Set up access to the data source "${capabilityName}" required for the following reason: ${gap.reason}. ` +
|
|
292
|
+
`Configure and verify the data source is accessible. ` +
|
|
293
|
+
`Impact if unavailable: ${gap.impact_description}`;
|
|
294
|
+
}
|
|
295
|
+
return CapabilityAcquisitionTaskSchema.parse({
|
|
296
|
+
gap,
|
|
297
|
+
method,
|
|
298
|
+
task_description,
|
|
299
|
+
success_criteria: [
|
|
300
|
+
"capability registered in registry",
|
|
301
|
+
`${capabilityName} is operational and accessible`,
|
|
302
|
+
],
|
|
303
|
+
verification_attempts: 0,
|
|
304
|
+
max_verification_attempts: 3,
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
// ─── verifyAcquiredCapability ───
|
|
308
|
+
/**
|
|
309
|
+
* Uses LLM to verify a newly acquired capability.
|
|
310
|
+
* Checks basic operation, error handling, and scope boundary.
|
|
311
|
+
* Returns "pass", "fail", or "escalate" (if max verification attempts reached).
|
|
312
|
+
*/
|
|
313
|
+
async verifyAcquiredCapability(capability, acquisitionTask, agentResult) {
|
|
314
|
+
const systemPrompt = "You are a capability verifier for an AI orchestration system. " +
|
|
315
|
+
"Your job is to assess whether a newly acquired capability is ready for use. " +
|
|
316
|
+
"Respond with valid JSON only — no markdown, no explanation outside the JSON.";
|
|
317
|
+
const userMessage = `Verify the following acquired capability.\n\n` +
|
|
318
|
+
`Capability name: ${capability.name}\n` +
|
|
319
|
+
`Capability type: ${capability.type}\n` +
|
|
320
|
+
`Capability description: ${capability.description}\n\n` +
|
|
321
|
+
`Acquisition task: ${acquisitionTask.task_description}\n` +
|
|
322
|
+
`Success criteria: ${acquisitionTask.success_criteria.join("; ")}\n\n` +
|
|
323
|
+
`Agent result output:\n${agentResult.output}\n\n` +
|
|
324
|
+
`Evaluate the following three criteria:\n` +
|
|
325
|
+
`1. Basic operation — does the capability work as described?\n` +
|
|
326
|
+
`2. Error handling — does it handle edge cases gracefully?\n` +
|
|
327
|
+
`3. Scope boundary — does it only do what is intended and nothing more?\n\n` +
|
|
328
|
+
`Respond with JSON in this format:\n` +
|
|
329
|
+
`{ "verdict": "pass" | "fail", "reason": "<explanation>" }`;
|
|
330
|
+
const VerificationResponseSchema = z.object({
|
|
331
|
+
verdict: z.enum(["pass", "fail"]),
|
|
332
|
+
reason: z.string(),
|
|
333
|
+
});
|
|
334
|
+
let parsed;
|
|
335
|
+
if (this.gateway) {
|
|
336
|
+
parsed = await this.gateway.execute({
|
|
337
|
+
purpose: "capability_verify",
|
|
338
|
+
additionalContext: { verify_prompt: userMessage },
|
|
339
|
+
responseSchema: VerificationResponseSchema,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
const response = await this.llmClient.sendMessage([{ role: "user", content: userMessage }], { system: systemPrompt });
|
|
344
|
+
parsed = this.llmClient.parseJSON(response.content, VerificationResponseSchema);
|
|
345
|
+
}
|
|
346
|
+
if (parsed.verdict === "fail") {
|
|
347
|
+
acquisitionTask.verification_attempts += 1;
|
|
348
|
+
if (acquisitionTask.verification_attempts >= acquisitionTask.max_verification_attempts) {
|
|
349
|
+
return "escalate";
|
|
350
|
+
}
|
|
351
|
+
return "fail";
|
|
352
|
+
}
|
|
353
|
+
return "pass";
|
|
354
|
+
}
|
|
355
|
+
// ─── Dependency wrappers ───
|
|
356
|
+
async addDependency(capabilityId, dependsOn) {
|
|
357
|
+
return addDependency({ stateManager: this.stateManager }, capabilityId, dependsOn);
|
|
358
|
+
}
|
|
359
|
+
async getDependencies(capabilityId) {
|
|
360
|
+
return getDependencies({ stateManager: this.stateManager }, capabilityId);
|
|
361
|
+
}
|
|
362
|
+
resolveDependencies(dependencies) {
|
|
363
|
+
return resolveDependencies(dependencies);
|
|
364
|
+
}
|
|
365
|
+
detectCircularDependency(dependencies) {
|
|
366
|
+
return detectCircularDependency(dependencies);
|
|
367
|
+
}
|
|
368
|
+
async getAcquisitionOrder(gaps) {
|
|
369
|
+
return getAcquisitionOrder({ stateManager: this.stateManager }, gaps);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=capability-detector.js.map
|