@namzu/sdk 56.0.1 → 56.2.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/compaction/context-breakdown.d.ts +1 -1
  3. package/dist/compaction/context-breakdown.d.ts.map +1 -1
  4. package/dist/compaction/context-breakdown.js +9 -2
  5. package/dist/compaction/context-breakdown.js.map +1 -1
  6. package/dist/compaction/verifier.d.ts.map +1 -1
  7. package/dist/compaction/verifier.js +3 -1
  8. package/dist/compaction/verifier.js.map +1 -1
  9. package/dist/public-runtime.d.ts +1 -1
  10. package/dist/public-runtime.d.ts.map +1 -1
  11. package/dist/public-runtime.js +1 -1
  12. package/dist/public-runtime.js.map +1 -1
  13. package/dist/runtime/query/executor.d.ts +17 -1
  14. package/dist/runtime/query/executor.d.ts.map +1 -1
  15. package/dist/runtime/query/executor.js +73 -5
  16. package/dist/runtime/query/executor.js.map +1 -1
  17. package/dist/runtime/query/file-evidence-context.d.ts +21 -4
  18. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -1
  19. package/dist/runtime/query/file-evidence-context.js +70 -8
  20. package/dist/runtime/query/file-evidence-context.js.map +1 -1
  21. package/dist/runtime/query/index.d.ts.map +1 -1
  22. package/dist/runtime/query/index.js +2 -11
  23. package/dist/runtime/query/index.js.map +1 -1
  24. package/dist/runtime/query/iteration/index.d.ts +1 -2
  25. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  26. package/dist/runtime/query/iteration/index.js +30 -19
  27. package/dist/runtime/query/iteration/index.js.map +1 -1
  28. package/dist/runtime/query/iteration/recorded-context.d.ts +18 -0
  29. package/dist/runtime/query/iteration/recorded-context.d.ts.map +1 -0
  30. package/dist/runtime/query/iteration/recorded-context.js +37 -0
  31. package/dist/runtime/query/iteration/recorded-context.js.map +1 -0
  32. package/dist/runtime/query/iteration/step-context.d.ts +15 -51
  33. package/dist/runtime/query/iteration/step-context.d.ts.map +1 -1
  34. package/dist/runtime/query/iteration/step-context.js +24 -134
  35. package/dist/runtime/query/iteration/step-context.js.map +1 -1
  36. package/dist/runtime/query/iteration/step-shaping.d.ts +20 -8
  37. package/dist/runtime/query/iteration/step-shaping.d.ts.map +1 -1
  38. package/dist/runtime/query/iteration/step-shaping.js +52 -26
  39. package/dist/runtime/query/iteration/step-shaping.js.map +1 -1
  40. package/dist/scheduler/completion-inbox.d.ts +27 -0
  41. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  42. package/dist/scheduler/completion-inbox.js +88 -21
  43. package/dist/scheduler/completion-inbox.js.map +1 -1
  44. package/dist/store/session-index/fts.d.ts.map +1 -1
  45. package/dist/store/session-index/fts.js +6 -0
  46. package/dist/store/session-index/fts.js.map +1 -1
  47. package/dist/test-support/file-evidence-held.d.ts +11 -0
  48. package/dist/test-support/file-evidence-held.d.ts.map +1 -0
  49. package/dist/test-support/file-evidence-held.js +28 -0
  50. package/dist/test-support/file-evidence-held.js.map +1 -0
  51. package/dist/test-support/request-only.d.ts +10 -0
  52. package/dist/test-support/request-only.d.ts.map +1 -0
  53. package/dist/test-support/request-only.js +15 -0
  54. package/dist/test-support/request-only.js.map +1 -0
  55. package/dist/tools/builtins/content-fingerprint.d.ts +12 -0
  56. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
  57. package/dist/tools/builtins/content-fingerprint.js +14 -0
  58. package/dist/tools/builtins/content-fingerprint.js.map +1 -1
  59. package/dist/tools/builtins/edit.d.ts.map +1 -1
  60. package/dist/tools/builtins/edit.js +19 -16
  61. package/dist/tools/builtins/edit.js.map +1 -1
  62. package/dist/tools/builtins/stale-before-review.d.ts +18 -0
  63. package/dist/tools/builtins/stale-before-review.d.ts.map +1 -0
  64. package/dist/tools/builtins/stale-before-review.js +42 -0
  65. package/dist/tools/builtins/stale-before-review.js.map +1 -0
  66. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  67. package/dist/tools/builtins/write-file.js +4 -0
  68. package/dist/tools/builtins/write-file.js.map +1 -1
  69. package/dist/tools/defineTool.d.ts +2 -0
  70. package/dist/tools/defineTool.d.ts.map +1 -1
  71. package/dist/tools/defineTool.js +1 -0
  72. package/dist/tools/defineTool.js.map +1 -1
  73. package/dist/tools/untrusted-envelope.d.ts +7 -0
  74. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  75. package/dist/tools/untrusted-envelope.js +3 -1
  76. package/dist/tools/untrusted-envelope.js.map +1 -1
  77. package/dist/turn/evidence-recall.d.ts +19 -8
  78. package/dist/turn/evidence-recall.d.ts.map +1 -1
  79. package/dist/turn/evidence-recall.js +134 -53
  80. package/dist/turn/evidence-recall.js.map +1 -1
  81. package/dist/turn/memory-recall.d.ts +18 -0
  82. package/dist/turn/memory-recall.d.ts.map +1 -1
  83. package/dist/turn/memory-recall.js +43 -4
  84. package/dist/turn/memory-recall.js.map +1 -1
  85. package/dist/types/message/index.d.ts +46 -1
  86. package/dist/types/message/index.d.ts.map +1 -1
  87. package/dist/types/message/index.js +78 -1
  88. package/dist/types/message/index.js.map +1 -1
  89. package/dist/types/session/prepare-step.d.ts +24 -0
  90. package/dist/types/session/prepare-step.d.ts.map +1 -1
  91. package/dist/types/tool/index.d.ts +16 -0
  92. package/dist/types/tool/index.d.ts.map +1 -1
  93. package/dist/types/tool/index.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/compaction/context-breakdown.ts +11 -3
  96. package/src/compaction/verifier.ts +3 -1
  97. package/src/public-runtime.ts +7 -0
  98. package/src/runtime/query/executor.ts +84 -5
  99. package/src/runtime/query/file-evidence-context.ts +79 -11
  100. package/src/runtime/query/index.ts +2 -10
  101. package/src/runtime/query/iteration/index.ts +32 -26
  102. package/src/runtime/query/iteration/recorded-context.ts +48 -0
  103. package/src/runtime/query/iteration/step-context.ts +27 -155
  104. package/src/runtime/query/iteration/step-shaping.ts +64 -40
  105. package/src/scheduler/completion-inbox.ts +87 -20
  106. package/src/store/session-index/fts.ts +5 -0
  107. package/src/test-support/file-evidence-held.ts +27 -0
  108. package/src/test-support/request-only.ts +19 -0
  109. package/src/tools/builtins/content-fingerprint.ts +20 -0
  110. package/src/tools/builtins/edit.ts +18 -15
  111. package/src/tools/builtins/stale-before-review.ts +45 -0
  112. package/src/tools/builtins/write-file.ts +5 -0
  113. package/src/tools/defineTool.ts +3 -0
  114. package/src/tools/untrusted-envelope.ts +10 -1
  115. package/src/turn/evidence-recall.ts +189 -58
  116. package/src/turn/memory-recall.ts +59 -5
  117. package/src/types/message/index.ts +108 -1
  118. package/src/types/session/prepare-step.ts +26 -0
  119. package/src/types/tool/index.ts +18 -0
