pulseed 0.5.3 → 0.5.4
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/base/state/state-manager-goal-state.d.ts +40 -0
- package/dist/base/state/state-manager-goal-state.d.ts.map +1 -0
- package/dist/base/state/state-manager-goal-state.js +235 -0
- package/dist/base/state/state-manager-goal-state.js.map +1 -0
- package/dist/base/state/state-manager.d.ts +0 -5
- package/dist/base/state/state-manager.d.ts.map +1 -1
- package/dist/base/state/state-manager.js +27 -273
- package/dist/base/state/state-manager.js.map +1 -1
- package/dist/base/types/goal-activation.d.ts +25 -0
- package/dist/base/types/goal-activation.d.ts.map +1 -0
- package/dist/base/types/goal-activation.js +9 -0
- package/dist/base/types/goal-activation.js.map +1 -0
- package/dist/interface/chat/chat-history.d.ts +129 -0
- package/dist/interface/chat/chat-history.d.ts.map +1 -1
- package/dist/interface/chat/chat-history.js +135 -0
- package/dist/interface/chat/chat-history.js.map +1 -1
- package/dist/interface/chat/chat-runner-command-helpers.d.ts +50 -0
- package/dist/interface/chat/chat-runner-command-helpers.d.ts.map +1 -0
- package/dist/interface/chat/chat-runner-command-helpers.js +189 -0
- package/dist/interface/chat/chat-runner-command-helpers.js.map +1 -0
- package/dist/interface/chat/chat-runner-commands.d.ts +76 -0
- package/dist/interface/chat/chat-runner-commands.d.ts.map +1 -0
- package/dist/interface/chat/chat-runner-commands.js +814 -0
- package/dist/interface/chat/chat-runner-commands.js.map +1 -0
- package/dist/interface/chat/chat-runner-event-bridge.d.ts +53 -0
- package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -0
- package/dist/interface/chat/chat-runner-event-bridge.js +311 -0
- package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -0
- package/dist/interface/chat/chat-runner-routes.d.ts +67 -0
- package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -0
- package/dist/interface/chat/chat-runner-routes.js +594 -0
- package/dist/interface/chat/chat-runner-routes.js.map +1 -0
- package/dist/interface/chat/chat-runner-runtime.d.ts +37 -0
- package/dist/interface/chat/chat-runner-runtime.d.ts.map +1 -0
- package/dist/interface/chat/chat-runner-runtime.js +236 -0
- package/dist/interface/chat/chat-runner-runtime.js.map +1 -0
- package/dist/interface/chat/chat-runner-state.d.ts +20 -0
- package/dist/interface/chat/chat-runner-state.d.ts.map +1 -0
- package/dist/interface/chat/chat-runner-state.js +157 -0
- package/dist/interface/chat/chat-runner-state.js.map +1 -0
- package/dist/interface/chat/chat-runner-support.d.ts +15 -0
- package/dist/interface/chat/chat-runner-support.d.ts.map +1 -0
- package/dist/interface/chat/chat-runner-support.js +116 -0
- package/dist/interface/chat/chat-runner-support.js.map +1 -0
- package/dist/interface/chat/chat-runner.d.ts +10 -153
- package/dist/interface/chat/chat-runner.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner.js +299 -2642
- package/dist/interface/chat/chat-runner.js.map +1 -1
- package/dist/interface/chat/chat-session-store.d.ts +32 -0
- package/dist/interface/chat/chat-session-store.d.ts.map +1 -1
- package/dist/interface/chat/chat-session-store.js +100 -10
- package/dist/interface/chat/chat-session-store.js.map +1 -1
- package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
- package/dist/interface/chat/cross-platform-session.js +2 -5
- package/dist/interface/chat/cross-platform-session.js.map +1 -1
- package/dist/interface/chat/event-subscriber.d.ts.map +1 -1
- package/dist/interface/chat/event-subscriber.js +41 -0
- package/dist/interface/chat/event-subscriber.js.map +1 -1
- package/dist/interface/chat/ingress-router.d.ts +0 -25
- package/dist/interface/chat/ingress-router.d.ts.map +1 -1
- package/dist/interface/chat/ingress-router.js +12 -85
- package/dist/interface/chat/ingress-router.js.map +1 -1
- package/dist/interface/chat/tend-command.d.ts.map +1 -1
- package/dist/interface/chat/tend-command.js +2 -0
- package/dist/interface/chat/tend-command.js.map +1 -1
- package/dist/interface/cli/commands/daemon-shared.d.ts +32 -0
- package/dist/interface/cli/commands/daemon-shared.d.ts.map +1 -0
- package/dist/interface/cli/commands/daemon-shared.js +120 -0
- package/dist/interface/cli/commands/daemon-shared.js.map +1 -0
- package/dist/interface/cli/commands/daemon.d.ts +2 -2
- package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
- package/dist/interface/cli/commands/daemon.js +4 -120
- package/dist/interface/cli/commands/daemon.js.map +1 -1
- package/dist/interface/cli/commands/schedule/history.d.ts.map +1 -1
- package/dist/interface/cli/commands/schedule/history.js +5 -1
- package/dist/interface/cli/commands/schedule/history.js.map +1 -1
- package/dist/interface/cli/commands/schedule.js +34 -4
- package/dist/interface/cli/commands/schedule.js.map +1 -1
- package/dist/interface/tui/app.d.ts.map +1 -1
- package/dist/interface/tui/app.js +14 -1
- package/dist/interface/tui/app.js.map +1 -1
- package/dist/interface/tui/chat/suggestions.d.ts.map +1 -1
- package/dist/interface/tui/chat/suggestions.js +118 -4
- package/dist/interface/tui/chat/suggestions.js.map +1 -1
- package/dist/interface/tui/entry-approval.d.ts +8 -0
- package/dist/interface/tui/entry-approval.d.ts.map +1 -0
- package/dist/interface/tui/entry-approval.js +59 -0
- package/dist/interface/tui/entry-approval.js.map +1 -0
- package/dist/interface/tui/entry-daemon.d.ts +12 -0
- package/dist/interface/tui/entry-daemon.d.ts.map +1 -0
- package/dist/interface/tui/entry-daemon.js +74 -0
- package/dist/interface/tui/entry-daemon.js.map +1 -0
- package/dist/interface/tui/entry-deps.d.ts +22 -0
- package/dist/interface/tui/entry-deps.d.ts.map +1 -0
- package/dist/interface/tui/entry-deps.js +409 -0
- package/dist/interface/tui/entry-deps.js.map +1 -0
- package/dist/interface/tui/entry.d.ts +2 -4
- package/dist/interface/tui/entry.d.ts.map +1 -1
- package/dist/interface/tui/entry.js +10 -557
- package/dist/interface/tui/entry.js.map +1 -1
- package/dist/interface/tui/fullscreen-chat-render.d.ts +127 -0
- package/dist/interface/tui/fullscreen-chat-render.d.ts.map +1 -0
- package/dist/interface/tui/fullscreen-chat-render.js +667 -0
- package/dist/interface/tui/fullscreen-chat-render.js.map +1 -0
- package/dist/interface/tui/fullscreen-chat.d.ts +2 -111
- package/dist/interface/tui/fullscreen-chat.d.ts.map +1 -1
- package/dist/interface/tui/fullscreen-chat.js +4 -663
- package/dist/interface/tui/fullscreen-chat.js.map +1 -1
- package/dist/interface/tui/help-overlay.d.ts.map +1 -1
- package/dist/interface/tui/help-overlay.js +1 -1
- package/dist/interface/tui/help-overlay.js.map +1 -1
- package/dist/interface/tui/intent-recognizer.js +2 -2
- package/dist/interface/tui/intent-recognizer.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +8 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js +2 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +2 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +31 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +1 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +1 -0
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +36 -2
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +2 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts +19 -0
- package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js +164 -14
- package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js.map +1 -1
- package/dist/orchestrator/execution/reflection-generator.d.ts +1 -0
- package/dist/orchestrator/execution/reflection-generator.d.ts.map +1 -1
- package/dist/orchestrator/execution/reflection-generator.js +10 -1
- package/dist/orchestrator/execution/reflection-generator.js.map +1 -1
- package/dist/orchestrator/execution/task/task-context-enricher.d.ts +2 -0
- package/dist/orchestrator/execution/task/task-context-enricher.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-context-enricher.js +9 -4
- package/dist/orchestrator/execution/task/task-context-enricher.js.map +1 -1
- package/dist/orchestrator/execution/task/task-execution-helpers-internal.d.ts +5 -0
- package/dist/orchestrator/execution/task/task-execution-helpers-internal.d.ts.map +1 -0
- package/dist/orchestrator/execution/task/task-execution-helpers-internal.js +6 -0
- package/dist/orchestrator/execution/task/task-execution-helpers-internal.js.map +1 -0
- package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-generation.js +8 -3
- package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
- package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts +73 -0
- package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts.map +1 -0
- package/dist/orchestrator/execution/task/task-lifecycle-runner.js +184 -0
- package/dist/orchestrator/execution/task/task-lifecycle-runner.js.map +1 -0
- package/dist/orchestrator/execution/task/task-lifecycle.d.ts +7 -7
- package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-lifecycle.js +37 -181
- package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
- package/dist/orchestrator/execution/task/task-verifier-internal.d.ts +2 -0
- package/dist/orchestrator/execution/task/task-verifier-internal.d.ts.map +1 -0
- package/dist/orchestrator/execution/task/task-verifier-internal.js +2 -0
- package/dist/orchestrator/execution/task/task-verifier-internal.js.map +1 -0
- package/dist/orchestrator/goal/goal-negotiator.d.ts.map +1 -1
- package/dist/orchestrator/goal/goal-negotiator.js +23 -3
- package/dist/orchestrator/goal/goal-negotiator.js.map +1 -1
- package/dist/orchestrator/loop/core-loop/contracts.d.ts +1 -0
- package/dist/orchestrator/loop/core-loop/contracts.d.ts.map +1 -1
- package/dist/orchestrator/loop/core-loop/contracts.js.map +1 -1
- package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts +7 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts.map +1 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js +43 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js.map +1 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts +14 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts.map +1 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js +41 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js.map +1 -0
- package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts +3 -2
- package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts.map +1 -1
- package/dist/orchestrator/loop/core-loop/iteration-kernel.js +16 -87
- package/dist/orchestrator/loop/core-loop/iteration-kernel.js.map +1 -1
- package/dist/orchestrator/loop/core-loop/phase-policy.js +5 -5
- package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts +9 -0
- package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts.map +1 -0
- package/dist/orchestrator/loop/core-loop/task-cycle-stall.js +297 -0
- package/dist/orchestrator/loop/core-loop/task-cycle-stall.js.map +1 -0
- package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts +11 -0
- package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts.map +1 -0
- package/dist/orchestrator/loop/core-loop/task-cycle-wait.js +176 -0
- package/dist/orchestrator/loop/core-loop/task-cycle-wait.js.map +1 -0
- package/dist/orchestrator/loop/core-loop/task-cycle.d.ts +3 -15
- package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -1
- package/dist/orchestrator/loop/core-loop/task-cycle.js +10 -444
- package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -1
- package/dist/orchestrator/loop/core-loop.d.ts +3 -0
- package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
- package/dist/orchestrator/loop/core-loop.js +4 -0
- package/dist/orchestrator/loop/core-loop.js.map +1 -1
- package/dist/orchestrator/strategy/portfolio-manager.d.ts +3 -2
- package/dist/orchestrator/strategy/portfolio-manager.d.ts.map +1 -1
- package/dist/orchestrator/strategy/portfolio-manager.js +16 -11
- package/dist/orchestrator/strategy/portfolio-manager.js.map +1 -1
- package/dist/orchestrator/strategy/portfolio-rebalance.d.ts +1 -1
- package/dist/orchestrator/strategy/portfolio-rebalance.d.ts.map +1 -1
- package/dist/orchestrator/strategy/portfolio-rebalance.js +31 -9
- package/dist/orchestrator/strategy/portfolio-rebalance.js.map +1 -1
- package/dist/orchestrator/strategy/strategy-manager-base.d.ts +12 -2
- package/dist/orchestrator/strategy/strategy-manager-base.d.ts.map +1 -1
- package/dist/orchestrator/strategy/strategy-manager-base.js +23 -7
- package/dist/orchestrator/strategy/strategy-manager-base.js.map +1 -1
- package/dist/orchestrator/strategy/strategy-manager.d.ts +1 -11
- package/dist/orchestrator/strategy/strategy-manager.d.ts.map +1 -1
- package/dist/orchestrator/strategy/strategy-manager.js +78 -19
- package/dist/orchestrator/strategy/strategy-manager.js.map +1 -1
- package/dist/platform/dream/dream-consolidator/fs-metrics.d.ts +18 -0
- package/dist/platform/dream/dream-consolidator/fs-metrics.d.ts.map +1 -0
- package/dist/platform/dream/dream-consolidator/fs-metrics.js +130 -0
- package/dist/platform/dream/dream-consolidator/fs-metrics.js.map +1 -0
- package/dist/platform/dream/dream-consolidator.d.ts +4 -14
- package/dist/platform/dream/dream-consolidator.d.ts.map +1 -1
- package/dist/platform/dream/dream-consolidator.js +46 -166
- package/dist/platform/dream/dream-consolidator.js.map +1 -1
- package/dist/platform/dream/dream-soil-sync.d.ts +1 -0
- package/dist/platform/dream/dream-soil-sync.d.ts.map +1 -1
- package/dist/platform/dream/dream-soil-sync.js +8 -1
- package/dist/platform/dream/dream-soil-sync.js.map +1 -1
- package/dist/platform/dream/dream-types.d.ts +5 -0
- package/dist/platform/dream/dream-types.d.ts.map +1 -1
- package/dist/platform/dream/dream-types.js +1 -0
- package/dist/platform/dream/dream-types.js.map +1 -1
- package/dist/platform/dream/playbook-memory.d.ts +4 -4
- package/dist/platform/drive/stall-detector/analysis.d.ts +5 -0
- package/dist/platform/drive/stall-detector/analysis.d.ts.map +1 -0
- package/dist/platform/drive/stall-detector/analysis.js +55 -0
- package/dist/platform/drive/stall-detector/analysis.js.map +1 -0
- package/dist/platform/drive/stall-detector/repetitive.d.ts +3 -0
- package/dist/platform/drive/stall-detector/repetitive.d.ts.map +1 -0
- package/dist/platform/drive/stall-detector/repetitive.js +72 -0
- package/dist/platform/drive/stall-detector/repetitive.js.map +1 -0
- package/dist/platform/drive/stall-detector/thresholds.d.ts +10 -0
- package/dist/platform/drive/stall-detector/thresholds.d.ts.map +1 -0
- package/dist/platform/drive/stall-detector/thresholds.js +61 -0
- package/dist/platform/drive/stall-detector/thresholds.js.map +1 -0
- package/dist/platform/drive/stall-detector.d.ts +2 -20
- package/dist/platform/drive/stall-detector.d.ts.map +1 -1
- package/dist/platform/drive/stall-detector.js +9 -202
- package/dist/platform/drive/stall-detector.js.map +1 -1
- package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts +55 -0
- package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts.map +1 -0
- package/dist/platform/knowledge/knowledge-manager-agent-memory.js +232 -0
- package/dist/platform/knowledge/knowledge-manager-agent-memory.js.map +1 -0
- package/dist/platform/knowledge/knowledge-manager-internals.d.ts +10 -0
- package/dist/platform/knowledge/knowledge-manager-internals.d.ts.map +1 -0
- package/dist/platform/knowledge/knowledge-manager-internals.js +43 -0
- package/dist/platform/knowledge/knowledge-manager-internals.js.map +1 -0
- package/dist/platform/knowledge/knowledge-manager-store.d.ts +13 -0
- package/dist/platform/knowledge/knowledge-manager-store.d.ts.map +1 -0
- package/dist/platform/knowledge/knowledge-manager-store.js +67 -0
- package/dist/platform/knowledge/knowledge-manager-store.js.map +1 -0
- package/dist/platform/knowledge/knowledge-manager.d.ts +6 -2
- package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
- package/dist/platform/knowledge/knowledge-manager.js +43 -344
- package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
- package/dist/platform/knowledge/memory/memory-lifecycle-storage.d.ts +4 -0
- package/dist/platform/knowledge/memory/memory-lifecycle-storage.d.ts.map +1 -0
- package/dist/platform/knowledge/memory/memory-lifecycle-storage.js +106 -0
- package/dist/platform/knowledge/memory/memory-lifecycle-storage.js.map +1 -0
- package/dist/platform/knowledge/memory/memory-lifecycle.d.ts.map +1 -1
- package/dist/platform/knowledge/memory/memory-lifecycle.js +6 -112
- package/dist/platform/knowledge/memory/memory-lifecycle.js.map +1 -1
- package/dist/platform/observation/capability-detector/prompts.d.ts +18 -0
- package/dist/platform/observation/capability-detector/prompts.d.ts.map +1 -0
- package/dist/platform/observation/capability-detector/prompts.js +80 -0
- package/dist/platform/observation/capability-detector/prompts.js.map +1 -0
- package/dist/platform/observation/capability-detector/recommendations.d.ts +5 -0
- package/dist/platform/observation/capability-detector/recommendations.d.ts.map +1 -0
- package/dist/platform/observation/capability-detector/recommendations.js +76 -0
- package/dist/platform/observation/capability-detector/recommendations.js.map +1 -0
- package/dist/platform/observation/capability-detector/types.d.ts +112 -0
- package/dist/platform/observation/capability-detector/types.d.ts.map +1 -0
- package/dist/platform/observation/capability-detector/types.js +75 -0
- package/dist/platform/observation/capability-detector/types.js.map +1 -0
- package/dist/platform/observation/capability-detector.d.ts +4 -9
- package/dist/platform/observation/capability-detector.d.ts.map +1 -1
- package/dist/platform/observation/capability-detector.js +12 -212
- package/dist/platform/observation/capability-detector.js.map +1 -1
- package/dist/platform/observation/context-provider/collector.d.ts +13 -0
- package/dist/platform/observation/context-provider/collector.d.ts.map +1 -0
- package/dist/platform/observation/context-provider/collector.js +259 -0
- package/dist/platform/observation/context-provider/collector.js.map +1 -0
- package/dist/platform/observation/context-provider/search-terms.d.ts +2 -0
- package/dist/platform/observation/context-provider/search-terms.d.ts.map +1 -0
- package/dist/platform/observation/context-provider/search-terms.js +24 -0
- package/dist/platform/observation/context-provider/search-terms.js.map +1 -0
- package/dist/platform/observation/context-provider/shared.d.ts +17 -0
- package/dist/platform/observation/context-provider/shared.d.ts.map +1 -0
- package/dist/platform/observation/context-provider/shared.js +87 -0
- package/dist/platform/observation/context-provider/shared.js.map +1 -0
- package/dist/platform/observation/context-provider.d.ts +3 -28
- package/dist/platform/observation/context-provider.d.ts.map +1 -1
- package/dist/platform/observation/context-provider.js +7 -395
- package/dist/platform/observation/context-provider.js.map +1 -1
- package/dist/platform/soil/compiled-memory-projections.d.ts +2 -0
- package/dist/platform/soil/compiled-memory-projections.d.ts.map +1 -1
- package/dist/platform/soil/compiled-memory-projections.js +59 -0
- package/dist/platform/soil/compiled-memory-projections.js.map +1 -1
- package/dist/platform/soil/contracts.d.ts +2 -2
- package/dist/platform/soil/retriever.d.ts +25 -0
- package/dist/platform/soil/retriever.d.ts.map +1 -1
- package/dist/platform/soil/retriever.js +94 -5
- package/dist/platform/soil/retriever.js.map +1 -1
- package/dist/platform/soil/sqlite-repository-helpers.d.ts +80 -0
- package/dist/platform/soil/sqlite-repository-helpers.d.ts.map +1 -0
- package/dist/platform/soil/sqlite-repository-helpers.js +143 -0
- package/dist/platform/soil/sqlite-repository-helpers.js.map +1 -0
- package/dist/platform/soil/sqlite-repository-search.d.ts +8 -0
- package/dist/platform/soil/sqlite-repository-search.d.ts.map +1 -0
- package/dist/platform/soil/sqlite-repository-search.js +367 -0
- package/dist/platform/soil/sqlite-repository-search.js.map +1 -0
- package/dist/platform/soil/sqlite-repository-storage.d.ts +8 -0
- package/dist/platform/soil/sqlite-repository-storage.d.ts.map +1 -0
- package/dist/platform/soil/sqlite-repository-storage.js +278 -0
- package/dist/platform/soil/sqlite-repository-storage.js.map +1 -0
- package/dist/platform/soil/sqlite-repository.d.ts +1 -4
- package/dist/platform/soil/sqlite-repository.d.ts.map +1 -1
- package/dist/platform/soil/sqlite-repository.js +26 -820
- package/dist/platform/soil/sqlite-repository.js.map +1 -1
- package/dist/runtime/daemon/index.d.ts +1 -1
- package/dist/runtime/daemon/index.d.ts.map +1 -1
- package/dist/runtime/daemon/index.js +1 -1
- package/dist/runtime/daemon/index.js.map +1 -1
- package/dist/runtime/daemon/maintenance.d.ts +2 -10
- package/dist/runtime/daemon/maintenance.d.ts.map +1 -1
- package/dist/runtime/daemon/maintenance.js +14 -45
- package/dist/runtime/daemon/maintenance.js.map +1 -1
- package/dist/runtime/daemon/runner-bootstrap.d.ts +25 -0
- package/dist/runtime/daemon/runner-bootstrap.d.ts.map +1 -0
- package/dist/runtime/daemon/runner-bootstrap.js +77 -0
- package/dist/runtime/daemon/runner-bootstrap.js.map +1 -0
- package/dist/runtime/daemon/runner-commands.d.ts +7 -7
- package/dist/runtime/daemon/runner-commands.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-commands.js +35 -20
- package/dist/runtime/daemon/runner-commands.js.map +1 -1
- package/dist/runtime/daemon/runner-goal-cycle.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-goal-cycle.js +3 -5
- package/dist/runtime/daemon/runner-goal-cycle.js.map +1 -1
- package/dist/runtime/daemon/runner-resident-curiosity.d.ts +12 -0
- package/dist/runtime/daemon/runner-resident-curiosity.d.ts.map +1 -0
- package/dist/runtime/daemon/runner-resident-curiosity.js +155 -0
- package/dist/runtime/daemon/runner-resident-curiosity.js.map +1 -0
- package/dist/runtime/daemon/runner-resident-dream.d.ts +20 -0
- package/dist/runtime/daemon/runner-resident-dream.d.ts.map +1 -0
- package/dist/runtime/daemon/runner-resident-dream.js +148 -0
- package/dist/runtime/daemon/runner-resident-dream.js.map +1 -0
- package/dist/runtime/daemon/runner-resident-proactive.d.ts +4 -0
- package/dist/runtime/daemon/runner-resident-proactive.d.ts.map +1 -0
- package/dist/runtime/daemon/runner-resident-proactive.js +113 -0
- package/dist/runtime/daemon/runner-resident-proactive.js.map +1 -0
- package/dist/runtime/daemon/runner-resident-shared.d.ts +40 -0
- package/dist/runtime/daemon/runner-resident-shared.d.ts.map +1 -0
- package/dist/runtime/daemon/runner-resident-shared.js +101 -0
- package/dist/runtime/daemon/runner-resident-shared.js.map +1 -0
- package/dist/runtime/daemon/runner-resident.d.ts +4 -68
- package/dist/runtime/daemon/runner-resident.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-resident.js +4 -506
- package/dist/runtime/daemon/runner-resident.js.map +1 -1
- package/dist/runtime/daemon/runner-runtime.d.ts +12 -0
- package/dist/runtime/daemon/runner-runtime.d.ts.map +1 -0
- package/dist/runtime/daemon/runner-runtime.js +43 -0
- package/dist/runtime/daemon/runner-runtime.js.map +1 -0
- package/dist/runtime/daemon/runner-startup.js +3 -4
- package/dist/runtime/daemon/runner-startup.js.map +1 -1
- package/dist/runtime/daemon/runner.d.ts +10 -23
- package/dist/runtime/daemon/runner.d.ts.map +1 -1
- package/dist/runtime/daemon/runner.js +27 -110
- package/dist/runtime/daemon/runner.js.map +1 -1
- package/dist/runtime/daemon/wait-deadline-resolver.d.ts +5 -2
- package/dist/runtime/daemon/wait-deadline-resolver.d.ts.map +1 -1
- package/dist/runtime/daemon/wait-deadline-resolver.js +55 -35
- package/dist/runtime/daemon/wait-deadline-resolver.js.map +1 -1
- package/dist/runtime/event/dispatcher.d.ts +0 -2
- package/dist/runtime/event/dispatcher.d.ts.map +1 -1
- package/dist/runtime/event/dispatcher.js +0 -4
- package/dist/runtime/event/dispatcher.js.map +1 -1
- package/dist/runtime/executor/goal-worker.d.ts +2 -1
- package/dist/runtime/executor/goal-worker.d.ts.map +1 -1
- package/dist/runtime/executor/goal-worker.js +2 -1
- package/dist/runtime/executor/goal-worker.js.map +1 -1
- package/dist/runtime/executor/loop-supervisor.d.ts +3 -0
- package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
- package/dist/runtime/executor/loop-supervisor.js +37 -11
- package/dist/runtime/executor/loop-supervisor.js.map +1 -1
- package/dist/runtime/schedule/engine-cron-reflection.d.ts +31 -0
- package/dist/runtime/schedule/engine-cron-reflection.d.ts.map +1 -0
- package/dist/runtime/schedule/engine-cron-reflection.js +229 -0
- package/dist/runtime/schedule/engine-cron-reflection.js.map +1 -0
- package/dist/runtime/schedule/engine-execution.d.ts +47 -0
- package/dist/runtime/schedule/engine-execution.d.ts.map +1 -0
- package/dist/runtime/schedule/engine-execution.js +424 -0
- package/dist/runtime/schedule/engine-execution.js.map +1 -0
- package/dist/runtime/schedule/engine-heartbeat.d.ts +5 -0
- package/dist/runtime/schedule/engine-heartbeat.d.ts.map +1 -0
- package/dist/runtime/schedule/engine-heartbeat.js +104 -0
- package/dist/runtime/schedule/engine-heartbeat.js.map +1 -0
- package/dist/runtime/schedule/engine-layers.d.ts +2 -0
- package/dist/runtime/schedule/engine-layers.d.ts.map +1 -1
- package/dist/runtime/schedule/engine-layers.js +12 -228
- package/dist/runtime/schedule/engine-layers.js.map +1 -1
- package/dist/runtime/schedule/engine-mutations.d.ts +37 -0
- package/dist/runtime/schedule/engine-mutations.d.ts.map +1 -0
- package/dist/runtime/schedule/engine-mutations.js +263 -0
- package/dist/runtime/schedule/engine-mutations.js.map +1 -0
- package/dist/runtime/schedule/engine.d.ts +11 -38
- package/dist/runtime/schedule/engine.d.ts.map +1 -1
- package/dist/runtime/schedule/engine.js +65 -810
- package/dist/runtime/schedule/engine.js.map +1 -1
- package/dist/runtime/schedule/history.d.ts +16 -0
- package/dist/runtime/schedule/history.d.ts.map +1 -1
- package/dist/runtime/schedule/history.js +8 -0
- package/dist/runtime/schedule/history.js.map +1 -1
- package/dist/runtime/schedule/index.d.ts +1 -0
- package/dist/runtime/schedule/index.d.ts.map +1 -1
- package/dist/runtime/schedule/index.js +1 -0
- package/dist/runtime/schedule/index.js.map +1 -1
- package/dist/runtime/schedule/legacy-cron-migration.d.ts +9 -0
- package/dist/runtime/schedule/legacy-cron-migration.d.ts.map +1 -0
- package/dist/runtime/schedule/legacy-cron-migration.js +89 -0
- package/dist/runtime/schedule/legacy-cron-migration.js.map +1 -0
- package/dist/runtime/schedule/wait-projection.d.ts +6 -0
- package/dist/runtime/schedule/wait-projection.d.ts.map +1 -0
- package/dist/runtime/schedule/wait-projection.js +102 -0
- package/dist/runtime/schedule/wait-projection.js.map +1 -0
- package/dist/runtime/session-registry/registry-helpers.d.ts +34 -0
- package/dist/runtime/session-registry/registry-helpers.d.ts.map +1 -0
- package/dist/runtime/session-registry/registry-helpers.js +241 -0
- package/dist/runtime/session-registry/registry-helpers.js.map +1 -0
- package/dist/runtime/session-registry/registry.d.ts.map +1 -1
- package/dist/runtime/session-registry/registry.js +14 -243
- package/dist/runtime/session-registry/registry.js.map +1 -1
- package/dist/runtime/session-registry/types.d.ts +36 -36
- package/dist/runtime/store/runtime-operation-schemas.d.ts +36 -36
- package/dist/runtime/store/runtime-schemas.d.ts +2 -2
- package/dist/runtime/types/daemon.d.ts +10 -0
- package/dist/runtime/types/daemon.d.ts.map +1 -1
- package/dist/runtime/types/daemon.js +2 -0
- package/dist/runtime/types/daemon.js.map +1 -1
- package/dist/runtime/types/schedule.d.ts +65 -0
- package/dist/runtime/types/schedule.d.ts.map +1 -1
- package/dist/runtime/types/schedule.js +5 -0
- package/dist/runtime/types/schedule.js.map +1 -1
- package/dist/tools/builtin/exports.d.ts +1 -0
- package/dist/tools/builtin/exports.d.ts.map +1 -1
- package/dist/tools/builtin/exports.js +1 -0
- package/dist/tools/builtin/exports.js.map +1 -1
- package/dist/tools/builtin/factory.d.ts +2 -0
- package/dist/tools/builtin/factory.d.ts.map +1 -1
- package/dist/tools/builtin/factory.js +8 -1
- package/dist/tools/builtin/factory.js.map +1 -1
- package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts +1 -0
- package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts.map +1 -1
- package/dist/tools/fs/FileValidationTool/protected-path-policy.js +17 -4
- package/dist/tools/fs/FileValidationTool/protected-path-policy.js.map +1 -1
- package/dist/tools/fs/ListDirTool/ListDirTool.js +1 -1
- package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
- package/dist/tools/kaggle/paths.d.ts.map +1 -1
- package/dist/tools/kaggle/paths.js +6 -0
- package/dist/tools/kaggle/paths.js.map +1 -1
- package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts.map +1 -1
- package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js +23 -2
- package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js.map +1 -1
- package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts.map +1 -1
- package/dist/tools/query/CodeSearchTool/CodeSearchTool.js +24 -2
- package/dist/tools/query/CodeSearchTool/CodeSearchTool.js.map +1 -1
- package/dist/tools/query/SoilQueryTool/SoilQueryTool.d.ts.map +1 -1
- package/dist/tools/query/SoilQueryTool/SoilQueryTool.js +43 -9
- package/dist/tools/query/SoilQueryTool/SoilQueryTool.js.map +1 -1
- package/dist/tools/query/code-search-root.d.ts +8 -0
- package/dist/tools/query/code-search-root.d.ts.map +1 -0
- package/dist/tools/query/code-search-root.js +41 -0
- package/dist/tools/query/code-search-root.js.map +1 -0
- package/dist/tools/query/runtime-session-tools.d.ts +560 -0
- package/dist/tools/query/runtime-session-tools.d.ts.map +1 -0
- package/dist/tools/query/runtime-session-tools.js +1015 -0
- package/dist/tools/query/runtime-session-tools.js.map +1 -0
- package/dist/tools/runtime/LongRunningRuntimeTools.d.ts +821 -0
- package/dist/tools/runtime/LongRunningRuntimeTools.d.ts.map +1 -0
- package/dist/tools/runtime/LongRunningRuntimeTools.js +845 -0
- package/dist/tools/runtime/LongRunningRuntimeTools.js.map +1 -0
- package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts +1 -0
- package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts.map +1 -1
- package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js +11 -0
- package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js.map +1 -1
- package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
- package/dist/tools/system/ShellTool/ShellTool.js +2 -1
- package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
- package/dist/tools/types.d.ts +2 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/base/types/cron.d.ts +0 -2
- package/dist/base/types/cron.d.ts.map +0 -1
- package/dist/base/types/cron.js +0 -3
- package/dist/base/types/cron.js.map +0 -1
- package/dist/runtime/cron-scheduler.d.ts +0 -13
- package/dist/runtime/cron-scheduler.d.ts.map +0 -1
- package/dist/runtime/cron-scheduler.js +0 -90
- package/dist/runtime/cron-scheduler.js.map +0 -1
- package/dist/runtime/types/cron.d.ts +0 -59
- package/dist/runtime/types/cron.d.ts.map +0 -1
- package/dist/runtime/types/cron.js +0 -13
- package/dist/runtime/types/cron.js.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ChatSession } from "./chat-history.js";
|
|
2
|
+
import { type ChatIngressMessage, type SelectedChatRoute } from "./ingress-router.js";
|
|
3
|
+
import type { RuntimeSessionRegistrySnapshot } from "../../runtime/session-registry/types.js";
|
|
4
|
+
import type { RuntimeControlActor, RuntimeControlReplyTarget } from "../../runtime/store/runtime-operation-schemas.js";
|
|
5
|
+
import type { RuntimeControlChatContext } from "./chat-runner.js";
|
|
6
|
+
import type { LoadedChatSession } from "./chat-session-store.js";
|
|
7
|
+
import type { StateManager } from "../../base/state/state-manager.js";
|
|
8
|
+
export interface ChatRunnerRuntimeDeps {
|
|
9
|
+
llmClient?: unknown;
|
|
10
|
+
chatAgentLoopRunner?: unknown;
|
|
11
|
+
runtimeControlService?: unknown;
|
|
12
|
+
runtimeReplyTarget?: RuntimeControlReplyTarget;
|
|
13
|
+
runtimeControlActor?: RuntimeControlActor;
|
|
14
|
+
runtimeControlApprovalFn?: (description: string) => Promise<boolean>;
|
|
15
|
+
approvalFn?: (description: string) => Promise<boolean>;
|
|
16
|
+
stateManager: {
|
|
17
|
+
readRaw(path: string): Promise<unknown>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare function loadedSessionToChatSession(session: LoadedChatSession): ChatSession;
|
|
21
|
+
export declare function getRouteCapabilities(deps: ChatRunnerRuntimeDeps): {
|
|
22
|
+
hasAgentLoop: boolean;
|
|
23
|
+
hasToolLoop: boolean;
|
|
24
|
+
hasRuntimeControlService: boolean;
|
|
25
|
+
};
|
|
26
|
+
export declare function buildStandaloneIngressMessageFromContext(input: string, runtimeControlContext: RuntimeControlChatContext | null, deps: ChatRunnerRuntimeDeps): ChatIngressMessage;
|
|
27
|
+
export declare function buildRuntimeControlContextFromIngress(ingress: ChatIngressMessage, currentContext: RuntimeControlChatContext | null, deps: ChatRunnerRuntimeDeps): RuntimeControlChatContext | null;
|
|
28
|
+
export declare function formatRoute(route: SelectedChatRoute | null): string;
|
|
29
|
+
export declare function resolveChatResumeSelector(selector: string, deps: {
|
|
30
|
+
stateManager: StateManager;
|
|
31
|
+
}): Promise<{
|
|
32
|
+
chatSelector: string;
|
|
33
|
+
nonResumableMessage?: string;
|
|
34
|
+
}>;
|
|
35
|
+
export declare function formatRuntimeSessionsList(snapshot: RuntimeSessionRegistrySnapshot): string;
|
|
36
|
+
export declare function formatRuntimeStatus(snapshot: RuntimeSessionRegistrySnapshot): string;
|
|
37
|
+
//# sourceMappingURL=chat-runner-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-runner-runtime.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-runner-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAGV,8BAA8B,EAE/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AACvH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,wBAAwB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,YAAY,EAAE;QACZ,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACzC,CAAC;CACH;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAsClF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAMA;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,MAAM,EACb,qBAAqB,EAAE,yBAAyB,GAAG,IAAI,EACvD,IAAI,EAAE,qBAAqB,GAC1B,kBAAkB,CAwCpB;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,yBAAyB,GAAG,IAAI,EAChD,IAAI,EAAE,qBAAqB,GAC1B,yBAAyB,GAAG,IAAI,CAelC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAUnE;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,YAAY,EAAE,YAAY,CAAA;CAAE,GACnC,OAAO,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC,CAgCD;AAgDD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,8BAA8B,GAAG,MAAM,CA8B1F;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,8BAA8B,GAAG,MAAM,CAuBpF"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { buildStandaloneIngressMessage, } from "./ingress-router.js";
|
|
2
|
+
import { createRuntimeSessionRegistry } from "../../runtime/session-registry/index.js";
|
|
3
|
+
export function loadedSessionToChatSession(session) {
|
|
4
|
+
return {
|
|
5
|
+
id: session.id,
|
|
6
|
+
cwd: session.cwd,
|
|
7
|
+
createdAt: session.createdAt,
|
|
8
|
+
updatedAt: session.updatedAt,
|
|
9
|
+
messages: [...session.messages],
|
|
10
|
+
...(session.parentSessionId ? { parentSessionId: session.parentSessionId } : {}),
|
|
11
|
+
...(session.spawnedBySessionId ? { spawnedBySessionId: session.spawnedBySessionId } : {}),
|
|
12
|
+
...(session.spawnedByRuntimeSessionId ? { spawnedByRuntimeSessionId: session.spawnedByRuntimeSessionId } : {}),
|
|
13
|
+
...(session.spawnedAt ? { spawnedAt: session.spawnedAt } : {}),
|
|
14
|
+
...(session.sessionStatus ? { sessionStatus: session.sessionStatus } : {}),
|
|
15
|
+
...(session.sessionSummary ? { sessionSummary: session.sessionSummary } : {}),
|
|
16
|
+
...(session.completedAt ? { completedAt: session.completedAt } : {}),
|
|
17
|
+
...(session.goalId ? { goalId: session.goalId } : {}),
|
|
18
|
+
...(session.strategyId ? { strategyId: session.strategyId } : {}),
|
|
19
|
+
...(session.notificationPolicy ? { notificationPolicy: session.notificationPolicy } : {}),
|
|
20
|
+
...(session.ownerId ? { ownerId: session.ownerId } : {}),
|
|
21
|
+
...(session.ownerClaimedAt ? { ownerClaimedAt: session.ownerClaimedAt } : {}),
|
|
22
|
+
...(session.waitingUntil ? { waitingUntil: session.waitingUntil } : {}),
|
|
23
|
+
...(session.waitingCondition ? { waitingCondition: session.waitingCondition } : {}),
|
|
24
|
+
...(session.retryCount !== null && session.retryCount !== undefined ? { retryCount: session.retryCount } : {}),
|
|
25
|
+
...(session.lastRetryAt ? { lastRetryAt: session.lastRetryAt } : {}),
|
|
26
|
+
...(session.lastResumedAt ? { lastResumedAt: session.lastResumedAt } : {}),
|
|
27
|
+
...(session.notificationReplyTarget ? { notificationReplyTarget: session.notificationReplyTarget } : {}),
|
|
28
|
+
...(session.parentNotificationStatus ? { parentNotificationStatus: session.parentNotificationStatus } : {}),
|
|
29
|
+
...(session.parentNotificationSummary ? { parentNotificationSummary: session.parentNotificationSummary } : {}),
|
|
30
|
+
...(session.parentNotifiedAt ? { parentNotifiedAt: session.parentNotifiedAt } : {}),
|
|
31
|
+
...(session.compactionSummary ? { compactionSummary: session.compactionSummary } : {}),
|
|
32
|
+
...(session.title ? { title: session.title } : {}),
|
|
33
|
+
...(session.agentLoopStatePath ? { agentLoopStatePath: session.agentLoopStatePath } : {}),
|
|
34
|
+
...(session.agentLoopStatus === "running" || session.agentLoopStatus === "completed" || session.agentLoopStatus === "failed"
|
|
35
|
+
? { agentLoopStatus: session.agentLoopStatus }
|
|
36
|
+
: {}),
|
|
37
|
+
...(session.agentLoopResumable ? { agentLoopResumable: true } : {}),
|
|
38
|
+
...(session.agentLoopUpdatedAt ? { agentLoopUpdatedAt: session.agentLoopUpdatedAt } : {}),
|
|
39
|
+
...(session.agentLoop ? { agentLoop: session.agentLoop } : {}),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function getRouteCapabilities(deps) {
|
|
43
|
+
return {
|
|
44
|
+
hasAgentLoop: deps.chatAgentLoopRunner !== undefined,
|
|
45
|
+
hasToolLoop: deps.llmClient !== undefined,
|
|
46
|
+
hasRuntimeControlService: deps.runtimeControlService !== undefined,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function buildStandaloneIngressMessageFromContext(input, runtimeControlContext, deps) {
|
|
50
|
+
const channel = runtimeControlContext?.replyTarget?.surface === "tui"
|
|
51
|
+
? "tui"
|
|
52
|
+
: runtimeControlContext?.replyTarget?.surface === "cli"
|
|
53
|
+
? "cli"
|
|
54
|
+
: runtimeControlContext?.replyTarget?.surface === "gateway"
|
|
55
|
+
? "plugin_gateway"
|
|
56
|
+
: "cli";
|
|
57
|
+
const replyTarget = runtimeControlContext?.replyTarget ?? deps.runtimeReplyTarget;
|
|
58
|
+
const replyTargetInput = replyTarget
|
|
59
|
+
? {
|
|
60
|
+
...(replyTarget.surface ? { surface: replyTarget.surface } : {}),
|
|
61
|
+
channel,
|
|
62
|
+
...(replyTarget.platform ? { platform: replyTarget.platform } : {}),
|
|
63
|
+
...(replyTarget.conversation_id ? { conversation_id: replyTarget.conversation_id } : {}),
|
|
64
|
+
...(replyTarget.message_id ? { message_id: replyTarget.message_id } : {}),
|
|
65
|
+
...(replyTarget.response_channel ? { response_channel: replyTarget.response_channel } : {}),
|
|
66
|
+
...(replyTarget.outbox_topic ? { outbox_topic: replyTarget.outbox_topic } : {}),
|
|
67
|
+
...(replyTarget.identity_key ? { identity_key: replyTarget.identity_key } : {}),
|
|
68
|
+
...(replyTarget.user_id ? { user_id: replyTarget.user_id } : {}),
|
|
69
|
+
...(replyTarget.deliveryMode === "reply" || replyTarget.deliveryMode === "notify" || replyTarget.deliveryMode === "thread_reply"
|
|
70
|
+
? { deliveryMode: replyTarget.deliveryMode }
|
|
71
|
+
: {}),
|
|
72
|
+
...(replyTarget.metadata ? { metadata: replyTarget.metadata } : {}),
|
|
73
|
+
}
|
|
74
|
+
: undefined;
|
|
75
|
+
return buildStandaloneIngressMessage({
|
|
76
|
+
text: input,
|
|
77
|
+
channel,
|
|
78
|
+
platform: runtimeControlContext?.replyTarget?.platform ?? deps.runtimeReplyTarget?.platform,
|
|
79
|
+
identity_key: runtimeControlContext?.replyTarget?.identity_key ?? deps.runtimeReplyTarget?.identity_key,
|
|
80
|
+
conversation_id: runtimeControlContext?.replyTarget?.conversation_id ?? deps.runtimeReplyTarget?.conversation_id,
|
|
81
|
+
user_id: runtimeControlContext?.replyTarget?.user_id ?? deps.runtimeReplyTarget?.user_id,
|
|
82
|
+
actor: runtimeControlContext?.actor ?? deps.runtimeControlActor,
|
|
83
|
+
replyTarget: replyTargetInput,
|
|
84
|
+
runtimeControl: {
|
|
85
|
+
allowed: true,
|
|
86
|
+
approvalMode: "interactive",
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
export function buildRuntimeControlContextFromIngress(ingress, currentContext, deps) {
|
|
91
|
+
if (!ingress.actor && !ingress.replyTarget)
|
|
92
|
+
return null;
|
|
93
|
+
const interactiveApproval = currentContext?.approvalFn
|
|
94
|
+
?? deps.runtimeControlApprovalFn
|
|
95
|
+
?? deps.approvalFn;
|
|
96
|
+
return {
|
|
97
|
+
actor: ingress.actor,
|
|
98
|
+
replyTarget: ingress.replyTarget,
|
|
99
|
+
approvalFn: ingress.runtimeControl.approvalMode === "preapproved"
|
|
100
|
+
? async () => true
|
|
101
|
+
: ingress.runtimeControl.approvalMode === "interactive"
|
|
102
|
+
? interactiveApproval
|
|
103
|
+
: undefined,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export function formatRoute(route) {
|
|
107
|
+
if (!route)
|
|
108
|
+
return "none selected yet";
|
|
109
|
+
const details = [
|
|
110
|
+
`kind=${route.kind}`,
|
|
111
|
+
`reason=${route.reason}`,
|
|
112
|
+
];
|
|
113
|
+
if (route.kind === "runtime_control") {
|
|
114
|
+
details.push(`intent=${route.intent.kind}`);
|
|
115
|
+
}
|
|
116
|
+
return details.join(", ");
|
|
117
|
+
}
|
|
118
|
+
export async function resolveChatResumeSelector(selector, deps) {
|
|
119
|
+
if (selector.startsWith("session:conversation:")) {
|
|
120
|
+
return { chatSelector: selector.slice("session:conversation:".length) };
|
|
121
|
+
}
|
|
122
|
+
if (selector.startsWith("session:") || selector.startsWith("run:")) {
|
|
123
|
+
const registry = createRuntimeSessionRegistry({ stateManager: deps.stateManager });
|
|
124
|
+
if (selector.startsWith("session:")) {
|
|
125
|
+
const session = await registry.getSession(selector);
|
|
126
|
+
if (session?.kind === "conversation") {
|
|
127
|
+
return { chatSelector: selector.slice("session:conversation:".length) };
|
|
128
|
+
}
|
|
129
|
+
if (session?.kind === "agent"
|
|
130
|
+
&& session.resumable
|
|
131
|
+
&& session.parent_session_id?.startsWith("session:conversation:")) {
|
|
132
|
+
return { chatSelector: session.parent_session_id.slice("session:conversation:".length) };
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
chatSelector: selector,
|
|
136
|
+
nonResumableMessage: `Runtime session ${selector} is not chat-resumable. Inspect it with 'pulseed runtime session ${selector}'.`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
chatSelector: selector,
|
|
141
|
+
nonResumableMessage: `Background run ${selector} is not chat-resumable. Inspect it with 'pulseed runtime run ${selector}'.`,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return { chatSelector: selector };
|
|
145
|
+
}
|
|
146
|
+
function formatRuntimeTimestamp(value) {
|
|
147
|
+
return value ?? "unknown";
|
|
148
|
+
}
|
|
149
|
+
function formatRuntimeTitle(value) {
|
|
150
|
+
return value ? ` "${value}"` : "";
|
|
151
|
+
}
|
|
152
|
+
function runtimeWarningLine(warnings) {
|
|
153
|
+
return warnings.length > 0 ? `Warnings: ${warnings.length}` : null;
|
|
154
|
+
}
|
|
155
|
+
function activeRuntimeSession(session) {
|
|
156
|
+
return session.status === "active";
|
|
157
|
+
}
|
|
158
|
+
function statusRuntimeRun(run) {
|
|
159
|
+
return run.status === "queued"
|
|
160
|
+
|| run.status === "running"
|
|
161
|
+
|| run.status === "failed"
|
|
162
|
+
|| run.status === "timed_out"
|
|
163
|
+
|| run.status === "lost";
|
|
164
|
+
}
|
|
165
|
+
function compactRunLine(run) {
|
|
166
|
+
const title = formatRuntimeTitle(run.title);
|
|
167
|
+
const updated = formatRuntimeTimestamp(run.updated_at ?? run.started_at ?? run.created_at);
|
|
168
|
+
const summary = run.summary ? ` - ${run.summary.replace(/\s+/g, " ").trim()}` : "";
|
|
169
|
+
const error = run.error ? ` - error: ${run.error.replace(/\s+/g, " ").trim()}` : "";
|
|
170
|
+
return `- ${run.id}${title} [${run.kind}, ${run.status}], updated ${updated}${summary}${error}`;
|
|
171
|
+
}
|
|
172
|
+
function compactSessionLine(session) {
|
|
173
|
+
const displayId = session.kind === "conversation"
|
|
174
|
+
? session.transcript_ref?.id ?? session.id.replace(/^session:conversation:/, "")
|
|
175
|
+
: session.id;
|
|
176
|
+
const title = formatRuntimeTitle(session.title);
|
|
177
|
+
const updated = formatRuntimeTimestamp(session.updated_at ?? session.last_event_at ?? session.created_at);
|
|
178
|
+
const workspace = session.workspace ? `, cwd ${session.workspace}` : "";
|
|
179
|
+
const parent = session.parent_session_id ? `, parent ${session.parent_session_id}` : "";
|
|
180
|
+
const resumable = session.resumable ? ", resumable" : "";
|
|
181
|
+
const attachable = session.attachable ? ", attachable" : "";
|
|
182
|
+
const runtimeId = displayId === session.id ? "" : `, runtime ${session.id}`;
|
|
183
|
+
return `- ${displayId}${title} [${session.kind}, ${session.status}], updated ${updated}${workspace}${parent}${resumable}${attachable}${runtimeId}`;
|
|
184
|
+
}
|
|
185
|
+
export function formatRuntimeSessionsList(snapshot) {
|
|
186
|
+
const chatSessions = snapshot.sessions.filter((session) => session.kind === "conversation");
|
|
187
|
+
const nonChatSessions = snapshot.sessions.filter((session) => session.kind !== "conversation");
|
|
188
|
+
const lines = ["Chat sessions:"];
|
|
189
|
+
if (chatSessions.length === 0) {
|
|
190
|
+
lines.push("No chat sessions found.");
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
for (const session of chatSessions) {
|
|
194
|
+
lines.push(compactSessionLine(session));
|
|
195
|
+
const runs = snapshot.background_runs.filter((run) => run.parent_session_id === session.id);
|
|
196
|
+
for (const run of runs) {
|
|
197
|
+
lines.push(` ${compactRunLine(run)}`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (nonChatSessions.length > 0) {
|
|
202
|
+
lines.push("", "Other runtime sessions:");
|
|
203
|
+
lines.push(...nonChatSessions.map((session) => compactSessionLine(session)));
|
|
204
|
+
}
|
|
205
|
+
if (snapshot.background_runs.length > 0) {
|
|
206
|
+
lines.push("", "Background runs:");
|
|
207
|
+
lines.push(...snapshot.background_runs.map((run) => compactRunLine(run)));
|
|
208
|
+
}
|
|
209
|
+
const warningLine = runtimeWarningLine(snapshot.warnings);
|
|
210
|
+
if (warningLine)
|
|
211
|
+
lines.push("", warningLine);
|
|
212
|
+
return lines.join("\n");
|
|
213
|
+
}
|
|
214
|
+
export function formatRuntimeStatus(snapshot) {
|
|
215
|
+
const activeSessions = snapshot.sessions.filter((session) => activeRuntimeSession(session));
|
|
216
|
+
const statusRuns = snapshot.background_runs.filter((run) => statusRuntimeRun(run));
|
|
217
|
+
const lines = [];
|
|
218
|
+
if (activeSessions.length > 0) {
|
|
219
|
+
lines.push("Active runtime sessions:");
|
|
220
|
+
lines.push(...activeSessions.map((session) => compactSessionLine(session)));
|
|
221
|
+
}
|
|
222
|
+
if (statusRuns.length > 0) {
|
|
223
|
+
if (lines.length > 0)
|
|
224
|
+
lines.push("");
|
|
225
|
+
lines.push("Background runs (queued/running/attention-needed):");
|
|
226
|
+
lines.push(...statusRuns.map((run) => compactRunLine(run)));
|
|
227
|
+
}
|
|
228
|
+
const warningLine = runtimeWarningLine(snapshot.warnings);
|
|
229
|
+
if (warningLine) {
|
|
230
|
+
if (lines.length > 0)
|
|
231
|
+
lines.push("");
|
|
232
|
+
lines.push(warningLine);
|
|
233
|
+
}
|
|
234
|
+
return lines.length > 0 ? lines.join("\n") : "No active runtime sessions or running/failed/lost background runs found.";
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=chat-runner-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-runner-runtime.js","sourceRoot":"","sources":["../../../src/interface/chat/chat-runner-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Task } from "../../base/types/task.js";
|
|
2
|
+
export interface GoalUsageSummary {
|
|
3
|
+
goalId: string;
|
|
4
|
+
totalTokens: number;
|
|
5
|
+
taskCount: number;
|
|
6
|
+
terminalTaskCount: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ScheduleUsageSummary {
|
|
9
|
+
period: string;
|
|
10
|
+
runs: number;
|
|
11
|
+
totalTokens: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function resolveStatePath(baseDir: string, ...segments: string[]): string | null;
|
|
14
|
+
export declare function listRecoverableArchivedGoalIds(baseDir: string): Promise<string[]>;
|
|
15
|
+
export declare function readTasksFromDir(tasksDir: string): Promise<Task[]>;
|
|
16
|
+
export declare function readTasksForGoal(baseDir: string, goalId: string): Promise<Task[]>;
|
|
17
|
+
export declare function parseUsagePeriodMs(period: string): number;
|
|
18
|
+
export declare function collectGoalUsage(baseDir: string, goalId: string): Promise<GoalUsageSummary>;
|
|
19
|
+
export declare function collectScheduleUsage(baseDir: string, period: string, now?: number): Promise<ScheduleUsageSummary>;
|
|
20
|
+
//# sourceMappingURL=chat-runner-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-runner-state.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-runner-state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAKtF;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBvF;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAqBxE;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAOvF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAazD;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmCjG;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,SAAa,GACf,OAAO,CAAC,oBAAoB,CAAC,CA8B/B"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import * as fsp from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { TaskSchema } from "../../base/types/task.js";
|
|
4
|
+
export function resolveStatePath(baseDir, ...segments) {
|
|
5
|
+
const base = path.resolve(baseDir);
|
|
6
|
+
const resolved = path.resolve(base, ...segments);
|
|
7
|
+
if (!resolved.startsWith(base + path.sep))
|
|
8
|
+
return null;
|
|
9
|
+
return resolved;
|
|
10
|
+
}
|
|
11
|
+
export async function listRecoverableArchivedGoalIds(baseDir) {
|
|
12
|
+
const archiveDir = resolveStatePath(baseDir, "archive");
|
|
13
|
+
if (archiveDir === null)
|
|
14
|
+
return [];
|
|
15
|
+
let entries = [];
|
|
16
|
+
try {
|
|
17
|
+
entries = await fsp.readdir(archiveDir, { withFileTypes: true });
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
const goalIds = [];
|
|
23
|
+
for (const entry of entries) {
|
|
24
|
+
if (!entry.isDirectory() || entry.name === ".staging")
|
|
25
|
+
continue;
|
|
26
|
+
try {
|
|
27
|
+
await fsp.access(path.join(archiveDir, entry.name, "goal", "goal.json"));
|
|
28
|
+
goalIds.push(entry.name);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return goalIds;
|
|
35
|
+
}
|
|
36
|
+
export async function readTasksFromDir(tasksDir) {
|
|
37
|
+
let entries = [];
|
|
38
|
+
try {
|
|
39
|
+
entries = await fsp.readdir(tasksDir);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
const tasks = [];
|
|
45
|
+
for (const entry of entries) {
|
|
46
|
+
if (!entry.endsWith(".json") || entry === "task-history.json" || entry === "last-failure-context.json")
|
|
47
|
+
continue;
|
|
48
|
+
let raw;
|
|
49
|
+
try {
|
|
50
|
+
raw = JSON.parse(await fsp.readFile(path.join(tasksDir, entry), "utf-8"));
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const parsed = TaskSchema.safeParse(raw);
|
|
56
|
+
if (parsed.success)
|
|
57
|
+
tasks.push(parsed.data);
|
|
58
|
+
}
|
|
59
|
+
return tasks.sort((a, b) => (a.created_at < b.created_at ? 1 : -1));
|
|
60
|
+
}
|
|
61
|
+
export async function readTasksForGoal(baseDir, goalId) {
|
|
62
|
+
const activeTasksDir = resolveStatePath(baseDir, "tasks", goalId);
|
|
63
|
+
const archiveTasksDir = resolveStatePath(baseDir, "archive", goalId, "tasks");
|
|
64
|
+
if (activeTasksDir === null || archiveTasksDir === null)
|
|
65
|
+
return [];
|
|
66
|
+
const activeTasks = await readTasksFromDir(activeTasksDir);
|
|
67
|
+
if (activeTasks.length > 0)
|
|
68
|
+
return activeTasks;
|
|
69
|
+
return readTasksFromDir(archiveTasksDir);
|
|
70
|
+
}
|
|
71
|
+
export function parseUsagePeriodMs(period) {
|
|
72
|
+
const match = /^(\d+)([dhw])$/i.exec(period.trim());
|
|
73
|
+
if (!match) {
|
|
74
|
+
throw new Error("period must be one of 24h, 7d, 2w");
|
|
75
|
+
}
|
|
76
|
+
const value = Number(match[1]);
|
|
77
|
+
const unit = match[2]?.toLowerCase();
|
|
78
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
79
|
+
throw new Error("period value must be positive");
|
|
80
|
+
}
|
|
81
|
+
if (unit === "h")
|
|
82
|
+
return value * 60 * 60 * 1000;
|
|
83
|
+
if (unit === "w")
|
|
84
|
+
return value * 7 * 24 * 60 * 60 * 1000;
|
|
85
|
+
return value * 24 * 60 * 60 * 1000;
|
|
86
|
+
}
|
|
87
|
+
export async function collectGoalUsage(baseDir, goalId) {
|
|
88
|
+
const ledgerDir = path.join(baseDir, "tasks", goalId, "ledger");
|
|
89
|
+
let entries = [];
|
|
90
|
+
try {
|
|
91
|
+
entries = await fsp.readdir(ledgerDir);
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
if (err.code !== "ENOENT")
|
|
95
|
+
throw err;
|
|
96
|
+
return { goalId, totalTokens: 0, taskCount: 0, terminalTaskCount: 0 };
|
|
97
|
+
}
|
|
98
|
+
let totalTokens = 0;
|
|
99
|
+
let taskCount = 0;
|
|
100
|
+
let terminalTaskCount = 0;
|
|
101
|
+
for (const entry of entries) {
|
|
102
|
+
if (!entry.endsWith(".json"))
|
|
103
|
+
continue;
|
|
104
|
+
taskCount += 1;
|
|
105
|
+
try {
|
|
106
|
+
const raw = await fsp.readFile(path.join(ledgerDir, entry), "utf-8");
|
|
107
|
+
const parsed = JSON.parse(raw);
|
|
108
|
+
if (typeof parsed.summary?.tokens_used === "number") {
|
|
109
|
+
totalTokens += parsed.summary.tokens_used;
|
|
110
|
+
}
|
|
111
|
+
if (parsed.summary?.latest_event_type === "succeeded"
|
|
112
|
+
|| parsed.summary?.latest_event_type === "failed"
|
|
113
|
+
|| parsed.summary?.latest_event_type === "abandoned") {
|
|
114
|
+
terminalTaskCount += 1;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Ignore malformed records.
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return { goalId, totalTokens, taskCount, terminalTaskCount };
|
|
122
|
+
}
|
|
123
|
+
export async function collectScheduleUsage(baseDir, period, now = Date.now()) {
|
|
124
|
+
const periodMs = parseUsagePeriodMs(period);
|
|
125
|
+
const since = now - periodMs;
|
|
126
|
+
const historyPath = path.join(baseDir, "schedule-history.json");
|
|
127
|
+
let raw;
|
|
128
|
+
try {
|
|
129
|
+
raw = JSON.parse(await fsp.readFile(historyPath, "utf-8"));
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
if (err.code === "ENOENT") {
|
|
133
|
+
return { period, runs: 0, totalTokens: 0 };
|
|
134
|
+
}
|
|
135
|
+
throw err;
|
|
136
|
+
}
|
|
137
|
+
if (!Array.isArray(raw)) {
|
|
138
|
+
return { period, runs: 0, totalTokens: 0 };
|
|
139
|
+
}
|
|
140
|
+
let runs = 0;
|
|
141
|
+
let totalTokens = 0;
|
|
142
|
+
for (const record of raw) {
|
|
143
|
+
if (!record || typeof record !== "object")
|
|
144
|
+
continue;
|
|
145
|
+
const finishedAt = record["finished_at"];
|
|
146
|
+
const firedAt = typeof finishedAt === "string" ? Date.parse(finishedAt) : Number.NaN;
|
|
147
|
+
if (!Number.isFinite(firedAt) || firedAt < since)
|
|
148
|
+
continue;
|
|
149
|
+
runs += 1;
|
|
150
|
+
const tokensUsed = record["tokens_used"];
|
|
151
|
+
if (typeof tokensUsed === "number" && Number.isFinite(tokensUsed)) {
|
|
152
|
+
totalTokens += tokensUsed;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return { period, runs, totalTokens };
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=chat-runner-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-runner-state.js","sourceRoot":"","sources":["../../../src/interface/chat/chat-runner-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const DIFF_ARTIFACT_MAX_LINES = 80;
|
|
2
|
+
export interface GitDiffArtifact {
|
|
3
|
+
stat: string;
|
|
4
|
+
nameStatus: string;
|
|
5
|
+
patch: string;
|
|
6
|
+
truncated: boolean;
|
|
7
|
+
}
|
|
8
|
+
export type ChatInterruptRedirectKind = "diff" | "review" | "summary" | "background" | "redirect";
|
|
9
|
+
export declare function checkGitChanges(cwd: string): Promise<string | null>;
|
|
10
|
+
export declare function collectGitDiffArtifact(cwd: string): Promise<GitDiffArtifact | null>;
|
|
11
|
+
export declare function previewActivityText(value: string, maxChars?: number): string;
|
|
12
|
+
export declare function classifyInterruptRedirect(input: string): ChatInterruptRedirectKind;
|
|
13
|
+
export declare function formatToolActivity(action: "Running" | "Finished" | "Failed", toolName: string, detail?: string): string;
|
|
14
|
+
export declare function formatIntentInput(input: string, maxChars?: number): string;
|
|
15
|
+
//# sourceMappingURL=chat-runner-support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-runner-support.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-runner-support.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAclG,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMnE;AAoCD,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA+BzF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAyB,GAAG,MAAM,CAG5F;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,yBAAyB,CAelF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvH;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAGtE"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import * as fsp from "node:fs/promises";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
const ACTIVITY_PREVIEW_CHARS = 40;
|
|
5
|
+
export const DIFF_ARTIFACT_MAX_LINES = 80;
|
|
6
|
+
function runGit(cwd, args, timeout = 5_000) {
|
|
7
|
+
return new Promise((resolve) => {
|
|
8
|
+
execFile("git", args, { cwd, timeout }, (err, stdout, stderr) => {
|
|
9
|
+
if (err) {
|
|
10
|
+
resolve(null);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
resolve((stdout + stderr).trim());
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function checkGitChanges(cwd) {
|
|
18
|
+
return new Promise((resolve) => {
|
|
19
|
+
execFile("git", ["diff", "HEAD", "--stat"], { cwd, timeout: 5_000 }, (err, stdout, stderr) => {
|
|
20
|
+
resolve(err ? null : (stdout + stderr).trim());
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function parseGitLines(output) {
|
|
25
|
+
return output ? output.split("\n").map((line) => line.trim()).filter(Boolean) : [];
|
|
26
|
+
}
|
|
27
|
+
async function buildUntrackedFilePatch(cwd, relativePath) {
|
|
28
|
+
const absolutePath = path.resolve(cwd, relativePath);
|
|
29
|
+
const relativeFromCwd = path.relative(cwd, absolutePath);
|
|
30
|
+
if (relativeFromCwd.startsWith("..") || path.isAbsolute(relativeFromCwd)) {
|
|
31
|
+
return `diff --git a/${relativePath} b/${relativePath}\nnew file skipped: path outside workspace`;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const stat = await fsp.stat(absolutePath);
|
|
35
|
+
if (!stat.isFile()) {
|
|
36
|
+
return `diff --git a/${relativePath} b/${relativePath}\nnew file skipped: not a regular file`;
|
|
37
|
+
}
|
|
38
|
+
if (stat.size > 100_000) {
|
|
39
|
+
return `diff --git a/${relativePath} b/${relativePath}\nnew file skipped: ${stat.size} bytes`;
|
|
40
|
+
}
|
|
41
|
+
const content = await fsp.readFile(absolutePath, "utf-8");
|
|
42
|
+
const lines = content.split("\n");
|
|
43
|
+
const body = lines.map((line) => `+${line}`).join("\n");
|
|
44
|
+
return [
|
|
45
|
+
`diff --git a/${relativePath} b/${relativePath}`,
|
|
46
|
+
"new file mode 100644",
|
|
47
|
+
"--- /dev/null",
|
|
48
|
+
`+++ b/${relativePath}`,
|
|
49
|
+
`@@ -0,0 +1,${lines.length} @@`,
|
|
50
|
+
body,
|
|
51
|
+
].join("\n");
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return `diff --git a/${relativePath} b/${relativePath}\nnew file skipped: unreadable`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export async function collectGitDiffArtifact(cwd) {
|
|
58
|
+
const trackedStat = await runGit(cwd, ["diff", "HEAD", "--stat"]);
|
|
59
|
+
const untrackedFiles = parseGitLines(await runGit(cwd, ["ls-files", "--others", "--exclude-standard"]));
|
|
60
|
+
if (!trackedStat && untrackedFiles.length === 0)
|
|
61
|
+
return null;
|
|
62
|
+
const trackedNameStatus = await runGit(cwd, ["diff", "HEAD", "--name-status"]) ?? "";
|
|
63
|
+
const trackedPatch = await runGit(cwd, ["diff", "HEAD", "--patch", "--unified=3"], 10_000) ?? "";
|
|
64
|
+
const untrackedPatchParts = await Promise.all(untrackedFiles.slice(0, 10).map((file) => buildUntrackedFilePatch(cwd, file)));
|
|
65
|
+
if (untrackedFiles.length > 10) {
|
|
66
|
+
untrackedPatchParts.push(`... ${untrackedFiles.length - 10} additional untracked file(s) omitted`);
|
|
67
|
+
}
|
|
68
|
+
const stat = [
|
|
69
|
+
trackedStat,
|
|
70
|
+
untrackedFiles.length > 0
|
|
71
|
+
? ["Untracked files:", ...untrackedFiles.map((file) => ` ${file}`)].join("\n")
|
|
72
|
+
: "",
|
|
73
|
+
].filter(Boolean).join("\n");
|
|
74
|
+
const nameStatus = [
|
|
75
|
+
trackedNameStatus,
|
|
76
|
+
...untrackedFiles.map((file) => `A\t${file}`),
|
|
77
|
+
].filter(Boolean).join("\n");
|
|
78
|
+
const patch = [trackedPatch, ...untrackedPatchParts].filter(Boolean).join("\n");
|
|
79
|
+
const patchLines = patch.split("\n");
|
|
80
|
+
const truncated = patchLines.length > DIFF_ARTIFACT_MAX_LINES;
|
|
81
|
+
return {
|
|
82
|
+
stat,
|
|
83
|
+
nameStatus,
|
|
84
|
+
patch: patchLines.slice(0, DIFF_ARTIFACT_MAX_LINES).join("\n"),
|
|
85
|
+
truncated,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function previewActivityText(value, maxChars = ACTIVITY_PREVIEW_CHARS) {
|
|
89
|
+
const normalized = value.replace(/\s+/g, " ").trim();
|
|
90
|
+
return normalized.length > maxChars ? `${normalized.slice(0, maxChars)}...` : normalized;
|
|
91
|
+
}
|
|
92
|
+
export function classifyInterruptRedirect(input) {
|
|
93
|
+
const normalized = input.trim().toLowerCase();
|
|
94
|
+
if (/\b(background|bg)\b|バックグラウンド|裏で|裏側|continue.*background/.test(normalized)) {
|
|
95
|
+
return "background";
|
|
96
|
+
}
|
|
97
|
+
if (/\b(review|read.?only|readonly)\b|レビュー|確認だけ|読むだけ/.test(normalized)) {
|
|
98
|
+
return "review";
|
|
99
|
+
}
|
|
100
|
+
if (/\b(diff|changes?|patch)\b|差分|変更.*見|変更内容/.test(normalized)) {
|
|
101
|
+
return "diff";
|
|
102
|
+
}
|
|
103
|
+
if (/\b(stop|pause|summary|summarize|interrupt)\b|止め|停止|中断|一旦|要約/.test(normalized)) {
|
|
104
|
+
return "summary";
|
|
105
|
+
}
|
|
106
|
+
return "redirect";
|
|
107
|
+
}
|
|
108
|
+
export function formatToolActivity(action, toolName, detail) {
|
|
109
|
+
const preview = detail ? previewActivityText(detail) : "";
|
|
110
|
+
return preview ? `${action} tool: ${toolName} - ${preview}` : `${action} tool: ${toolName}`;
|
|
111
|
+
}
|
|
112
|
+
export function formatIntentInput(input, maxChars = 96) {
|
|
113
|
+
const normalized = input.replace(/\s+/g, " ").trim();
|
|
114
|
+
return normalized.length > maxChars ? `${normalized.slice(0, maxChars - 3)}...` : normalized;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=chat-runner-support.js.map
|