@vibes.diy/api-svc 8.1.1 → 8.1.2

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 (109) hide show
  1. package/cf-serve.js +2 -0
  2. package/cf-serve.js.map +1 -1
  3. package/create-handler.d.ts +5 -0
  4. package/create-handler.js +4 -0
  5. package/create-handler.js.map +1 -1
  6. package/index.d.ts +4 -0
  7. package/index.js +4 -0
  8. package/index.js.map +1 -1
  9. package/intern/backend-db-callback.js +10 -3
  10. package/intern/backend-db-callback.js.map +1 -1
  11. package/intern/backend-egress.d.ts +12 -0
  12. package/intern/backend-egress.js +122 -31
  13. package/intern/backend-egress.js.map +1 -1
  14. package/intern/delete-access-gate.js +6 -1
  15. package/intern/delete-access-gate.js.map +1 -1
  16. package/intern/distill-url.d.ts +14 -0
  17. package/intern/distill-url.js +270 -0
  18. package/intern/distill-url.js.map +1 -0
  19. package/intern/ensure-push-seeded-chat.js +1 -0
  20. package/intern/ensure-push-seeded-chat.js.map +1 -1
  21. package/intern/fetch-url-tool.d.ts +38 -0
  22. package/intern/fetch-url-tool.js +299 -0
  23. package/intern/fetch-url-tool.js.map +1 -0
  24. package/intern/first-message-embedding.js +5 -4
  25. package/intern/first-message-embedding.js.map +1 -1
  26. package/intern/llm-tool-loop.d.ts +66 -0
  27. package/intern/llm-tool-loop.js +355 -0
  28. package/intern/llm-tool-loop.js.map +1 -0
  29. package/intern/load-owner-egress-status.d.ts +1 -1
  30. package/intern/load-owner-egress-status.js.map +1 -1
  31. package/intern/load-research-context.d.ts +17 -0
  32. package/intern/load-research-context.js +160 -0
  33. package/intern/load-research-context.js.map +1 -0
  34. package/intern/persist-url-research.d.ts +37 -0
  35. package/intern/persist-url-research.js +249 -0
  36. package/intern/persist-url-research.js.map +1 -0
  37. package/intern/prompt-assembly.d.ts +3 -0
  38. package/intern/prompt-assembly.js +33 -7
  39. package/intern/prompt-assembly.js.map +1 -1
  40. package/intern/provider-sse.d.ts +3 -0
  41. package/intern/provider-sse.js +12 -0
  42. package/intern/provider-sse.js.map +1 -0
  43. package/intern/read-anonymous-seed-docs.js +17 -10
  44. package/intern/read-anonymous-seed-docs.js.map +1 -1
  45. package/intern/recovery.js +5 -1
  46. package/intern/recovery.js.map +1 -1
  47. package/intern/resend-prev-msg.js +5 -4
  48. package/intern/resend-prev-msg.js.map +1 -1
  49. package/intern/turn-url-fetch-budget.d.ts +16 -0
  50. package/intern/turn-url-fetch-budget.js +33 -0
  51. package/intern/turn-url-fetch-budget.js.map +1 -0
  52. package/intern/url-activation.d.ts +8 -0
  53. package/intern/url-activation.js +79 -0
  54. package/intern/url-activation.js.map +1 -0
  55. package/intern/url-research-queue.d.ts +7 -0
  56. package/intern/url-research-queue.js +31 -0
  57. package/intern/url-research-queue.js.map +1 -0
  58. package/intern/url-research.d.ts +112 -0
  59. package/intern/url-research.js +631 -0
  60. package/intern/url-research.js.map +1 -0
  61. package/intern/version-timeline.d.ts +1 -0
  62. package/intern/version-timeline.js +15 -4
  63. package/intern/version-timeline.js.map +1 -1
  64. package/package.json +13 -11
  65. package/public/access-output-decoder.d.ts +12 -0
  66. package/public/access-output-decoder.js +130 -0
  67. package/public/access-output-decoder.js.map +1 -0
  68. package/public/app-documents-read-eventos.js +87 -40
  69. package/public/app-documents-read-eventos.js.map +1 -1
  70. package/public/app-documents-shared.d.ts +11 -4
  71. package/public/app-documents-shared.js +1 -1
  72. package/public/app-documents-shared.js.map +1 -1
  73. package/public/app-documents-write-eventos.js +6 -1
  74. package/public/app-documents-write-eventos.js.map +1 -1
  75. package/public/channel-read-filter.d.ts +11 -5
  76. package/public/channel-read-filter.js +5 -6
  77. package/public/channel-read-filter.js.map +1 -1
  78. package/public/db-acl-resolver.d.ts +9 -3
  79. package/public/db-acl-resolver.js +1 -1
  80. package/public/db-acl-resolver.js.map +1 -1
  81. package/public/files-asset.js +1 -1
  82. package/public/files-asset.js.map +1 -1
  83. package/public/fork-app.js +1 -0
  84. package/public/fork-app.js.map +1 -1
  85. package/public/get-application-chat.js +5 -4
  86. package/public/get-application-chat.js.map +1 -1
  87. package/public/get-chat-details.js +5 -4
  88. package/public/get-chat-details.js.map +1 -1
  89. package/public/get-chat-response.js +5 -4
  90. package/public/get-chat-response.js.map +1 -1
  91. package/public/get-vibe-chips.js +5 -4
  92. package/public/get-vibe-chips.js.map +1 -1
  93. package/public/image-gen.js +2 -1
  94. package/public/image-gen.js.map +1 -1
  95. package/public/img-doc-write.js +1 -1
  96. package/public/img-doc-write.js.map +1 -1
  97. package/public/inherit-read-resolver.d.ts +2 -7
  98. package/public/inherit-read-resolver.js +27 -65
  99. package/public/inherit-read-resolver.js.map +1 -1
  100. package/public/llm-dispatch.d.ts +10 -3
  101. package/public/llm-dispatch.js +97 -13
  102. package/public/llm-dispatch.js.map +1 -1
  103. package/public/prompt-chat-section.js +23 -8
  104. package/public/prompt-chat-section.js.map +1 -1
  105. package/public/stream-assembly.d.ts +4 -2
  106. package/public/stream-assembly.js +12 -8
  107. package/public/stream-assembly.js.map +1 -1
  108. package/types.d.ts +5 -0
  109. package/types.js.map +1 -1
