@namzu/sdk 51.1.0 → 52.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +119 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +2 -0
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +1 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/examples/SupervisorAgent.d.ts +42 -0
- package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/examples/SupervisorAgent.js +80 -4
- package/dist/agents/examples/SupervisorAgent.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/authorization/protected-paths.d.ts +36 -0
- package/dist/authorization/protected-paths.d.ts.map +1 -0
- package/dist/authorization/protected-paths.js +107 -0
- package/dist/authorization/protected-paths.js.map +1 -0
- package/dist/authorization/readonly-commands.d.ts +39 -0
- package/dist/authorization/readonly-commands.d.ts.map +1 -0
- package/dist/authorization/readonly-commands.js +797 -0
- package/dist/authorization/readonly-commands.js.map +1 -0
- package/dist/authorization/readonly-flags.d.ts +19 -0
- package/dist/authorization/readonly-flags.d.ts.map +1 -0
- package/dist/authorization/readonly-flags.js +178 -0
- package/dist/authorization/readonly-flags.js.map +1 -0
- package/dist/authorization/removal.d.ts +52 -0
- package/dist/authorization/removal.d.ts.map +1 -0
- package/dist/authorization/removal.js +283 -0
- package/dist/authorization/removal.js.map +1 -0
- package/dist/authorization/shell-paths.d.ts +66 -0
- package/dist/authorization/shell-paths.d.ts.map +1 -0
- package/dist/authorization/shell-paths.js +697 -0
- package/dist/authorization/shell-paths.js.map +1 -0
- package/dist/bridge/acp/update.d.ts.map +1 -1
- package/dist/bridge/acp/update.js +1 -0
- package/dist/bridge/acp/update.js.map +1 -1
- package/dist/compaction/context-window.d.ts +24 -0
- package/dist/compaction/context-window.d.ts.map +1 -1
- package/dist/compaction/context-window.js +34 -0
- package/dist/compaction/context-window.js.map +1 -1
- package/dist/compaction/manual.d.ts.map +1 -1
- package/dist/compaction/manual.js +10 -2
- package/dist/compaction/manual.js.map +1 -1
- package/dist/compaction/plan.d.ts +4 -0
- package/dist/compaction/plan.d.ts.map +1 -1
- package/dist/compaction/plan.js +6 -2
- package/dist/compaction/plan.js.map +1 -1
- package/dist/compaction/verifier.d.ts +11 -1
- package/dist/compaction/verifier.d.ts.map +1 -1
- package/dist/compaction/verifier.js +75 -23
- package/dist/compaction/verifier.js.map +1 -1
- package/dist/config/runtime.d.ts +55 -7
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +23 -2
- package/dist/config/runtime.js.map +1 -1
- package/dist/connector/web/guarded-fetch.d.ts.map +1 -1
- package/dist/connector/web/guarded-fetch.js +24 -0
- package/dist/connector/web/guarded-fetch.js.map +1 -1
- package/dist/connector/web/index.d.ts +1 -1
- package/dist/connector/web/index.d.ts.map +1 -1
- package/dist/connector/web/page.d.ts +59 -0
- package/dist/connector/web/page.d.ts.map +1 -0
- package/dist/connector/web/page.js +112 -0
- package/dist/connector/web/page.js.map +1 -0
- package/dist/connector/web/types.d.ts +47 -0
- package/dist/connector/web/types.d.ts.map +1 -1
- package/dist/connector/web/types.js.map +1 -1
- package/dist/constants/continuation.d.ts +8 -0
- package/dist/constants/continuation.d.ts.map +1 -1
- package/dist/constants/continuation.js +8 -0
- package/dist/constants/continuation.js.map +1 -1
- package/dist/constants/plugin/index.d.ts +1 -1
- package/dist/constants/plugin/index.d.ts.map +1 -1
- package/dist/constants/plugin/index.js +1 -1
- package/dist/constants/plugin/index.js.map +1 -1
- package/dist/contracts/a2a.d.ts +2 -2
- package/dist/manager/agent/lifecycle.d.ts +7 -0
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +11 -2
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/session/turn-recorder.d.ts.map +1 -1
- package/dist/manager/session/turn-recorder.js +4 -2
- package/dist/manager/session/turn-recorder.js.map +1 -1
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +1 -1
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/lifecycle.d.ts +6 -0
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +98 -114
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/shell-hook.d.ts +90 -22
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +434 -41
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/provider/capabilities.d.ts +9 -0
- package/dist/provider/capabilities.d.ts.map +1 -1
- package/dist/provider/capabilities.js +15 -0
- package/dist/provider/capabilities.js.map +1 -1
- package/dist/provider/errors.d.ts.map +1 -1
- package/dist/provider/errors.js +13 -0
- package/dist/provider/errors.js.map +1 -1
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +10 -0
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/idle-timeout.d.ts.map +1 -1
- package/dist/provider/idle-timeout.js +5 -0
- package/dist/provider/idle-timeout.js.map +1 -1
- package/dist/provider/image-input-refusal.d.ts +9 -0
- package/dist/provider/image-input-refusal.d.ts.map +1 -0
- package/dist/provider/image-input-refusal.js +54 -0
- package/dist/provider/image-input-refusal.js.map +1 -0
- package/dist/provider/index.d.ts +2 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +2 -1
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/retry.d.ts +7 -2
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +38 -4
- package/dist/provider/retry.js.map +1 -1
- package/dist/public-runtime.d.ts +5 -2
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +5 -2
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-types.d.ts +2 -2
- package/dist/public-types.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.d.ts +21 -0
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +15 -2
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/deferred-sandbox.d.ts +54 -0
- package/dist/runtime/query/deferred-sandbox.d.ts.map +1 -0
- package/dist/runtime/query/deferred-sandbox.js +75 -0
- package/dist/runtime/query/deferred-sandbox.js.map +1 -0
- package/dist/runtime/query/executor/tool-call-admission.d.ts +10 -0
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +74 -13
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +51 -2
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +214 -9
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/finalize-turn.d.ts +6 -0
- package/dist/runtime/query/finalize-turn.d.ts.map +1 -1
- package/dist/runtime/query/finalize-turn.js +1 -1
- package/dist/runtime/query/finalize-turn.js.map +1 -1
- package/dist/runtime/query/index.d.ts +29 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +108 -28
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +57 -0
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +380 -28
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts +61 -0
- package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction-breaker.js +94 -0
- package/dist/runtime/query/iteration/phases/compaction-breaker.js.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts +42 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +203 -23
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +165 -2
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/provider-rejected-image.d.ts +21 -1
- package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
- package/dist/runtime/query/iteration/provider-rejected-image.js +53 -7
- package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
- package/dist/runtime/query/iteration/request-repair.d.ts +108 -0
- package/dist/runtime/query/iteration/request-repair.d.ts.map +1 -0
- package/dist/runtime/query/iteration/request-repair.js +593 -0
- package/dist/runtime/query/iteration/request-repair.js.map +1 -0
- package/dist/runtime/query/iteration/stream-turn.d.ts +6 -0
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +2 -2
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/path-escalation.d.ts +36 -0
- package/dist/runtime/query/path-escalation.d.ts.map +1 -0
- package/dist/runtime/query/path-escalation.js +184 -0
- package/dist/runtime/query/path-escalation.js.map +1 -0
- package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +8 -0
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/runtime/query/reminders.d.ts +35 -0
- package/dist/runtime/query/reminders.d.ts.map +1 -0
- package/dist/runtime/query/reminders.js +7 -0
- package/dist/runtime/query/reminders.js.map +1 -0
- package/dist/runtime/query/request-rich-content.d.ts +5 -1
- package/dist/runtime/query/request-rich-content.d.ts.map +1 -1
- package/dist/runtime/query/request-rich-content.js +67 -25
- package/dist/runtime/query/request-rich-content.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +26 -0
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +26 -0
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +79 -5
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/tool-output-budget.d.ts +46 -0
- package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
- package/dist/runtime/query/tool-output-budget.js +85 -1
- package/dist/runtime/query/tool-output-budget.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +1 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +5 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/session/paths.d.ts +5 -1
- package/dist/session/paths.d.ts.map +1 -1
- package/dist/session/paths.js +8 -0
- package/dist/session/paths.js.map +1 -1
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +2 -2
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/memory/markdown.d.ts.map +1 -1
- package/dist/store/memory/markdown.js +2 -2
- package/dist/store/memory/markdown.js.map +1 -1
- package/dist/store/memory/naming.d.ts +9 -0
- package/dist/store/memory/naming.d.ts.map +1 -1
- package/dist/store/memory/naming.js +12 -0
- package/dist/store/memory/naming.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts +30 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +170 -26
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/computer-use.d.ts +1 -1
- package/dist/tools/builtins/computer-use.d.ts.map +1 -1
- package/dist/tools/builtins/computer-use.js +12 -5
- package/dist/tools/builtins/computer-use.js.map +1 -1
- package/dist/tools/builtins/content-fingerprint.d.ts +2 -0
- package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
- package/dist/tools/builtins/content-fingerprint.js +4 -0
- package/dist/tools/builtins/content-fingerprint.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +60 -18
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/grep.d.ts +8 -1
- package/dist/tools/builtins/grep.d.ts.map +1 -1
- package/dist/tools/builtins/grep.js +152 -33
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts +1 -0
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +44 -5
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/read-render.d.ts +52 -0
- package/dist/tools/builtins/read-render.d.ts.map +1 -1
- package/dist/tools/builtins/read-render.js +143 -0
- package/dist/tools/builtins/read-render.js.map +1 -1
- package/dist/tools/builtins/web.d.ts +13 -2
- package/dist/tools/builtins/web.d.ts.map +1 -1
- package/dist/tools/builtins/web.js +225 -32
- package/dist/tools/builtins/web.js.map +1 -1
- package/dist/tools/coordinator/ask-user-question.d.ts +2 -0
- package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
- package/dist/tools/coordinator/ask-user-question.js +256 -92
- package/dist/tools/coordinator/ask-user-question.js.map +1 -1
- package/dist/tools/coordinator/question-options.d.ts +1 -0
- package/dist/tools/coordinator/question-options.d.ts.map +1 -1
- package/dist/tools/coordinator/question-options.js +6 -1
- package/dist/tools/coordinator/question-options.js.map +1 -1
- package/dist/tools/defineTool.d.ts +4 -1
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +6 -1
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/paths.d.ts +6 -0
- package/dist/tools/paths.d.ts.map +1 -1
- package/dist/tools/paths.js +1 -1
- package/dist/tools/paths.js.map +1 -1
- package/dist/types/agent/query.d.ts +3 -0
- package/dist/types/agent/query.d.ts.map +1 -1
- package/dist/types/errors/catalog.js +1 -1
- package/dist/types/errors/catalog.js.map +1 -1
- package/dist/types/hitl/index.d.ts +104 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/message/index.d.ts +1 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +2 -0
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +93 -19
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +3 -0
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/provider/errors.d.ts +19 -0
- package/dist/types/provider/errors.d.ts.map +1 -1
- package/dist/types/provider/errors.js +54 -5
- package/dist/types/provider/errors.js.map +1 -1
- package/dist/types/provider/interface.d.ts +12 -0
- package/dist/types/provider/interface.d.ts.map +1 -1
- package/dist/types/provider/stream.d.ts +1 -1
- package/dist/types/session/config.d.ts +14 -0
- package/dist/types/session/config.d.ts.map +1 -1
- package/dist/types/session/events.d.ts +27 -4
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/session/records.d.ts +9 -9
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +1 -0
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/session/stop-reason.d.ts +5 -0
- package/dist/types/session/stop-reason.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +52 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/package.json +4 -2
- package/src/agents/QueryAgent.ts +5 -1
- package/src/agents/SupervisorAgent.ts +1 -1
- package/src/agents/examples/SupervisorAgent.ts +217 -106
- package/src/agents/index.ts +1 -1
- package/src/authorization/protected-paths.ts +110 -0
- package/src/authorization/readonly-commands.ts +771 -0
- package/src/authorization/readonly-flags.ts +196 -0
- package/src/authorization/removal.ts +326 -0
- package/src/authorization/shell-paths.ts +927 -0
- package/src/bridge/acp/update.ts +1 -0
- package/src/compaction/context-window.ts +41 -0
- package/src/compaction/manual.ts +10 -2
- package/src/compaction/plan.ts +11 -2
- package/src/compaction/verifier.ts +84 -22
- package/src/config/runtime.ts +23 -2
- package/src/connector/web/guarded-fetch.ts +26 -0
- package/src/connector/web/index.ts +3 -0
- package/src/connector/web/page.ts +130 -0
- package/src/connector/web/types.ts +47 -0
- package/src/constants/continuation.ts +10 -0
- package/src/constants/plugin/index.ts +1 -1
- package/src/manager/agent/lifecycle.ts +12 -4
- package/src/manager/session/turn-recorder.ts +10 -2
- package/src/plugin/index.ts +1 -0
- package/src/plugin/lifecycle.ts +107 -119
- package/src/plugin/shell-hook.ts +477 -43
- package/src/provider/capabilities.ts +17 -0
- package/src/provider/errors.ts +13 -0
- package/src/provider/fallback.ts +10 -0
- package/src/provider/idle-timeout.ts +5 -0
- package/src/provider/image-input-refusal.ts +54 -0
- package/src/provider/index.ts +2 -0
- package/src/provider/retry.ts +42 -4
- package/src/public-runtime.ts +11 -0
- package/src/public-types.ts +4 -0
- package/src/runtime/jobs/registry.ts +39 -2
- package/src/runtime/query/deferred-sandbox.ts +110 -0
- package/src/runtime/query/executor/tool-call-admission.ts +79 -13
- package/src/runtime/query/executor.ts +267 -11
- package/src/runtime/query/finalize-turn.ts +7 -1
- package/src/runtime/query/index.ts +169 -52
- package/src/runtime/query/iteration/index.ts +439 -35
- package/src/runtime/query/iteration/phases/compaction-breaker.ts +108 -0
- package/src/runtime/query/iteration/phases/compaction.ts +241 -38
- package/src/runtime/query/iteration/phases/context.ts +11 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +177 -2
- package/src/runtime/query/iteration/provider-rejected-image.ts +71 -5
- package/src/runtime/query/iteration/request-repair.ts +743 -0
- package/src/runtime/query/iteration/stream-turn.ts +11 -1
- package/src/runtime/query/path-escalation.ts +204 -0
- package/src/runtime/query/plugin-hooks.ts +8 -0
- package/src/runtime/query/reminders.ts +45 -0
- package/src/runtime/query/request-rich-content.ts +77 -27
- package/src/runtime/query/resume-pending.ts +27 -0
- package/src/runtime/query/review-policy.ts +106 -5
- package/src/runtime/query/tool-output-budget.ts +115 -1
- package/src/runtime/query/tooling.ts +6 -0
- package/src/session/paths.ts +11 -1
- package/src/store/memory/disk.ts +2 -1
- package/src/store/memory/markdown.ts +2 -1
- package/src/store/memory/naming.ts +13 -0
- package/src/tools/builtins/bash.ts +203 -34
- package/src/tools/builtins/computer-use.ts +13 -4
- package/src/tools/builtins/content-fingerprint.ts +5 -0
- package/src/tools/builtins/edit.ts +69 -19
- package/src/tools/builtins/grep.ts +159 -38
- package/src/tools/builtins/read-file.ts +48 -5
- package/src/tools/builtins/read-render.ts +193 -0
- package/src/tools/builtins/web.ts +258 -33
- package/src/tools/coordinator/ask-user-question.ts +309 -103
- package/src/tools/coordinator/question-options.ts +8 -1
- package/src/tools/defineTool.ts +11 -2
- package/src/tools/paths.ts +1 -1
- package/src/types/agent/query.ts +3 -0
- package/src/types/errors/catalog.ts +1 -1
- package/src/types/hitl/index.ts +104 -0
- package/src/types/message/index.ts +2 -0
- package/src/types/plugin/index.ts +101 -18
- package/src/types/provider/errors.ts +66 -5
- package/src/types/provider/interface.ts +13 -0
- package/src/types/provider/stream.ts +1 -1
- package/src/types/session/config.ts +14 -0
- package/src/types/session/events.ts +32 -4
- package/src/types/session/records.ts +1 -0
- package/src/types/session/stop-reason.ts +5 -0
- package/src/types/tool/index.ts +53 -2
|
@@ -2,6 +2,7 @@ import { isTrustedReadOnly } from '../../../../tools/trusted-read-only.js';
|
|
|
2
2
|
import { DECLINED_TOOL_CALL_FEEDBACK } from '../../declined.js';
|
|
3
3
|
import { awaitProjectInstructionCallback, replaceProjectInstructionSnapshot, } from '../../project-instructions.js';
|
|
4
4
|
import { attachRepeatNotice } from '../../repeat-call.js';
|
|
5
|
+
import { isReviewExempt } from '../../review-policy.js';
|
|
5
6
|
import { attachNotice, attachSteering, formatJobNote } from '../../steering.js';
|
|
6
7
|
import { awaitDecisionDurably } from './context.js';
|
|
7
8
|
/** Why an escalated call cannot be waved through by the rule that would otherwise allow it. */
|
|
@@ -11,10 +12,21 @@ function escalationReason(escalation) {
|
|
|
11
12
|
}
|
|
12
13
|
if (escalation?.sandboxEscape)
|
|
13
14
|
return "this call asks to run outside the turn's sandbox";
|
|
15
|
+
if (escalation?.dangerousRemoval !== undefined) {
|
|
16
|
+
return `this call removes something catastrophic (${escalation.dangerousRemoval})`;
|
|
17
|
+
}
|
|
18
|
+
if (escalation?.protectedPaths?.length) {
|
|
19
|
+
return `this call writes a protected ${escalation.protectedPaths.length === 1 ? 'path' : 'paths'} (${escalation.protectedPaths.join(', ')})`;
|
|
20
|
+
}
|
|
14
21
|
if (escalation?.outsidePaths?.length)
|
|
15
22
|
return `this call reaches ${escalation.outsidePaths.length === 1 ? 'a path' : 'paths'} outside the turn's boundary`;
|
|
16
23
|
return "this call reaches past the turn's boundary, which a rule cannot approve on its own";
|
|
17
24
|
}
|
|
25
|
+
function hookAskedReason(reason) {
|
|
26
|
+
return reason
|
|
27
|
+
? `a hook asked that a person approve this call: ${reason}`
|
|
28
|
+
: 'a hook asked that a person approve this call';
|
|
29
|
+
}
|
|
18
30
|
/**
|
|
19
31
|
* Run every tool call in `response` through the gate and (when the gate is
|
|
20
32
|
* inconclusive) a human, then hand the whole batch — approved and refused
|
|
@@ -82,14 +94,25 @@ export async function* runToolReview(ctx, response, iterationNum) {
|
|
|
82
94
|
const isDestructive = tool?.isDestructive ? tool.isDestructive(tc.input) : false;
|
|
83
95
|
const requiresApproval = tool?.requiresApproval ? tool.requiresApproval(tc.input) : false;
|
|
84
96
|
const escalation = 'escalation' in tc ? tc.escalation : undefined;
|
|
97
|
+
const hookPermission = 'hookPermission' in tc ? tc.hookPermission : undefined;
|
|
85
98
|
return {
|
|
86
99
|
id: tc.id,
|
|
87
100
|
name: tc.name,
|
|
88
101
|
input: tc.input,
|
|
89
102
|
isDestructive,
|
|
90
|
-
|
|
103
|
+
// A hook that asked for a person is an explicit review: a call the
|
|
104
|
+
// tool declares read-only, or one a rule would allow, is still put
|
|
105
|
+
// to one.
|
|
106
|
+
authorization: hookPermission?.decision === 'ask'
|
|
107
|
+
? {
|
|
108
|
+
decision: 'review',
|
|
109
|
+
reason: hookAskedReason(hookPermission.reason),
|
|
110
|
+
explicitReview: true,
|
|
111
|
+
}
|
|
112
|
+
: { decision: 'review' },
|
|
91
113
|
...(requiresApproval ? { requiresApproval: true } : {}),
|
|
92
114
|
...(escalation ? { escalation } : {}),
|
|
115
|
+
...(hookPermission ? { hookPermission } : {}),
|
|
93
116
|
};
|
|
94
117
|
});
|
|
95
118
|
};
|
|
@@ -278,6 +301,24 @@ export async function* runToolReview(ctx, response, iterationNum) {
|
|
|
278
301
|
reason,
|
|
279
302
|
});
|
|
280
303
|
}
|
|
304
|
+
for (const path of tc.escalation?.protectedPaths ?? []) {
|
|
305
|
+
await ctx.recorder.recordAudit({
|
|
306
|
+
what: { action: 'protected_path_write', tool: tc.name, resource: path },
|
|
307
|
+
outcome: 'refused',
|
|
308
|
+
reason,
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
if (tc.escalation?.dangerousRemoval !== undefined) {
|
|
312
|
+
await ctx.recorder.recordAudit({
|
|
313
|
+
what: {
|
|
314
|
+
action: 'dangerous_removal',
|
|
315
|
+
tool: tc.name,
|
|
316
|
+
resource: tc.escalation.dangerousRemoval,
|
|
317
|
+
},
|
|
318
|
+
outcome: 'refused',
|
|
319
|
+
reason,
|
|
320
|
+
});
|
|
321
|
+
}
|
|
281
322
|
};
|
|
282
323
|
// Gate-denied ids survive the whole function: a later human approval
|
|
283
324
|
// must not be able to release them.
|
|
@@ -339,11 +380,21 @@ export async function* runToolReview(ctx, response, iterationNum) {
|
|
|
339
380
|
reason: `${gr.gateResult.reason}; but the tool itself declares this call always needs a person's approval, which a rule cannot waive`,
|
|
340
381
|
};
|
|
341
382
|
}
|
|
383
|
+
// A hook that asked for a person can only ADD a review, like the two
|
|
384
|
+
// overrides above: a `deny` stays a denial.
|
|
385
|
+
const hookAsked = gr.toolCall.hookPermission?.decision === 'ask';
|
|
386
|
+
if (hookAsked && gr.gateResult.decision === 'allow') {
|
|
387
|
+
gr.gateResult = {
|
|
388
|
+
decision: 'review',
|
|
389
|
+
matchedRule: gr.gateResult.matchedRule,
|
|
390
|
+
reason: `${gr.gateResult.reason}; but ${hookAskedReason(gr.toolCall.hookPermission?.reason)}`,
|
|
391
|
+
};
|
|
392
|
+
}
|
|
342
393
|
const { toolCall, gateResult } = gr;
|
|
343
394
|
toolCall.authorization = {
|
|
344
395
|
decision: gateResult.decision,
|
|
345
396
|
...(gateResult.reason ? { reason: gateResult.reason } : {}),
|
|
346
|
-
...(gateResult.decision === 'review' && gateResult.matchedRule
|
|
397
|
+
...(gateResult.decision === 'review' && (gateResult.matchedRule || hookAsked)
|
|
347
398
|
? { explicitReview: true }
|
|
348
399
|
: {}),
|
|
349
400
|
};
|
|
@@ -416,6 +467,26 @@ export async function* runToolReview(ctx, response, iterationNum) {
|
|
|
416
467
|
tc.skillGrant = { skill };
|
|
417
468
|
}
|
|
418
469
|
}
|
|
470
|
+
// A `pre_tool_use` hook's `allow`, marked on the calls it covers on the
|
|
471
|
+
// same terms as a skill's grant above and honoured by the review policy,
|
|
472
|
+
// never decided here. A deny, an explicit review (a rule's, or a hook's own
|
|
473
|
+
// `ask`), a destructive call, a path outside the roots, a sandbox escape and
|
|
474
|
+
// a tool's own `requiresApproval` all leave the call unmarked, so it is
|
|
475
|
+
// reviewed as though no hook had spoken.
|
|
476
|
+
/** Whether a hook's `allow` may stand in for a person on this call. */
|
|
477
|
+
const hookMayAllow = (tc) => !gateDenied.has(tc.id) &&
|
|
478
|
+
tc.authorization?.decision !== 'deny' &&
|
|
479
|
+
!tc.authorization?.explicitReview &&
|
|
480
|
+
!tc.isDestructive &&
|
|
481
|
+
tc.escalation === undefined &&
|
|
482
|
+
!tc.requiresApproval;
|
|
483
|
+
for (const tc of toolCallSummaries) {
|
|
484
|
+
if (tc.hookPermission?.decision !== 'allow' || !hookMayAllow(tc))
|
|
485
|
+
continue;
|
|
486
|
+
tc.hookGrant = {
|
|
487
|
+
...(tc.hookPermission.reason ? { reason: tc.hookPermission.reason } : {}),
|
|
488
|
+
};
|
|
489
|
+
}
|
|
419
490
|
// Already approved, at a scope the approver chose — and nothing the
|
|
420
491
|
// operator's policy denied, because `gateDenied` is checked first.
|
|
421
492
|
// Re-asking about a call somebody has already said yes to is how an
|
|
@@ -440,6 +511,67 @@ export async function* runToolReview(ctx, response, iterationNum) {
|
|
|
440
511
|
yield* ctx.drainPending();
|
|
441
512
|
return finish('executed');
|
|
442
513
|
}
|
|
514
|
+
// A person is about to be asked. `permission_request` hooks may answer
|
|
515
|
+
// first, per call: `skip` refuses it (and always wins), `allow` approves it
|
|
516
|
+
// on the same terms as a `pre_tool_use` allow. A read the review policy
|
|
517
|
+
// would not have asked about is not a question and is not offered.
|
|
518
|
+
if (ctx.pluginManager) {
|
|
519
|
+
const questions = toolCallSummaries.filter((tc) => !gateDenied.has(tc.id) &&
|
|
520
|
+
tc.authorization?.decision !== 'deny' &&
|
|
521
|
+
tc.authorization?.decision !== 'allow' &&
|
|
522
|
+
(tc.authorization?.explicitReview === true ||
|
|
523
|
+
tc.escalation !== undefined ||
|
|
524
|
+
tc.requiresApproval === true ||
|
|
525
|
+
tc.isDestructive ||
|
|
526
|
+
!isReviewExempt(ctx.tools, tc.name, tc.input)));
|
|
527
|
+
for (const tc of questions) {
|
|
528
|
+
const answers = await ctx.pluginManager.executeHooks('permission_request', {
|
|
529
|
+
sessionId: ctx.recorder.sessionId,
|
|
530
|
+
turnId: ctx.recorder.turnId,
|
|
531
|
+
toolName: tc.name,
|
|
532
|
+
toolInput: tc.input,
|
|
533
|
+
signal: ctx.abortController.signal,
|
|
534
|
+
}, ctx.emitEvent);
|
|
535
|
+
// The hooks answered side by side: a refusal from any of them stands,
|
|
536
|
+
// whatever the others allowed.
|
|
537
|
+
const refusal = answers.find((answer) => answer.action === 'skip');
|
|
538
|
+
for (const answer of answers) {
|
|
539
|
+
if ((answer.action === 'continue' || answer.action === 'skip') && answer.halt) {
|
|
540
|
+
ctx.toolExecutor.requestHalt?.(answer.halt.reason);
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
if (refusal?.action === 'skip') {
|
|
544
|
+
const reason = `Blocked by a permission_request hook: ${refusal.reason}`;
|
|
545
|
+
gateDenied.set(tc.id, reason);
|
|
546
|
+
tc.authorization = { decision: 'deny', reason };
|
|
547
|
+
await ctx.recorder.recordAudit({
|
|
548
|
+
what: { action: 'tool_call', tool: tc.name },
|
|
549
|
+
outcome: 'refused',
|
|
550
|
+
reason,
|
|
551
|
+
});
|
|
552
|
+
continue;
|
|
553
|
+
}
|
|
554
|
+
for (const answer of answers) {
|
|
555
|
+
if (answer.action === 'continue' &&
|
|
556
|
+
answer.permission?.decision === 'allow' &&
|
|
557
|
+
hookMayAllow(tc)) {
|
|
558
|
+
tc.hookGrant = {
|
|
559
|
+
...(answer.permission.reason ? { reason: answer.permission.reason } : {}),
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
if (toolCallSummaries.every((tc) => gateDenied.has(tc.id))) {
|
|
565
|
+
for (const tc of escalated()) {
|
|
566
|
+
const reason = gateDenied.get(tc.id);
|
|
567
|
+
if (reason !== undefined)
|
|
568
|
+
await recordRefusedEscalation(tc, reason);
|
|
569
|
+
}
|
|
570
|
+
yield* settle(gateDenied);
|
|
571
|
+
yield* ctx.drainPending();
|
|
572
|
+
return finish('rejected');
|
|
573
|
+
}
|
|
574
|
+
}
|
|
443
575
|
const reviewCheckpoint = await ctx.checkpointMgr.create(ctx.recorder, iterationNum);
|
|
444
576
|
await ctx.emitEvent({
|
|
445
577
|
type: 'tool_review_requested',
|
|
@@ -515,6 +647,24 @@ export async function* runToolReview(ctx, response, iterationNum) {
|
|
|
515
647
|
reason: "the turn's review approved this call",
|
|
516
648
|
});
|
|
517
649
|
}
|
|
650
|
+
for (const path of tc.escalation?.protectedPaths ?? []) {
|
|
651
|
+
await ctx.recorder.recordAudit({
|
|
652
|
+
what: { action: 'protected_path_write', tool: tc.name, resource: path },
|
|
653
|
+
outcome: 'approved',
|
|
654
|
+
reason: "the turn's review approved this call",
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
if (tc.escalation?.dangerousRemoval !== undefined) {
|
|
658
|
+
await ctx.recorder.recordAudit({
|
|
659
|
+
what: {
|
|
660
|
+
action: 'dangerous_removal',
|
|
661
|
+
tool: tc.name,
|
|
662
|
+
resource: tc.escalation.dangerousRemoval,
|
|
663
|
+
},
|
|
664
|
+
outcome: 'approved',
|
|
665
|
+
reason: "the turn's review approved this call",
|
|
666
|
+
});
|
|
667
|
+
}
|
|
518
668
|
}
|
|
519
669
|
};
|
|
520
670
|
switch (reviewDecision.action) {
|
|
@@ -661,6 +811,19 @@ export async function* runToolReview(ctx, response, iterationNum) {
|
|
|
661
811
|
});
|
|
662
812
|
}
|
|
663
813
|
}
|
|
814
|
+
// The same for a call a hook's `allow` approved.
|
|
815
|
+
if (reviewDecision.action === 'approve_tools' && reviewDecision.hookGranted) {
|
|
816
|
+
const listed = new Set(reviewDecision.hookGranted);
|
|
817
|
+
for (const tc of toolCallSummaries) {
|
|
818
|
+
if (!listed.has(tc.id) || !tc.hookGrant || gateDenied.has(tc.id))
|
|
819
|
+
continue;
|
|
820
|
+
await ctx.recorder.recordAudit({
|
|
821
|
+
what: { action: 'tool_call', tool: tc.name },
|
|
822
|
+
outcome: 'approved',
|
|
823
|
+
reason: `pre-approved by a pre_tool_use hook${tc.hookGrant.reason ? ` (${tc.hookGrant.reason})` : ''}; nobody was asked`,
|
|
824
|
+
});
|
|
825
|
+
}
|
|
826
|
+
}
|
|
664
827
|
await ctx.emitEvent({
|
|
665
828
|
type: 'tool_review_completed',
|
|
666
829
|
turnId: ctx.recorder.turnId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-review.js","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/tool-review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-review.js","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/tool-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
import type { Message } from '../../../types/message/index.js';
|
|
2
2
|
import type { ChatCompletionParams, LLMProvider, StreamChunk } from '../../../types/provider/index.js';
|
|
3
3
|
import { type RequestImageIdentity } from '../request-rich-content.js';
|
|
4
|
+
import type { RequestRepair } from './request-repair.js';
|
|
4
5
|
export declare function isProviderRejectedImageError(error: unknown): boolean;
|
|
6
|
+
/** The provider and model that refused a request for holding an image. */
|
|
7
|
+
export interface TextOnlyModelRefusal {
|
|
8
|
+
readonly providerId: string;
|
|
9
|
+
readonly model: string | undefined;
|
|
10
|
+
}
|
|
11
|
+
/** See {@link streamWithProviderRejectedImageRecovery}. */
|
|
12
|
+
export interface TextOnlyModelRecovery {
|
|
13
|
+
/**
|
|
14
|
+
* Who is serving the request. A fallback chain reports its head's id and
|
|
15
|
+
* moves between members, so without this the refusal would be filed against
|
|
16
|
+
* a model that never saw the request. Read when the refusal arrives.
|
|
17
|
+
*/
|
|
18
|
+
readonly servedBy?: () => {
|
|
19
|
+
readonly providerId: string;
|
|
20
|
+
readonly model?: string;
|
|
21
|
+
};
|
|
22
|
+
/** The retry without images was accepted: `refused` cannot read images. */
|
|
23
|
+
readonly onAccepted: (refused: TextOnlyModelRefusal) => void | Promise<void>;
|
|
24
|
+
}
|
|
5
25
|
/**
|
|
6
26
|
* Retry one provider-invalid request without its only distinct image.
|
|
7
27
|
*
|
|
@@ -10,5 +30,5 @@ export declare function isProviderRejectedImageError(error: unknown): boolean;
|
|
|
10
30
|
* accepted chunk or reached a clean EOF. A legacy phrase can still recover the
|
|
11
31
|
* current request, but cannot assert durable server proof.
|
|
12
32
|
*/
|
|
13
|
-
export declare function streamWithProviderRejectedImageRecovery(provider: LLMProvider, params: ChatCompletionParams, onAccepted: (identity: RequestImageIdentity) => Promise<void>, onRequest?: (messages: readonly Message[]) => void): AsyncIterable<StreamChunk>;
|
|
33
|
+
export declare function streamWithProviderRejectedImageRecovery(provider: LLMProvider, params: ChatCompletionParams, onAccepted: (identity: RequestImageIdentity) => Promise<void>, onRequest?: (messages: readonly Message[]) => void, textOnly?: TextOnlyModelRecovery, repair?: RequestRepair): AsyncIterable<StreamChunk>;
|
|
14
34
|
//# sourceMappingURL=provider-rejected-image.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-rejected-image.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/provider-rejected-image.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-rejected-image.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/provider-rejected-image.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,KAAK,EACX,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACN,KAAK,oBAAoB,EAKzB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAkBxD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpE;AAuBD,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED,2DAA2D;AAC3D,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClF,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5E;AAED;;;;;;;GAOG;AACH,wBAAuB,uCAAuC,CAC7D,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,oBAAoB,EAC5B,UAAU,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,EAC7D,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,KAAK,IAAI,EAClD,QAAQ,CAAC,EAAE,qBAAqB,EAChC,MAAM,CAAC,EAAE,aAAa,GACpB,aAAa,CAAC,WAAW,CAAC,CAqF5B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isProviderRequestError } from '../../../provider/errors.js';
|
|
2
|
-
import {
|
|
2
|
+
import { isImageInputRefusal } from '../../../provider/image-input-refusal.js';
|
|
3
|
+
import { findSingleRequestImage, projectRequestRichContent, projectRequestWithoutImage, requestHasImages, } from '../request-rich-content.js';
|
|
3
4
|
const IMAGE_REJECTION_PATTERNS = [
|
|
4
5
|
/\binvalid[_ -]?image\b/i,
|
|
5
6
|
/\bimage\b.{0,100}\b(?:cannot|could not|failed to)\s+(?:be\s+)?(?:decoded|processed|loaded|parsed|read)\b/i,
|
|
@@ -43,17 +44,23 @@ function throwIfAborted(signal) {
|
|
|
43
44
|
* accepted chunk or reached a clean EOF. A legacy phrase can still recover the
|
|
44
45
|
* current request, but cannot assert durable server proof.
|
|
45
46
|
*/
|
|
46
|
-
export async function* streamWithProviderRejectedImageRecovery(provider, params, onAccepted, onRequest) {
|
|
47
|
+
export async function* streamWithProviderRejectedImageRecovery(provider, params, onAccepted, onRequest, textOnly, repair) {
|
|
48
|
+
// Every send, including the retries below, goes through the request repair.
|
|
49
|
+
// They share one repair budget: the original request and its retries are
|
|
50
|
+
// one request to the person, and each resend is a paid call.
|
|
51
|
+
const session = repair?.session();
|
|
52
|
+
const send = (request) => repair ? repair.stream(provider, request, session) : provider.chatStream(request);
|
|
47
53
|
const candidate = findSingleRequestImage(params.messages);
|
|
48
54
|
onRequest?.(params.messages);
|
|
49
|
-
if (candidate === null) {
|
|
50
|
-
yield*
|
|
55
|
+
if (candidate === null && !requestHasImages(params.messages)) {
|
|
56
|
+
yield* send(params);
|
|
51
57
|
return;
|
|
52
58
|
}
|
|
53
59
|
let produced = false;
|
|
54
60
|
let confidence = null;
|
|
61
|
+
let refused = null;
|
|
55
62
|
try {
|
|
56
|
-
for await (const chunk of
|
|
63
|
+
for await (const chunk of send(params)) {
|
|
57
64
|
if (isAcceptedChunk(chunk))
|
|
58
65
|
produced = true;
|
|
59
66
|
yield chunk;
|
|
@@ -62,11 +69,50 @@ export async function* streamWithProviderRejectedImageRecovery(provider, params,
|
|
|
62
69
|
}
|
|
63
70
|
catch (error) {
|
|
64
71
|
throwIfAborted(params.signal);
|
|
72
|
+
if (produced)
|
|
73
|
+
throw error;
|
|
74
|
+
// A fault in one image (the server's own `invalid_image`, or wording that
|
|
75
|
+
// says an image could not be decoded) is about that image, not about the
|
|
76
|
+
// model, and it wins: the model reads images, so it keeps the others.
|
|
65
77
|
confidence = classifyProviderRejectedImageError(error);
|
|
66
|
-
if (
|
|
78
|
+
if (confidence === null && isImageInputRefusal(error)) {
|
|
79
|
+
// A model that reads text only refuses the request however many images
|
|
80
|
+
// it holds, so every image goes. Named now, while the member that
|
|
81
|
+
// refused is still the one serving.
|
|
82
|
+
const served = textOnly?.servedBy?.();
|
|
83
|
+
refused = {
|
|
84
|
+
providerId: served?.providerId ?? provider.id,
|
|
85
|
+
model: served?.model ?? params.model,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
else if (confidence === null || candidate === null) {
|
|
67
89
|
throw error;
|
|
90
|
+
}
|
|
68
91
|
}
|
|
69
92
|
throwIfAborted(params.signal);
|
|
93
|
+
if (refused !== null) {
|
|
94
|
+
// One retry, without any image. The stored conversation is untouched, so
|
|
95
|
+
// a model that does read images gets them again.
|
|
96
|
+
const messages = projectRequestRichContent(params.messages, 0, { imagesReadable: false });
|
|
97
|
+
onRequest?.(messages);
|
|
98
|
+
let accepted = false;
|
|
99
|
+
let reportedError = false;
|
|
100
|
+
for await (const chunk of send({ ...params, messages })) {
|
|
101
|
+
if (chunk.error !== undefined)
|
|
102
|
+
reportedError = true;
|
|
103
|
+
if (!accepted && isAcceptedChunk(chunk)) {
|
|
104
|
+
throwIfAborted(params.signal);
|
|
105
|
+
await textOnly?.onAccepted(refused);
|
|
106
|
+
accepted = true;
|
|
107
|
+
}
|
|
108
|
+
yield chunk;
|
|
109
|
+
}
|
|
110
|
+
if (!accepted && !reportedError)
|
|
111
|
+
await textOnly?.onAccepted(refused);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (candidate === null)
|
|
115
|
+
return;
|
|
70
116
|
const retryParams = {
|
|
71
117
|
...params,
|
|
72
118
|
messages: projectRequestWithoutImage(params.messages, candidate),
|
|
@@ -74,7 +120,7 @@ export async function* streamWithProviderRejectedImageRecovery(provider, params,
|
|
|
74
120
|
let accepted = false;
|
|
75
121
|
let retryReportedError = false;
|
|
76
122
|
onRequest?.(retryParams.messages);
|
|
77
|
-
for await (const chunk of
|
|
123
|
+
for await (const chunk of send(retryParams)) {
|
|
78
124
|
if (chunk.error !== undefined)
|
|
79
125
|
retryReportedError = true;
|
|
80
126
|
if (!accepted && isAcceptedChunk(chunk)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-rejected-image.js","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/provider-rejected-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"provider-rejected-image.js","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/provider-rejected-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { ChatCompletionParams, LLMProvider, StreamChunk } from '../../../types/provider/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Repair-and-retry for a request a provider rejects as invalid (a 400 that is
|
|
4
|
+
* not a context overflow), so a conversation does not dead-end on it.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors the reference terminal's table of silent 400 recoveries: pair tool
|
|
7
|
+
* calls with results before a send, strip rejected reasoning, drop a
|
|
8
|
+
* parameter the model refuses, and take rejected media out of the OUTGOING
|
|
9
|
+
* request. Stored history is never edited.
|
|
10
|
+
*
|
|
11
|
+
* **Nothing is remembered on a guess.** Every repair is a guess about what the
|
|
12
|
+
* provider objected to. What it teaches (a parameter to leave out, reasoning to
|
|
13
|
+
* strip, media to omit, a media limit) is kept for the run only once a resend
|
|
14
|
+
* WITHOUT the offending part was accepted. A guess that did not fix the
|
|
15
|
+
* request is forgotten and the original rejection is thrown, so a wrong guess
|
|
16
|
+
* never changes a later request.
|
|
17
|
+
*
|
|
18
|
+
* It decorates one model call of the agent loop (a turn, or the closing
|
|
19
|
+
* summary), so a rejection is only acted on when nothing has been accepted yet:
|
|
20
|
+
* resending then cannot duplicate output. Other callers of a provider, such as
|
|
21
|
+
* compaction summaries, do not pass through it.
|
|
22
|
+
*/
|
|
23
|
+
export type RejectedParameter = 'effort' | 'thinking' | 'temperature' | 'topP' | 'responseFormat';
|
|
24
|
+
export interface MediaRemoval {
|
|
25
|
+
readonly count: number;
|
|
26
|
+
readonly kind: 'image' | 'document' | 'media';
|
|
27
|
+
/** Some of it was attached to the person's latest message. */
|
|
28
|
+
readonly current: boolean;
|
|
29
|
+
/** It was dropped to fit a count the provider accepts, not because a file was faulty. */
|
|
30
|
+
readonly limit: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface RequestRepairHooks {
|
|
33
|
+
/** Debug-level record of a silent repair. Never shown to the person. */
|
|
34
|
+
readonly debug?: (message: string) => void;
|
|
35
|
+
/** Media was taken out of a request that then went through. Called once per removal. */
|
|
36
|
+
readonly onMediaRemoved?: (removal: MediaRemoval) => void | Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* The member that serves the next request. A fallback chain moves between
|
|
39
|
+
* members, and what a member refused is a fact about that member, not about
|
|
40
|
+
* the head of the chain.
|
|
41
|
+
*/
|
|
42
|
+
readonly servedBy?: () => {
|
|
43
|
+
readonly providerId: string;
|
|
44
|
+
readonly model?: string;
|
|
45
|
+
} | undefined;
|
|
46
|
+
}
|
|
47
|
+
type Rejection = {
|
|
48
|
+
readonly kind: 'tool-pairing';
|
|
49
|
+
} | {
|
|
50
|
+
readonly kind: 'reasoning';
|
|
51
|
+
} | {
|
|
52
|
+
readonly kind: 'parameter';
|
|
53
|
+
readonly parameters: readonly RejectedParameter[];
|
|
54
|
+
} | {
|
|
55
|
+
readonly kind: 'media';
|
|
56
|
+
readonly generic: boolean;
|
|
57
|
+
readonly messageIndex?: number;
|
|
58
|
+
readonly contentIndex?: number;
|
|
59
|
+
};
|
|
60
|
+
/** Most repair resends for one original request, across every send it makes. */
|
|
61
|
+
export declare const MAX_REPAIRS_PER_REQUEST = 5;
|
|
62
|
+
/**
|
|
63
|
+
* What kind of invalid request this is, from the provider's structured code
|
|
64
|
+
* where it sent one and from its wording only as a fallback.
|
|
65
|
+
*/
|
|
66
|
+
export declare function classifyRequestRejection(error: unknown, params: ChatCompletionParams): Rejection | null;
|
|
67
|
+
interface Learned {
|
|
68
|
+
readonly latched: Map<string, Set<RejectedParameter>>;
|
|
69
|
+
readonly reasoningOff: Set<string>;
|
|
70
|
+
readonly rejectedMedia: Set<string>;
|
|
71
|
+
mediaLimit: number | undefined;
|
|
72
|
+
}
|
|
73
|
+
/** The budget and the unconfirmed guesses of one original request, shared by every send it makes. */
|
|
74
|
+
export interface RepairSession {
|
|
75
|
+
readonly spent: Set<string>;
|
|
76
|
+
readonly stripsByIndex: Map<number, number>;
|
|
77
|
+
pending: Learned;
|
|
78
|
+
repairs: number;
|
|
79
|
+
removal: MediaRemoval | undefined;
|
|
80
|
+
}
|
|
81
|
+
export declare class RequestRepair {
|
|
82
|
+
private readonly hooks;
|
|
83
|
+
private readonly learned;
|
|
84
|
+
constructor(hooks?: RequestRepairHooks);
|
|
85
|
+
/** A fresh budget for one original request. */
|
|
86
|
+
session(): RepairSession;
|
|
87
|
+
private served;
|
|
88
|
+
private routeKey;
|
|
89
|
+
/** Everything already confirmed, then the tool pairing the provider requires. */
|
|
90
|
+
private prepare;
|
|
91
|
+
private applyMediaMemory;
|
|
92
|
+
/** The shared tool-history repair, on the outgoing copy. Duplicate call ids fail closed there, so the request goes out as it is. */
|
|
93
|
+
private pair;
|
|
94
|
+
/** What a resend that was accepted has proved. */
|
|
95
|
+
private commit;
|
|
96
|
+
/** The request to send after `rejection`, or null when nothing more can be tried. */
|
|
97
|
+
private next;
|
|
98
|
+
private nextWithoutMedia;
|
|
99
|
+
/**
|
|
100
|
+
* Send `params`, repairing and resending a request the provider rejects as
|
|
101
|
+
* invalid until it is accepted or nothing more can be changed. The original
|
|
102
|
+
* rejection is thrown when nothing applies, and what the guesses taught is
|
|
103
|
+
* forgotten unless a resend was accepted.
|
|
104
|
+
*/
|
|
105
|
+
stream(provider: LLMProvider, params: ChatCompletionParams, session?: RepairSession): AsyncIterable<StreamChunk>;
|
|
106
|
+
}
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=request-repair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-repair.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/request-repair.ts"],"names":[],"mappings":"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"}
|