@burdenoff/fe-libs 2026.915.4 → 2026.917.1

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 (50) hide show
  1. package/dist/shared/assistant/adminModeSendGate.d.ts +81 -0
  2. package/dist/shared/assistant/adminModeSendGate.d.ts.map +1 -0
  3. package/dist/shared/assistant/adminModeSendGate.js +37 -0
  4. package/dist/shared/assistant/api.d.ts +8 -6
  5. package/dist/shared/assistant/api.d.ts.map +1 -1
  6. package/dist/shared/assistant/api.js +2 -2
  7. package/dist/shared/assistant/conversation.d.ts +44 -0
  8. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  9. package/dist/shared/assistant/createSandboxAssistantTransport.d.ts.map +1 -1
  10. package/dist/shared/assistant/createSandboxAssistantTransport.js +27 -27
  11. package/dist/shared/assistant/i18nManifest.d.ts +9 -3
  12. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  13. package/dist/shared/assistant/i18nManifest.js +13 -10
  14. package/dist/shared/assistant/images.d.ts +37 -2
  15. package/dist/shared/assistant/images.d.ts.map +1 -1
  16. package/dist/shared/assistant/images.js +24 -16
  17. package/dist/shared/assistant/index.d.ts +3 -0
  18. package/dist/shared/assistant/index.d.ts.map +1 -1
  19. package/dist/shared/assistant/legacyFiller.d.ts.map +1 -1
  20. package/dist/shared/assistant/legacyFiller.js +2 -2
  21. package/dist/shared/assistant/modeCapabilities.d.ts +126 -0
  22. package/dist/shared/assistant/modeCapabilities.d.ts.map +1 -0
  23. package/dist/shared/assistant/modeCapabilities.js +50 -0
  24. package/dist/shared/assistant/modeCopy.d.ts +27 -7
  25. package/dist/shared/assistant/modeCopy.d.ts.map +1 -1
  26. package/dist/shared/assistant/modeCopy.js +7 -1
  27. package/dist/shared/assistant/modeIds.d.ts +67 -0
  28. package/dist/shared/assistant/modeIds.d.ts.map +1 -0
  29. package/dist/shared/assistant/modeIds.js +21 -0
  30. package/dist/shared/assistant/preview/AssistantPreviewOverlay.d.ts.map +1 -1
  31. package/dist/shared/assistant/progress.d.ts +38 -1
  32. package/dist/shared/assistant/progress.d.ts.map +1 -1
  33. package/dist/shared/assistant/progress.js +31 -17
  34. package/dist/shared/assistant/streamBudget.d.ts +18 -18
  35. package/dist/shared/assistant/streamBudget.d.ts.map +1 -1
  36. package/dist/shared/assistant/streamBudget.js +21 -19
  37. package/dist/shared/assistant/turnProgress.d.ts +2 -1
  38. package/dist/shared/assistant/turnProgress.d.ts.map +1 -1
  39. package/dist/shared/assistant/turnProgress.js +15 -15
  40. package/dist/shared/assistant/types.d.ts +43 -1
  41. package/dist/shared/assistant/types.d.ts.map +1 -1
  42. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  43. package/dist/shared/assistant/ui/AssistantChatArea.js +340 -317
  44. package/dist/shared/assistant/ui/AssistantToolActivity.d.ts.map +1 -1
  45. package/dist/shared/assistant/ui/AssistantToolActivity.js +3 -3
  46. package/dist/shared/assistant/ui/composer/AssistantModeSelector.d.ts +18 -2
  47. package/dist/shared/assistant/ui/composer/AssistantModeSelector.d.ts.map +1 -1
  48. package/dist/shared/assistant/ui/composer/AssistantModeSelector.js +38 -32
  49. package/dist/shared-assistant.js +118 -115
  50. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ /** The role check's latest answer: is it still running, and did it say yes? */