@@ -0,0 +1,299 @@
1
+ import { Result, exception2Result } from "@adviser/cement";
2
+ import { CorsVerdictCache } from "./egress-cors.js";
3
+ import { attemptBackendEgressWithOutcome, isBackendEgressBodyTooLarge, isBackendEgressSyntheticError, } from "./backend-egress.js";
4
+ import { EgressRateWindow } from "./egress-rate.js";
5
+ import { activateUrlCandidates } from "./url-activation.js";
6
+ import { boundToolText, distillUrlResponse } from "./distill-url.js";
7
+ import { MAX_TOOL_RESULT_CHARS } from "./llm-tool-loop.js";
8
+ export const FETCH_URL_TOOL_NAME = "fetch_url";
9
+ export const FETCH_URL_TIMEOUT_MS = 8_000;
10
+ export const FETCH_URL_RESPONSE_CAP_BYTES = 1 * 1024 * 1024;
11
+ export function createFetchUrlTool(context) {
12
+ const activated = [...context.activatedUrls];
13
+ const definition = {
14
+ type: "function",
15
+ function: {
16
+ name: FETCH_URL_TOOL_NAME,
17
+ description: "Fetch one of the HTTPS URLs activated in the user's current request.",
18
+ parameters: {
19
+ type: "object",
20
+ properties: { url: { type: "string", enum: activated } },
21
+ required: ["url"],
22
+ additionalProperties: false,
23
+ },
24
+ },
25
+ };
26
+ const rate = context.rate ?? new EgressRateWindow();
27
+ const corsCache = context.corsCache ?? new CorsVerdictCache();
28
+ const executor = createFetchUrlToolExecutor({ ...context, activatedUrls: activated, rate, corsCache }, { fetchBudget: context.fetchBudget, ownerLane: context.ownerLane });
29
+ return { definition, executor };
30
+ }
31
+ export function createFetchUrlToolExecutor(context, options = {}) {
32
+ const activated = [...context.activatedUrls];
33
+ const rate = context.rate ?? new EgressRateWindow();
34
+ const corsCache = context.corsCache ?? new CorsVerdictCache();
35
+ const fetchBudget = options.fetchBudget ?? context.fetchBudget;
36
+ const ownerLane = options.ownerLane ?? context.ownerLane ?? "main";
37
+ const executor = async ({ call, signal }) => {
38
+ if (call.name !== FETCH_URL_TOOL_NAME)
39
+ return Result.Ok(failure({ url: "", backendFetchable: false, code: "invalid_url", message: "Invalid URL request." }));
40
+ const args = exception2Result(() => JSON.parse(call.arguments));
41
+ if (args.isErr() || args.Ok() === null || typeof args.Ok() !== "object" || Array.isArray(args.Ok())) {
42
+ return Result.Ok(failure({ url: "", backendFetchable: false, code: "invalid_url", message: "Invalid URL request." }));
43
+ }
44
+ const parsedArgs = args.Ok();
45
+ if (Object.keys(parsedArgs).some((key) => key !== "url")) {
46
+ return Result.Ok(failure({ url: "", backendFetchable: false, code: "invalid_url", message: "Invalid URL request." }));
47
+ }
48
+ const rawUrl = parsedArgs.url;
49
+ if (typeof rawUrl !== "string") {
50
+ return Result.Ok(failure({ url: "", backendFetchable: false, code: "invalid_url", message: "Invalid URL request." }));
51
+ }
52
+ const canonical = activateUrlCandidates({ currentUserText: rawUrl })[0];
53
+ if (canonical === undefined) {
54
+ return Result.Ok(failure({
55
+ url: rawUrl.slice(0, 2_048),
56
+ backendFetchable: false,
57
+ code: "invalid_url",
58
+ message: "Only an activated public HTTPS URL can be fetched.",
59
+ }));
60
+ }
61
+ if (activated.includes(canonical) === false) {
62
+ return Result.Ok(failure({
63
+ url: canonical,
64
+ backendFetchable: false,
65
+ code: "not_activated",
66
+ message: "That URL was not activated by the current request.",
67
+ }));
68
+ }
69
+ const preflightSignal = combineSignals([context.parentSignal, signal]);
70
+ if (preflightSignal.aborted) {
71
+ return Result.Ok(failure({ url: canonical, backendFetchable: false, code: "aborted", message: "The request was aborted." }));
72
+ }
73
+ if (fetchBudget !== undefined && fetchBudget.reserve(ownerLane) === false) {
74
+ return Result.Ok(failure({
75
+ url: canonical,
76
+ backendFetchable: false,
77
+ code: "limit_exceeded",
78
+ message: "The URL fetch limit was reached.",
79
+ }));
80
+ }
81
+ const reserveUrlFetches = context.reserveUrlFetches;
82
+ if (reserveUrlFetches === undefined) {
83
+ return Result.Ok(failure({ url: canonical, backendFetchable: false, code: "fetch_failed", message: "URL reservation is unavailable." }));
84
+ }
85
+ const reservation = await exception2Result(() => reserveUrlFetches(context.userId, context.chatId, 1));
86
+ if (reservation.isErr()) {
87
+ const code = String(reservation.Err()).includes("429") ? "limit_exceeded" : "fetch_failed";
88
+ return Result.Ok(failure({
89
+ url: canonical,
90
+ backendFetchable: false,
91
+ code,
92
+ message: code === "limit_exceeded" ? "The URL fetch limit was reached." : "URL reservation failed.",
93
+ }));
94
+ }
95
+ const deadlineMs = context.deadlineMs ?? FETCH_URL_TIMEOUT_MS;
96
+ const deadlineSignal = AbortSignal.timeout(deadlineMs);
97
+ const requestSignal = combineSignals([context.parentSignal, signal, deadlineSignal]);
98
+ const request = new Request(canonical, {
99
+ method: "GET",
100
+ headers: { accept: "text/html, application/xhtml+xml, text/plain, application/json, text/csv" },
101
+ redirect: "manual",
102
+ signal: requestSignal,
103
+ });
104
+ const egressInput = {
105
+ request,
106
+ ownerHandle: context.ownerHandle,
107
+ appSlug: context.appSlug,
108
+ vibeOrigin: context.vibeOrigin,
109
+ ownerStatus: context.ownerStatus,
110
+ rate,
111
+ corsCache,
112
+ timeoutMs: deadlineMs,
113
+ responseCapBytes: FETCH_URL_RESPONSE_CAP_BYTES,
114
+ signal: requestSignal,
115
+ now: context.now,
116
+ fetcher: context.fetcher === undefined
117
+ ? undefined
118
+ : (outbound) => fetchWithSignal(context.fetcher, outbound, requestSignal),
119
+ };
120
+ const outcomeResult = await exception2Result(() => attemptBackendEgressWithOutcome(egressInput));
121
+ if (outcomeResult.isErr()) {
122
+ if (context.parentSignal?.aborted || signal.aborted) {
123
+ const code = context.parentSignal?.aborted ? "aborted" : toolAbortCode(signal);
124
+ return Result.Ok(failure({ url: canonical, backendFetchable: false, code, message: messageForAbort(code) }));
125
+ }
126
+ if (deadlineSignal.aborted) {
127
+ return Result.Ok(failure({ url: canonical, backendFetchable: true, code: "timeout", message: "The URL fetch timed out." }));
128
+ }
129
+ return Result.Ok(failure({ url: canonical, backendFetchable: true, code: "fetch_failed", message: "The URL fetch failed." }));
130
+ }
131
+ const outcome = outcomeResult.Ok();
132
+ if (context.parentSignal?.aborted)
133
+ await cancelResponseBody(outcome.response, "URL fetch parent request aborted");
134
+ if (context.parentSignal?.aborted)
135
+ return Result.Ok(failure({ url: canonical, backendFetchable: false, code: "aborted", message: "The request was aborted." }));
136
+ if (deadlineSignal.aborted)
137
+ await cancelResponseBody(outcome.response, "URL fetch deadline exceeded");
138
+ if (deadlineSignal.aborted)
139
+ return Result.Ok(failure({ url: canonical, backendFetchable: outcome.policyAdmitted, code: "timeout", message: "The URL fetch timed out." }));
140
+ if (signal.aborted) {
141
+ await cancelResponseBody(outcome.response, "URL fetch tool request aborted");
142
+ const code = toolAbortCode(signal);
143
+ return Result.Ok(failure({ url: canonical, backendFetchable: outcome.policyAdmitted, code, message: messageForAbort(code) }));
144
+ }
145
+ if (outcome.policyAdmitted === false) {
146
+ await cancelResponseBody(outcome.response, "URL fetch denied by egress policy");
147
+ return Result.Ok(failure({
148
+ url: canonical,
149
+ backendFetchable: false,
150
+ code: "egress_denied",
151
+ message: "The URL was denied by the outbound egress policy.",
152
+ gate: outcome.denialGate,
153
+ }));
154
+ }
155
+ if (isBackendEgressSyntheticError(outcome.response)) {
156
+ return Result.Ok(failure({ url: canonical, backendFetchable: true, code: "fetch_failed", message: "The URL fetch failed." }));
157
+ }
158
+ if (outcome.response.status < 200 || outcome.response.status >= 300) {
159
+ await cancelResponseBody(outcome.response, "URL fetch upstream status was not successful");
160
+ return Result.Ok(failure({
161
+ url: canonical,
162
+ backendFetchable: true,
163
+ code: "upstream_http",
164
+ message: "The upstream returned a non-success status.",
165
+ }));
166
+ }
167
+ const distilledResult = await exception2Result(() => distillUrlResponse(outcome.response, canonical, requestSignal));
168
+ if (distilledResult.isErr()) {
169
+ if (context.parentSignal?.aborted) {
170
+ return Result.Ok(failure({ url: canonical, backendFetchable: true, code: "aborted", message: "The request was aborted." }));
171
+ }
172
+ if (signal.aborted) {
173
+ const code = toolAbortCode(signal);
174
+ return Result.Ok(failure({ url: canonical, backendFetchable: true, code, message: messageForAbort(code) }));
175
+ }
176
+ if (deadlineSignal.aborted) {
177
+ return Result.Ok(failure({ url: canonical, backendFetchable: true, code: "timeout", message: "The URL fetch timed out." }));
178
+ }
179
+ const code = isBackendEgressBodyTooLarge(outcome.response)
180
+ ? "body_too_large"
181
+ : mapDistillFailure(String(distilledResult.Err()));
182
+ return Result.Ok(failure({ url: canonical, backendFetchable: true, code, message: messageFor(code) }));
183
+ }
184
+ const distilled = distilledResult.Ok();
185
+ const finalUrl = (outcome.finalUrl ?? outcome.response.url) || canonical;
186
+ const bounded = boundToolText(distilled.text);
187
+ return Result.Ok(serialize({
188
+ ok: true,
189
+ url: canonical,
190
+ finalUrl,
191
+ contentType: distilled.contentType,
192
+ status: outcome.response.status,
193
+ backendFetchable: true,
194
+ upstreamOk: true,
195
+ truncated: distilled.truncated || bounded.truncated,
196
+ text: bounded.text,
197
+ }));
198
+ };
199
+ return executor;
200
+ }
201
+ function combineSignals(signals) {
202
+ const active = signals.filter((item) => item !== undefined);
203
+ if (active.length === 1 && active[0] !== undefined)
204
+ return active[0];
205
+ return AbortSignal.any(active);
206
+ }
207
+ async function cancelResponseBody(response, reason) {
208
+ if (response.body === null)
209
+ return;
210
+ await exception2Result(() => response.body?.cancel(reason));
211
+ }
212
+ function fetchWithSignal(fetcher, request, signal) {
213
+ if (signal.aborted)
214
+ return Promise.reject(new Error("aborted"));
215
+ return new Promise((resolve, reject) => {
216
+ let settled = false;
217
+ const onAbort = () => {
218
+ if (settled)
219
+ return;
220
+ settled = true;
221
+ signal.removeEventListener("abort", onAbort);
222
+ reject(new Error("aborted"));
223
+ };
224
+ signal.addEventListener("abort", onAbort, { once: true });
225
+ void fetcher(request).then((response) => {
226
+ signal.removeEventListener("abort", onAbort);
227
+ if (settled || signal.aborted) {
228
+ void cancelResponseBody(response, "URL fetch request aborted before response delivery");
229
+ return;
230
+ }
231
+ settled = true;
232
+ resolve(response);
233
+ }, (error) => {
234
+ signal.removeEventListener("abort", onAbort);
235
+ if (settled)
236
+ return;
237
+ settled = true;
238
+ reject(error);
239
+ });
240
+ });
241
+ }
242
+ function mapDistillFailure(error) {
243
+ if (error === "body_too_large")
244
+ return "body_too_large";
245
+ if (error === "unsupported_content_type")
246
+ return "unsupported_content_type";
247
+ if (error === "invalid_content")
248
+ return "invalid_content";
249
+ return "distill_failed";
250
+ }
251
+ function messageFor(code) {
252
+ switch (code) {
253
+ case "body_too_large":
254
+ return "The upstream response was too large.";
255
+ case "unsupported_content_type":
256
+ return "The upstream content type is not supported.";
257
+ case "invalid_content":
258
+ return "The upstream content could not be parsed safely.";
259
+ case "distill_failed":
260
+ return "The upstream content could not be distilled.";
261
+ }
262
+ }
263
+ function toolAbortCode(signal) {
264
+ return signal.reason === "tool-deadline" ? "deadline_exceeded" : "aborted";
265
+ }
266
+ function messageForAbort(code) {
267
+ return code === "deadline_exceeded" ? "The URL fetch deadline was exceeded." : "The request was aborted.";
268
+ }
269
+ function failure(input) {
270
+ return serialize({ ok: false, ...input });
271
+ }
272
+ function serialize(value) {
273
+ const json = JSON.stringify(value);
274
+ if (json.length <= MAX_TOOL_RESULT_CHARS)
275
+ return json;
276
+ const text = typeof value.text === "string" ? value.text : "";
277
+ const base = { ...value, text: "", truncated: true };
278
+ const baseLength = JSON.stringify(base).length;
279
+ let low = 0;
280
+ let high = text.length;
281
+ while (low < high) {
282
+ const middle = Math.ceil((low + high) / 2);
283
+ const candidate = JSON.stringify({ ...base, text: text.slice(0, middle) });
284
+ if (candidate.length <= MAX_TOOL_RESULT_CHARS)
285
+ low = middle;
286
+ else
287
+ high = middle - 1;
288
+ }
289
+ if (baseLength > MAX_TOOL_RESULT_CHARS)
290
+ return JSON.stringify({
291
+ ok: false,
292
+ url: "",
293
+ backendFetchable: false,
294
+ code: "distill_failed",
295
+ message: "The result could not be bounded.",
296
+ });
297
+ return JSON.stringify({ ...base, text: text.slice(0, low) });
298
+ }
299
+ //# sourceMappingURL=fetch-url-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-url-tool.js","sourceRoot":"","sources":["../../jsr/intern/fetch-url-tool.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { exception2Result, Result, stream2uint8array } from "@adviser/cement";
2
2
  import { bytesToHex, utf8ToBytes } from "@noble/hashes/utils.js";
