@adonis-agora/agent 0.30.2 → 0.33.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 (240) hide show
  1. package/CHANGELOG.md +866 -0
  2. package/dist/assets/spa/assets/{index-Cfi3g3b2.js → index-3Q2m5_Ax.js} +1 -1
  3. package/dist/assets/spa/index.html +1 -1
  4. package/dist/providers/agent_provider.d.ts.map +1 -1
  5. package/dist/providers/agent_provider.js +157 -9
  6. package/dist/providers/agent_provider.js.map +1 -1
  7. package/dist/src/agent-deps-factory.d.ts +16 -2
  8. package/dist/src/agent-deps-factory.d.ts.map +1 -1
  9. package/dist/src/agent-deps-factory.js +8 -0
  10. package/dist/src/agent-deps-factory.js.map +1 -1
  11. package/dist/src/agent-deps.d.ts +21 -1
  12. package/dist/src/agent-deps.d.ts.map +1 -1
  13. package/dist/src/agent-deps.js.map +1 -1
  14. package/dist/src/agent-loop.d.ts +226 -9
  15. package/dist/src/agent-loop.d.ts.map +1 -1
  16. package/dist/src/agent-loop.js +1311 -208
  17. package/dist/src/agent-loop.js.map +1 -1
  18. package/dist/src/agent-service.d.ts +27 -0
  19. package/dist/src/agent-service.d.ts.map +1 -1
  20. package/dist/src/agent-service.js +29 -0
  21. package/dist/src/agent-service.js.map +1 -1
  22. package/dist/src/ai-sdk/ai-sdk-model.d.ts.map +1 -1
  23. package/dist/src/ai-sdk/ai-sdk-model.js +21 -1
  24. package/dist/src/ai-sdk/ai-sdk-model.js.map +1 -1
  25. package/dist/src/client/sse.d.ts +32 -2
  26. package/dist/src/client/sse.d.ts.map +1 -1
  27. package/dist/src/client/sse.js +45 -2
  28. package/dist/src/client/sse.js.map +1 -1
  29. package/dist/src/define_config.d.ts +41 -7
  30. package/dist/src/define_config.d.ts.map +1 -1
  31. package/dist/src/define_config.js.map +1 -1
  32. package/dist/src/durable/agent-run-workflow.d.ts +10 -11
  33. package/dist/src/durable/agent-run-workflow.d.ts.map +1 -1
  34. package/dist/src/durable/agent-run-workflow.js +49 -21
  35. package/dist/src/durable/agent-run-workflow.js.map +1 -1
  36. package/dist/src/durable/durable-agent-runner.d.ts +3 -2
  37. package/dist/src/durable/durable-agent-runner.d.ts.map +1 -1
  38. package/dist/src/durable/durable-agent-runner.js +2 -2
  39. package/dist/src/durable/durable-agent-runner.js.map +1 -1
  40. package/dist/src/elicitation.d.ts +207 -0
  41. package/dist/src/elicitation.d.ts.map +1 -0
  42. package/dist/src/elicitation.js +315 -0
  43. package/dist/src/elicitation.js.map +1 -0
  44. package/dist/src/evals/approval-prior.d.ts +58 -0
  45. package/dist/src/evals/approval-prior.d.ts.map +1 -0
  46. package/dist/src/evals/approval-prior.js +82 -0
  47. package/dist/src/evals/approval-prior.js.map +1 -0
  48. package/dist/src/evals/evaluate.d.ts +51 -0
  49. package/dist/src/evals/evaluate.d.ts.map +1 -0
  50. package/dist/src/evals/evaluate.js +76 -0
  51. package/dist/src/evals/evaluate.js.map +1 -0
  52. package/dist/src/evals/governance-sample-source.d.ts +23 -0
  53. package/dist/src/evals/governance-sample-source.d.ts.map +1 -0
  54. package/dist/src/evals/governance-sample-source.js +93 -0
  55. package/dist/src/evals/governance-sample-source.js.map +1 -0
  56. package/dist/src/evals/in-memory-score-store.d.ts +16 -0
  57. package/dist/src/evals/in-memory-score-store.d.ts.map +1 -0
  58. package/dist/src/evals/in-memory-score-store.js +57 -0
  59. package/dist/src/evals/in-memory-score-store.js.map +1 -0
  60. package/dist/src/evals/index.d.ts +15 -0
  61. package/dist/src/evals/index.d.ts.map +1 -0
  62. package/dist/src/evals/index.js +14 -0
  63. package/dist/src/evals/index.js.map +1 -0
  64. package/dist/src/evals/judge.d.ts +30 -0
  65. package/dist/src/evals/judge.d.ts.map +1 -0
  66. package/dist/src/evals/judge.js +53 -0
  67. package/dist/src/evals/judge.js.map +1 -0
  68. package/dist/src/evals/live-scoring.d.ts +42 -0
  69. package/dist/src/evals/live-scoring.d.ts.map +1 -0
  70. package/dist/src/evals/live-scoring.js +103 -0
  71. package/dist/src/evals/live-scoring.js.map +1 -0
  72. package/dist/src/evals/sample-source.d.ts +40 -0
  73. package/dist/src/evals/sample-source.d.ts.map +1 -0
  74. package/dist/src/evals/sample-source.js +33 -0
  75. package/dist/src/evals/sample-source.js.map +1 -0
  76. package/dist/src/evals/score-store.d.ts +54 -0
  77. package/dist/src/evals/score-store.d.ts.map +1 -0
  78. package/dist/src/evals/score-store.js +2 -0
  79. package/dist/src/evals/score-store.js.map +1 -0
  80. package/dist/src/evals/scorers/answer-relevancy.scorer.d.ts +28 -0
  81. package/dist/src/evals/scorers/answer-relevancy.scorer.d.ts.map +1 -0
  82. package/dist/src/evals/scorers/answer-relevancy.scorer.js +42 -0
  83. package/dist/src/evals/scorers/answer-relevancy.scorer.js.map +1 -0
  84. package/dist/src/evals/scorers/approval-outcome.scorer.d.ts +22 -0
  85. package/dist/src/evals/scorers/approval-outcome.scorer.d.ts.map +1 -0
  86. package/dist/src/evals/scorers/approval-outcome.scorer.js +60 -0
  87. package/dist/src/evals/scorers/approval-outcome.scorer.js.map +1 -0
  88. package/dist/src/evals/scorers/approval-risk.scorer.d.ts +28 -0
  89. package/dist/src/evals/scorers/approval-risk.scorer.d.ts.map +1 -0
  90. package/dist/src/evals/scorers/approval-risk.scorer.js +54 -0
  91. package/dist/src/evals/scorers/approval-risk.scorer.js.map +1 -0
  92. package/dist/src/evals/scorers/run-completion.scorer.d.ts +18 -0
  93. package/dist/src/evals/scorers/run-completion.scorer.d.ts.map +1 -0
  94. package/dist/src/evals/scorers/run-completion.scorer.js +55 -0
  95. package/dist/src/evals/scorers/run-completion.scorer.js.map +1 -0
  96. package/dist/src/evals/summarize.d.ts +44 -0
  97. package/dist/src/evals/summarize.d.ts.map +1 -0
  98. package/dist/src/evals/summarize.js +87 -0
  99. package/dist/src/evals/summarize.js.map +1 -0
  100. package/dist/src/evals/types.d.ts +81 -0
  101. package/dist/src/evals/types.d.ts.map +1 -0
  102. package/dist/src/evals/types.js +15 -0
  103. package/dist/src/evals/types.js.map +1 -0
  104. package/dist/src/history-window.d.ts +50 -11
  105. package/dist/src/history-window.d.ts.map +1 -1
  106. package/dist/src/history-window.js +84 -12
  107. package/dist/src/history-window.js.map +1 -1
  108. package/dist/src/index.d.ts +11 -3
  109. package/dist/src/index.d.ts.map +1 -1
  110. package/dist/src/index.js +10 -3
  111. package/dist/src/index.js.map +1 -1
  112. package/dist/src/mcp/server.d.ts +8 -0
  113. package/dist/src/mcp/server.d.ts.map +1 -1
  114. package/dist/src/mcp/server.js +27 -1
  115. package/dist/src/mcp/server.js.map +1 -1
  116. package/dist/src/mcp-client/importer.d.ts +75 -0
  117. package/dist/src/mcp-client/importer.d.ts.map +1 -0
  118. package/dist/src/mcp-client/importer.js +161 -0
  119. package/dist/src/mcp-client/importer.js.map +1 -0
  120. package/dist/src/mcp-client/index.d.ts +9 -0
  121. package/dist/src/mcp-client/index.d.ts.map +1 -0
  122. package/dist/src/mcp-client/index.js +8 -0
  123. package/dist/src/mcp-client/index.js.map +1 -0
  124. package/dist/src/mcp-client/options.d.ts +99 -0
  125. package/dist/src/mcp-client/options.d.ts.map +1 -0
  126. package/dist/src/mcp-client/options.js +2 -0
  127. package/dist/src/mcp-client/options.js.map +1 -0
  128. package/dist/src/mcp-client/tool-input.d.ts +39 -0
  129. package/dist/src/mcp-client/tool-input.d.ts.map +1 -0
  130. package/dist/src/mcp-client/tool-input.js +61 -0
  131. package/dist/src/mcp-client/tool-input.js.map +1 -0
  132. package/dist/src/mcp-client/tool-kind.d.ts +37 -0
  133. package/dist/src/mcp-client/tool-kind.d.ts.map +1 -0
  134. package/dist/src/mcp-client/tool-kind.js +20 -0
  135. package/dist/src/mcp-client/tool-kind.js.map +1 -0
  136. package/dist/src/mcp-client/tool-name.d.ts +22 -0
  137. package/dist/src/mcp-client/tool-name.d.ts.map +1 -0
  138. package/dist/src/mcp-client/tool-name.js +35 -0
  139. package/dist/src/mcp-client/tool-name.js.map +1 -0
  140. package/dist/src/mcp-client/tool-source.d.ts +75 -0
  141. package/dist/src/mcp-client/tool-source.d.ts.map +1 -0
  142. package/dist/src/mcp-client/tool-source.js +244 -0
  143. package/dist/src/mcp-client/tool-source.js.map +1 -0
  144. package/dist/src/mcp-client/transient.d.ts +28 -0
  145. package/dist/src/mcp-client/transient.d.ts.map +1 -0
  146. package/dist/src/mcp-client/transient.js +126 -0
  147. package/dist/src/mcp-client/transient.js.map +1 -0
  148. package/dist/src/mcp-client/unsafe-regex.d.ts +23 -0
  149. package/dist/src/mcp-client/unsafe-regex.d.ts.map +1 -0
  150. package/dist/src/mcp-client/unsafe-regex.js +194 -0
  151. package/dist/src/mcp-client/unsafe-regex.js.map +1 -0
  152. package/dist/src/memory.d.ts +448 -0
  153. package/dist/src/memory.d.ts.map +1 -0
  154. package/dist/src/memory.js +330 -0
  155. package/dist/src/memory.js.map +1 -0
  156. package/dist/src/pagination.d.ts +63 -0
  157. package/dist/src/pagination.d.ts.map +1 -0
  158. package/dist/src/pagination.js +16 -0
  159. package/dist/src/pagination.js.map +1 -0
  160. package/dist/src/processors.d.ts +134 -0
  161. package/dist/src/processors.d.ts.map +1 -0
  162. package/dist/src/processors.js +215 -0
  163. package/dist/src/processors.js.map +1 -0
  164. package/dist/src/rag/qdrant-store.d.ts +48 -6
  165. package/dist/src/rag/qdrant-store.d.ts.map +1 -1
  166. package/dist/src/rag/qdrant-store.js +77 -24
  167. package/dist/src/rag/qdrant-store.js.map +1 -1
  168. package/dist/src/replay-integrity.d.ts +17 -0
  169. package/dist/src/replay-integrity.d.ts.map +1 -0
  170. package/dist/src/replay-integrity.js +19 -0
  171. package/dist/src/replay-integrity.js.map +1 -0
  172. package/dist/src/runners/inline-agent-runner.d.ts +33 -7
  173. package/dist/src/runners/inline-agent-runner.d.ts.map +1 -1
  174. package/dist/src/runners/inline-agent-runner.js +113 -27
  175. package/dist/src/runners/inline-agent-runner.js.map +1 -1
  176. package/dist/src/skills.d.ts +291 -0
  177. package/dist/src/skills.d.ts.map +1 -0
  178. package/dist/src/skills.js +0 -0
  179. package/dist/src/skills.js.map +1 -0
  180. package/dist/src/spi/agent-runner.d.ts +20 -6
  181. package/dist/src/spi/agent-runner.d.ts.map +1 -1
  182. package/dist/src/spi/agent-store.d.ts +53 -0
  183. package/dist/src/spi/agent-store.d.ts.map +1 -1
  184. package/dist/src/spi/governance-queries.d.ts +33 -13
  185. package/dist/src/spi/governance-queries.d.ts.map +1 -1
  186. package/dist/src/spi/history-window.d.ts +64 -10
  187. package/dist/src/spi/history-window.d.ts.map +1 -1
  188. package/dist/src/spi/model-provider.d.ts +18 -0
  189. package/dist/src/spi/model-provider.d.ts.map +1 -1
  190. package/dist/src/spi/processors.d.ts +161 -0
  191. package/dist/src/spi/processors.d.ts.map +1 -0
  192. package/dist/src/spi/processors.js +57 -0
  193. package/dist/src/spi/processors.js.map +1 -0
  194. package/dist/src/spi/token-stream-sink.d.ts +43 -0
  195. package/dist/src/spi/token-stream-sink.d.ts.map +1 -1
  196. package/dist/src/spi/token-stream-sink.js +17 -1
  197. package/dist/src/spi/token-stream-sink.js.map +1 -1
  198. package/dist/src/sse.d.ts +5 -2
  199. package/dist/src/sse.d.ts.map +1 -1
  200. package/dist/src/sse.js +11 -2
  201. package/dist/src/sse.js.map +1 -1
  202. package/dist/src/stores/lucid-governance-queries.d.ts +5 -2
  203. package/dist/src/stores/lucid-governance-queries.d.ts.map +1 -1
  204. package/dist/src/stores/lucid-governance-queries.js +14 -5
  205. package/dist/src/stores/lucid-governance-queries.js.map +1 -1
  206. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  207. package/dist/src/stores/lucid-schema.js +15 -0
  208. package/dist/src/stores/lucid-schema.js.map +1 -1
  209. package/dist/src/stores/lucid.d.ts +11 -3
  210. package/dist/src/stores/lucid.d.ts.map +1 -1
  211. package/dist/src/stores/lucid.js +65 -0
  212. package/dist/src/stores/lucid.js.map +1 -1
  213. package/dist/src/structured-output.d.ts +57 -0
  214. package/dist/src/structured-output.d.ts.map +1 -0
  215. package/dist/src/structured-output.js +80 -0
  216. package/dist/src/structured-output.js.map +1 -0
  217. package/dist/src/telescope/agent-governance-providers.js +2 -2
  218. package/dist/src/telescope/agent-governance-providers.js.map +1 -1
  219. package/dist/src/testing/fake-model-provider.d.ts +8 -4
  220. package/dist/src/testing/fake-model-provider.d.ts.map +1 -1
  221. package/dist/src/testing/fake-model-provider.js +6 -9
  222. package/dist/src/testing/fake-model-provider.js.map +1 -1
  223. package/dist/src/testing/in-memory-governance-queries.d.ts.map +1 -1
  224. package/dist/src/testing/in-memory-governance-queries.js +8 -3
  225. package/dist/src/testing/in-memory-governance-queries.js.map +1 -1
  226. package/dist/src/testing/in-memory-store.d.ts +4 -3
  227. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  228. package/dist/src/testing/in-memory-store.js +13 -7
  229. package/dist/src/testing/in-memory-store.js.map +1 -1
  230. package/dist/src/testing/index.d.ts +1 -1
  231. package/dist/src/testing/index.d.ts.map +1 -1
  232. package/dist/src/testing/index.js.map +1 -1
  233. package/dist/src/tool-registry.d.ts +9 -0
  234. package/dist/src/tool-registry.d.ts.map +1 -1
  235. package/dist/src/tool-registry.js +11 -0
  236. package/dist/src/tool-registry.js.map +1 -1
  237. package/dist/src/types.d.ts +55 -2
  238. package/dist/src/types.d.ts.map +1 -1
  239. package/package.json +20 -10
  240. package/skills/agent-personas-agents/SKILL.md +16 -12
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Running the processor chains, and the stream buffering an output gate requires. See
3
+ * `./spi/processors.ts` for the seams themselves and the boundary against `HistoryWindow`.
4
+ */
5
+ import { DEFAULT_INCREMENTAL_LOOKBACK_CHARS, ProcessorFailedError, } from './spi/processors.js';
6
+ export function createFrameBuffer() {
7
+ const frames = [];
8
+ return {
9
+ writer: {
10
+ write: (frame) => {
11
+ frames.push(frame);
12
+ },
13
+ end: () => { },
14
+ },
15
+ frames: () => frames,
16
+ };
17
+ }
18
+ /**
19
+ * The frames a passed gate releases to the live stream: the held ones, with every text frame
20
+ * collapsed into ONE carrying `text` — the answer as the chain left it, which is the only version
21
+ * anything downstream is allowed to see. The substitution happens in place, so the answer keeps its
22
+ * position relative to any non-text frame the provider interleaved with it.
23
+ */
24
+ export function releaseGatedFrames(args) {
25
+ const { frames, text } = args;
26
+ const released = [];
27
+ let emitted = false;
28
+ for (const frame of frames) {
29
+ if (frame.t === 'text') {
30
+ if (!emitted && text.length > 0) {
31
+ released.push({ t: 'text', v: text });
32
+ emitted = true;
33
+ }
34
+ continue;
35
+ }
36
+ released.push(frame);
37
+ }
38
+ if (!emitted && text.length > 0) {
39
+ released.push({ t: 'text', v: text });
40
+ }
41
+ return released;
42
+ }
43
+ /**
44
+ * Fold the prompt through each processor in order, every one seeing what the previous one produced.
45
+ * A throw is wrapped so it cannot read as the model call failing — see {@link ProcessorFailedError}.
46
+ */
47
+ export async function runInputProcessors(args) {
48
+ let current = args.prompt;
49
+ for (const processor of args.processors) {
50
+ try {
51
+ current = await processor.process(current, args.ctx);
52
+ }
53
+ catch (error) {
54
+ throw new ProcessorFailedError('input', processor.name, error);
55
+ }
56
+ }
57
+ return current;
58
+ }
59
+ /**
60
+ * Fold the answer through each processor in order. The FIRST rejection ends the chain: a later
61
+ * processor has nothing to add about text that is never going anywhere, and running it would bill a
62
+ * moderation call for a turn already refused.
63
+ */
64
+ export async function runOutputProcessors(args) {
65
+ const { processors, answer, ctx } = args;
66
+ let text = answer.text;
67
+ for (const processor of processors) {
68
+ let verdict;
69
+ try {
70
+ verdict = await processor.process({ text, toolCalls: answer.toolCalls }, ctx);
71
+ }
72
+ catch (error) {
73
+ throw new ProcessorFailedError('output', processor.name, error);
74
+ }
75
+ if (verdict.action === 'reject') {
76
+ return { text, rejection: { processor: processor.name, reason: verdict.reason } };
77
+ }
78
+ if (verdict.action === 'replace') {
79
+ text = verdict.text;
80
+ }
81
+ }
82
+ return { text };
83
+ }
84
+ /**
85
+ * ALL or nothing: one undeclared processor puts the whole chain on the whole-answer path. Its author
86
+ * wrote `process` against the complete text, and a chain that ran it on a prefix because a neighbour
87
+ * opted in would be handing it an input it never agreed to read.
88
+ */
89
+ export function resolveOutputGateMode(processors) {
90
+ if (processors.length === 0) {
91
+ return 'off';
92
+ }
93
+ return processors.every((processor) => processor.incremental !== undefined)
94
+ ? 'incremental'
95
+ : 'whole';
96
+ }
97
+ /**
98
+ * The chain's window is the WIDEST any member asked for: a release safe for the shortest-sighted
99
+ * processor is not safe for the one that matches longer patterns, and the gate makes one release
100
+ * decision for all of them.
101
+ *
102
+ * An undeclared processor contributes nothing rather than the default — it has no window, because a
103
+ * chain containing one never reaches the incremental path at all.
104
+ */
105
+ export function resolveGateLookback(processors) {
106
+ let lookback = 0;
107
+ for (const processor of processors) {
108
+ if (processor.incremental !== undefined) {
109
+ lookback = Math.max(lookback, processor.incremental.lookbackChars ?? DEFAULT_INCREMENTAL_LOOKBACK_CHARS);
110
+ }
111
+ }
112
+ return lookback;
113
+ }
114
+ /**
115
+ * Releases a model call's answer to `writer` as it arrives, holding back the last `lookbackChars`
116
+ * characters of what the chain produces so a processor can still change them.
117
+ *
118
+ * The chain runs over the whole PREFIX accumulated so far rather than over each new frame, so a
119
+ * processor always sees well-formed text and never has to reassemble a pattern split across frames —
120
+ * which is what makes {@link import('./spi/processors.js').IncrementalGating}'s promise a claim
121
+ * about prefixes. It runs once per streamed text frame.
122
+ *
123
+ * Only an EXTENSION of what the reader already has is ever written: a chain whose output stops
124
+ * agreeing with its earlier output has broken its promise, and the loop's whole-answer pass reports
125
+ * that rather than this gate papering over it by re-sending a different answer.
126
+ *
127
+ * Frames that are not text are forwarded live, in arrival order — they are not the answer, so the
128
+ * gate does not own them.
129
+ */
130
+ export function createIncrementalGate(args) {
131
+ const { processors, ctx, lookbackChars, writer } = args;
132
+ let raw = '';
133
+ let released = '';
134
+ let rejection;
135
+ /** A prefix the chain could not rule on. Text stops flowing; the whole-answer pass decides. */
136
+ let stalled = false;
137
+ // The model is free to write without awaiting, and a verdict is asynchronous — serialize, or two
138
+ // prefixes race and the reader gets the answer out of order.
139
+ let queue = Promise.resolve();
140
+ async function advance() {
141
+ if (raw.length === 0) {
142
+ return;
143
+ }
144
+ let settled;
145
+ try {
146
+ settled = await runOutputProcessors({
147
+ processors,
148
+ answer: { text: raw, toolCalls: [] },
149
+ ctx,
150
+ });
151
+ }
152
+ catch {
153
+ // Swallowed HERE only: a prefix pass is an early release, not the verdict. The whole-answer
154
+ // pass runs the same chain and surfaces the failure with the processor's name on it.
155
+ stalled = true;
156
+ return;
157
+ }
158
+ if (settled.rejection !== undefined) {
159
+ rejection = settled.rejection;
160
+ return;
161
+ }
162
+ // The window is trimmed off the chain's OUTPUT, not off the text fed to it: a processor that
163
+ // only saw `raw` minus a tail could not match a pattern straddling that cut, and would release
164
+ // the very text it exists to rewrite.
165
+ const candidate = settled.text.slice(0, Math.max(0, settled.text.length - lookbackChars));
166
+ if (candidate.length <= released.length || !candidate.startsWith(released)) {
167
+ return;
168
+ }
169
+ const delta = candidate.slice(released.length);
170
+ released = candidate;
171
+ await writer.write({ t: 'text', v: delta });
172
+ }
173
+ async function handle(frame) {
174
+ if (rejection !== undefined) {
175
+ return;
176
+ }
177
+ if (frame.t === 'text') {
178
+ raw += frame.v;
179
+ if (!stalled) {
180
+ await advance();
181
+ }
182
+ return;
183
+ }
184
+ await writer.write(frame);
185
+ }
186
+ return {
187
+ writer: {
188
+ write: (frame) => {
189
+ queue = queue.then(() => handle(frame));
190
+ return queue;
191
+ },
192
+ end: () => { },
193
+ },
194
+ settled: () => queue,
195
+ released: () => released,
196
+ rejection: () => rejection,
197
+ };
198
+ }
199
+ /**
200
+ * The tail an incremental gate still owes the reader once the whole-answer pass has settled: the
201
+ * authoritative text minus the prefix already released.
202
+ *
203
+ * Throws when the settled answer is not an extension of that prefix. That check is the reason the
204
+ * final pass stays authoritative for both the stream and the store rather than the stream being
205
+ * stitched together from per-prefix results: agreement between what was streamed and what was stored
206
+ * becomes structural instead of assumed.
207
+ */
208
+ export function gateTail(args) {
209
+ const { processors, released, text } = args;
210
+ if (!text.startsWith(released)) {
211
+ throw new ProcessorFailedError('output', processors.map((processor) => processor.name).join(' → '), new Error(`the gated answer is not an extension of the ${released.length} characters this chain already released — a processor that declares "incremental" promises its result on a prefix stays a prefix of its result on the whole answer, outside the last lookbackChars`));
212
+ }
213
+ return text.slice(released.length);
214
+ }
215
+ //# sourceMappingURL=processors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processors.js","sourceRoot":"","sources":["../../src/processors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { CursorPage } from '../pagination.js';
1
2
  import type { EmbeddingProvider } from '../spi/embedding-provider.js';
