pulseed 0.1.3 → 0.1.5
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/dist/adapters/{a2a-adapter.d.ts → agents/a2a-adapter.d.ts} +1 -1
- package/dist/adapters/agents/a2a-adapter.d.ts.map +1 -0
- package/dist/adapters/{a2a-adapter.js → agents/a2a-adapter.js} +1 -1
- package/dist/adapters/agents/a2a-adapter.js.map +1 -0
- package/dist/adapters/{a2a-client.d.ts → agents/a2a-client.d.ts} +1 -1
- package/dist/adapters/agents/a2a-client.d.ts.map +1 -0
- package/dist/adapters/{a2a-client.js → agents/a2a-client.js} +1 -1
- package/dist/adapters/agents/a2a-client.js.map +1 -0
- package/dist/adapters/{agent-profile-loader.d.ts → agents/agent-profile-loader.d.ts} +1 -1
- package/dist/adapters/agents/agent-profile-loader.d.ts.map +1 -0
- package/dist/adapters/{agent-profile-loader.js → agents/agent-profile-loader.js} +1 -1
- package/dist/adapters/agents/agent-profile-loader.js.map +1 -0
- package/dist/adapters/{browser-use-cli.d.ts → agents/browser-use-cli.d.ts} +1 -1
- package/dist/adapters/agents/browser-use-cli.d.ts.map +1 -0
- package/dist/adapters/{browser-use-cli.js → agents/browser-use-cli.js} +6 -2
- package/dist/adapters/agents/browser-use-cli.js.map +1 -0
- package/dist/adapters/{claude-api.d.ts → agents/claude-api.d.ts} +2 -2
- package/dist/adapters/agents/claude-api.d.ts.map +1 -0
- package/dist/adapters/{claude-api.js → agents/claude-api.js} +2 -1
- package/dist/adapters/agents/claude-api.js.map +1 -0
- package/dist/adapters/{claude-code-cli.d.ts → agents/claude-code-cli.d.ts} +1 -1
- package/dist/adapters/agents/claude-code-cli.d.ts.map +1 -0
- package/dist/adapters/{claude-code-cli.js → agents/claude-code-cli.js} +6 -2
- package/dist/adapters/agents/claude-code-cli.js.map +1 -0
- package/dist/adapters/{openai-codex.d.ts → agents/openai-codex.d.ts} +2 -2
- package/dist/adapters/agents/openai-codex.d.ts.map +1 -0
- package/dist/adapters/{openai-codex.js → agents/openai-codex.js} +6 -2
- package/dist/adapters/agents/openai-codex.js.map +1 -0
- package/dist/adapters/{openclaw-acp.d.ts → agents/openclaw-acp.d.ts} +1 -1
- package/dist/adapters/agents/openclaw-acp.d.ts.map +1 -0
- package/dist/adapters/agents/openclaw-acp.js.map +1 -0
- package/dist/adapters/{file-existence-datasource.d.ts → datasources/file-existence-datasource.d.ts} +2 -2
- package/dist/adapters/datasources/file-existence-datasource.d.ts.map +1 -0
- package/dist/adapters/datasources/file-existence-datasource.js.map +1 -0
- package/dist/adapters/{github-issue-datasource.d.ts → datasources/github-issue-datasource.d.ts} +2 -2
- package/dist/adapters/datasources/github-issue-datasource.d.ts.map +1 -0
- package/dist/adapters/datasources/github-issue-datasource.js.map +1 -0
- package/dist/adapters/{mcp-datasource.d.ts → datasources/mcp-datasource.d.ts} +3 -3
- package/dist/adapters/datasources/mcp-datasource.d.ts.map +1 -0
- package/dist/adapters/datasources/mcp-datasource.js.map +1 -0
- package/dist/adapters/{openclaw-datasource.d.ts → datasources/openclaw-datasource.d.ts} +2 -2
- package/dist/adapters/datasources/openclaw-datasource.d.ts.map +1 -0
- package/dist/adapters/datasources/openclaw-datasource.js.map +1 -0
- package/dist/adapters/{shell-datasource.d.ts → datasources/shell-datasource.d.ts} +3 -3
- package/dist/adapters/datasources/shell-datasource.d.ts.map +1 -0
- package/dist/adapters/datasources/shell-datasource.js.map +1 -0
- package/dist/adapters/github-issue.js +1 -1
- package/dist/adapters/github-issue.js.map +1 -1
- package/dist/adapters/mcp-client-manager.d.ts +1 -1
- package/dist/adapters/mcp-client-manager.d.ts.map +1 -1
- package/dist/adapters/mcp-client-manager.js +1 -1
- package/dist/adapters/mcp-client-manager.js.map +1 -1
- package/dist/chat/chat-history.d.ts +80 -0
- package/dist/chat/chat-history.d.ts.map +1 -0
- package/dist/chat/chat-history.js +70 -0
- package/dist/chat/chat-history.js.map +1 -0
- package/dist/chat/chat-runner.d.ts +79 -0
- package/dist/chat/chat-runner.d.ts.map +1 -0
- package/dist/chat/chat-runner.js +279 -0
- package/dist/chat/chat-runner.js.map +1 -0
- package/dist/chat/chat-verifier.d.ts +13 -0
- package/dist/chat/chat-verifier.d.ts.map +1 -0
- package/dist/chat/chat-verifier.js +35 -0
- package/dist/chat/chat-verifier.js.map +1 -0
- package/dist/chat/escalation.d.ts +30 -0
- package/dist/chat/escalation.d.ts.map +1 -0
- package/dist/chat/escalation.js +53 -0
- package/dist/chat/escalation.js.map +1 -0
- package/dist/chat/grounding.d.ts +8 -0
- package/dist/chat/grounding.d.ts.map +1 -0
- package/dist/chat/grounding.js +104 -0
- package/dist/chat/grounding.js.map +1 -0
- package/dist/chat/mutation-tool-defs.d.ts +19 -0
- package/dist/chat/mutation-tool-defs.d.ts.map +1 -0
- package/dist/chat/mutation-tool-defs.js +154 -0
- package/dist/chat/mutation-tool-defs.js.map +1 -0
- package/dist/chat/self-knowledge-mutation-tools.d.ts +5 -0
- package/dist/chat/self-knowledge-mutation-tools.d.ts.map +1 -0
- package/dist/chat/self-knowledge-mutation-tools.js +249 -0
- package/dist/chat/self-knowledge-mutation-tools.js.map +1 -0
- package/dist/chat/self-knowledge-tools.d.ts +22 -0
- package/dist/chat/self-knowledge-tools.d.ts.map +1 -0
- package/dist/chat/self-knowledge-tools.js +261 -0
- package/dist/chat/self-knowledge-tools.js.map +1 -0
- package/dist/cli/cli-command-registry 2.d.ts +16 -0
- package/dist/cli/cli-command-registry 2.d.ts.map +1 -0
- package/dist/cli/cli-command-registry 2.js +408 -0
- package/dist/cli/cli-command-registry 2.js.map +1 -0
- package/dist/cli/cli-command-registry.d.ts +16 -0
- package/dist/cli/cli-command-registry.d.ts.map +1 -0
- package/dist/cli/cli-command-registry.js +408 -0
- package/dist/cli/cli-command-registry.js.map +1 -0
- package/dist/cli/cli-runner.d.ts.map +1 -0
- package/dist/cli/cli-runner.js +122 -0
- package/dist/cli/cli-runner.js.map +1 -0
- package/dist/cli/commands/chat.d.ts +3 -0
- package/dist/cli/commands/chat.d.ts.map +1 -0
- package/dist/cli/commands/chat.js +148 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/config.d.ts +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +1 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/daemon.d.ts +1 -1
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +97 -14
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +19 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +203 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/goal-dispatch.d.ts +1 -1
- package/dist/cli/commands/goal-dispatch.d.ts.map +1 -1
- package/dist/cli/commands/goal-raw.d.ts +1 -1
- package/dist/cli/commands/goal-raw.d.ts.map +1 -1
- package/dist/cli/commands/goal-read.d.ts +2 -2
- package/dist/cli/commands/goal-read.d.ts.map +1 -1
- package/dist/cli/commands/goal-read.js +1 -1
- package/dist/cli/commands/goal-read.js.map +1 -1
- package/dist/cli/commands/goal-utils.d.ts +1 -1
- package/dist/cli/commands/goal-utils.d.ts.map +1 -1
- package/dist/cli/commands/goal-utils.js +1 -0
- package/dist/cli/commands/goal-utils.js.map +1 -1
- package/dist/cli/commands/goal-write.d.ts +1 -1
- package/dist/cli/commands/goal-write.d.ts.map +1 -1
- package/dist/cli/commands/install.d.ts +16 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +153 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/knowledge.d.ts +1 -1
- package/dist/cli/commands/knowledge.d.ts.map +1 -1
- package/dist/cli/commands/logs.d.ts +2 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +201 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/notify.d.ts +2 -0
- package/dist/cli/commands/notify.d.ts.map +1 -0
- package/dist/cli/commands/notify.js +277 -0
- package/dist/cli/commands/notify.js.map +1 -0
- package/dist/cli/commands/report.d.ts +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +1 -1
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/run.d.ts +3 -3
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/suggest.d.ts +1 -1
- package/dist/cli/commands/suggest.d.ts.map +1 -1
- package/dist/cli/commands/suggest.js +1 -1
- package/dist/cli/commands/suggest.js.map +1 -1
- package/dist/cli/commands/task-read.d.ts +1 -1
- package/dist/cli/commands/task-read.d.ts.map +1 -1
- package/dist/cli/commands/telegram.d.ts +2 -0
- package/dist/cli/commands/telegram.d.ts.map +1 -0
- package/dist/cli/commands/telegram.js +155 -0
- package/dist/cli/commands/telegram.js.map +1 -0
- package/dist/cli/setup.d.ts +5 -5
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +21 -11
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/utils/loop-runner.d.ts +1 -1
- package/dist/cli/utils/loop-runner.d.ts.map +1 -1
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +11 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/drive/drive-system.d.ts +1 -1
- package/dist/drive/drive-system.d.ts.map +1 -1
- package/dist/drive/drive-system.js +11 -2
- package/dist/drive/drive-system.js.map +1 -1
- package/dist/drive/satisficing-judge.d.ts +1 -1
- package/dist/drive/satisficing-judge.d.ts.map +1 -1
- package/dist/drive/satisficing-propagation.d.ts +1 -1
- package/dist/drive/satisficing-propagation.d.ts.map +1 -1
- package/dist/drive/stall-detector.d.ts +20 -1
- package/dist/drive/stall-detector.d.ts.map +1 -1
- package/dist/drive/stall-detector.js +75 -0
- package/dist/drive/stall-detector.js.map +1 -1
- package/dist/execution/adapter-layer.d.ts +2 -0
- package/dist/execution/adapter-layer.d.ts.map +1 -1
- package/dist/execution/adapter-layer.js.map +1 -1
- package/dist/execution/checkpoint-manager.d.ts +1 -1
- package/dist/execution/checkpoint-manager.d.ts.map +1 -1
- package/dist/execution/{context-budget.d.ts → context/context-budget.d.ts} +1 -1
- package/dist/execution/context/context-budget.d.ts.map +1 -0
- package/dist/execution/context/context-budget.js.map +1 -0
- package/dist/execution/{context-builder.d.ts → context/context-builder.d.ts} +3 -3
- package/dist/execution/context/context-builder.d.ts.map +1 -0
- package/dist/execution/{context-builder.js → context/context-builder.js} +1 -1
- package/dist/execution/context/context-builder.js.map +1 -0
- package/dist/execution/{dimension-selector.d.ts → context/dimension-selector.d.ts} +3 -3
- package/dist/execution/context/dimension-selector.d.ts.map +1 -0
- package/dist/execution/{dimension-selector.js → context/dimension-selector.js} +1 -1
- package/dist/execution/context/dimension-selector.js.map +1 -0
- package/dist/execution/context/issue-context-fetcher.d.ts +19 -0
- package/dist/execution/context/issue-context-fetcher.d.ts.map +1 -0
- package/dist/execution/context/issue-context-fetcher.js +73 -0
- package/dist/execution/context/issue-context-fetcher.js.map +1 -0
- package/dist/execution/parallel-executor.js +1 -1
- package/dist/execution/parallel-executor.js.map +1 -1
- package/dist/execution/pipeline-executor.d.ts +1 -1
- package/dist/execution/pipeline-executor.d.ts.map +1 -1
- package/dist/execution/session-manager.d.ts +2 -2
- package/dist/execution/session-manager.d.ts.map +1 -1
- package/dist/execution/session-manager.js +4 -1
- package/dist/execution/session-manager.js.map +1 -1
- package/dist/execution/{task-approval-check.d.ts → task/task-approval-check.d.ts} +2 -2
- package/dist/execution/task/task-approval-check.d.ts.map +1 -0
- package/dist/execution/task/task-approval-check.js.map +1 -0
- package/dist/execution/{task-approval.d.ts → task/task-approval.d.ts} +3 -3
- package/dist/execution/task/task-approval.d.ts.map +1 -0
- package/dist/execution/{task-approval.js → task/task-approval.js} +1 -1
- package/dist/execution/task/task-approval.js.map +1 -0
- package/dist/execution/{task-execution-types.d.ts → task/task-execution-types.d.ts} +2 -2
- package/dist/execution/task/task-execution-types.d.ts.map +1 -0
- package/dist/execution/{task-execution-types.js → task/task-execution-types.js} +1 -1
- package/dist/execution/task/task-execution-types.js.map +1 -0
- package/dist/execution/{task-executor.d.ts → task/task-executor.d.ts} +6 -6
- package/dist/execution/task/task-executor.d.ts.map +1 -0
- package/dist/execution/{task-executor.js → task/task-executor.js} +1 -1
- package/dist/execution/task/task-executor.js.map +1 -0
- package/dist/execution/{task-generation.d.ts → task/task-generation.d.ts} +8 -8
- package/dist/execution/task/task-generation.d.ts.map +1 -0
- package/dist/execution/{task-generation.js → task/task-generation.js} +12 -4
- package/dist/execution/task/task-generation.js.map +1 -0
- package/dist/execution/task/task-health-check.d.ts.map +1 -0
- package/dist/execution/task/task-health-check.js.map +1 -0
- package/dist/execution/{task-lifecycle.d.ts → task/task-lifecycle.d.ts} +21 -21
- package/dist/execution/task/task-lifecycle.d.ts.map +1 -0
- package/dist/execution/{task-lifecycle.js → task/task-lifecycle.js} +7 -4
- package/dist/execution/task/task-lifecycle.js.map +1 -0
- package/dist/execution/{task-pipeline-cycle.d.ts → task/task-pipeline-cycle.d.ts} +15 -15
- package/dist/execution/task/task-pipeline-cycle.d.ts.map +1 -0
- package/dist/execution/{task-pipeline-cycle.js → task/task-pipeline-cycle.js} +3 -3
- package/dist/execution/task/task-pipeline-cycle.js.map +1 -0
- package/dist/execution/{task-prompt-builder.d.ts → task/task-prompt-builder.d.ts} +1 -1
- package/dist/execution/task/task-prompt-builder.d.ts.map +1 -0
- package/dist/execution/{task-prompt-builder.js → task/task-prompt-builder.js} +30 -1
- package/dist/execution/task/task-prompt-builder.js.map +1 -0
- package/dist/execution/task/task-verifier-llm 2.d.ts +24 -0
- package/dist/execution/task/task-verifier-llm 2.d.ts.map +1 -0
- package/dist/execution/task/task-verifier-llm 2.js +160 -0
- package/dist/execution/task/task-verifier-llm 2.js.map +1 -0
- package/dist/execution/task/task-verifier-llm.d.ts +24 -0
- package/dist/execution/task/task-verifier-llm.d.ts.map +1 -0
- package/dist/execution/task/task-verifier-llm.js +160 -0
- package/dist/execution/task/task-verifier-llm.js.map +1 -0
- package/dist/execution/task/task-verifier-rules 2.d.ts +31 -0
- package/dist/execution/task/task-verifier-rules 2.d.ts.map +1 -0
- package/dist/execution/task/task-verifier-rules 2.js +207 -0
- package/dist/execution/task/task-verifier-rules 2.js.map +1 -0
- package/dist/execution/task/task-verifier-rules.d.ts +31 -0
- package/dist/execution/task/task-verifier-rules.d.ts.map +1 -0
- package/dist/execution/task/task-verifier-rules.js +207 -0
- package/dist/execution/task/task-verifier-rules.js.map +1 -0
- package/dist/execution/task/task-verifier-types 2.d.ts +78 -0
- package/dist/execution/task/task-verifier-types 2.d.ts.map +1 -0
- package/dist/execution/task/task-verifier-types 2.js +9 -0
- package/dist/execution/task/task-verifier-types 2.js.map +1 -0
- package/dist/execution/task/task-verifier-types.d.ts +78 -0
- package/dist/execution/task/task-verifier-types.d.ts.map +1 -0
- package/dist/execution/task/task-verifier-types.js +9 -0
- package/dist/execution/task/task-verifier-types.js.map +1 -0
- package/dist/execution/task/task-verifier.d.ts +48 -0
- package/dist/execution/task/task-verifier.d.ts.map +1 -0
- package/dist/execution/{task-verifier.js → task/task-verifier.js} +18 -398
- package/dist/execution/task/task-verifier.js.map +1 -0
- package/dist/goal/goal-decomposer.d.ts +1 -1
- package/dist/goal/goal-decomposer.d.ts.map +1 -1
- package/dist/goal/goal-dependency-graph.d.ts +1 -1
- package/dist/goal/goal-dependency-graph.d.ts.map +1 -1
- package/dist/goal/goal-negotiator.d.ts +1 -1
- package/dist/goal/goal-negotiator.d.ts.map +1 -1
- package/dist/goal/goal-refiner.d.ts +1 -1
- package/dist/goal/goal-refiner.d.ts.map +1 -1
- package/dist/goal/goal-refiner.js +1 -1
- package/dist/goal/goal-refiner.js.map +1 -1
- package/dist/goal/goal-suggest.d.ts +8 -8
- package/dist/goal/goal-tree-manager.d.ts +1 -1
- package/dist/goal/goal-tree-manager.d.ts.map +1 -1
- package/dist/goal/goal-tree-manager.js +6 -0
- package/dist/goal/goal-tree-manager.js.map +1 -1
- package/dist/goal/goal-tree-pruner.d.ts +1 -1
- package/dist/goal/goal-tree-pruner.d.ts.map +1 -1
- package/dist/goal/refiner-prompts.d.ts.map +1 -1
- package/dist/goal/refiner-prompts.js +5 -1
- package/dist/goal/refiner-prompts.js.map +1 -1
- package/dist/goal/state-aggregator.d.ts +1 -1
- package/dist/goal/state-aggregator.d.ts.map +1 -1
- package/dist/goal/tree-loop-orchestrator.d.ts +4 -2
- package/dist/goal/tree-loop-orchestrator.d.ts.map +1 -1
- package/dist/goal/tree-loop-orchestrator.js +4 -4
- package/dist/goal/tree-loop-orchestrator.js.map +1 -1
- package/dist/index 2.js +77 -0
- package/dist/index.d 2.ts +97 -0
- package/dist/index.d.ts +20 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/knowledge/knowledge-decisions.d.ts +1 -1
- package/dist/knowledge/knowledge-decisions.d.ts.map +1 -1
- package/dist/knowledge/knowledge-manager-query 2.d.ts +87 -0
- package/dist/knowledge/knowledge-manager-query 2.d.ts.map +1 -0
- package/dist/knowledge/knowledge-manager-query 2.js +287 -0
- package/dist/knowledge/knowledge-manager-query 2.js.map +1 -0
- package/dist/knowledge/knowledge-manager-query.d.ts +87 -0
- package/dist/knowledge/knowledge-manager-query.d.ts.map +1 -0
- package/dist/knowledge/knowledge-manager-query.js +287 -0
- package/dist/knowledge/knowledge-manager-query.js.map +1 -0
- package/dist/knowledge/knowledge-manager.d.ts +2 -19
- package/dist/knowledge/knowledge-manager.d.ts.map +1 -1
- package/dist/knowledge/knowledge-manager.js +7 -269
- package/dist/knowledge/knowledge-manager.js.map +1 -1
- package/dist/knowledge/knowledge-revalidation.d.ts +1 -1
- package/dist/knowledge/knowledge-revalidation.d.ts.map +1 -1
- package/dist/knowledge/knowledge-search.d.ts +1 -1
- package/dist/knowledge/knowledge-search.d.ts.map +1 -1
- package/dist/knowledge/{learning-cross-goal.d.ts → learning/learning-cross-goal.d.ts} +2 -2
- package/dist/knowledge/learning/learning-cross-goal.d.ts.map +1 -0
- package/dist/knowledge/{learning-cross-goal.js → learning/learning-cross-goal.js} +1 -1
- package/dist/knowledge/learning/learning-cross-goal.js.map +1 -0
- package/dist/knowledge/{learning-exports.d.ts → learning/learning-exports.d.ts} +1 -1
- package/dist/knowledge/learning/learning-exports.d.ts.map +1 -0
- package/dist/knowledge/learning/learning-exports.js.map +1 -0
- package/dist/knowledge/{learning-feedback.d.ts → learning/learning-feedback.d.ts} +3 -3
- package/dist/knowledge/learning/learning-feedback.d.ts.map +1 -0
- package/dist/knowledge/{learning-feedback.js → learning/learning-feedback.js} +1 -1
- package/dist/knowledge/learning/learning-feedback.js.map +1 -0
- package/dist/knowledge/{learning-pipeline-prompts.d.ts → learning/learning-pipeline-prompts.d.ts} +7 -7
- package/dist/knowledge/learning/learning-pipeline-prompts.d.ts.map +1 -0
- package/dist/knowledge/{learning-pipeline-prompts.js → learning/learning-pipeline-prompts.js} +1 -1
- package/dist/knowledge/learning/learning-pipeline-prompts.js.map +1 -0
- package/dist/knowledge/{learning-pipeline.d.ts → learning/learning-pipeline.d.ts} +6 -6
- package/dist/knowledge/learning/learning-pipeline.d.ts.map +1 -0
- package/dist/knowledge/{learning-pipeline.js → learning/learning-pipeline.js} +2 -2
- package/dist/knowledge/learning/learning-pipeline.js.map +1 -0
- package/dist/knowledge/{memory-compression.d.ts → memory/memory-compression.d.ts} +5 -5
- package/dist/knowledge/memory/memory-compression.d.ts.map +1 -0
- package/dist/knowledge/{memory-compression.js → memory/memory-compression.js} +1 -1
- package/dist/knowledge/memory/memory-compression.js.map +1 -0
- package/dist/knowledge/{memory-distill.d.ts → memory/memory-distill.d.ts} +3 -3
- package/dist/knowledge/memory/memory-distill.d.ts.map +1 -0
- package/dist/knowledge/memory/memory-distill.js.map +1 -0
- package/dist/knowledge/{memory-exports.d.ts → memory/memory-exports.d.ts} +1 -1
- package/dist/knowledge/memory/memory-exports.d.ts.map +1 -0
- package/dist/knowledge/memory/memory-exports.js.map +1 -0
- package/dist/knowledge/{memory-index.d.ts → memory/memory-index.d.ts} +1 -1
- package/dist/knowledge/memory/memory-index.d.ts.map +1 -0
- package/dist/knowledge/{memory-index.js → memory/memory-index.js} +1 -1
- package/dist/knowledge/memory/memory-index.js.map +1 -0
- package/dist/knowledge/{memory-lifecycle.d.ts → memory/memory-lifecycle.d.ts} +7 -7
- package/dist/knowledge/memory/memory-lifecycle.d.ts.map +1 -0
- package/dist/knowledge/{memory-lifecycle.js → memory/memory-lifecycle.js} +2 -2
- package/dist/knowledge/memory/memory-lifecycle.js.map +1 -0
- package/dist/knowledge/{memory-persistence.d.ts → memory/memory-persistence.d.ts} +1 -1
- package/dist/knowledge/memory/memory-persistence.d.ts.map +1 -0
- package/dist/knowledge/memory/memory-persistence.js.map +1 -0
- package/dist/knowledge/{memory-query.d.ts → memory/memory-query.d.ts} +1 -1
- package/dist/knowledge/memory/memory-query.d.ts.map +1 -0
- package/dist/knowledge/{memory-query.js → memory/memory-query.js} +1 -1
- package/dist/knowledge/memory/memory-query.js.map +1 -0
- package/dist/knowledge/{memory-selection.d.ts → memory/memory-selection.d.ts} +3 -3
- package/dist/knowledge/memory/memory-selection.d.ts.map +1 -0
- package/dist/knowledge/{memory-selection.js → memory/memory-selection.js} +3 -3
- package/dist/knowledge/memory/memory-selection.js.map +1 -0
- package/dist/knowledge/{memory-stats.d.ts → memory/memory-stats.d.ts} +1 -1
- package/dist/knowledge/memory/memory-stats.d.ts.map +1 -0
- package/dist/knowledge/{memory-stats.js → memory/memory-stats.js} +1 -1
- package/dist/knowledge/memory/memory-stats.js.map +1 -0
- package/dist/knowledge/{memory-tier.d.ts → memory/memory-tier.d.ts} +1 -1
- package/dist/knowledge/memory/memory-tier.d.ts.map +1 -0
- package/dist/knowledge/memory/memory-tier.js.map +1 -0
- package/dist/knowledge/{knowledge-transfer-apply.d.ts → transfer/knowledge-transfer-apply.d.ts} +6 -6
- package/dist/knowledge/transfer/knowledge-transfer-apply.d.ts.map +1 -0
- package/dist/knowledge/{knowledge-transfer-apply.js → transfer/knowledge-transfer-apply.js} +2 -2
- package/dist/knowledge/transfer/knowledge-transfer-apply.js.map +1 -0
- package/dist/knowledge/{knowledge-transfer-detect.d.ts → transfer/knowledge-transfer-detect.d.ts} +5 -5
- package/dist/knowledge/transfer/knowledge-transfer-detect.d.ts.map +1 -0
- package/dist/knowledge/{knowledge-transfer-detect.js → transfer/knowledge-transfer-detect.js} +1 -1
- package/dist/knowledge/transfer/knowledge-transfer-detect.js.map +1 -0
- package/dist/knowledge/{knowledge-transfer-evaluate.d.ts → transfer/knowledge-transfer-evaluate.d.ts} +2 -2
- package/dist/knowledge/transfer/knowledge-transfer-evaluate.d.ts.map +1 -0
- package/dist/knowledge/{knowledge-transfer-evaluate.js → transfer/knowledge-transfer-evaluate.js} +1 -1
- package/dist/knowledge/transfer/knowledge-transfer-evaluate.js.map +1 -0
- package/dist/knowledge/{knowledge-transfer-meta.d.ts → transfer/knowledge-transfer-meta.d.ts} +6 -6
- package/dist/knowledge/transfer/knowledge-transfer-meta.d.ts.map +1 -0
- package/dist/knowledge/{knowledge-transfer-meta.js → transfer/knowledge-transfer-meta.js} +2 -2
- package/dist/knowledge/transfer/knowledge-transfer-meta.js.map +1 -0
- package/dist/knowledge/{knowledge-transfer-prompts.d.ts → transfer/knowledge-transfer-prompts.d.ts} +1 -1
- package/dist/knowledge/transfer/knowledge-transfer-prompts.d.ts.map +1 -0
- package/dist/knowledge/transfer/knowledge-transfer-prompts.js.map +1 -0
- package/dist/knowledge/{knowledge-transfer-types.d.ts → transfer/knowledge-transfer-types.d.ts} +3 -3
- package/dist/knowledge/transfer/knowledge-transfer-types.d.ts.map +1 -0
- package/dist/knowledge/transfer/knowledge-transfer-types.js.map +1 -0
- package/dist/knowledge/{knowledge-transfer.d.ts → transfer/knowledge-transfer.d.ts} +9 -9
- package/dist/knowledge/transfer/knowledge-transfer.d.ts.map +1 -0
- package/dist/knowledge/transfer/knowledge-transfer.js.map +1 -0
- package/dist/knowledge/{transfer-trust.d.ts → transfer/transfer-trust.d.ts} +3 -3
- package/dist/knowledge/transfer/transfer-trust.d.ts.map +1 -0
- package/dist/knowledge/{transfer-trust.js → transfer/transfer-trust.js} +1 -1
- package/dist/knowledge/transfer/transfer-trust.js.map +1 -0
- package/dist/llm/base-llm-client.d.ts +13 -0
- package/dist/llm/base-llm-client.d.ts.map +1 -1
- package/dist/llm/base-llm-client.js +35 -0
- package/dist/llm/base-llm-client.js.map +1 -1
- package/dist/llm/llm-client.d.ts +22 -2
- package/dist/llm/llm-client.d.ts.map +1 -1
- package/dist/llm/llm-client.js +49 -11
- package/dist/llm/llm-client.js.map +1 -1
- package/dist/llm/ollama-client.d.ts +1 -0
- package/dist/llm/ollama-client.d.ts.map +1 -1
- package/dist/llm/ollama-client.js +15 -5
- package/dist/llm/ollama-client.js.map +1 -1
- package/dist/llm/openai-client.d.ts +1 -0
- package/dist/llm/openai-client.d.ts.map +1 -1
- package/dist/llm/openai-client.js +15 -5
- package/dist/llm/openai-client.js.map +1 -1
- package/dist/llm/provider-factory.js +6 -6
- package/dist/llm/provider-factory.js.map +1 -1
- package/dist/loop/checkpoint-manager-loop.d.ts +1 -1
- package/dist/loop/checkpoint-manager-loop.d.ts.map +1 -1
- package/dist/loop/core-loop-phases-c 2.d.ts +27 -0
- package/dist/loop/core-loop-phases-c 2.d.ts.map +1 -0
- package/dist/loop/core-loop-phases-c 2.js +72 -0
- package/dist/loop/core-loop-phases-c 2.js.map +1 -0
- package/dist/loop/core-loop-phases-c.d.ts +27 -0
- package/dist/loop/core-loop-phases-c.d.ts.map +1 -0
- package/dist/loop/core-loop-phases-c.js +72 -0
- package/dist/loop/core-loop-phases-c.js.map +1 -0
- package/dist/loop/core-loop-phases.d.ts +1 -1
- package/dist/loop/core-loop-phases.d.ts.map +1 -1
- package/dist/loop/core-loop-phases.js +9 -3
- package/dist/loop/core-loop-phases.js.map +1 -1
- package/dist/loop/core-loop-types.d.ts +7 -7
- package/dist/loop/core-loop-types.d.ts.map +1 -1
- package/dist/{core-loop.d.ts → loop/core-loop.d.ts} +5 -15
- package/dist/loop/core-loop.d.ts.map +1 -0
- package/dist/{core-loop.js → loop/core-loop.js} +46 -111
- package/dist/loop/core-loop.js.map +1 -0
- package/dist/loop/tree-loop-runner.d.ts.map +1 -1
- package/dist/loop/tree-loop-runner.js +10 -7
- package/dist/loop/tree-loop-runner.js.map +1 -1
- package/dist/mcp-server/index.js +1 -1
- package/dist/mcp-server/index.js.map +1 -1
- package/dist/mcp-server/tools.d.ts +1 -1
- package/dist/mcp-server/tools.d.ts.map +1 -1
- package/dist/observation/capability-dependencies.d.ts +1 -1
- package/dist/observation/capability-dependencies.d.ts.map +1 -1
- package/dist/observation/capability-detector.d.ts +2 -2
- package/dist/observation/capability-detector.d.ts.map +1 -1
- package/dist/observation/capability-registry.d.ts +2 -2
- package/dist/observation/capability-registry.d.ts.map +1 -1
- package/dist/observation/context-provider.d.ts +15 -0
- package/dist/observation/context-provider.d.ts.map +1 -1
- package/dist/observation/context-provider.js +157 -22
- package/dist/observation/context-provider.js.map +1 -1
- package/dist/observation/observation-apply.d.ts +1 -1
- package/dist/observation/observation-apply.d.ts.map +1 -1
- package/dist/observation/observation-engine.d.ts +1 -1
- package/dist/observation/observation-engine.d.ts.map +1 -1
- package/dist/observation/observation-engine.js +1 -0
- package/dist/observation/observation-engine.js.map +1 -1
- package/dist/observation/observation-helpers.d.ts +2 -2
- package/dist/observation/observation-llm.d.ts.map +1 -1
- package/dist/observation/observation-llm.js +7 -3
- package/dist/observation/observation-llm.js.map +1 -1
- package/dist/observation/workspace-context.d.ts.map +1 -1
- package/dist/observation/workspace-context.js +59 -12
- package/dist/observation/workspace-context.js.map +1 -1
- package/dist/prompt/context-assembler.d.ts +1 -1
- package/dist/prompt/context-assembler.d.ts.map +1 -1
- package/dist/prompt/context-assembler.js +14 -4
- package/dist/prompt/context-assembler.js.map +1 -1
- package/dist/prompt/formatters.d.ts +3 -3
- package/dist/prompt/formatters.d.ts.map +1 -1
- package/dist/prompt/formatters.js +2 -2
- package/dist/prompt/formatters.js.map +1 -1
- package/dist/prompt/purposes/capability.d.ts +2 -2
- package/dist/prompt/purposes/ethics.d.ts +4 -4
- package/dist/prompt/purposes/goal-decomposition.d.ts +4 -4
- package/dist/prompt/purposes/knowledge.d.ts +4 -4
- package/dist/prompt/purposes/strategy-template.d.ts +4 -4
- package/dist/prompt/purposes/strategy.d.ts +3 -78
- package/dist/prompt/purposes/strategy.d.ts.map +1 -1
- package/dist/prompt/purposes/strategy.js +2 -18
- package/dist/prompt/purposes/strategy.js.map +1 -1
- package/dist/prompt/purposes/verification.d.ts +2 -2
- package/dist/reflection/dream-consolidation.d.ts +2 -2
- package/dist/reflection/dream-consolidation.d.ts.map +1 -1
- package/dist/reflection/evening-catchup.d.ts +1 -1
- package/dist/reflection/evening-catchup.d.ts.map +1 -1
- package/dist/reflection/morning-planning.d.ts +1 -1
- package/dist/reflection/morning-planning.d.ts.map +1 -1
- package/dist/reflection/types.d.ts +4 -4
- package/dist/reflection/weekly-review.d.ts +1 -1
- package/dist/reflection/weekly-review.d.ts.map +1 -1
- package/dist/reporting/report-formatters 2.d.ts +12 -0
- package/dist/reporting/report-formatters 2.d.ts.map +1 -0
- package/dist/reporting/report-formatters 2.js +166 -0
- package/dist/reporting/report-formatters 2.js.map +1 -0
- package/dist/reporting/report-formatters.d.ts +12 -0
- package/dist/reporting/report-formatters.d.ts.map +1 -0
- package/dist/reporting/report-formatters.js +166 -0
- package/dist/reporting/report-formatters.js.map +1 -0
- package/dist/{reporting-engine.d.ts → reporting/reporting-engine.d.ts} +6 -5
- package/dist/reporting/reporting-engine.d.ts.map +1 -0
- package/dist/{reporting-engine.js → reporting/reporting-engine.js} +13 -170
- package/dist/reporting/reporting-engine.js.map +1 -0
- package/dist/runtime/daemon-health 2.d.ts +31 -0
- package/dist/runtime/daemon-health 2.d.ts.map +1 -0
- package/dist/runtime/daemon-health 2.js +113 -0
- package/dist/runtime/daemon-health 2.js.map +1 -0
- package/dist/runtime/daemon-health.d.ts +31 -0
- package/dist/runtime/daemon-health.d.ts.map +1 -0
- package/dist/runtime/daemon-health.js +113 -0
- package/dist/runtime/daemon-health.js.map +1 -0
- package/dist/runtime/daemon-runner.d.ts +11 -16
- package/dist/runtime/daemon-runner.d.ts.map +1 -1
- package/dist/runtime/daemon-runner.js +20 -116
- package/dist/runtime/daemon-runner.js.map +1 -1
- package/dist/runtime/daemon-signals 2.d.ts +17 -0
- package/dist/runtime/daemon-signals 2.d.ts.map +1 -0
- package/dist/runtime/daemon-signals 2.js +31 -0
- package/dist/runtime/daemon-signals 2.js.map +1 -0
- package/dist/runtime/daemon-signals.d.ts +17 -0
- package/dist/runtime/daemon-signals.d.ts.map +1 -0
- package/dist/runtime/daemon-signals.js +31 -0
- package/dist/runtime/daemon-signals.js.map +1 -0
- package/dist/runtime/event-server.d.ts +1 -1
- package/dist/runtime/event-server.d.ts.map +1 -1
- package/dist/runtime/hook-manager.d.ts.map +1 -1
- package/dist/runtime/hook-manager.js +7 -0
- package/dist/runtime/hook-manager.js.map +1 -1
- package/dist/{state-manager.d.ts → state/state-manager.d.ts} +8 -6
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/{state-manager.js → state/state-manager.js} +62 -67
- package/dist/state/state-manager.js.map +1 -0
- package/dist/state/state-persistence 2.d.ts +12 -0
- package/dist/state/state-persistence 2.d.ts.map +1 -0
- package/dist/state/state-persistence 2.js +58 -0
- package/dist/state/state-persistence 2.js.map +1 -0
- package/dist/state/state-persistence.d.ts +12 -0
- package/dist/state/state-persistence.d.ts.map +1 -0
- package/dist/state/state-persistence.js +58 -0
- package/dist/state/state-persistence.js.map +1 -0
- package/dist/strategy/cross-goal-portfolio.d.ts +1 -1
- package/dist/strategy/cross-goal-portfolio.d.ts.map +1 -1
- package/dist/strategy/portfolio-allocation.d.ts +33 -0
- package/dist/strategy/portfolio-allocation.d.ts.map +1 -1
- package/dist/strategy/portfolio-allocation.js +49 -0
- package/dist/strategy/portfolio-allocation.js.map +1 -1
- package/dist/{portfolio-manager.d.ts → strategy/portfolio-manager.d.ts} +4 -4
- package/dist/strategy/portfolio-manager.d.ts.map +1 -0
- package/dist/{portfolio-manager.js → strategy/portfolio-manager.js} +5 -36
- package/dist/strategy/portfolio-manager.js.map +1 -0
- package/dist/{portfolio-rebalance.d.ts → strategy/portfolio-rebalance.d.ts} +2 -2
- package/dist/strategy/portfolio-rebalance.d.ts.map +1 -0
- package/dist/strategy/portfolio-rebalance.js.map +1 -0
- package/dist/strategy/strategy-helpers.d.ts +8 -8
- package/dist/strategy/strategy-helpers.d.ts.map +1 -1
- package/dist/strategy/strategy-helpers.js +35 -5
- package/dist/strategy/strategy-helpers.js.map +1 -1
- package/dist/strategy/strategy-manager-base.d.ts +1 -1
- package/dist/strategy/strategy-manager-base.d.ts.map +1 -1
- package/dist/traits/character-config.d.ts +1 -1
- package/dist/traits/character-config.d.ts.map +1 -1
- package/dist/traits/curiosity-engine.d.ts +2 -2
- package/dist/traits/curiosity-engine.d.ts.map +1 -1
- package/dist/traits/curiosity-proposals.d.ts +1 -1
- package/dist/traits/curiosity-proposals.d.ts.map +1 -1
- package/dist/traits/curiosity-transfer.d.ts +1 -1
- package/dist/traits/curiosity-transfer.d.ts.map +1 -1
- package/dist/traits/ethics-gate.d.ts +1 -1
- package/dist/traits/ethics-gate.d.ts.map +1 -1
- package/dist/{guardrail-runner.d.ts → traits/guardrail-runner.d.ts} +2 -2
- package/dist/traits/guardrail-runner.d.ts.map +1 -0
- package/dist/traits/guardrail-runner.js.map +1 -0
- package/dist/traits/trust-manager.d.ts +1 -1
- package/dist/traits/trust-manager.d.ts.map +1 -1
- package/dist/tui/actions.d.ts +2 -2
- package/dist/tui/actions.d.ts.map +1 -1
- package/dist/tui/app.d.ts +2 -2
- package/dist/tui/app.d.ts.map +1 -1
- package/dist/tui/entry.d.ts.map +1 -1
- package/dist/tui/entry.js +24 -6
- package/dist/tui/entry.js.map +1 -1
- package/dist/tui/use-loop.d.ts +2 -2
- package/dist/tui/use-loop.d.ts.map +1 -1
- package/dist/types/a2a.d.ts +8 -8
- package/dist/types/agent-profile.d.ts +3 -3
- package/dist/types/capability.d.ts +28 -28
- package/dist/types/checkpoint.d.ts +16 -16
- package/dist/types/core.d.ts +14 -14
- package/dist/types/cross-portfolio.d.ts +29 -29
- package/dist/types/curiosity.d.ts +27 -27
- package/dist/types/daemon.d.ts +2 -2
- package/dist/types/daemon.js +1 -1
- package/dist/types/daemon.js.map +1 -1
- package/dist/types/data-source.d.ts +36 -36
- package/dist/types/dependency.d.ts +12 -12
- package/dist/types/drive.d.ts +2 -2
- package/dist/types/embedding.d.ts +4 -4
- package/dist/types/ethics.d.ts +6 -6
- package/dist/types/goal-refiner.d.ts +15 -12
- package/dist/types/goal-refiner.d.ts.map +1 -1
- package/dist/types/goal-refiner.js +1 -0
- package/dist/types/goal-refiner.js.map +1 -1
- package/dist/types/goal-tree.d.ts +2 -2
- package/dist/types/goal.d.ts +74 -74
- package/dist/types/guardrail.d.ts +3 -3
- package/dist/types/hook.d.ts +10 -10
- package/dist/types/knowledge.d.ts +76 -76
- package/dist/types/learning.d.ts +24 -24
- package/dist/types/mcp.d.ts +9 -9
- package/dist/types/memory-lifecycle.d.ts +39 -39
- package/dist/types/negotiation.d.ts +44 -44
- package/dist/types/notification.d.ts +74 -74
- package/dist/types/pipeline.d.ts +12 -12
- package/dist/types/plugin.d.ts +39 -39
- package/dist/types/report.d.ts +16 -16
- package/dist/types/satisficing.d.ts +10 -10
- package/dist/types/session.d.ts +11 -11
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +1 -0
- package/dist/types/session.js.map +1 -1
- package/dist/types/stall.d.ts +4 -4
- package/dist/types/state.d.ts +10 -10
- package/dist/types/strategy.d.ts +48 -48
- package/dist/types/task-group.d.ts +4 -4
- package/dist/types/task.d.ts +2 -2
- package/dist/utils/execFileNoThrow.d.ts +20 -0
- package/dist/utils/execFileNoThrow.d.ts.map +1 -0
- package/dist/utils/execFileNoThrow.js +33 -0
- package/dist/utils/execFileNoThrow.js.map +1 -0
- package/package.json +2 -2
- package/dist/adapter-layer.d.ts +0 -67
- package/dist/adapter-layer.d.ts.map +0 -1
- package/dist/adapter-layer.js +0 -50
- package/dist/adapter-layer.js.map +0 -1
- package/dist/adapters/a2a-adapter.d.ts.map +0 -1
- package/dist/adapters/a2a-adapter.js.map +0 -1
- package/dist/adapters/a2a-client.d.ts.map +0 -1
- package/dist/adapters/a2a-client.js.map +0 -1
- package/dist/adapters/agent-profile-loader.d.ts.map +0 -1
- package/dist/adapters/agent-profile-loader.js.map +0 -1
- package/dist/adapters/browser-use-cli.d.ts.map +0 -1
- package/dist/adapters/browser-use-cli.js.map +0 -1
- package/dist/adapters/claude-api.d.ts.map +0 -1
- package/dist/adapters/claude-api.js.map +0 -1
- package/dist/adapters/claude-code-cli.d.ts.map +0 -1
- package/dist/adapters/claude-code-cli.js.map +0 -1
- package/dist/adapters/file-existence-datasource.d.ts.map +0 -1
- package/dist/adapters/file-existence-datasource.js.map +0 -1
- package/dist/adapters/github-issue-datasource.d.ts.map +0 -1
- package/dist/adapters/github-issue-datasource.js.map +0 -1
- package/dist/adapters/mcp-datasource.d.ts.map +0 -1
- package/dist/adapters/mcp-datasource.js.map +0 -1
- package/dist/adapters/openai-codex.d.ts.map +0 -1
- package/dist/adapters/openai-codex.js.map +0 -1
- package/dist/adapters/openclaw-acp.d.ts.map +0 -1
- package/dist/adapters/openclaw-acp.js.map +0 -1
- package/dist/adapters/openclaw-datasource.d.ts.map +0 -1
- package/dist/adapters/openclaw-datasource.js.map +0 -1
- package/dist/adapters/shell-datasource.d.ts.map +0 -1
- package/dist/adapters/shell-datasource.js.map +0 -1
- package/dist/capability-detector.d.ts +0 -124
- package/dist/capability-detector.d.ts.map +0 -1
- package/dist/capability-detector.js +0 -576
- package/dist/capability-detector.js.map +0 -1
- package/dist/character-config.d.ts +0 -34
- package/dist/character-config.d.ts.map +0 -1
- package/dist/character-config.js +0 -53
- package/dist/character-config.js.map +0 -1
- package/dist/cli-runner.d.ts.map +0 -1
- package/dist/cli-runner.js +0 -458
- package/dist/cli-runner.js.map +0 -1
- package/dist/codex-llm-client.d.ts +0 -47
- package/dist/codex-llm-client.d.ts.map +0 -1
- package/dist/codex-llm-client.js +0 -193
- package/dist/codex-llm-client.js.map +0 -1
- package/dist/context-provider.d.ts +0 -16
- package/dist/context-provider.d.ts.map +0 -1
- package/dist/context-provider.js +0 -107
- package/dist/context-provider.js.map +0 -1
- package/dist/context-providers/workspace-context.d.ts +0 -8
- package/dist/context-providers/workspace-context.d.ts.map +0 -1
- package/dist/context-providers/workspace-context.js +0 -217
- package/dist/context-providers/workspace-context.js.map +0 -1
- package/dist/core/suggest/repo-context.d.ts +0 -8
- package/dist/core/suggest/repo-context.d.ts.map +0 -1
- package/dist/core/suggest/repo-context.js +0 -154
- package/dist/core/suggest/repo-context.js.map +0 -1
- package/dist/core-loop.d.ts.map +0 -1
- package/dist/core-loop.js.map +0 -1
- package/dist/cross-goal-portfolio.d.ts +0 -153
- package/dist/cross-goal-portfolio.d.ts.map +0 -1
- package/dist/cross-goal-portfolio.js +0 -790
- package/dist/cross-goal-portfolio.js.map +0 -1
- package/dist/curiosity-engine.d.ts +0 -177
- package/dist/curiosity-engine.d.ts.map +0 -1
- package/dist/curiosity-engine.js +0 -736
- package/dist/curiosity-engine.js.map +0 -1
- package/dist/daemon-runner.d.ts +0 -109
- package/dist/daemon-runner.d.ts.map +0 -1
- package/dist/daemon-runner.js +0 -389
- package/dist/daemon-runner.js.map +0 -1
- package/dist/data-source-adapter.d.ts +0 -42
- package/dist/data-source-adapter.d.ts.map +0 -1
- package/dist/data-source-adapter.js +0 -223
- package/dist/data-source-adapter.js.map +0 -1
- package/dist/drive-scorer.d.ts +0 -96
- package/dist/drive-scorer.d.ts.map +0 -1
- package/dist/drive-scorer.js +0 -235
- package/dist/drive-scorer.js.map +0 -1
- package/dist/drive-system.d.ts +0 -92
- package/dist/drive-system.d.ts.map +0 -1
- package/dist/drive-system.js +0 -325
- package/dist/drive-system.js.map +0 -1
- package/dist/embedding-client.d.ts +0 -49
- package/dist/embedding-client.d.ts.map +0 -1
- package/dist/embedding-client.js +0 -141
- package/dist/embedding-client.js.map +0 -1
- package/dist/ethics-gate.d.ts +0 -70
- package/dist/ethics-gate.d.ts.map +0 -1
- package/dist/ethics-gate.js +0 -567
- package/dist/ethics-gate.js.map +0 -1
- package/dist/event-server.d.ts +0 -23
- package/dist/event-server.d.ts.map +0 -1
- package/dist/event-server.js +0 -69
- package/dist/event-server.js.map +0 -1
- package/dist/execution/context-budget.d.ts.map +0 -1
- package/dist/execution/context-budget.js.map +0 -1
- package/dist/execution/context-builder.d.ts.map +0 -1
- package/dist/execution/context-builder.js.map +0 -1
- package/dist/execution/dimension-selector.d.ts.map +0 -1
- package/dist/execution/dimension-selector.js.map +0 -1
- package/dist/execution/task-approval-check.d.ts.map +0 -1
- package/dist/execution/task-approval-check.js.map +0 -1
- package/dist/execution/task-approval.d.ts.map +0 -1
- package/dist/execution/task-approval.js.map +0 -1
- package/dist/execution/task-execution-types.d.ts.map +0 -1
- package/dist/execution/task-execution-types.js.map +0 -1
- package/dist/execution/task-executor.d.ts.map +0 -1
- package/dist/execution/task-executor.js.map +0 -1
- package/dist/execution/task-generation.d.ts.map +0 -1
- package/dist/execution/task-generation.js.map +0 -1
- package/dist/execution/task-health-check.d.ts.map +0 -1
- package/dist/execution/task-health-check.js.map +0 -1
- package/dist/execution/task-lifecycle.d.ts.map +0 -1
- package/dist/execution/task-lifecycle.js.map +0 -1
- package/dist/execution/task-pipeline-cycle.d.ts.map +0 -1
- package/dist/execution/task-pipeline-cycle.js.map +0 -1
- package/dist/execution/task-prompt-builder.d.ts.map +0 -1
- package/dist/execution/task-prompt-builder.js.map +0 -1
- package/dist/execution/task-verifier.d.ts +0 -115
- package/dist/execution/task-verifier.d.ts.map +0 -1
- package/dist/execution/task-verifier.js.map +0 -1
- package/dist/gap-calculator.d.ts +0 -80
- package/dist/gap-calculator.d.ts.map +0 -1
- package/dist/gap-calculator.js +0 -218
- package/dist/gap-calculator.js.map +0 -1
- package/dist/goal-dependency-graph.d.ts +0 -112
- package/dist/goal-dependency-graph.d.ts.map +0 -1
- package/dist/goal-dependency-graph.js +0 -291
- package/dist/goal-dependency-graph.js.map +0 -1
- package/dist/goal-negotiator.d.ts +0 -109
- package/dist/goal-negotiator.d.ts.map +0 -1
- package/dist/goal-negotiator.js +0 -1044
- package/dist/goal-negotiator.js.map +0 -1
- package/dist/goal-tree-manager.d.ts +0 -120
- package/dist/goal-tree-manager.d.ts.map +0 -1
- package/dist/goal-tree-manager.js +0 -954
- package/dist/goal-tree-manager.js.map +0 -1
- package/dist/guardrail-runner.d.ts.map +0 -1
- package/dist/guardrail-runner.js.map +0 -1
- package/dist/knowledge/knowledge-transfer-apply.d.ts.map +0 -1
- package/dist/knowledge/knowledge-transfer-apply.js.map +0 -1
- package/dist/knowledge/knowledge-transfer-detect.d.ts.map +0 -1
- package/dist/knowledge/knowledge-transfer-detect.js.map +0 -1
- package/dist/knowledge/knowledge-transfer-evaluate.d.ts.map +0 -1
- package/dist/knowledge/knowledge-transfer-evaluate.js.map +0 -1
- package/dist/knowledge/knowledge-transfer-meta.d.ts.map +0 -1
- package/dist/knowledge/knowledge-transfer-meta.js.map +0 -1
- package/dist/knowledge/knowledge-transfer-prompts.d.ts.map +0 -1
- package/dist/knowledge/knowledge-transfer-prompts.js.map +0 -1
- package/dist/knowledge/knowledge-transfer-types.d.ts.map +0 -1
- package/dist/knowledge/knowledge-transfer-types.js.map +0 -1
- package/dist/knowledge/knowledge-transfer.d.ts.map +0 -1
- package/dist/knowledge/knowledge-transfer.js.map +0 -1
- package/dist/knowledge/learning-cross-goal.d.ts.map +0 -1
- package/dist/knowledge/learning-cross-goal.js.map +0 -1
- package/dist/knowledge/learning-exports.d.ts.map +0 -1
- package/dist/knowledge/learning-exports.js.map +0 -1
- package/dist/knowledge/learning-feedback.d.ts.map +0 -1
- package/dist/knowledge/learning-feedback.js.map +0 -1
- package/dist/knowledge/learning-pipeline-prompts.d.ts.map +0 -1
- package/dist/knowledge/learning-pipeline-prompts.js.map +0 -1
- package/dist/knowledge/learning-pipeline.d.ts.map +0 -1
- package/dist/knowledge/learning-pipeline.js.map +0 -1
- package/dist/knowledge/memory-compression.d.ts.map +0 -1
- package/dist/knowledge/memory-compression.js.map +0 -1
- package/dist/knowledge/memory-distill.d.ts.map +0 -1
- package/dist/knowledge/memory-distill.js.map +0 -1
- package/dist/knowledge/memory-exports.d.ts.map +0 -1
- package/dist/knowledge/memory-exports.js.map +0 -1
- package/dist/knowledge/memory-index.d.ts.map +0 -1
- package/dist/knowledge/memory-index.js.map +0 -1
- package/dist/knowledge/memory-lifecycle.d.ts.map +0 -1
- package/dist/knowledge/memory-lifecycle.js.map +0 -1
- package/dist/knowledge/memory-persistence.d.ts.map +0 -1
- package/dist/knowledge/memory-persistence.js.map +0 -1
- package/dist/knowledge/memory-phases.d.ts +0 -14
- package/dist/knowledge/memory-phases.d.ts.map +0 -1
- package/dist/knowledge/memory-phases.js +0 -14
- package/dist/knowledge/memory-phases.js.map +0 -1
- package/dist/knowledge/memory-query.d.ts.map +0 -1
- package/dist/knowledge/memory-query.js.map +0 -1
- package/dist/knowledge/memory-selection.d.ts.map +0 -1
- package/dist/knowledge/memory-selection.js.map +0 -1
- package/dist/knowledge/memory-stats.d.ts.map +0 -1
- package/dist/knowledge/memory-stats.js.map +0 -1
- package/dist/knowledge/memory-tier.d.ts.map +0 -1
- package/dist/knowledge/memory-tier.js.map +0 -1
- package/dist/knowledge/transfer-trust.d.ts.map +0 -1
- package/dist/knowledge/transfer-trust.js.map +0 -1
- package/dist/knowledge-graph.d.ts +0 -70
- package/dist/knowledge-graph.d.ts.map +0 -1
- package/dist/knowledge-graph.js +0 -194
- package/dist/knowledge-graph.js.map +0 -1
- package/dist/knowledge-manager.d.ts +0 -110
- package/dist/knowledge-manager.d.ts.map +0 -1
- package/dist/knowledge-manager.js +0 -544
- package/dist/knowledge-manager.js.map +0 -1
- package/dist/knowledge-transfer.d.ts +0 -101
- package/dist/knowledge-transfer.d.ts.map +0 -1
- package/dist/knowledge-transfer.js +0 -484
- package/dist/knowledge-transfer.js.map +0 -1
- package/dist/learning-pipeline.d.ts +0 -107
- package/dist/learning-pipeline.d.ts.map +0 -1
- package/dist/learning-pipeline.js +0 -840
- package/dist/learning-pipeline.js.map +0 -1
- package/dist/llm-client.d.ts +0 -65
- package/dist/llm-client.d.ts.map +0 -1
- package/dist/llm-client.js +0 -151
- package/dist/llm-client.js.map +0 -1
- package/dist/logger.d.ts +0 -30
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -121
- package/dist/logger.js.map +0 -1
- package/dist/memory-lifecycle.d.ts +0 -244
- package/dist/memory-lifecycle.d.ts.map +0 -1
- package/dist/memory-lifecycle.js +0 -1328
- package/dist/memory-lifecycle.js.map +0 -1
- package/dist/notification-dispatcher.d.ts +0 -36
- package/dist/notification-dispatcher.d.ts.map +0 -1
- package/dist/notification-dispatcher.js +0 -363
- package/dist/notification-dispatcher.js.map +0 -1
- package/dist/observation-engine.d.ts +0 -218
- package/dist/observation-engine.d.ts.map +0 -1
- package/dist/observation-engine.js +0 -711
- package/dist/observation-engine.js.map +0 -1
- package/dist/ollama-client.d.ts +0 -30
- package/dist/ollama-client.d.ts.map +0 -1
- package/dist/ollama-client.js +0 -112
- package/dist/ollama-client.js.map +0 -1
- package/dist/openai-client.d.ts +0 -40
- package/dist/openai-client.d.ts.map +0 -1
- package/dist/openai-client.js +0 -155
- package/dist/openai-client.js.map +0 -1
- package/dist/pid-manager.d.ts +0 -18
- package/dist/pid-manager.d.ts.map +0 -1
- package/dist/pid-manager.js +0 -64
- package/dist/pid-manager.js.map +0 -1
- package/dist/portfolio-manager.d.ts.map +0 -1
- package/dist/portfolio-manager.js.map +0 -1
- package/dist/portfolio-rebalance.d.ts.map +0 -1
- package/dist/portfolio-rebalance.js.map +0 -1
- package/dist/provider-config.d.ts +0 -43
- package/dist/provider-config.d.ts.map +0 -1
- package/dist/provider-config.js +0 -131
- package/dist/provider-config.js.map +0 -1
- package/dist/provider-factory.d.ts +0 -23
- package/dist/provider-factory.d.ts.map +0 -1
- package/dist/provider-factory.js +0 -83
- package/dist/provider-factory.js.map +0 -1
- package/dist/reporting-engine.d.ts.map +0 -1
- package/dist/reporting-engine.js.map +0 -1
- package/dist/satisficing-judge.d.ts +0 -113
- package/dist/satisficing-judge.d.ts.map +0 -1
- package/dist/satisficing-judge.js +0 -592
- package/dist/satisficing-judge.js.map +0 -1
- package/dist/session-manager.d.ts +0 -159
- package/dist/session-manager.d.ts.map +0 -1
- package/dist/session-manager.js +0 -458
- package/dist/session-manager.js.map +0 -1
- package/dist/stall-detector.d.ts +0 -100
- package/dist/stall-detector.d.ts.map +0 -1
- package/dist/stall-detector.js +0 -306
- package/dist/stall-detector.js.map +0 -1
- package/dist/state-aggregator.d.ts +0 -89
- package/dist/state-aggregator.d.ts.map +0 -1
- package/dist/state-aggregator.js +0 -290
- package/dist/state-aggregator.js.map +0 -1
- package/dist/state-manager.d.ts.map +0 -1
- package/dist/state-manager.js.map +0 -1
- package/dist/strategy-manager.d.ts +0 -128
- package/dist/strategy-manager.d.ts.map +0 -1
- package/dist/strategy-manager.js +0 -579
- package/dist/strategy-manager.js.map +0 -1
- package/dist/strategy-template-registry.d.ts +0 -80
- package/dist/strategy-template-registry.d.ts.map +0 -1
- package/dist/strategy-template-registry.js +0 -320
- package/dist/strategy-template-registry.js.map +0 -1
- package/dist/task-lifecycle.d.ts +0 -167
- package/dist/task-lifecycle.d.ts.map +0 -1
- package/dist/task-lifecycle.js +0 -1161
- package/dist/task-lifecycle.js.map +0 -1
- package/dist/tree-loop-orchestrator.d.ts +0 -79
- package/dist/tree-loop-orchestrator.d.ts.map +0 -1
- package/dist/tree-loop-orchestrator.js +0 -225
- package/dist/tree-loop-orchestrator.js.map +0 -1
- package/dist/trust-manager.d.ts +0 -67
- package/dist/trust-manager.d.ts.map +0 -1
- package/dist/trust-manager.js +0 -201
- package/dist/trust-manager.js.map +0 -1
- package/dist/vector-index.d.ts +0 -39
- package/dist/vector-index.d.ts.map +0 -1
- package/dist/vector-index.js +0 -111
- package/dist/vector-index.js.map +0 -1
- /package/dist/adapters/{openclaw-acp.js → agents/openclaw-acp.js} +0 -0
- /package/dist/adapters/{file-existence-datasource.js → datasources/file-existence-datasource.js} +0 -0
- /package/dist/adapters/{github-issue-datasource.js → datasources/github-issue-datasource.js} +0 -0
- /package/dist/adapters/{mcp-datasource.js → datasources/mcp-datasource.js} +0 -0
- /package/dist/adapters/{openclaw-datasource.js → datasources/openclaw-datasource.js} +0 -0
- /package/dist/adapters/{shell-datasource.js → datasources/shell-datasource.js} +0 -0
- /package/dist/{cli-runner.d.ts → cli/cli-runner.d.ts} +0 -0
- /package/dist/execution/{context-budget.js → context/context-budget.js} +0 -0
- /package/dist/execution/{task-approval-check.js → task/task-approval-check.js} +0 -0
- /package/dist/execution/{task-health-check.d.ts → task/task-health-check.d.ts} +0 -0
- /package/dist/execution/{task-health-check.js → task/task-health-check.js} +0 -0
- /package/dist/knowledge/{learning-exports.js → learning/learning-exports.js} +0 -0
- /package/dist/knowledge/{memory-distill.js → memory/memory-distill.js} +0 -0
- /package/dist/knowledge/{memory-exports.js → memory/memory-exports.js} +0 -0
- /package/dist/knowledge/{memory-persistence.js → memory/memory-persistence.js} +0 -0
- /package/dist/knowledge/{memory-tier.js → memory/memory-tier.js} +0 -0
- /package/dist/knowledge/{knowledge-transfer-prompts.js → transfer/knowledge-transfer-prompts.js} +0 -0
- /package/dist/knowledge/{knowledge-transfer-types.js → transfer/knowledge-transfer-types.js} +0 -0
- /package/dist/knowledge/{knowledge-transfer.js → transfer/knowledge-transfer.js} +0 -0
- /package/dist/{portfolio-rebalance.js → strategy/portfolio-rebalance.js} +0 -0
- /package/dist/{guardrail-runner.js → traits/guardrail-runner.js} +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as fsp from "node:fs/promises";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import { getPulseedDirPath } from "
|
|
4
|
-
import { StateError } from "
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import { getPulseedDirPath } from "../utils/paths.js";
|
|
4
|
+
import { StateError } from "../utils/errors.js";
|
|
5
|
+
import { GoalSchema, GoalTreeSchema } from "../types/goal.js";
|
|
6
|
+
import { ObservationLogSchema, ObservationLogEntrySchema } from "../types/state.js";
|
|
7
|
+
import { GapHistoryEntrySchema } from "../types/gap.js";
|
|
8
|
+
import { LoopCheckpointSchema } from "../types/checkpoint.js";
|
|
9
|
+
import { initDirs, atomicWrite, atomicRead } from "./state-persistence.js";
|
|
10
|
+
export { initDirs, atomicWrite, atomicRead };
|
|
10
11
|
/**
|
|
11
12
|
* StateManager handles persistence of goals, state vectors, observation logs,
|
|
12
13
|
* and gap history under a base directory (default: ~/.pulseed/).
|
|
@@ -31,21 +32,7 @@ export class StateManager {
|
|
|
31
32
|
}
|
|
32
33
|
/** Create required subdirectories. Must be called after construction before first use. */
|
|
33
34
|
async init() {
|
|
34
|
-
|
|
35
|
-
this.baseDir,
|
|
36
|
-
path.join(this.baseDir, "goals"),
|
|
37
|
-
path.join(this.baseDir, "goal-trees"),
|
|
38
|
-
path.join(this.baseDir, "events"),
|
|
39
|
-
path.join(this.baseDir, "events", "archive"),
|
|
40
|
-
path.join(this.baseDir, "reports"),
|
|
41
|
-
path.join(this.baseDir, "reports", "daily"),
|
|
42
|
-
path.join(this.baseDir, "reports", "weekly"),
|
|
43
|
-
path.join(this.baseDir, "reports", "notifications"),
|
|
44
|
-
path.join(this.baseDir, "checkpoints"),
|
|
45
|
-
];
|
|
46
|
-
for (const dir of dirs) {
|
|
47
|
-
await fsp.mkdir(dir, { recursive: true });
|
|
48
|
-
}
|
|
35
|
+
await initDirs(this.baseDir);
|
|
49
36
|
}
|
|
50
37
|
/** Returns the base directory path */
|
|
51
38
|
getBaseDir() {
|
|
@@ -63,36 +50,12 @@ export class StateManager {
|
|
|
63
50
|
}
|
|
64
51
|
return dir;
|
|
65
52
|
}
|
|
66
|
-
// ─── Atomic Write ───
|
|
53
|
+
// ─── Atomic Write / Read (delegated to state-persistence) ───
|
|
67
54
|
async atomicWrite(filePath, data) {
|
|
68
|
-
|
|
69
|
-
await writeJsonFileAtomic(filePath, data);
|
|
70
|
-
}
|
|
71
|
-
catch (err) {
|
|
72
|
-
// Base dir removed (e.g. test cleanup) — silently skip write
|
|
73
|
-
if (err.code === "ENOENT")
|
|
74
|
-
return;
|
|
75
|
-
throw err;
|
|
76
|
-
}
|
|
55
|
+
return atomicWrite(filePath, data);
|
|
77
56
|
}
|
|
78
57
|
async atomicRead(filePath) {
|
|
79
|
-
|
|
80
|
-
try {
|
|
81
|
-
content = await fsp.readFile(filePath, "utf-8");
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
if (err.code === "ENOENT") {
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
throw err;
|
|
88
|
-
}
|
|
89
|
-
try {
|
|
90
|
-
return JSON.parse(content);
|
|
91
|
-
}
|
|
92
|
-
catch (err) {
|
|
93
|
-
this.logger?.warn(`[StateManager] Corrupt JSON at ${filePath}: ${err}`);
|
|
94
|
-
throw err;
|
|
95
|
-
}
|
|
58
|
+
return atomicRead(filePath, this.logger);
|
|
96
59
|
}
|
|
97
60
|
// ─── Goal CRUD ───
|
|
98
61
|
async saveGoal(goal) {
|
|
@@ -121,7 +84,9 @@ export class StateManager {
|
|
|
121
84
|
try {
|
|
122
85
|
await fsp.access(dir);
|
|
123
86
|
}
|
|
124
|
-
catch {
|
|
87
|
+
catch (e) {
|
|
88
|
+
if (e.code !== "ENOENT")
|
|
89
|
+
throw e;
|
|
125
90
|
// After the active goals check fails, try archive directory
|
|
126
91
|
const archiveDir = path.join(this.baseDir, "archive", goalId);
|
|
127
92
|
try {
|
|
@@ -134,7 +99,9 @@ export class StateManager {
|
|
|
134
99
|
if (raw !== null)
|
|
135
100
|
archivedGoal = GoalSchema.parse(raw);
|
|
136
101
|
}
|
|
137
|
-
catch {
|
|
102
|
+
catch (e) {
|
|
103
|
+
if (e.code !== "ENOENT")
|
|
104
|
+
throw e;
|
|
138
105
|
this.logger?.warn(`[StateManager] Skipping children of archived "${goalId}": goal.json unreadable`);
|
|
139
106
|
}
|
|
140
107
|
if (archivedGoal !== null) {
|
|
@@ -145,7 +112,9 @@ export class StateManager {
|
|
|
145
112
|
await fsp.rm(archiveDir, { recursive: true, force: true });
|
|
146
113
|
return true;
|
|
147
114
|
}
|
|
148
|
-
catch {
|
|
115
|
+
catch (e) {
|
|
116
|
+
if (e.code !== "ENOENT")
|
|
117
|
+
throw e;
|
|
149
118
|
return false;
|
|
150
119
|
}
|
|
151
120
|
}
|
|
@@ -154,7 +123,9 @@ export class StateManager {
|
|
|
154
123
|
try {
|
|
155
124
|
goal = await this.loadGoal(goalId);
|
|
156
125
|
}
|
|
157
|
-
catch {
|
|
126
|
+
catch (e) {
|
|
127
|
+
if (e.code !== "ENOENT")
|
|
128
|
+
throw e;
|
|
158
129
|
this.logger?.warn(`[StateManager] Skipping children of "${goalId}": goal.json unreadable`);
|
|
159
130
|
}
|
|
160
131
|
if (goal !== null) {
|
|
@@ -186,7 +157,9 @@ export class StateManager {
|
|
|
186
157
|
try {
|
|
187
158
|
await fsp.access(goalDir);
|
|
188
159
|
}
|
|
189
|
-
catch {
|
|
160
|
+
catch (e) {
|
|
161
|
+
if (e.code !== "ENOENT")
|
|
162
|
+
throw e;
|
|
190
163
|
return false;
|
|
191
164
|
}
|
|
192
165
|
// Recursively archive children first (depth-first)
|
|
@@ -194,7 +167,9 @@ export class StateManager {
|
|
|
194
167
|
try {
|
|
195
168
|
goal = await this.loadGoal(goalId);
|
|
196
169
|
}
|
|
197
|
-
catch {
|
|
170
|
+
catch (e) {
|
|
171
|
+
if (e.code !== "ENOENT")
|
|
172
|
+
throw e;
|
|
198
173
|
this.logger?.warn(`[StateManager] Skipping children of "${goalId}": goal.json unreadable`);
|
|
199
174
|
}
|
|
200
175
|
if (goal !== null) {
|
|
@@ -232,7 +207,10 @@ export class StateManager {
|
|
|
232
207
|
await fsp.cp(tasksDir, archiveTasksDir, { recursive: true });
|
|
233
208
|
await fsp.rm(tasksDir, { recursive: true, force: true });
|
|
234
209
|
}
|
|
235
|
-
catch {
|
|
210
|
+
catch (e) {
|
|
211
|
+
if (e.code !== "ENOENT")
|
|
212
|
+
throw e;
|
|
213
|
+
}
|
|
236
214
|
// Move strategies/<goalId>/ → archive/<goalId>/strategies/ (if exists)
|
|
237
215
|
const strategiesDir = path.join(this.baseDir, "strategies", goalId);
|
|
238
216
|
try {
|
|
@@ -241,7 +219,10 @@ export class StateManager {
|
|
|
241
219
|
await fsp.cp(strategiesDir, archiveStrategiesDir, { recursive: true });
|
|
242
220
|
await fsp.rm(strategiesDir, { recursive: true, force: true });
|
|
243
221
|
}
|
|
244
|
-
catch {
|
|
222
|
+
catch (e) {
|
|
223
|
+
if (e.code !== "ENOENT")
|
|
224
|
+
throw e;
|
|
225
|
+
}
|
|
245
226
|
// Move stalls/<goalId>.json → archive/<goalId>/stalls.json (if exists)
|
|
246
227
|
const stallsFile = path.join(this.baseDir, "stalls", `${goalId}.json`);
|
|
247
228
|
try {
|
|
@@ -250,7 +231,10 @@ export class StateManager {
|
|
|
250
231
|
await fsp.cp(stallsFile, archiveStallsFile);
|
|
251
232
|
await fsp.rm(stallsFile, { force: true });
|
|
252
233
|
}
|
|
253
|
-
catch {
|
|
234
|
+
catch (e) {
|
|
235
|
+
if (e.code !== "ENOENT")
|
|
236
|
+
throw e;
|
|
237
|
+
}
|
|
254
238
|
// Move reports/<goalId>/ → archive/<goalId>/reports/ (if exists)
|
|
255
239
|
const reportsDir = path.join(this.baseDir, "reports", goalId);
|
|
256
240
|
try {
|
|
@@ -259,7 +243,10 @@ export class StateManager {
|
|
|
259
243
|
await fsp.cp(reportsDir, archiveReportsDir, { recursive: true });
|
|
260
244
|
await fsp.rm(reportsDir, { recursive: true, force: true });
|
|
261
245
|
}
|
|
262
|
-
catch {
|
|
246
|
+
catch (e) {
|
|
247
|
+
if (e.code !== "ENOENT")
|
|
248
|
+
throw e;
|
|
249
|
+
}
|
|
263
250
|
return true;
|
|
264
251
|
}
|
|
265
252
|
/**
|
|
@@ -271,7 +258,9 @@ export class StateManager {
|
|
|
271
258
|
const entries = await fsp.readdir(archiveDir, { withFileTypes: true });
|
|
272
259
|
return entries.filter((d) => d.isDirectory()).map((d) => d.name);
|
|
273
260
|
}
|
|
274
|
-
catch {
|
|
261
|
+
catch (e) {
|
|
262
|
+
if (e.code !== "ENOENT")
|
|
263
|
+
throw e;
|
|
275
264
|
return [];
|
|
276
265
|
}
|
|
277
266
|
}
|
|
@@ -281,7 +270,9 @@ export class StateManager {
|
|
|
281
270
|
const entries = await fsp.readdir(goalsDir, { withFileTypes: true });
|
|
282
271
|
return entries.filter((d) => d.isDirectory()).map((d) => d.name);
|
|
283
272
|
}
|
|
284
|
-
catch {
|
|
273
|
+
catch (e) {
|
|
274
|
+
if (e.code !== "ENOENT")
|
|
275
|
+
throw e;
|
|
285
276
|
return [];
|
|
286
277
|
}
|
|
287
278
|
}
|
|
@@ -304,7 +295,9 @@ export class StateManager {
|
|
|
304
295
|
await fsp.unlink(filePath);
|
|
305
296
|
return true;
|
|
306
297
|
}
|
|
307
|
-
catch {
|
|
298
|
+
catch (e) {
|
|
299
|
+
if (e.code !== "ENOENT")
|
|
300
|
+
throw e;
|
|
308
301
|
return false;
|
|
309
302
|
}
|
|
310
303
|
}
|
|
@@ -331,6 +324,7 @@ export class StateManager {
|
|
|
331
324
|
log = { goal_id: goalId, entries: [] };
|
|
332
325
|
}
|
|
333
326
|
log.entries.push(parsed);
|
|
327
|
+
log.entries = log.entries.slice(-500);
|
|
334
328
|
await this.saveObservationLog(log);
|
|
335
329
|
}
|
|
336
330
|
// ─── Gap History ───
|
|
@@ -350,7 +344,7 @@ export class StateManager {
|
|
|
350
344
|
const parsed = GapHistoryEntrySchema.parse(entry);
|
|
351
345
|
const history = await this.loadGapHistory(goalId);
|
|
352
346
|
history.push(parsed);
|
|
353
|
-
await this.saveGapHistory(goalId, history);
|
|
347
|
+
await this.saveGapHistory(goalId, history.slice(-500));
|
|
354
348
|
}
|
|
355
349
|
/**
|
|
356
350
|
* Save a pace snapshot to a milestone goal (persists to disk).
|
|
@@ -442,7 +436,9 @@ export class StateManager {
|
|
|
442
436
|
await fsp.access(path.join(this.baseDir, "goals", goalId, "goal.json"));
|
|
443
437
|
return true;
|
|
444
438
|
}
|
|
445
|
-
catch {
|
|
439
|
+
catch (e) {
|
|
440
|
+
if (e.code !== "ENOENT")
|
|
441
|
+
throw e;
|
|
446
442
|
return false;
|
|
447
443
|
}
|
|
448
444
|
}
|
|
@@ -481,13 +477,13 @@ export class StateManager {
|
|
|
481
477
|
try {
|
|
482
478
|
await trustManager.setOverride(adapterType, cp.trust_snapshot, "checkpoint_restore");
|
|
483
479
|
}
|
|
484
|
-
catch {
|
|
480
|
+
catch (e) {
|
|
485
481
|
// Non-fatal — trust restore failure should not abort the run
|
|
486
482
|
}
|
|
487
483
|
}
|
|
488
484
|
return cp.cycle_number;
|
|
489
485
|
}
|
|
490
|
-
catch {
|
|
486
|
+
catch (e) {
|
|
491
487
|
// Checkpoint restore failure is non-fatal — caller starts from beginning
|
|
492
488
|
return 0;
|
|
493
489
|
}
|
|
@@ -512,7 +508,6 @@ export class StateManager {
|
|
|
512
508
|
await fsp.mkdir(dir, { recursive: true });
|
|
513
509
|
}
|
|
514
510
|
catch (err) {
|
|
515
|
-
// Base dir removed (e.g. test cleanup) — silently skip write
|
|
516
511
|
if (err.code === "ENOENT")
|
|
517
512
|
return;
|
|
518
513
|
throw err;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/state/state-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Logger } from "../runtime/logger.js";
|
|
2
|
+
/**
|
|
3
|
+
* Standalone file I/O helpers extracted from StateManager.
|
|
4
|
+
* These functions are pure utilities with no class-state dependencies.
|
|
5
|
+
*/
|
|
6
|
+
/** Initialize required subdirectories under baseDir. */
|
|
7
|
+
export declare function initDirs(baseDir: string): Promise<void>;
|
|
8
|
+
/** Atomically write JSON data to filePath. Silently skips if base dir is missing (e.g. test cleanup). */
|
|
9
|
+
export declare function atomicWrite(filePath: string, data: unknown): Promise<void>;
|
|
10
|
+
/** Safely read and parse JSON from filePath. Returns null if file is missing or JSON is corrupt. */
|
|
11
|
+
export declare function atomicRead<T>(filePath: string, logger?: Logger): Promise<T | null>;
|
|
12
|
+
//# sourceMappingURL=state-persistence%202.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-persistence 2.d.ts","sourceRoot":"","sources":["../../src/state/state-persistence 2.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;GAGG;AAEH,wDAAwD;AACxD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7D;AAED,yGAAyG;AACzG,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED,oGAAoG;AACpG,wBAAsB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAiBxF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as fsp from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { writeJsonFileAtomic } from "../utils/json-io.js";
|
|
4
|
+
/**
|
|
5
|
+
* Standalone file I/O helpers extracted from StateManager.
|
|
6
|
+
* These functions are pure utilities with no class-state dependencies.
|
|
7
|
+
*/
|
|
8
|
+
/** Initialize required subdirectories under baseDir. */
|
|
9
|
+
export async function initDirs(baseDir) {
|
|
10
|
+
const dirs = [
|
|
11
|
+
baseDir,
|
|
12
|
+
path.join(baseDir, "goals"),
|
|
13
|
+
path.join(baseDir, "goal-trees"),
|
|
14
|
+
path.join(baseDir, "events"),
|
|
15
|
+
path.join(baseDir, "events", "archive"),
|
|
16
|
+
path.join(baseDir, "reports"),
|
|
17
|
+
path.join(baseDir, "reports", "daily"),
|
|
18
|
+
path.join(baseDir, "reports", "weekly"),
|
|
19
|
+
path.join(baseDir, "reports", "notifications"),
|
|
20
|
+
path.join(baseDir, "checkpoints"),
|
|
21
|
+
];
|
|
22
|
+
for (const dir of dirs) {
|
|
23
|
+
await fsp.mkdir(dir, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Atomically write JSON data to filePath. Silently skips if base dir is missing (e.g. test cleanup). */
|
|
27
|
+
export async function atomicWrite(filePath, data) {
|
|
28
|
+
try {
|
|
29
|
+
await writeJsonFileAtomic(filePath, data);
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
if (err.code === "ENOENT")
|
|
33
|
+
return;
|
|
34
|
+
throw err;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Safely read and parse JSON from filePath. Returns null if file is missing or JSON is corrupt. */
|
|
38
|
+
export async function atomicRead(filePath, logger) {
|
|
39
|
+
let content;
|
|
40
|
+
try {
|
|
41
|
+
content = await fsp.readFile(filePath, "utf-8");
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
if (err.code === "ENOENT") {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(content);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
logger?.warn(`[StateManager] Corrupt JSON at ${filePath}: ${err}`);
|
|
54
|
+
console.warn(`[StateManager] Corrupt JSON at ${filePath}, returning null:`, err);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=state-persistence%202.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-persistence 2.js","sourceRoot":"","sources":["../../src/state/state-persistence 2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;GAGG;AAEH,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe;IAC5C,MAAM,IAAI,GAAG;QACX,OAAO;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;KAClC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,IAAa;IAC/D,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC7D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAI,QAAgB,EAAE,MAAe;IACnE,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,IAAI,CAAC,kCAAkC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,kCAAkC,QAAQ,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Logger } from "../runtime/logger.js";
|
|
2
|
+
/**
|
|
3
|
+
* Standalone file I/O helpers extracted from StateManager.
|
|
4
|
+
* These functions are pure utilities with no class-state dependencies.
|
|
5
|
+
*/
|
|
6
|
+
/** Initialize required subdirectories under baseDir. */
|
|
7
|
+
export declare function initDirs(baseDir: string): Promise<void>;
|
|
8
|
+
/** Atomically write JSON data to filePath. Silently skips if base dir is missing (e.g. test cleanup). */
|
|
9
|
+
export declare function atomicWrite(filePath: string, data: unknown): Promise<void>;
|
|
10
|
+
/** Safely read and parse JSON from filePath. Returns null if file is missing or JSON is corrupt. */
|
|
11
|
+
export declare function atomicRead<T>(filePath: string, logger?: Logger): Promise<T | null>;
|
|
12
|
+
//# sourceMappingURL=state-persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-persistence.d.ts","sourceRoot":"","sources":["../../src/state/state-persistence.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;GAGG;AAEH,wDAAwD;AACxD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7D;AAED,yGAAyG;AACzG,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED,oGAAoG;AACpG,wBAAsB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAiBxF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as fsp from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { writeJsonFileAtomic } from "../utils/json-io.js";
|
|
4
|
+
/**
|
|
5
|
+
* Standalone file I/O helpers extracted from StateManager.
|
|
6
|
+
* These functions are pure utilities with no class-state dependencies.
|
|
7
|
+
*/
|
|
8
|
+
/** Initialize required subdirectories under baseDir. */
|
|
9
|
+
export async function initDirs(baseDir) {
|
|
10
|
+
const dirs = [
|
|
11
|
+
baseDir,
|
|
12
|
+
path.join(baseDir, "goals"),
|
|
13
|
+
path.join(baseDir, "goal-trees"),
|
|
14
|
+
path.join(baseDir, "events"),
|
|
15
|
+
path.join(baseDir, "events", "archive"),
|
|
16
|
+
path.join(baseDir, "reports"),
|
|
17
|
+
path.join(baseDir, "reports", "daily"),
|
|
18
|
+
path.join(baseDir, "reports", "weekly"),
|
|
19
|
+
path.join(baseDir, "reports", "notifications"),
|
|
20
|
+
path.join(baseDir, "checkpoints"),
|
|
21
|
+
];
|
|
22
|
+
for (const dir of dirs) {
|
|
23
|
+
await fsp.mkdir(dir, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Atomically write JSON data to filePath. Silently skips if base dir is missing (e.g. test cleanup). */
|
|
27
|
+
export async function atomicWrite(filePath, data) {
|
|
28
|
+
try {
|
|
29
|
+
await writeJsonFileAtomic(filePath, data);
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
if (err.code === "ENOENT")
|
|
33
|
+
return;
|
|
34
|
+
throw err;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Safely read and parse JSON from filePath. Returns null if file is missing or JSON is corrupt. */
|
|
38
|
+
export async function atomicRead(filePath, logger) {
|
|
39
|
+
let content;
|
|
40
|
+
try {
|
|
41
|
+
content = await fsp.readFile(filePath, "utf-8");
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
if (err.code === "ENOENT") {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(content);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
logger?.warn(`[StateManager] Corrupt JSON at ${filePath}: ${err}`);
|
|
54
|
+
console.warn(`[StateManager] Corrupt JSON at ${filePath}, returning null:`, err);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=state-persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-persistence.js","sourceRoot":"","sources":["../../src/state/state-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;GAGG;AAEH,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe;IAC5C,MAAM,IAAI,GAAG;QACX,OAAO;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;KAClC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,IAAa;IAC/D,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC7D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAI,QAAgB,EAAE,MAAe;IACnE,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,IAAI,CAAC,kCAAkC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,kCAAkC,QAAQ,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StateManager } from "../state-manager.js";
|
|
1
|
+
import { StateManager } from "../state/state-manager.js";
|
|
2
2
|
import { GoalDependencyGraph } from "../goal/goal-dependency-graph.js";
|
|
3
3
|
import { VectorIndex } from "../knowledge/vector-index.js";
|
|
4
4
|
import type { IEmbeddingClient } from "../knowledge/embedding-client.js";
|
|
@@ -1 +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,
|
|
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,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAMzE,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;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CrossGoalAllocation, GoalPriorityFactors, MomentumInfo, DependencySchedule, AllocationStrategy, RebalanceAction } from "../types/cross-portfolio.js";
|
|
2
|
+
import type { RebalanceResult } from "../types/portfolio.js";
|
|
2
3
|
export interface AllocationConfig {
|
|
3
4
|
max_concurrent_goals: number;
|
|
4
5
|
min_goal_share: number;
|
|
@@ -33,4 +34,36 @@ export declare function allocateResources(priorities: GoalPriorityFactors[], con
|
|
|
33
34
|
* @returns array of RebalanceActions taken (empty if no stalled goals)
|
|
34
35
|
*/
|
|
35
36
|
export declare function rebalanceOnStall(currentAllocations: CrossGoalAllocation[], momentumMap: Map<string, MomentumInfo>): RebalanceAction[];
|
|
37
|
+
/**
|
|
38
|
+
* Check if a strategy is a WaitStrategy (has wait-specific fields).
|
|
39
|
+
* Pure function — no class dependency.
|
|
40
|
+
*/
|
|
41
|
+
export declare function isWaitStrategy(strategy: Record<string, unknown>): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Check whether a strategy should be terminated.
|
|
44
|
+
*
|
|
45
|
+
* Three conditions (design doc sec 6.4):
|
|
46
|
+
* 1. Lowest effectiveness score for 3 consecutive rebalances at min allocation
|
|
47
|
+
* 2. consecutive_stall_count >= 3
|
|
48
|
+
* 3. Resource consumption > 2x estimate
|
|
49
|
+
*/
|
|
50
|
+
export declare function checkStrategyTermination(strategy: {
|
|
51
|
+
id: string;
|
|
52
|
+
goal_id: string;
|
|
53
|
+
consecutive_stall_count: number;
|
|
54
|
+
tasks_generated: unknown[];
|
|
55
|
+
allocation: number;
|
|
56
|
+
resource_estimate: {
|
|
57
|
+
sessions: number;
|
|
58
|
+
};
|
|
59
|
+
effectiveness_score: number | null;
|
|
60
|
+
}, records: Array<{
|
|
61
|
+
strategy_id: string;
|
|
62
|
+
effectiveness_score: number | null;
|
|
63
|
+
}>, config: {
|
|
64
|
+
termination_stall_count: number;
|
|
65
|
+
termination_resource_multiplier: number;
|
|
66
|
+
min_allocation: number;
|
|
67
|
+
termination_min_rebalances: number;
|
|
68
|
+
}, rebalanceHistory: Map<string, RebalanceResult[]>, countConsecutiveLowest: (strategyId: string, history: RebalanceResult[], minAllocation: number) => number): boolean;
|
|
36
69
|
//# sourceMappingURL=portfolio-allocation.d.ts.map
|
|
@@ -1 +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;
|
|
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;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQ7D,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;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAMzE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE;IACR,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,EACD,OAAO,EAAE,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,EAC3E,MAAM,EAAE;IACN,uBAAuB,EAAE,MAAM,CAAC;IAChC,+BAA+B,EAAE,MAAM,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,0BAA0B,EAAE,MAAM,CAAC;CACpC,EACD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAChD,sBAAsB,EAAE,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,MAAM,KAClB,MAAM,GACV,OAAO,CA6CT"}
|
|
@@ -212,4 +212,53 @@ export function rebalanceOnStall(currentAllocations, momentumMap) {
|
|
|
212
212
|
}
|
|
213
213
|
return actions;
|
|
214
214
|
}
|
|
215
|
+
// ─── Strategy Helpers ───
|
|
216
|
+
/**
|
|
217
|
+
* Check if a strategy is a WaitStrategy (has wait-specific fields).
|
|
218
|
+
* Pure function — no class dependency.
|
|
219
|
+
*/
|
|
220
|
+
export function isWaitStrategy(strategy) {
|
|
221
|
+
return (typeof strategy["wait_reason"] === "string" &&
|
|
222
|
+
typeof strategy["wait_until"] === "string" &&
|
|
223
|
+
typeof strategy["measurement_plan"] === "string");
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Check whether a strategy should be terminated.
|
|
227
|
+
*
|
|
228
|
+
* Three conditions (design doc sec 6.4):
|
|
229
|
+
* 1. Lowest effectiveness score for 3 consecutive rebalances at min allocation
|
|
230
|
+
* 2. consecutive_stall_count >= 3
|
|
231
|
+
* 3. Resource consumption > 2x estimate
|
|
232
|
+
*/
|
|
233
|
+
export function checkStrategyTermination(strategy, records, config, rebalanceHistory, countConsecutiveLowest) {
|
|
234
|
+
if (strategy.consecutive_stall_count >= config.termination_stall_count) {
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
const sessionsConsumed = strategy.tasks_generated.length;
|
|
238
|
+
const estimatedSessions = strategy.resource_estimate.sessions;
|
|
239
|
+
if (estimatedSessions > 0 &&
|
|
240
|
+
sessionsConsumed > estimatedSessions * config.termination_resource_multiplier) {
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
if (strategy.allocation <= config.min_allocation) {
|
|
244
|
+
const record = records.find((r) => r.strategy_id === strategy.id);
|
|
245
|
+
if (record?.effectiveness_score !== null && record !== undefined) {
|
|
246
|
+
const otherScores = records
|
|
247
|
+
.filter((r) => r.strategy_id !== strategy.id &&
|
|
248
|
+
r.effectiveness_score !== null)
|
|
249
|
+
.map((r) => r.effectiveness_score);
|
|
250
|
+
if (otherScores.length > 0) {
|
|
251
|
+
const isLowest = otherScores.every((s) => s >= record.effectiveness_score);
|
|
252
|
+
if (isLowest) {
|
|
253
|
+
const history = rebalanceHistory.get(strategy.goal_id) ?? [];
|
|
254
|
+
const recentCount = countConsecutiveLowest(strategy.id, history, config.min_allocation);
|
|
255
|
+
if (recentCount >= config.termination_min_rebalances) {
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
215
264
|
//# sourceMappingURL=portfolio-allocation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio-allocation.js","sourceRoot":"","sources":["../../src/strategy/portfolio-allocation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"portfolio-allocation.js","sourceRoot":"","sources":["../../src/strategy/portfolio-allocation.ts"],"names":[],"mappings":"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"}
|