3
3
  import { sha256 } from "@noble/hashes/sha2.js";
4
- import { and, desc, eq } from "drizzle-orm/sql/expressions";
5
- import { fileSystemItem, firstMessageProse, isFetchErrResult, isFetchNotFoundResult, parseArray, parseArrayWarning, PromptAndBlockMsgs, } from "@vibes.diy/api-types";
4
+ import { and, desc, eq, ne } from "drizzle-orm/sql/expressions";
5
+ import { fileSystemItem, firstMessageProse, isFetchErrResult, isFetchNotFoundResult, parseArray, parseArrayWarning, PromptAndBlockMsgs, isPromptResearch, RESEARCH_BLOCK_SEQ, } from "@vibes.diy/api-types";
6
6
  import { createSQLPeer } from "@vibes.diy/api-sql";
7
7
  import { ensureStorage } from "@vibes.diy/api-pkg";
8
8
  import { createS3Peer } from "../peers/s3.js";
@@ -82,7 +82,7 @@ export async function loadFirstMessageEmbedText(deps, ownerHandle, appSlug) {
82
82
  .from(tables.chatContexts)
83
83
  .innerJoin(tables.chatSections, eq(tables.chatSections.chatId, tables.chatContexts.chatId))
84
84
  .leftJoin(tables.promptContexts, and(eq(tables.promptContexts.chatId, tables.chatSections.chatId), eq(tables.promptContexts.promptId, tables.chatSections.promptId)))
85
- .where(and(eq(tables.chatContexts.ownerHandle, ownerHandle), eq(tables.chatContexts.appSlug, appSlug)));
85
+ .where(and(eq(tables.chatContexts.ownerHandle, ownerHandle), eq(tables.chatContexts.appSlug, appSlug), ne(tables.chatSections.blockSeq, RESEARCH_BLOCK_SEQ)));
86
86
  const turns = new Map();
87
87
  for (const row of rows) {
88
88
  let turn = turns.get(row.promptId);
@@ -96,7 +96,8 @@ export async function loadFirstMessageEmbedText(deps, ownerHandle, appSlug) {
96
96
  };
97
97
  turns.set(row.promptId, turn);
98
98
  }
99
- const { filtered: blocks } = parseArrayWarning(row.blocks, PromptAndBlockMsgs);
99
+ const { filtered: parsedBlocks } = parseArrayWarning(row.blocks, PromptAndBlockMsgs);
100
+ const blocks = parsedBlocks.filter((block) => !isPromptResearch(block));
100
101
  const section = { blockSeq: row.blockSeq, blocks };
101
102
  turn.sections.push(section);
102
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"first-message-embedding.js","sourceRoot":"","sources":["../../jsr/intern/first-message-embedding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"first-message-embedding.js","sourceRoot":"","sources":["../../jsr/intern/first-message-embedding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { type LLMRequest, type SseStreamMsg } from "@vibes.diy/call-ai-v2";
3
+ export declare const MAX_TOOL_RESULT_CHARS = 8192;
4
+ export declare const MAX_TOOL_CALL_ID_CHARS = 256;
5
+ export declare const MAX_TOOL_CALL_NAME_CHARS = 256;
6
+ export declare const MAX_TOOL_CALL_ARGUMENT_CHARS: number;
7
+ export type LlmToolCallField = "id" | "name" | "arguments";
8
+ export declare class LlmToolLoopError extends Error {
9
+ readonly field: LlmToolCallField;
10
+ readonly limit: number;
11
+ readonly observedLength: number;
12
+ readonly code: "tool-call-field-too-large";
13
+ constructor(field: LlmToolCallField, limit: number, observedLength: number);
14
+ }
15
+ export interface LlmToolLoopBudget {
16
+ readonly deadlineAt: number;
17
+ readonly maxAttempts: number;
18
+ attemptsUsed: number;
19
+ }
20
+ export declare function createLlmToolLoopBudget({ totalBudgetMs, maxAttempts, now, }: {
21
+ readonly totalBudgetMs: number;
22
+ readonly maxAttempts: number;
23
+ readonly now?: () => number;
24
+ }): LlmToolLoopBudget;
25
+ export interface LlmToolCall {
26
+ readonly id: string;
27
+ readonly name: string;
28
+ readonly arguments: string;
29
+ }
30
+ export interface LlmToolExecutorInput {
31
+ readonly call: LlmToolCall;
32
+ readonly signal: AbortSignal;
33
+ }
34
+ export type LlmToolExecutor = (input: LlmToolExecutorInput) => Promise<Result<string>>;
35
+ export interface LlmToolLoopDispatch {
36
+ readonly request: LLMRequest;
37
+ readonly stream: ReadableStream<SseStreamMsg>;
38
+ readonly abort?: AbortController;
39
+ }
40
+ export interface LlmToolLoopDispatchInput {
41
+ readonly request: LLMRequest;
42
+ readonly budget: LlmToolLoopBudget;
43
+ readonly round: number;
44
+ }
45
+ export interface LlmToolLoopArgs {
46
+ readonly request: LLMRequest;
47
+ readonly stream: ReadableStream<SseStreamMsg>;
48
+ readonly abort?: AbortController;
49
+ readonly budget: LlmToolLoopBudget;
50
+ readonly dispatch: (input: LlmToolLoopDispatchInput) => Promise<Result<LlmToolLoopDispatch>>;
51
+ readonly execute: LlmToolExecutor;
52
+ readonly onVisible: (event: SseStreamMsg) => Promise<Result<void>>;
53
+ readonly maxToolRounds?: number;
54
+ readonly maxToolCalls?: number;
55
+ readonly now?: () => number;
56
+ }
57
+ export interface LlmToolLoopResult {
58
+ readonly request: LLMRequest;
59
+ readonly rounds: number;
60
+ readonly calls: number;
61
+ }
62
+ export declare function runLlmToolLoop(args: LlmToolLoopArgs): Promise<Result<LlmToolLoopResult>>;
63
+ export interface LlmToolLoopStreamArgs extends Omit<LlmToolLoopArgs, "onVisible"> {
64
+ readonly onError?: (error: string) => void;
65
+ }
66
+ export declare function createLlmToolLoopStream(args: LlmToolLoopStreamArgs): ReadableStream<SseStreamMsg>;