2
3
  import type { Passage } from '../spi/retriever.js';
3
4
  import { EmbeddingRetriever } from './embedding-retriever.js';
@@ -271,10 +272,17 @@ export declare class QdrantStore implements VectorStore {
271
272
  * the expensive recount and can cost tens of seconds per call on a corpus of hundreds of
272
273
  * thousands of points — which for a panel that fans out into a dozen facets is the difference
273
274
  * between a page load and a hang. It stays opt-in for reconciliation-shaped uses.
275
+ *
276
+ * `first` is the number of distinct values to return (default 200) — spelled as in
277
+ * {@link import('../pagination.js').CursorParams} so page sizes are named the same thing across the
278
+ * ecosystem. It is deliberately NOT a {@link import('../pagination.js').CursorPage}: Qdrant's facet
279
+ * endpoint returns the top-`first` values in one shot and hands back **no continuation token**, so a
280
+ * page envelope here would advertise a `nextCursor` that could only ever be `null`. Faceting is a
281
+ * capped aggregate; {@link QdrantStore.scrollChunks} is the paginated surface.
274
282
  */
275
283
  facetValues(field: string, options?: {
276
284
  filter?: QdrantFilter;
277
- limit?: number;
285
+ first?: number;
278
286
  exact?: boolean;
279
287
  }): Promise<FacetHit[]>;
280
288
  /**
@@ -291,20 +299,54 @@ export declare class QdrantStore implements VectorStore {
291
299
  /**
292
300
  * OPTIONAL capability. Enumerate chunk PAYLOADS matching a RAW {@link QdrantFilter} — the
293
301
  * read side of the same server-side narrowing {@link QdrantStore.facetValues} counts. Vectors
294
- * never cross the wire; `payloadKeys` narrows the transfer further. Paginates the scroll
295
- * cursor to exhaustion (guarded by `maxPages`, default the package-wide scroll ceiling).
302
+ * never cross the wire; `payloadKeys` narrows the transfer further.
296
303
  *
297
304
  * Unlike {@link VectorStore.listDocuments} this is per CHUNK (not collapsed per document) and
298
305
  * speaks the raw filter language — it exists for inspection/deletion panels, where the caller
299
306
  * knows the exact payload shape it stored.
307
+ *
308
+ * **Cursor-paginated**, in the ecosystem's forward-only interface (see
309
+ * {@link import('../pagination.js').CursorParams}): `{ after, first }` in, a
310
+ * {@link import('../pagination.js').CursorPage} out. ONE round trip per call — `first` (default
311
+ * 256) is the Qdrant scroll `limit`, and `nextCursor` wraps Qdrant's own opaque
312
+ * `next_page_offset`. Qdrant's scroll only ever resumes *forward* from that offset, so
313
+ * `prevCursor` is always `null` and `hasPrev` always `false`.
314
+ *
315
+ * The cursor is OPAQUE — {@link encodeScrollCursor} base64url's the raw offset precisely so
316
+ * callers cannot come to depend on it being a Qdrant point id. Hand it back verbatim.
317
+ *
318
+ * To drain the whole match, loop while `hasNext`:
319
+ *
320
+ * ```ts
321
+ * const all: Record<string, unknown>[] = [];
322
+ * let after: string | undefined;
323
+ * do {
324
+ * const page = await store.scrollChunks({ filter, ...(after ? { after } : {}) });
325
+ * all.push(...page.items);
326
+ * after = page.nextCursor ?? undefined;
327
+ * } while (after !== undefined);
328
+ * ```
300
329
  */
301
330
  scrollChunks(options?: {
302
331
  filter?: QdrantFilter;
303
332
  payloadKeys?: string[];
304
- pageSize?: number;
305
- maxPages?: number;
306
- }): Promise<Record<string, unknown>[]>;
333
+ after?: string;
334
+ first?: number;
335
+ }): Promise<CursorPage<Record<string, unknown>>>;
307
336
  }
