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,292 @@
|
|
|
1
|
+
import { StateError } from "../utils/errors.js";
|
|
2
|
+
import { aggregateValues } from "../drive/satisficing-judge.js";
|
|
3
|
+
import { computeRawGap, normalizeGap } from "../drive/gap-calculator.js";
|
|
4
|
+
/**
|
|
5
|
+
* StateAggregator handles upward aggregation (children → parent) and
|
|
6
|
+
* downward propagation (parent → children) of goal state, plus cascade
|
|
7
|
+
* completion detection.
|
|
8
|
+
*
|
|
9
|
+
* Design ref: docs/design/goal-tree.md §5 (state aggregation) and §6 (state propagation).
|
|
10
|
+
*/
|
|
11
|
+
export class StateAggregator {
|
|
12
|
+
stateManager;
|
|
13
|
+
satisficingJudge;
|
|
14
|
+
/**
|
|
15
|
+
* In-memory registry of StateAggregationRules keyed by parent_id.
|
|
16
|
+
* Rules are injected via registerAggregationRule().
|
|
17
|
+
*/
|
|
18
|
+
aggregationRules = new Map();
|
|
19
|
+
constructor(stateManager, satisficingJudge) {
|
|
20
|
+
this.stateManager = stateManager;
|
|
21
|
+
this.satisficingJudge = satisficingJudge;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Register (or replace) a StateAggregationRule for a parent goal.
|
|
25
|
+
* The rule overrides the default "min" aggregation for that parent.
|
|
26
|
+
*/
|
|
27
|
+
registerAggregationRule(rule) {
|
|
28
|
+
this.aggregationRules.set(rule.parent_id, rule);
|
|
29
|
+
}
|
|
30
|
+
// ─── Upward Aggregation ───
|
|
31
|
+
/**
|
|
32
|
+
* Aggregate the current states of all direct children of parentId into a
|
|
33
|
+
* single AggregatedState.
|
|
34
|
+
*
|
|
35
|
+
* Algorithm (goal-tree.md §5):
|
|
36
|
+
* 1. Load parent goal to get children_ids.
|
|
37
|
+
* 2. For each child, compute a normalized gap (average of per-dimension gaps).
|
|
38
|
+
* 3. Determine aggregation method from registered rule or default "min".
|
|
39
|
+
* 4. Aggregate child gaps with the chosen method.
|
|
40
|
+
* 5. Confidence = min(child confidences) — conservative.
|
|
41
|
+
*
|
|
42
|
+
* @throws if the parent goal cannot be found.
|
|
43
|
+
*/
|
|
44
|
+
async aggregateChildStates(parentId) {
|
|
45
|
+
const parent = await this.stateManager.loadGoal(parentId);
|
|
46
|
+
if (parent === null) {
|
|
47
|
+
throw new StateError(`StateAggregator.aggregateChildStates: parent goal "${parentId}" not found`);
|
|
48
|
+
}
|
|
49
|
+
const childIds = parent.children_ids;
|
|
50
|
+
const childGaps = {};
|
|
51
|
+
const childCompletions = {};
|
|
52
|
+
const childConfidences = [];
|
|
53
|
+
for (const childId of childIds) {
|
|
54
|
+
const child = await this.stateManager.loadGoal(childId);
|
|
55
|
+
if (child === null) {
|
|
56
|
+
// Missing child: treat as fully incomplete with low confidence
|
|
57
|
+
childGaps[childId] = 1.0;
|
|
58
|
+
childCompletions[childId] = false;
|
|
59
|
+
childConfidences.push(0);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const gap = computeChildGap(child);
|
|
63
|
+
childGaps[childId] = gap;
|
|
64
|
+
childCompletions[childId] = child.status === "completed";
|
|
65
|
+
const minConf = minChildConfidence(child);
|
|
66
|
+
childConfidences.push(minConf);
|
|
67
|
+
}
|
|
68
|
+
const aggregationMethod = this.resolveAggregationMethod(parentId);
|
|
69
|
+
let aggregatedGap;
|
|
70
|
+
if (childIds.length === 0) {
|
|
71
|
+
aggregatedGap = 0;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const gapValues = childIds.map((id) => childGaps[id] ?? 1.0);
|
|
75
|
+
if (aggregationMethod === "all_required") {
|
|
76
|
+
// all_required: parent is blocked as long as any child is incomplete
|
|
77
|
+
// Express as minimum fulfillment ratio (1 - gap)
|
|
78
|
+
const fulfillmentRatios = gapValues.map((g) => 1 - g);
|
|
79
|
+
const minFulfillment = aggregateValues(fulfillmentRatios, "all_required");
|
|
80
|
+
aggregatedGap = 1 - minFulfillment;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
aggregatedGap = aggregateValues(gapValues, aggregationMethod);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const aggregatedConfidence = childConfidences.length > 0 ? Math.min(...childConfidences) : 1.0;
|
|
87
|
+
return {
|
|
88
|
+
parent_id: parentId,
|
|
89
|
+
aggregated_gap: Math.min(1, Math.max(0, aggregatedGap)),
|
|
90
|
+
aggregated_confidence: aggregatedConfidence,
|
|
91
|
+
child_gaps: childGaps,
|
|
92
|
+
child_completions: childCompletions,
|
|
93
|
+
aggregation_method: aggregationMethod,
|
|
94
|
+
timestamp: new Date().toISOString(),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// ─── Downward Propagation ───
|
|
98
|
+
/**
|
|
99
|
+
* Propagate parent-level state changes down to all direct children.
|
|
100
|
+
*
|
|
101
|
+
* Two propagation types (goal-tree.md §5):
|
|
102
|
+
* a. Constraint propagation: new parent constraints are appended to children
|
|
103
|
+
* that don't already have them (idempotent).
|
|
104
|
+
* b. Deadline propagation: if the parent deadline differs from the children's
|
|
105
|
+
* proportional position, adjust each child's deadline proportionally.
|
|
106
|
+
*
|
|
107
|
+
* Note: this method reads the parent goal's CURRENT deadline; to propagate a
|
|
108
|
+
* deadline change the caller must first save the updated parent, then call
|
|
109
|
+
* propagateStateDown().
|
|
110
|
+
*
|
|
111
|
+
* @throws if the parent goal cannot be found.
|
|
112
|
+
*/
|
|
113
|
+
async propagateStateDown(parentId) {
|
|
114
|
+
const parent = await this.stateManager.loadGoal(parentId);
|
|
115
|
+
if (parent === null) {
|
|
116
|
+
throw new StateError(`StateAggregator.propagateStateDown: parent goal "${parentId}" not found`);
|
|
117
|
+
}
|
|
118
|
+
const parentDeadlineMs = parseDeadlineMs(parent.deadline);
|
|
119
|
+
const now = Date.now();
|
|
120
|
+
for (const childId of parent.children_ids) {
|
|
121
|
+
const child = await this.stateManager.loadGoal(childId);
|
|
122
|
+
if (child === null)
|
|
123
|
+
continue;
|
|
124
|
+
let updated = { ...child };
|
|
125
|
+
// ─── a. Constraint propagation ───
|
|
126
|
+
const existingConstraints = new Set(child.constraints);
|
|
127
|
+
const newConstraints = parent.constraints.filter((c) => !existingConstraints.has(c));
|
|
128
|
+
if (newConstraints.length > 0) {
|
|
129
|
+
updated = {
|
|
130
|
+
...updated,
|
|
131
|
+
constraints: [...child.constraints, ...newConstraints],
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// ─── b. Deadline propagation ───
|
|
135
|
+
if (parentDeadlineMs !== null) {
|
|
136
|
+
const childDeadlineMs = parseDeadlineMs(child.deadline);
|
|
137
|
+
if (childDeadlineMs !== null) {
|
|
138
|
+
// Proportional adjustment:
|
|
139
|
+
// remaining_parent = parentDeadline - now
|
|
140
|
+
// remaining_child = childDeadline - now
|
|
141
|
+
// ratio = remaining_parent / original_remaining_parent
|
|
142
|
+
// Since we don't store the "original" parent deadline, we derive
|
|
143
|
+
// the ratio from how much of the parent's window is left relative
|
|
144
|
+
// to the child's remaining window. The simplest safe approach
|
|
145
|
+
// (matching goal-tree.md §5) is:
|
|
146
|
+
// new_child_deadline = now + (childRemainingMs / parentRemainingMs) * parentRemainingMs
|
|
147
|
+
// which simplifies to: keep child proportional within parent's window.
|
|
148
|
+
//
|
|
149
|
+
// Concretely: child gets the same ratio of parent's deadline window
|
|
150
|
+
// as the child's remaining time relative to the parent.
|
|
151
|
+
const parentRemainingMs = parentDeadlineMs - now;
|
|
152
|
+
const childRemainingMs = childDeadlineMs - now;
|
|
153
|
+
if (parentRemainingMs > 0 && childRemainingMs !== parentRemainingMs) {
|
|
154
|
+
// New child deadline = now + min(childRemainingMs, parentRemainingMs)
|
|
155
|
+
// so the child is never later than the parent.
|
|
156
|
+
const newChildRemainingMs = Math.min(childRemainingMs, parentRemainingMs);
|
|
157
|
+
const newChildDeadlineMs = now + newChildRemainingMs;
|
|
158
|
+
updated = {
|
|
159
|
+
...updated,
|
|
160
|
+
deadline: new Date(newChildDeadlineMs).toISOString(),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (updated.constraints !== child.constraints ||
|
|
166
|
+
updated.deadline !== child.deadline) {
|
|
167
|
+
await this.stateManager.saveGoal({
|
|
168
|
+
...updated,
|
|
169
|
+
updated_at: new Date().toISOString(),
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// ─── Completion Cascade ───
|
|
175
|
+
/**
|
|
176
|
+
* Walk up the tree from goalId and return IDs of ancestors that have
|
|
177
|
+
* become eligible for completion because ALL of their children are either
|
|
178
|
+
* "completed" or cancelled (treated as pruned-and-done).
|
|
179
|
+
*
|
|
180
|
+
* The starting goalId is treated as if it were already completed — this
|
|
181
|
+
* allows callers to invoke checkCompletionCascade immediately after deciding
|
|
182
|
+
* to complete a goal, before the status has been persisted.
|
|
183
|
+
*
|
|
184
|
+
* This method does NOT mutate any goal status — the caller decides what to
|
|
185
|
+
* do with the returned list (e.g. mark them "completed").
|
|
186
|
+
*
|
|
187
|
+
* @param goalId Starting point (usually the goal that just completed).
|
|
188
|
+
* @returns Ordered array of newly-completable ancestor IDs (bottom-up order).
|
|
189
|
+
*/
|
|
190
|
+
async checkCompletionCascade(goalId) {
|
|
191
|
+
const completable = [];
|
|
192
|
+
// Track which goals are effectively complete for the purpose of this walk.
|
|
193
|
+
// The starting goal is treated as complete even if its DB status is "active".
|
|
194
|
+
const effectivelyComplete = new Set([goalId]);
|
|
195
|
+
let currentId = goalId;
|
|
196
|
+
// Walk up the parent chain
|
|
197
|
+
while (currentId !== null) {
|
|
198
|
+
const current = await this.stateManager.loadGoal(currentId);
|
|
199
|
+
if (current === null)
|
|
200
|
+
break;
|
|
201
|
+
const parentId = current.parent_id;
|
|
202
|
+
if (parentId === null)
|
|
203
|
+
break; // reached root — stop (root itself has no parent to cascade to)
|
|
204
|
+
const parent = await this.stateManager.loadGoal(parentId);
|
|
205
|
+
if (parent === null)
|
|
206
|
+
break;
|
|
207
|
+
// Check whether ALL children of the parent are done
|
|
208
|
+
let allChildrenDone = true;
|
|
209
|
+
for (const childId of parent.children_ids) {
|
|
210
|
+
if (effectivelyComplete.has(childId))
|
|
211
|
+
continue; // treated as complete
|
|
212
|
+
const child = await this.stateManager.loadGoal(childId);
|
|
213
|
+
if (child === null) {
|
|
214
|
+
allChildrenDone = false;
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
if (child.status === "completed" || child.status === "cancelled")
|
|
218
|
+
continue;
|
|
219
|
+
allChildrenDone = false;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
if (!allChildrenDone)
|
|
223
|
+
break; // stop cascade — parent still blocked
|
|
224
|
+
completable.push(parentId);
|
|
225
|
+
// Mark parent as effectively complete so its own parent sees it as done
|
|
226
|
+
effectivelyComplete.add(parentId);
|
|
227
|
+
currentId = parentId;
|
|
228
|
+
}
|
|
229
|
+
return completable;
|
|
230
|
+
}
|
|
231
|
+
// ─── Helpers ───
|
|
232
|
+
resolveAggregationMethod(parentId) {
|
|
233
|
+
const rule = this.aggregationRules.get(parentId);
|
|
234
|
+
return rule?.aggregation ?? "min";
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// ─── Module-level pure helpers ───
|
|
238
|
+
/**
|
|
239
|
+
* Compute a normalized gap in [0, 1] for a goal by averaging the normalized
|
|
240
|
+
* gap of each of its dimensions.
|
|
241
|
+
*
|
|
242
|
+
* Per-dimension formula (simplified, matches task spec):
|
|
243
|
+
* min threshold: max(0, (target - current) / target) [guard: target=0 → 0 or 1]
|
|
244
|
+
* max threshold: max(0, (current - target) / target) [guard: target=0 → 0 or 1]
|
|
245
|
+
* default: |current - target| / max(|target|, 1)
|
|
246
|
+
*
|
|
247
|
+
* When current_value is null, the dimension gap is 1 (fully unmet).
|
|
248
|
+
* When there are no dimensions, gap = 0 (consider it done).
|
|
249
|
+
*/
|
|
250
|
+
function computeChildGap(goal) {
|
|
251
|
+
if (goal.dimensions.length === 0)
|
|
252
|
+
return 0;
|
|
253
|
+
// If the goal is already completed/cancelled, gap = 0
|
|
254
|
+
if (goal.status === "completed" || goal.status === "cancelled")
|
|
255
|
+
return 0;
|
|
256
|
+
const dimGaps = goal.dimensions.map((dim) => computeDimensionGapSimple(dim));
|
|
257
|
+
const sum = dimGaps.reduce((acc, g) => acc + g, 0);
|
|
258
|
+
return Math.min(1, Math.max(0, sum / dimGaps.length));
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Compute a simple normalized gap [0,1] for a single dimension.
|
|
262
|
+
* Uses the formulas from the task spec rather than the full
|
|
263
|
+
* confidence-weighted pipeline (which is used by GapCalculator for drive scoring).
|
|
264
|
+
*/
|
|
265
|
+
function computeDimensionGapSimple(dim) {
|
|
266
|
+
const { current_value, threshold } = dim;
|
|
267
|
+
if (current_value === null)
|
|
268
|
+
return 1;
|
|
269
|
+
const rawGap = computeRawGap(current_value, threshold);
|
|
270
|
+
const normalizedGap = normalizeGap(rawGap, threshold, current_value);
|
|
271
|
+
return Math.min(1, Math.max(0, normalizedGap));
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Compute the minimum confidence across all dimensions of a goal.
|
|
275
|
+
* Returns 1.0 when there are no dimensions (nothing uncertain).
|
|
276
|
+
*/
|
|
277
|
+
function minChildConfidence(goal) {
|
|
278
|
+
if (goal.dimensions.length === 0)
|
|
279
|
+
return 1.0;
|
|
280
|
+
return Math.min(...goal.dimensions.map((d) => d.confidence));
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Parse an ISO 8601 deadline string into milliseconds since epoch.
|
|
284
|
+
* Returns null if the deadline is null or unparseable.
|
|
285
|
+
*/
|
|
286
|
+
function parseDeadlineMs(deadline) {
|
|
287
|
+
if (deadline === null)
|
|
288
|
+
return null;
|
|
289
|
+
const ms = Date.parse(deadline);
|
|
290
|
+
return isNaN(ms) ? null : ms;
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=state-aggregator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-aggregator.js","sourceRoot":"","sources":["../../src/goal/state-aggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { StateManager } from "../state-manager.js";
|
|
2
|
+
import type { GoalTreeManager } from "./goal-tree-manager.js";
|
|
3
|
+
import type { StateAggregator } from "./state-aggregator.js";
|
|
4
|
+
import type { SatisficingJudge } from "../drive/satisficing-judge.js";
|
|
5
|
+
import type { GoalDecompositionConfig } from "../types/goal-tree.js";
|
|
6
|
+
/**
|
|
7
|
+
* TreeLoopOrchestrator manages the execution of independent loops across
|
|
8
|
+
* all nodes in a goal tree.
|
|
9
|
+
*
|
|
10
|
+
* Responsibilities:
|
|
11
|
+
* - Selecting the next node to execute (leaf-first priority)
|
|
12
|
+
* - Enforcing parallel_loop_limit for concurrent execution
|
|
13
|
+
* - Tracking loop_status transitions (idle → running → idle/paused)
|
|
14
|
+
* - Triggering state aggregation on node completion
|
|
15
|
+
* - Detecting and cascading completion up the tree
|
|
16
|
+
*
|
|
17
|
+
* Design ref: docs/design/goal-tree.md §14C
|
|
18
|
+
*/
|
|
19
|
+
export declare class TreeLoopOrchestrator {
|
|
20
|
+
private readonly stateManager;
|
|
21
|
+
private readonly goalTreeManager;
|
|
22
|
+
private readonly stateAggregator;
|
|
23
|
+
private readonly satisficingJudge;
|
|
24
|
+
/**
|
|
25
|
+
* GoalDecompositionConfig used to control parallel execution limits.
|
|
26
|
+
* Updated by startTreeExecution(); defaults applied until first call.
|
|
27
|
+
*/
|
|
28
|
+
private config;
|
|
29
|
+
constructor(stateManager: StateManager, goalTreeManager: GoalTreeManager, stateAggregator: StateAggregator, satisficingJudge: SatisficingJudge);
|
|
30
|
+
/**
|
|
31
|
+
* Initialize tree execution.
|
|
32
|
+
* Saves the config and optionally resets all node loop_status to "idle".
|
|
33
|
+
* The actual per-node loops are driven by CoreLoop calling selectNextNode()
|
|
34
|
+
* in a tree-mode iteration.
|
|
35
|
+
*/
|
|
36
|
+
startTreeExecution(rootId: string, config: GoalDecompositionConfig): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Select the next node to execute from the tree rooted at rootId.
|
|
39
|
+
*
|
|
40
|
+
* Algorithm (MVP: leaf-first):
|
|
41
|
+
* 1. Get tree state — if active_loops.length >= parallel_loop_limit, return null.
|
|
42
|
+
* 2. Collect all goal IDs in the tree (root + descendants).
|
|
43
|
+
* 3. Filter to active + idle nodes (not running, not paused).
|
|
44
|
+
* 4. Prefer leaf nodes (node_type === "leaf") over non-leaf nodes.
|
|
45
|
+
* 5. Return the first candidate's ID and set its loop_status to "running".
|
|
46
|
+
*
|
|
47
|
+
* Returns null when:
|
|
48
|
+
* - parallel_loop_limit is already reached
|
|
49
|
+
* - No eligible (active + idle) nodes remain
|
|
50
|
+
*/
|
|
51
|
+
selectNextNode(rootId: string): Promise<string | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Pause the loop for a specific node.
|
|
54
|
+
* Sets loop_status to "paused".
|
|
55
|
+
* No-op if the goal is not found.
|
|
56
|
+
*/
|
|
57
|
+
pauseNodeLoop(goalId: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Resume the loop for a specific node.
|
|
60
|
+
* Sets loop_status to "running".
|
|
61
|
+
* No-op if the goal is not found.
|
|
62
|
+
*/
|
|
63
|
+
resumeNodeLoop(goalId: string): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Called when a node's execution cycle completes.
|
|
66
|
+
*
|
|
67
|
+
* Actions:
|
|
68
|
+
* 1. Reset loop_status to "idle" (release the execution slot).
|
|
69
|
+
* 2. Aggregate state bottom-up to the root.
|
|
70
|
+
* 3. Run completion cascade to auto-complete ancestor nodes whose
|
|
71
|
+
* children are all done.
|
|
72
|
+
*/
|
|
73
|
+
onNodeCompleted(goalId: string): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Collect all descendant IDs (not including rootId itself).
|
|
76
|
+
*/
|
|
77
|
+
private _collectAllDescendantIds;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=tree-loop-orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-loop-orchestrator.d.ts","sourceRoot":"","sources":["../../src/goal/tree-loop-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGrE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAoB;IAa7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAfnC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAKZ;gBAGiB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB;IAKrD;;;;;OAKG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;;;;;;;;;;;OAaG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkE5D;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlD;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanD;;;;;;;;OAQG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CpD;;OAEG;YACW,wBAAwB;CAUvC"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TreeLoopOrchestrator manages the execution of independent loops across
|
|
3
|
+
* all nodes in a goal tree.
|
|
4
|
+
*
|
|
5
|
+
* Responsibilities:
|
|
6
|
+
* - Selecting the next node to execute (leaf-first priority)
|
|
7
|
+
* - Enforcing parallel_loop_limit for concurrent execution
|
|
8
|
+
* - Tracking loop_status transitions (idle → running → idle/paused)
|
|
9
|
+
* - Triggering state aggregation on node completion
|
|
10
|
+
* - Detecting and cascading completion up the tree
|
|
11
|
+
*
|
|
12
|
+
* Design ref: docs/design/goal-tree.md §14C
|
|
13
|
+
*/
|
|
14
|
+
export class TreeLoopOrchestrator {
|
|
15
|
+
stateManager;
|
|
16
|
+
goalTreeManager;
|
|
17
|
+
stateAggregator;
|
|
18
|
+
satisficingJudge;
|
|
19
|
+
/**
|
|
20
|
+
* GoalDecompositionConfig used to control parallel execution limits.
|
|
21
|
+
* Updated by startTreeExecution(); defaults applied until first call.
|
|
22
|
+
*/
|
|
23
|
+
config = {
|
|
24
|
+
max_depth: 5,
|
|
25
|
+
min_specificity: 0.7,
|
|
26
|
+
auto_prune_threshold: 0.3,
|
|
27
|
+
parallel_loop_limit: 3,
|
|
28
|
+
};
|
|
29
|
+
constructor(stateManager, goalTreeManager, stateAggregator, satisficingJudge) {
|
|
30
|
+
this.stateManager = stateManager;
|
|
31
|
+
this.goalTreeManager = goalTreeManager;
|
|
32
|
+
this.stateAggregator = stateAggregator;
|
|
33
|
+
this.satisficingJudge = satisficingJudge;
|
|
34
|
+
}
|
|
35
|
+
// ─── Tree Execution Initialization ───
|
|
36
|
+
/**
|
|
37
|
+
* Initialize tree execution.
|
|
38
|
+
* Saves the config and optionally resets all node loop_status to "idle".
|
|
39
|
+
* The actual per-node loops are driven by CoreLoop calling selectNextNode()
|
|
40
|
+
* in a tree-mode iteration.
|
|
41
|
+
*/
|
|
42
|
+
async startTreeExecution(rootId, config) {
|
|
43
|
+
this.config = config;
|
|
44
|
+
// Reset all nodes in the tree to loop_status: "idle" to ensure clean state
|
|
45
|
+
const root = await this.stateManager.loadGoal(rootId);
|
|
46
|
+
if (!root)
|
|
47
|
+
return;
|
|
48
|
+
const now = new Date().toISOString();
|
|
49
|
+
const allIds = [rootId, ...await this._collectAllDescendantIds(rootId)];
|
|
50
|
+
for (const id of allIds) {
|
|
51
|
+
const goal = await this.stateManager.loadGoal(id);
|
|
52
|
+
if (goal && goal.loop_status !== "idle") {
|
|
53
|
+
await this.stateManager.saveGoal({
|
|
54
|
+
...goal,
|
|
55
|
+
loop_status: "idle",
|
|
56
|
+
updated_at: now,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// ─── Node Selection ───
|
|
62
|
+
/**
|
|
63
|
+
* Select the next node to execute from the tree rooted at rootId.
|
|
64
|
+
*
|
|
65
|
+
* Algorithm (MVP: leaf-first):
|
|
66
|
+
* 1. Get tree state — if active_loops.length >= parallel_loop_limit, return null.
|
|
67
|
+
* 2. Collect all goal IDs in the tree (root + descendants).
|
|
68
|
+
* 3. Filter to active + idle nodes (not running, not paused).
|
|
69
|
+
* 4. Prefer leaf nodes (node_type === "leaf") over non-leaf nodes.
|
|
70
|
+
* 5. Return the first candidate's ID and set its loop_status to "running".
|
|
71
|
+
*
|
|
72
|
+
* Returns null when:
|
|
73
|
+
* - parallel_loop_limit is already reached
|
|
74
|
+
* - No eligible (active + idle) nodes remain
|
|
75
|
+
*/
|
|
76
|
+
async selectNextNode(rootId) {
|
|
77
|
+
// Step 1: Check parallel limit
|
|
78
|
+
const treeState = await this.goalTreeManager.getTreeState(rootId);
|
|
79
|
+
if (treeState.active_loops.length >= this.config.parallel_loop_limit) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
// Step 2: Collect all IDs (root + all descendants)
|
|
83
|
+
const allIds = [rootId, ...await this._collectAllDescendantIds(rootId)];
|
|
84
|
+
// Step 3 & 4: Filter eligible nodes — active + idle, leaf first
|
|
85
|
+
const eligibleLeaves = [];
|
|
86
|
+
const eligibleNonLeaves = [];
|
|
87
|
+
for (const id of allIds) {
|
|
88
|
+
const goal = await this.stateManager.loadGoal(id);
|
|
89
|
+
if (!goal)
|
|
90
|
+
continue;
|
|
91
|
+
if (goal.status !== "active")
|
|
92
|
+
continue;
|
|
93
|
+
if (goal.loop_status === "running" || goal.loop_status === "paused")
|
|
94
|
+
continue;
|
|
95
|
+
if (goal.node_type === "leaf") {
|
|
96
|
+
eligibleLeaves.push(id);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
eligibleNonLeaves.push(id);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Step 5: Pick best candidate (leaf-first, then non-leaf)
|
|
103
|
+
let selectedId = null;
|
|
104
|
+
if (eligibleLeaves.length > 0) {
|
|
105
|
+
// Among leaves, prefer deeper ones (higher decomposition_depth)
|
|
106
|
+
// Note: sorting is done synchronously using already-loaded data from above pass
|
|
107
|
+
// We re-use the loaded goals by building a depth map first
|
|
108
|
+
const depthMap = new Map();
|
|
109
|
+
for (const id of eligibleLeaves) {
|
|
110
|
+
const g = await this.stateManager.loadGoal(id);
|
|
111
|
+
depthMap.set(id, g?.decomposition_depth ?? 0);
|
|
112
|
+
}
|
|
113
|
+
eligibleLeaves.sort((a, b) => {
|
|
114
|
+
const depthA = depthMap.get(a) ?? 0;
|
|
115
|
+
const depthB = depthMap.get(b) ?? 0;
|
|
116
|
+
return depthB - depthA; // descending: deeper first
|
|
117
|
+
});
|
|
118
|
+
selectedId = eligibleLeaves[0] ?? null;
|
|
119
|
+
}
|
|
120
|
+
else if (eligibleNonLeaves.length > 0) {
|
|
121
|
+
selectedId = eligibleNonLeaves[0] ?? null;
|
|
122
|
+
}
|
|
123
|
+
if (selectedId === null)
|
|
124
|
+
return null;
|
|
125
|
+
// Mark selected node as running
|
|
126
|
+
const selected = await this.stateManager.loadGoal(selectedId);
|
|
127
|
+
if (selected) {
|
|
128
|
+
await this.stateManager.saveGoal({
|
|
129
|
+
...selected,
|
|
130
|
+
loop_status: "running",
|
|
131
|
+
updated_at: new Date().toISOString(),
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return selectedId;
|
|
135
|
+
}
|
|
136
|
+
// ─── Node Loop Control ───
|
|
137
|
+
/**
|
|
138
|
+
* Pause the loop for a specific node.
|
|
139
|
+
* Sets loop_status to "paused".
|
|
140
|
+
* No-op if the goal is not found.
|
|
141
|
+
*/
|
|
142
|
+
async pauseNodeLoop(goalId) {
|
|
143
|
+
const goal = await this.stateManager.loadGoal(goalId);
|
|
144
|
+
if (!goal)
|
|
145
|
+
return;
|
|
146
|
+
await this.stateManager.saveGoal({
|
|
147
|
+
...goal,
|
|
148
|
+
loop_status: "paused",
|
|
149
|
+
updated_at: new Date().toISOString(),
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Resume the loop for a specific node.
|
|
154
|
+
* Sets loop_status to "running".
|
|
155
|
+
* No-op if the goal is not found.
|
|
156
|
+
*/
|
|
157
|
+
async resumeNodeLoop(goalId) {
|
|
158
|
+
const goal = await this.stateManager.loadGoal(goalId);
|
|
159
|
+
if (!goal)
|
|
160
|
+
return;
|
|
161
|
+
await this.stateManager.saveGoal({
|
|
162
|
+
...goal,
|
|
163
|
+
loop_status: "running",
|
|
164
|
+
updated_at: new Date().toISOString(),
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
// ─── Node Completion Callback ───
|
|
168
|
+
/**
|
|
169
|
+
* Called when a node's execution cycle completes.
|
|
170
|
+
*
|
|
171
|
+
* Actions:
|
|
172
|
+
* 1. Reset loop_status to "idle" (release the execution slot).
|
|
173
|
+
* 2. Aggregate state bottom-up to the root.
|
|
174
|
+
* 3. Run completion cascade to auto-complete ancestor nodes whose
|
|
175
|
+
* children are all done.
|
|
176
|
+
*/
|
|
177
|
+
async onNodeCompleted(goalId) {
|
|
178
|
+
const now = new Date().toISOString();
|
|
179
|
+
// Step 1: Reset loop_status to "idle"
|
|
180
|
+
const goal = await this.stateManager.loadGoal(goalId);
|
|
181
|
+
if (goal) {
|
|
182
|
+
await this.stateManager.saveGoal({
|
|
183
|
+
...goal,
|
|
184
|
+
loop_status: "idle",
|
|
185
|
+
updated_at: now,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
// Step 2: Aggregate parent chain bottom-up
|
|
189
|
+
let parentId = goal?.parent_id ?? null;
|
|
190
|
+
while (parentId !== null) {
|
|
191
|
+
try {
|
|
192
|
+
await this.stateAggregator.aggregateChildStates(parentId);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// Non-fatal: parent may be missing or have no children
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
const parent = await this.stateManager.loadGoal(parentId);
|
|
199
|
+
parentId = parent?.parent_id ?? null;
|
|
200
|
+
}
|
|
201
|
+
// Step 3: Completion cascade
|
|
202
|
+
const cascadeIds = await this.stateAggregator.checkCompletionCascade(goalId);
|
|
203
|
+
for (const ancestorId of cascadeIds) {
|
|
204
|
+
const ancestor = await this.stateManager.loadGoal(ancestorId);
|
|
205
|
+
if (ancestor && ancestor.status !== "completed") {
|
|
206
|
+
await this.stateManager.saveGoal({
|
|
207
|
+
...ancestor,
|
|
208
|
+
status: "completed",
|
|
209
|
+
updated_at: now,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// ─── Private Helpers ───
|
|
215
|
+
/**
|
|
216
|
+
* Collect all descendant IDs (not including rootId itself).
|
|
217
|
+
*/
|
|
218
|
+
async _collectAllDescendantIds(goalId) {
|
|
219
|
+
const goal = await this.stateManager.loadGoal(goalId);
|
|
220
|
+
if (!goal)
|
|
221
|
+
return [];
|
|
222
|
+
const result = [];
|
|
223
|
+
for (const childId of goal.children_ids) {
|
|
224
|
+
result.push(childId);
|
|
225
|
+
result.push(...await this._collectAllDescendantIds(childId));
|
|
226
|
+
}
|
|
227
|
+
return result;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=tree-loop-orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-loop-orchestrator.js","sourceRoot":"","sources":["../../src/goal/tree-loop-orchestrator.ts"],"names":[],"mappings":"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"}
|