@@ -10,58 +10,22 @@ import type { Message } from '../../../types/message/index.js';
10
10
  */
11
11
  export declare function stepContextMessage(content: string): import("../../../types/message/index.js").UserMessage;
12
12
  /**
13
- * Put `blocks` in front of the operator's new message when that message is
14
- * what the model is about to answer, so the request is the last thing it
15
- * reads and the longest data comes before it. Only the reminders and other
16
- * request-only context may follow that message: once the turn has an
17
- * assistant or tool message after it, the blocks stay at the end of the
18
- * history, where a caching driver ends its breakpoint before them, so the
19
- * tool loop of a long turn is not re-read at full price on every step.
13
+ * Put a request's own data into it: after everything the history holds, in
14
+ * the order offered, each distinct text once.
20
15
  *
21
- * Reminders and notices that follow the operator's message stay where they
22
- * are: they are short, and the edge after the request is where they are read.
23
- */
24
- export declare function placeBeforeLatestOperatorMessage(history: Message[], blocks: readonly Message[]): void;
25
- /** A block whose own text says that a later one replaces it, under the name of what it reports. */
26
- export interface ReplaceableBlock {
27
- readonly key: string;
28
- readonly message: Message;
29
- }
30
- /** How many superseded versions of a replaceable block still go with the latest. */
31
- export declare const EARLIER_VERSIONS_KEPT = 2;
32
- /**
33
- * Where a turn's request-only data sits, so it stays put from call to call.
34
- *
35
- * What a block says is the step's own business: a block it offers again with
36
- * the same text is the same block, and it keeps the place it first had; a
37
- * block it no longer offers is withdrawn, so corrected data never lingers.
38
- * A block seen for the first time goes before the operator's message when that
39
- * message is what the model is answering, and otherwise after the history of
40
- * that moment. So the requests of a turn share their opening up to the first
41
- * block that changed, and a caching driver keeps reading the same prefix
42
- * instead of re-reading the turn from the operator's message on.
43
- *
44
- * A block that says of itself that a later one replaces it (the file
45
- * evidence) is never taken back. When its text changes, the earlier text stays
46
- * where it went and the new text follows the history of that moment, which is
47
- * how the block itself tells the model to read it; when it stops holding, a
48
- * short block says so. Only the latest version and the last
49
- * `EARLIER_VERSIONS_KEPT` before it are carried, and an earlier version whose
50
- * place a compaction rewrote is dropped, so the stale text stays small. Until
51
- * a version is dropped no request of the turn rewrites the one before it.
16
+ * Request-only data is what the model needs for this request alone (a note
17
+ * that something is unavailable, the work still running). It is re-placed on
18
+ * every call and always last, so the history before it never changes shape
19
+ * from one call to the next and a caching driver, which ends its breakpoint
20
+ * before the first such block, covers the whole history on every call. What
21
+ * the model should keep reading in later requests is recorded as turn context
22
+ * instead (`PrepareStepResult.recordedContext`), and the loop records what it
23
+ * learns about files and finished work the same way.
52
24
  *
53
- * One carry per turn. A position whose message has left the history (a
54
- * compaction rewrote it) is given up and the block follows the history.
25
+ * `request` is the projected history. `recorded` are entries the loop has just
26
+ * recorded: they join the history at the end of this call, so they go ahead
27
+ * of the first request-only block already in `request` (`tail` of them, at the
28
+ * end), which is where the next request will find them.
55
29
  */
