@roackb2/heddle 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/dist/examples/conversation-engine.js +2 -2
- package/dist/examples/conversation-engine.js.map +1 -1
- package/dist/examples/cyberloop-observer.js +2 -2
- package/dist/examples/cyberloop-observer.js.map +1 -1
- package/dist/examples/heartbeat-scheduler.js +15 -11
- package/dist/examples/heartbeat-scheduler.js.map +1 -1
- package/dist/examples/heartbeat.js +5 -5
- package/dist/examples/heartbeat.js.map +1 -1
- package/dist/examples/host-events.js +4 -4
- package/dist/examples/host-events.js.map +1 -1
- package/dist/examples/programmatic-loop.js +5 -6
- package/dist/examples/programmatic-loop.js.map +1 -1
- package/dist/examples/repo-investigator.js +2 -2
- package/dist/examples/repo-investigator.js.map +1 -1
- package/dist/src/cli/ask.d.ts +1 -1
- package/dist/src/cli/ask.d.ts.map +1 -1
- package/dist/src/cli/ask.js +6 -6
- package/dist/src/cli/ask.js.map +1 -1
- package/dist/src/cli/chat/adapters/slash-command-context.d.ts.map +1 -1
- package/dist/src/cli/chat/adapters/slash-command-context.js +5 -5
- package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -1
- package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts +1 -1
- package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.d.ts +1 -2
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js +6 -7
- package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.js +7 -8
- package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.js.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/useAgentRunController.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js +9 -9
- package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js.map +1 -1
- package/dist/src/cli/chat/hooks/useChatSessions.js +2 -2
- package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -1
- package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts +1 -1
- package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts +2 -2
- package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useProjectApprovals.js +17 -8
- package/dist/src/cli/chat/hooks/useProjectApprovals.js.map +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts +2 -2
- package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/runtime.js +8 -8
- package/dist/src/cli/chat/utils/runtime.js.map +1 -1
- package/dist/src/cli/heartbeat/output.d.ts +2 -2
- package/dist/src/cli/heartbeat/output.d.ts.map +1 -1
- package/dist/src/cli/heartbeat/output.js +7 -5
- package/dist/src/cli/heartbeat/output.js.map +1 -1
- package/dist/src/cli/heartbeat/store.js +2 -2
- package/dist/src/cli/heartbeat/store.js.map +1 -1
- package/dist/src/cli/heartbeat/task-commands.js +42 -30
- package/dist/src/cli/heartbeat/task-commands.js.map +1 -1
- package/dist/src/cli/heartbeat/types.d.ts +1 -1
- package/dist/src/cli/heartbeat/types.d.ts.map +1 -1
- package/dist/src/cli/heartbeat/worker.d.ts.map +1 -1
- package/dist/src/cli/heartbeat/worker.js +26 -17
- package/dist/src/cli/heartbeat/worker.js.map +1 -1
- package/dist/src/cli/main.js +12 -12
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/remote/control-plane-client.d.ts +10 -10
- package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
- package/dist/src/core/agent/constants.d.ts +4 -0
- package/dist/src/core/agent/constants.d.ts.map +1 -0
- package/dist/src/core/agent/constants.js +4 -0
- package/dist/src/core/agent/constants.js.map +1 -0
- package/dist/src/core/agent/context/index.d.ts +3 -0
- package/dist/src/core/agent/context/index.d.ts.map +1 -0
- package/dist/src/core/agent/context/index.js +2 -0
- package/dist/src/core/agent/context/index.js.map +1 -0
- package/dist/src/core/agent/context/run-context-builder.d.ts +11 -0
- package/dist/src/core/agent/context/run-context-builder.d.ts.map +1 -0
- package/dist/src/core/agent/context/run-context-builder.js +76 -0
- package/dist/src/core/agent/context/run-context-builder.js.map +1 -0
- package/dist/src/core/agent/context/types.d.ts +11 -0
- package/dist/src/core/agent/context/types.d.ts.map +1 -0
- package/dist/src/core/agent/context/types.js +2 -0
- package/dist/src/core/agent/context/types.js.map +1 -0
- package/dist/src/core/agent/finish/index.d.ts +3 -0
- package/dist/src/core/agent/finish/index.d.ts.map +1 -0
- package/dist/src/core/agent/finish/index.js +2 -0
- package/dist/src/core/agent/finish/index.js.map +1 -0
- package/dist/src/core/agent/finish/run-finisher.d.ts +16 -0
- package/dist/src/core/agent/finish/run-finisher.d.ts.map +1 -0
- package/dist/src/core/agent/finish/run-finisher.js +67 -0
- package/dist/src/core/agent/finish/run-finisher.js.map +1 -0
- package/dist/src/core/agent/finish/types.d.ts +23 -0
- package/dist/src/core/agent/finish/types.d.ts.map +1 -0
- package/dist/src/core/agent/finish/types.js +2 -0
- package/dist/src/core/agent/finish/types.js.map +1 -0
- package/dist/src/core/agent/history/history-sanitizer.d.ts +15 -0
- package/dist/src/core/agent/history/history-sanitizer.d.ts.map +1 -0
- package/dist/src/core/agent/history/history-sanitizer.js +40 -0
- package/dist/src/core/agent/history/history-sanitizer.js.map +1 -0
- package/dist/src/core/agent/history/index.d.ts +3 -0
- package/dist/src/core/agent/history/index.d.ts.map +1 -0
- package/dist/src/core/agent/history/index.js +2 -0
- package/dist/src/core/agent/history/index.js.map +1 -0
- package/dist/src/core/agent/history/types.d.ts +16 -0
- package/dist/src/core/agent/history/types.d.ts.map +1 -0
- package/dist/src/core/agent/history/types.js +2 -0
- package/dist/src/core/agent/history/types.js.map +1 -0
- package/dist/src/core/agent/index.d.ts +3 -0
- package/dist/src/core/agent/index.d.ts.map +1 -0
- package/dist/src/core/agent/index.js +2 -0
- package/dist/src/core/agent/index.js.map +1 -0
- package/dist/src/core/agent/memory/index.d.ts +3 -0
- package/dist/src/core/agent/memory/index.d.ts.map +1 -0
- package/dist/src/core/agent/memory/index.js +2 -0
- package/dist/src/core/agent/memory/index.js.map +1 -0
- package/dist/src/core/agent/memory/memory-checkpoint-tracker.d.ts +16 -0
- package/dist/src/core/agent/memory/memory-checkpoint-tracker.d.ts.map +1 -0
- package/dist/src/core/agent/memory/memory-checkpoint-tracker.js +92 -0
- package/dist/src/core/agent/memory/memory-checkpoint-tracker.js.map +1 -0
- package/dist/src/core/agent/memory/types.d.ts +13 -0
- package/dist/src/core/agent/memory/types.d.ts.map +1 -0
- package/dist/src/core/agent/memory/types.js +2 -0
- package/dist/src/core/agent/memory/types.js.map +1 -0
- package/dist/src/core/agent/model/index.d.ts +3 -0
- package/dist/src/core/agent/model/index.d.ts.map +1 -0
- package/dist/src/core/agent/model/index.js +2 -0
- package/dist/src/core/agent/model/index.js.map +1 -0
- package/dist/src/core/agent/model/model-turn-service.d.ts +12 -0
- package/dist/src/core/agent/model/model-turn-service.d.ts.map +1 -0
- package/dist/src/core/agent/model/model-turn-service.js +103 -0
- package/dist/src/core/agent/model/model-turn-service.js.map +1 -0
- package/dist/src/core/agent/model/types.d.ts +12 -0
- package/dist/src/core/agent/model/types.d.ts.map +1 -0
- package/dist/src/core/agent/model/types.js +2 -0
- package/dist/src/core/agent/model/types.js.map +1 -0
- package/dist/src/core/agent/mutation/index.d.ts +3 -0
- package/dist/src/core/agent/mutation/index.d.ts.map +1 -0
- package/dist/src/core/agent/mutation/index.js +2 -0
- package/dist/src/core/agent/mutation/index.js.map +1 -0
- package/dist/src/core/agent/mutation/mutation-tracker.d.ts +20 -0
- package/dist/src/core/agent/mutation/mutation-tracker.d.ts.map +1 -0
- package/dist/src/core/agent/mutation/mutation-tracker.js +75 -0
- package/dist/src/core/agent/mutation/mutation-tracker.js.map +1 -0
- package/dist/src/core/agent/mutation/types.d.ts +13 -0
- package/dist/src/core/agent/mutation/types.d.ts.map +1 -0
- package/dist/src/core/agent/mutation/types.js +2 -0
- package/dist/src/core/agent/mutation/types.js.map +1 -0
- package/dist/src/core/agent/planning/index.d.ts +3 -0
- package/dist/src/core/agent/planning/index.d.ts.map +1 -0
- package/dist/src/core/agent/planning/index.js +2 -0
- package/dist/src/core/agent/planning/index.js.map +1 -0
- package/dist/src/core/agent/planning/plan-state-parser.d.ts +9 -0
- package/dist/src/core/agent/planning/plan-state-parser.d.ts.map +1 -0
- package/dist/src/core/agent/planning/plan-state-parser.js +35 -0
- package/dist/src/core/agent/planning/plan-state-parser.js.map +1 -0
- package/dist/src/core/agent/planning/types.d.ts +7 -0
- package/dist/src/core/agent/planning/types.d.ts.map +1 -0
- package/dist/src/core/agent/planning/types.js +2 -0
- package/dist/src/core/agent/planning/types.js.map +1 -0
- package/dist/src/core/agent/service.d.ts +10 -0
- package/dist/src/core/agent/service.d.ts.map +1 -0
- package/dist/src/core/agent/service.js +44 -0
- package/dist/src/core/agent/service.js.map +1 -0
- package/dist/src/core/agent/tools/index.d.ts +4 -0
- package/dist/src/core/agent/tools/index.d.ts.map +1 -0
- package/dist/src/core/agent/tools/index.js +3 -0
- package/dist/src/core/agent/tools/index.js.map +1 -0
- package/dist/src/core/agent/tools/tool-dispatcher.d.ts +47 -0
- package/dist/src/core/agent/tools/tool-dispatcher.d.ts.map +1 -0
- package/dist/src/core/agent/tools/tool-dispatcher.js +123 -0
- package/dist/src/core/agent/tools/tool-dispatcher.js.map +1 -0
- package/dist/src/core/agent/tools/tool-turn-service.d.ts +13 -0
- package/dist/src/core/agent/tools/tool-turn-service.d.ts.map +1 -0
- package/dist/src/core/agent/tools/tool-turn-service.js +129 -0
- package/dist/src/core/agent/tools/tool-turn-service.js.map +1 -0
- package/dist/src/core/agent/tools/types.d.ts +19 -0
- package/dist/src/core/agent/tools/types.d.ts.map +1 -0
- package/dist/src/core/agent/tools/types.js +2 -0
- package/dist/src/core/agent/tools/types.js.map +1 -0
- package/dist/src/core/agent/types.d.ts +83 -0
- package/dist/src/core/agent/types.d.ts.map +1 -0
- package/dist/src/core/agent/types.js +2 -0
- package/dist/src/core/agent/types.js.map +1 -0
- package/dist/src/core/agent/utils/abort.d.ts +2 -0
- package/dist/src/core/agent/utils/abort.d.ts.map +1 -0
- package/dist/src/core/agent/utils/abort.js +9 -0
- package/dist/src/core/agent/utils/abort.js.map +1 -0
- package/dist/src/core/agent/utils/index.d.ts +4 -0
- package/dist/src/core/agent/utils/index.d.ts.map +1 -0
- package/dist/src/core/agent/utils/index.js +4 -0
- package/dist/src/core/agent/utils/index.js.map +1 -0
- package/dist/src/core/agent/utils/serialization.d.ts +2 -0
- package/dist/src/core/agent/utils/serialization.d.ts.map +1 -0
- package/dist/src/core/agent/utils/serialization.js +11 -0
- package/dist/src/core/agent/utils/serialization.js.map +1 -0
- package/dist/src/core/agent/utils/tool-input.d.ts +3 -0
- package/dist/src/core/agent/utils/tool-input.d.ts.map +1 -0
- package/dist/src/core/agent/{util.js → utils/tool-input.js} +1 -28
- package/dist/src/core/agent/utils/tool-input.js.map +1 -0
- package/dist/src/core/approvals/index.d.ts +5 -0
- package/dist/src/core/approvals/index.d.ts.map +1 -0
- package/dist/src/core/approvals/index.js +4 -0
- package/dist/src/core/approvals/index.js.map +1 -0
- package/dist/src/core/approvals/pending-approval.d.ts +17 -0
- package/dist/src/core/approvals/pending-approval.d.ts.map +1 -0
- package/dist/src/core/approvals/pending-approval.js +27 -0
- package/dist/src/core/approvals/pending-approval.js.map +1 -0
- package/dist/src/core/approvals/policies.d.ts +20 -0
- package/dist/src/core/approvals/policies.d.ts.map +1 -0
- package/dist/src/core/approvals/policies.js +56 -0
- package/dist/src/core/approvals/policies.js.map +1 -0
- package/dist/src/core/approvals/remembered-rules/codec.d.ts +17 -0
- package/dist/src/core/approvals/remembered-rules/codec.d.ts.map +1 -0
- package/dist/src/core/approvals/remembered-rules/codec.js +117 -0
- package/dist/src/core/approvals/remembered-rules/codec.js.map +1 -0
- package/dist/src/core/approvals/remembered-rules/index.d.ts +5 -0
- package/dist/src/core/approvals/remembered-rules/index.d.ts.map +1 -0
- package/dist/src/core/approvals/remembered-rules/index.js +4 -0
- package/dist/src/core/approvals/remembered-rules/index.js.map +1 -0
- package/dist/src/core/approvals/remembered-rules/repository.d.ts +11 -0
- package/dist/src/core/approvals/remembered-rules/repository.d.ts.map +1 -0
- package/dist/src/core/approvals/remembered-rules/repository.js +29 -0
- package/dist/src/core/approvals/remembered-rules/repository.js.map +1 -0
- package/dist/src/core/approvals/remembered-rules/schemas.d.ts +55 -0
- package/dist/src/core/approvals/remembered-rules/schemas.d.ts.map +1 -0
- package/dist/src/core/approvals/remembered-rules/schemas.js +24 -0
- package/dist/src/core/approvals/remembered-rules/schemas.js.map +1 -0
- package/dist/src/core/approvals/remembered-rules/service.d.ts +28 -0
- package/dist/src/core/approvals/remembered-rules/service.d.ts.map +1 -0
- package/dist/src/core/approvals/remembered-rules/service.js +200 -0
- package/dist/src/core/approvals/remembered-rules/service.js.map +1 -0
- package/dist/src/core/approvals/remembered-rules/types.d.ts +12 -0
- package/dist/src/core/approvals/remembered-rules/types.d.ts.map +1 -0
- package/dist/src/core/approvals/remembered-rules/types.js +2 -0
- package/dist/src/core/approvals/remembered-rules/types.js.map +1 -0
- package/dist/src/core/approvals/service.d.ts +13 -0
- package/dist/src/core/approvals/service.d.ts.map +1 -0
- package/dist/src/core/approvals/service.js +45 -0
- package/dist/src/core/approvals/service.js.map +1 -0
- package/dist/src/core/approvals/types.d.ts +24 -1
- package/dist/src/core/approvals/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/compaction/summarizer/service.d.ts.map +1 -1
- package/dist/src/core/chat/engine/compaction/summarizer/service.js +4 -4
- package/dist/src/core/chat/engine/compaction/summarizer/service.js.map +1 -1
- package/dist/src/core/chat/engine/compaction/types.d.ts +1 -1
- package/dist/src/core/chat/engine/compaction/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/context/turn-context-builder.js +2 -2
- package/dist/src/core/chat/engine/turns/context/turn-context-builder.js.map +1 -1
- package/dist/src/core/chat/engine/turns/host/types.d.ts +2 -2
- package/dist/src/core/chat/engine/turns/host/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.d.ts +1 -1
- package/dist/src/core/chat/engine/turns/memory/types.d.ts +2 -2
- package/dist/src/core/chat/engine/turns/memory/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/persistence/types.d.ts +2 -2
- package/dist/src/core/chat/engine/turns/persistence/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js +5 -5
- package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js.map +1 -1
- package/dist/src/core/chat/engine/turns/runtime/types.d.ts +1 -1
- package/dist/src/core/chat/engine/turns/runtime/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/turns/service.js +2 -2
- package/dist/src/core/chat/engine/turns/service.js.map +1 -1
- package/dist/src/core/chat/engine/turns/types.d.ts +4 -4
- package/dist/src/core/chat/engine/turns/types.d.ts.map +1 -1
- package/dist/src/core/chat/engine/types.d.ts +1 -1
- package/dist/src/core/commands/slash/modules/context.d.ts +2 -2
- package/dist/src/core/commands/slash/modules/context.d.ts.map +1 -1
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts +1 -1
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts.map +1 -1
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js +20 -18
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js.map +1 -1
- package/dist/src/core/heartbeat/checkpoint/index.d.ts +4 -0
- package/dist/src/core/heartbeat/checkpoint/index.d.ts.map +1 -0
- package/dist/src/core/heartbeat/checkpoint/index.js +3 -0
- package/dist/src/core/heartbeat/checkpoint/index.js.map +1 -0
- package/dist/src/core/heartbeat/checkpoint/repository.d.ts +9 -0
- package/dist/src/core/heartbeat/checkpoint/repository.d.ts.map +1 -0
- package/dist/src/core/heartbeat/checkpoint/repository.js +33 -0
- package/dist/src/core/heartbeat/checkpoint/repository.js.map +1 -0
- package/dist/src/core/heartbeat/checkpoint/service.d.ts +5 -0
- package/dist/src/core/heartbeat/checkpoint/service.d.ts.map +1 -0
- package/dist/src/core/heartbeat/checkpoint/service.js +24 -0
- package/dist/src/core/heartbeat/checkpoint/service.js.map +1 -0
- package/dist/src/core/heartbeat/checkpoint/types.d.ts +17 -0
- package/dist/src/core/heartbeat/checkpoint/types.d.ts.map +1 -0
- package/dist/src/core/heartbeat/checkpoint/types.js +2 -0
- package/dist/src/core/heartbeat/checkpoint/types.js.map +1 -0
- package/dist/src/core/heartbeat/index.d.ts +11 -0
- package/dist/src/core/heartbeat/index.d.ts.map +1 -0
- package/dist/src/core/heartbeat/index.js +6 -0
- package/dist/src/core/heartbeat/index.js.map +1 -0
- package/dist/src/core/heartbeat/scheduler/index.d.ts +4 -0
- package/dist/src/core/heartbeat/scheduler/index.d.ts.map +1 -0
- package/dist/src/core/heartbeat/scheduler/index.js +3 -0
- package/dist/src/core/heartbeat/scheduler/index.js.map +1 -0
- package/dist/src/core/heartbeat/scheduler/runner.d.ts +19 -0
- package/dist/src/core/heartbeat/scheduler/runner.d.ts.map +1 -0
- package/dist/src/core/heartbeat/scheduler/runner.js +16 -0
- package/dist/src/core/heartbeat/scheduler/runner.js.map +1 -0
- package/dist/src/core/heartbeat/scheduler/service.d.ts +8 -0
- package/dist/src/core/heartbeat/scheduler/service.d.ts.map +1 -0
- package/dist/src/core/heartbeat/scheduler/service.js +125 -0
- package/dist/src/core/heartbeat/scheduler/service.js.map +1 -0
- package/dist/src/core/{runtime/heartbeat-scheduler.d.ts → heartbeat/scheduler/types.d.ts} +5 -18
- package/dist/src/core/heartbeat/scheduler/types.d.ts.map +1 -0
- package/dist/src/core/heartbeat/scheduler/types.js +2 -0
- package/dist/src/core/heartbeat/scheduler/types.js.map +1 -0
- package/dist/src/core/heartbeat/tasks/index.d.ts +4 -0
- package/dist/src/core/heartbeat/tasks/index.d.ts.map +1 -0
- package/dist/src/core/heartbeat/tasks/index.js +3 -0
- package/dist/src/core/heartbeat/tasks/index.js.map +1 -0
- package/dist/src/core/heartbeat/tasks/repository.d.ts +24 -0
- package/dist/src/core/heartbeat/tasks/repository.d.ts.map +1 -0
- package/dist/src/core/heartbeat/tasks/repository.js +116 -0
- package/dist/src/core/heartbeat/tasks/repository.js.map +1 -0
- package/dist/src/core/heartbeat/tasks/schemas.d.ts +212 -0
- package/dist/src/core/heartbeat/tasks/schemas.d.ts.map +1 -0
- package/dist/src/core/heartbeat/tasks/schemas.js +78 -0
- package/dist/src/core/heartbeat/tasks/schemas.js.map +1 -0
- package/dist/src/core/heartbeat/tasks/task-state.d.ts +33 -0
- package/dist/src/core/heartbeat/tasks/task-state.d.ts.map +1 -0
- package/dist/src/core/heartbeat/tasks/task-state.js +122 -0
- package/dist/src/core/heartbeat/tasks/task-state.js.map +1 -0
- package/dist/src/core/{runtime/heartbeat-task-store.d.ts → heartbeat/tasks/types.d.ts} +24 -29
- package/dist/src/core/heartbeat/tasks/types.d.ts.map +1 -0
- package/dist/src/core/heartbeat/tasks/types.js +2 -0
- package/dist/src/core/heartbeat/tasks/types.js.map +1 -0
- package/dist/src/core/heartbeat/views/index.d.ts +4 -0
- package/dist/src/core/heartbeat/views/index.d.ts.map +1 -0
- package/dist/src/core/heartbeat/views/index.js +3 -0
- package/dist/src/core/heartbeat/views/index.js.map +1 -0
- package/dist/src/core/heartbeat/views/lucid-presenter.d.ts +20 -0
- package/dist/src/core/heartbeat/views/lucid-presenter.d.ts.map +1 -0
- package/dist/src/core/heartbeat/views/lucid-presenter.js +112 -0
- package/dist/src/core/heartbeat/views/lucid-presenter.js.map +1 -0
- package/dist/src/core/heartbeat/views/presenter.d.ts +22 -0
- package/dist/src/core/heartbeat/views/presenter.d.ts.map +1 -0
- package/dist/src/core/heartbeat/views/presenter.js +50 -0
- package/dist/src/core/heartbeat/views/presenter.js.map +1 -0
- package/dist/src/core/{runtime/heartbeat-lucid.d.ts → heartbeat/views/types.d.ts} +24 -8
- package/dist/src/core/heartbeat/views/types.d.ts.map +1 -0
- package/dist/src/core/heartbeat/views/types.js +2 -0
- package/dist/src/core/heartbeat/views/types.js.map +1 -0
- package/dist/src/core/heartbeat/wake/decision.d.ts +13 -0
- package/dist/src/core/heartbeat/wake/decision.d.ts.map +1 -0
- package/dist/src/core/heartbeat/wake/decision.js +24 -0
- package/dist/src/core/heartbeat/wake/decision.js.map +1 -0
- package/dist/src/core/heartbeat/wake/index.d.ts +5 -0
- package/dist/src/core/heartbeat/wake/index.d.ts.map +1 -0
- package/dist/src/core/heartbeat/wake/index.js +4 -0
- package/dist/src/core/heartbeat/wake/index.js.map +1 -0
- package/dist/src/core/heartbeat/wake/prompt.d.ts +11 -0
- package/dist/src/core/heartbeat/wake/prompt.d.ts.map +1 -0
- package/dist/src/core/heartbeat/wake/prompt.js +39 -0
- package/dist/src/core/heartbeat/wake/prompt.js.map +1 -0
- package/dist/src/core/heartbeat/wake/service.d.ts +6 -0
- package/dist/src/core/heartbeat/wake/service.d.ts.map +1 -0
- package/dist/src/core/heartbeat/wake/service.js +75 -0
- package/dist/src/core/heartbeat/wake/service.js.map +1 -0
- package/dist/src/core/heartbeat/wake/types.d.ts +33 -0
- package/dist/src/core/heartbeat/wake/types.d.ts.map +1 -0
- package/dist/src/core/heartbeat/wake/types.js +2 -0
- package/dist/src/core/heartbeat/wake/types.js.map +1 -0
- package/dist/src/core/llm/factory.js +2 -2
- package/dist/src/core/llm/factory.js.map +1 -1
- package/dist/src/core/llm/model-policy.d.ts +1 -1
- package/dist/src/core/llm/model-policy.d.ts.map +1 -1
- package/dist/src/core/memory/maintainer.js +2 -2
- package/dist/src/core/memory/maintainer.js.map +1 -1
- package/dist/src/core/observability/conversation-activity.d.ts +1 -1
- package/dist/src/core/observability/conversation-activity.d.ts.map +1 -1
- package/dist/src/core/runtime/credentials/index.d.ts +3 -0
- package/dist/src/core/runtime/credentials/index.d.ts.map +1 -0
- package/dist/src/core/runtime/credentials/index.js +2 -0
- package/dist/src/core/runtime/credentials/index.js.map +1 -0
- package/dist/src/core/runtime/credentials/service.d.ts +22 -0
- package/dist/src/core/runtime/credentials/service.d.ts.map +1 -0
- package/dist/src/core/runtime/credentials/service.js +83 -0
- package/dist/src/core/runtime/credentials/service.js.map +1 -0
- package/dist/src/core/runtime/credentials/types.d.ts +22 -0
- package/dist/src/core/runtime/credentials/types.d.ts.map +1 -0
- package/dist/src/core/runtime/credentials/types.js +2 -0
- package/dist/src/core/runtime/credentials/types.js.map +1 -0
- package/dist/src/core/runtime/daemon/host-resolver.d.ts +7 -0
- package/dist/src/core/runtime/daemon/host-resolver.d.ts.map +1 -0
- package/dist/src/core/runtime/daemon/host-resolver.js +61 -0
- package/dist/src/core/runtime/daemon/host-resolver.js.map +1 -0
- package/dist/src/core/runtime/daemon/index.d.ts +6 -0
- package/dist/src/core/runtime/daemon/index.d.ts.map +1 -0
- package/dist/src/core/runtime/daemon/index.js +5 -0
- package/dist/src/core/runtime/daemon/index.js.map +1 -0
- package/dist/src/core/runtime/daemon/messages.d.ts +13 -0
- package/dist/src/core/runtime/daemon/messages.d.ts.map +1 -0
- package/dist/src/core/runtime/daemon/messages.js +43 -0
- package/dist/src/core/runtime/daemon/messages.js.map +1 -0
- package/dist/src/core/runtime/daemon/registry-repository.d.ts +12 -0
- package/dist/src/core/runtime/daemon/registry-repository.d.ts.map +1 -0
- package/dist/src/core/runtime/daemon/registry-repository.js +33 -0
- package/dist/src/core/runtime/daemon/registry-repository.js.map +1 -0
- package/dist/src/core/runtime/daemon/registry-service.d.ts +16 -0
- package/dist/src/core/runtime/daemon/registry-service.d.ts.map +1 -0
- package/dist/src/core/runtime/daemon/registry-service.js +141 -0
- package/dist/src/core/runtime/daemon/registry-service.js.map +1 -0
- package/dist/src/core/runtime/daemon/schemas.d.ts +96 -0
- package/dist/src/core/runtime/daemon/schemas.d.ts.map +1 -0
- package/dist/src/core/runtime/daemon/schemas.js +36 -0
- package/dist/src/core/runtime/daemon/schemas.js.map +1 -0
- package/dist/src/core/runtime/daemon/types.d.ts +66 -0
- package/dist/src/core/runtime/daemon/types.d.ts.map +1 -0
- package/dist/src/core/runtime/daemon/types.js +2 -0
- package/dist/src/core/runtime/daemon/types.js.map +1 -0
- package/dist/src/core/runtime/loop/checkpoint.d.ts +33 -0
- package/dist/src/core/runtime/loop/checkpoint.d.ts.map +1 -0
- package/dist/src/core/runtime/loop/checkpoint.js +69 -0
- package/dist/src/core/runtime/loop/checkpoint.js.map +1 -0
- package/dist/src/core/runtime/loop/index.d.ts +4 -0
- package/dist/src/core/runtime/loop/index.d.ts.map +1 -0
- package/dist/src/core/runtime/loop/index.js +3 -0
- package/dist/src/core/runtime/loop/index.js.map +1 -0
- package/dist/src/core/runtime/loop/service.d.ts +11 -0
- package/dist/src/core/runtime/loop/service.d.ts.map +1 -0
- package/dist/src/core/runtime/loop/service.js +179 -0
- package/dist/src/core/runtime/loop/service.js.map +1 -0
- package/dist/src/core/runtime/{events.d.ts → loop/types.d.ts} +38 -38
- package/dist/src/core/runtime/loop/types.d.ts.map +1 -0
- package/dist/src/core/runtime/loop/types.js +2 -0
- package/dist/src/core/runtime/loop/types.js.map +1 -0
- package/dist/src/core/runtime/tools/index.d.ts +3 -0
- package/dist/src/core/runtime/tools/index.d.ts.map +1 -0
- package/dist/src/core/runtime/tools/index.js +2 -0
- package/dist/src/core/runtime/tools/index.js.map +1 -0
- package/dist/src/core/runtime/tools/service.d.ts +11 -0
- package/dist/src/core/runtime/tools/service.d.ts.map +1 -0
- package/dist/src/core/runtime/tools/service.js +54 -0
- package/dist/src/core/runtime/tools/service.js.map +1 -0
- package/dist/src/core/runtime/{default-tools.d.ts → tools/types.d.ts} +2 -4
- package/dist/src/core/runtime/tools/types.d.ts.map +1 -0
- package/dist/src/core/runtime/tools/types.js +2 -0
- package/dist/src/core/runtime/tools/types.js.map +1 -0
- package/dist/src/core/runtime/workspaces/index.d.ts +5 -0
- package/dist/src/core/runtime/workspaces/index.d.ts.map +1 -0
- package/dist/src/core/runtime/workspaces/index.js +4 -0
- package/dist/src/core/runtime/workspaces/index.js.map +1 -0
- package/dist/src/core/runtime/workspaces/repository.d.ts +14 -0
- package/dist/src/core/runtime/workspaces/repository.d.ts.map +1 -0
- package/dist/src/core/runtime/workspaces/repository.js +38 -0
- package/dist/src/core/runtime/workspaces/repository.js.map +1 -0
- package/dist/src/core/runtime/workspaces/schemas.d.ts +42 -0
- package/dist/src/core/runtime/workspaces/schemas.d.ts.map +1 -0
- package/dist/src/core/runtime/workspaces/schemas.js +26 -0
- package/dist/src/core/runtime/workspaces/schemas.js.map +1 -0
- package/dist/src/core/runtime/workspaces/service.d.ts +15 -0
- package/dist/src/core/runtime/workspaces/service.d.ts.map +1 -0
- package/dist/src/core/runtime/workspaces/service.js +177 -0
- package/dist/src/core/runtime/workspaces/service.js.map +1 -0
- package/dist/src/core/runtime/workspaces/types.d.ts +42 -0
- package/dist/src/core/runtime/workspaces/types.d.ts.map +1 -0
- package/dist/src/core/runtime/workspaces/types.js +2 -0
- package/dist/src/core/runtime/workspaces/types.js.map +1 -0
- package/dist/src/core/tools/toolkit.d.ts +1 -1
- package/dist/src/core/tools/toolkit.d.ts.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/view-image.d.ts +1 -1
- package/dist/src/core/tools/toolkits/external-context/view-image.d.ts.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/view-image.js +2 -2
- package/dist/src/core/tools/toolkits/external-context/view-image.js.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/web-search.d.ts +1 -1
- package/dist/src/core/tools/toolkits/external-context/web-search.d.ts.map +1 -1
- package/dist/src/core/tools/toolkits/external-context/web-search.js +2 -2
- package/dist/src/core/tools/toolkits/external-context/web-search.js.map +1 -1
- package/dist/src/core/types.d.ts +1 -1
- package/dist/src/index.d.ts +24 -26
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -14
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/cyberloop.d.ts +5 -4
- package/dist/src/integrations/cyberloop.d.ts.map +1 -1
- package/dist/src/integrations/cyberloop.js.map +1 -1
- package/dist/src/server/app.js +5 -5
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/ask.js +3 -3
- package/dist/src/server/features/control-plane/controllers/ask.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/chat-session-events.d.ts +1 -1
- package/dist/src/server/features/control-plane/controllers/chat-session-events.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js +7 -7
- package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/control-plane-state.js +7 -7
- package/dist/src/server/features/control-plane/controllers/control-plane-state.js.map +1 -1
- package/dist/src/server/features/control-plane/controllers/heartbeat.d.ts +6 -5
- package/dist/src/server/features/control-plane/controllers/heartbeat.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/controllers/heartbeat.js +31 -19
- package/dist/src/server/features/control-plane/controllers/heartbeat.js.map +1 -1
- package/dist/src/server/features/control-plane/router.d.ts +7 -7
- package/dist/src/server/features/control-plane/router.js +9 -9
- package/dist/src/server/features/control-plane/router.js.map +1 -1
- package/dist/src/server/features/control-plane/types.d.ts +5 -5
- package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/index.js +7 -7
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/router.d.ts +9 -9
- package/dist/src/server/types.d.ts +2 -2
- package/dist/src/server/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/src/cli/chat/state/approval-rules.d.ts +0 -3
- package/dist/src/cli/chat/state/approval-rules.d.ts.map +0 -1
- package/dist/src/cli/chat/state/approval-rules.js +0 -2
- package/dist/src/cli/chat/state/approval-rules.js.map +0 -1
- package/dist/src/core/agent/history.d.ts +0 -3
- package/dist/src/core/agent/history.d.ts.map +0 -1
- package/dist/src/core/agent/history.js +0 -36
- package/dist/src/core/agent/history.js.map +0 -1
- package/dist/src/core/agent/mutation-tracking.d.ts +0 -13
- package/dist/src/core/agent/mutation-tracking.d.ts.map +0 -1
- package/dist/src/core/agent/mutation-tracking.js +0 -71
- package/dist/src/core/agent/mutation-tracking.js.map +0 -1
- package/dist/src/core/agent/post-mutation.d.ts +0 -8
- package/dist/src/core/agent/post-mutation.d.ts.map +0 -1
- package/dist/src/core/agent/post-mutation.js +0 -9
- package/dist/src/core/agent/post-mutation.js.map +0 -1
- package/dist/src/core/agent/progress-reminders.d.ts +0 -10
- package/dist/src/core/agent/progress-reminders.d.ts.map +0 -1
- package/dist/src/core/agent/progress-reminders.js +0 -13
- package/dist/src/core/agent/progress-reminders.js.map +0 -1
- package/dist/src/core/agent/run-agent.d.ts +0 -41
- package/dist/src/core/agent/run-agent.d.ts.map +0 -1
- package/dist/src/core/agent/run-agent.js +0 -490
- package/dist/src/core/agent/run-agent.js.map +0 -1
- package/dist/src/core/agent/tool-dispatch.d.ts +0 -36
- package/dist/src/core/agent/tool-dispatch.d.ts.map +0 -1
- package/dist/src/core/agent/tool-dispatch.js +0 -120
- package/dist/src/core/agent/tool-dispatch.js.map +0 -1
- package/dist/src/core/agent/util.d.ts +0 -6
- package/dist/src/core/agent/util.d.ts.map +0 -1
- package/dist/src/core/agent/util.js.map +0 -1
- package/dist/src/core/approvals/default-policies.d.ts +0 -10
- package/dist/src/core/approvals/default-policies.d.ts.map +0 -1
- package/dist/src/core/approvals/default-policies.js +0 -37
- package/dist/src/core/approvals/default-policies.js.map +0 -1
- package/dist/src/core/approvals/policy-chain.d.ts +0 -9
- package/dist/src/core/approvals/policy-chain.d.ts.map +0 -1
- package/dist/src/core/approvals/policy-chain.js +0 -36
- package/dist/src/core/approvals/policy-chain.js.map +0 -1
- package/dist/src/core/approvals/remembered-rules.d.ts +0 -22
- package/dist/src/core/approvals/remembered-rules.d.ts.map +0 -1
- package/dist/src/core/approvals/remembered-rules.js +0 -284
- package/dist/src/core/approvals/remembered-rules.js.map +0 -1
- package/dist/src/core/approvals/surface.d.ts +0 -20
- package/dist/src/core/approvals/surface.d.ts.map +0 -1
- package/dist/src/core/approvals/surface.js +0 -22
- package/dist/src/core/approvals/surface.js.map +0 -1
- package/dist/src/core/runtime/agent-loop.d.ts +0 -45
- package/dist/src/core/runtime/agent-loop.d.ts.map +0 -1
- package/dist/src/core/runtime/agent-loop.js +0 -200
- package/dist/src/core/runtime/agent-loop.js.map +0 -1
- package/dist/src/core/runtime/api-keys.d.ts +0 -35
- package/dist/src/core/runtime/api-keys.d.ts.map +0 -1
- package/dist/src/core/runtime/api-keys.js +0 -78
- package/dist/src/core/runtime/api-keys.js.map +0 -1
- package/dist/src/core/runtime/daemon-registry.d.ts +0 -44
- package/dist/src/core/runtime/daemon-registry.d.ts.map +0 -1
- package/dist/src/core/runtime/daemon-registry.js +0 -147
- package/dist/src/core/runtime/daemon-registry.js.map +0 -1
- package/dist/src/core/runtime/default-tools.d.ts.map +0 -1
- package/dist/src/core/runtime/default-tools.js +0 -49
- package/dist/src/core/runtime/default-tools.js.map +0 -1
- package/dist/src/core/runtime/events.d.ts.map +0 -1
- package/dist/src/core/runtime/events.js +0 -41
- package/dist/src/core/runtime/events.js.map +0 -1
- package/dist/src/core/runtime/heartbeat-lucid.d.ts.map +0 -1
- package/dist/src/core/runtime/heartbeat-lucid.js +0 -188
- package/dist/src/core/runtime/heartbeat-lucid.js.map +0 -1
- package/dist/src/core/runtime/heartbeat-scheduler.d.ts.map +0 -1
- package/dist/src/core/runtime/heartbeat-scheduler.js +0 -135
- package/dist/src/core/runtime/heartbeat-scheduler.js.map +0 -1
- package/dist/src/core/runtime/heartbeat-store.d.ts +0 -20
- package/dist/src/core/runtime/heartbeat-store.d.ts.map +0 -1
- package/dist/src/core/runtime/heartbeat-store.js +0 -42
- package/dist/src/core/runtime/heartbeat-store.js.map +0 -1
- package/dist/src/core/runtime/heartbeat-task-state.d.ts +0 -5
- package/dist/src/core/runtime/heartbeat-task-state.d.ts.map +0 -1
- package/dist/src/core/runtime/heartbeat-task-state.js +0 -81
- package/dist/src/core/runtime/heartbeat-task-state.js.map +0 -1
- package/dist/src/core/runtime/heartbeat-task-store.d.ts.map +0 -1
- package/dist/src/core/runtime/heartbeat-task-store.js +0 -96
- package/dist/src/core/runtime/heartbeat-task-store.js.map +0 -1
- package/dist/src/core/runtime/heartbeat-views.d.ts +0 -52
- package/dist/src/core/runtime/heartbeat-views.d.ts.map +0 -1
- package/dist/src/core/runtime/heartbeat-views.js +0 -62
- package/dist/src/core/runtime/heartbeat-views.js.map +0 -1
- package/dist/src/core/runtime/heartbeat.d.ts +0 -41
- package/dist/src/core/runtime/heartbeat.d.ts.map +0 -1
- package/dist/src/core/runtime/heartbeat.js +0 -113
- package/dist/src/core/runtime/heartbeat.js.map +0 -1
- package/dist/src/core/runtime/runtime-hosts.d.ts +0 -30
- package/dist/src/core/runtime/runtime-hosts.d.ts.map +0 -1
- package/dist/src/core/runtime/runtime-hosts.js +0 -95
- package/dist/src/core/runtime/runtime-hosts.js.map +0 -1
- package/dist/src/core/runtime/workspaces.d.ts +0 -55
- package/dist/src/core/runtime/workspaces.d.ts.map +0 -1
- package/dist/src/core/runtime/workspaces.js +0 -168
- package/dist/src/core/runtime/workspaces.js.map +0 -1
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// Tool dispatch — approval, execution, fallback, and deduplication logic
|
|
3
|
-
// for the agent loop.
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
import { executeTool } from '../tools/execute-tool.js';
|
|
6
|
-
import { stableSerialize, normalizeToolInput } from './util.js';
|
|
7
|
-
import { defaultToolApprovalPolicies } from '../approvals/default-policies.js';
|
|
8
|
-
import { resolveToolApproval } from '../approvals/policy-chain.js';
|
|
9
|
-
export async function maybeDenyToolCall(args) {
|
|
10
|
-
const { call, tool, step, now, approveToolCall, record, log } = args;
|
|
11
|
-
if (!tool) {
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
14
|
-
const approval = await resolveToolApproval({
|
|
15
|
-
policies: [...defaultToolApprovalPolicies, ...(args.approvalPolicies ?? [])],
|
|
16
|
-
context: {
|
|
17
|
-
call,
|
|
18
|
-
tool,
|
|
19
|
-
workspaceRoot: args.workspaceRoot,
|
|
20
|
-
},
|
|
21
|
-
requestHumanApproval: approveToolCall ? async () => {
|
|
22
|
-
record({ type: 'tool.approval_requested', call, step, timestamp: now() });
|
|
23
|
-
const humanDecision = await approveToolCall(call, tool);
|
|
24
|
-
record({
|
|
25
|
-
type: 'tool.approval_resolved',
|
|
26
|
-
call,
|
|
27
|
-
approved: humanDecision.approved,
|
|
28
|
-
reason: humanDecision.reason,
|
|
29
|
-
step,
|
|
30
|
-
timestamp: now(),
|
|
31
|
-
});
|
|
32
|
-
return humanDecision;
|
|
33
|
-
} : undefined,
|
|
34
|
-
});
|
|
35
|
-
if (approval.approved) {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
const result = {
|
|
39
|
-
ok: false,
|
|
40
|
-
error: approval.reason ? `Approval denied for ${call.tool}: ${approval.reason}`
|
|
41
|
-
: `Approval denied for ${call.tool}`,
|
|
42
|
-
};
|
|
43
|
-
log.warn({ step, tool: call.tool, reason: approval.reason }, 'Tool execution denied by approval policy');
|
|
44
|
-
record({ type: 'tool.result', tool: call.tool, result, step, timestamp: now() });
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
export async function executeToolCallWithFallback(args) {
|
|
48
|
-
const primary = await executeRecordedToolCall(args.call, args);
|
|
49
|
-
const fallbackReason = getInspectFallbackReason(args.call, primary.result);
|
|
50
|
-
if (!fallbackReason) {
|
|
51
|
-
return primary;
|
|
52
|
-
}
|
|
53
|
-
const mutateTool = args.registry.get('run_shell_mutate');
|
|
54
|
-
if (!mutateTool) {
|
|
55
|
-
return primary;
|
|
56
|
-
}
|
|
57
|
-
const mutateCall = {
|
|
58
|
-
id: `${args.call.id}-mutate-fallback`,
|
|
59
|
-
tool: 'run_shell_mutate',
|
|
60
|
-
input: args.call.input,
|
|
61
|
-
};
|
|
62
|
-
args.record({
|
|
63
|
-
type: 'tool.fallback',
|
|
64
|
-
fromCall: args.call,
|
|
65
|
-
toCall: mutateCall,
|
|
66
|
-
reason: fallbackReason,
|
|
67
|
-
step: args.step,
|
|
68
|
-
timestamp: args.now(),
|
|
69
|
-
});
|
|
70
|
-
const approvalDeniedResult = await maybeDenyToolCall({
|
|
71
|
-
call: mutateCall,
|
|
72
|
-
tool: mutateTool,
|
|
73
|
-
step: args.step,
|
|
74
|
-
now: args.now,
|
|
75
|
-
approveToolCall: args.approveToolCall,
|
|
76
|
-
approvalPolicies: args.approvalPolicies,
|
|
77
|
-
workspaceRoot: args.workspaceRoot,
|
|
78
|
-
record: args.record,
|
|
79
|
-
log: args.log,
|
|
80
|
-
});
|
|
81
|
-
if (approvalDeniedResult) {
|
|
82
|
-
return { effectiveCall: mutateCall, result: approvalDeniedResult };
|
|
83
|
-
}
|
|
84
|
-
args.log.info({ step: args.step, from: args.call.tool, to: mutateCall.tool, reason: fallbackReason }, 'Retrying inspect failure through mutate fallback');
|
|
85
|
-
return executeRecordedToolCall(mutateCall, args);
|
|
86
|
-
}
|
|
87
|
-
async function executeRecordedToolCall(call, args) {
|
|
88
|
-
const { step, now, registry, seenToolCalls, record, log } = args;
|
|
89
|
-
log.info({ step, tool: call.tool }, 'Executing tool');
|
|
90
|
-
record({ type: 'tool.call', call, step, timestamp: now() });
|
|
91
|
-
const signature = `${call.tool}:${stableSerialize(normalizeToolInput(call.tool, call.input))}`;
|
|
92
|
-
const seenCount = seenToolCalls.get(signature) ?? 0;
|
|
93
|
-
if (seenCount >= 2) {
|
|
94
|
-
log.warn({ step, tool: call.tool, repeatCount: seenCount + 1 }, 'Executing repeated identical tool call; warning only');
|
|
95
|
-
}
|
|
96
|
-
const result = await executeTool(registry, call);
|
|
97
|
-
seenToolCalls.set(signature, seenCount + 1);
|
|
98
|
-
log.debug({ step, tool: call.tool, ok: result.ok }, 'Tool result');
|
|
99
|
-
record({ type: 'tool.result', tool: call.tool, result, step, timestamp: now() });
|
|
100
|
-
return { effectiveCall: call, result };
|
|
101
|
-
}
|
|
102
|
-
function getInspectFallbackReason(call, result) {
|
|
103
|
-
if (call.tool !== 'run_shell_inspect' || result.ok) {
|
|
104
|
-
return undefined;
|
|
105
|
-
}
|
|
106
|
-
return getInspectMutateFallbackReason(result.error);
|
|
107
|
-
}
|
|
108
|
-
function getInspectMutateFallbackReason(error) {
|
|
109
|
-
if (!error) {
|
|
110
|
-
return undefined;
|
|
111
|
-
}
|
|
112
|
-
if (error.includes('run_shell_inspect policy')) {
|
|
113
|
-
return 'inspect policy rejected the command';
|
|
114
|
-
}
|
|
115
|
-
if (error.includes('Inspect mode permits read-only pipes')) {
|
|
116
|
-
return 'inspect shell restrictions rejected the command';
|
|
117
|
-
}
|
|
118
|
-
return undefined;
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=tool-dispatch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-dispatch.js","sourceRoot":"","sources":["../../../../src/core/agent/tool-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare function extractShellCommand(input: unknown): string | undefined;
|
|
2
|
-
export declare function stableSerialize(value: unknown): string;
|
|
3
|
-
export declare function normalizeToolInput(tool: string, input: unknown): unknown;
|
|
4
|
-
export declare function isRecoverableToolError(error: string | undefined): boolean;
|
|
5
|
-
export declare function isAbortError(err: unknown): boolean;
|
|
6
|
-
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/util.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOtE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAoBxE;AAWD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAMzE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAUlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/core/agent/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ToolApprovalPolicy, ToolApprovalPolicyContext } from './types.js';
|
|
2
|
-
export declare const toolRequiresApprovalPolicy: ToolApprovalPolicy;
|
|
3
|
-
export declare const outsideWorkspaceInspectionPolicy: ToolApprovalPolicy;
|
|
4
|
-
export declare function rememberedApprovalPolicy(args: {
|
|
5
|
-
isApproved: (context: ToolApprovalPolicyContext) => boolean;
|
|
6
|
-
reason?: string;
|
|
7
|
-
}): ToolApprovalPolicy;
|
|
8
|
-
export declare const defaultToolApprovalPolicies: ToolApprovalPolicy[];
|
|
9
|
-
export declare function isOutsideWorkspaceInspectionCall(contextOrCall: ToolApprovalPolicyContext | ToolApprovalPolicyContext['call'], workspaceRoot?: string): boolean;
|
|
10
|
-
//# sourceMappingURL=default-policies.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-policies.d.ts","sourceRoot":"","sources":["../../../../src/core/approvals/default-policies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,0BAA0B,EAAE,kBAC0D,CAAC;AAEpG,eAAO,MAAM,gCAAgC,EAAE,kBAGlC,CAAC;AAEd,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,kBAAkB,CAKrB;AAED,eAAO,MAAM,2BAA2B,EAAE,kBAAkB,EAG3D,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,yBAAyB,GAAG,yBAAyB,CAAC,MAAM,CAAC,EAC5E,aAAa,SAAgB,GAC5B,OAAO,CAwBT"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { isAbsolute, relative, resolve } from 'node:path';
|
|
2
|
-
export const toolRequiresApprovalPolicy = ({ tool }) => tool.requiresApproval ? { type: 'request', reason: `${tool.name} requires approval` } : undefined;
|
|
3
|
-
export const outsideWorkspaceInspectionPolicy = ({ call, workspaceRoot }) => isOutsideWorkspaceInspectionCall(call, workspaceRoot) ?
|
|
4
|
-
{ type: 'request', reason: `${call.tool} targets a path outside the workspace` }
|
|
5
|
-
: undefined;
|
|
6
|
-
export function rememberedApprovalPolicy(args) {
|
|
7
|
-
return (context) => args.isApproved(context) ?
|
|
8
|
-
{ type: 'allow', reason: args.reason ?? 'Approved by saved project rule' }
|
|
9
|
-
: undefined;
|
|
10
|
-
}
|
|
11
|
-
export const defaultToolApprovalPolicies = [
|
|
12
|
-
toolRequiresApprovalPolicy,
|
|
13
|
-
outsideWorkspaceInspectionPolicy,
|
|
14
|
-
];
|
|
15
|
-
export function isOutsideWorkspaceInspectionCall(contextOrCall, workspaceRoot = process.cwd()) {
|
|
16
|
-
const call = 'call' in contextOrCall ? contextOrCall.call : contextOrCall;
|
|
17
|
-
if (!['read_file', 'list_files', 'search_files', 'edit_file'].includes(call.tool)) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
const input = call.input;
|
|
21
|
-
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
const record = input;
|
|
25
|
-
const rawPath = typeof record.path === 'string'
|
|
26
|
-
? record.path
|
|
27
|
-
: call.tool === 'search_files' ? '.'
|
|
28
|
-
: undefined;
|
|
29
|
-
if (!rawPath) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
const resolvedWorkspaceRoot = resolve(workspaceRoot);
|
|
33
|
-
const resolvedTarget = resolve(resolvedWorkspaceRoot, rawPath);
|
|
34
|
-
const relativeTarget = relative(resolvedWorkspaceRoot, resolvedTarget);
|
|
35
|
-
return relativeTarget.startsWith('..') || isAbsolute(relativeTarget);
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=default-policies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-policies.js","sourceRoot":"","sources":["../../../../src/core/approvals/default-policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAM1D,MAAM,CAAC,MAAM,0BAA0B,GAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACzE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAEpG,MAAM,CAAC,MAAM,gCAAgC,GAAuB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAC9F,gCAAgC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IACrD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,uCAAuC,EAAE;IAClF,CAAC,CAAC,SAAS,CAAC;AAEd,MAAM,UAAU,wBAAwB,CAAC,IAGxC;IACC,OAAO,CAAC,OAAO,EAAE,EAAE,CACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,gCAAgC,EAAE;QAC5E,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAyB;IAC/D,0BAA0B;IAC1B,gCAAgC;CACjC,CAAC;AAEF,MAAM,UAAU,gCAAgC,CAC9C,aAA4E,EAC5E,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;IAE7B,MAAM,IAAI,GAAG,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC7C,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,GAAG;YACpC,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,QAAQ,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;IACvE,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ToolApprovalDecision, ToolApprovalPolicy, ToolApprovalPolicyContext, ToolApprovalPolicyDecision } from './types.js';
|
|
2
|
-
export declare function evaluateToolApprovalPolicies(policies: ToolApprovalPolicy[], context: ToolApprovalPolicyContext): Promise<ToolApprovalPolicyDecision | undefined>;
|
|
3
|
-
export type ResolveToolApprovalArgs = {
|
|
4
|
-
policies: ToolApprovalPolicy[];
|
|
5
|
-
context: ToolApprovalPolicyContext;
|
|
6
|
-
requestHumanApproval?: (context: ToolApprovalPolicyContext, reason?: string) => Promise<ToolApprovalDecision>;
|
|
7
|
-
};
|
|
8
|
-
export declare function resolveToolApproval(args: ResolveToolApprovalArgs): Promise<ToolApprovalDecision>;
|
|
9
|
-
//# sourceMappingURL=policy-chain.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policy-chain.d.ts","sourceRoot":"","sources":["../../../../src/core/approvals/policy-chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CASjD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,OAAO,EAAE,yBAAyB,CAAC;IACnC,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC/G,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgCtG"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export async function evaluateToolApprovalPolicies(policies, context) {
|
|
2
|
-
for (const policy of policies) {
|
|
3
|
-
const decision = await policy(context);
|
|
4
|
-
if (decision) {
|
|
5
|
-
return decision;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
export async function resolveToolApproval(args) {
|
|
11
|
-
let requestReason;
|
|
12
|
-
for (const policy of args.policies) {
|
|
13
|
-
const decision = await policy(args.context);
|
|
14
|
-
if (!decision) {
|
|
15
|
-
continue;
|
|
16
|
-
}
|
|
17
|
-
if (decision.type === 'deny') {
|
|
18
|
-
return { approved: false, reason: decision.reason };
|
|
19
|
-
}
|
|
20
|
-
if (decision.type === 'allow') {
|
|
21
|
-
return { approved: true, reason: decision.reason };
|
|
22
|
-
}
|
|
23
|
-
requestReason ??= decision.reason;
|
|
24
|
-
}
|
|
25
|
-
if (!requestReason) {
|
|
26
|
-
return { approved: true };
|
|
27
|
-
}
|
|
28
|
-
if (!args.requestHumanApproval) {
|
|
29
|
-
return {
|
|
30
|
-
approved: false,
|
|
31
|
-
reason: `No approval handler configured for ${args.context.call.tool}${requestReason ? `: ${requestReason}` : ''}`,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return args.requestHumanApproval(args.context, requestReason);
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=policy-chain.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policy-chain.js","sourceRoot":"","sources":["../../../../src/core/approvals/policy-chain.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,QAA8B,EAC9B,OAAkC;IAElC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAA6B;IACrE,IAAI,aAAiC,CAAC;IAEtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtD,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,aAAa,KAAK,QAAQ,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,sCAAsC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;SACnH,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { ToolCall } from '../types.js';
|
|
2
|
-
import { type RunShellCapability, type RunShellScope } from '../tools/toolkits/shell-process/run-shell.js';
|
|
3
|
-
type ApprovalMode = 'exact' | 'prefix' | 'tool';
|
|
4
|
-
type ApprovalRuleTool = 'run_shell_mutate' | 'edit_file' | 'read_file' | 'list_files';
|
|
5
|
-
export type ProjectApprovalRule = {
|
|
6
|
-
tool: ApprovalRuleTool;
|
|
7
|
-
mode: ApprovalMode;
|
|
8
|
-
command: string;
|
|
9
|
-
scope: RunShellScope | 'workspace' | 'outside_workspace';
|
|
10
|
-
capability: RunShellCapability | 'file_edit' | 'file_inspection';
|
|
11
|
-
createdAt: string;
|
|
12
|
-
};
|
|
13
|
-
export declare function loadProjectApprovalRules(filePath: string): ProjectApprovalRule[];
|
|
14
|
-
export declare function saveProjectApprovalRules(filePath: string, rules: ProjectApprovalRule[]): void;
|
|
15
|
-
export declare function normalizeApprovedCommand(command: string): string;
|
|
16
|
-
export declare function findMatchingApprovalRule(rules: ProjectApprovalRule[], tool: string, input: unknown): ProjectApprovalRule | undefined;
|
|
17
|
-
export declare function createProjectApprovalRule(command: string): ProjectApprovalRule;
|
|
18
|
-
export declare function createProjectApprovalRuleForCall(call: ToolCall): ProjectApprovalRule | undefined;
|
|
19
|
-
export declare function describeProjectApprovalRule(rule: ProjectApprovalRule): string;
|
|
20
|
-
export declare function extractApprovalTarget(tool: string, input: unknown): string | undefined;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=remembered-rules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remembered-rules.d.ts","sourceRoot":"","sources":["../../../../src/core/approvals/remembered-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,8CAA8C,CAAC;AAEtD,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAChD,KAAK,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,GAAG,WAAW,GAAG,mBAAmB,CAAC;IACzD,UAAU,EAAE,kBAAkB,GAAG,WAAW,GAAG,iBAAiB,CAAC;IACjE,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAoBhF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAGtF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,mBAAmB,GAAG,SAAS,CAqBjC;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAE9E;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,QAAQ,GAAG,mBAAmB,GAAG,SAAS,CA8BhG;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAc7E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA4BtF"}
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { dirname } from 'node:path';
|
|
3
|
-
import { classifyShellCommandPolicy, DEFAULT_MUTATE_RULES, } from '../tools/toolkits/shell-process/run-shell.js';
|
|
4
|
-
export function loadProjectApprovalRules(filePath) {
|
|
5
|
-
try {
|
|
6
|
-
if (!existsSync(filePath)) {
|
|
7
|
-
return [];
|
|
8
|
-
}
|
|
9
|
-
const raw = readFileSync(filePath, 'utf8');
|
|
10
|
-
const parsed = JSON.parse(raw);
|
|
11
|
-
if (!Array.isArray(parsed)) {
|
|
12
|
-
return [];
|
|
13
|
-
}
|
|
14
|
-
const rules = parsed.flatMap((value) => parseProjectApprovalRule(value));
|
|
15
|
-
return dedupeApprovalRules(rules);
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
process.stderr.write(`Failed to load project approval rules from ${filePath}: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export function saveProjectApprovalRules(filePath, rules) {
|
|
23
|
-
mkdirSync(dirname(filePath), { recursive: true });
|
|
24
|
-
writeFileSync(filePath, `${JSON.stringify(rules, null, 2)}\n`);
|
|
25
|
-
}
|
|
26
|
-
export function normalizeApprovedCommand(command) {
|
|
27
|
-
return canonicalizeVerificationCommand(command.trim().replace(/\s+/g, ' '));
|
|
28
|
-
}
|
|
29
|
-
export function findMatchingApprovalRule(rules, tool, input) {
|
|
30
|
-
const target = extractApprovalTarget(tool, input);
|
|
31
|
-
if (!target) {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
return rules.find((rule) => {
|
|
35
|
-
if (rule.tool !== tool) {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
if (rule.mode === 'tool') {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
if (rule.mode === 'prefix') {
|
|
42
|
-
return target === rule.command || target.startsWith(`${rule.command} `);
|
|
43
|
-
}
|
|
44
|
-
return rule.command === target;
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
export function createProjectApprovalRule(command) {
|
|
48
|
-
return createShellApprovalRule(normalizeApprovedCommand(command));
|
|
49
|
-
}
|
|
50
|
-
export function createProjectApprovalRuleForCall(call) {
|
|
51
|
-
if (call.tool === 'edit_file') {
|
|
52
|
-
return {
|
|
53
|
-
tool: 'edit_file',
|
|
54
|
-
mode: 'tool',
|
|
55
|
-
command: '*',
|
|
56
|
-
scope: 'workspace',
|
|
57
|
-
capability: 'file_edit',
|
|
58
|
-
createdAt: new Date().toISOString(),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
if (call.tool === 'read_file' || call.tool === 'list_files') {
|
|
62
|
-
const target = extractApprovalTarget(call.tool, call.input);
|
|
63
|
-
return target ? {
|
|
64
|
-
tool: call.tool,
|
|
65
|
-
mode: 'exact',
|
|
66
|
-
command: target,
|
|
67
|
-
scope: 'outside_workspace',
|
|
68
|
-
capability: 'file_inspection',
|
|
69
|
-
createdAt: new Date().toISOString(),
|
|
70
|
-
} : undefined;
|
|
71
|
-
}
|
|
72
|
-
if (call.tool !== 'run_shell_mutate') {
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
const target = extractApprovalTarget(call.tool, call.input);
|
|
76
|
-
return target ? createShellApprovalRule(target) : undefined;
|
|
77
|
-
}
|
|
78
|
-
export function describeProjectApprovalRule(rule) {
|
|
79
|
-
if (rule.tool === 'edit_file') {
|
|
80
|
-
return 'allow edit_file for this project';
|
|
81
|
-
}
|
|
82
|
-
if (rule.tool === 'read_file' || rule.tool === 'list_files') {
|
|
83
|
-
return `allow ${rule.tool} for this project`;
|
|
84
|
-
}
|
|
85
|
-
if (rule.mode === 'prefix') {
|
|
86
|
-
return `allow ${rule.command} command family for this project`;
|
|
87
|
-
}
|
|
88
|
-
return 'allow exact command';
|
|
89
|
-
}
|
|
90
|
-
export function extractApprovalTarget(tool, input) {
|
|
91
|
-
if (tool === 'run_shell_mutate') {
|
|
92
|
-
if (typeof input === 'string') {
|
|
93
|
-
return normalizeApprovedCommand(input);
|
|
94
|
-
}
|
|
95
|
-
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
96
|
-
return undefined;
|
|
97
|
-
}
|
|
98
|
-
const command = input.command;
|
|
99
|
-
return typeof command === 'string' && command.trim() ? normalizeApprovedCommand(command) : undefined;
|
|
100
|
-
}
|
|
101
|
-
if (tool === 'edit_file' || tool === 'read_file' || tool === 'list_files') {
|
|
102
|
-
if (typeof input === 'string') {
|
|
103
|
-
return normalizeApprovalPath(input);
|
|
104
|
-
}
|
|
105
|
-
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
106
|
-
return undefined;
|
|
107
|
-
}
|
|
108
|
-
const path = input.path;
|
|
109
|
-
return typeof path === 'string' && path.trim() ? normalizeApprovalPath(path) : undefined;
|
|
110
|
-
}
|
|
111
|
-
return undefined;
|
|
112
|
-
}
|
|
113
|
-
function createShellApprovalRule(command) {
|
|
114
|
-
const policy = classifyShellCommandPolicy(command, {
|
|
115
|
-
toolName: 'run_shell_mutate',
|
|
116
|
-
rules: DEFAULT_MUTATE_RULES,
|
|
117
|
-
allowUnknown: true,
|
|
118
|
-
});
|
|
119
|
-
if (!('error' in policy) && shouldUseVerificationPrefixApproval(command, policy.scope, policy.capability)) {
|
|
120
|
-
return {
|
|
121
|
-
tool: 'run_shell_mutate',
|
|
122
|
-
mode: 'prefix',
|
|
123
|
-
command: buildVerificationPrefix(command),
|
|
124
|
-
scope: policy.scope,
|
|
125
|
-
capability: policy.capability,
|
|
126
|
-
createdAt: new Date().toISOString(),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
if (!('error' in policy)) {
|
|
130
|
-
return {
|
|
131
|
-
tool: 'run_shell_mutate',
|
|
132
|
-
mode: 'exact',
|
|
133
|
-
command,
|
|
134
|
-
scope: policy.scope,
|
|
135
|
-
capability: policy.capability,
|
|
136
|
-
createdAt: new Date().toISOString(),
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
return {
|
|
140
|
-
tool: 'run_shell_mutate',
|
|
141
|
-
mode: 'exact',
|
|
142
|
-
command,
|
|
143
|
-
scope: 'workspace',
|
|
144
|
-
capability: 'unknown_workspace',
|
|
145
|
-
createdAt: new Date().toISOString(),
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
function shouldUseVerificationPrefixApproval(command, scope, capability) {
|
|
149
|
-
if (scope !== 'workspace' || capability !== 'verification') {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
return buildVerificationPrefix(command) !== command;
|
|
153
|
-
}
|
|
154
|
-
function buildVerificationPrefix(command) {
|
|
155
|
-
const argv = command.split(' ').filter(Boolean);
|
|
156
|
-
if (argv.length === 0) {
|
|
157
|
-
return command;
|
|
158
|
-
}
|
|
159
|
-
if (argv[0] === 'yarn' && typeof argv[1] === 'string' && !argv[1].startsWith('-')) {
|
|
160
|
-
return `${argv[0]} ${argv[1]}`;
|
|
161
|
-
}
|
|
162
|
-
if (argv[0] === 'vitest' && typeof argv[1] === 'string' && !argv[1].startsWith('-')) {
|
|
163
|
-
return `${argv[0]} ${argv[1]}`;
|
|
164
|
-
}
|
|
165
|
-
if (argv[0] === 'tsc') {
|
|
166
|
-
return 'tsc';
|
|
167
|
-
}
|
|
168
|
-
return command;
|
|
169
|
-
}
|
|
170
|
-
function canonicalizeVerificationCommand(command) {
|
|
171
|
-
const argv = command.split(' ').filter(Boolean);
|
|
172
|
-
if (argv.length === 0) {
|
|
173
|
-
return command;
|
|
174
|
-
}
|
|
175
|
-
if (argv[0] === 'npx' && typeof argv[1] === 'string') {
|
|
176
|
-
if (argv[1] === 'tsc') {
|
|
177
|
-
return ['tsc', ...argv.slice(2)].join(' ');
|
|
178
|
-
}
|
|
179
|
-
if (argv[1] === 'vitest') {
|
|
180
|
-
return ['vitest', ...argv.slice(2)].join(' ');
|
|
181
|
-
}
|
|
182
|
-
if (argv[1] === 'eslint') {
|
|
183
|
-
return ['eslint', ...argv.slice(2)].join(' ');
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (argv[0] === './node_modules/.bin/tsc' || argv[0] === 'node_modules/.bin/tsc') {
|
|
187
|
-
return ['tsc', ...argv.slice(1)].join(' ');
|
|
188
|
-
}
|
|
189
|
-
if (argv[0] === './node_modules/.bin/vitest' || argv[0] === 'node_modules/.bin/vitest') {
|
|
190
|
-
return ['vitest', ...argv.slice(1)].join(' ');
|
|
191
|
-
}
|
|
192
|
-
if (argv[0] === './node_modules/.bin/eslint' || argv[0] === 'node_modules/.bin/eslint') {
|
|
193
|
-
return ['eslint', ...argv.slice(1)].join(' ');
|
|
194
|
-
}
|
|
195
|
-
return command;
|
|
196
|
-
}
|
|
197
|
-
function normalizeApprovalPath(path) {
|
|
198
|
-
const trimmed = path.trim();
|
|
199
|
-
if (trimmed === './' || trimmed === '.') {
|
|
200
|
-
return '.';
|
|
201
|
-
}
|
|
202
|
-
return trimmed.replace(/\/+$/, '') || '.';
|
|
203
|
-
}
|
|
204
|
-
function buildLegacyVerificationPrefix(command) {
|
|
205
|
-
const argv = command.split(' ').filter(Boolean);
|
|
206
|
-
if (argv[0] !== 'yarn') {
|
|
207
|
-
return undefined;
|
|
208
|
-
}
|
|
209
|
-
const subcommand = argv[1];
|
|
210
|
-
if (subcommand === 'test' || subcommand === 'build' || subcommand === 'lint' || subcommand === 'vitest') {
|
|
211
|
-
return `yarn ${subcommand}`;
|
|
212
|
-
}
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
function parseProjectApprovalRule(value) {
|
|
216
|
-
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
217
|
-
return [];
|
|
218
|
-
}
|
|
219
|
-
const candidate = value;
|
|
220
|
-
if (candidate.tool === 'run_shell_mutate' && typeof candidate.command === 'string' && typeof candidate.createdAt === 'string') {
|
|
221
|
-
if (candidate.mode === 'exact' || candidate.mode === 'prefix') {
|
|
222
|
-
return [{
|
|
223
|
-
tool: 'run_shell_mutate',
|
|
224
|
-
mode: candidate.mode,
|
|
225
|
-
command: normalizeApprovedCommand(candidate.command),
|
|
226
|
-
scope: candidate.scope === 'external' ? 'external' : candidate.scope === 'inspect' ? 'inspect' : 'workspace',
|
|
227
|
-
capability: typeof candidate.capability === 'string' ? candidate.capability : 'unknown_workspace',
|
|
228
|
-
createdAt: candidate.createdAt,
|
|
229
|
-
}];
|
|
230
|
-
}
|
|
231
|
-
const normalizedCommand = normalizeApprovedCommand(candidate.command);
|
|
232
|
-
const legacyVerificationPrefix = buildLegacyVerificationPrefix(normalizedCommand);
|
|
233
|
-
if (legacyVerificationPrefix) {
|
|
234
|
-
return [{
|
|
235
|
-
tool: 'run_shell_mutate',
|
|
236
|
-
mode: 'prefix',
|
|
237
|
-
command: legacyVerificationPrefix,
|
|
238
|
-
scope: 'workspace',
|
|
239
|
-
capability: 'verification',
|
|
240
|
-
createdAt: candidate.createdAt,
|
|
241
|
-
}];
|
|
242
|
-
}
|
|
243
|
-
const migrated = createShellApprovalRule(normalizedCommand);
|
|
244
|
-
return [{ ...migrated, createdAt: candidate.createdAt }];
|
|
245
|
-
}
|
|
246
|
-
if (candidate.tool === 'edit_file' && typeof candidate.createdAt === 'string') {
|
|
247
|
-
if (candidate.mode === 'tool') {
|
|
248
|
-
return [{
|
|
249
|
-
tool: 'edit_file',
|
|
250
|
-
mode: 'tool',
|
|
251
|
-
command: '*',
|
|
252
|
-
scope: 'workspace',
|
|
253
|
-
capability: 'file_edit',
|
|
254
|
-
createdAt: candidate.createdAt,
|
|
255
|
-
}];
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
if ((candidate.tool === 'read_file' || candidate.tool === 'list_files') &&
|
|
259
|
-
candidate.mode === 'exact' &&
|
|
260
|
-
typeof candidate.command === 'string' &&
|
|
261
|
-
typeof candidate.createdAt === 'string') {
|
|
262
|
-
return [{
|
|
263
|
-
tool: candidate.tool,
|
|
264
|
-
mode: 'exact',
|
|
265
|
-
command: normalizeApprovalPath(candidate.command),
|
|
266
|
-
scope: 'outside_workspace',
|
|
267
|
-
capability: 'file_inspection',
|
|
268
|
-
createdAt: candidate.createdAt,
|
|
269
|
-
}];
|
|
270
|
-
}
|
|
271
|
-
return [];
|
|
272
|
-
}
|
|
273
|
-
function dedupeApprovalRules(rules) {
|
|
274
|
-
const seen = new Set();
|
|
275
|
-
return rules.filter((rule) => {
|
|
276
|
-
const key = `${rule.tool}:${rule.mode}:${rule.command}`;
|
|
277
|
-
if (seen.has(key)) {
|
|
278
|
-
return false;
|
|
279
|
-
}
|
|
280
|
-
seen.add(key);
|
|
281
|
-
return true;
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
//# sourceMappingURL=remembered-rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remembered-rules.js","sourceRoot":"","sources":["../../../../src/core/approvals/remembered-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { ToolCall, ToolDefinition } from '../types.js';
|
|
2
|
-
import type { ToolApprovalDecision, ToolApprovalPolicy, ToolApprovalSurface } from './types.js';
|
|
3
|
-
export type PendingToolApprovalView = {
|
|
4
|
-
tool: string;
|
|
5
|
-
callId: string;
|
|
6
|
-
input: unknown;
|
|
7
|
-
requestedAt: string;
|
|
8
|
-
};
|
|
9
|
-
export declare function requestToolApproval(args: {
|
|
10
|
-
call: ToolCall;
|
|
11
|
-
tool: ToolDefinition;
|
|
12
|
-
createView?: (call: ToolCall, tool: ToolDefinition) => PendingToolApprovalView;
|
|
13
|
-
publish?: (view: PendingToolApprovalView, call: ToolCall, tool: ToolDefinition) => void;
|
|
14
|
-
storePending?: (pending: {
|
|
15
|
-
view: PendingToolApprovalView;
|
|
16
|
-
resolve: (decision: ToolApprovalDecision) => void;
|
|
17
|
-
}) => void;
|
|
18
|
-
}): Promise<ToolApprovalDecision>;
|
|
19
|
-
export declare function humanApprovalPolicy(surface: ToolApprovalSurface): ToolApprovalPolicy;
|
|
20
|
-
//# sourceMappingURL=surface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../../../src/core/approvals/surface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,KAAK,uBAAuB,CAAC;IAC/E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,uBAAuB,CAAC;QAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;CACxH,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAchC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAOpF"}
|