337
+ /**
338
+ * Wrap Qdrant's `next_page_offset` (a point id — string, number or UUID, the server's business) in an
339
+ * opaque, URL-safe cursor: base64url of its JSON. Mirrors how `@adonis-agora/filter` encodes its
340
+ * keyset cursors, and for the same reason — a cursor a caller can read is a cursor a caller will
341
+ * eventually construct.
342
+ */
343
+ export declare function encodeScrollCursor(offset: unknown): string;
344
+ /**
345
+ * Unwrap a cursor produced by {@link encodeScrollCursor}. Throws on a malformed one rather than
346
+ * silently restarting from the first page: a scroll that quietly rewinds re-emits chunks a
347
+ * deletion panel already processed, which is worse than a loud failure.
348
+ */
349
+ export declare function decodeScrollCursor(cursor: string): unknown;
308
350
  /** A {@link import('../spi/retriever.js').Retriever} over a {@link QdrantStore}: embeds the query,
309
351
  * then searches Qdrant. Twin of `PgVectorRetriever`. */
310
352
  export declare class QdrantRetriever extends EmbeddingRetriever {
@@ -1 +1 @@
1
- {"version":3,"file":"qdrant-store.d.ts","sourceRoot":"","sources":["../../../src/rag/qdrant-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAS3B,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;AAGrD,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;CACxE;AACD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AACD,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAC/D,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;QAAE,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACtD,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,WAAW,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,OAAO,CAAC;QACtB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAC/E,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,+EAA+E;QAC/E,YAAY,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;QACjC,WAAW,EAAE,OAAO,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GACA,OAAO,CAAC;QAAE,MAAM,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5F;;;;;;;;OAQG;IACH,UAAU,CAAC,CACT,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GACA,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB;;;;;OAKG;IACH,KAAK,CAAC,CACJ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,CACJ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5E,OAAO,CAAC;QAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC,CAAC;IACjC;;;;OAIG;IACH,kBAAkB,CAAC,CACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE;YAAE,IAAI,EAAE,SAAS,CAAA;SAAE,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9E,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,kGAAkG;AAClG,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,YAAY,GAAG,SAAS,CAO1B;AASD,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASxD;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,WAAW;IAO3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,YACmB,MAAM,EAAE,gBAAgB,EACzC,OAAO,GAAE,kBAAuB,EAMjC;IAED,wFAAwF;IAClF,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtC;IAEK,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBnD;IAEK,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAuClF;IACK,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9C;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAyD9E;IAED;;;;;;OAMG;IACG,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BzE;IAED;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlE;IAEK,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAoChF;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACnE,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6BrB;IAED;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAYvF;IAED;;;;;;;;;OASG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAsBrC;CACF;AAED;yDACyD;AACzD,qBAAa,eAAgB,SAAQ,kBAAkB;IAErD,YAAY,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAE1D;CACF"}
1
+ {"version":3,"file":"qdrant-store.d.ts","sourceRoot":"","sources":["../../../src/rag/qdrant-store.ts"],"names":[],"mappings":"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"}
@@ -330,6 +330,13 @@ export class QdrantStore {
330
330
  * the expensive recount and can cost tens of seconds per call on a corpus of hundreds of
331
331
  * thousands of points — which for a panel that fans out into a dozen facets is the difference
332
332
  * between a page load and a hang. It stays opt-in for reconciliation-shaped uses.
333
+ *
334
+ * `first` is the number of distinct values to return (default 200) — spelled as in
335
+ * {@link import('../pagination.js').CursorParams} so page sizes are named the same thing across the
336
+ * ecosystem. It is deliberately NOT a {@link import('../pagination.js').CursorPage}: Qdrant's facet
337
+ * endpoint returns the top-`first` values in one shot and hands back **no continuation token**, so a
338
+ * page envelope here would advertise a `nextCursor` that could only ever be `null`. Faceting is a
339
+ * capped aggregate; {@link QdrantStore.scrollChunks} is the paginated surface.
333
340
  */
334
341
  async facetValues(field, options) {
335
342
  const facet = this.client.facet?.bind(this.client);
@@ -339,7 +346,7 @@ export class QdrantStore {
339
346
  }
340
347
  const args = {
341
348
  key: field,
342
- limit: options?.limit ?? 200,
349
+ limit: options?.first ?? 200,
343
350
  ...(options?.exact === undefined ? {} : { exact: options.exact }),
344
351
  ...(options?.filter !== undefined ? { filter: options.filter } : {}),
345
352
  };
@@ -382,36 +389,82 @@ export class QdrantStore {
382
389
  /**
383
390
  * OPTIONAL capability. Enumerate chunk PAYLOADS matching a RAW {@link QdrantFilter} — the
384
391
  * read side of the same server-side narrowing {@link QdrantStore.facetValues} counts. Vectors
385
- * never cross the wire; `payloadKeys` narrows the transfer further. Paginates the scroll
386
- * cursor to exhaustion (guarded by `maxPages`, default the package-wide scroll ceiling).
392
+ * never cross the wire; `payloadKeys` narrows the transfer further.
387
393
  *
388
394
  * Unlike {@link VectorStore.listDocuments} this is per CHUNK (not collapsed per document) and
389
395
  * speaks the raw filter language — it exists for inspection/deletion panels, where the caller
390
396
  * knows the exact payload shape it stored.
397
+ *
398
+ * **Cursor-paginated**, in the ecosystem's forward-only interface (see
399
+ * {@link import('../pagination.js').CursorParams}): `{ after, first }` in, a
400
+ * {@link import('../pagination.js').CursorPage} out. ONE round trip per call — `first` (default
401
+ * 256) is the Qdrant scroll `limit`, and `nextCursor` wraps Qdrant's own opaque
402
+ * `next_page_offset`. Qdrant's scroll only ever resumes *forward* from that offset, so
403
+ * `prevCursor` is always `null` and `hasPrev` always `false`.
404
+ *
405
+ * The cursor is OPAQUE — {@link encodeScrollCursor} base64url's the raw offset precisely so
406
+ * callers cannot come to depend on it being a Qdrant point id. Hand it back verbatim.
407
+ *
408
+ * To drain the whole match, loop while `hasNext`:
409
+ *
410
+ * ```ts
411
+ * const all: Record<string, unknown>[] = [];
412
+ * let after: string | undefined;
413
+ * do {
414
+ * const page = await store.scrollChunks({ filter, ...(after ? { after } : {}) });
415
+ * all.push(...page.items);
416
+ * after = page.nextCursor ?? undefined;
417
+ * } while (after !== undefined);
418
+ * ```
391
419
  */
392
420
  async scrollChunks(options) {
393
- const payloads = [];
394
- let offset;
395
- const maxPages = options?.maxPages ?? MAX_SCROLL_PAGES;
396
- for (let pageCount = 0;; pageCount++) {
397
- if (pageCount >= maxPages) {
398
- throw new Error('scrollChunks: scroll exceeded maxPages (the page offset never terminated)');
399
- }
400
- const page = await this.client.scroll(this.collection, {
401
- with_payload: options?.payloadKeys ?? true,
402
- with_vector: false,
403
- limit: options?.pageSize ?? 256,
404
- ...(options?.filter !== undefined ? { filter: options.filter } : {}),
405
- ...(offset !== undefined ? { offset } : {}),
406
- });
407
- for (const point of page.points)
408
- payloads.push(point.payload ?? {});
409
- if (page.next_page_offset === undefined || page.next_page_offset === null)
410
- break;
411
- offset = page.next_page_offset;
412
- }
413
- return payloads;
421
+ const offset = options?.after === undefined ? undefined : decodeScrollCursor(options.after);
422
+ const page = await this.client.scroll(this.collection, {
423
+ with_payload: options?.payloadKeys ?? true,
424
+ with_vector: false,
425
+ limit: options?.first ?? 256,
426
+ ...(options?.filter !== undefined ? { filter: options.filter } : {}),
427
+ ...(offset !== undefined ? { offset } : {}),
428
+ });
429
+ const nextOffset = page.next_page_offset;
430
+ const hasNext = nextOffset !== undefined && nextOffset !== null;
431
+ return {
432
+ items: page.points.map((point) => point.payload ?? {}),
433
+ nextCursor: hasNext ? encodeScrollCursor(nextOffset) : null,
434
+ // Forward-only backend: Qdrant's scroll has no backward token. See `src/pagination.ts`.
435
+ prevCursor: null,
436
+ hasNext,
437
+ hasPrev: false,
438
+ };
439
+ }
440
+ }
441
+ /**
442
+ * Wrap Qdrant's `next_page_offset` (a point id — string, number or UUID, the server's business) in an
443
+ * opaque, URL-safe cursor: base64url of its JSON. Mirrors how `@adonis-agora/filter` encodes its
444
+ * keyset cursors, and for the same reason — a cursor a caller can read is a cursor a caller will
445
+ * eventually construct.
446
+ */
447
+ export function encodeScrollCursor(offset) {
448
+ return Buffer.from(JSON.stringify({ o: offset }), 'utf8').toString('base64url');
449
+ }
450
+ /**
451
+ * Unwrap a cursor produced by {@link encodeScrollCursor}. Throws on a malformed one rather than
452
+ * silently restarting from the first page: a scroll that quietly rewinds re-emits chunks a
453
+ * deletion panel already processed, which is worse than a loud failure.
454
+ */
455
+ export function decodeScrollCursor(cursor) {
456
+ let parsed;
457
+ try {
458
+ parsed = JSON.parse(Buffer.from(cursor, 'base64url').toString('utf8'));
459
+ }
460
+ catch {
461
+ parsed = undefined;
462
+ }
463
+ if (parsed === null || typeof parsed !== 'object' || !('o' in parsed)) {
464
+ throw new Error('scrollChunks: `after` is not a cursor this store issued. Pass back a `nextCursor` from a ' +
465
+ 'previous page verbatim (cursors are opaque), or omit it for the first page.');
414
466
  }
467
+ return parsed.o;
415
468
  }
416
469
  /** A {@link import('../spi/retriever.js').Retriever} over a {@link QdrantStore}: embeds the query,
417
470
  * then searches Qdrant. Twin of `PgVectorRetriever`. */
@@ -1 +1 @@
1
- {"version":3,"file":"qdrant-store.js","sourceRoot":"","sources":["../../../src/rag/qdrant-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qdrant-store.js","sourceRoot":"","sources":["../../../src/rag/qdrant-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Is this the durable runtime refusing a checkpoint position, rather than anything the agent did?
3
+ *
4
+ * Matched by NAME, and by suffix, because `@adonis-agora/durable` raises the same contract under two
5
+ * class names: the in-process engine throws `NonDeterminismError` and the remote replay context
6
+ * throws `WorkflowNondeterminismError`. Same cross-runtime reasoning as the `isControlFlowError`
7
+ * hook, and as `isControlFlowSignal`'s name check, which exist for exactly this reason on the
8
+ * suspend path.
9
+ *
10
+ * Callers must let these through untouched. Every `catch` in a workflow body reacts by writing more
11
+ * checkpoints (a toolfail, a run-end), and on a journal that has already diverged each of those asks
12
+ * for a position the history cannot supply — so the recovery attempt raises its own refusal, and
13
+ * THAT is the error the operator reads: a message pointing at the wrong seq, naming checkpoints from
14
+ * the recovery path rather than the two that actually disagreed.
15
+ */
16
+ export declare function isReplayIntegrityError(error: unknown): boolean;
17
+ //# sourceMappingURL=replay-integrity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-integrity.d.ts","sourceRoot":"","sources":["../../src/replay-integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Is this the durable runtime refusing a checkpoint position, rather than anything the agent did?
3
+ *
4
+ * Matched by NAME, and by suffix, because `@adonis-agora/durable` raises the same contract under two
5
+ * class names: the in-process engine throws `NonDeterminismError` and the remote replay context
6
+ * throws `WorkflowNondeterminismError`. Same cross-runtime reasoning as the `isControlFlowError`
7
+ * hook, and as `isControlFlowSignal`'s name check, which exist for exactly this reason on the
8
+ * suspend path.
9
+ *
10
+ * Callers must let these through untouched. Every `catch` in a workflow body reacts by writing more
11
+ * checkpoints (a toolfail, a run-end), and on a journal that has already diverged each of those asks
12
+ * for a position the history cannot supply — so the recovery attempt raises its own refusal, and
13
+ * THAT is the error the operator reads: a message pointing at the wrong seq, naming checkpoints from
14
+ * the recovery path rather than the two that actually disagreed.
15
+ */
16
+ export function isReplayIntegrityError(error) {
17
+ return error instanceof Error && error.name.toLowerCase().endsWith('nondeterminismerror');
18
+ }
19
+ //# sourceMappingURL=replay-integrity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-integrity.js","sourceRoot":"","sources":["../../src/replay-integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAC5F,CAAC"}
@@ -1,13 +1,20 @@
1
1
  import type { AgentDepsFactory } from '../agent-deps-factory.js';
2
+ import { type HumanReply } from '../elicitation.js';
2
3
  import type { AgentRunner } from '../spi/agent-runner.js';
3
4
  import type { AgentStore } from '../spi/agent-store.js';
4
- import type { AgentRunInput, Decision } from '../types.js';
5
+ import type { AgentRunInput } from '../types.js';
5
6
  /**
6
- * Runs the agent turn in-process — the default runner (`durable: false`). HITL approval resolves a
7
- * pending promise keyed run-namespaced by `${runId}:${toolCallId}`, so one run's decision can never
8
- * satisfy another's pending action. Sub-agent delegation runs a nested loop; a nested sub-agent has
9
- * no human to prompt, so its action tools are auto-declined rather than hang. Single-replica only —
10
- * durable is the scaled path (deferred).
7
+ * Runs the agent turn in-process — the default runner (`durable: false`). A HITL wait resolves a
8
+ * pending promise keyed run-namespaced by `${runId}:${toolCallId}`, so one run's reply can never
9
+ * satisfy another's pending action.
10
+ *
11
+ * Sub-agent delegation runs a nested loop on a transient sub-thread, and that nested run parks on a
12
+ * human exactly as a top-level one does — under its OWN runId, which is what makes it answerable:
13
+ * the pending row it writes carries that runId, and its frames are forwarded into the top-level
14
+ * ancestor's stream (the only stream anyone subscribed to) carrying it too. The mirror of the
15
+ * durable runner's `sinkRunId`.
16
+ *
17
+ * Single-replica only — durable is the scaled path (deferred).
11
18
  */
12
19
  export declare class InlineAgentRunner implements AgentRunner {
13
20
  private readonly factory;
@@ -17,9 +24,28 @@ export declare class InlineAgentRunner implements AgentRunner {
17
24
  start(input: AgentRunInput): Promise<{
18
25
  runId: string;
19
26
  }>;
20
- signal(runId: string, toolCallId: string, decision: Decision): Promise<void>;
27
+ /**
28
+ * Deliver a human's reply to whichever wait this run is parked on.
29
+ *
30
+ * An approval wait takes a {@link Decision} only. Answers addressed there are refused rather than
31
+ * delivered: `approved` is absent on them, and the tool-call row would record a rejection the
32
+ * person never made. The refusal leaves the wait intact, so the approval is still there to make.
33
+ *
34
+ * The other direction IS delivered — a question set parks as a `pending_approval` action, so an
35
+ * operator pressing Approve on it is expected, and the loop reads that as "confirmed the
36
+ * pre-picked answers".
37
+ */
38
+ signal(runId: string, toolCallId: string, reply: HumanReply): Promise<void>;
21
39
  cancel(runId: string): Promise<void>;
22
40
  private topLevelHooks;
41
+ /**
42
+ * The two waits a run parks on, keyed by the run that is parked. Identical for a top-level run and
43
+ * for a delegated one: `signal(runId, …)` finds either, because the pending map belongs to the
44
+ * runner rather than to a run.
45
+ */
46
+ private humanHooks;
47
+ /** Hold a run at `key` until a human's reply arrives through {@link InlineAgentRunner.signal}. */
48
+ private park;
23
49
  /** Delegate to another agent as a nested in-process run (a transient sub-thread). */
24
50
  private runNested;
25
51
  }