56
- export declare class TurnContextCarry {
57
- private placed;
58
- private readonly versions;
59
- /**
60
- * Put `blocks` and the `replaceable` ones into `request`, the projected copy
61
- * of `history` (same length and order). `end` is the last message of the
62
- * turn's own history. `retractions` says, per replaceable key, what to
63
- * write when an earlier block of that key no longer holds.
64
- */
65
- place(request: Message[], history: readonly Message[], end: Message | undefined, blocks: readonly Message[], replaceable?: readonly ReplaceableBlock[], retractions?: Readonly<Record<string, Message>>): void;
66
- }
30
+ export declare function placeRequestContext(request: Message[], recorded: readonly Message[], tail: number, blocks: readonly Message[]): void;
67
31
  //# sourceMappingURL=step-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"step-context.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAG9D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,yDAKjD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,QAa9F;AAsBD,mGAAmG;AACnG,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAMtC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAE/D;;;;;OAKG;IACH,KAAK,CACJ,OAAO,EAAE,OAAO,EAAE,EAClB,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,GAAG,EAAE,OAAO,GAAG,SAAS,EACxB,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,WAAW,GAAE,SAAS,gBAAgB,EAAO,EAC7C,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GACjD,IAAI;CA8DP"}
1
+ {"version":3,"file":"step-context.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,yDAKjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,OAAO,EAAE,EAClB,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,OAAO,EAAE,GACxB,IAAI,CASN"}
@@ -1,5 +1,4 @@
1
1
  import { createRuntimeContextMessage } from '../../../types/message/index.js';
2
- import { isOperatorUserMessage } from '../steering.js';
3
2
  /**
4
3
  * Request-only context, as the model reads it: a runtime-context user
5
4
  * message of kind `step-context`, labelled so the model does not take it
@@ -12,146 +11,37 @@ import { isOperatorUserMessage } from '../steering.js';
12
11
  export function stepContextMessage(content) {
13
12
  return createRuntimeContextMessage(`Current step context (runtime-generated; not a new user request):\n${content}`, 'step-context');
14
13
  }
15
- /**
16
- * Put `blocks` in front of the operator's new message when that message is
17
- * what the model is about to answer, so the request is the last thing it
18
- * reads and the longest data comes before it. Only the reminders and other
19
- * request-only context may follow that message: once the turn has an
20
- * assistant or tool message after it, the blocks stay at the end of the
21
- * history, where a caching driver ends its breakpoint before them, so the
22
- * tool loop of a long turn is not re-read at full price on every step.
23
- *
24
- * Reminders and notices that follow the operator's message stay where they
25
- * are: they are short, and the edge after the request is where they are read.
26
- */
27
- export function placeBeforeLatestOperatorMessage(history, blocks) {
28
- if (blocks.length === 0)
29
- return;
30
- let at = history.length;
31
- for (let i = history.length - 1; i >= 0; i--) {
32
- const message = history[i];
33
- if (isOperatorUserMessage(message)) {
34
- at = i;
35
- break;
36
- }
37
- // A reply or a tool result after the message: the model has moved on.
38
- if (message.role === 'assistant' || message.role === 'tool')
39
- break;
40
- }
41
- history.splice(at, 0, ...blocks);
42
- }
43
14
  function textOf(message) {
44
15
  return typeof message.content === 'string' ? message.content : JSON.stringify(message.content);
45
16
  }
46
- /** The operator message the model is about to answer, when there is one. */
47
- function pendingOperatorMessage(history) {
48
- for (let i = history.length - 1; i >= 0; i--) {
49
- const message = history[i];
50
- if (isOperatorUserMessage(message))
51
- return message;
52
- if (message.role === 'assistant' || message.role === 'tool')
53
- return undefined;
54
- }
55
- return undefined;
56
- }
57
- /** How many superseded versions of a replaceable block still go with the latest. */
58
- export const EARLIER_VERSIONS_KEPT = 2;
59
17
  /**
60
- * Where a turn's request-only data sits, so it stays put from call to call.
61
- *
62
- * What a block says is the step's own business: a block it offers again with
63
- * the same text is the same block, and it keeps the place it first had; a
64
- * block it no longer offers is withdrawn, so corrected data never lingers.
65
- * A block seen for the first time goes before the operator's message when that
66
- * message is what the model is answering, and otherwise after the history of
67
- * that moment. So the requests of a turn share their opening up to the first
68
- * block that changed, and a caching driver keeps reading the same prefix
69
- * instead of re-reading the turn from the operator's message on.
18
+ * Put a request's own data into it: after everything the history holds, in
19
+ * the order offered, each distinct text once.
70
20
  *
71
- * A block that says of itself that a later one replaces it (the file
72
- * evidence) is never taken back. When its text changes, the earlier text stays
73
- * where it went and the new text follows the history of that moment, which is
74
- * how the block itself tells the model to read it; when it stops holding, a
75
- * short block says so. Only the latest version and the last
76
- * `EARLIER_VERSIONS_KEPT` before it are carried, and an earlier version whose
77
- * place a compaction rewrote is dropped, so the stale text stays small. Until
78
- * a version is dropped no request of the turn rewrites the one before it.
21
+ * Request-only data is what the model needs for this request alone (a note
22
+ * that something is unavailable, the work still running). It is re-placed on
23
+ * every call and always last, so the history before it never changes shape
24
+ * from one call to the next and a caching driver, which ends its breakpoint
25
+ * before the first such block, covers the whole history on every call. What
26
+ * the model should keep reading in later requests is recorded as turn context
27
+ * instead (`PrepareStepResult.recordedContext`), and the loop records what it
28
+ * learns about files and finished work the same way.
79
29
  *
80
- * One carry per turn. A position whose message has left the history (a
81
- * compaction rewrote it) is given up and the block follows the history.
30
+ * `request` is the projected history. `recorded` are entries the loop has just
31
+ * recorded: they join the history at the end of this call, so they go ahead
32
+ * of the first request-only block already in `request` (`tail` of them, at the
33
+ * end), which is where the next request will find them.
82
34
  */
