@burdenoff/fe-libs 2026.815.2 → 2026.815.4
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.
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
import { AssistantMode, AssistantPromptPart, AssistantRawMessage, AssistantSandboxAuthContext, AssistantArtifact, AssistantSessionInfo, DownloadedAssistantArtifact, StreamAccess } from './types';
|
|
2
2
|
export declare function findExistingSandbox(workspaceId: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext): Promise<string | null>;
|
|
3
|
+
/**
|
|
4
|
+
* Does this mode write through the gateway, and therefore need the
|
|
5
|
+
* confirm-before-write gate?
|
|
6
|
+
*
|
|
7
|
+
* Single source of truth: the env builder, the metadata stamped at create time
|
|
8
|
+
* and the reuse check all derive from this, so they cannot drift into a state
|
|
9
|
+
* where a sandbox is write-capable but not gated.
|
|
10
|
+
*/
|
|
11
|
+
export declare function modeRequiresConfirmWrites(mode: AssistantMode): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Environment for an assistant sandbox container.
|
|
14
|
+
*
|
|
15
|
+
* Extracted and exported so the authority coupling below is unit-testable:
|
|
16
|
+
* a mode that can write must arrive with its brake on, and that invariant is
|
|
17
|
+
* too easy to break silently from inside an async network call.
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildAssistantSandboxEnv(product: string, mode: AssistantMode, workspaceId: string, authContext: Pick<AssistantSandboxAuthContext, 'accessToken' | 'workspaceToken'>): Array<{
|
|
20
|
+
name: string;
|
|
21
|
+
value: string;
|
|
22
|
+
}>;
|
|
3
23
|
export declare function createAssistantSandbox(product: string, mode: AssistantMode, workspaceId: string, isProd: boolean, ttlSeconds: number, authContext: AssistantSandboxAuthContext): Promise<string>;
|
|
4
24
|
/**
|
|
5
25
|
* Wait for RUNNING. Prefers the svc long-poll (waitForSandboxRunning); on an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,EACb,MAAM,SAAS,CAAC;AA8CjB,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,2BAA2B,GACvC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,13 +32,16 @@ async function b(n, r, i, o) {
|
|
|
32
32
|
variables: { context: e(n, o) },
|
|
33
33
|
workspaceId: n,
|
|
34
34
|
authContext: o
|
|
35
|
-
})).getActiveSandboxes ?? []).find((e) => (e.status === "RUNNING" || e.status === "PROVISIONING" || e.status === "PENDING") && e.template === "AI_BUILDER" && m(e) === r && (!o.userId || e.createdBy === o.userId) && e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.imageTag === f(r, i))?.id ?? null;
|
|
35
|
+
})).getActiveSandboxes ?? []).find((e) => (e.status === "RUNNING" || e.status === "PROVISIONING" || e.status === "PENDING") && e.template === "AI_BUILDER" && m(e) === r && (!o.userId || e.createdBy === o.userId) && e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.imageTag === f(r, i) && (!x(r) || e.metadata?.confirmWrites === !0))?.id ?? null;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
function x(e) {
|
|
38
|
+
return e === "api-calls";
|
|
39
|
+
}
|
|
40
|
+
function S(e, t, n, r) {
|
|
41
|
+
let i = [
|
|
39
42
|
{
|
|
40
43
|
name: "AI_ASSISTANT_MODE",
|
|
41
|
-
value:
|
|
44
|
+
value: t
|
|
42
45
|
},
|
|
43
46
|
{
|
|
44
47
|
name: "HOSTNAME",
|
|
@@ -46,24 +49,29 @@ async function x(n, i, a, o, s, c) {
|
|
|
46
49
|
},
|
|
47
50
|
{
|
|
48
51
|
name: "WORKSPACE_ID",
|
|
49
|
-
value:
|
|
52
|
+
value: n
|
|
50
53
|
},
|
|
51
54
|
{
|
|
52
55
|
name: "AI_ASSISTANT_PRODUCT",
|
|
53
|
-
value:
|
|
56
|
+
value: e
|
|
54
57
|
}
|
|
55
58
|
];
|
|
56
|
-
|
|
59
|
+
return t === "assistant" && (i.push({
|
|
57
60
|
name: "AI_ASSISTANT_READONLY",
|
|
58
61
|
value: "1"
|
|
59
|
-
}),
|
|
62
|
+
}), r.accessToken && i.push({
|
|
60
63
|
name: "AUTH_TOKEN",
|
|
61
|
-
value:
|
|
62
|
-
}),
|
|
64
|
+
value: r.accessToken
|
|
65
|
+
}), r.workspaceToken && i.push({
|
|
63
66
|
name: "WORKSPACE_AUTH_TOKEN",
|
|
64
|
-
value:
|
|
65
|
-
}))
|
|
66
|
-
|
|
67
|
+
value: r.workspaceToken
|
|
68
|
+
})), x(t) && i.push({
|
|
69
|
+
name: "AI_ASSISTANT_CONFIRM_WRITES",
|
|
70
|
+
value: "1"
|
|
71
|
+
}), i;
|
|
72
|
+
}
|
|
73
|
+
async function C(n, i, a, o, s, c) {
|
|
74
|
+
let l = p(i), m = S(n, i, a, c), h = (t) => ({
|
|
67
75
|
name: `ai-assistant-${i}-${Date.now()}`,
|
|
68
76
|
description: `AI Assistant sandbox (${i} mode)`,
|
|
69
77
|
template: "AI_BUILDER",
|
|
@@ -84,7 +92,8 @@ async function x(n, i, a, o, s, c) {
|
|
|
84
92
|
assistantOwnerUserId: c.userId ?? null,
|
|
85
93
|
assistantOrganizationId: c.organizationId ?? null,
|
|
86
94
|
authStrategy: u,
|
|
87
|
-
imageTag: f(i, o)
|
|
95
|
+
imageTag: f(i, o),
|
|
96
|
+
confirmWrites: x(i)
|
|
88
97
|
},
|
|
89
98
|
context: e(a, c)
|
|
90
99
|
}), g = (e) => t({
|
|
@@ -104,7 +113,7 @@ async function x(n, i, a, o, s, c) {
|
|
|
104
113
|
if (!_?.createSandbox?.id) throw Error("createSandbox returned empty response");
|
|
105
114
|
return _.createSandbox.id;
|
|
106
115
|
}
|
|
107
|
-
async function
|
|
116
|
+
async function w(n, r, i) {
|
|
108
117
|
return (await t({
|
|
109
118
|
query: o,
|
|
110
119
|
operationName: "GetSandbox",
|
|
@@ -116,10 +125,10 @@ async function S(n, r, i) {
|
|
|
116
125
|
authContext: i
|
|
117
126
|
})).getSandbox;
|
|
118
127
|
}
|
|
119
|
-
function
|
|
128
|
+
function T(e, t) {
|
|
120
129
|
if (e === "FAILED" || e === "STOPPED" || e === "EXPIRED") throw Error(t ? `Sandbox ${e.toLowerCase()}: ${t}` : `Sandbox ${e.toLowerCase()}`);
|
|
121
130
|
}
|
|
122
|
-
async function
|
|
131
|
+
async function E(n, r, i, a = 3e5) {
|
|
123
132
|
let o = Date.now();
|
|
124
133
|
if (h("waitForSandboxRunning") !== "unsupported") for (; Date.now() - o < a;) try {
|
|
125
134
|
let a = await t({
|
|
@@ -136,7 +145,7 @@ async function w(n, r, i, a = 3e5) {
|
|
|
136
145
|
_("waitForSandboxRunning");
|
|
137
146
|
let o = a.waitForSandboxRunning;
|
|
138
147
|
if (o?.status === "RUNNING") return;
|
|
139
|
-
|
|
148
|
+
T(o?.status, o?.errorMessage);
|
|
140
149
|
} catch (e) {
|
|
141
150
|
if (g(e)) {
|
|
142
151
|
v("waitForSandboxRunning");
|
|
@@ -145,13 +154,13 @@ async function w(n, r, i, a = 3e5) {
|
|
|
145
154
|
throw e;
|
|
146
155
|
}
|
|
147
156
|
for (; Date.now() - o < a;) {
|
|
148
|
-
let e = await
|
|
157
|
+
let e = await w(n, r, i);
|
|
149
158
|
if (e?.status === "RUNNING") return;
|
|
150
|
-
|
|
159
|
+
T(e?.status, e?.errorMessage), await new Promise((e) => setTimeout(e, 2e3));
|
|
151
160
|
}
|
|
152
161
|
throw Error("Sandbox startup timed out");
|
|
153
162
|
}
|
|
154
|
-
async function
|
|
163
|
+
async function D(e, t, n, r = 9e4) {
|
|
155
164
|
let i = Date.now();
|
|
156
165
|
for (; Date.now() - i < r;) {
|
|
157
166
|
try {
|
|
@@ -165,10 +174,10 @@ async function T(e, t, n, r = 9e4) {
|
|
|
165
174
|
}
|
|
166
175
|
throw Error("Assistant service did not become healthy before timeout");
|
|
167
176
|
}
|
|
168
|
-
async function
|
|
177
|
+
async function O(e, t, n, r) {
|
|
169
178
|
return { sessionId: (await y(e, t, "/sessions", "POST", { mode: n }, r)).session.id };
|
|
170
179
|
}
|
|
171
|
-
function
|
|
180
|
+
function k(e) {
|
|
172
181
|
let { mode: t, prompt: n, pageContext: r, parts: i } = e, a = {
|
|
173
182
|
mode: t,
|
|
174
183
|
prompt: n,
|
|
@@ -176,8 +185,8 @@ function D(e) {
|
|
|
176
185
|
};
|
|
177
186
|
return i && i.length > 0 && (a.parts = i), a;
|
|
178
187
|
}
|
|
179
|
-
async function
|
|
180
|
-
let c = await y(e, t, `/sessions/${n}/prompt-async`, "POST",
|
|
188
|
+
async function A(e, t, n, r, i, a, o, s) {
|
|
189
|
+
let c = await y(e, t, `/sessions/${n}/prompt-async`, "POST", k({
|
|
181
190
|
mode: i,
|
|
182
191
|
prompt: r,
|
|
183
192
|
pageContext: a,
|
|
@@ -185,13 +194,13 @@ async function O(e, t, n, r, i, a, o, s) {
|
|
|
185
194
|
}), o);
|
|
186
195
|
return { messageID: typeof c.messageID == "string" ? c.messageID : void 0 };
|
|
187
196
|
}
|
|
188
|
-
async function
|
|
197
|
+
async function j(e, t, n, r, i) {
|
|
189
198
|
let a = `/sessions/${n}/messages?limit=${i?.limit ?? 50}`;
|
|
190
199
|
i?.sinceMs && h("sinceParam") !== "unsupported" && (a += `&since=${i.sinceMs}`);
|
|
191
200
|
let o = await y(e, t, a, "GET", void 0, r);
|
|
192
201
|
return typeof o.now == "number" && _("sinceParam"), o.messages ?? [];
|
|
193
202
|
}
|
|
194
|
-
async function
|
|
203
|
+
async function M(e, t, n, r) {
|
|
195
204
|
if (h("sse") === "unsupported") return null;
|
|
196
205
|
try {
|
|
197
206
|
let i = await y(e, t, `/sessions/${n}/stream-url`, "GET", void 0, r);
|
|
@@ -203,7 +212,7 @@ async function A(e, t, n, r) {
|
|
|
203
212
|
return v("sse"), null;
|
|
204
213
|
}
|
|
205
214
|
}
|
|
206
|
-
async function
|
|
215
|
+
async function N(n, r, a, o) {
|
|
207
216
|
await t({
|
|
208
217
|
query: i,
|
|
209
218
|
operationName: "ExtendSandboxTtl",
|
|
@@ -216,20 +225,20 @@ async function j(n, r, a, o) {
|
|
|
216
225
|
authContext: o
|
|
217
226
|
});
|
|
218
227
|
}
|
|
219
|
-
async function
|
|
228
|
+
async function P(e, t, n, r) {
|
|
220
229
|
await y(e, t, `/sessions/${n}/heartbeat`, "POST", void 0, r).catch(() => void 0);
|
|
221
230
|
}
|
|
222
|
-
async function
|
|
231
|
+
async function F(e, t, n, r) {
|
|
223
232
|
return ((await y(e, t, `/sessions/${n}/artifacts`, "GET", void 0, r)).artifacts ?? []).filter((e) => !e.name.startsWith("."));
|
|
224
233
|
}
|
|
225
|
-
async function
|
|
234
|
+
async function I(e, t, n, r) {
|
|
226
235
|
let i = await y(e, t, `/sessions/${n}`, "GET", void 0, r);
|
|
227
236
|
return {
|
|
228
237
|
id: i.session?.id ?? n,
|
|
229
238
|
mode: i.mode ?? "unknown"
|
|
230
239
|
};
|
|
231
240
|
}
|
|
232
|
-
async function
|
|
241
|
+
async function L(e, t, n, r, i) {
|
|
233
242
|
let a = (await y(e, t, `/sessions/${n}/artifacts/download?path=${encodeURIComponent(r)}`, "GET", void 0, i)).artifact;
|
|
234
243
|
if (!a) throw Error("Artifact download returned an empty response");
|
|
235
244
|
return {
|
|
@@ -238,7 +247,7 @@ async function F(e, t, n, r, i) {
|
|
|
238
247
|
contentBase64: a.contentBase64
|
|
239
248
|
};
|
|
240
249
|
}
|
|
241
|
-
async function
|
|
250
|
+
async function R(e, r) {
|
|
242
251
|
return (await t({
|
|
243
252
|
query: n,
|
|
244
253
|
operationName: "CheckAiCredits",
|
|
@@ -247,7 +256,7 @@ async function I(e, r) {
|
|
|
247
256
|
authContext: r
|
|
248
257
|
})).checkAiCredits;
|
|
249
258
|
}
|
|
250
|
-
async function
|
|
259
|
+
async function z(e, n, r, i, a, o) {
|
|
251
260
|
let s = Math.max(0, Math.round(a.input ?? 0)), l = Math.max(0, Math.round(a.output ?? 0));
|
|
252
261
|
s + l === 0 || !i || await t({
|
|
253
262
|
query: c,
|
|
@@ -264,4 +273,4 @@ async function L(e, n, r, i, a, o) {
|
|
|
264
273
|
});
|
|
265
274
|
}
|
|
266
275
|
//#endregion
|
|
267
|
-
export {
|
|
276
|
+
export { k as buildPromptRequestBody, R as checkAssistantAiCredits, C as createAssistantSandbox, O as createAssistantSession, L as downloadAssistantArtifact, N as extendAssistantSandboxTTL, b as findExistingSandbox, F as getAssistantArtifacts, j as getAssistantMessages, I as getAssistantSession, M as getAssistantStreamAccess, z as reportAssistantAiTokenUsage, A as sendAssistantPromptAsync, P as sendHeartbeat, D as waitForAssistantServiceReady, E as waitForSandboxRunning };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/shared/config/products.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDf,CAAC;AAEX,eAAO,MAAM,QAAQ,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/shared/config/products.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDf,CAAC;AAEX,eAAO,MAAM,QAAQ,EAAE,aAAa,EA8SnC,CAAC;AAOF,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB;;QA5Y7B,MAAM;UACJ,MAAM;UACN,MAAM;WACL,MAAM;kBACC,MAAM;IACpB;;;;;OAKG;iBACU,OAAO;IAmYrB"}
|
|
@@ -85,11 +85,10 @@ var e = {
|
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
id: "healthybowl",
|
|
88
|
-
name: "
|
|
88
|
+
name: "HealthyBowl",
|
|
89
89
|
icon: "HB",
|
|
90
90
|
color: "#22c55e",
|
|
91
|
-
description: "
|
|
92
|
-
comingSoon: !0
|
|
91
|
+
description: "AI-powered agricultural intelligence & farm operations"
|
|
93
92
|
},
|
|
94
93
|
{
|
|
95
94
|
id: "adaptercloud",
|