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,118 @@
|
|
|
1
|
+
import { StateManager } from "../state-manager.js";
|
|
2
|
+
import { GoalDependencyGraph } from "../goal/goal-dependency-graph.js";
|
|
3
|
+
import { VectorIndex } from "../knowledge/vector-index.js";
|
|
4
|
+
import type { IEmbeddingClient } from "../knowledge/embedding-client.js";
|
|
5
|
+
import type { CrossGoalAllocation, CrossGoalPortfolioConfig, GoalPriorityFactors, StrategyTemplate, CrossGoalRebalanceResult, CrossGoalRebalanceTrigger, MomentumInfo, DependencySchedule, AllocationStrategy, RebalanceAction } from "../types/cross-portfolio.js";
|
|
6
|
+
/**
|
|
7
|
+
* CrossGoalPortfolio manages resource allocation and priority across multiple
|
|
8
|
+
* active goals. It sits above individual PortfolioManager instances and answers
|
|
9
|
+
* the question: "given N active goals, how should overall resources be split?"
|
|
10
|
+
*
|
|
11
|
+
* Responsibilities:
|
|
12
|
+
* - Calculate per-goal priority scores from 4 factors
|
|
13
|
+
* - Allocate resource shares proportionally
|
|
14
|
+
* - Rebalance on 4 trigger types
|
|
15
|
+
* - Recommend strategy templates using vector similarity
|
|
16
|
+
*
|
|
17
|
+
* CrossGoalPortfolio does NOT manage strategies within a single goal —
|
|
18
|
+
* that remains the responsibility of PortfolioManager.
|
|
19
|
+
*/
|
|
20
|
+
export declare class CrossGoalPortfolio {
|
|
21
|
+
private readonly stateManager;
|
|
22
|
+
private readonly goalDependencyGraph;
|
|
23
|
+
private readonly vectorIndex;
|
|
24
|
+
private readonly embeddingClient;
|
|
25
|
+
private readonly config;
|
|
26
|
+
/** goalId → cached GoalPriorityFactors from the last calculation */
|
|
27
|
+
private lastPriorities;
|
|
28
|
+
constructor(stateManager: StateManager, goalDependencyGraph: GoalDependencyGraph, vectorIndex: VectorIndex, embeddingClient: IEmbeddingClient, config?: Partial<CrossGoalPortfolioConfig>);
|
|
29
|
+
/**
|
|
30
|
+
* Calculate priority factors for each goal in the provided list.
|
|
31
|
+
*
|
|
32
|
+
* The 4 factors and their weights:
|
|
33
|
+
* w1=0.35 deadline_urgency — how soon the goal must be finished
|
|
34
|
+
* w2=0.25 gap_severity — worst-case normalized gap across dimensions
|
|
35
|
+
* w3=0.25 dependency_weight — how many goals depend on this one
|
|
36
|
+
* w4=0.15 user_priority — user-specified priority (1-5 → 0-1)
|
|
37
|
+
*
|
|
38
|
+
* After the weighted sum is computed, synergy/conflict edges from
|
|
39
|
+
* GoalDependencyGraph adjust the final score before clamping to [0,1].
|
|
40
|
+
*
|
|
41
|
+
* @param goalIds — IDs of goals to evaluate (missing goals are skipped)
|
|
42
|
+
* @returns GoalPriorityFactors[] sorted by computed_priority descending
|
|
43
|
+
*/
|
|
44
|
+
calculateGoalPriorities(goalIds: string[]): Promise<GoalPriorityFactors[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Allocate resource shares across goals based on their priority scores.
|
|
47
|
+
* Delegates to the standalone allocateResources function.
|
|
48
|
+
*/
|
|
49
|
+
allocateResources(priorities: GoalPriorityFactors[], strategy?: AllocationStrategy, momentumMap?: Map<string, MomentumInfo>, depSchedule?: DependencySchedule): CrossGoalAllocation[];
|
|
50
|
+
/**
|
|
51
|
+
* Recalculate priorities for all currently active goals and produce a new
|
|
52
|
+
* allocation plan.
|
|
53
|
+
*
|
|
54
|
+
* @param trigger — what caused this rebalance
|
|
55
|
+
* @param goalIds — explicit list of goal IDs to consider; if omitted, the
|
|
56
|
+
* IDs from the last calculateGoalPriorities call are used
|
|
57
|
+
*/
|
|
58
|
+
rebalanceGoals(trigger: CrossGoalRebalanceTrigger, goalIds?: string[]): Promise<CrossGoalRebalanceResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Search the VectorIndex for strategy templates that match the given goal.
|
|
61
|
+
*
|
|
62
|
+
* Matching is based on:
|
|
63
|
+
* 1. Semantic similarity between the goal text and template hypothesis_pattern
|
|
64
|
+
* 2. domain_tags overlap (at least 1 tag in common with the goal's domain tags)
|
|
65
|
+
* 3. Final ranking: similarity × effectiveness_score (descending)
|
|
66
|
+
*
|
|
67
|
+
* The caller is responsible for having added StrategyTemplate objects to the
|
|
68
|
+
* VectorIndex with their `template_id` as the entry id and metadata shaped
|
|
69
|
+
* as StrategyTemplate fields.
|
|
70
|
+
*
|
|
71
|
+
* @param goalId — goal for which templates are requested
|
|
72
|
+
* @param vectorIndex — the index to search (typically the instance-level one,
|
|
73
|
+
* but callers may pass a different one for testing)
|
|
74
|
+
* @param limit — number of results to return (default 3)
|
|
75
|
+
*/
|
|
76
|
+
getRecommendedTemplates(goalId: string, vectorIndex: VectorIndex, limit?: number): Promise<StrategyTemplate[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Calculate momentum for a single goal based on recent state snapshots.
|
|
79
|
+
* Delegates to the standalone calculateMomentum function.
|
|
80
|
+
*/
|
|
81
|
+
calculateMomentum(goalId: string, snapshots: number[]): MomentumInfo;
|
|
82
|
+
/**
|
|
83
|
+
* Build a phased dependency schedule for the given goals.
|
|
84
|
+
* Delegates to the standalone buildDependencySchedule function.
|
|
85
|
+
*/
|
|
86
|
+
buildDependencySchedule(goalIds: string[], graph: GoalDependencyGraph): DependencySchedule;
|
|
87
|
+
/**
|
|
88
|
+
* Detect stalled goals and redistribute their resources to progressing goals.
|
|
89
|
+
* Delegates to the standalone rebalanceOnStall function.
|
|
90
|
+
*/
|
|
91
|
+
rebalanceOnStall(currentAllocations: CrossGoalAllocation[], momentumMap: Map<string, MomentumInfo>): RebalanceAction[];
|
|
92
|
+
/**
|
|
93
|
+
* Produce a rough [0,1] severity for a single goal dimension.
|
|
94
|
+
*
|
|
95
|
+
* For numeric thresholds we compute gap / scale.
|
|
96
|
+
* For binary thresholds (present/match) we return 0 or 1.
|
|
97
|
+
* Returns 0 when the dimension is already satisfied.
|
|
98
|
+
*/
|
|
99
|
+
private _estimateDimensionGap;
|
|
100
|
+
/**
|
|
101
|
+
* Extract domain tags from a goal's constraints and title.
|
|
102
|
+
* Recognises constraints with format "domain:tagname" or "tag:tagname".
|
|
103
|
+
*/
|
|
104
|
+
private _extractDomainTags;
|
|
105
|
+
/**
|
|
106
|
+
* Get a goal_id → resource_share map for the given goal IDs.
|
|
107
|
+
*
|
|
108
|
+
* Recomputes allocations based on current goal states.
|
|
109
|
+
* Returns a Map suitable for use by PortfolioManager.selectNextStrategyAcrossGoals().
|
|
110
|
+
*/
|
|
111
|
+
getAllocationMap(goalIds: string[]): Promise<Map<string, number>>;
|
|
112
|
+
}
|
|
113
|
+
export { buildDependencySchedule } from "./portfolio-scheduling.js";
|
|
114
|
+
export { computeCriticalPath } from "./portfolio-scheduling.js";
|
|
115
|
+
export { allocateResources, rebalanceOnStall } from "./portfolio-allocation.js";
|
|
116
|
+
export type { AllocationConfig } from "./portfolio-allocation.js";
|
|
117
|
+
export { calculateMomentum } from "./portfolio-momentum.js";
|
|
118
|
+
//# sourceMappingURL=cross-goal-portfolio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-goal-portfolio.d.ts","sourceRoot":"","sources":["../../src/strategy/cross-goal-portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKzE,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAarC;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAElD,oEAAoE;IACpE,OAAO,CAAC,cAAc,CAA+C;gBAGnE,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,gBAAgB,EACjC,MAAM,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC;IAW5C;;;;;;;;;;;;;;OAcG;IACG,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA+KhF;;;OAGG;IACH,iBAAiB,CACf,UAAU,EAAE,mBAAmB,EAAE,EACjC,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,WAAW,CAAC,EAAE,kBAAkB,GAC/B,mBAAmB,EAAE;IAMxB;;;;;;;OAOG;IACG,cAAc,CAClB,OAAO,EAAE,yBAAyB,EAClC,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,wBAAwB,CAAC;IAcpC;;;;;;;;;;;;;;;;OAgBG;IACG,uBAAuB,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA6E9B;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY;IAMpE;;;OAGG;IACH,uBAAuB,CACrB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,mBAAmB,GACzB,kBAAkB;IAMrB;;;OAGG;IACH,gBAAgB,CACd,kBAAkB,EAAE,mBAAmB,EAAE,EACzC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,eAAe,EAAE;IAMpB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAmBxE;AAGD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
import { scoreDeadline } from "../drive/drive-scorer.js";
|
|
2
|
+
import { CrossGoalPortfolioConfigSchema, } from "../types/cross-portfolio.js";
|
|
3
|
+
import { buildDependencySchedule } from "./portfolio-scheduling.js";
|
|
4
|
+
import { allocateResources } from "./portfolio-allocation.js";
|
|
5
|
+
import { calculateMomentum } from "./portfolio-momentum.js";
|
|
6
|
+
import { rebalanceOnStall } from "./portfolio-allocation.js";
|
|
7
|
+
// ─── Helpers ───
|
|
8
|
+
function clamp(value, min, max) {
|
|
9
|
+
return Math.min(Math.max(value, min), max);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* CrossGoalPortfolio manages resource allocation and priority across multiple
|
|
13
|
+
* active goals. It sits above individual PortfolioManager instances and answers
|
|
14
|
+
* the question: "given N active goals, how should overall resources be split?"
|
|
15
|
+
*
|
|
16
|
+
* Responsibilities:
|
|
17
|
+
* - Calculate per-goal priority scores from 4 factors
|
|
18
|
+
* - Allocate resource shares proportionally
|
|
19
|
+
* - Rebalance on 4 trigger types
|
|
20
|
+
* - Recommend strategy templates using vector similarity
|
|
21
|
+
*
|
|
22
|
+
* CrossGoalPortfolio does NOT manage strategies within a single goal —
|
|
23
|
+
* that remains the responsibility of PortfolioManager.
|
|
24
|
+
*/
|
|
25
|
+
export class CrossGoalPortfolio {
|
|
26
|
+
stateManager;
|
|
27
|
+
goalDependencyGraph;
|
|
28
|
+
vectorIndex;
|
|
29
|
+
embeddingClient;
|
|
30
|
+
config;
|
|
31
|
+
/** goalId → cached GoalPriorityFactors from the last calculation */
|
|
32
|
+
lastPriorities = new Map();
|
|
33
|
+
constructor(stateManager, goalDependencyGraph, vectorIndex, embeddingClient, config) {
|
|
34
|
+
this.stateManager = stateManager;
|
|
35
|
+
this.goalDependencyGraph = goalDependencyGraph;
|
|
36
|
+
this.vectorIndex = vectorIndex;
|
|
37
|
+
this.embeddingClient = embeddingClient;
|
|
38
|
+
this.config = CrossGoalPortfolioConfigSchema.parse(config ?? {});
|
|
39
|
+
}
|
|
40
|
+
// ─── Priority Calculation ───
|
|
41
|
+
/**
|
|
42
|
+
* Calculate priority factors for each goal in the provided list.
|
|
43
|
+
*
|
|
44
|
+
* The 4 factors and their weights:
|
|
45
|
+
* w1=0.35 deadline_urgency — how soon the goal must be finished
|
|
46
|
+
* w2=0.25 gap_severity — worst-case normalized gap across dimensions
|
|
47
|
+
* w3=0.25 dependency_weight — how many goals depend on this one
|
|
48
|
+
* w4=0.15 user_priority — user-specified priority (1-5 → 0-1)
|
|
49
|
+
*
|
|
50
|
+
* After the weighted sum is computed, synergy/conflict edges from
|
|
51
|
+
* GoalDependencyGraph adjust the final score before clamping to [0,1].
|
|
52
|
+
*
|
|
53
|
+
* @param goalIds — IDs of goals to evaluate (missing goals are skipped)
|
|
54
|
+
* @returns GoalPriorityFactors[] sorted by computed_priority descending
|
|
55
|
+
*/
|
|
56
|
+
async calculateGoalPriorities(goalIds) {
|
|
57
|
+
if (goalIds.length === 0)
|
|
58
|
+
return [];
|
|
59
|
+
const totalGoals = goalIds.length;
|
|
60
|
+
const now = new Date();
|
|
61
|
+
const rawList = [];
|
|
62
|
+
for (const goalId of goalIds) {
|
|
63
|
+
const goal = await this.stateManager.loadGoal(goalId);
|
|
64
|
+
if (!goal)
|
|
65
|
+
continue;
|
|
66
|
+
// deadline_urgency — use scoreDeadline with maxGap=1 as the
|
|
67
|
+
// normalized_weighted_gap input, then read the urgency value.
|
|
68
|
+
let deadlineUrgency = 0;
|
|
69
|
+
if (goal.deadline) {
|
|
70
|
+
const deadlineMs = new Date(goal.deadline).getTime();
|
|
71
|
+
const timeRemainingHours = (deadlineMs - now.getTime()) / (1000 * 60 * 60);
|
|
72
|
+
const result = scoreDeadline(1, timeRemainingHours);
|
|
73
|
+
// Normalize urgency to [0,1]. scoreDeadline with gap=1 means score == urgency.
|
|
74
|
+
// urgency >= 1 (at minimum). We normalise by capping at the urgency-at-zero cap.
|
|
75
|
+
// Use urgency directly but clamp to [0,1] after dividing by a reasonable max.
|
|
76
|
+
// default urgency_steepness=2, deadline_horizon=168h → urgencyAtZero = exp(2) ≈ 7.39
|
|
77
|
+
const urgencyAtZero = Math.exp(2); // exp(urgency_steepness)
|
|
78
|
+
deadlineUrgency = clamp(result.urgency / urgencyAtZero, 0, 1);
|
|
79
|
+
}
|
|
80
|
+
// gap_severity — max normalized_weighted_gap across all dimensions
|
|
81
|
+
// We approximate by treating each dimension's gap as proportional
|
|
82
|
+
// to how far it is from its threshold relative to a known scale.
|
|
83
|
+
// For simplicity (no GapCalculator instance injected), we derive a
|
|
84
|
+
// rough severity from the dimension values directly.
|
|
85
|
+
let gapSeverity = 0;
|
|
86
|
+
for (const dim of goal.dimensions) {
|
|
87
|
+
const dimGap = this._estimateDimensionGap(dim);
|
|
88
|
+
if (dimGap > gapSeverity) {
|
|
89
|
+
gapSeverity = dimGap;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
gapSeverity = clamp(gapSeverity, 0, 1);
|
|
93
|
+
// dependency_weight — how many goals in the provided list depend on this goal
|
|
94
|
+
const graph = this.goalDependencyGraph.getGraph();
|
|
95
|
+
const dependentCount = graph.edges.filter((e) => e.from_goal_id === goalId &&
|
|
96
|
+
e.type === "prerequisite" &&
|
|
97
|
+
e.status === "active" &&
|
|
98
|
+
goalIds.includes(e.to_goal_id)).length;
|
|
99
|
+
const dependencyWeight = totalGoals > 1 ? dependentCount / (totalGoals - 1) : 0;
|
|
100
|
+
// user_priority — extract from goal constraints or metadata
|
|
101
|
+
// Assume format "priority:N" (N in 1-5) anywhere in constraints
|
|
102
|
+
let userPriority = 0.5; // default
|
|
103
|
+
for (const constraint of goal.constraints) {
|
|
104
|
+
const match = constraint.match(/\bpriority[:\s=]+(\d+)\b/i);
|
|
105
|
+
if (match) {
|
|
106
|
+
const level = parseInt(match[1], 10);
|
|
107
|
+
userPriority = clamp(level / 5, 0, 1);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
rawList.push({
|
|
112
|
+
goalId,
|
|
113
|
+
goal,
|
|
114
|
+
deadlineUrgency,
|
|
115
|
+
gapSeverity,
|
|
116
|
+
dependencyWeight: clamp(dependencyWeight, 0, 1),
|
|
117
|
+
userPriority,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (rawList.length === 0)
|
|
121
|
+
return [];
|
|
122
|
+
// --- Step 2: compute weighted priority ---
|
|
123
|
+
const W1 = 0.35;
|
|
124
|
+
const W2 = 0.25;
|
|
125
|
+
const W3 = 0.25;
|
|
126
|
+
const W4 = 0.15;
|
|
127
|
+
const withBase = rawList.map((r) => {
|
|
128
|
+
const basePriority = W1 * r.deadlineUrgency +
|
|
129
|
+
W2 * r.gapSeverity +
|
|
130
|
+
W3 * r.dependencyWeight +
|
|
131
|
+
W4 * r.userPriority;
|
|
132
|
+
return { ...r, basePriority };
|
|
133
|
+
});
|
|
134
|
+
// --- Step 3: apply synergy / conflict adjustments ---
|
|
135
|
+
const synergyBonus = this.config.synergy_bonus / 2; // split the config bonus equally
|
|
136
|
+
const CONFLICT_PENALTY = 0.15;
|
|
137
|
+
const goalIdSet = new Set(rawList.map((r) => r.goalId));
|
|
138
|
+
// Build a lookup: goalId → index in withBase
|
|
139
|
+
const indexMap = new Map();
|
|
140
|
+
withBase.forEach((r, i) => indexMap.set(r.goalId, i));
|
|
141
|
+
// Adjust scores based on dependency edges between goals in the set
|
|
142
|
+
const adjustments = new Array(withBase.length).fill(0);
|
|
143
|
+
const graph = this.goalDependencyGraph.getGraph();
|
|
144
|
+
const seenPairs = new Set();
|
|
145
|
+
for (const edge of graph.edges) {
|
|
146
|
+
if (edge.status !== "active")
|
|
147
|
+
continue;
|
|
148
|
+
if (!goalIdSet.has(edge.from_goal_id) || !goalIdSet.has(edge.to_goal_id))
|
|
149
|
+
continue;
|
|
150
|
+
const pairKey = [edge.from_goal_id, edge.to_goal_id].sort().join("||");
|
|
151
|
+
if (edge.type === "synergy") {
|
|
152
|
+
if (!seenPairs.has(pairKey)) {
|
|
153
|
+
seenPairs.add(pairKey);
|
|
154
|
+
const idxA = indexMap.get(edge.from_goal_id);
|
|
155
|
+
const idxB = indexMap.get(edge.to_goal_id);
|
|
156
|
+
if (idxA !== undefined && adjustments[idxA] !== undefined)
|
|
157
|
+
adjustments[idxA] += synergyBonus;
|
|
158
|
+
if (idxB !== undefined && adjustments[idxB] !== undefined)
|
|
159
|
+
adjustments[idxB] += synergyBonus;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else if (edge.type === "conflict") {
|
|
163
|
+
if (!seenPairs.has(pairKey)) {
|
|
164
|
+
seenPairs.add(pairKey);
|
|
165
|
+
// Penalise the lower-priority goal
|
|
166
|
+
const idxA = indexMap.get(edge.from_goal_id);
|
|
167
|
+
const idxB = indexMap.get(edge.to_goal_id);
|
|
168
|
+
if (idxA !== undefined && idxB !== undefined) {
|
|
169
|
+
const scoreA = withBase[idxA]?.basePriority ?? 0;
|
|
170
|
+
const scoreB = withBase[idxB]?.basePriority ?? 0;
|
|
171
|
+
if (scoreA <= scoreB) {
|
|
172
|
+
if (adjustments[idxA] !== undefined)
|
|
173
|
+
adjustments[idxA] -= CONFLICT_PENALTY;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
if (adjustments[idxB] !== undefined)
|
|
177
|
+
adjustments[idxB] -= CONFLICT_PENALTY;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// --- Step 4: produce final factors ---
|
|
184
|
+
const result = withBase.map((r, i) => {
|
|
185
|
+
const computedPriority = clamp(r.basePriority + (adjustments[i] ?? 0), 0, 1);
|
|
186
|
+
return {
|
|
187
|
+
goal_id: r.goalId,
|
|
188
|
+
deadline_urgency: r.deadlineUrgency,
|
|
189
|
+
gap_severity: r.gapSeverity,
|
|
190
|
+
dependency_weight: r.dependencyWeight,
|
|
191
|
+
user_priority: r.userPriority,
|
|
192
|
+
computed_priority: computedPriority,
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
// Sort descending by computed_priority
|
|
196
|
+
result.sort((a, b) => b.computed_priority - a.computed_priority);
|
|
197
|
+
// Cache for rebalance
|
|
198
|
+
for (const f of result) {
|
|
199
|
+
this.lastPriorities.set(f.goal_id, f);
|
|
200
|
+
}
|
|
201
|
+
return result;
|
|
202
|
+
}
|
|
203
|
+
// ─── Resource Allocation ───
|
|
204
|
+
/**
|
|
205
|
+
* Allocate resource shares across goals based on their priority scores.
|
|
206
|
+
* Delegates to the standalone allocateResources function.
|
|
207
|
+
*/
|
|
208
|
+
allocateResources(priorities, strategy, momentumMap, depSchedule) {
|
|
209
|
+
return allocateResources(priorities, this.config, strategy, momentumMap, depSchedule);
|
|
210
|
+
}
|
|
211
|
+
// ─── Rebalancing ───
|
|
212
|
+
/**
|
|
213
|
+
* Recalculate priorities for all currently active goals and produce a new
|
|
214
|
+
* allocation plan.
|
|
215
|
+
*
|
|
216
|
+
* @param trigger — what caused this rebalance
|
|
217
|
+
* @param goalIds — explicit list of goal IDs to consider; if omitted, the
|
|
218
|
+
* IDs from the last calculateGoalPriorities call are used
|
|
219
|
+
*/
|
|
220
|
+
async rebalanceGoals(trigger, goalIds) {
|
|
221
|
+
const ids = goalIds ?? Array.from(this.lastPriorities.keys());
|
|
222
|
+
const priorities = await this.calculateGoalPriorities(ids);
|
|
223
|
+
const allocations = this.allocateResources(priorities);
|
|
224
|
+
return {
|
|
225
|
+
timestamp: new Date().toISOString(),
|
|
226
|
+
allocations,
|
|
227
|
+
triggered_by: trigger,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
// ─── Template Recommendation ───
|
|
231
|
+
/**
|
|
232
|
+
* Search the VectorIndex for strategy templates that match the given goal.
|
|
233
|
+
*
|
|
234
|
+
* Matching is based on:
|
|
235
|
+
* 1. Semantic similarity between the goal text and template hypothesis_pattern
|
|
236
|
+
* 2. domain_tags overlap (at least 1 tag in common with the goal's domain tags)
|
|
237
|
+
* 3. Final ranking: similarity × effectiveness_score (descending)
|
|
238
|
+
*
|
|
239
|
+
* The caller is responsible for having added StrategyTemplate objects to the
|
|
240
|
+
* VectorIndex with their `template_id` as the entry id and metadata shaped
|
|
241
|
+
* as StrategyTemplate fields.
|
|
242
|
+
*
|
|
243
|
+
* @param goalId — goal for which templates are requested
|
|
244
|
+
* @param vectorIndex — the index to search (typically the instance-level one,
|
|
245
|
+
* but callers may pass a different one for testing)
|
|
246
|
+
* @param limit — number of results to return (default 3)
|
|
247
|
+
*/
|
|
248
|
+
async getRecommendedTemplates(goalId, vectorIndex, limit = 3) {
|
|
249
|
+
const goal = await this.stateManager.loadGoal(goalId);
|
|
250
|
+
if (!goal)
|
|
251
|
+
return [];
|
|
252
|
+
// Build a query string from the goal
|
|
253
|
+
const queryText = [goal.title, goal.description, ...goal.constraints]
|
|
254
|
+
.filter(Boolean)
|
|
255
|
+
.join(" ");
|
|
256
|
+
if (!queryText.trim())
|
|
257
|
+
return [];
|
|
258
|
+
// Search index — retrieve more than `limit` so we can filter by domain_tags
|
|
259
|
+
const searchResults = await vectorIndex.search(queryText, limit * 5);
|
|
260
|
+
if (searchResults.length === 0)
|
|
261
|
+
return [];
|
|
262
|
+
// Derive goal domain tags from constraints (format "domain:tag") or title words
|
|
263
|
+
const goalDomainTags = this._extractDomainTags(goal);
|
|
264
|
+
// Filter and score
|
|
265
|
+
const scored = [];
|
|
266
|
+
for (const result of searchResults) {
|
|
267
|
+
const meta = result.metadata;
|
|
268
|
+
// Must have the required StrategyTemplate fields in metadata
|
|
269
|
+
if (typeof meta["template_id"] !== "string" ||
|
|
270
|
+
typeof meta["hypothesis_pattern"] !== "string" ||
|
|
271
|
+
!Array.isArray(meta["domain_tags"]) ||
|
|
272
|
+
typeof meta["effectiveness_score"] !== "number") {
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
const domainTags = meta["domain_tags"];
|
|
276
|
+
const effectivenessScore = meta["effectiveness_score"];
|
|
277
|
+
// Require at least 1 domain tag overlap — unless goal has no tags (then include all)
|
|
278
|
+
if (goalDomainTags.length > 0) {
|
|
279
|
+
const overlap = domainTags.filter((t) => goalDomainTags.includes(t)).length;
|
|
280
|
+
if (overlap < 1)
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
const template = {
|
|
284
|
+
template_id: meta["template_id"],
|
|
285
|
+
source_goal_id: typeof meta["source_goal_id"] === "string"
|
|
286
|
+
? meta["source_goal_id"]
|
|
287
|
+
: "",
|
|
288
|
+
source_strategy_id: typeof meta["source_strategy_id"] === "string"
|
|
289
|
+
? meta["source_strategy_id"]
|
|
290
|
+
: "",
|
|
291
|
+
hypothesis_pattern: meta["hypothesis_pattern"],
|
|
292
|
+
domain_tags: domainTags,
|
|
293
|
+
effectiveness_score: effectivenessScore,
|
|
294
|
+
applicable_dimensions: Array.isArray(meta["applicable_dimensions"])
|
|
295
|
+
? meta["applicable_dimensions"]
|
|
296
|
+
: [],
|
|
297
|
+
embedding_id: typeof meta["embedding_id"] === "string"
|
|
298
|
+
? meta["embedding_id"]
|
|
299
|
+
: null,
|
|
300
|
+
created_at: typeof meta["created_at"] === "string"
|
|
301
|
+
? meta["created_at"]
|
|
302
|
+
: new Date().toISOString(),
|
|
303
|
+
};
|
|
304
|
+
const finalScore = result.similarity * effectivenessScore;
|
|
305
|
+
scored.push({ template, finalScore });
|
|
306
|
+
}
|
|
307
|
+
// Sort by finalScore descending and return top `limit`
|
|
308
|
+
scored.sort((a, b) => b.finalScore - a.finalScore);
|
|
309
|
+
return scored.slice(0, limit).map((s) => s.template);
|
|
310
|
+
}
|
|
311
|
+
// ─── Momentum ───
|
|
312
|
+
/**
|
|
313
|
+
* Calculate momentum for a single goal based on recent state snapshots.
|
|
314
|
+
* Delegates to the standalone calculateMomentum function.
|
|
315
|
+
*/
|
|
316
|
+
calculateMomentum(goalId, snapshots) {
|
|
317
|
+
return calculateMomentum(goalId, snapshots);
|
|
318
|
+
}
|
|
319
|
+
// ─── Dependency Scheduling ───
|
|
320
|
+
/**
|
|
321
|
+
* Build a phased dependency schedule for the given goals.
|
|
322
|
+
* Delegates to the standalone buildDependencySchedule function.
|
|
323
|
+
*/
|
|
324
|
+
buildDependencySchedule(goalIds, graph) {
|
|
325
|
+
return buildDependencySchedule(goalIds, graph);
|
|
326
|
+
}
|
|
327
|
+
// ─── Stall Rebalancing ───
|
|
328
|
+
/**
|
|
329
|
+
* Detect stalled goals and redistribute their resources to progressing goals.
|
|
330
|
+
* Delegates to the standalone rebalanceOnStall function.
|
|
331
|
+
*/
|
|
332
|
+
rebalanceOnStall(currentAllocations, momentumMap) {
|
|
333
|
+
return rebalanceOnStall(currentAllocations, momentumMap);
|
|
334
|
+
}
|
|
335
|
+
// ─── Private helpers ───
|
|
336
|
+
/**
|
|
337
|
+
* Produce a rough [0,1] severity for a single goal dimension.
|
|
338
|
+
*
|
|
339
|
+
* For numeric thresholds we compute gap / scale.
|
|
340
|
+
* For binary thresholds (present/match) we return 0 or 1.
|
|
341
|
+
* Returns 0 when the dimension is already satisfied.
|
|
342
|
+
*/
|
|
343
|
+
_estimateDimensionGap(dim) {
|
|
344
|
+
const { current_value, threshold } = dim;
|
|
345
|
+
if (current_value === null)
|
|
346
|
+
return 1;
|
|
347
|
+
switch (threshold.type) {
|
|
348
|
+
case "min": {
|
|
349
|
+
if (typeof current_value !== "number")
|
|
350
|
+
return 0;
|
|
351
|
+
const gap = threshold.value - current_value;
|
|
352
|
+
if (gap <= 0)
|
|
353
|
+
return 0;
|
|
354
|
+
return threshold.value !== 0 ? clamp(gap / threshold.value, 0, 1) : 1;
|
|
355
|
+
}
|
|
356
|
+
case "max": {
|
|
357
|
+
if (typeof current_value !== "number")
|
|
358
|
+
return 0;
|
|
359
|
+
const gap = current_value - threshold.value;
|
|
360
|
+
if (gap <= 0)
|
|
361
|
+
return 0;
|
|
362
|
+
return threshold.value !== 0 ? clamp(gap / threshold.value, 0, 1) : 1;
|
|
363
|
+
}
|
|
364
|
+
case "range": {
|
|
365
|
+
if (typeof current_value !== "number")
|
|
366
|
+
return 0;
|
|
367
|
+
const span = threshold.high - threshold.low;
|
|
368
|
+
if (current_value < threshold.low) {
|
|
369
|
+
const gap = threshold.low - current_value;
|
|
370
|
+
return span > 0 ? clamp(gap / span, 0, 1) : 1;
|
|
371
|
+
}
|
|
372
|
+
if (current_value > threshold.high) {
|
|
373
|
+
const gap = current_value - threshold.high;
|
|
374
|
+
return span > 0 ? clamp(gap / span, 0, 1) : 1;
|
|
375
|
+
}
|
|
376
|
+
return 0;
|
|
377
|
+
}
|
|
378
|
+
case "present": {
|
|
379
|
+
return current_value ? 0 : 1;
|
|
380
|
+
}
|
|
381
|
+
case "match": {
|
|
382
|
+
return current_value === threshold.value ? 0 : 1;
|
|
383
|
+
}
|
|
384
|
+
default:
|
|
385
|
+
return 0;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Extract domain tags from a goal's constraints and title.
|
|
390
|
+
* Recognises constraints with format "domain:tagname" or "tag:tagname".
|
|
391
|
+
*/
|
|
392
|
+
_extractDomainTags(goal) {
|
|
393
|
+
const tags = [];
|
|
394
|
+
for (const constraint of goal.constraints) {
|
|
395
|
+
const match = constraint.match(/^(?:domain|tag)[:\s]+(.+)$/i);
|
|
396
|
+
if (match) {
|
|
397
|
+
tags.push(match[1]?.trim().toLowerCase() ?? "");
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return tags;
|
|
401
|
+
}
|
|
402
|
+
// ─── Allocation Map ───
|
|
403
|
+
/**
|
|
404
|
+
* Get a goal_id → resource_share map for the given goal IDs.
|
|
405
|
+
*
|
|
406
|
+
* Recomputes allocations based on current goal states.
|
|
407
|
+
* Returns a Map suitable for use by PortfolioManager.selectNextStrategyAcrossGoals().
|
|
408
|
+
*/
|
|
409
|
+
async getAllocationMap(goalIds) {
|
|
410
|
+
const priorities = await this.calculateGoalPriorities(goalIds);
|
|
411
|
+
const allocations = this.allocateResources(priorities);
|
|
412
|
+
const map = new Map();
|
|
413
|
+
for (const alloc of allocations) {
|
|
414
|
+
map.set(alloc.goal_id, alloc.resource_share);
|
|
415
|
+
}
|
|
416
|
+
// Fill in any goal IDs that were not computed (e.g. loadGoal returned null)
|
|
417
|
+
const equalShare = goalIds.length > 0 ? 1.0 / goalIds.length : 0;
|
|
418
|
+
for (const goalId of goalIds) {
|
|
419
|
+
if (!map.has(goalId)) {
|
|
420
|
+
map.set(goalId, equalShare);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
return map;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
// ─── Re-exports for backward compatibility ───
|
|
427
|
+
export { buildDependencySchedule } from "./portfolio-scheduling.js";
|
|
428
|
+
export { computeCriticalPath } from "./portfolio-scheduling.js";
|
|
429
|
+
export { allocateResources, rebalanceOnStall } from "./portfolio-allocation.js";
|
|
430
|
+
export { calculateMomentum } from "./portfolio-momentum.js";
|
|
431
|
+
//# sourceMappingURL=cross-goal-portfolio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-goal-portfolio.js","sourceRoot":"","sources":["../../src/strategy/cross-goal-portfolio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { CrossGoalAllocation, GoalPriorityFactors, MomentumInfo, DependencySchedule, AllocationStrategy, RebalanceAction } from "../types/cross-portfolio.js";
|
|
2
|
+
export interface AllocationConfig {
|
|
3
|
+
max_concurrent_goals: number;
|
|
4
|
+
min_goal_share: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Allocate resource shares across goals based on their priority scores.
|
|
8
|
+
*
|
|
9
|
+
* Rules:
|
|
10
|
+
* 1. If goals > max_concurrent_goals, lowest priority goals get allocation=0
|
|
11
|
+
* and are labelled "waiting".
|
|
12
|
+
* 2. Active goals (up to max_concurrent_goals) share 1.0 proportionally to
|
|
13
|
+
* computed_priority, with a floor of min_goal_share.
|
|
14
|
+
* 3. Sum of active allocations = 1.0.
|
|
15
|
+
*
|
|
16
|
+
* @param priorities — output from calculateGoalPriorities
|
|
17
|
+
* @param config — allocation configuration (max_concurrent_goals, min_goal_share)
|
|
18
|
+
* @param strategy — optional AllocationStrategy (default: 'priority')
|
|
19
|
+
* @param momentumMap — goalId → MomentumInfo, required when strategy.type === 'momentum'
|
|
20
|
+
* @param depSchedule — DependencySchedule, required when strategy.type === 'dependency_aware'
|
|
21
|
+
* @returns CrossGoalAllocation[] in the same order as priorities
|
|
22
|
+
*/
|
|
23
|
+
export declare function allocateResources(priorities: GoalPriorityFactors[], config: AllocationConfig, strategy?: AllocationStrategy, momentumMap?: Map<string, MomentumInfo>, depSchedule?: DependencySchedule): CrossGoalAllocation[];
|
|
24
|
+
/**
|
|
25
|
+
* Detect stalled goals and redistribute their resources to progressing goals.
|
|
26
|
+
*
|
|
27
|
+
* A goal is considered stalled if its MomentumInfo.trend === 'stalled'.
|
|
28
|
+
* Resources from stalled goals are redistributed proportionally to
|
|
29
|
+
* non-stalled goals based on their velocity.
|
|
30
|
+
*
|
|
31
|
+
* @param currentAllocations — current CrossGoalAllocation array
|
|
32
|
+
* @param momentumMap — goalId → MomentumInfo
|
|
33
|
+
* @returns array of RebalanceActions taken (empty if no stalled goals)
|
|
34
|
+
*/
|
|
35
|
+
export declare function rebalanceOnStall(currentAllocations: CrossGoalAllocation[], momentumMap: Map<string, MomentumInfo>): RebalanceAction[];
|
|
36
|
+
//# sourceMappingURL=portfolio-allocation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-allocation.d.ts","sourceRoot":"","sources":["../../src/strategy/portfolio-allocation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAQrC,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,mBAAmB,EAAE,EACjC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,WAAW,CAAC,EAAE,kBAAkB,GAC/B,mBAAmB,EAAE,CAmIvB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,mBAAmB,EAAE,EACzC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,eAAe,EAAE,CA6DnB"}
|