2
+ export interface AdminModeAccess {
3
+ readonly loading: boolean;
4
+ readonly canUseAdminModes: boolean;
5
+ }
6
+ /**
7
+ * How long a send waits for the role check before giving up on it.
8
+ *
9
+ * Long enough that an ordinary round trip always wins the race, short enough
10
+ * that a check which never answers (an offline tab, a gateway black hole) ends
11
+ * as a message the person can act on instead of a spinner with no end. Reaching
12
+ * it is the ONLY way `adminOnlyModeSendRefusal` still sees `loading: true`.
13
+ */
14
+ export declare const ADMIN_MODE_ACCESS_WAIT_MS = 10000;
15
+ /**
16
+ * The role check's answer, as something an already-running send can await.
17
+ *
18
+ * ★★ Why this exists at all. The mode list hides an admin-only mode from a
19
+ * non-admin, and an effect resets a persisted one back to Ask — both only AFTER
20
+ * the check resolves, so an admin's own persisted choice survives the window.
21
+ * The send had no way to do the same: a `useCallback` closes over one render's
22
+ * `loading`, so it could either dispatch while the answer was unknown, or refuse.
23
+ *
24
+ * Refusing is what shipped first, and it broke every product whose help button
25
+ * opens the panel and sends on the next tick: an admin whose persisted mode is
26
+ * an admin-only one got an error turn on every such send, because the check was
27
+ * still in flight at that instant. Holding is the honest behaviour — the person
28
+ * asked a question that they are, in fact, allowed to ask.
29
+ *
30
+ * A gate is read LIVE through a ref, so it does not keep a "yes" that a later
31
+ * render has already replaced, the way a value captured by `useCallback` would.
32
+ *
33
+ * ★ It is NOT a guarantee about org switches. The gate only ever knows what the
34
+ * check last told it, and the check learns of a new org one render late — so
35
+ * for that one commit the gate still holds the previous org's answer. Narrowing
36
+ * that belongs in the hook (reporting `loading` while the resolved scope is
37
+ * behind the requested one), not here; the mode list has the same window today.
38
+ */
39
+ export interface AdminModeAccessGate {
40
+ /** Record the check's current state, releasing every held send once it lands. */
41
+ update(access: AdminModeAccess): void;
42
+ /**
43
+ * The state to decide on: now if the check has answered, otherwise once it
44
+ * does — or, at `timeoutMs`, whatever it still says (i.e. still loading).
45
+ */
46
+ wait(timeoutMs?: number): Promise<AdminModeAccess>;
47
+ /**
48
+ * Settle every held send with what is known right now, and stop the clock.
49
+ *
50
+ * ★★ For unmount. Both host apps mount the panel conditionally, so closing it
51
+ * mid-check destroys the component while a send is still held. Without this
52
+ * the only thing left to settle that send is its own timeout, which fires up
53
+ * to `ADMIN_MODE_ACCESS_WAIT_MS` later and writes a refusal into the PERSISTED
54
+ * conversation — the user reopens the panel and finds a failed turn that was
55
+ * never actually refused, seconds after they closed it.
56
+ *
57
+ * It settles rather than dropping: an unsettled send never runs `handleSend`'s
58
+ * `finally`, which would leave the conversation marked in-flight for good and
59
+ * the re-entry guard would then refuse every later send in it.
60
+ */
61
+ abandon(): void;
62
+ /** Sends currently held. Exposed so a test can prove holding really happens. */
63
+ readonly pendingCount: number;
64
+ }
65
+ export declare function createAdminModeAccessGate(initial: AdminModeAccess): AdminModeAccessGate;
66
+ /**
67
+ * Why this send must not go out, or null when it may — waiting for the role
68
+ * check first if the mode needs one.
69
+ *
70
+ * ★★ A mode with no `requiresAdmin` is never held and never awaits the gate.
71
+ * That matters for more than tidiness: the default read-only mode is what the
72
+ * overwhelming majority of sends use, and making those wait on an unrelated
73
+ * check would add the check's whole latency to the common path.
74
+ *
75
+ * The decision itself stays in `adminOnlyModeSendRefusal`, so the send, the mode
76
+ * list and the reset effect cannot drift apart about which modes are gated.
77
+ */
78
+ export declare function adminOnlyModeSendRefusalAfterAccess(config: {
79
+ readonly requiresAdmin?: boolean;
80
+ } | null | undefined, gate: AdminModeAccessGate, timeoutMs?: number): Promise<string | null>;
81
+ //# sourceMappingURL=adminModeSendGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adminModeSendGate.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/adminModeSendGate.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACnD;;;;;;;;;;;;;OAaG;IACH,OAAO,IAAI,IAAI,CAAC;IAChB,gFAAgF;IAChF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAOD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,mBAAmB,CAsDrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC/D,IAAI,EAAE,mBAAmB,EACzB,SAAS,GAAE,MAAkC,GAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
@@ -0,0 +1,37 @@
1
+ import { adminOnlyModeSendRefusal as e } from "./modeCapabilities.js";
2
+ //#region src/shared/assistant/adminModeSendGate.ts
3
+ var t = 1e4;
4
+ function n(e) {
5
+ let n = e, r = [], i = (e) => {
6
+ let t = r;
7
+ r = [];
8
+ for (let n of t) n.timer !== null && clearTimeout(n.timer), n.settle(e);
9
+ };
10
+ return {
11
+ update(e) {
12
+ n = e, e.loading || i(e);
13
+ },
14
+ wait(e = t) {
15
+ return n.loading ? new Promise((t) => {
16
+ let i = {
17
+ settle: t,
18
+ timer: null
19
+ };
20
+ i.timer = setTimeout(() => {
21
+ r = r.filter((e) => e !== i), t(n);
22
+ }, e), r.push(i);
23
+ }) : Promise.resolve(n);
24
+ },
25
+ abandon() {
26
+ i(n);
27
+ },
28
+ get pendingCount() {
29
+ return r.length;
30
+ }
31
+ };
32
+ }
33
+ async function r(n, r, i = t) {
34
+ return n?.requiresAdmin ? e(n, await r.wait(i)) : null;
35
+ }
36
+ //#endregion
37
+ export { t as ADMIN_MODE_ACCESS_WAIT_MS, r as adminOnlyModeSendRefusalAfterAccess, n as createAdminModeAccessGate };
@@ -10,10 +10,11 @@ import { AssistantMode, AssistantPromptPart, AssistantRawMessage, AssistantSandb
10
10
  * - `api-calls` (Take action) acts through a delegated per-workspace app; the
11
11
  * sandbox service mints and sends those credentials itself and never reads the
12
12
  * forwarded tokens.
13
- * - `vibe-plugins`, `general` (and `fluidgrids-node` on the service side) make
14
- * no platform GraphQL calls at all. Their agent has bash, so a user token
15
- * handed to one is a token a prompt injection can read and replay as the user
16
- * (BOFF-7304).
13
+ * - `vibe-plugins`, `general` and every PRODUCT-declared mode (see
14
+ * `declareAssistantMode`) make no platform GraphQL calls at all. Their agent
15
+ * has bash, so a user token handed to one is a token a prompt injection can
16
+ * read and replay as the user (BOFF-7304). A product cannot opt a mode into
17
+ * tokens: the test below is equality with the built-in id, not a capability.
17
18
  *
18
19
  * ★ Fails closed: an unknown, empty or absent mode forwards nothing. The sandbox
19
20
  * service applies the same rule server-side from the sandbox's recorded mode
@@ -184,8 +185,9 @@ export declare function downloadAssistantArtifact(sandboxId: string, workspaceId
184
185
  /**
185
186
  * ★ `undefined` is accepted, and forwards no user tokens. A message persisted
186
187
  * before its metadata carried `mode` cannot say which sandbox made it.
187
- * Artifacts are only ever collected for `vibe-plugins`, which needs no user
188
- * token, and the download is authorised by the sandbox's proxy token.
188
+ * Artifacts are only ever collected for a mode that `producesArtifacts` —
189
+ * `vibe-plugins` or a product-declared mode — and none of those needs a user
190
+ * token; the download is authorised by the sandbox's proxy token.
189
191
  */
190
192
  mode: AssistantMode | undefined, authContext: AssistantSandboxAuthContext): Promise<DownloadedAssistantArtifact>;
191
193
  export declare function checkAssistantAiCredits(workspaceId: string, authContext: AssistantSandboxAuthContext): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/api.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ async function S(n, r, i, o, s, c = /* @__PURE__ */ new Set()) {
40
40
  })).getActiveSandboxes ?? [], r, i, o, s, c);