83
- export class TurnContextCarry {
84
- placed = new Map();
85
- versions = new Map();
86
- /**
87
- * Put `blocks` and the `replaceable` ones into `request`, the projected copy
88
- * of `history` (same length and order). `end` is the last message of the
89
- * turn's own history. `retractions` says, per replaceable key, what to
90
- * write when an earlier block of that key no longer holds.
91
- */
92
- place(request, history, end, blocks, replaceable = [], retractions = {}) {
93
- const index = (message) => message ? history.lastIndexOf(message) : history.length - 1;
94
- const operator = pendingOperatorMessage(history);
95
- const positionOf = (slot) => 'before' in slot.at ? index(slot.at.before) : index(slot.at.after) + 1;
96
- const anchorOf = (slot) => ('before' in slot.at ? slot.at.before : slot.at.after);
97
- const next = new Map();
98
- const inserts = [];
99
- for (const message of blocks) {
100
- const text = textOf(message);
101
- if (next.has(text))
102
- continue;
103
- let slot = this.placed.get(text);
104
- if (slot) {
105
- const anchor = anchorOf(slot);
106
- if (anchor && index(anchor) < 0)
107
- slot = { text, at: { after: end } };
108
- }
109
- else {
110
- slot = { text, at: operator ? { before: operator } : { after: end } };
111
- }
112
- next.set(text, slot);
113
- inserts.push({ at: positionOf(slot), message });
114
- }
115
- this.placed = next;
116
- const offered = new Map(replaceable.map((block) => [block.key, block.message]));
117
- for (const key of new Set([...this.versions.keys(), ...offered.keys()])) {
118
- const held = this.versions.get(key) ?? [];
119
- const wanted = offered.get(key) ?? retractions[key];
120
- const last = held.at(-1);
121
- if (wanted !== undefined && (last === undefined || last.text !== textOf(wanted)))
122
- held.push({
123
- text: textOf(wanted),
124
- message: wanted,
125
- // The first version goes where the other blocks go; a later one
126
- // follows the history, after the one it replaces.
127
- at: last === undefined && operator ? { before: operator } : { after: end },
128
- });
129
- // An earlier version whose place a compaction rewrote is given up: the
130
- // request is rewritten at that point anyway, and stacking stale copies
131
- // at the end would only add bulk. The latest version is never given up.
132
- const kept = held.filter((version, i) => {
133
- if (i === held.length - 1)
134
- return true;
135
- const anchor = anchorOf(version);
136
- return !anchor || index(anchor) >= 0;
137
- });
138
- // Only the latest and a few earlier versions are carried, so a long turn
139
- // does not grow by a full copy per change.
140
- kept.splice(0, Math.max(0, kept.length - (EARLIER_VERSIONS_KEPT + 1)));
141
- this.versions.set(key, kept);
142
- for (const version of kept) {
143
- const anchor = anchorOf(version);
144
- if (anchor && index(anchor) < 0)
145
- version.at = { after: end };
146
- inserts.push({ at: positionOf(version), message: version.message });
147
- }
148
- }
149
- // Back to front, so an earlier position is not shifted by a later one;
150
- // blocks at one position keep the order they were offered in.
151
- const order = inserts.map((entry, position) => ({ ...entry, position }));
152
- order.sort((a, b) => b.at - a.at || b.position - a.position);
153
- for (const entry of order)
154
- request.splice(entry.at, 0, entry.message);
35
+ export function placeRequestContext(request, recorded, tail, blocks) {
36
+ if (recorded.length > 0)
37
+ request.splice(request.length - tail, 0, ...recorded);
38
+ const seen = new Set();
39
+ for (const message of blocks) {
40
+ const text = textOf(message);
41
+ if (seen.has(text))
42
+ continue;
43
+ seen.add(text);
44
+ request.push(message);
155
45
  }
156
46
  }
157
47
  //# sourceMappingURL=step-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"step-context.js","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-context.js","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAG7E;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IACjD,OAAO,2BAA2B,CACjC,sEAAsE,OAAO,EAAE,EAC/E,cAAc,CACd,CAAA;AACF,CAAC;AAED,SAAS,MAAM,CAAC,OAAgB;IAC/B,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC/F,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CAClC,OAAkB,EAClB,QAA4B,EAC5B,IAAY,EACZ,MAA0B;IAE1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAA;IAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;AACF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { type Message, type UserMessage } from '../../../types/message/index.js';
2
2
  import type { ToolChoice } from '../../../types/provider/chat.js';
3
- import type { PrepareStepContext, PrepareStepResult, StepResult, StepVeto } from '../../../types/session/index.js';
3
+ import type { PrepareStepContext, PrepareStepResult, RecordedContextItem, StepResult, StepVeto } from '../../../types/session/index.js';
4
4
  import type { Skill } from '../../../types/skills/index.js';
5
5
  import type { IterationContext } from './phases/index.js';
6
- import { type ReplaceableBlock, stepContextMessage } from './step-context.js';
6
+ import { stepContextMessage } from './step-context.js';
7
7
  /**
8
8
  * How the next request is shaped: admission, preparation, and the context
9
9
  * budget handed to both.
@@ -24,16 +24,27 @@ export interface StepShaping {
24
24
  readonly requestContextTokens?: number;
25
25
  }
26
26
  export { stepContextMessage };
27
- /** Derived after request projection; never accumulates in canonical history or replaces operator intent. */
28
- export declare function appendWorkContext(shaping: StepShaping, messages: Message[], stepNumber: number, prepared: PrepareStepResult): void;
29
- /** What the two work-context blocks report; each tells the model a later one replaces it. */
27
+ /** The names the two kinds of recorded work context are filed under. */
30
28
  export declare const OWNED_WORK_KEY = "owned-work";
31
29
  export declare const FILE_EVIDENCE_KEY = "file-evidence";
30
+ /** What the work context says for one request. */
31
+ export interface WorkContext {
32
+ /** Facts that do not change once true, to be kept in the conversation. */
33
+ readonly recorded: RecordedContextItem[];
34
+ /** Facts about now, shown with this request only. */
35
+ readonly requestOnly: Message[];
36
+ }
32
37
  /**
33
- * The work-context blocks for a request whose projected messages are
34
- * `messages`, each under the name of what it reports.
38
+ * The work context for a request whose projected messages are `messages`.
39
+ *
40
+ * Two kinds of fact, each where it belongs. What holds until something
41
+ * changes it, or never changes, is recorded: the file entries that are new or
42
+ * changed since the last record (with the paths whose entry no longer holds),
43
+ * and each owned task once it has finished. What is true only now, the tasks
44
+ * still running, goes with this request alone. Each text is admitted whole or
45
+ * not at all, within the room the request has left.
35
46
  */
36
- export declare function workContextBlocks(shaping: StepShaping, messages: readonly Message[], stepNumber: number, prepared: PrepareStepResult): ReplaceableBlock[];
47
+ export declare function workContext(shaping: StepShaping, messages: readonly Message[], stepNumber: number, prepared: PrepareStepResult): WorkContext;
37
48
  export declare function stepContext(shaping: StepShaping, stepNumber: number, prepared: PrepareStepResult): PrepareStepContext;
38
49
  /** Refuse the next call on a veto or hook error; do not skip a failed admission check. */
39
50
  export declare function beforeStep(shaping: StepShaping, stepNumber: number): Promise<StepVeto | undefined>;
@@ -44,6 +55,7 @@ export declare function prepareStep(shaping: StepShaping, stepNumber: number): P
44
55
  model?: string;
45
56
  system?: string;
46
57
  context?: string;
58
+ recordedContext?: readonly RecordedContextItem[];
47
59
  skills?: readonly Skill[];
48
60
  temperature?: number;
49
61
  maxResponseTokens?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"step-shaping.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-shaping.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,WAAW,EAEhB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EACX,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAI3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EACN,KAAK,gBAAgB,EAErB,kBAAkB,EAClB,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,SAAS,UAAU,EAAE,CAAA;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CACtC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,GACzB,IAAI,CAON;AAED,6FAA6F;AAC7F,eAAO,MAAM,cAAc,eAAe,CAAA;AAC1C,eAAO,MAAM,iBAAiB,kBAAkB,CAAA;AAEhD;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,GACzB,gBAAgB,EAAE,CAuBpB;AAED,wBAAgB,WAAW,CAC1B,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,GACzB,kBAAkB,CA+CpB;AAED,0FAA0F;AAC1F,wBAAsB,UAAU,CAC/B,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAU/B;AAED,iGAAiG;AACjG,wBAAsB,WAAW,CAChC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAC,CAuGD;AAED,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"step-shaping.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-shaping.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,WAAW,EAGhB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EACX,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAK3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,SAAS,UAAU,EAAE,CAAA;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CACtC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,wEAAwE;AACxE,eAAO,MAAM,cAAc,eAAe,CAAA;AAC1C,eAAO,MAAM,iBAAiB,kBAAkB,CAAA;AAEhD,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IACxC,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,CAAA;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,GACzB,WAAW,CAmCb;AAED,wBAAgB,WAAW,CAC1B,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,GACzB,kBAAkB,CAgDpB;AAED,0FAA0F;AAC1F,wBAAsB,UAAU,CAC/B,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAU/B;AAED,iGAAiG;AACjG,wBAAsB,WAAW,CAChC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAA;IAChD,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAC,CAkHD;AAED,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -1,51 +1,66 @@
1
1
  import { resolveContextWindow } from '../../../compaction/context-window.js';
2
- import { estimateMessageTokens } from '../../../compaction/token-estimate.js';
2
+ import { estimateMessageTokens, estimateTextTokens } from '../../../compaction/token-estimate.js';
3
3
  import { NAMZU } from '../../../constants/telemetry/index.js';
4
4
  import { renderSkillsSection } from '../../../persona/assembler.js';
5
+ import { recordedOwnedTaskIds } from '../../../scheduler/completion-inbox.js';
5
6
  import { PreparationContextError } from '../../../turn/preparation-context-error.js';
6
- import { createSystemMessage, } from '../../../types/message/index.js';
7
+ import { createSystemMessage, turnContextEntries, } from '../../../types/message/index.js';
7
8
  import { toErrorMessage } from '../../../utils/error.js';
8
9
  import { createCallbackInference } from '../callback-inference.js';
10
+ import { recordFileEvidence } from '../file-evidence-context.js';
9
11
  import { measureContext } from './phases/compaction.js';
10
- import { placeBeforeLatestOperatorMessage, stepContextMessage, } from './step-context.js';
12
+ import { stepContextMessage } from './step-context.js';
11
13
  export { stepContextMessage };
12
- /** Derived after request projection; never accumulates in canonical history or replaces operator intent. */
13
- export function appendWorkContext(shaping, messages, stepNumber, prepared) {
14
- // Per-turn data goes in front of the operator's new message while that is
15
- // what the model is answering, like the other blocks of request-only data.
16
- placeBeforeLatestOperatorMessage(messages, workContextBlocks(shaping, messages, stepNumber, prepared).map((block) => block.message));
17
- }
18
- /** What the two work-context blocks report; each tells the model a later one replaces it. */
14
+ /** The names the two kinds of recorded work context are filed under. */
19
15
  export const OWNED_WORK_KEY = 'owned-work';
20
16
  export const FILE_EVIDENCE_KEY = 'file-evidence';
21
17
  /**
22
- * The work-context blocks for a request whose projected messages are
23
- * `messages`, each under the name of what it reports.
18
+ * The work context for a request whose projected messages are `messages`.
19
+ *
20
+ * Two kinds of fact, each where it belongs. What holds until something
21
+ * changes it, or never changes, is recorded: the file entries that are new or
22
+ * changed since the last record (with the paths whose entry no longer holds),
23
+ * and each owned task once it has finished. What is true only now, the tasks
24
+ * still running, goes with this request alone. Each text is admitted whole or
25
+ * not at all, within the room the request has left.
24
26
  */
25
- export function workContextBlocks(shaping, messages, stepNumber, prepared) {
27
+ export function workContext(shaping, messages, stepNumber, prepared) {
26
28
  const { ctx } = shaping;
29
+ const held = (key) => turnContextEntries(ctx.recorder.messages, key);
30
+ const inbox = ctx.completionInbox;
27
31
  const contributions = [
28
- [OWNED_WORK_KEY, ctx.completionInbox?.describeOwnedWork()],
29
- [FILE_EVIDENCE_KEY, ctx.toolExecutor.describeFileEvidence(messages)],
30
- ].filter((entry) => Boolean(entry[1]));
31
- if (contributions.length === 0)
32
- return [];
33
- const placed = [];
32
+ { content: inbox?.describeRunningWork() },
33
+ {
34
+ content: inbox?.describeSettledWork(recordedOwnedTaskIds(held(OWNED_WORK_KEY))),
35
+ key: OWNED_WORK_KEY,
36
+ },
37
+ {
38
+ content: recordFileEvidence(ctx.toolExecutor.fileEvidenceEntries(messages), held(FILE_EVIDENCE_KEY)),
39
+ key: FILE_EVIDENCE_KEY,
40
+ },
41
+ ];
42
+ const present = contributions.filter((entry) => Boolean(entry.content));
43
+ const work = { recorded: [], requestOnly: [] };
44
+ if (present.length === 0)
45
+ return work;
34
46
  let room = stepContext(shaping, stepNumber, prepared).contextBudget?.remainingTokens ?? 0;
35
47
  // Leave room for the actual task; admit whole contributions, never dangling partial references.
36
48
  if (room < 1_500)
37
- return [];
38
- for (const [key, content] of contributions) {
49
+ return work;
50
+ for (const { content, key } of present) {
39
51
  if (!content || content.length > 8_000)
40
52
  continue;
41
53
  const message = stepContextMessage(content);
42
54
  const tokens = estimateMessageTokens(message);
43
55
  if (tokens > Math.min(2_000, room - 1_000))
44
56
  continue;
45
- placed.push({ key, message });
57
+ if (key)
58
+ work.recorded.push({ key, text: content });
59
+ else
60
+ work.requestOnly.push(message);
46
61
  room -= tokens;
47
62
  }
48
- return placed;
63
+ return work;
49
64
  }
50
65
  export function stepContext(shaping, stepNumber, prepared) {
51
66
  const { ctx, latestUserMessage, steps } = shaping;
@@ -58,7 +73,8 @@ export function stepContext(shaping, stepNumber, prepared) {
58
73
  const skills = prepared.skills ? renderSkillsSection([...prepared.skills]) : null;
59
74
  const preamble = [prepared.system, skills].filter(Boolean).join('\n\n');
60
75
  const preparedTokens = (preamble ? estimateMessageTokens(createSystemMessage(preamble)) : 0) +
61
- (prepared.context ? estimateMessageTokens(stepContextMessage(prepared.context)) : 0);
76
+ (prepared.context ? estimateMessageTokens(stepContextMessage(prepared.context)) : 0) +
77
+ (prepared.recordedContext ?? []).reduce((sum, item) => sum + estimateTextTokens(item.text), 0);
62
78
  const responseReserve = Math.min(prepared.maxResponseTokens ?? ctx.turnConfig.maxResponseTokens ?? Math.floor(window.tokens / 4), Math.floor(window.tokens / 4));
63
79
  return {
64
80
  sessionId: ctx.recorder.sessionId,
@@ -113,8 +129,16 @@ export async function prepareStep(shaping, stepNumber) {
113
129
  ...stepContext(shaping, stepNumber, result),
114
130
  generateText: inference.generateText,
115
131
  });
116
- if (decided)
117
- result = { ...result, ...decided };
132
+ if (decided) {
133
+ // Recorded context adds up across stages: each stage files its own
134
+ // keys, and one stage must not erase what an earlier one recorded.
135
+ const recorded = [...(result.recordedContext ?? []), ...(decided.recordedContext ?? [])];
136
+ result = {
137
+ ...result,
138
+ ...decided,
139
+ ...(recorded.length > 0 ? { recordedContext: recorded } : {}),
140
+ };
141
+ }
118
142
  await selectContextModel(shaping, result.model ?? ctx.turnConfig.model);
119
143
  }
120
144
  catch (err) {
@@ -179,6 +203,8 @@ export async function prepareStep(shaping, stepNumber) {
179
203
  prepared.system = result.system;
180
204
  if (result.context !== undefined)
181
205
  prepared.context = result.context;
206
+ if (result.recordedContext !== undefined)
207
+ prepared.recordedContext = result.recordedContext;
182
208
  if (result.skills !== undefined)
183
209
  prepared.skills = result.skills;
184
210
  if (result.temperature !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"step-shaping.js","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-shaping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAA;AACpF,OAAO,EAGN,mBAAmB,GACnB,MAAM,iCAAiC,CAAA;AASxC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAEN,gCAAgC,EAChC,kBAAkB,GAClB,MAAM,mBAAmB,CAAA;AAsB1B,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,4GAA4G;AAC5G,MAAM,UAAU,iBAAiB,CAChC,OAAoB,EACpB,QAAmB,EACnB,UAAkB,EAClB,QAA2B;IAE3B,0EAA0E;IAC1E,2EAA2E;IAC3E,gCAAgC,CAC/B,QAAQ,EACR,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CACxF,CAAA;AACF,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAA;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAA;AAEhD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAChC,OAAoB,EACpB,QAA4B,EAC5B,UAAkB,EAClB,QAA2B;IAE3B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEvB,MAAM,aAAa,GAClB;QACC,CAAC,cAAc,EAAE,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;QAC1D,CAAC,iBAAiB,EAAE,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KAErE,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACzC,MAAM,MAAM,GAAuB,EAAE,CAAA;IACrC,IAAI,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,aAAa,EAAE,eAAe,IAAI,CAAC,CAAA;IACzF,gGAAgG;IAChG,IAAI,IAAI,GAAG,KAAK;QAAE,OAAO,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK;YAAE,SAAQ;QAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC;YAAE,SAAQ;QACpD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QAC7B,IAAI,IAAI,MAAM,CAAA;IACf,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,OAAoB,EACpB,UAAkB,EAClB,QAA2B;IAE3B,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAEjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAA;IACpD,MAAM,MAAM,GAAG,oBAAoB,CAClC,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,EACzC,KAAK,EACL,KAAK,KAAK,GAAG,CAAC,UAAU,CAAC,KAAK;QAC7B,CAAC,CAAC,GAAG,CAAC,qBAAqB;QAC3B,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,YAAY;YAC3B,CAAC,CAAC,GAAG,CAAC,2BAA2B;YACjC,CAAC,CAAC,SAAS,CACb,CAAA;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACjF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvE,MAAM,cAAc,GACnB,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC/B,QAAQ,CAAC,iBAAiB,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAC/F,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7B,CAAA;IACD,OAAO;QACN,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS;QACjC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;QAC3B,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa;QACzC,UAAU;QACV,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ;QAC/B,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,MAAM;QAClC,aAAa,EAAE;YACd,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,eAAe,EAAE,IAAI,CAAC,GAAG,CACxB,CAAC,EACD,IAAI,CAAC,KAAK,CACT,MAAM,CAAC,MAAM;gBACZ,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM;gBAC1B,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC;gBACnC,cAAc;gBACd,eAAe,CAChB,CACD;SACD;QACD,KAAK,EAAE,KAAK,EAAE;QACd,QAAQ;KACR,CAAA;AACF,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,OAAoB,EACpB,UAAkB;IAElB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEvB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;IACjC,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,IAAI,CAAC;QACJ,OAAO,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAA;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,qBAAqB,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,CAAA;IAC9D,CAAC;AACF,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,OAAoB,EACpB,UAAkB;IAWlB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEvB,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAA;IAClC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAEpE,+DAA+D;IAC/D,qEAAqE;IACrE,iEAAiE;IACjE,8CAA8C;IAC9C,IAAI,MAAM,GAAsB,EAAE,CAAA;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,uBAAuB,CACxC,GAAG,EACH,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EACpC,aAAa,CACb,CAAA;QACD,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;gBAC3B,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;gBAC3C,YAAY,EAAE,SAAS,CAAC,YAAY;aACpC,CAAC,CAAA;YACF,IAAI,OAAO;gBAAE,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA;YAC/C,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,2DAA2D;YAC3D,0DAA0D;YAC1D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACxD,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;gBACpC,2BAA2B,EAAE,UAAU;gBACvC,mBAAmB,EAAE,cAAc,CAAC,GAAG,CAAC;aACxC,CAAC,CAAA;YACF,uEAAuE;YACvE,+EAA+E;YAC/E,qEAAqE;YACrE,IAAI,GAAG,YAAY,uBAAuB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnF,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,aAAa,EAAE,eAAe,IAAI,CAAC,CAAA;gBACzF,IACC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;oBAC/B,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACtB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAEnF,MAAM,GAAG;wBACR,GAAG,MAAM;wBACT,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;qBACnE,CAAA;YACH,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,SAAS,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GASV,EAAE,CAAA;IAEN,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACjF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,gEAAgE;YAChE,+DAA+D;YAC/D,6DAA6D;YAC7D,gEAAgE;YAChE,4DAA4D;YAC5D,EAAE;YACF,6DAA6D;YAC7D,gEAAgE;YAChE,8DAA8D;YAC9D,4DAA4D;YAC5D,yBAAyB;YACzB,MAAM,OAAO,GACZ,KAAK,CAAC,MAAM,KAAK,CAAC;gBACjB,CAAC,CAAC,mFAAmF;gBACrF,CAAC,CAAC,iEAAiE,CAAA;YACrE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;gBACpC,2BAA2B,EAAE,UAAU;gBACvC,uBAAuB,EAAE,OAAO;gBAChC,yBAAyB,EAAE,KAAK,CAAC,MAAM;aACvC,CAAC,CAAA;QACH,CAAC;QACD,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAA;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IAC5E,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAChE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IACnE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAChE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;QAAE,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;IAC/E,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC5C,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;IACtD,CAAC;IAED,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,OAAoB,EACpB,KAAyB;IAEzB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEvB,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,qEAAqE;QACrE,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAA;IACrC,CAAC;IACD,GAAG,CAAC,YAAY,GAAG,KAAK,CAAA;IACxB,GAAG,CAAC,2BAA2B;QAC9B,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,mBAAmB;YACpF,CAAC,CAAC,MAAM,GAAG,CAAC,yBAAyB,EAAE,CAAC,KAAK,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"step-shaping.js","sourceRoot":"","sources":["../../../../src/runtime/query/iteration/step-shaping.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import type { TaskHandle, TaskScheduler } from '../types/agent/scheduler.js';
2
2
  import type { TaskId } from '../types/ids/index.js';
3
3
  import { type Logger } from '../utils/logger.js';
4
+ /**
5
+ * The ids of the tasks that earlier recorded entries name, read from the
6
+ * entries' text, so what is recorded is known from the conversation alone.
7
+ */
8
+ export declare function recordedOwnedTaskIds(entries: readonly string[]): Set<string>;
4
9
  export interface CompletionInboxOptions {
5
10
  /** See {@link CompletionInbox.holdsTurnOpen}. Default `true`. */
6
11
  readonly holdsTurnOpen?: boolean;
@@ -235,8 +240,30 @@ export declare class CompletionInbox {
235
240
  * model once — but a RUNNING task that does not fit is: the preamble
236
241
  * says exactly how many, so the model never mistakes the cap for the
237
242
  * task having ended.
243
+ *
244
+ * @deprecated The query loop reads {@link describeRunningWork} for the
245
+ * request and {@link describeSettledWork} for what it records. This single
246
+ * snapshot is kept for hosts that read it themselves.
238
247
  */
239
248
  describeOwnedWork(): string | undefined;
249
+ /**
250
+ * The tasks this turn launched that are still going, for the request that
251
+ * is about to be sent and for no other: running state changes, so it is
252
+ * never recorded. Most recently launched first; a task that does not fit
253
+ * is counted, so the model never mistakes the cap for the task having
254
+ * ended. Undefined when nothing is running.
255
+ */
256
+ describeRunningWork(): string | undefined;
257
+ /**
258
+ * The tasks this turn launched that have reached a terminal state and are
259
+ * not yet in `recorded` (the ids earlier entries name), oldest first, as
260
+ * text to record. A terminal state does not change, so an entry is never
261
+ * out of date and is written once per task. Tasks that settled and fell
262
+ * out of the bounded list before they were recorded are counted. Undefined
263
+ * when no task has newly settled.
264
+ */
265
+ describeSettledWork(recorded: ReadonlySet<string>): string | undefined;
266
+ private observe;
240
267
  /**
241
268
  * Tasks this turn launched that are still running.
242
269
  *
@@ -1 +1 @@
1
- {"version":3,"file":"completion-inbox.d.ts","sourceRoot":"","sources":["../../src/scheduler/completion-inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion-inbox.d.ts","sourceRoot":"","sources":["../../src/scheduler/completion-inbox.ts"],"names":[],"mappings":"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"}