@roackb2/heddle 0.0.37 → 1.0.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 +11 -0
- package/dist/examples/conversation-engine.d.ts +2 -0
- package/dist/examples/conversation-engine.d.ts.map +1 -0
- package/dist/examples/conversation-engine.js +127 -0
- package/dist/examples/conversation-engine.js.map +1 -0
- package/dist/examples/repo-investigator.js +1 -2
- package/dist/examples/repo-investigator.js.map +1 -1
- package/dist/src/cli/ask.d.ts.map +1 -1
- package/dist/src/cli/ask.js +22 -3
- package/dist/src/cli/ask.js.map +1 -1
- package/dist/src/cli/chat/App.js +43 -27
- package/dist/src/cli/chat/App.js.map +1 -1
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts +5 -0
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts.map +1 -0
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.js +43 -0
- package/dist/src/cli/chat/adapters/conversation-activity-adapter.js.map +1 -0
- package/dist/src/cli/chat/adapters/slash-command-context.d.ts +4 -0
- package/dist/src/cli/chat/adapters/slash-command-context.d.ts.map +1 -0
- package/dist/src/cli/chat/adapters/slash-command-context.js +48 -0
- package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -0
- package/dist/src/cli/chat/commands/debug-snapshot-command.d.ts +7 -0
- package/dist/src/cli/chat/commands/debug-snapshot-command.d.ts.map +1 -0
- package/dist/src/cli/chat/commands/debug-snapshot-command.js +25 -0
- package/dist/src/cli/chat/commands/debug-snapshot-command.js.map +1 -0
- package/dist/src/cli/chat/components/ApprovalComposer.js.map +1 -1
- package/dist/src/cli/chat/components/ConversationPanel.d.ts +42 -1
- package/dist/src/cli/chat/components/ConversationPanel.d.ts.map +1 -1
- package/dist/src/cli/chat/components/ConversationPanel.js +114 -67
- package/dist/src/cli/chat/components/ConversationPanel.js.map +1 -1
- package/dist/src/cli/chat/components/ModelPickerPanel.d.ts +2 -1
- package/dist/src/cli/chat/components/ModelPickerPanel.d.ts.map +1 -1
- package/dist/src/cli/chat/components/ModelPickerPanel.js +8 -4
- package/dist/src/cli/chat/components/ModelPickerPanel.js.map +1 -1
- package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts +2 -1
- package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts.map +1 -1
- package/dist/src/cli/chat/debug/tui-debug-snapshot.js +14 -1
- package/dist/src/cli/chat/debug/tui-debug-snapshot.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-agent-turn-result.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/tui-agent-turn-result.js +3 -2
- package/dist/src/cli/chat/hooks/tui-agent-turn-result.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-compaction-status.d.ts +1 -1
- package/dist/src/cli/chat/hooks/tui-compaction-status.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/tui-compaction-status.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-direct-shell-result.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/tui-direct-shell-result.js +2 -1
- package/dist/src/cli/chat/hooks/tui-direct-shell-result.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-direct-shell.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/tui-direct-shell.js +21 -7
- package/dist/src/cli/chat/hooks/tui-direct-shell.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.d.ts +2 -2
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.js +6 -5
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-run-loop-events.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/tui-run-loop-events.js +13 -9
- package/dist/src/cli/chat/hooks/tui-run-loop-events.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-tool-approval.d.ts +8 -3
- package/dist/src/cli/chat/hooks/tui-tool-approval.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/tui-tool-approval.js +33 -25
- package/dist/src/cli/chat/hooks/tui-tool-approval.js.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.d.ts +2 -2
- package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.js +2 -2
- package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
- package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts +2 -2
- package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useApprovalFlow.js +3 -3
- package/dist/src/cli/chat/hooks/useApprovalFlow.js.map +1 -1
- package/dist/src/cli/chat/hooks/useChatPickers.d.ts +6 -3
- package/dist/src/cli/chat/hooks/useChatPickers.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useChatPickers.js +17 -4
- package/dist/src/cli/chat/hooks/useChatPickers.js.map +1 -1
- package/dist/src/cli/chat/hooks/useChatSessions.d.ts +1 -1
- package/dist/src/cli/chat/hooks/useChatSessions.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useChatSessions.js +25 -22
- 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/usePromptSubmission.d.ts +2 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.js +4 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.js.map +1 -1
- package/dist/src/cli/chat/state/approval-rules.d.ts +2 -20
- package/dist/src/cli/chat/state/approval-rules.d.ts.map +1 -1
- package/dist/src/cli/chat/state/approval-rules.js +1 -256
- package/dist/src/cli/chat/state/approval-rules.js.map +1 -1
- package/dist/src/cli/chat/state/compaction.d.ts +1 -1
- package/dist/src/cli/chat/state/compaction.d.ts.map +1 -1
- package/dist/src/cli/chat/state/compaction.js +1 -1
- package/dist/src/cli/chat/state/compaction.js.map +1 -1
- package/dist/src/cli/chat/state/local-commands.d.ts +5 -2
- package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
- package/dist/src/cli/chat/state/local-commands.js +35 -410
- package/dist/src/cli/chat/state/local-commands.js.map +1 -1
- package/dist/src/cli/chat/state/storage.d.ts +1 -1
- package/dist/src/cli/chat/state/storage.d.ts.map +1 -1
- package/dist/src/cli/chat/state/storage.js +1 -1
- package/dist/src/cli/chat/state/storage.js.map +1 -1
- package/dist/src/cli/chat/state/types.d.ts +2 -1
- package/dist/src/cli/chat/state/types.d.ts.map +1 -1
- package/dist/src/cli/chat/submit.d.ts.map +1 -1
- package/dist/src/cli/chat/submit.js +13 -1
- package/dist/src/cli/chat/submit.js.map +1 -1
- package/dist/src/cli/chat/utils/file-mentions.js +1 -1
- package/dist/src/cli/chat/utils/file-mentions.js.map +1 -1
- package/dist/src/cli/chat/utils/format.d.ts +4 -12
- package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/format.js +12 -167
- package/dist/src/cli/chat/utils/format.js.map +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/runtime.js +1 -1
- package/dist/src/cli/chat/utils/runtime.js.map +1 -1
- package/dist/src/cli/eval/index.d.ts +24 -0
- package/dist/src/cli/eval/index.d.ts.map +1 -0
- package/dist/src/cli/eval/index.js +232 -0
- package/dist/src/cli/eval/index.js.map +1 -0
- package/dist/src/cli/main.js +25 -3
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/remote/control-plane-client.d.ts +5 -1
- package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
- package/dist/src/cli/session.js +1 -1
- package/dist/src/cli/session.js.map +1 -1
- package/dist/src/core/agent/mutation-tracking.d.ts +0 -7
- package/dist/src/core/agent/mutation-tracking.d.ts.map +1 -1
- package/dist/src/core/agent/mutation-tracking.js +5 -63
- package/dist/src/core/agent/mutation-tracking.js.map +1 -1
- package/dist/src/core/agent/post-mutation.d.ts +2 -2
- package/dist/src/core/agent/post-mutation.d.ts.map +1 -1
- package/dist/src/core/agent/post-mutation.js +5 -20
- package/dist/src/core/agent/post-mutation.js.map +1 -1
- package/dist/src/core/agent/progress-reminders.d.ts +1 -4
- package/dist/src/core/agent/progress-reminders.d.ts.map +1 -1
- package/dist/src/core/agent/progress-reminders.js +4 -56
- package/dist/src/core/agent/progress-reminders.js.map +1 -1
- package/dist/src/core/agent/run-agent.d.ts +2 -0
- package/dist/src/core/agent/run-agent.d.ts.map +1 -1
- package/dist/src/core/agent/run-agent.js +6 -103
- package/dist/src/core/agent/run-agent.js.map +1 -1
- package/dist/src/core/agent/tool-dispatch.d.ts +3 -0
- package/dist/src/core/agent/tool-dispatch.d.ts.map +1 -1
- package/dist/src/core/agent/tool-dispatch.js +24 -50
- package/dist/src/core/agent/tool-dispatch.js.map +1 -1
- package/dist/src/core/approvals/default-policies.d.ts +10 -0
- package/dist/src/core/approvals/default-policies.d.ts.map +1 -0
- package/dist/src/core/approvals/default-policies.js +37 -0
- package/dist/src/core/approvals/default-policies.js.map +1 -0
- package/dist/src/core/approvals/policy-chain.d.ts +9 -0
- package/dist/src/core/approvals/policy-chain.d.ts.map +1 -0
- package/dist/src/core/approvals/policy-chain.js +36 -0
- package/dist/src/core/approvals/policy-chain.js.map +1 -0
- package/dist/src/core/approvals/remembered-rules.d.ts +21 -0
- package/dist/src/core/approvals/remembered-rules.d.ts.map +1 -0
- package/dist/src/core/approvals/remembered-rules.js +257 -0
- package/dist/src/core/approvals/remembered-rules.js.map +1 -0
- package/dist/src/core/{chat/tool-approval-host.d.ts → approvals/surface.d.ts} +4 -6
- package/dist/src/core/approvals/surface.d.ts.map +1 -0
- package/dist/src/core/{chat/tool-approval-host.js → approvals/surface.js} +9 -1
- package/dist/src/core/approvals/surface.js.map +1 -0
- package/dist/src/core/approvals/types.d.ts +23 -0
- package/dist/src/core/approvals/types.d.ts.map +1 -0
- package/dist/src/core/approvals/types.js +2 -0
- package/dist/src/core/approvals/types.js.map +1 -0
- package/dist/src/core/chat/engine/config.d.ts +22 -0
- package/dist/src/core/chat/engine/config.d.ts.map +1 -0
- package/dist/src/core/chat/engine/config.js +27 -0
- package/dist/src/core/chat/engine/config.js.map +1 -0
- package/dist/src/core/chat/engine/conversation-engine.d.ts +3 -0
- package/dist/src/core/chat/engine/conversation-engine.d.ts.map +1 -0
- package/dist/src/core/chat/engine/conversation-engine.js +15 -0
- package/dist/src/core/chat/engine/conversation-engine.js.map +1 -0
- package/dist/src/core/chat/{compaction.d.ts → engine/history/compaction.d.ts} +3 -3
- package/dist/src/core/chat/engine/history/compaction.d.ts.map +1 -0
- package/dist/src/core/chat/{compaction.js → engine/history/compaction.js} +5 -5
- package/dist/src/core/chat/engine/history/compaction.js.map +1 -0
- package/dist/src/core/chat/engine/index.d.ts +5 -0
- package/dist/src/core/chat/engine/index.d.ts.map +1 -0
- package/dist/src/core/chat/engine/index.js +3 -0
- package/dist/src/core/chat/engine/index.js.map +1 -0
- package/dist/src/core/chat/{archive.d.ts → engine/sessions/archive.d.ts} +2 -2
- package/dist/src/core/chat/engine/sessions/archive.d.ts.map +1 -0
- package/dist/src/core/chat/engine/sessions/archive.js.map +1 -0
- package/dist/src/core/chat/engine/sessions/conversation-lines.d.ts +4 -0
- package/dist/src/core/chat/engine/sessions/conversation-lines.d.ts.map +1 -0
- package/dist/src/core/chat/{conversation-lines.js → engine/sessions/conversation-lines.js} +1 -1
- package/dist/src/core/chat/engine/sessions/conversation-lines.js.map +1 -0
- package/dist/src/core/chat/{session-lease.d.ts → engine/sessions/lease.d.ts} +2 -2
- package/dist/src/core/chat/engine/sessions/lease.d.ts.map +1 -0
- package/dist/src/core/chat/{session-lease.js → engine/sessions/lease.js} +1 -1
- package/dist/src/core/chat/engine/sessions/lease.js.map +1 -0
- package/dist/src/core/chat/engine/sessions/service.d.ts +6 -0
- package/dist/src/core/chat/engine/sessions/service.d.ts.map +1 -0
- package/dist/src/core/chat/engine/sessions/service.js +50 -0
- package/dist/src/core/chat/engine/sessions/service.js.map +1 -0
- package/dist/src/core/chat/{storage.d.ts → engine/sessions/storage.d.ts} +1 -1
- package/dist/src/core/chat/engine/sessions/storage.d.ts.map +1 -0
- package/dist/src/core/chat/{storage.js → engine/sessions/storage.js} +1 -1
- package/dist/src/core/chat/engine/sessions/storage.js.map +1 -0
- package/dist/src/core/chat/{session-title.d.ts → engine/sessions/title.d.ts} +2 -2
- package/dist/src/core/chat/engine/sessions/title.d.ts.map +1 -0
- package/dist/src/core/chat/{session-title.js → engine/sessions/title.js} +1 -1
- package/dist/src/core/chat/engine/sessions/title.js.map +1 -0
- package/dist/src/core/chat/engine/turns/context.d.ts +25 -0
- package/dist/src/core/chat/engine/turns/context.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/context.js +41 -0
- package/dist/src/core/chat/engine/turns/context.js.map +1 -0
- package/dist/src/core/chat/engine/turns/host-bridge.d.ts +37 -0
- package/dist/src/core/chat/engine/turns/host-bridge.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/host-bridge.js +20 -0
- package/dist/src/core/chat/engine/turns/host-bridge.js.map +1 -0
- package/dist/src/core/chat/engine/turns/host.d.ts +3 -0
- package/dist/src/core/chat/engine/turns/host.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/host.js +42 -0
- package/dist/src/core/chat/engine/turns/host.js.map +1 -0
- package/dist/src/core/chat/engine/turns/memory-maintenance.d.ts +33 -0
- package/dist/src/core/chat/engine/turns/memory-maintenance.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/memory-maintenance.js +120 -0
- package/dist/src/core/chat/engine/turns/memory-maintenance.js.map +1 -0
- package/dist/src/core/chat/engine/turns/persistence.d.ts +25 -0
- package/dist/src/core/chat/engine/turns/persistence.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/persistence.js +45 -0
- package/dist/src/core/chat/engine/turns/persistence.js.map +1 -0
- package/dist/src/core/chat/{session-turn-preflight.d.ts → engine/turns/preflight.d.ts} +25 -6
- package/dist/src/core/chat/engine/turns/preflight.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/preflight.js +96 -0
- package/dist/src/core/chat/engine/turns/preflight.js.map +1 -0
- package/dist/src/core/chat/{session-turn-result.d.ts → engine/turns/result.d.ts} +7 -5
- package/dist/src/core/chat/engine/turns/result.d.ts.map +1 -0
- package/dist/src/core/chat/{session-turn-result.js → engine/turns/result.js} +11 -9
- package/dist/src/core/chat/engine/turns/result.js.map +1 -0
- package/dist/src/core/chat/engine/turns/run-conversation-turn.d.ts +37 -0
- package/dist/src/core/chat/engine/turns/run-conversation-turn.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/run-conversation-turn.js +125 -0
- package/dist/src/core/chat/engine/turns/run-conversation-turn.js.map +1 -0
- package/dist/src/core/chat/engine/turns/runtime.d.ts +26 -0
- package/dist/src/core/chat/engine/turns/runtime.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/runtime.js +55 -0
- package/dist/src/core/chat/engine/turns/runtime.js.map +1 -0
- package/dist/src/core/chat/engine/turns/service.d.ts +6 -0
- package/dist/src/core/chat/engine/turns/service.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/service.js +51 -0
- package/dist/src/core/chat/engine/turns/service.js.map +1 -0
- package/dist/src/core/chat/engine/turns/trace.d.ts +3 -0
- package/dist/src/core/chat/engine/turns/trace.d.ts.map +1 -0
- package/dist/src/core/chat/engine/turns/trace.js.map +1 -0
- package/dist/src/core/chat/engine/types.d.ts +111 -0
- package/dist/src/core/chat/engine/types.d.ts.map +1 -0
- package/dist/src/core/chat/engine/types.js +2 -0
- package/dist/src/core/chat/engine/types.js.map +1 -0
- package/dist/src/core/chat/types.d.ts +3 -20
- package/dist/src/core/chat/types.d.ts.map +1 -1
- package/dist/src/core/commands/slash/autocomplete.d.ts +6 -0
- package/dist/src/core/commands/slash/autocomplete.d.ts.map +1 -0
- package/dist/src/core/commands/slash/autocomplete.js +56 -0
- package/dist/src/core/commands/slash/autocomplete.js.map +1 -0
- package/dist/src/core/commands/slash/modules/auth/auth-commands.d.ts +5 -0
- package/dist/src/core/commands/slash/modules/auth/auth-commands.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/auth/auth-commands.js +67 -0
- package/dist/src/core/commands/slash/modules/auth/auth-commands.js.map +1 -0
- package/dist/src/core/commands/slash/modules/compaction/compaction-commands.d.ts +5 -0
- package/dist/src/core/commands/slash/modules/compaction/compaction-commands.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js +20 -0
- package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js.map +1 -0
- package/dist/src/core/commands/slash/modules/context.d.ts +48 -0
- package/dist/src/core/commands/slash/modules/context.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/context.js +2 -0
- package/dist/src/core/commands/slash/modules/context.js.map +1 -0
- package/dist/src/core/commands/slash/modules/core-command-modules.d.ts +5 -0
- package/dist/src/core/commands/slash/modules/core-command-modules.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/core-command-modules.js +17 -0
- package/dist/src/core/commands/slash/modules/core-command-modules.js.map +1 -0
- package/dist/src/core/commands/slash/modules/drift/drift-commands.d.ts +6 -0
- package/dist/src/core/commands/slash/modules/drift/drift-commands.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/drift/drift-commands.js +54 -0
- package/dist/src/core/commands/slash/modules/drift/drift-commands.js.map +1 -0
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts +12 -0
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js +199 -0
- package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js.map +1 -0
- package/dist/src/core/commands/slash/modules/model/model-commands.d.ts +7 -0
- package/dist/src/core/commands/slash/modules/model/model-commands.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/model/model-commands.js +77 -0
- package/dist/src/core/commands/slash/modules/model/model-commands.js.map +1 -0
- package/dist/src/core/commands/slash/modules/results.d.ts +6 -0
- package/dist/src/core/commands/slash/modules/results.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/results.js +15 -0
- package/dist/src/core/commands/slash/modules/results.js.map +1 -0
- package/dist/src/core/commands/slash/modules/session/session-commands.d.ts +11 -0
- package/dist/src/core/commands/slash/modules/session/session-commands.d.ts.map +1 -0
- package/dist/src/core/commands/slash/modules/session/session-commands.js +146 -0
- package/dist/src/core/commands/slash/modules/session/session-commands.js.map +1 -0
- package/dist/src/core/commands/slash/parser.d.ts +7 -0
- package/dist/src/core/commands/slash/parser.d.ts.map +1 -0
- package/dist/src/core/commands/slash/parser.js +44 -0
- package/dist/src/core/commands/slash/parser.js.map +1 -0
- package/dist/src/core/commands/slash/registry.d.ts +9 -0
- package/dist/src/core/commands/slash/registry.d.ts.map +1 -0
- package/dist/src/core/commands/slash/registry.js +50 -0
- package/dist/src/core/commands/slash/registry.js.map +1 -0
- package/dist/src/core/commands/slash/result-types.d.ts +20 -0
- package/dist/src/core/commands/slash/result-types.d.ts.map +1 -0
- package/dist/src/core/commands/slash/result-types.js +2 -0
- package/dist/src/core/commands/slash/result-types.js.map +1 -0
- package/dist/src/core/commands/slash/types.d.ts +28 -0
- package/dist/src/core/commands/slash/types.d.ts.map +1 -0
- package/dist/src/core/commands/slash/types.js +2 -0
- package/dist/src/core/commands/slash/types.js.map +1 -0
- package/dist/src/core/config.d.ts +1 -1
- package/dist/src/core/config.d.ts.map +1 -1
- package/dist/src/core/config.js +1 -1
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/eval/agent-runner.d.ts +24 -0
- package/dist/src/core/eval/agent-runner.d.ts.map +1 -0
- package/dist/src/core/eval/agent-runner.js +151 -0
- package/dist/src/core/eval/agent-runner.js.map +1 -0
- package/dist/src/core/eval/case-loader.d.ts +7 -0
- package/dist/src/core/eval/case-loader.d.ts.map +1 -0
- package/dist/src/core/eval/case-loader.js +34 -0
- package/dist/src/core/eval/case-loader.js.map +1 -0
- package/dist/src/core/eval/check-runner.d.ts +8 -0
- package/dist/src/core/eval/check-runner.d.ts.map +1 -0
- package/dist/src/core/eval/check-runner.js +33 -0
- package/dist/src/core/eval/check-runner.js.map +1 -0
- package/dist/src/core/eval/cleanup.d.ts +20 -0
- package/dist/src/core/eval/cleanup.d.ts.map +1 -0
- package/dist/src/core/eval/cleanup.js +42 -0
- package/dist/src/core/eval/cleanup.js.map +1 -0
- package/dist/src/core/eval/git-artifacts.d.ts +26 -0
- package/dist/src/core/eval/git-artifacts.d.ts.map +1 -0
- package/dist/src/core/eval/git-artifacts.js +211 -0
- package/dist/src/core/eval/git-artifacts.js.map +1 -0
- package/dist/src/core/eval/process.d.ts +22 -0
- package/dist/src/core/eval/process.d.ts.map +1 -0
- package/dist/src/core/eval/process.js +65 -0
- package/dist/src/core/eval/process.js.map +1 -0
- package/dist/src/core/eval/progress.d.ts +28 -0
- package/dist/src/core/eval/progress.d.ts.map +1 -0
- package/dist/src/core/eval/progress.js +94 -0
- package/dist/src/core/eval/progress.js.map +1 -0
- package/dist/src/core/eval/report-writer.d.ts +7 -0
- package/dist/src/core/eval/report-writer.d.ts.map +1 -0
- package/dist/src/core/eval/report-writer.js +159 -0
- package/dist/src/core/eval/report-writer.js.map +1 -0
- package/dist/src/core/eval/schema.d.ts +206 -0
- package/dist/src/core/eval/schema.d.ts.map +1 -0
- package/dist/src/core/eval/schema.js +104 -0
- package/dist/src/core/eval/schema.js.map +1 -0
- package/dist/src/core/eval/trace-analyzer.d.ts +6 -0
- package/dist/src/core/eval/trace-analyzer.d.ts.map +1 -0
- package/dist/src/core/eval/trace-analyzer.js +106 -0
- package/dist/src/core/eval/trace-analyzer.js.map +1 -0
- package/dist/src/core/eval/workspace-fixture.d.ts +14 -0
- package/dist/src/core/eval/workspace-fixture.d.ts.map +1 -0
- package/dist/src/core/eval/workspace-fixture.js +235 -0
- package/dist/src/core/eval/workspace-fixture.js.map +1 -0
- package/dist/src/core/llm/model-policy.d.ts +26 -0
- package/dist/src/core/llm/model-policy.d.ts.map +1 -1
- package/dist/src/core/llm/model-policy.js +47 -0
- package/dist/src/core/llm/model-policy.js.map +1 -1
- package/dist/src/core/memory/maintainer-tools.js +1 -1
- package/dist/src/core/memory/maintainer-tools.js.map +1 -1
- package/dist/src/core/memory/visibility.js +1 -1
- package/dist/src/core/memory/visibility.js.map +1 -1
- package/dist/src/core/observability/conversation-activity.d.ts +114 -0
- package/dist/src/core/observability/conversation-activity.d.ts.map +1 -0
- package/dist/src/core/observability/conversation-activity.js +249 -0
- package/dist/src/core/observability/conversation-activity.js.map +1 -0
- package/dist/src/core/observability/semantic-conventions.d.ts +33 -0
- package/dist/src/core/observability/semantic-conventions.d.ts.map +1 -0
- package/dist/src/core/observability/semantic-conventions.js +33 -0
- package/dist/src/core/observability/semantic-conventions.js.map +1 -0
- package/dist/src/core/observability/trace-summarizers.d.ts +23 -0
- package/dist/src/core/observability/trace-summarizers.d.ts.map +1 -0
- package/dist/src/core/observability/trace-summarizers.js +60 -0
- package/dist/src/core/observability/trace-summarizers.js.map +1 -0
- package/dist/src/core/prompts/system-prompt.d.ts +1 -1
- package/dist/src/core/prompts/system-prompt.d.ts.map +1 -1
- package/dist/src/core/prompts/system-prompt.js +19 -100
- package/dist/src/core/prompts/system-prompt.js.map +1 -1
- package/dist/src/core/runtime/agent-loop.d.ts +2 -0
- package/dist/src/core/runtime/agent-loop.d.ts.map +1 -1
- package/dist/src/core/runtime/agent-loop.js +1 -0
- package/dist/src/core/runtime/agent-loop.js.map +1 -1
- package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
- package/dist/src/core/runtime/default-tools.js +33 -54
- package/dist/src/core/runtime/default-tools.js.map +1 -1
- package/dist/src/core/runtime/heartbeat.d.ts +2 -0
- package/dist/src/core/runtime/heartbeat.d.ts.map +1 -1
- package/dist/src/core/runtime/heartbeat.js +1 -0
- package/dist/src/core/runtime/heartbeat.js.map +1 -1
- package/dist/src/core/tools/toolkit.d.ts +20 -0
- package/dist/src/core/tools/toolkit.d.ts.map +1 -0
- package/dist/src/core/tools/toolkit.js +21 -0
- package/dist/src/core/tools/toolkit.js.map +1 -0
- package/dist/src/core/tools/{delete-file.d.ts → toolkits/coding-files/delete-file.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/coding-files/delete-file.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/delete-file.js.map +1 -0
- package/dist/src/core/tools/{edit-file.d.ts → toolkits/coding-files/edit-file.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/coding-files/edit-file.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/edit-file.js.map +1 -0
- package/dist/src/core/tools/{file-edit-core.d.ts → toolkits/coding-files/file-edit-core.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/coding-files/file-edit-core.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/file-edit-core.js.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/index.d.ts +8 -0
- package/dist/src/core/tools/toolkits/coding-files/index.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/index.js +8 -0
- package/dist/src/core/tools/toolkits/coding-files/index.js.map +1 -0
- package/dist/src/core/tools/{list-files.d.ts → toolkits/coding-files/list-files.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/coding-files/list-files.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/list-files.js.map +1 -0
- package/dist/src/core/tools/{move-file.d.ts → toolkits/coding-files/move-file.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/coding-files/move-file.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/move-file.js.map +1 -0
- package/dist/src/core/tools/{read-file.d.ts → toolkits/coding-files/read-file.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/coding-files/read-file.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/read-file.js.map +1 -0
- package/dist/src/core/tools/{search-files.d.ts → toolkits/coding-files/search-files.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/coding-files/search-files.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/search-files.js.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/toolkit.d.ts +3 -0
- package/dist/src/core/tools/toolkits/coding-files/toolkit.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/coding-files/toolkit.js +23 -0
- package/dist/src/core/tools/toolkits/coding-files/toolkit.js.map +1 -0
- package/dist/src/core/tools/toolkits/external-context/toolkit.d.ts +3 -0
- package/dist/src/core/tools/toolkits/external-context/toolkit.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/external-context/toolkit.js +23 -0
- package/dist/src/core/tools/toolkits/external-context/toolkit.js.map +1 -0
- package/dist/src/core/tools/{view-image.d.ts → toolkits/external-context/view-image.d.ts} +3 -3
- package/dist/src/core/tools/toolkits/external-context/view-image.d.ts.map +1 -0
- package/dist/src/core/tools/{view-image.js → toolkits/external-context/view-image.js} +5 -5
- package/dist/src/core/tools/toolkits/external-context/view-image.js.map +1 -0
- package/dist/src/core/tools/{web-search.d.ts → toolkits/external-context/web-search.d.ts} +3 -3
- package/dist/src/core/tools/toolkits/external-context/web-search.d.ts.map +1 -0
- package/dist/src/core/tools/{web-search.js → toolkits/external-context/web-search.js} +5 -5
- package/dist/src/core/tools/toolkits/external-context/web-search.js.map +1 -0
- package/dist/src/core/tools/toolkits/internal/toolkit.d.ts +3 -0
- package/dist/src/core/tools/toolkits/internal/toolkit.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/internal/toolkit.js +8 -0
- package/dist/src/core/tools/toolkits/internal/toolkit.js.map +1 -0
- package/dist/src/core/tools/{update-plan.d.ts → toolkits/internal/update-plan.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/internal/update-plan.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/internal/update-plan.js.map +1 -0
- package/dist/src/core/tools/{memory-checkpoint.d.ts → toolkits/knowledge/memory-checkpoint.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/knowledge/memory-checkpoint.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/knowledge/memory-checkpoint.js.map +1 -0
- package/dist/src/core/tools/{memory-notes.d.ts → toolkits/knowledge/memory-notes.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/knowledge/memory-notes.d.ts.map +1 -0
- package/dist/src/core/tools/{memory-notes.js → toolkits/knowledge/memory-notes.js} +1 -1
- package/dist/src/core/tools/toolkits/knowledge/memory-notes.js.map +1 -0
- package/dist/src/core/tools/{record-knowledge.d.ts → toolkits/knowledge/record-knowledge.d.ts} +1 -1
- package/dist/src/core/tools/toolkits/knowledge/record-knowledge.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/knowledge/record-knowledge.js.map +1 -0
- package/dist/src/core/tools/toolkits/knowledge/toolkit.d.ts +3 -0
- package/dist/src/core/tools/toolkits/knowledge/toolkit.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/knowledge/toolkit.js +29 -0
- package/dist/src/core/tools/toolkits/knowledge/toolkit.js.map +1 -0
- package/dist/src/core/tools/toolkits/shell-process/index.d.ts +4 -0
- package/dist/src/core/tools/toolkits/shell-process/index.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/shell-process/index.js +3 -0
- package/dist/src/core/tools/toolkits/shell-process/index.js.map +1 -0
- package/dist/src/core/tools/toolkits/shell-process/run-shell.d.ts +18 -0
- package/dist/src/core/tools/toolkits/shell-process/run-shell.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/shell-process/run-shell.js +210 -0
- package/dist/src/core/tools/toolkits/shell-process/run-shell.js.map +1 -0
- package/dist/src/core/tools/{run-shell.d.ts → toolkits/shell-process/shell-policy.d.ts} +4 -17
- package/dist/src/core/tools/toolkits/shell-process/shell-policy.d.ts.map +1 -0
- package/dist/src/core/tools/{run-shell.js → toolkits/shell-process/shell-policy.js} +41 -238
- package/dist/src/core/tools/toolkits/shell-process/shell-policy.js.map +1 -0
- package/dist/src/core/tools/toolkits/shell-process/toolkit.d.ts +3 -0
- package/dist/src/core/tools/toolkits/shell-process/toolkit.d.ts.map +1 -0
- package/dist/src/core/tools/toolkits/shell-process/toolkit.js +11 -0
- package/dist/src/core/tools/toolkits/shell-process/toolkit.js.map +1 -0
- package/dist/src/index.d.ts +37 -25
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -15
- package/dist/src/index.js.map +1 -1
- package/dist/src/server/features/control-plane/router.d.ts +5 -1
- package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/router.js +17 -2
- package/dist/src/server/features/control-plane/router.js.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-session-events.d.ts +1 -1
- package/dist/src/server/features/control-plane/services/chat-session-events.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +5 -2
- package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-sessions.js +67 -29
- package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
- package/dist/src/server/router.d.ts +5 -1
- package/dist/src/server/router.d.ts.map +1 -1
- package/dist/src/web/assets/{MonacoDiffViewer-DM8Cy5Xf.js → MonacoDiffViewer-tvXEFlgh.js} +1 -1
- package/dist/src/web/assets/index-CYd4sslC.css +2 -0
- package/dist/src/web/assets/index-WQmlPSO9.js +56 -0
- package/dist/src/web/index.html +2 -2
- package/package.json +8 -2
- package/dist/src/core/chat/archive.d.ts.map +0 -1
- package/dist/src/core/chat/archive.js.map +0 -1
- package/dist/src/core/chat/compaction.d.ts.map +0 -1
- package/dist/src/core/chat/compaction.js.map +0 -1
- package/dist/src/core/chat/conversation-lines.d.ts +0 -4
- package/dist/src/core/chat/conversation-lines.d.ts.map +0 -1
- package/dist/src/core/chat/conversation-lines.js.map +0 -1
- package/dist/src/core/chat/ordinary-turn.d.ts +0 -34
- package/dist/src/core/chat/ordinary-turn.d.ts.map +0 -1
- package/dist/src/core/chat/ordinary-turn.js +0 -274
- package/dist/src/core/chat/ordinary-turn.js.map +0 -1
- package/dist/src/core/chat/session-lease.d.ts.map +0 -1
- package/dist/src/core/chat/session-lease.js.map +0 -1
- package/dist/src/core/chat/session-submit.d.ts +0 -35
- package/dist/src/core/chat/session-submit.d.ts.map +0 -1
- package/dist/src/core/chat/session-submit.js +0 -30
- package/dist/src/core/chat/session-submit.js.map +0 -1
- package/dist/src/core/chat/session-title.d.ts.map +0 -1
- package/dist/src/core/chat/session-title.js.map +0 -1
- package/dist/src/core/chat/session-turn-preflight.d.ts.map +0 -1
- package/dist/src/core/chat/session-turn-preflight.js +0 -43
- package/dist/src/core/chat/session-turn-preflight.js.map +0 -1
- package/dist/src/core/chat/session-turn-result.d.ts.map +0 -1
- package/dist/src/core/chat/session-turn-result.js.map +0 -1
- package/dist/src/core/chat/storage.d.ts.map +0 -1
- package/dist/src/core/chat/storage.js.map +0 -1
- package/dist/src/core/chat/tool-approval-host.d.ts.map +0 -1
- package/dist/src/core/chat/tool-approval-host.js.map +0 -1
- package/dist/src/core/chat/trace-summary.d.ts +0 -4
- package/dist/src/core/chat/trace-summary.d.ts.map +0 -1
- package/dist/src/core/chat/trace-summary.js +0 -76
- package/dist/src/core/chat/trace-summary.js.map +0 -1
- package/dist/src/core/chat/trace.d.ts +0 -3
- package/dist/src/core/chat/trace.d.ts.map +0 -1
- package/dist/src/core/chat/trace.js.map +0 -1
- package/dist/src/core/chat/turn-host.d.ts +0 -25
- package/dist/src/core/chat/turn-host.d.ts.map +0 -1
- package/dist/src/core/chat/turn-host.js +0 -2
- package/dist/src/core/chat/turn-host.js.map +0 -1
- package/dist/src/core/tools/delete-file.d.ts.map +0 -1
- package/dist/src/core/tools/delete-file.js.map +0 -1
- package/dist/src/core/tools/edit-file.d.ts.map +0 -1
- package/dist/src/core/tools/edit-file.js.map +0 -1
- package/dist/src/core/tools/file-edit-core.d.ts.map +0 -1
- package/dist/src/core/tools/file-edit-core.js.map +0 -1
- package/dist/src/core/tools/list-files.d.ts.map +0 -1
- package/dist/src/core/tools/list-files.js.map +0 -1
- package/dist/src/core/tools/memory-checkpoint.d.ts.map +0 -1
- package/dist/src/core/tools/memory-checkpoint.js.map +0 -1
- package/dist/src/core/tools/memory-notes.d.ts.map +0 -1
- package/dist/src/core/tools/memory-notes.js.map +0 -1
- package/dist/src/core/tools/move-file.d.ts.map +0 -1
- package/dist/src/core/tools/move-file.js.map +0 -1
- package/dist/src/core/tools/read-file.d.ts.map +0 -1
- package/dist/src/core/tools/read-file.js.map +0 -1
- package/dist/src/core/tools/record-knowledge.d.ts.map +0 -1
- package/dist/src/core/tools/record-knowledge.js.map +0 -1
- package/dist/src/core/tools/report-state.d.ts +0 -3
- package/dist/src/core/tools/report-state.d.ts.map +0 -1
- package/dist/src/core/tools/report-state.js +0 -63
- package/dist/src/core/tools/report-state.js.map +0 -1
- package/dist/src/core/tools/run-shell.d.ts.map +0 -1
- package/dist/src/core/tools/run-shell.js.map +0 -1
- package/dist/src/core/tools/search-files.d.ts.map +0 -1
- package/dist/src/core/tools/search-files.js.map +0 -1
- package/dist/src/core/tools/update-plan.d.ts.map +0 -1
- package/dist/src/core/tools/update-plan.js.map +0 -1
- package/dist/src/core/tools/view-image.d.ts.map +0 -1
- package/dist/src/core/tools/view-image.js.map +0 -1
- package/dist/src/core/tools/web-search.d.ts.map +0 -1
- package/dist/src/core/tools/web-search.js.map +0 -1
- package/dist/src/web/assets/index-BEeN-RT5.css +0 -2
- package/dist/src/web/assets/index-BKDg9H_-.js +0 -56
- /package/dist/src/core/chat/{archive.js → engine/sessions/archive.js} +0 -0
- /package/dist/src/core/chat/{trace.js → engine/turns/trace.js} +0 -0
- /package/dist/src/core/tools/{delete-file.js → toolkits/coding-files/delete-file.js} +0 -0
- /package/dist/src/core/tools/{edit-file.js → toolkits/coding-files/edit-file.js} +0 -0
- /package/dist/src/core/tools/{file-edit-core.js → toolkits/coding-files/file-edit-core.js} +0 -0
- /package/dist/src/core/tools/{list-files.js → toolkits/coding-files/list-files.js} +0 -0
- /package/dist/src/core/tools/{move-file.js → toolkits/coding-files/move-file.js} +0 -0
- /package/dist/src/core/tools/{read-file.js → toolkits/coding-files/read-file.js} +0 -0
- /package/dist/src/core/tools/{search-files.js → toolkits/coding-files/search-files.js} +0 -0
- /package/dist/src/core/tools/{update-plan.js → toolkits/internal/update-plan.js} +0 -0
- /package/dist/src/core/tools/{memory-checkpoint.js → toolkits/knowledge/memory-checkpoint.js} +0 -0
- /package/dist/src/core/tools/{record-knowledge.js → toolkits/knowledge/record-knowledge.js} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
export type ProjectApprovalRule = {
|
|
5
|
+
tool: 'run_shell_mutate' | 'edit_file';
|
|
6
|
+
mode: ApprovalMode;
|
|
7
|
+
command: string;
|
|
8
|
+
scope: RunShellScope | 'workspace';
|
|
9
|
+
capability: RunShellCapability | 'file_edit';
|
|
10
|
+
createdAt: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function loadProjectApprovalRules(filePath: string): ProjectApprovalRule[];
|
|
13
|
+
export declare function saveProjectApprovalRules(filePath: string, rules: ProjectApprovalRule[]): void;
|
|
14
|
+
export declare function normalizeApprovedCommand(command: string): string;
|
|
15
|
+
export declare function findMatchingApprovalRule(rules: ProjectApprovalRule[], tool: string, input: unknown): ProjectApprovalRule | undefined;
|
|
16
|
+
export declare function createProjectApprovalRule(command: string): ProjectApprovalRule;
|
|
17
|
+
export declare function createProjectApprovalRuleForCall(call: ToolCall): ProjectApprovalRule | undefined;
|
|
18
|
+
export declare function describeProjectApprovalRule(rule: ProjectApprovalRule): string;
|
|
19
|
+
export declare function extractApprovalTarget(tool: string, input: unknown): string | undefined;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=remembered-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAAC;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC;IACnC,UAAU,EAAE,kBAAkB,GAAG,WAAW,CAAC;IAC7C,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,CAkBhG;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAU7E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA4BtF"}
|
|
@@ -0,0 +1,257 @@
|
|
|
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 !== 'run_shell_mutate') {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
const target = extractApprovalTarget(call.tool, call.input);
|
|
65
|
+
return target ? createShellApprovalRule(target) : undefined;
|
|
66
|
+
}
|
|
67
|
+
export function describeProjectApprovalRule(rule) {
|
|
68
|
+
if (rule.tool === 'edit_file') {
|
|
69
|
+
return 'allow edit_file for this project';
|
|
70
|
+
}
|
|
71
|
+
if (rule.mode === 'prefix') {
|
|
72
|
+
return `allow ${rule.command} command family for this project`;
|
|
73
|
+
}
|
|
74
|
+
return `allow exact command ${rule.command} for this project`;
|
|
75
|
+
}
|
|
76
|
+
export function extractApprovalTarget(tool, input) {
|
|
77
|
+
if (tool === 'run_shell_mutate') {
|
|
78
|
+
if (typeof input === 'string') {
|
|
79
|
+
return normalizeApprovedCommand(input);
|
|
80
|
+
}
|
|
81
|
+
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
const command = input.command;
|
|
85
|
+
return typeof command === 'string' && command.trim() ? normalizeApprovedCommand(command) : undefined;
|
|
86
|
+
}
|
|
87
|
+
if (tool === 'edit_file') {
|
|
88
|
+
if (typeof input === 'string') {
|
|
89
|
+
return normalizeApprovalPath(input);
|
|
90
|
+
}
|
|
91
|
+
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
const path = input.path;
|
|
95
|
+
return typeof path === 'string' && path.trim() ? normalizeApprovalPath(path) : undefined;
|
|
96
|
+
}
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
function createShellApprovalRule(command) {
|
|
100
|
+
const policy = classifyShellCommandPolicy(command, {
|
|
101
|
+
toolName: 'run_shell_mutate',
|
|
102
|
+
rules: DEFAULT_MUTATE_RULES,
|
|
103
|
+
allowUnknown: true,
|
|
104
|
+
});
|
|
105
|
+
if (!('error' in policy) && shouldUseVerificationPrefixApproval(command, policy.scope, policy.capability)) {
|
|
106
|
+
return {
|
|
107
|
+
tool: 'run_shell_mutate',
|
|
108
|
+
mode: 'prefix',
|
|
109
|
+
command: buildVerificationPrefix(command),
|
|
110
|
+
scope: policy.scope,
|
|
111
|
+
capability: policy.capability,
|
|
112
|
+
createdAt: new Date().toISOString(),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
if (!('error' in policy)) {
|
|
116
|
+
return {
|
|
117
|
+
tool: 'run_shell_mutate',
|
|
118
|
+
mode: 'exact',
|
|
119
|
+
command,
|
|
120
|
+
scope: policy.scope,
|
|
121
|
+
capability: policy.capability,
|
|
122
|
+
createdAt: new Date().toISOString(),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
tool: 'run_shell_mutate',
|
|
127
|
+
mode: 'exact',
|
|
128
|
+
command,
|
|
129
|
+
scope: 'workspace',
|
|
130
|
+
capability: 'unknown_workspace',
|
|
131
|
+
createdAt: new Date().toISOString(),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function shouldUseVerificationPrefixApproval(command, scope, capability) {
|
|
135
|
+
if (scope !== 'workspace' || capability !== 'verification') {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
return buildVerificationPrefix(command) !== command;
|
|
139
|
+
}
|
|
140
|
+
function buildVerificationPrefix(command) {
|
|
141
|
+
const argv = command.split(' ').filter(Boolean);
|
|
142
|
+
if (argv.length === 0) {
|
|
143
|
+
return command;
|
|
144
|
+
}
|
|
145
|
+
if (argv[0] === 'yarn' && typeof argv[1] === 'string' && !argv[1].startsWith('-')) {
|
|
146
|
+
return `${argv[0]} ${argv[1]}`;
|
|
147
|
+
}
|
|
148
|
+
if (argv[0] === 'vitest' && typeof argv[1] === 'string' && !argv[1].startsWith('-')) {
|
|
149
|
+
return `${argv[0]} ${argv[1]}`;
|
|
150
|
+
}
|
|
151
|
+
if (argv[0] === 'tsc') {
|
|
152
|
+
return 'tsc';
|
|
153
|
+
}
|
|
154
|
+
return command;
|
|
155
|
+
}
|
|
156
|
+
function canonicalizeVerificationCommand(command) {
|
|
157
|
+
const argv = command.split(' ').filter(Boolean);
|
|
158
|
+
if (argv.length === 0) {
|
|
159
|
+
return command;
|
|
160
|
+
}
|
|
161
|
+
if (argv[0] === 'npx' && typeof argv[1] === 'string') {
|
|
162
|
+
if (argv[1] === 'tsc') {
|
|
163
|
+
return ['tsc', ...argv.slice(2)].join(' ');
|
|
164
|
+
}
|
|
165
|
+
if (argv[1] === 'vitest') {
|
|
166
|
+
return ['vitest', ...argv.slice(2)].join(' ');
|
|
167
|
+
}
|
|
168
|
+
if (argv[1] === 'eslint') {
|
|
169
|
+
return ['eslint', ...argv.slice(2)].join(' ');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (argv[0] === './node_modules/.bin/tsc' || argv[0] === 'node_modules/.bin/tsc') {
|
|
173
|
+
return ['tsc', ...argv.slice(1)].join(' ');
|
|
174
|
+
}
|
|
175
|
+
if (argv[0] === './node_modules/.bin/vitest' || argv[0] === 'node_modules/.bin/vitest') {
|
|
176
|
+
return ['vitest', ...argv.slice(1)].join(' ');
|
|
177
|
+
}
|
|
178
|
+
if (argv[0] === './node_modules/.bin/eslint' || argv[0] === 'node_modules/.bin/eslint') {
|
|
179
|
+
return ['eslint', ...argv.slice(1)].join(' ');
|
|
180
|
+
}
|
|
181
|
+
return command;
|
|
182
|
+
}
|
|
183
|
+
function normalizeApprovalPath(path) {
|
|
184
|
+
const trimmed = path.trim();
|
|
185
|
+
if (trimmed === './' || trimmed === '.') {
|
|
186
|
+
return '.';
|
|
187
|
+
}
|
|
188
|
+
return trimmed.replace(/\/+$/, '') || '.';
|
|
189
|
+
}
|
|
190
|
+
function buildLegacyVerificationPrefix(command) {
|
|
191
|
+
const argv = command.split(' ').filter(Boolean);
|
|
192
|
+
if (argv[0] !== 'yarn') {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
const subcommand = argv[1];
|
|
196
|
+
if (subcommand === 'test' || subcommand === 'build' || subcommand === 'lint' || subcommand === 'vitest') {
|
|
197
|
+
return `yarn ${subcommand}`;
|
|
198
|
+
}
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
function parseProjectApprovalRule(value) {
|
|
202
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
203
|
+
return [];
|
|
204
|
+
}
|
|
205
|
+
const candidate = value;
|
|
206
|
+
if (candidate.tool === 'run_shell_mutate' && typeof candidate.command === 'string' && typeof candidate.createdAt === 'string') {
|
|
207
|
+
if (candidate.mode === 'exact' || candidate.mode === 'prefix') {
|
|
208
|
+
return [{
|
|
209
|
+
tool: 'run_shell_mutate',
|
|
210
|
+
mode: candidate.mode,
|
|
211
|
+
command: normalizeApprovedCommand(candidate.command),
|
|
212
|
+
scope: candidate.scope === 'external' ? 'external' : candidate.scope === 'inspect' ? 'inspect' : 'workspace',
|
|
213
|
+
capability: typeof candidate.capability === 'string' ? candidate.capability : 'unknown_workspace',
|
|
214
|
+
createdAt: candidate.createdAt,
|
|
215
|
+
}];
|
|
216
|
+
}
|
|
217
|
+
const normalizedCommand = normalizeApprovedCommand(candidate.command);
|
|
218
|
+
const legacyVerificationPrefix = buildLegacyVerificationPrefix(normalizedCommand);
|
|
219
|
+
if (legacyVerificationPrefix) {
|
|
220
|
+
return [{
|
|
221
|
+
tool: 'run_shell_mutate',
|
|
222
|
+
mode: 'prefix',
|
|
223
|
+
command: legacyVerificationPrefix,
|
|
224
|
+
scope: 'workspace',
|
|
225
|
+
capability: 'verification',
|
|
226
|
+
createdAt: candidate.createdAt,
|
|
227
|
+
}];
|
|
228
|
+
}
|
|
229
|
+
const migrated = createShellApprovalRule(normalizedCommand);
|
|
230
|
+
return [{ ...migrated, createdAt: candidate.createdAt }];
|
|
231
|
+
}
|
|
232
|
+
if (candidate.tool === 'edit_file' && typeof candidate.createdAt === 'string') {
|
|
233
|
+
if (candidate.mode === 'tool') {
|
|
234
|
+
return [{
|
|
235
|
+
tool: 'edit_file',
|
|
236
|
+
mode: 'tool',
|
|
237
|
+
command: '*',
|
|
238
|
+
scope: 'workspace',
|
|
239
|
+
capability: 'file_edit',
|
|
240
|
+
createdAt: candidate.createdAt,
|
|
241
|
+
}];
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return [];
|
|
245
|
+
}
|
|
246
|
+
function dedupeApprovalRules(rules) {
|
|
247
|
+
const seen = new Set();
|
|
248
|
+
return rules.filter((rule) => {
|
|
249
|
+
const key = `${rule.tool}:${rule.mode}:${rule.command}`;
|
|
250
|
+
if (seen.has(key)) {
|
|
251
|
+
return false;
|
|
252
|
+
}
|
|
253
|
+
seen.add(key);
|
|
254
|
+
return true;
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=remembered-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remembered-rules.js","sourceRoot":"","sources":["../../../../src/core/approvals/remembered-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import type { ToolCall, ToolDefinition } from '
|
|
2
|
-
|
|
3
|
-
approved: boolean;
|
|
4
|
-
reason?: string;
|
|
5
|
-
};
|
|
1
|
+
import type { ToolCall, ToolDefinition } from '../types.js';
|
|
2
|
+
import type { ToolApprovalDecision, ToolApprovalPolicy, ToolApprovalSurface } from './types.js';
|
|
6
3
|
export type PendingToolApprovalView = {
|
|
7
4
|
tool: string;
|
|
8
5
|
callId: string;
|
|
@@ -19,4 +16,5 @@ export declare function requestToolApproval(args: {
|
|
|
19
16
|
resolve: (decision: ToolApprovalDecision) => void;
|
|
20
17
|
}) => void;
|
|
21
18
|
}): Promise<ToolApprovalDecision>;
|
|
22
|
-
|
|
19
|
+
export declare function humanApprovalPolicy(surface: ToolApprovalSurface): ToolApprovalPolicy;
|
|
20
|
+
//# sourceMappingURL=surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -11,4 +11,12 @@ export function requestToolApproval(args) {
|
|
|
11
11
|
args.publish?.(view, args.call, args.tool);
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
export function humanApprovalPolicy(surface) {
|
|
15
|
+
return async (context) => {
|
|
16
|
+
const decision = await surface(context);
|
|
17
|
+
return decision.approved ?
|
|
18
|
+
{ type: 'allow', reason: decision.reason }
|
|
19
|
+
: { type: 'deny', reason: decision.reason };
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../../src/core/approvals/surface.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,mBAAmB,CAAC,IAMnC;IACC,MAAM,IAAI,GACR,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;WACpC;YACD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IAEJ,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,EAAE;QACnD,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA4B;IAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;YAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ToolCall, ToolDefinition } from '../types.js';
|
|
2
|
+
export type ToolApprovalDecision = {
|
|
3
|
+
approved: boolean;
|
|
4
|
+
reason?: string;
|
|
5
|
+
};
|
|
6
|
+
export type ToolApprovalPolicyDecision = {
|
|
7
|
+
type: 'allow';
|
|
8
|
+
reason?: string;
|
|
9
|
+
} | {
|
|
10
|
+
type: 'deny';
|
|
11
|
+
reason?: string;
|
|
12
|
+
} | {
|
|
13
|
+
type: 'request';
|
|
14
|
+
reason?: string;
|
|
15
|
+
};
|
|
16
|
+
export type ToolApprovalPolicyContext = {
|
|
17
|
+
call: ToolCall;
|
|
18
|
+
tool: ToolDefinition;
|
|
19
|
+
workspaceRoot?: string;
|
|
20
|
+
};
|
|
21
|
+
export type ToolApprovalPolicy = (context: ToolApprovalPolicyContext) => ToolApprovalPolicyDecision | undefined | Promise<ToolApprovalPolicyDecision | undefined>;
|
|
22
|
+
export type ToolApprovalSurface = (context: ToolApprovalPolicyContext) => Promise<ToolApprovalDecision>;
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/approvals/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,yBAAyB,KAC/B,0BAA0B,GAAG,SAAS,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;AAE9F,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/approvals/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ToolApprovalPolicy } from '../../approvals/types.js';
|
|
2
|
+
import type { TraceSummarizerRegistry } from '../../observability/trace-summarizers.js';
|
|
3
|
+
import type { ConversationEngineConfig } from './types.js';
|
|
4
|
+
export type NormalizedConversationEngineConfig = {
|
|
5
|
+
workspaceRoot: string;
|
|
6
|
+
stateRoot: string;
|
|
7
|
+
model: string;
|
|
8
|
+
apiKey?: string;
|
|
9
|
+
preferApiKey?: boolean;
|
|
10
|
+
credentialStorePath?: string;
|
|
11
|
+
systemContext?: string;
|
|
12
|
+
memoryMaintenanceMode: 'none' | 'background' | 'inline';
|
|
13
|
+
traceSummarizerRegistry?: TraceSummarizerRegistry;
|
|
14
|
+
approvalPolicies?: ToolApprovalPolicy[];
|
|
15
|
+
sessionStoragePath: string;
|
|
16
|
+
memoryDir: string;
|
|
17
|
+
traceDir: string;
|
|
18
|
+
workspaceId?: string;
|
|
19
|
+
apiKeyPresent: boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare function normalizeConversationEngineConfig(config: ConversationEngineConfig): NormalizedConversationEngineConfig;
|
|
22
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/core/chat/engine/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,MAAM,kCAAkC,GAAG;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IACxD,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,wBAAwB,GAAG,kCAAkC,CAyBtH"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { join, resolve } from 'node:path';
|
|
2
|
+
export function normalizeConversationEngineConfig(config) {
|
|
3
|
+
const workspaceRoot = resolve(config.workspaceRoot);
|
|
4
|
+
const stateRoot = resolve(config.stateRoot);
|
|
5
|
+
const sessionStoragePath = resolve(config.sessionStoragePath ?? join(stateRoot, 'chat-sessions.catalog.json'));
|
|
6
|
+
const memoryDir = resolve(config.memoryDir ?? join(stateRoot, 'memory'));
|
|
7
|
+
const traceDir = resolve(join(stateRoot, 'traces'));
|
|
8
|
+
const credentialStorePath = config.credentialStorePath ? resolve(config.credentialStorePath) : undefined;
|
|
9
|
+
return {
|
|
10
|
+
workspaceRoot,
|
|
11
|
+
stateRoot,
|
|
12
|
+
model: config.model,
|
|
13
|
+
apiKey: config.apiKey,
|
|
14
|
+
preferApiKey: config.preferApiKey,
|
|
15
|
+
credentialStorePath,
|
|
16
|
+
systemContext: config.systemContext,
|
|
17
|
+
memoryMaintenanceMode: config.memoryMaintenanceMode ?? 'background',
|
|
18
|
+
traceSummarizerRegistry: config.traceSummarizerRegistry,
|
|
19
|
+
approvalPolicies: config.approvalPolicies,
|
|
20
|
+
sessionStoragePath,
|
|
21
|
+
memoryDir,
|
|
22
|
+
traceDir,
|
|
23
|
+
workspaceId: config.workspaceId,
|
|
24
|
+
apiKeyPresent: config.apiKeyPresent ?? Boolean(config.apiKey),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/core/chat/engine/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuB1C,MAAM,UAAU,iCAAiC,CAAC,MAAgC;IAChF,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC/G,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzG,OAAO;QACL,aAAa;QACb,SAAS;QACT,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,mBAAmB;QACnB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,YAAY;QACnE,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,kBAAkB;QAClB,SAAS;QACT,QAAQ;QACR,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-engine.d.ts","sourceRoot":"","sources":["../../../../../src/core/chat/engine/conversation-engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE/E,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAW7F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { normalizeConversationEngineConfig } from './config.js';
|
|
2
|
+
import { createConversationSessionService } from './sessions/service.js';
|
|
3
|
+
import { createConversationTurnService } from './turns/service.js';
|
|
4
|
+
export function createConversationEngine(config) {
|
|
5
|
+
const normalizedConfig = normalizeConversationEngineConfig(config);
|
|
6
|
+
return {
|
|
7
|
+
sessions: createConversationSessionService({
|
|
8
|
+
config: normalizedConfig,
|
|
9
|
+
}),
|
|
10
|
+
turns: createConversationTurnService({
|
|
11
|
+
config: normalizedConfig,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=conversation-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-engine.js","sourceRoot":"","sources":["../../../../../src/core/chat/engine/conversation-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAGnE,MAAM,UAAU,wBAAwB,CAAC,MAAgC;IACvE,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IAEnE,OAAO;QACL,QAAQ,EAAE,gCAAgC,CAAC;YACzC,MAAM,EAAE,gBAAgB;SACzB,CAAC;QACF,KAAK,EAAE,6BAA6B,CAAC;YACnC,MAAM,EAAE,gBAAgB;SACzB,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ChatMessage, LlmAdapter, LlmUsage } from '
|
|
2
|
-
import { type ProviderCredentialSource } from '
|
|
3
|
-
import type { ChatArchiveRecord, ChatContextStats } from '
|
|
1
|
+
import type { ChatMessage, LlmAdapter, LlmUsage } from '../../../llm/types.js';
|
|
2
|
+
import { type ProviderCredentialSource } from '../../../runtime/api-keys.js';
|
|
3
|
+
import type { ChatArchiveRecord, ChatContextStats } from '../../types.js';
|
|
4
4
|
export type CompactionSummarizerOptions = {
|
|
5
5
|
provider?: 'openai' | 'anthropic' | 'active';
|
|
6
6
|
model?: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../../../../../src/core/chat/engine/history/compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAiG,KAAK,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAO5K,OAAO,KAAK,EAAuB,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA2B/F,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7I,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,wBAAwB,CAAC,CAsJnC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG;IAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAwCxD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAExE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEvE;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,gBAAgB,CAUnB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createLlmAdapter, inferProviderFromModel } from '
|
|
2
|
-
import { hasProviderCredentialForModel, resolveApiKeyForModel, resolveProviderCredentialSourceForModel } from '
|
|
3
|
-
import { estimateBuiltInContextWindow } from '
|
|
4
|
-
import { credentialModeFromSource, resolveSystemSelectedModel, } from '
|
|
5
|
-
import { createArchiveId, deriveChatArchivePaths, loadChatArchiveManifest, readArchiveSummaryMarkdown, saveChatArchiveManifest, updateChatArchiveManifest, writeArchivedMessagesJsonl, writeArchiveSummaryMarkdown, } from '
|
|
1
|
+
import { createLlmAdapter, inferProviderFromModel } from '../../../llm/factory.js';
|
|
2
|
+
import { hasProviderCredentialForModel, resolveApiKeyForModel, resolveProviderCredentialSourceForModel } from '../../../runtime/api-keys.js';
|
|
3
|
+
import { estimateBuiltInContextWindow } from '../../../llm/openai-models.js';
|
|
4
|
+
import { credentialModeFromSource, resolveSystemSelectedModel, } from '../../../llm/model-policy.js';
|
|
5
|
+
import { createArchiveId, deriveChatArchivePaths, loadChatArchiveManifest, readArchiveSummaryMarkdown, saveChatArchiveManifest, updateChatArchiveManifest, writeArchivedMessagesJsonl, writeArchiveSummaryMarkdown, } from '../sessions/archive.js';
|
|
6
6
|
const DEFAULT_CONTEXT_WINDOW_ESTIMATE = 200_000;
|
|
7
7
|
const MAX_HISTORY_RATIO = 0.6;
|
|
8
8
|
const MAX_RECENT_HISTORY_RATIO = 0.18;
|