41
41
  }
42
42
  function C(e, t, n, r, i, a = /* @__PURE__ */ new Set()) {
43
- return e.find((e) => !a.has(e.id) && (e.status === "RUNNING" || e.status === "PROVISIONING" || e.status === "PENDING") && e.template === "AI_BUILDER" && h(e) === n && (!i.userId || e.createdBy === i.userId) && e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.assistantProduct === t && e.metadata?.imageTag === p(n, r) && (!w(n) || e.metadata?.confirmWrites === !0))?.id ?? null;
43
+ return e.find((e) => !a.has(e.id) && (e.status === "RUNNING" || e.status === "PROVISIONING" || e.status === "PENDING") && e.template === "AI_BUILDER" && h(e, [n]) === n && (!i.userId || e.createdBy === i.userId) && e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.assistantProduct === t && e.metadata?.imageTag === p(n, r) && (!w(n) || e.metadata?.confirmWrites === !0))?.id ?? null;
44
44
  }
45
45
  function w(e) {
46
46
  return e === "api-calls";
@@ -192,7 +192,7 @@ async function M(e, t, n, r, i) {
192
192
  }
193
193
  function N(e, t, n, r, i) {
194
194
  let a = p(n, r);
195
- return e.filter((e) => e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.assistantProduct === t && (!i.userId || e.createdBy === i.userId) && !(h(e) === n && e.metadata?.imageTag === a)).map((e) => e.id);
195
+ return e.filter((e) => e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.assistantProduct === t && (!i.userId || e.createdBy === i.userId) && !(h(e, [n]) === n && e.metadata?.imageTag === a)).map((e) => e.id);
196
196
  }
197
197
  async function P(n, r, i, o, s) {
198
198
  let c;
@@ -190,5 +190,49 @@ export interface AssistantModeConfig {
190
190
  requiresAdmin?: boolean;
191
191
  /** Executes mutations on live data → triggers the confirm-before-mutate guard. */
192
192
  writeCapable?: boolean;
193
+ /**
194
+ * The mode's turns produce downloadable files: after each turn the panel lists
195
+ * the session's artifacts and renders them as tiles.
196
+ *
197
+ * Default: `true` for the built-in `vibe-plugins`, `false` for every other
198
+ * mode. Resolved by `resolveAssistantModeCapabilities`.
199
+ */
200
+ producesArtifacts?: boolean;
201
+ /**
202
+ * How long (ms) the panel polls one turn before closing it with the
203
+ * incomplete-turn note. Must be finite, positive and at most
204
+ * `MAX_ASSISTANT_STREAM_BUDGET_MS`; anything else is ignored and the default
205
+ * applies.
206
+ *
207
+ * Default: 600_000 for the built-in `vibe-plugins`, 180_000 otherwise.
208
+ */
209
+ streamBudgetMs?: number;
210
+ /**
211
+ * The turn keeps running server-side after the client stops waiting, so an
212
+ * unfinished turn says "still building — re-open this conversation"
213
+ * (`assistant.turnStillBuilding`) instead of "send it again"
214
+ * (`assistant.turnIncomplete`).
215
+ *
216
+ * Default: the value of `producesArtifacts` when that is set; otherwise `true`
217
+ * only for the built-in `vibe-plugins`.
218
+ */
219
+ continuesInBackground?: boolean;
220
+ /**
221
+ * Show this mode's narration for the WHOLE run, joined oldest first, rather
222
+ * than only the newest sandbox message (BC1, BOFF-7334).
223
+ *
224
+ * The agent grows text parts inside one message, so the answer grows while it
225
+ * stays in that message — and the instant it opens the next one, everything it
226
+ * narrated before vanishes from the bubble on the following poll. A mode whose
227
+ * turns build things (and whose narration carries the links to what it built)
228
+ * needs the whole account; a conversational mode does not.
229
+ *
230
+ * ★★ This changes what is STORED, not merely what is displayed: the completed
231
+ * turn persists this content as its answer, so Copy, Export and read-aloud all
232
+ * carry the running account too. Set it only where the build log IS the answer.
233
+ *
234
+ * Default: `false` for every mode, built-in or product-declared.
235
+ */
236
+ accumulatesNarration?: boolean;
193
237
  }
194
238
  //# sourceMappingURL=conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/conversation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSandboxAssistantTransport.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/createSandboxAssistantTransport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,OAAO,KAAK,EAGV,2BAA2B,EAE3B,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAOjB,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,2BAA2B,CAAC;IAClD,cAAc,EAAE,MAAM,MAAM,CAAC;CAC9B;AAYD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,IAAI,EAAE,aAAa,GAClB,yBAAyB,CA+L3B"}
1
+ {"version":3,"file":"createSandboxAssistantTransport.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/createSandboxAssistantTransport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,OAAO,KAAK,EAGV,2BAA2B,EAE3B,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAOjB,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,2BAA2B,CAAC;IAClD,cAAc,EAAE,MAAM,MAAM,CAAC;CAC9B;AAYD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,IAAI,EAAE,aAAa,GAClB,yBAAyB,CAoM3B"}
@@ -13,20 +13,20 @@ function _() {
13
13
  };
14
14
  }
15
15
  function v(v, y) {
16
- let b = v.mode ?? "assistant", x = v.streamBudgetMs ?? p, S = v.ttlSeconds ?? 3600, C = v.isProdRuntime ?? (() => !1), w = v.enableCredits ?? !1, T = new s({
16
+ let b = v.mode ?? "assistant", x = v.streamBudgetMs ?? p, S = { accumulateNarration: v.accumulateNarration === !0 }, C = v.ttlSeconds ?? 3600, w = v.isProdRuntime ?? (() => !1), T = v.enableCredits ?? !1, E = new s({
17
17
  product: v.product,
18
18
  mode: b,
19
- ttlSeconds: S,
20
- isProd: C,
19
+ ttlSeconds: C,
20
+ isProd: w,
21
21
  getWorkspaceId: y.getWorkspaceId,
22
22
  getAuthContext: y.getAuthContext
23
- }), E = () => v.gatherPageContext ? { ...v.gatherPageContext() } : _();
24
- async function D(e, t, s, p) {
23
+ }), D = () => v.gatherPageContext ? { ...v.gatherPageContext() } : _();
24
+ async function O(e, t, s, p) {
25
25
  try {
26
- let { sandboxId: o, sessionId: l } = await T.ensureRuntime();
27
- T.startKeepWarm();
26
+ let { sandboxId: o, sessionId: l } = await E.ensureRuntime();
27
+ E.startKeepWarm();
28
28
  let u = Date.now();
29
- await a(o, t, l, e.prompt, b, E(), s, e.parts?.length ? { parts: e.parts } : void 0);
29
+ await a(o, t, l, e.prompt, b, D(), s, e.parts?.length ? { parts: e.parts } : void 0);
30
30
  let p = null, _ = null, y = await r(o, t, l, b, s).catch(() => null);
31
31
  if (y && typeof EventSource < "u") try {
32
32
  _ = new EventSource(y.url);
@@ -42,7 +42,7 @@ function v(v, y) {
42
42
  } catch {
43
43
  _ = null;
44
44
  }
45
- let S = (t) => new Promise((n) => {
45
+ let C = (t) => new Promise((n) => {
46
46
  if (e.signal.aborted) return n();
47
47
  let r = setTimeout(() => {
48
48
  p = null, n();
@@ -50,34 +50,34 @@ function v(v, y) {
50
50
  p = () => {
51
51
  clearTimeout(r), n();
52
52
  };
53
- }), C = u + x, D = [], O = c([], u), k = u;
54
- for (; Date.now() < C;) {
53
+ }), w = u + x, O = [], k = c([], u, S), A = u;
54
+ for (; Date.now() < w;) {
55
55
  if (e.signal.aborted) throw Error("Cancelled");
56
- let r = await n(o, t, l, b, s, { sinceMs: k });
57
- D = d(D, r);
56
+ let r = await n(o, t, l, b, s, { sinceMs: A });
57
+ O = d(O, r);
58
58
  for (let e of r) {
59
59
  let t = e.info?.time?.created;
60
- typeof t == "number" && t > k && (k = t);
60
+ typeof t == "number" && t > A && (A = t);
61
61
  }
62
- if (O = c(D, u), e.onProgress(f(O.content)), O.done) break;
62
+ if (k = c(O, u, S), e.onProgress(f(k.content)), k.done) break;
63
63
  let i = Date.now() - u < g ? m : h;
64
- await (_ ? S(i) : new Promise((e) => setTimeout(e, i)));
64
+ await (_ ? C(i) : new Promise((e) => setTimeout(e, i)));
65
65
  }
66
- if (_?.close(), !O.done) throw Error("The assistant timed out while responding. Please try again.");
67
- let A = await n(o, t, l, b, s, { limit: 50 }).catch(() => D), j = c(d(D, A), u);
68
- if (w) {
69
- let e = A.filter((e) => e.info?.role === "assistant").sort((e, t) => (t.info?.time?.created ?? 0) - (e.info?.time?.created ?? 0))[0], n = e?.info?.tokens, r = e?.info?.providerID && e?.info?.modelID ? `${e.info.providerID}/${e.info.modelID}` : void 0;
66
+ if (_?.close(), !k.done) throw Error("The assistant timed out while responding. Please try again.");
67
+ let j = await n(o, t, l, b, s, { limit: 50 }).catch(() => O), M = c(d(O, j), u, S);
68
+ if (T) {
69
+ let e = j.filter((e) => e.info?.role === "assistant").sort((e, t) => (t.info?.time?.created ?? 0) - (e.info?.time?.created ?? 0))[0], n = e?.info?.tokens, r = e?.info?.providerID && e?.info?.modelID ? `${e.info.providerID}/${e.info.modelID}` : void 0;
70
70
  e?.info?.id && n && i(t, l, e.info.id, r, n, s).then(() => v.onCreditsUpdated?.()).catch(() => void 0);
71
71
  }
72
- return { text: f(j.content) };
72
+ return { text: f(M.content) };
73
73
  } catch (n) {
74
74
  if (p === 1 && u(n)) {
75
75
  let r = l(n);
76
76
  if (r) {
77
- let e = T.getSandboxId();
77
+ let e = E.getSandboxId();
78
78
  e && await o(e, t, s).catch(() => void 0);
79
79
  }
80
- return T.reset({ quarantineCurrentSandbox: r }), D(e, t, s, 2);
80
+ return E.reset({ quarantineCurrentSandbox: r }), O(e, t, s, 2);
81
81
  }
82
82
  throw n;
83
83
  }
@@ -87,12 +87,12 @@ function v(v, y) {
87
87
  let r = y.getWorkspaceId();
88
88
  if (!r) throw Error("The assistant needs an active workspace. Open a workspace and try again.");
89
89
  let i = y.getAuthContext();
90
- return w && t(r, i).catch((t) => {
90
+ return T && t(r, i).catch((t) => {
91
91
  e(t) && v.onQuotaExhausted?.(t);
92
- }), D(n, r, i, 1);
92
+ }), O(n, r, i, 1);
93
93
  },
94
- prewarm: (e) => T.prewarm(e),
95
- suspend: () => T.stopKeepWarm()
94
+ prewarm: (e) => E.prewarm(e),
95
+ suspend: () => E.stopKeepWarm()
96
96
  };
97
97
  }
98
98
  //#endregion
@@ -92,7 +92,8 @@ import { AssistantModeConfig } from './conversation';
92
92
  * entity decoder calls `document.createElement` at load, so an extractor script
93
93
  * importing `@burdenoff/fe-libs/shared/assistant` dies with `document is not
94
94
  * defined` (measured against the built `dist`, 2026-09-14). This module's own
95
- * runtime graph is thirteen modules: data tables, plus `i18n.tsx` for
95
+ * runtime graph is a handful of modules: data tables and the pure mode-id and
96
+ * mode-capability checks, plus `i18n.tsx` for
96
97
  * `assistantTranslationKey` and the I18n and product providers that module
97
98
  * brings. Its one package is `react`, which every app already has, and it
98
99
  * loads under plain `bun`; the test walks the graph so no UI module or other
@@ -305,13 +306,18 @@ export declare const ASSISTANT_I18N_COMPUTED_COPY: Readonly<Record<string, strin
305
306
  */
306
307
  export declare const ASSISTANT_I18N_MANIFEST: Readonly<Record<string, string>>;
307
308
  /** The part of a mode that decides its pill's key and English. */
308
- export type AssistantModeCopySource = Pick<AssistantModeConfig, "id" | "label">;
309
+ export type AssistantModeCopySource = Pick<AssistantModeConfig, "id" | "label" | "producesArtifacts">;
309
310
  /**
310
311
  * `mode.<id>` for each mode a product offers, in the product's own words.
311
312
  *
312
313
  * Mirrors the pill, which asks for `mode.<id>` with the product's `label` as
313
- * the English, or the shared name when the label is empty.
314
+ * the English, or the shared name when the label is empty
315
+ * (`assistantModeFallbackLabel`, which also names a product-declared mode).
314
316
  * Modes the product does not offer are never requested, so they are not here.
317
+ *
318
+ * @throws when a mode id is malformed. Its key could not be seeded — a `.`
319
+ * splits it, a capital or space makes it unmatchable — and a seed that
320
+ * silently carried it would deprecate nothing and translate nothing.
315
321
  */
316
322
  export declare function assistantModeI18nCopy(modes: readonly AssistantModeCopySource[]): Record<string, string>;
317
323
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"i18nManifest.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18nManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAQ1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2MG,CAAC;AAE5C,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAW/E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBtE,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIjE,CAAC;AAEL,kEAAkE;AAClE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCzB"}
1
+ {"version":3,"file":"i18nManifest.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18nManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAS1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2MG,CAAC;AAE5C,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAW/E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBtE,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIjE,CAAC;AAEL,kEAAkE;AAClE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,mBAAmB,EACnB,IAAI,GAAG,OAAO,GAAG,mBAAmB,CACrC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCzB"}
@@ -1,9 +1,10 @@
1
1
  import { assistantTranslationKey as e } from "./i18n.js";
2
- import { incompleteTurnNotice as t } from "./streamBudget.js";
3
- import { STAGE_COPY as n, THINKING_PHRASES as r } from "./stageCopy.js";
4
- import { VOICE_MUTED_LABEL as i, VOICE_THINKING_LABEL as a } from "./voice/voiceStatus.js";
5
- import { ATTACHMENT_SOURCES as o } from "./attachmentSources.js";
6
- import { ASSISTANT_MODE_FALLBACK_LABELS as s, ASSISTANT_MODE_IDS as c } from "./modeCopy.js";
2
+ import { assistantModeFallbackLabel as t } from "./modeCopy.js";
3
+ import { isAssistantModeId as n } from "./modeIds.js";
4
+ import { INCOMPLETE_TURN_NOTICES as r } from "./streamBudget.js";
5
+ import { STAGE_COPY as i, THINKING_PHRASES as a } from "./stageCopy.js";
6
+ import { VOICE_MUTED_LABEL as o, VOICE_THINKING_LABEL as s } from "./voice/voiceStatus.js";
7
+ import { ATTACHMENT_SOURCES as c } from "./attachmentSources.js";
7
8
  //#region src/shared/assistant/i18nManifest.ts
8
9
  var l = {
9
10
  "apiCalls.consentBody": "In Take action mode the assistant can read AND change your data — creating records, logging activity, updating details, and more, on your behalf.",
@@ -184,17 +185,19 @@ var l = {
184
185
  "voiceSession.transcriptTitle": "Voice transcript",
185
186
  "voiceSession.unmute": "Turn the microphone on"
186
187
  }, u = (e) => Object.fromEntries(e.map((e) => [e.key, e.fallback])), d = Object.freeze({
187
- ...u(Object.values(n)),
188
+ ...u(Object.values(i)),
189
+ ...u(a),
190
+ ...u([s, o]),
188
191
  ...u(r),
189
- ...u([a, i]),
190
- ...u(c.map(t)),
191
- ...Object.fromEntries(o.map((e) => [e.labelKey, e.labelFallback]))
192
+ ...Object.fromEntries(c.map((e) => [e.labelKey, e.labelFallback]))
192
193
  }), f = Object.freeze({
193
194
  ...l,
194
195
  ...d
195
196
  });
196
197
  function p(e) {
197
- return Object.fromEntries(e.map((e) => [`mode.${e.id}`, e.label || s[e.id]]));
198
+ let r = e.map((e) => e.id).filter((e) => !n(e));
199
+ if (r.length > 0) throw Error(`assistantModeI18nCopy: malformed mode id ${r.map((e) => JSON.stringify(e)).join(", ")}. Declare product modes with declareAssistantMode().`);
200
+ return Object.fromEntries(e.map((e) => [`mode.${e.id}`, e.label || t(e)]));
198
201
  }
199
202
  function m(t) {
200
203
  let n = {
@@ -1,4 +1,4 @@
1
- import { AssistantMode } from './types';
1
+ import { AssistantMode, BuiltInAssistantMode } from './types';
2
2
  declare const ASSISTANT_API_AUTH_STRATEGY = "sandbox-app-client-headers-v1";
3
3
  /**
4
4
  * Resolve the sandbox-image registry: build-time `VITE_SANDBOX_IMAGE_REGISTRY`
@@ -7,6 +7,22 @@ declare const ASSISTANT_API_AUTH_STRATEGY = "sandbox-app-client-headers-v1";
7
7
  * see it, so the read is guarded (same pattern as config/gatewayUrls.ts).
8
8
  */
9
9
  export declare function getSandboxImageRegistry(): string;
10
+ /**
11
+ * The built-in mode whose image, tag family and resources a sandbox for `mode`
12
+ * runs on.
13
+ *
14
+ * - A built-in mode runs on its own.
15
+ * - A PRODUCT-declared mode runs on `vibe-plugins`: the proxy-token image, which
16
+ * carries no platform identity, with the larger resource profile a build needs.
17
+ * The persona is chosen at boot from `AI_ASSISTANT_MODE`, exactly as
18
+ * `assistant` runs on the api-calls image — ai-assistant publishes images only
19
+ * for general / api-calls / vibe-plugins, so `ai-assistant-<product mode>` would
20
+ * name an image that does not exist.
21
+ *
22
+ * ★ Throws for anything else. A malformed id must not reach `CreateSandbox`,
23
+ * where it would become part of the sandbox name and metadata.
24
+ */
25
+ export declare function sandboxBaseModeFor(mode: AssistantMode): BuiltInAssistantMode;
10
26
  export declare function getImageTagForMode(mode: AssistantMode, isProd: boolean): string;
11
27
  export declare function getImageForMode(mode: AssistantMode, isProd: boolean): string;
12
28
  export declare function getResourcesForMode(mode: AssistantMode): {
@@ -16,8 +32,27 @@ export declare function getResourcesForMode(mode: AssistantMode): {
16
32
  memoryLimit: string;
17
33
  };
18
34
  export { ASSISTANT_API_AUTH_STRATEGY };
35
+ /**
36
+ * The mode an existing sandbox was provisioned for, or null when it cannot be
37
+ * told.
38
+ *
39
+ * ★ A product-declared mode is recognised ONLY when the caller passes it in
40
+ * `declaredModes`, and only from the stamped metadata — never from the name.
41
+ * Names are prefixes, and `ai-assistant-<id>-` for a product id can be a prefix
42
+ * of another mode's names; every sandbox this library creates carries
43
+ * `metadata.assistantMode`, and reuse already requires this library's stamps. An
44
+ * undeclared id resolves to null, so its sandbox is never reused.
45
+ *
46
+ * ★★ The NAME is read only when the metadata names NO mode (`assistantMode`
47
+ * missing or null) — the legacy built-in sandboxes that predate the stamp.
48
+ * Metadata that names a mode this caller does not recognise is an answer, not a
49
+ * gap to fill from the name: `ai-assistant-general-docs-…` starts with
50
+ * `ai-assistant-general-`, so reading the name there handed a `general-docs`
51
+ * sandbox (another persona, and not read-only) to a `general` lookup, and an
52
+ * `assistant-lite` one to Ask, which would then send it the user's tokens.
53
+ */
19
54
  export declare function resolveSandboxAssistantMode(sandbox: {
20
55
  metadata: Record<string, unknown> | null;
21
56
  name?: string | null;
22
- }): AssistantMode | null;
57
+ }, declaredModes?: readonly AssistantMode[]): AssistantMode | null;
23
58
  //# sourceMappingURL=images.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/images.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,QAAA,MAAM,2BAA2B,kCAAkC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAShD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAS/E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAI5E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAeA;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GAAG,aAAa,GAAG,IAAI,CAgBvB"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/images.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAYnE,QAAA,MAAM,2BAA2B,kCAAkC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAShD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAM5E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAS/E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAK5E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAeA;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,EACD,aAAa,GAAE,SAAS,aAAa,EAAO,GAC3C,aAAa,GAAG,IAAI,CAiBtB"}
@@ -1,6 +1,8 @@
1
+ import { isBuiltInAssistantMode as e } from "./modeCopy.js";
2
+ import { isProductAssistantModeId as t } from "./modeIds.js";
1
3
  //#region src/shared/assistant/images.ts
2
- var e = "028127330334.dkr.ecr.ap-south-1.amazonaws.com", t = "sandbox-app-client-headers-v1";
3
- function n() {
4
+ var n = "028127330334.dkr.ecr.ap-south-1.amazonaws.com", r = "sandbox-app-client-headers-v1";
5
+ function i() {
4
6
  try {
5
7
  let e = {
6
8
  BASE_URL: "/",
@@ -11,22 +13,27 @@ function n() {
11
13
  }?.VITE_SANDBOX_IMAGE_REGISTRY?.trim();
12
14
  if (e) return e.replace(/\/+$/, "");
13
15
  } catch {}
14
- return e;
16
+ return n;
15
17
  }
16
- function r(e, t) {
17
- switch (e) {
18
+ function a(n) {
19
+ if (e(n)) return n;
20
+ if (t(n)) return "vibe-plugins";
21
+ throw Error(`Unknown assistant mode ${JSON.stringify(n)}: no sandbox image is defined for it.`);
22
+ }
23
+ function o(e, t) {
24
+ switch (a(e)) {
18
25
  case "general":
19
26
  case "vibe-plugins": return t ? "prod" : "alpha-proxy-auth-v1";
20
27
  case "assistant":
21
28
  case "api-calls": return t ? "prod" : "alpha-delegated-auth-v11";
22
29
  }
23
30
  }
24
- function i(e, t) {
25
- let i = e === "assistant" ? "api-calls" : e;
26
- return `${n()}/wspace/ai-assistant-${i}:${r(e, t)}`;
31
+ function s(e, t) {
32
+ let n = a(e), r = n === "assistant" ? "api-calls" : n;
33
+ return `${i()}/wspace/ai-assistant-${r}:${o(e, t)}`;
27
34
  }
28
- function a(e) {
29
- return e === "general" ? {
35
+ function c(e) {
36
+ return a(e) === "general" ? {
30
37
  cpuRequest: "100m",
31
38
  cpuLimit: "500m",
32
39
  memoryRequest: "256Mi",
@@ -38,11 +45,12 @@ function a(e) {
38
45
  memoryLimit: "1536Mi"
39
46
  };
40
47
  }
41
- function o(e) {
42
- let t = e.metadata?.assistantMode;
43
- if (t === "assistant" || t === "general" || t === "api-calls" || t === "vibe-plugins") return t;
44
- let n = e.name ?? "";
45
- return n.startsWith("ai-assistant-vibe-plugins-") ? "vibe-plugins" : n.startsWith("ai-assistant-api-calls-") ? "api-calls" : n.startsWith("ai-assistant-general-") ? "general" : n.startsWith("ai-assistant-assistant-") ? "assistant" : null;
48
+ function l(n, r = []) {
49
+ let i = n.metadata?.assistantMode;
50
+ if (e(i) || t(i) && r.includes(i)) return i;
51
+ if (i != null) return null;
52
+ let a = n.name ?? "";
53
+ return a.startsWith("ai-assistant-vibe-plugins-") ? "vibe-plugins" : a.startsWith("ai-assistant-api-calls-") ? "api-calls" : a.startsWith("ai-assistant-general-") ? "general" : a.startsWith("ai-assistant-assistant-") ? "assistant" : null;
46
54
  }
47
55
  //#endregion
48
- export { t as ASSISTANT_API_AUTH_STRATEGY, i as getImageForMode, r as getImageTagForMode, a as getResourcesForMode, n as getSandboxImageRegistry, o as resolveSandboxAssistantMode };
56
+ export { r as ASSISTANT_API_AUTH_STRATEGY, s as getImageForMode, o as getImageTagForMode, c as getResourcesForMode, i as getSandboxImageRegistry, l as resolveSandboxAssistantMode, a as sandboxBaseModeFor };
@@ -66,6 +66,9 @@ export * from './speech/hostedTtsProtocol';
66
66
  export * from './i18n';
67
67
  export * from './i18nManifest';
68
68
  export * from './modeCopy';
69
+ export * from './modeIds';
70
+ export * from './modeCapabilities';
71
+ export * from './adminModeSendGate';
69
72
  export * from './voice/speechLabels';
70
73
  export * from './voice/replyLanguage';
71
74
  export * from './voice/speechPlayback';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"legacyFiller.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/legacyFiller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AA0C1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAIT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAGT;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAET;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAkBf"}
1
+ {"version":3,"file":"legacyFiller.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/legacyFiller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AA0C1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAIT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAGT;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAET;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAiBf"}