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,156 @@
|
|
|
1
|
+
import type { ObservationLogEntry, ObservationLog } from "../types/state.js";
|
|
2
|
+
import type { ObservationLayer, ObservationMethod } from "../types/core.js";
|
|
3
|
+
import type { StateManager } from "../state-manager.js";
|
|
4
|
+
import type { KnowledgeGapSignal } from "../types/knowledge.js";
|
|
5
|
+
import type { IDataSourceAdapter } from "./data-source-adapter.js";
|
|
6
|
+
import type { ILLMClient } from "../llm/llm-client.js";
|
|
7
|
+
import type { Logger } from "../runtime/logger.js";
|
|
8
|
+
import type { TaskDomain } from "../types/pipeline.js";
|
|
9
|
+
import type { AgentTask } from "../execution/adapter-layer.js";
|
|
10
|
+
import type { TaskObservationContext } from "./observation-task.js";
|
|
11
|
+
export type { TaskObservationContext } from "./observation-task.js";
|
|
12
|
+
import { getConfidenceTier, createObservationEntry } from "./observation-helpers.js";
|
|
13
|
+
import type { ObservationEngineOptions } from "./observation-helpers.js";
|
|
14
|
+
export type { ObservationEngineOptions, CrossValidationResult } from "./observation-helpers.js";
|
|
15
|
+
export { applyProgressCeiling, getConfidenceTier, createObservationEntry, needsVerificationTask, resolveContradiction, detectKnowledgeGap, } from "./observation-helpers.js";
|
|
16
|
+
/**
|
|
17
|
+
* ObservationEngine handles the 3-layer observation architecture.
|
|
18
|
+
*
|
|
19
|
+
* Layers (in descending trust order):
|
|
20
|
+
* mechanical — confidence [0.85, 1.0], progress ceiling 1.00
|
|
21
|
+
* independent_review — confidence [0.50, 0.84], progress ceiling 0.90
|
|
22
|
+
* self_report — confidence [0.10, 0.49], progress ceiling 0.70
|
|
23
|
+
*
|
|
24
|
+
* Observation logs are persisted via StateManager.appendObservation.
|
|
25
|
+
* Goal state updates are persisted via StateManager.saveGoal.
|
|
26
|
+
*/
|
|
27
|
+
export declare class ObservationEngine {
|
|
28
|
+
private readonly stateManager;
|
|
29
|
+
private dataSources;
|
|
30
|
+
private readonly llmClient?;
|
|
31
|
+
private readonly contextProvider?;
|
|
32
|
+
private readonly options;
|
|
33
|
+
private readonly logger?;
|
|
34
|
+
constructor(stateManager: StateManager, dataSources?: IDataSourceAdapter[], llmClient?: ILLMClient, contextProvider?: (goalId: string, dimensionName: string) => Promise<string>, options?: ObservationEngineOptions, logger?: Logger);
|
|
35
|
+
/**
|
|
36
|
+
* Compare a mechanical observation value against an LLM-produced value.
|
|
37
|
+
* Logs a warning when the two diverge beyond the configured threshold.
|
|
38
|
+
* The mechanical value always wins — LLM is used for diagnostics only.
|
|
39
|
+
*/
|
|
40
|
+
private crossValidate;
|
|
41
|
+
/**
|
|
42
|
+
* Apply progress ceiling based on observation layer.
|
|
43
|
+
* Returns min(progress, ceiling).
|
|
44
|
+
*/
|
|
45
|
+
applyProgressCeiling(progress: number, layer: ObservationLayer): number;
|
|
46
|
+
/**
|
|
47
|
+
* Return the ConfidenceTier and valid confidence range for a given layer.
|
|
48
|
+
*/
|
|
49
|
+
getConfidenceTier(layer: ObservationLayer): ReturnType<typeof getConfidenceTier>;
|
|
50
|
+
/**
|
|
51
|
+
* Construct a new ObservationLogEntry.
|
|
52
|
+
* Confidence is clamped to the layer's valid range.
|
|
53
|
+
*/
|
|
54
|
+
createObservationEntry(params: Parameters<typeof createObservationEntry>[0]): ObservationLogEntry;
|
|
55
|
+
/**
|
|
56
|
+
* Returns true when effective progress meets the threshold but confidence
|
|
57
|
+
* is below 0.85, meaning a mechanical verification task should be generated.
|
|
58
|
+
*/
|
|
59
|
+
needsVerificationTask(effectiveProgress: number, confidence: number, threshold: number): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Resolve contradictions among multiple observation entries.
|
|
62
|
+
*/
|
|
63
|
+
resolveContradiction(entries: ObservationLogEntry[]): ObservationLogEntry;
|
|
64
|
+
/**
|
|
65
|
+
* Strip trailing _2, _3, ... _N suffixes that LLMs sometimes append to
|
|
66
|
+
* deduplicate JSON keys. Only applied to names from external (LLM) input.
|
|
67
|
+
*/
|
|
68
|
+
normalizeDimensionName(name: string): string;
|
|
69
|
+
applyObservation(goalId: string, entry: ObservationLogEntry): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Load the observation log for a goal.
|
|
72
|
+
* Returns an empty log if none exists.
|
|
73
|
+
*/
|
|
74
|
+
getObservationLog(goalId: string): Promise<ObservationLog>;
|
|
75
|
+
/**
|
|
76
|
+
* Persist the observation log for a goal.
|
|
77
|
+
*/
|
|
78
|
+
saveObservationLog(goalId: string, log: ObservationLog): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Perform an observation pass for all dimensions of a goal.
|
|
81
|
+
*
|
|
82
|
+
* For each dimension, the following priority order is used:
|
|
83
|
+
* 1. DataSource — if a registered data source covers this dimension,
|
|
84
|
+
* call observeFromDataSource() (mechanical, confidence 0.90).
|
|
85
|
+
* 2. LLM — if an LLM client is available, call observeWithLLM()
|
|
86
|
+
* (independent_review, confidence 0.70).
|
|
87
|
+
* 3. self_report — fall back to re-recording the existing stored value.
|
|
88
|
+
*
|
|
89
|
+
* @param goalId The goal to observe.
|
|
90
|
+
* @param methods Array of ObservationMethod descriptors (one per dimension,
|
|
91
|
+
* in the same order as goal.dimensions). Extra entries are
|
|
92
|
+
* ignored; missing entries fall back to the dimension's own
|
|
93
|
+
* observation_method.
|
|
94
|
+
*/
|
|
95
|
+
observe(goalId: string, methods: ObservationMethod[]): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Observe a goal dimension by querying a registered data source.
|
|
98
|
+
*/
|
|
99
|
+
observeFromDataSource(goalId: string, dimensionName: string, sourceId: string): Promise<ObservationLogEntry>;
|
|
100
|
+
/**
|
|
101
|
+
* Find the first DataSource adapter that can serve the given dimension name.
|
|
102
|
+
*/
|
|
103
|
+
private findDataSourceForDimension;
|
|
104
|
+
/**
|
|
105
|
+
* Observe a goal dimension using the LLM client.
|
|
106
|
+
*
|
|
107
|
+
* @param goalId The goal being observed.
|
|
108
|
+
* @param dimensionName The dimension name (snake_case).
|
|
109
|
+
* @param goalDescription Human-readable goal description.
|
|
110
|
+
* @param dimensionLabel Human-readable dimension label.
|
|
111
|
+
* @param thresholdDescription JSON-stringified threshold for context.
|
|
112
|
+
* @param workspaceContext Optional pre-fetched workspace context.
|
|
113
|
+
* @param previousScore Previous observed score for trend context.
|
|
114
|
+
* @param dryRun If true, do not write to state.
|
|
115
|
+
*/
|
|
116
|
+
observeWithLLM(goalId: string, dimensionName: string, goalDescription: string, dimensionLabel: string, thresholdDescription: string, workspaceContext?: string, previousScore?: number | null, dryRun?: boolean): Promise<ObservationLogEntry>;
|
|
117
|
+
/**
|
|
118
|
+
* Return the registered data source adapters.
|
|
119
|
+
*/
|
|
120
|
+
getDataSources(): IDataSourceAdapter[];
|
|
121
|
+
/**
|
|
122
|
+
* Dynamically add a data source adapter at runtime.
|
|
123
|
+
*/
|
|
124
|
+
addDataSource(adapter: IDataSourceAdapter): void;
|
|
125
|
+
/**
|
|
126
|
+
* Dynamically remove a data source adapter at runtime.
|
|
127
|
+
* Returns true if the adapter was found and removed, false otherwise.
|
|
128
|
+
*/
|
|
129
|
+
removeDataSource(sourceId: string): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Return dimension info for all registered data sources that expose
|
|
132
|
+
* getSupportedDimensions().
|
|
133
|
+
*/
|
|
134
|
+
getAvailableDimensionInfo(): Array<{
|
|
135
|
+
name: string;
|
|
136
|
+
dimensions: string[];
|
|
137
|
+
}>;
|
|
138
|
+
/**
|
|
139
|
+
* Detect whether a set of observation entries indicates a knowledge gap.
|
|
140
|
+
*/
|
|
141
|
+
detectKnowledgeGap(entries: ObservationLogEntry[], dimensionName?: string): KnowledgeGapSignal | null;
|
|
142
|
+
/**
|
|
143
|
+
* Collect domain-specific pre-execution context for a task.
|
|
144
|
+
*
|
|
145
|
+
* Delegates to the standalone `_observeForTask` function from
|
|
146
|
+
* `observation-task.ts`. The `contextProvider` on this class returns
|
|
147
|
+
* `Promise<string>` while `ObserveForTaskDeps` expects
|
|
148
|
+
* `Promise<string | null>`, so we adapt inline (both are compatible at
|
|
149
|
+
* runtime since `string` satisfies `string | null`).
|
|
150
|
+
*
|
|
151
|
+
* @param task The agent task requiring pre-execution context.
|
|
152
|
+
* @param domain The task domain that governs the collection strategy.
|
|
153
|
+
*/
|
|
154
|
+
observeForTask(task: AgentTask, domain: TaskDomain): Promise<TaskObservationContext>;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=observation-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-engine.d.ts","sourceRoot":"","sources":["../../src/observation/observation-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import { ObservationLogSchema } from "../types/state.js";
|
|
2
|
+
import { observeForTask as _observeForTask, } from "./observation-task.js";
|
|
3
|
+
import { applyProgressCeiling, getConfidenceTier, createObservationEntry, needsVerificationTask, resolveContradiction, normalizeDimensionName, detectKnowledgeGap, loadOrEmptyObservationLog, } from "./observation-helpers.js";
|
|
4
|
+
import { observeWithLLM as llmObserve } from "./observation-llm.js";
|
|
5
|
+
import { applyObservation as applyObservationFn, observeFromDataSource as observeFromDataSourceFn, } from "./observation-apply.js";
|
|
6
|
+
export { applyProgressCeiling, getConfidenceTier, createObservationEntry, needsVerificationTask, resolveContradiction, detectKnowledgeGap, } from "./observation-helpers.js";
|
|
7
|
+
/**
|
|
8
|
+
* ObservationEngine handles the 3-layer observation architecture.
|
|
9
|
+
*
|
|
10
|
+
* Layers (in descending trust order):
|
|
11
|
+
* mechanical — confidence [0.85, 1.0], progress ceiling 1.00
|
|
12
|
+
* independent_review — confidence [0.50, 0.84], progress ceiling 0.90
|
|
13
|
+
* self_report — confidence [0.10, 0.49], progress ceiling 0.70
|
|
14
|
+
*
|
|
15
|
+
* Observation logs are persisted via StateManager.appendObservation.
|
|
16
|
+
* Goal state updates are persisted via StateManager.saveGoal.
|
|
17
|
+
*/
|
|
18
|
+
export class ObservationEngine {
|
|
19
|
+
stateManager;
|
|
20
|
+
dataSources;
|
|
21
|
+
llmClient;
|
|
22
|
+
contextProvider;
|
|
23
|
+
options;
|
|
24
|
+
logger;
|
|
25
|
+
constructor(stateManager, dataSources = [], llmClient, contextProvider, options = {}, logger) {
|
|
26
|
+
this.stateManager = stateManager;
|
|
27
|
+
this.dataSources = dataSources;
|
|
28
|
+
this.llmClient = llmClient;
|
|
29
|
+
this.contextProvider = contextProvider;
|
|
30
|
+
this.options = options;
|
|
31
|
+
this.logger = logger;
|
|
32
|
+
}
|
|
33
|
+
// ─── Cross-Validation ───
|
|
34
|
+
/**
|
|
35
|
+
* Compare a mechanical observation value against an LLM-produced value.
|
|
36
|
+
* Logs a warning when the two diverge beyond the configured threshold.
|
|
37
|
+
* The mechanical value always wins — LLM is used for diagnostics only.
|
|
38
|
+
*/
|
|
39
|
+
crossValidate(goalId, dimensionName, mechanicalValue, llmValue) {
|
|
40
|
+
const threshold = this.options.divergenceThreshold ?? 0.20;
|
|
41
|
+
const denominator = Math.max(Math.abs(mechanicalValue), Math.abs(llmValue), 1);
|
|
42
|
+
const ratio = Math.abs(mechanicalValue - llmValue) / denominator;
|
|
43
|
+
const diverged = ratio > threshold;
|
|
44
|
+
if (diverged) {
|
|
45
|
+
this.logger?.warn(`[CrossValidation] DIVERGED goal="${goalId}" dim="${dimensionName}" ` +
|
|
46
|
+
`mechanical=${mechanicalValue} llm=${llmValue} ` +
|
|
47
|
+
`ratio=${ratio.toFixed(3)} threshold=${threshold} resolution=mechanical_wins`);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
dimensionName,
|
|
51
|
+
mechanicalValue,
|
|
52
|
+
llmValue,
|
|
53
|
+
diverged,
|
|
54
|
+
divergenceRatio: ratio,
|
|
55
|
+
resolution: "mechanical_wins",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// ─── Progress Ceiling ───
|
|
59
|
+
/**
|
|
60
|
+
* Apply progress ceiling based on observation layer.
|
|
61
|
+
* Returns min(progress, ceiling).
|
|
62
|
+
*/
|
|
63
|
+
applyProgressCeiling(progress, layer) {
|
|
64
|
+
return applyProgressCeiling(progress, layer);
|
|
65
|
+
}
|
|
66
|
+
// ─── Confidence Tier ───
|
|
67
|
+
/**
|
|
68
|
+
* Return the ConfidenceTier and valid confidence range for a given layer.
|
|
69
|
+
*/
|
|
70
|
+
getConfidenceTier(layer) {
|
|
71
|
+
return getConfidenceTier(layer);
|
|
72
|
+
}
|
|
73
|
+
// ─── Create Observation Entry ───
|
|
74
|
+
/**
|
|
75
|
+
* Construct a new ObservationLogEntry.
|
|
76
|
+
* Confidence is clamped to the layer's valid range.
|
|
77
|
+
*/
|
|
78
|
+
createObservationEntry(params) {
|
|
79
|
+
return createObservationEntry(params);
|
|
80
|
+
}
|
|
81
|
+
// ─── Evidence Gate ───
|
|
82
|
+
/**
|
|
83
|
+
* Returns true when effective progress meets the threshold but confidence
|
|
84
|
+
* is below 0.85, meaning a mechanical verification task should be generated.
|
|
85
|
+
*/
|
|
86
|
+
needsVerificationTask(effectiveProgress, confidence, threshold) {
|
|
87
|
+
return needsVerificationTask(effectiveProgress, confidence, threshold);
|
|
88
|
+
}
|
|
89
|
+
// ─── Contradiction Resolution ───
|
|
90
|
+
/**
|
|
91
|
+
* Resolve contradictions among multiple observation entries.
|
|
92
|
+
*/
|
|
93
|
+
resolveContradiction(entries) {
|
|
94
|
+
return resolveContradiction(entries);
|
|
95
|
+
}
|
|
96
|
+
// ─── Dimension Name Normalization ───
|
|
97
|
+
/**
|
|
98
|
+
* Strip trailing _2, _3, ... _N suffixes that LLMs sometimes append to
|
|
99
|
+
* deduplicate JSON keys. Only applied to names from external (LLM) input.
|
|
100
|
+
*/
|
|
101
|
+
normalizeDimensionName(name) {
|
|
102
|
+
return normalizeDimensionName(name, this.logger);
|
|
103
|
+
}
|
|
104
|
+
// ─── Apply Observation to Goal ───
|
|
105
|
+
applyObservation(goalId, entry) {
|
|
106
|
+
return applyObservationFn(goalId, entry, this.stateManager, this.options);
|
|
107
|
+
}
|
|
108
|
+
// ─── Observation Log Persistence ───
|
|
109
|
+
/**
|
|
110
|
+
* Load the observation log for a goal.
|
|
111
|
+
* Returns an empty log if none exists.
|
|
112
|
+
*/
|
|
113
|
+
async getObservationLog(goalId) {
|
|
114
|
+
return loadOrEmptyObservationLog(this.stateManager, goalId);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Persist the observation log for a goal.
|
|
118
|
+
*/
|
|
119
|
+
async saveObservationLog(goalId, log) {
|
|
120
|
+
if (goalId !== log.goal_id)
|
|
121
|
+
throw new Error("goalId mismatch");
|
|
122
|
+
const parsed = ObservationLogSchema.parse(log);
|
|
123
|
+
await this.stateManager.saveObservationLog(parsed);
|
|
124
|
+
}
|
|
125
|
+
// ─── Observe ───
|
|
126
|
+
/**
|
|
127
|
+
* Perform an observation pass for all dimensions of a goal.
|
|
128
|
+
*
|
|
129
|
+
* For each dimension, the following priority order is used:
|
|
130
|
+
* 1. DataSource — if a registered data source covers this dimension,
|
|
131
|
+
* call observeFromDataSource() (mechanical, confidence 0.90).
|
|
132
|
+
* 2. LLM — if an LLM client is available, call observeWithLLM()
|
|
133
|
+
* (independent_review, confidence 0.70).
|
|
134
|
+
* 3. self_report — fall back to re-recording the existing stored value.
|
|
135
|
+
*
|
|
136
|
+
* @param goalId The goal to observe.
|
|
137
|
+
* @param methods Array of ObservationMethod descriptors (one per dimension,
|
|
138
|
+
* in the same order as goal.dimensions). Extra entries are
|
|
139
|
+
* ignored; missing entries fall back to the dimension's own
|
|
140
|
+
* observation_method.
|
|
141
|
+
*/
|
|
142
|
+
async observe(goalId, methods) {
|
|
143
|
+
const goal = await this.stateManager.loadGoal(goalId);
|
|
144
|
+
if (goal === null) {
|
|
145
|
+
throw new Error(`observe: goal "${goalId}" not found`);
|
|
146
|
+
}
|
|
147
|
+
// When methods array is non-empty, only observe the dimensions corresponding to
|
|
148
|
+
// the provided methods (the caller is explicitly selecting which dimensions to observe).
|
|
149
|
+
// When methods is empty (e.g. CoreLoop passes []), observe all dimensions.
|
|
150
|
+
const observeCount = methods.length > 0 ? methods.length : goal.dimensions.length;
|
|
151
|
+
// Workspace context for LLM observations — fetched lazily per dimension, cached within
|
|
152
|
+
// this observe() call to avoid re-reading the same files for multiple dimensions.
|
|
153
|
+
const contextCache = new Map();
|
|
154
|
+
let warnedNoProvider = false;
|
|
155
|
+
const fetchWorkspaceContext = async (gId, dimensionName) => {
|
|
156
|
+
const cacheKey = `${gId}::${dimensionName}`;
|
|
157
|
+
if (contextCache.has(cacheKey))
|
|
158
|
+
return contextCache.get(cacheKey);
|
|
159
|
+
if (this.contextProvider) {
|
|
160
|
+
try {
|
|
161
|
+
const ctx = await this.contextProvider(gId, dimensionName);
|
|
162
|
+
contextCache.set(cacheKey, ctx);
|
|
163
|
+
return ctx;
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
this.logger?.warn(`[ObservationEngine] contextProvider failed: ${err instanceof Error ? err.message : String(err)}. LLM observation will proceed without workspace context.`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
if (!warnedNoProvider) {
|
|
171
|
+
warnedNoProvider = true;
|
|
172
|
+
this.logger?.warn(`[ObservationEngine] No contextProvider configured. LLM observation will proceed without workspace context (scores may be unreliable).`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
};
|
|
177
|
+
for (let idx = 0; idx < observeCount; idx++) {
|
|
178
|
+
const dim = goal.dimensions[idx];
|
|
179
|
+
const method = methods[idx] ?? dim.observation_method;
|
|
180
|
+
// 1. Try DataSource first
|
|
181
|
+
const dataSource = this.findDataSourceForDimension(dim.name, goalId);
|
|
182
|
+
if (dataSource) {
|
|
183
|
+
try {
|
|
184
|
+
await this.observeFromDataSource(goalId, dim.name, dataSource.sourceId);
|
|
185
|
+
// Cross-validation: also run LLM and compare (for logging/diagnostics only)
|
|
186
|
+
if (this.options.crossValidationEnabled && this.llmClient) {
|
|
187
|
+
try {
|
|
188
|
+
const updatedGoal = await this.stateManager.loadGoal(goalId);
|
|
189
|
+
const dimState = updatedGoal?.dimensions.find((d) => d.name === dim.name);
|
|
190
|
+
const mechanicalValue = typeof dimState?.current_value === "number" ? dimState.current_value : 0;
|
|
191
|
+
const ctx = await fetchWorkspaceContext(goalId, dim.name);
|
|
192
|
+
const llmEntry = await this.observeWithLLM(goalId, dim.name, goal.description, dim.label ?? dim.name, JSON.stringify(dim.threshold), ctx, mechanicalValue, true // dryRun — do NOT write to state
|
|
193
|
+
);
|
|
194
|
+
const llmValue = typeof llmEntry.extracted_value === "number" ? llmEntry.extracted_value : 0;
|
|
195
|
+
this.crossValidate(goalId, dim.name, mechanicalValue, llmValue);
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
this.logger?.warn(`[CrossValidation] LLM comparison failed for "${dim.name}": ${err}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
catch (err) {
|
|
204
|
+
this.logger?.warn(`[ObservationEngine] DataSource observation failed for dimension "${dim.name}" (source: ${dataSource.sourceId}): ${err instanceof Error ? err.message : String(err)}. Falling through to LLM fallback.`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// 2. Try LLM if available
|
|
208
|
+
if (this.llmClient) {
|
|
209
|
+
const ctx = await fetchWorkspaceContext(goalId, dim.name);
|
|
210
|
+
try {
|
|
211
|
+
// Only pass previousScore when there's actual observation history.
|
|
212
|
+
// The seed current_value in a new goal is not a real observation and
|
|
213
|
+
// should not trigger the §3.3 score-jump suppression guard.
|
|
214
|
+
const hasPriorObs = Array.isArray(dim.history) && dim.history.length > 0;
|
|
215
|
+
await this.observeWithLLM(goalId, dim.name, goal.description, dim.label ?? dim.name, JSON.stringify(dim.threshold), ctx, hasPriorObs && typeof dim.current_value === "number" ? dim.current_value : null);
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
catch (err) {
|
|
219
|
+
this.logger?.warn(`[ObservationEngine] LLM observation failed for dimension "${dim.name}": ${err instanceof Error ? err.message : String(err)}. Falling back to self_report.`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else if (this.dataSources.length > 0) {
|
|
223
|
+
// DataSources exist but none match this dimension and no LLM client
|
|
224
|
+
this.logger?.warn(`[ObservationEngine] Warning: dimension "${dim.name}" has no matching DataSource and no LLM client available for observation`);
|
|
225
|
+
}
|
|
226
|
+
// 3. Fall back to self_report
|
|
227
|
+
const entry = createObservationEntry({
|
|
228
|
+
goalId,
|
|
229
|
+
dimensionName: dim.name,
|
|
230
|
+
layer: "self_report",
|
|
231
|
+
method,
|
|
232
|
+
trigger: "periodic",
|
|
233
|
+
rawResult: dim.current_value,
|
|
234
|
+
extractedValue: typeof dim.current_value === "number" ||
|
|
235
|
+
typeof dim.current_value === "string" ||
|
|
236
|
+
typeof dim.current_value === "boolean" ||
|
|
237
|
+
dim.current_value === null
|
|
238
|
+
? dim.current_value
|
|
239
|
+
: null,
|
|
240
|
+
confidence: dim.confidence,
|
|
241
|
+
});
|
|
242
|
+
await this.applyObservation(goalId, entry);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// ─── Data Source Observation ───
|
|
246
|
+
/**
|
|
247
|
+
* Observe a goal dimension by querying a registered data source.
|
|
248
|
+
*/
|
|
249
|
+
async observeFromDataSource(goalId, dimensionName, sourceId) {
|
|
250
|
+
return observeFromDataSourceFn(goalId, dimensionName, sourceId, this.dataSources, (gId, entry) => this.applyObservation(gId, entry));
|
|
251
|
+
}
|
|
252
|
+
// ─── DataSource Dimension Lookup ───
|
|
253
|
+
/**
|
|
254
|
+
* Find the first DataSource adapter that can serve the given dimension name.
|
|
255
|
+
*/
|
|
256
|
+
findDataSourceForDimension(dimensionName, goalId) {
|
|
257
|
+
const matches = (ds) => {
|
|
258
|
+
const dims = ds.getSupportedDimensions?.() ?? [];
|
|
259
|
+
if (dims.includes(dimensionName))
|
|
260
|
+
return true;
|
|
261
|
+
if (ds.config?.dimension_mapping && dimensionName in ds.config.dimension_mapping)
|
|
262
|
+
return true;
|
|
263
|
+
return false;
|
|
264
|
+
};
|
|
265
|
+
// First pass: prefer a datasource explicitly scoped to this goalId
|
|
266
|
+
for (const ds of this.dataSources) {
|
|
267
|
+
const scopeGoalId = ds.config?.scope_goal_id;
|
|
268
|
+
if (scopeGoalId === goalId && goalId !== undefined && matches(ds))
|
|
269
|
+
return ds;
|
|
270
|
+
}
|
|
271
|
+
// Second pass: fall back to an unscoped datasource
|
|
272
|
+
for (const ds of this.dataSources) {
|
|
273
|
+
const scopeGoalId = ds.config?.scope_goal_id;
|
|
274
|
+
if (scopeGoalId === undefined && matches(ds))
|
|
275
|
+
return ds;
|
|
276
|
+
}
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
// ─── LLM Observation ───
|
|
280
|
+
/**
|
|
281
|
+
* Observe a goal dimension using the LLM client.
|
|
282
|
+
*
|
|
283
|
+
* @param goalId The goal being observed.
|
|
284
|
+
* @param dimensionName The dimension name (snake_case).
|
|
285
|
+
* @param goalDescription Human-readable goal description.
|
|
286
|
+
* @param dimensionLabel Human-readable dimension label.
|
|
287
|
+
* @param thresholdDescription JSON-stringified threshold for context.
|
|
288
|
+
* @param workspaceContext Optional pre-fetched workspace context.
|
|
289
|
+
* @param previousScore Previous observed score for trend context.
|
|
290
|
+
* @param dryRun If true, do not write to state.
|
|
291
|
+
*/
|
|
292
|
+
async observeWithLLM(goalId, dimensionName, goalDescription, dimensionLabel, thresholdDescription, workspaceContext, previousScore, dryRun) {
|
|
293
|
+
if (!this.llmClient) {
|
|
294
|
+
throw new Error("observeWithLLM: llmClient is not configured");
|
|
295
|
+
}
|
|
296
|
+
return llmObserve(goalId, dimensionName, goalDescription, dimensionLabel, thresholdDescription, this.llmClient, this.options, (gId, entry) => this.applyObservation(gId, entry), workspaceContext, previousScore, dryRun, this.logger);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Return the registered data source adapters.
|
|
300
|
+
*/
|
|
301
|
+
getDataSources() {
|
|
302
|
+
return this.dataSources;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Dynamically add a data source adapter at runtime.
|
|
306
|
+
*/
|
|
307
|
+
addDataSource(adapter) {
|
|
308
|
+
this.dataSources.push(adapter);
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Dynamically remove a data source adapter at runtime.
|
|
312
|
+
* Returns true if the adapter was found and removed, false otherwise.
|
|
313
|
+
*/
|
|
314
|
+
removeDataSource(sourceId) {
|
|
315
|
+
const index = this.dataSources.findIndex((ds) => ds.sourceId === sourceId);
|
|
316
|
+
if (index === -1) {
|
|
317
|
+
return false;
|
|
318
|
+
}
|
|
319
|
+
this.dataSources.splice(index, 1);
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Return dimension info for all registered data sources that expose
|
|
324
|
+
* getSupportedDimensions().
|
|
325
|
+
*/
|
|
326
|
+
getAvailableDimensionInfo() {
|
|
327
|
+
const result = [];
|
|
328
|
+
for (const ds of this.dataSources) {
|
|
329
|
+
if (typeof ds.getSupportedDimensions === "function") {
|
|
330
|
+
result.push({ name: ds.config.name, dimensions: ds.getSupportedDimensions() });
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return result;
|
|
334
|
+
}
|
|
335
|
+
// ─── Knowledge Gap Detection ───
|
|
336
|
+
/**
|
|
337
|
+
* Detect whether a set of observation entries indicates a knowledge gap.
|
|
338
|
+
*/
|
|
339
|
+
detectKnowledgeGap(entries, dimensionName) {
|
|
340
|
+
return detectKnowledgeGap(entries, dimensionName);
|
|
341
|
+
}
|
|
342
|
+
// ─── Task-Scoped Observation ───
|
|
343
|
+
/**
|
|
344
|
+
* Collect domain-specific pre-execution context for a task.
|
|
345
|
+
*
|
|
346
|
+
* Delegates to the standalone `_observeForTask` function from
|
|
347
|
+
* `observation-task.ts`. The `contextProvider` on this class returns
|
|
348
|
+
* `Promise<string>` while `ObserveForTaskDeps` expects
|
|
349
|
+
* `Promise<string | null>`, so we adapt inline (both are compatible at
|
|
350
|
+
* runtime since `string` satisfies `string | null`).
|
|
351
|
+
*
|
|
352
|
+
* @param task The agent task requiring pre-execution context.
|
|
353
|
+
* @param domain The task domain that governs the collection strategy.
|
|
354
|
+
*/
|
|
355
|
+
async observeForTask(task, domain) {
|
|
356
|
+
return _observeForTask({ contextProvider: this.contextProvider, logger: this.logger }, task, domain);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=observation-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-engine.js","sourceRoot":"","sources":["../../src/observation/observation-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ObservationLogEntry, ObservationLog } from "../types/state.js";
|
|
3
|
+
import type { ObservationLayer, ObservationMethod, ObservationTrigger, ConfidenceTier } from "../types/core.js";
|
|
4
|
+
import type { KnowledgeGapSignal } from "../types/knowledge.js";
|
|
5
|
+
import type { VectorIndex } from "../knowledge/vector-index.js";
|
|
6
|
+
import type { Logger } from "../runtime/logger.js";
|
|
7
|
+
export interface ObservationEngineOptions {
|
|
8
|
+
crossValidationEnabled?: boolean;
|
|
9
|
+
divergenceThreshold?: number;
|
|
10
|
+
/** Injectable override for git diff context (used in tests). */
|
|
11
|
+
gitContextFetcher?: (maxChars: number) => string | Promise<string>;
|
|
12
|
+
/** Optional VectorIndex for indexing dimension names after observation. */
|
|
13
|
+
vectorIndex?: VectorIndex;
|
|
14
|
+
}
|
|
15
|
+
export interface CrossValidationResult {
|
|
16
|
+
dimensionName: string;
|
|
17
|
+
mechanicalValue: number;
|
|
18
|
+
llmValue: number;
|
|
19
|
+
diverged: boolean;
|
|
20
|
+
divergenceRatio: number;
|
|
21
|
+
resolution: "mechanical_wins";
|
|
22
|
+
}
|
|
23
|
+
interface LayerConfig {
|
|
24
|
+
ceiling: number;
|
|
25
|
+
tier: ConfidenceTier;
|
|
26
|
+
range: [number, number];
|
|
27
|
+
}
|
|
28
|
+
export declare const LAYER_CONFIG: Record<ObservationLayer, LayerConfig>;
|
|
29
|
+
export declare const LAYER_PRIORITY: Record<ObservationLayer, number>;
|
|
30
|
+
export declare const LLMObservationResponseSchema: z.ZodObject<{
|
|
31
|
+
score: z.ZodNumber;
|
|
32
|
+
reason: z.ZodString;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
score: number;
|
|
35
|
+
reason: string;
|
|
36
|
+
}, {
|
|
37
|
+
score: number;
|
|
38
|
+
reason: string;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Apply progress ceiling based on observation layer.
|
|
42
|
+
* Returns min(progress, ceiling).
|
|
43
|
+
*/
|
|
44
|
+
export declare function applyProgressCeiling(progress: number, layer: ObservationLayer): number;
|
|
45
|
+
/**
|
|
46
|
+
* Return the ConfidenceTier and valid confidence range for a given layer.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getConfidenceTier(layer: ObservationLayer): {
|
|
49
|
+
tier: ConfidenceTier;
|
|
50
|
+
range: [number, number];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Construct a new ObservationLogEntry.
|
|
54
|
+
* Confidence is clamped to the layer's valid range.
|
|
55
|
+
*/
|
|
56
|
+
export declare function createObservationEntry(params: {
|
|
57
|
+
goalId: string;
|
|
58
|
+
dimensionName: string;
|
|
59
|
+
layer: ObservationLayer;
|
|
60
|
+
method: ObservationMethod;
|
|
61
|
+
trigger: ObservationTrigger;
|
|
62
|
+
rawResult: unknown;
|
|
63
|
+
extractedValue: number | string | boolean | null;
|
|
64
|
+
confidence: number;
|
|
65
|
+
notes?: string;
|
|
66
|
+
}): ObservationLogEntry;
|
|
67
|
+
/**
|
|
68
|
+
* Returns true when effective progress meets the threshold but confidence
|
|
69
|
+
* is below 0.85, meaning a mechanical verification task should be generated.
|
|
70
|
+
*/
|
|
71
|
+
export declare function needsVerificationTask(effectiveProgress: number, confidence: number, threshold: number): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Resolve contradictions among multiple observation entries.
|
|
74
|
+
*
|
|
75
|
+
* Resolution rules:
|
|
76
|
+
* 1. Higher-priority layer wins (mechanical > independent_review > self_report).
|
|
77
|
+
* 2. Within the same layer, take the pessimistic (lower) numeric value.
|
|
78
|
+
* 3. For non-numeric values, take the first entry in the winning layer.
|
|
79
|
+
*
|
|
80
|
+
* Returns the single "winning" entry.
|
|
81
|
+
* Throws if entries array is empty.
|
|
82
|
+
*/
|
|
83
|
+
export declare function resolveContradiction(entries: ObservationLogEntry[]): ObservationLogEntry;
|
|
84
|
+
/**
|
|
85
|
+
* Strip trailing _2, _3, ... _N suffixes that LLMs sometimes append to
|
|
86
|
+
* deduplicate JSON keys. Only applied to names from external (LLM) input.
|
|
87
|
+
*
|
|
88
|
+
* Examples:
|
|
89
|
+
* "todo_count_2" → "todo_count"
|
|
90
|
+
* "quality_3" → "quality"
|
|
91
|
+
* "step_count" → "step_count" (trailing token is not a digit-only suffix)
|
|
92
|
+
* "coverage" → "coverage"
|
|
93
|
+
*/
|
|
94
|
+
export declare function normalizeDimensionName(name: string, logger?: Logger): string;
|
|
95
|
+
/**
|
|
96
|
+
* Detect whether a set of observation entries indicates a knowledge gap.
|
|
97
|
+
*
|
|
98
|
+
* Rule: if ALL entries have confidence < 0.3, interpretation is too
|
|
99
|
+
* uncertain — emit an `interpretation_difficulty` signal.
|
|
100
|
+
*
|
|
101
|
+
* Returns null when confidence is sufficient (no gap detected).
|
|
102
|
+
*/
|
|
103
|
+
export declare function detectKnowledgeGap(entries: ObservationLogEntry[], dimensionName?: string): KnowledgeGapSignal | null;
|
|
104
|
+
/**
|
|
105
|
+
* Load the observation log for a goal, returning an empty log if none exists.
|
|
106
|
+
* Pure function — requires stateManager passed in.
|
|
107
|
+
*/
|
|
108
|
+
export declare function loadOrEmptyObservationLog(stateManager: {
|
|
109
|
+
loadObservationLog: (goalId: string) => Promise<ObservationLog | null>;
|
|
110
|
+
}, goalId: string): Promise<ObservationLog>;
|
|
111
|
+
export {};
|
|
112
|
+
//# sourceMappingURL=observation-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-helpers.d.ts","sourceRoot":"","sources":["../../src/observation/observation-helpers.ts"],"names":[],"mappings":"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"}
|