@namzu/sdk 53.2.2 → 55.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/CHANGELOG.md +56 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +1 -0
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/compaction/context-breakdown.d.ts +85 -0
- package/dist/compaction/context-breakdown.d.ts.map +1 -0
- package/dist/compaction/context-breakdown.js +149 -0
- package/dist/compaction/context-breakdown.js.map +1 -0
- package/dist/compaction/extractor.d.ts.map +1 -1
- package/dist/compaction/extractor.js +5 -1
- package/dist/compaction/extractor.js.map +1 -1
- package/dist/compaction/managers/structured.d.ts.map +1 -1
- package/dist/compaction/managers/structured.js +5 -0
- package/dist/compaction/managers/structured.js.map +1 -1
- package/dist/compaction/manual.d.ts.map +1 -1
- package/dist/compaction/manual.js +6 -0
- package/dist/compaction/manual.js.map +1 -1
- package/dist/compaction/serializer.d.ts +6 -0
- package/dist/compaction/serializer.d.ts.map +1 -1
- package/dist/compaction/serializer.js +21 -3
- package/dist/compaction/serializer.js.map +1 -1
- package/dist/compaction/token-estimate.d.ts +2 -0
- package/dist/compaction/token-estimate.d.ts.map +1 -1
- package/dist/compaction/token-estimate.js +4 -0
- package/dist/compaction/token-estimate.js.map +1 -1
- package/dist/compaction/verifier.d.ts.map +1 -1
- package/dist/compaction/verifier.js +27 -6
- package/dist/compaction/verifier.js.map +1 -1
- package/dist/constants/compaction/index.d.ts +1 -0
- package/dist/constants/compaction/index.d.ts.map +1 -1
- package/dist/constants/compaction/index.js +1 -0
- package/dist/constants/compaction/index.js.map +1 -1
- package/dist/manager/resident/proposal.d.ts +2 -2
- package/dist/manager/resident/store.d.ts +4 -4
- package/dist/prompt/coding-agent-doctrine.d.ts +3 -3
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
- package/dist/prompt/coding-agent-doctrine.js +18 -20
- package/dist/prompt/coding-agent-doctrine.js.map +1 -1
- package/dist/public-runtime.d.ts +8 -3
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +7 -2
- package/dist/public-runtime.js.map +1 -1
- package/dist/runtime/cache-clock.d.ts +39 -0
- package/dist/runtime/cache-clock.d.ts.map +1 -0
- package/dist/runtime/cache-clock.js +48 -0
- package/dist/runtime/cache-clock.js.map +1 -0
- package/dist/runtime/query/checkpoint.d.ts +12 -2
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +42 -8
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/compact-session.d.ts +37 -2
- package/dist/runtime/query/compact-session.d.ts.map +1 -1
- package/dist/runtime/query/compact-session.js +77 -3
- package/dist/runtime/query/compact-session.js.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +3 -0
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +39 -1
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +115 -7
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/index.d.ts +18 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +20 -1
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +25 -8
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +24 -2
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js +22 -22
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/per-call-review.d.ts +78 -0
- package/dist/runtime/query/iteration/phases/per-call-review.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/per-call-review.js +494 -0
- package/dist/runtime/query/iteration/phases/per-call-review.js.map +1 -0
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +129 -62
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/step-context.d.ts +14 -0
- package/dist/runtime/query/iteration/step-context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/step-context.js +29 -0
- package/dist/runtime/query/iteration/step-context.js.map +1 -1
- package/dist/runtime/query/iteration/step-shaping.d.ts.map +1 -1
- package/dist/runtime/query/iteration/step-shaping.js +6 -2
- package/dist/runtime/query/iteration/step-shaping.js.map +1 -1
- package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
- package/dist/runtime/query/prepare-turn.js +16 -3
- package/dist/runtime/query/prepare-turn.js.map +1 -1
- package/dist/runtime/query/project-instructions.d.ts +24 -5
- package/dist/runtime/query/project-instructions.d.ts.map +1 -1
- package/dist/runtime/query/project-instructions.js +107 -35
- package/dist/runtime/query/project-instructions.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts +6 -0
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +10 -49
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts +8 -0
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +101 -0
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +18 -0
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +10 -0
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/steering.d.ts +55 -56
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js +78 -72
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/store/budget/disk.js +4 -1
- package/dist/store/budget/disk.js.map +1 -1
- package/dist/tools/admit-facts.d.ts.map +1 -1
- package/dist/tools/admit-facts.js +6 -0
- package/dist/tools/admit-facts.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts +8 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +36 -27
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/browser.d.ts.map +1 -1
- package/dist/tools/builtins/browser.js +38 -12
- package/dist/tools/builtins/browser.js.map +1 -1
- package/dist/tools/builtins/edit-apply.d.ts +7 -4
- package/dist/tools/builtins/edit-apply.d.ts.map +1 -1
- package/dist/tools/builtins/edit-apply.js +3 -0
- package/dist/tools/builtins/edit-apply.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +31 -11
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/exit-semantics.d.ts +31 -0
- package/dist/tools/builtins/exit-semantics.d.ts.map +1 -0
- package/dist/tools/builtins/exit-semantics.js +198 -0
- package/dist/tools/builtins/exit-semantics.js.map +1 -0
- package/dist/tools/builtins/job.js +1 -1
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/skill.js +1 -1
- package/dist/tools/builtins/skill.js.map +1 -1
- package/dist/tools/builtins/structuredOutput.js +1 -1
- package/dist/tools/builtins/structuredOutput.js.map +1 -1
- package/dist/tools/builtins/verify-outputs.js +1 -1
- package/dist/tools/builtins/verify-outputs.js.map +1 -1
- package/dist/tools/builtins/write-file.js +11 -6
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/ask-user-question.d.ts +6 -0
- package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
- package/dist/tools/coordinator/ask-user-question.js +6 -1
- package/dist/tools/coordinator/ask-user-question.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +10 -3
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/memory/delete.js +1 -1
- package/dist/tools/memory/delete.js.map +1 -1
- package/dist/tools/memory/read.js +1 -1
- package/dist/tools/memory/read.js.map +1 -1
- package/dist/tools/memory/save.d.ts.map +1 -1
- package/dist/tools/memory/save.js +4 -3
- package/dist/tools/memory/save.js.map +1 -1
- package/dist/tools/memory/search.js +1 -1
- package/dist/tools/memory/search.js.map +1 -1
- package/dist/tools/memory/update.js +1 -1
- package/dist/tools/memory/update.js.map +1 -1
- package/dist/tools/schedules/loop-tool.d.ts.map +1 -1
- package/dist/tools/schedules/loop-tool.js +4 -2
- package/dist/tools/schedules/loop-tool.js.map +1 -1
- package/dist/tools/schedules/schedule-tool.js +2 -2
- package/dist/tools/schedules/schedule-tool.js.map +1 -1
- package/dist/tools/task/create.js +1 -1
- package/dist/tools/task/create.js.map +1 -1
- package/dist/tools/untrusted-envelope.js +1 -1
- package/dist/tools/untrusted-envelope.js.map +1 -1
- package/dist/toolsets/manager.d.ts.map +1 -1
- package/dist/toolsets/manager.js +6 -1
- package/dist/toolsets/manager.js.map +1 -1
- package/dist/turn/evidence-query.d.ts.map +1 -1
- package/dist/turn/evidence-query.js +16 -1
- package/dist/turn/evidence-query.js.map +1 -1
- package/dist/turn/evidence-recall.js +1 -1
- package/dist/turn/evidence-recall.js.map +1 -1
- package/dist/types/agent/base.d.ts +7 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/common/index.d.ts +19 -0
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/index.js +9 -0
- package/dist/types/common/index.js.map +1 -1
- package/dist/types/hitl/index.d.ts +66 -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 +8 -0
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +12 -2
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/message/notice-frame.d.ts +41 -0
- package/dist/types/message/notice-frame.d.ts.map +1 -0
- package/dist/types/message/notice-frame.js +65 -0
- package/dist/types/message/notice-frame.js.map +1 -0
- package/dist/types/provider/chat.d.ts +8 -0
- package/dist/types/provider/chat.d.ts.map +1 -1
- package/dist/types/provider/config.d.ts +6 -0
- package/dist/types/provider/config.d.ts.map +1 -1
- package/dist/types/session/checkpoint.d.ts +52 -0
- package/dist/types/session/checkpoint.d.ts.map +1 -1
- package/dist/types/session/checkpoint.js +5 -0
- package/dist/types/session/checkpoint.js.map +1 -1
- package/dist/types/session/events.d.ts +9 -0
- 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 +181 -6
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +1 -1
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/tool/presentation.d.ts +17 -1
- package/dist/types/tool/presentation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/agents/QueryAgent.ts +1 -0
- package/src/compaction/context-breakdown.ts +228 -0
- package/src/compaction/extractor.ts +8 -1
- package/src/compaction/managers/structured.ts +3 -0
- package/src/compaction/manual.ts +5 -0
- package/src/compaction/serializer.ts +28 -3
- package/src/compaction/token-estimate.ts +5 -0
- package/src/compaction/verifier.ts +32 -6
- package/src/constants/compaction/index.ts +1 -0
- package/src/prompt/coding-agent-doctrine.ts +18 -20
- package/src/public-runtime.ts +24 -2
- package/src/runtime/cache-clock.ts +67 -0
- package/src/runtime/query/checkpoint.ts +49 -8
- package/src/runtime/query/compact-session.ts +101 -3
- package/src/runtime/query/executor/tool-call-admission.ts +3 -0
- package/src/runtime/query/executor.ts +165 -15
- package/src/runtime/query/index.ts +45 -1
- package/src/runtime/query/iteration/index.ts +27 -6
- package/src/runtime/query/iteration/phases/context.ts +37 -11
- package/src/runtime/query/iteration/phases/per-call-review.ts +598 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +168 -83
- package/src/runtime/query/iteration/step-context.ts +29 -0
- package/src/runtime/query/iteration/step-shaping.ts +6 -2
- package/src/runtime/query/prepare-turn.ts +18 -1
- package/src/runtime/query/project-instructions.ts +119 -38
- package/src/runtime/query/prompt.ts +11 -54
- package/src/runtime/query/resume-pending.ts +131 -0
- package/src/runtime/query/review-policy.ts +28 -0
- package/src/runtime/query/steering.ts +100 -96
- package/src/store/budget/disk.ts +4 -1
- package/src/tools/admit-facts.ts +6 -0
- package/src/tools/builtins/bash.ts +38 -28
- package/src/tools/builtins/browser.ts +38 -12
- package/src/tools/builtins/edit-apply.ts +12 -2
- package/src/tools/builtins/edit.ts +38 -12
- package/src/tools/builtins/exit-semantics.ts +198 -0
- package/src/tools/builtins/job.ts +1 -1
- package/src/tools/builtins/skill.ts +1 -1
- package/src/tools/builtins/structuredOutput.ts +1 -1
- package/src/tools/builtins/verify-outputs.ts +1 -1
- package/src/tools/builtins/write-file.ts +11 -6
- package/src/tools/coordinator/ask-user-question.ts +12 -1
- package/src/tools/coordinator/index.ts +10 -3
- package/src/tools/memory/delete.ts +1 -1
- package/src/tools/memory/read.ts +1 -1
- package/src/tools/memory/save.ts +4 -3
- package/src/tools/memory/search.ts +1 -1
- package/src/tools/memory/update.ts +1 -1
- package/src/tools/schedules/loop-tool.ts +4 -2
- package/src/tools/schedules/schedule-tool.ts +2 -2
- package/src/tools/task/create.ts +1 -1
- package/src/tools/untrusted-envelope.ts +1 -1
- package/src/toolsets/manager.ts +6 -1
- package/src/turn/evidence-query.ts +19 -1
- package/src/turn/evidence-recall.ts +1 -1
- package/src/types/agent/base.ts +8 -0
- package/src/types/common/index.ts +27 -0
- package/src/types/hitl/index.ts +67 -0
- package/src/types/message/index.ts +20 -2
- package/src/types/message/notice-frame.ts +88 -0
- package/src/types/provider/chat.ts +8 -0
- package/src/types/provider/config.ts +6 -0
- package/src/types/session/checkpoint.ts +5 -0
- package/src/types/session/events.ts +6 -0
- package/src/types/session/records.ts +1 -1
- package/src/types/tool/presentation.ts +16 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { createRuntimeContextMessage } from '../../types/message/index.js';
|
|
2
|
+
import { NOTICE_TAG, frameNotice, readOperatorNotice } from '../../types/message/notice-frame.js';
|
|
1
3
|
import { MONITOR_EVENT_CONTENT_MAX_CHARS, MONITOR_NOTIFICATION_MAX_CHARS, } from '../jobs/monitor-stream.js';
|
|
2
4
|
import { describeMonitorEnd } from '../jobs/registry.js';
|
|
3
5
|
import { formatSystemEvent, oneMetadataLine } from '../system-events.js';
|
|
@@ -29,58 +31,9 @@ export class SteeringBinding {
|
|
|
29
31
|
return this.queued.length > 0;
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
|
-
/**
|
|
33
|
-
* The frame the guidance arrives in.
|
|
34
|
-
*
|
|
35
|
-
* Labelled because the model is being handed text from a party other than the
|
|
36
|
-
* tool whose result it is reading, in that tool's slot. Unlabelled, it reads
|
|
37
|
-
* as something the tool said — so a steer saying "stop and ask me first" would
|
|
38
|
-
* look like output from `bash`.
|
|
39
|
-
*
|
|
40
|
-
* This is NOT the untrusted-content envelope. The host operating the turn is
|
|
41
|
-
* the one party whose words the agent SHOULD act on; framing them as material
|
|
42
|
-
* to be worked with rather than followed would inverting the very thing the
|
|
43
|
-
* host is trying to do. Different party, different frame, on purpose.
|
|
44
|
-
*/
|
|
45
|
-
/** The same slot as steering, for notices the kernel itself has to deliver. */
|
|
46
|
-
export function attachNotice(messages, channel, format,
|
|
47
|
-
/**
|
|
48
|
-
* Told only when the text actually landed on a result the model will read.
|
|
49
|
-
*
|
|
50
|
-
* Not on the two paths above it: a batch with no tool result leaves the
|
|
51
|
-
* notice queued, and a result whose content is not a string puts it back.
|
|
52
|
-
* Draining is therefore not delivery, which matters to the caller that
|
|
53
|
-
* keeps its own record of what the text accounts for — `AwaitedJobs`
|
|
54
|
-
* drops an exit's entry here, and a premature drop would strand the exit.
|
|
55
|
-
*/
|
|
56
|
-
onDelivered) {
|
|
57
|
-
if (!channel?.pending)
|
|
58
|
-
return messages;
|
|
59
|
-
let lastToolIndex = -1;
|
|
60
|
-
for (let index = messages.length - 1; index >= 0; index--) {
|
|
61
|
-
if (messages[index]?.role === 'tool') {
|
|
62
|
-
lastToolIndex = index;
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (lastToolIndex === -1)
|
|
67
|
-
return messages;
|
|
68
|
-
const text = channel.drain();
|
|
69
|
-
if (text === undefined)
|
|
70
|
-
return messages;
|
|
71
|
-
const target = messages[lastToolIndex];
|
|
72
|
-
if (typeof target.content !== 'string') {
|
|
73
|
-
channel.steer(text);
|
|
74
|
-
return messages;
|
|
75
|
-
}
|
|
76
|
-
const next = [...messages];
|
|
77
|
-
next[lastToolIndex] = { ...target, content: target.content + format(text) };
|
|
78
|
-
onDelivered?.();
|
|
79
|
-
return next;
|
|
80
|
-
}
|
|
81
34
|
/** What the model reads when a background job it started has ended. */
|
|
82
35
|
export function formatJobNote(text) {
|
|
83
|
-
return
|
|
36
|
+
return frameNotice('job', '[Background job update]', text);
|
|
84
37
|
}
|
|
85
38
|
/**
|
|
86
39
|
* What the model reads when a monitor it started has something to say.
|
|
@@ -95,7 +48,7 @@ export function formatJobNote(text) {
|
|
|
95
48
|
* piled up while the model was busy.
|
|
96
49
|
*/
|
|
97
50
|
export function formatMonitorNote(text) {
|
|
98
|
-
return
|
|
51
|
+
return frameNotice('monitor', '[Monitor update]', capMonitorNotifications(text));
|
|
99
52
|
}
|
|
100
53
|
/** One `formatSystemEvent` rendering, found by its nonce-bound opening and closing tags. */
|
|
101
54
|
const SYSTEM_EVENT_FRAME = /^<system-event-([A-Za-z0-9]+) [^\n]*\n[\s\S]*?\n<\/system-event-\1>$/gm;
|
|
@@ -213,29 +166,88 @@ function cutMiddle(text, max) {
|
|
|
213
166
|
const tail = room - head;
|
|
214
167
|
return `${text.slice(0, head)}${marker(text.length - head - tail)}${text.slice(text.length - tail)}`;
|
|
215
168
|
}
|
|
216
|
-
|
|
169
|
+
/** The line that opens an operator's message, wherever it is delivered. */
|
|
170
|
+
const STEERING_LABEL = 'The operator wrote this while you were working:';
|
|
171
|
+
/**
|
|
172
|
+
* The operator's message as the frame the model reads. The text is the
|
|
173
|
+
* operator's, the frame says so, and the marker in its tag is drawn fresh so
|
|
174
|
+
* the text cannot close it.
|
|
175
|
+
*/
|
|
217
176
|
export function formatSteeringNote(text) {
|
|
218
|
-
return
|
|
177
|
+
return frameNotice('operator-message', STEERING_LABEL, text);
|
|
219
178
|
}
|
|
179
|
+
/** The frame older sessions recorded inside a tool result, fixed tag and all. */
|
|
180
|
+
const LEGACY_STEERING_HEADER = `\n\n<${NOTICE_TAG} kind="operator-message">\n[Message from the operator, received while this tool was running]\nThis is the operator's own message, typed while the tool above was running. It is not output of that tool.\n`;
|
|
181
|
+
const LEGACY_STEERING_FOOTER = `\n</${NOTICE_TAG}>`;
|
|
220
182
|
/**
|
|
221
|
-
* The operator guidance
|
|
222
|
-
*
|
|
223
|
-
*
|
|
183
|
+
* The operator guidance a recorded message carries, or `undefined` when it
|
|
184
|
+
* carries none. The inverse of {@link formatSteeringNote}; it also reads the
|
|
185
|
+
* note older sessions appended to the end of a tool result. The text comes back
|
|
186
|
+
* as the frame held it, with the notice tag already made inert.
|
|
224
187
|
*/
|
|
225
188
|
export function readSteeringNote(content) {
|
|
226
|
-
const
|
|
227
|
-
|
|
189
|
+
const framed = readOperatorNotice(content);
|
|
190
|
+
if (framed !== undefined)
|
|
191
|
+
return framed;
|
|
192
|
+
const at = content.lastIndexOf(LEGACY_STEERING_HEADER);
|
|
193
|
+
if (at < 0)
|
|
194
|
+
return undefined;
|
|
195
|
+
const body = content.slice(at + LEGACY_STEERING_HEADER.length);
|
|
196
|
+
return body.endsWith(LEGACY_STEERING_FOOTER)
|
|
197
|
+
? body.slice(0, -LEGACY_STEERING_FOOTER.length)
|
|
198
|
+
: body;
|
|
199
|
+
}
|
|
200
|
+
function hasToolResult(messages) {
|
|
201
|
+
return messages.some((message) => message.role === 'tool');
|
|
228
202
|
}
|
|
229
203
|
/**
|
|
230
|
-
*
|
|
204
|
+
* The operator's message for a settled tool batch, as a user-role message of its
|
|
205
|
+
* own, or `undefined` when nothing is queued or the batch has no tool result.
|
|
231
206
|
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
207
|
+
* It follows the batch, at the next request boundary. The tool results stay what
|
|
208
|
+
* the tools returned, and the operator's words arrive as the operator's, which a
|
|
209
|
+
* model reads as direction. A turn that called no tool leaves the guidance
|
|
210
|
+
* queued; the loop delivers it at the next-turn boundary.
|
|
211
|
+
*/
|
|
212
|
+
export function takeSteeringMessage(messages, channel,
|
|
213
|
+
/** Receives accepted operator text, never inferred from a tool's output. */
|
|
214
|
+
onDelivered) {
|
|
215
|
+
if (!channel?.pending || !hasToolResult(messages))
|
|
216
|
+
return undefined;
|
|
217
|
+
const guidance = channel.drain();
|
|
218
|
+
if (guidance === undefined)
|
|
219
|
+
return undefined;
|
|
220
|
+
onDelivered?.(guidance);
|
|
221
|
+
return createRuntimeContextMessage(formatSteeringNote(guidance), 'steering');
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* A kernel notice (a job's exit, a monitor's events) for a settled tool batch,
|
|
225
|
+
* as a user-role message of its own, under the same rules as
|
|
226
|
+
* {@link takeSteeringMessage}.
|
|
227
|
+
*/
|
|
228
|
+
export function takeNoticeMessage(messages, channel, format,
|
|
229
|
+
/**
|
|
230
|
+
* Told only when the text actually became a message the model will read.
|
|
231
|
+
* Draining is not delivery, which matters to the caller that keeps its own
|
|
232
|
+
* record of what the text accounts for: `AwaitedJobs` drops an exit's entry
|
|
233
|
+
* here, and a premature drop would strand the exit.
|
|
234
|
+
*/
|
|
235
|
+
onDelivered) {
|
|
236
|
+
if (!channel?.pending || !hasToolResult(messages))
|
|
237
|
+
return undefined;
|
|
238
|
+
const text = channel.drain();
|
|
239
|
+
if (text === undefined)
|
|
240
|
+
return undefined;
|
|
241
|
+
onDelivered?.();
|
|
242
|
+
return createRuntimeContextMessage(format(text), 'job-exit');
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Append the guidance to the last tool result in a settled batch.
|
|
234
246
|
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
247
|
+
* @deprecated The kernel no longer delivers guidance this way: a tool result
|
|
248
|
+
* carries only what the tool returned, and {@link takeSteeringMessage} sends the
|
|
249
|
+
* operator's words as a message of their own. Kept so a host that calls it keeps
|
|
250
|
+
* working.
|
|
239
251
|
*/
|
|
240
252
|
export function attachSteering(messages, channel,
|
|
241
253
|
/** Receives accepted operator text, never inferred from a tool's output. */
|
|
@@ -255,12 +267,6 @@ onDelivered) {
|
|
|
255
267
|
if (guidance === undefined)
|
|
256
268
|
return messages;
|
|
257
269
|
const target = messages[lastToolIndex];
|
|
258
|
-
// Only text is extended. A tool that answered with structured content —
|
|
259
|
-
// an image block, say — has a shape the model reads positionally, and
|
|
260
|
-
// appending a string to it would either be dropped or corrupt the block.
|
|
261
|
-
// Such a result keeps its content and the note follows it as its own text
|
|
262
|
-
// part where the shape allows, and otherwise the guidance stays queued
|
|
263
|
-
// for the next turn rather than being forced into a slot it does not fit.
|
|
264
270
|
if (typeof target.content !== 'string') {
|
|
265
271
|
channel.steer(guidance);
|
|
266
272
|
return messages;
|
|
@@ -268,7 +274,7 @@ onDelivered) {
|
|
|
268
274
|
const next = [...messages];
|
|
269
275
|
next[lastToolIndex] = {
|
|
270
276
|
...target,
|
|
271
|
-
content: target.content
|
|
277
|
+
content: `${target.content}\n\n${formatSteeringNote(guidance)}`,
|
|
272
278
|
};
|
|
273
279
|
onDelivered?.(guidance);
|
|
274
280
|
return next;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steering.js","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"steering.js","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"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"}
|
|
@@ -174,6 +174,9 @@ function usageAtLeast(current, previous) {
|
|
|
174
174
|
return true;
|
|
175
175
|
if (current === undefined)
|
|
176
176
|
return false;
|
|
177
|
-
return Object.entries(previous).every(([field, amount]) => typeof amount !== 'number' ||
|
|
177
|
+
return Object.entries(previous).every(([field, amount]) => typeof amount !== 'number' ||
|
|
178
|
+
field === 'cacheTtlMs' ||
|
|
179
|
+
// `cacheTtlMs` is a per-call lifetime, not a running count: it has no order.
|
|
180
|
+
(current[field] ?? 0) >= amount);
|
|
178
181
|
}
|
|
179
182
|
//# sourceMappingURL=disk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk.js","sourceRoot":"","sources":["../../../src/store/budget/disk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EACN,kBAAkB,EAGlB,kCAAkC,GAClC,MAAM,aAAa,CAAA;AAqBpB;;;;;;GAMG;AACH,MAAM,OAAO,2BAA2B;IAC9B,MAAM,CAAc;IACpB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAA;IAEnD,YAAY,OAA2C;QACtD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,KAA8B;QACnC,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACxF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAA8B;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAA8B,EAAE,QAAoC;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;QAC5D,MAAM,OAAO,GAAG,QAAQ;aACtB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACtB,IAAI,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YACrD,IAAI,QAAQ;gBAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC/C,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YAC5D,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,CAAC;gBACJ,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE;oBAC1D,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,KAAK;iBACX,CAAC,CAAA;gBACF,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC9C,MAAM,KAAK,CAAA;YACZ,CAAC;QACF,CAAC,CAAC,CAAA;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC;YACJ,MAAM,OAAO,CAAA;QACd,CAAC;gBAAS,CAAC;YACV,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;IACF,CAAC;IAED,KAAK,CAAC,KAAK,CACV,IAAY,EACZ,KAA8B;QAE9B,IAAI,IAAY,CAAA;QAChB,IAAI,CAAC;YACJ,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAA;YACnE,MAAM,KAAK,CAAA;QACZ,CAAC;QACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IACtD,CAAC;CACD;AAiBD,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,OAAsC;IAEtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,MAAM,WAAW,GAAG;QACnB,IAAI,EAAE,CAAC,QAAoC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;KAC3E,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,MAA0B,CAAA;IAC9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IACtE,CAAC;SAAM,CAAC;QACP,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACpD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACpD,CAAC;QACD,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5F,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IACpB,OAAO,OAAO,CAAA;AACf,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,mBAAmB,CAAC,KAA8B;IACjE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAA;AACnG,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,qBAAqB,CACpC,QAAiB,EACjB,KAA8B;IAE9B,MAAM,OAAO,GAAG,kCAAkC,CAAC,QAAQ,CAAC,CAAA;IAC5D,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC7B,MAAkC,EAClC,KAAiC;IAEjC,IAAI,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IACjF,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAA;IACtE,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAChF,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzC,IACC,CAAC,OAAO;YACR,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/E,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YACtC,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;gBAC3B,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM;oBAC7C,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EACrC,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QAC7E,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;YAC7D,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACzF,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzC,IACC,CAAC,OAAO;YACR,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YACxC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAClC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC3C,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;QAC9E,CAAC;IACF,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC9E,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACpE,IACC,CAAC,OAAO;YACR,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YACxC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAClC,CAAC,QAAQ,CAAC,UAAU,KAAK,IAAI;gBAC5B,OAAO,CAAC,UAAU,KAAK,IAAI;gBAC3B,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAC1D,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;YAC3C,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC3C,CAAC;YACF,MAAM,IAAI,KAAK,CACd,+EAA+E,CAC/E,CAAA;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,OAA+B,EAAE,QAAgC;IACtF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CACpC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CACnB,OAAO,MAAM,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"disk.js","sourceRoot":"","sources":["../../../src/store/budget/disk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admit-facts.d.ts","sourceRoot":"","sources":["../../src/tools/admit-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,SAAS,EAAqB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"admit-facts.d.ts","sourceRoot":"","sources":["../../src/tools/admit-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,SAAS,EAAqB,MAAM,+BAA+B,CAAA;AA2F/F;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CA8FpE"}
|
|
@@ -8,6 +8,11 @@ const FAILURE_REASONS = [
|
|
|
8
8
|
'unknown_tool',
|
|
9
9
|
'timed_out',
|
|
10
10
|
'invalid_input',
|
|
11
|
+
'not_read',
|
|
12
|
+
'changed_on_disk',
|
|
13
|
+
'text_not_found',
|
|
14
|
+
'not_unique',
|
|
15
|
+
'invalid_arguments',
|
|
11
16
|
];
|
|
12
17
|
const WRITE_OPERATIONS = ['created', 'updated', 'unchanged', 'wrote'];
|
|
13
18
|
/** Bounds on what a saved record is allowed to hold. */
|
|
@@ -94,6 +99,7 @@ export function admitToolFacts(value) {
|
|
|
94
99
|
exitCode: typeof value.exitCode === 'number' && Number.isSafeInteger(value.exitCode)
|
|
95
100
|
? value.exitCode
|
|
96
101
|
: undefined,
|
|
102
|
+
exitNote: text(value.exitNote),
|
|
97
103
|
timedOut: flag(value.timedOut),
|
|
98
104
|
signal: text(value.signal),
|
|
99
105
|
binary: isRecord(value.binary) && count(value.binary.bytes) !== undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admit-facts.js","sourceRoot":"","sources":["../../src/tools/admit-facts.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAiC;IACrD,WAAW;IACX,mBAAmB;IACnB,YAAY;IACZ,gBAAgB;IAChB,SAAS;IACT,qBAAqB;IACrB,cAAc;IACd,WAAW;IACX,eAAe;
|
|
1
|
+
{"version":3,"file":"admit-facts.js","sourceRoot":"","sources":["../../src/tools/admit-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,14 @@ declare const BashToolBase: import("../../public-types.js").ToolDefinition<{
|
|
|
75
75
|
run_in_background?: boolean | undefined;
|
|
76
76
|
dangerously_disable_sandbox?: boolean | undefined;
|
|
77
77
|
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Say that credential-shaped variables were left out of this command's
|
|
80
|
+
* environment. The count is enough: the model needs to know a missing
|
|
81
|
+
* credential is deliberate and who to ask, and the names are the user's data.
|
|
82
|
+
* A command that failed because it wanted one otherwise reports an
|
|
83
|
+
* authentication error pointing nowhere.
|
|
84
|
+
*/
|
|
85
|
+
export declare function describeWithheldEnv(dropped: readonly string[]): string;
|
|
78
86
|
/**
|
|
79
87
|
* The same tool, whose description gains the Windows guidance when the host
|
|
80
88
|
* shell is Git Bash. Resolved on first read, not at import: finding Git Bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/bash.ts"],"names":[],"mappings":"AASA,OAAO,EACN,KAAK,YAAY,EAQjB,cAAc,EAEd,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/bash.ts"],"names":[],"mappings":"AASA,OAAO,EACN,KAAK,YAAY,EAQjB,cAAc,EAEd,MAAM,qBAAqB,CAAA;AAyC5B;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,mCAAmC,CAAA;AAE5E,wBAAgB,uBAAuB,IAAI,OAAO,CAGjD;AAcD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGjF;AA8GD,sFAAsF;AACtF,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;CACZ,KAAK,IAAI,CAAA;AAEV;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACR,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IAChC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QACrB,KAAK,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;QACxC,aAAa,EAAE,SAAS;YAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KACvE,KAAK,MAAM,GAAG,SAAS,CAAA;CACxB,GACC,OAAO,CAAC;IACV,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,CAAC,CA+LD;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,6GAA6G;AAC7G,eAAO,MAAM,qBAAqB,4NACwL,CAAA;AAE1N;;;GAGG;AACH,eAAO,MAAM,2BAA2B,sSAC4P,CAAA;AAKpS,QAAA,MAAM,YAAY;;;;;EAyYhB,CAAA;AAiDF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAItE;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,YAW7B,CAAA"}
|
|
@@ -11,6 +11,7 @@ import { defineTool } from '../defineTool.js';
|
|
|
11
11
|
import { scrubInheritedEnv } from '../env-scrub.js';
|
|
12
12
|
import { createHostOutputDecoder } from '../host-output.js';
|
|
13
13
|
import { looksBinary, windowText } from '../text-window.js';
|
|
14
|
+
import { judgeExit } from './exit-semantics.js';
|
|
14
15
|
import { jsonStringEscapes } from './json-string-hint.js';
|
|
15
16
|
// Namzu owns its own bash timeout knob — `NAMZU_BASH_TIMEOUT_MS` — and
|
|
16
17
|
// reads no consumer's env name. A consumer that wants one knob aliases
|
|
@@ -68,7 +69,7 @@ function startsWithSleep(command) {
|
|
|
68
69
|
*/
|
|
69
70
|
export function movedToBackgroundMessage(jobId, timeoutMs) {
|
|
70
71
|
const seconds = Math.max(1, Math.round(timeoutMs / 1000));
|
|
71
|
-
return `Command did not complete within its ${seconds}s timeout and was moved to the background as job ${jobId}; it was not stopped. You will be told when it ends.
|
|
72
|
+
return `Command did not complete within its ${seconds}s timeout and was moved to the background as job ${jobId}; it was not stopped. You will be told when it ends. Its output so far is above.`;
|
|
72
73
|
}
|
|
73
74
|
const inputSchema = z.object({
|
|
74
75
|
command: z
|
|
@@ -78,7 +79,7 @@ const inputSchema = z.object({
|
|
|
78
79
|
// Rewritten here, before the permission rules read the line and before
|
|
79
80
|
// it runs, so the two see the same text.
|
|
80
81
|
.transform((command) => isWindowsBash(hostCommandShell()) ? rewriteWindowsNullRedirect(command) : command)
|
|
81
|
-
.describe('The bash command to execute. Required, non-empty. Single command per call (use `&&` / `;` chaining for compound commands).
|
|
82
|
+
.describe('The bash command to execute. Required, non-empty. Single command per call (use `&&` / `;` chaining for compound commands). Large file content belongs in `write` (see its description), not in a heredoc.'),
|
|
82
83
|
timeout: z
|
|
83
84
|
.preprocess((v) => (typeof v === 'string' ? Number(v) : v), z
|
|
84
85
|
.number()
|
|
@@ -89,7 +90,7 @@ const inputSchema = z.object({
|
|
|
89
90
|
run_in_background: z
|
|
90
91
|
.boolean()
|
|
91
92
|
.optional()
|
|
92
|
-
.describe('Start the command as a background job and return its id immediately. For a finite build, await completion with `wait_for_job`. For a persistent server, use `wait_for_job` with output_contains and optional output_stream to observe its literal readiness marker without waiting for exit; verify health separately. Use `job` action "read" for incremental output or after a wait times out.
|
|
93
|
+
.describe('Start the command as a background job and return its id immediately. For a finite build, await completion with `wait_for_job`. For a persistent server, use `wait_for_job` with output_contains and optional output_stream to observe its literal readiness marker without waiting for exit; verify health separately. Use `job` action "read" for incremental output or after a wait times out. Background a command with this parameter, since `cmd &` is not a registered job: strict execution ownership can retire the allocation when the launcher exits with live descendants. An interactive application may belong to a dedicated computer only when that computer explicitly supports application lifetime; its launch result is not a registered job or proof the application has finished.'),
|
|
93
94
|
dangerously_disable_sandbox: z
|
|
94
95
|
.boolean()
|
|
95
96
|
.optional()
|
|
@@ -372,7 +373,7 @@ export const SANDBOX_CANNOT_DETACH = 'run_in_background is unavailable: this san
|
|
|
372
373
|
* approval; exported so the test states the same words.
|
|
373
374
|
*/
|
|
374
375
|
export const SANDBOX_ESCAPE_NOT_APPROVED = 'dangerously_disable_sandbox was not approved for this call, so the command did not run. Leaving the sandbox needs the user to confirm it each time, and this turn either cannot ask or does not allow it. Run the command inside the sandbox, or tell the user what it needs and let them run it.';
|
|
375
|
-
const BASH_DESCRIPTION = 'Executes a command line using the execution shell disclosed in the system context and returns stdout/stderr output. Command timeout is configurable. The `command` parameter is required
|
|
376
|
+
const BASH_DESCRIPTION = 'Executes a command line using the execution shell disclosed in the system context and returns stdout/stderr output. Command timeout is configurable. The `command` parameter is required, so every call carries one. Long file content goes through `write`, not a heredoc, so it cannot hit the output token limit mid-stream.';
|
|
376
377
|
const BashToolBase = defineTool({
|
|
377
378
|
name: 'bash',
|
|
378
379
|
description: BASH_DESCRIPTION,
|
|
@@ -502,7 +503,7 @@ const BashToolBase = defineTool({
|
|
|
502
503
|
}
|
|
503
504
|
return {
|
|
504
505
|
success: true,
|
|
505
|
-
output: `Started background job ${job.id}
|
|
506
|
+
output: `Started background job ${job.id}; state: running.`,
|
|
506
507
|
data: { jobId: job.id, background: true },
|
|
507
508
|
facts: { kind: 'command', command: input.command, background: true },
|
|
508
509
|
};
|
|
@@ -571,11 +572,14 @@ const BashToolBase = defineTool({
|
|
|
571
572
|
]
|
|
572
573
|
.filter(Boolean)
|
|
573
574
|
.join('\n\n');
|
|
575
|
+
const judged = result.timedOut ? undefined : judgeExit(input.command, result.exitCode);
|
|
576
|
+
const answered = judged !== undefined && !judged.isError;
|
|
574
577
|
return {
|
|
575
|
-
success:
|
|
578
|
+
success: answered,
|
|
576
579
|
output: output || '(no output)',
|
|
577
580
|
data: {
|
|
578
581
|
exitCode: result.exitCode,
|
|
582
|
+
...(judged?.note ? { exitNote: judged.note } : {}),
|
|
579
583
|
sandboxed: true,
|
|
580
584
|
timedOut: result.timedOut,
|
|
581
585
|
stdoutTruncated: result.stdoutTruncated ?? false,
|
|
@@ -583,12 +587,13 @@ const BashToolBase = defineTool({
|
|
|
583
587
|
},
|
|
584
588
|
error: result.timedOut
|
|
585
589
|
? `Command timed out after ${input.timeout}ms. Any captured output before the deadline is above.`
|
|
586
|
-
:
|
|
590
|
+
: !answered
|
|
587
591
|
? `Command exited with code ${result.exitCode}`
|
|
588
592
|
: undefined,
|
|
589
593
|
facts: commandFacts({
|
|
590
594
|
command: input.command,
|
|
591
595
|
exitCode: result.exitCode,
|
|
596
|
+
...(judged?.note ? { exitNote: judged.note } : {}),
|
|
592
597
|
timedOut: result.timedOut,
|
|
593
598
|
stdout: result.stdout,
|
|
594
599
|
stderr: result.stderr,
|
|
@@ -684,34 +689,42 @@ const BashToolBase = defineTool({
|
|
|
684
689
|
// and appending this to every result would make the common case noisy
|
|
685
690
|
// to buy nothing. A failing one is exactly where "authentication
|
|
686
691
|
// failed" has to be distinguishable from "the variable was withheld".
|
|
692
|
+
// A status the command uses to answer (no match, files differ) is a
|
|
693
|
+
// result, not a failure; the model sees it as an ordinary call.
|
|
694
|
+
const judged = !timedOut && exitCode !== undefined ? judgeExit(input.command, exitCode) : undefined;
|
|
695
|
+
const answered = judged !== undefined && !judged.isError;
|
|
687
696
|
const output = [
|
|
688
697
|
formatShellOutput(failure.stdout, failure.stderr),
|
|
689
698
|
clipped.length > 0
|
|
690
699
|
? `[${clipped.join(' and ')} ${clipped.length === 1 ? 'was' : 'were'} truncated by the host output cap. The omitted output is unavailable in this result.]`
|
|
691
700
|
: '',
|
|
692
|
-
describeWithheldEnv(inherited.dropped),
|
|
701
|
+
answered ? '' : describeWithheldEnv(inherited.dropped),
|
|
693
702
|
]
|
|
694
703
|
.filter(Boolean)
|
|
695
704
|
.join('\n\n');
|
|
696
705
|
return {
|
|
697
|
-
success:
|
|
706
|
+
success: answered,
|
|
698
707
|
output: output || '(no output)',
|
|
699
708
|
data: {
|
|
700
709
|
...(exitCode !== undefined ? { exitCode } : {}),
|
|
710
|
+
...(judged?.note ? { exitNote: judged.note } : {}),
|
|
701
711
|
...(leaveSandbox ? { sandboxed: false, sandboxEscape: true } : {}),
|
|
702
712
|
timedOut,
|
|
703
713
|
stdoutTruncated: failure.stdoutTruncated ?? false,
|
|
704
714
|
stderrTruncated: failure.stderrTruncated ?? false,
|
|
705
715
|
...(failure.signal ? { signal: failure.signal } : {}),
|
|
706
716
|
},
|
|
707
|
-
error:
|
|
708
|
-
?
|
|
709
|
-
:
|
|
710
|
-
? `Command
|
|
711
|
-
:
|
|
717
|
+
error: answered
|
|
718
|
+
? undefined
|
|
719
|
+
: timedOut
|
|
720
|
+
? `Command timed out after ${input.timeout}ms. Any output it produced before the deadline is above.`
|
|
721
|
+
: exitCode !== undefined
|
|
722
|
+
? `Command exited with code ${exitCode}`
|
|
723
|
+
: `Command failed: ${failure.message}`,
|
|
712
724
|
facts: commandFacts({
|
|
713
725
|
command: input.command,
|
|
714
726
|
...(exitCode !== undefined ? { exitCode } : {}),
|
|
727
|
+
...(judged?.note ? { exitNote: judged.note } : {}),
|
|
715
728
|
timedOut,
|
|
716
729
|
...(failure.signal ? { signal: failure.signal } : {}),
|
|
717
730
|
stdout: failure.stdout ?? '',
|
|
@@ -739,6 +752,7 @@ function commandFacts(input) {
|
|
|
739
752
|
kind: 'command',
|
|
740
753
|
command: input.command,
|
|
741
754
|
...(input.exitCode !== undefined ? { exitCode: input.exitCode } : {}),
|
|
755
|
+
...(input.exitNote ? { exitNote: input.exitNote } : {}),
|
|
742
756
|
...(input.timedOut ? { timedOut: true } : {}),
|
|
743
757
|
...(input.signal ? { signal: input.signal } : {}),
|
|
744
758
|
...(input.stdout && !outBinary ? { stdout: windowText(input.stdout, outBytes) } : {}),
|
|
@@ -757,23 +771,18 @@ function formatShellOutput(stdout, stderr) {
|
|
|
757
771
|
.filter(Boolean)
|
|
758
772
|
.join('\n\n');
|
|
759
773
|
}
|
|
760
|
-
/** How many withheld names to print before summarising the rest. */
|
|
761
|
-
const WITHHELD_ENV_PREVIEW = 10;
|
|
762
774
|
/**
|
|
763
|
-
*
|
|
764
|
-
*
|
|
765
|
-
*
|
|
766
|
-
*
|
|
767
|
-
*
|
|
768
|
-
* available to a reader who knows it was withheld rather than unset.
|
|
775
|
+
* Say that credential-shaped variables were left out of this command's
|
|
776
|
+
* environment. The count is enough: the model needs to know a missing
|
|
777
|
+
* credential is deliberate and who to ask, and the names are the user's data.
|
|
778
|
+
* A command that failed because it wanted one otherwise reports an
|
|
779
|
+
* authentication error pointing nowhere.
|
|
769
780
|
*/
|
|
770
|
-
function describeWithheldEnv(dropped) {
|
|
781
|
+
export function describeWithheldEnv(dropped) {
|
|
771
782
|
if (dropped.length === 0)
|
|
772
783
|
return '';
|
|
773
|
-
const
|
|
774
|
-
|
|
775
|
-
const names = rest > 0 ? `${shown}, and ${rest} more` : shown;
|
|
776
|
-
return `NOTE: ${dropped.length} credential-shaped environment variable(s) were withheld from this command and are unset rather than empty: ${names}. A host that means this command to have one passes it explicitly.`;
|
|
784
|
+
const one = dropped.length === 1;
|
|
785
|
+
return `NOTE: ${dropped.length} credential-shaped environment ${one ? 'variable was' : 'variables were'} removed from this command's environment, so ${one ? 'it reads' : 'they read'} as unset. Ask the user if the command needs ${one ? 'it' : 'one'}.`;
|
|
777
786
|
}
|
|
778
787
|
/**
|
|
779
788
|
* The same tool, whose description gains the Windows guidance when the host
|