@burdenoff/fe-libs 2026.928.2 → 2026.929.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 (142) hide show
  1. package/dist/shared/assistant/adminModeSendGate.d.ts +6 -5
  2. package/dist/shared/assistant/adminModeSendGate.d.ts.map +1 -1
  3. package/dist/shared/assistant/adminModeSendGate.js +11 -11
  4. package/dist/shared/assistant/api.d.ts +291 -28
  5. package/dist/shared/assistant/api.d.ts.map +1 -1
  6. package/dist/shared/assistant/api.js +351 -147
  7. package/dist/shared/assistant/autoRouting.d.ts +11 -3
  8. package/dist/shared/assistant/autoRouting.d.ts.map +1 -1
  9. package/dist/shared/assistant/autoRouting.js +7 -7
  10. package/dist/shared/assistant/capabilities.d.ts +28 -0
  11. package/dist/shared/assistant/capabilities.d.ts.map +1 -1
  12. package/dist/shared/assistant/capabilities.js +19 -10
  13. package/dist/shared/assistant/conversation.d.ts +24 -2
  14. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  15. package/dist/shared/assistant/createSandboxAssistantTransport.d.ts.map +1 -1
  16. package/dist/shared/assistant/createSandboxAssistantTransport.js +67 -54
  17. package/dist/shared/assistant/history/historyList.js +1 -1
  18. package/dist/shared/assistant/history/historyMapping.d.ts.map +1 -1
  19. package/dist/shared/assistant/history/historyMapping.js +5 -1
  20. package/dist/shared/assistant/history/historyResume.js +7 -7
  21. package/dist/shared/assistant/i18nManifest.d.ts +53 -0
  22. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  23. package/dist/shared/assistant/i18nManifest.js +75 -16
  24. package/dist/shared/assistant/index.d.ts +15 -0
  25. package/dist/shared/assistant/index.d.ts.map +1 -1
  26. package/dist/shared/assistant/modeCapabilities.js +1 -1
  27. package/dist/shared/assistant/operations.d.ts +22 -0
  28. package/dist/shared/assistant/operations.d.ts.map +1 -1
  29. package/dist/shared/assistant/operations.js +2 -2
  30. package/dist/shared/assistant/prewarm.d.ts +7 -0
  31. package/dist/shared/assistant/prewarm.d.ts.map +1 -1
  32. package/dist/shared/assistant/prewarm.js +1 -1
  33. package/dist/shared/assistant/product.d.ts +80 -2
  34. package/dist/shared/assistant/product.d.ts.map +1 -1
  35. package/dist/shared/assistant/product.js +10 -6
  36. package/dist/shared/assistant/proposalWriteRules.d.ts +40 -0
  37. package/dist/shared/assistant/proposalWriteRules.d.ts.map +1 -0
  38. package/dist/shared/assistant/proposalWriteRules.js +14 -0
  39. package/dist/shared/assistant/store.d.ts +17 -0
  40. package/dist/shared/assistant/store.d.ts.map +1 -1
  41. package/dist/shared/assistant/store.js +50 -43
  42. package/dist/shared/assistant/turnOutcome.d.ts +34 -2
  43. package/dist/shared/assistant/turnOutcome.d.ts.map +1 -1
  44. package/dist/shared/assistant/turnOutcome.js +28 -17
  45. package/dist/shared/assistant/turnOutcomeCopy.d.ts +29 -7
  46. package/dist/shared/assistant/turnOutcomeCopy.d.ts.map +1 -1
  47. package/dist/shared/assistant/turnOutcomeCopy.js +18 -6
  48. package/dist/shared/assistant/types.d.ts +5 -1
  49. package/dist/shared/assistant/types.d.ts.map +1 -1
  50. package/dist/shared/assistant/ui/AssistantApiCallsConsentDialog.js +4 -4
  51. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  52. package/dist/shared/assistant/ui/AssistantChatArea.js +989 -718
  53. package/dist/shared/assistant/ui/AssistantConversationList.js +6 -6
  54. package/dist/shared/assistant/ui/AssistantLanguageMenu.js +6 -6
  55. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts +8 -1
  56. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
  57. package/dist/shared/assistant/ui/AssistantMessageItem.js +77 -76
  58. package/dist/shared/assistant/ui/AssistantMessageList.d.ts +13 -1
  59. package/dist/shared/assistant/ui/AssistantMessageList.d.ts.map +1 -1
  60. package/dist/shared/assistant/ui/AssistantMessageList.js +15 -13
  61. package/dist/shared/assistant/ui/AssistantReplyLanguageSelector.js +5 -5
  62. package/dist/shared/assistant/ui/AssistantSpeechProvider.js +209 -209
  63. package/dist/shared/assistant/ui/AssistantWriteConfirmDialog.d.ts +62 -0
  64. package/dist/shared/assistant/ui/AssistantWriteConfirmDialog.d.ts.map +1 -0
  65. package/dist/shared/assistant/ui/AssistantWriteConfirmDialog.js +253 -0
  66. package/dist/shared/assistant/ui/AssistantWriteProposalCard.d.ts +72 -0
  67. package/dist/shared/assistant/ui/AssistantWriteProposalCard.d.ts.map +1 -0
  68. package/dist/shared/assistant/ui/AssistantWriteProposalCard.js +439 -0
  69. package/dist/shared/assistant/ui/AssistantWriteProposalSlot.d.ts +40 -0
  70. package/dist/shared/assistant/ui/AssistantWriteProposalSlot.d.ts.map +1 -0
  71. package/dist/shared/assistant/ui/AssistantWriteProposalSlot.js +35 -0
  72. package/dist/shared/assistant/ui/composer/AssistantComposer.js +8 -8
  73. package/dist/shared/assistant/ui/useVoiceSession.d.ts +28 -0
  74. package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
  75. package/dist/shared/assistant/ui/useVoiceSession.js +159 -110
  76. package/dist/shared/assistant/ui/useWriteProposalConfirm.d.ts +61 -0
  77. package/dist/shared/assistant/ui/useWriteProposalConfirm.d.ts.map +1 -0
  78. package/dist/shared/assistant/ui/useWriteProposalConfirm.js +109 -0
  79. package/dist/shared/assistant/ui/useWriteProposals.d.ts +102 -0
  80. package/dist/shared/assistant/ui/useWriteProposals.d.ts.map +1 -0
  81. package/dist/shared/assistant/ui/useWriteProposals.js +230 -0
  82. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +17 -1
  83. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts.map +1 -1
  84. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +141 -109
  85. package/dist/shared/assistant/ui/writeProposalPresentation.d.ts +76 -0
  86. package/dist/shared/assistant/ui/writeProposalPresentation.d.ts.map +1 -0
  87. package/dist/shared/assistant/ui/writeProposalPresentation.js +110 -0
  88. package/dist/shared/assistant/usageReporting.d.ts +108 -0
  89. package/dist/shared/assistant/usageReporting.d.ts.map +1 -0
  90. package/dist/shared/assistant/usageReporting.js +155 -0
  91. package/dist/shared/assistant/useAssistantApiAccess.d.ts +49 -14
  92. package/dist/shared/assistant/useAssistantApiAccess.d.ts.map +1 -1
  93. package/dist/shared/assistant/useAssistantApiAccess.js +43 -25
  94. package/dist/shared/assistant/useAssistantHeartbeat.d.ts.map +1 -1
  95. package/dist/shared/assistant/useAssistantHeartbeat.js +5 -5
  96. package/dist/shared/assistant/useWorkspaceWriteAccess.d.ts +5 -6
  97. package/dist/shared/assistant/useWorkspaceWriteAccess.d.ts.map +1 -1
  98. package/dist/shared/assistant/voice/voiceSession.d.ts +46 -0
  99. package/dist/shared/assistant/voice/voiceSession.d.ts.map +1 -1
  100. package/dist/shared/assistant/voice/voiceSession.js +35 -2
  101. package/dist/shared/assistant/writeConfirmSeam.d.ts +32 -0
  102. package/dist/shared/assistant/writeConfirmSeam.d.ts.map +1 -0
  103. package/dist/shared/assistant/writeConfirmSeam.js +23 -0
  104. package/dist/shared/assistant/writeModeConsent.d.ts +16 -8
  105. package/dist/shared/assistant/writeModeConsent.d.ts.map +1 -1
  106. package/dist/shared/assistant/writeModeConsent.js +2 -2
  107. package/dist/shared/assistant/writeProposalDiscovery.d.ts +123 -0
  108. package/dist/shared/assistant/writeProposalDiscovery.d.ts.map +1 -0
  109. package/dist/shared/assistant/writeProposalDiscovery.js +210 -0
  110. package/dist/shared/assistant/writeProposalErrorCopy.d.ts +135 -0
  111. package/dist/shared/assistant/writeProposalErrorCopy.d.ts.map +1 -0
  112. package/dist/shared/assistant/writeProposalErrorCopy.js +135 -0
  113. package/dist/shared/assistant/writeProposalVoice.d.ts +133 -0
  114. package/dist/shared/assistant/writeProposalVoice.d.ts.map +1 -0
  115. package/dist/shared/assistant/writeProposalVoice.js +66 -0
  116. package/dist/shared/assistant/writeProposals.d.ts +268 -0
  117. package/dist/shared/assistant/writeProposals.d.ts.map +1 -0
  118. package/dist/shared/assistant/writeProposals.js +445 -0
  119. package/dist/shared/assistant/writeReplyBinder.d.ts +166 -0
  120. package/dist/shared/assistant/writeReplyBinder.d.ts.map +1 -0
  121. package/dist/shared/assistant/writeReplyBinder.js +233 -0
  122. package/dist/shared/assistant/writeReplySend.d.ts +110 -0
  123. package/dist/shared/assistant/writeReplySend.d.ts.map +1 -0
  124. package/dist/shared/assistant/writeReplySend.js +93 -0
  125. package/dist/shared/graphql/fetch.d.ts +12 -1
  126. package/dist/shared/graphql/fetch.d.ts.map +1 -1
  127. package/dist/shared/graphql/fetch.js +101 -80
  128. package/dist/shared/providers/shell/ActiveContextProvider.d.ts.map +1 -1
  129. package/dist/shared/providers/shell/ActiveContextProvider.js +28 -26
  130. package/dist/shared/providers/shell/PersonaSurfaceProvider.d.ts.map +1 -1
  131. package/dist/shared/providers/shell/PersonaSurfaceProvider.js +165 -193
  132. package/dist/shared/providers/shell/personaSurfaceRemote.d.ts +8 -2
  133. package/dist/shared/providers/shell/personaSurfaceRemote.d.ts.map +1 -1
  134. package/dist/shared/providers/shell/personaSurfaceRemote.js +37 -15
  135. package/dist/shared/providers/shell/useRemoteNavPreferences.d.ts +30 -0
  136. package/dist/shared/providers/shell/useRemoteNavPreferences.d.ts.map +1 -0
  137. package/dist/shared/providers/shell/useRemoteNavPreferences.js +43 -0
  138. package/dist/shared-assistant.js +167 -152
  139. package/dist/ui/modal-shell.d.ts +14 -1
  140. package/dist/ui/modal-shell.d.ts.map +1 -1
  141. package/dist/ui/modal-shell.js +8 -6
  142. package/package.json +2 -2
@@ -33,11 +33,12 @@ export declare const ADMIN_MODE_ACCESS_WAIT_MS = 10000;
33
33
  * A gate is read LIVE through a ref, so it does not keep a "yes" that a later
34
34
  * render has already replaced, the way a value captured by `useCallback` would.
35
35
  *
36
- * ★ It is NOT a guarantee about org switches. The gate only ever knows what the
37
- * check last told it, and the check learns of a new org one render late — so
38
- * for that one commit the gate still holds the previous org's answer. Narrowing
39
- * that belongs in the hook (reporting `loading` while the resolved scope is
40
- * behind the requested one), not here; the mode list has the same window today.
36
+ * ★ Workspace switches are the HOOK's job, not this gate's. The gate only ever
37
+ * knows what the check last told it. `useAssistantApiAccess` reports `loading`
38
+ * for any render whose workspace or user its answer is not about (BOFF-7803,
39
+ * OD-2), so the values fed in here — and the mode list — never carry another
40
+ * workspace's yes. The gate still learns them in an effect, one commit after
41
+ * that render.
41
42
  */
42
43
  export interface AdminModeAccessGate {
43
44
  /** The latest answer, for the final synchronous validation after a wait. */
@@ -1 +1 @@
1
- {"version":3,"file":"adminModeSendGate.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/adminModeSendGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,+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,4EAA4E;IAC5E,IAAI,IAAI,eAAe,CAAC;IACxB,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,CAwDrB;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;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM;IAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EACnE,IAAI,EAAE,mBAAmB,EACzB,SAAS,GAAE,MAAkC,GAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,mBAAmB,GAAG,SAAS,EACjD,IAAI,EAAE,mBAAmB,EACzB,SAAS,GAAE,MAAkC,GAC5C,OAAO,CAAC,iBAAiB,CAAC,CAoC5B"}
1
+ {"version":3,"file":"adminModeSendGate.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/adminModeSendGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,+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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,IAAI,IAAI,eAAe,CAAC;IACxB,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,CAwDrB;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;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM;IAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EACnE,IAAI,EAAE,mBAAmB,EACzB,SAAS,GAAE,MAAkC,GAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,mBAAmB,GAAG,SAAS,EACjD,IAAI,EAAE,mBAAmB,EACzB,SAAS,GAAE,MAAkC,GAC5C,OAAO,CAAC,iBAAiB,CAAC,CAoC5B"}
@@ -1,5 +1,5 @@
1
- import { UNAVAILABLE_MODE_REFUSAL as e, adminOnlyModeSendRefusal as t, resolveAssistantModeCapabilities as n, unofferedModeSendRefusal as r } from "./modeCapabilities.js";
2
- import { AssistantSendRefusal as i } from "./turnOutcome.js";
1
+ import { AssistantSendRefusal as e } from "./turnOutcome.js";
2
+ import { UNAVAILABLE_MODE_REFUSAL as t, adminOnlyModeSendRefusal as n, resolveAssistantModeCapabilities as r, unofferedModeSendRefusal as i } from "./modeCapabilities.js";
3
3
  //#region src/shared/assistant/adminModeSendGate.ts
4
4
  var a = 1e4;
5
5
  function o(e) {
@@ -32,20 +32,20 @@ function o(e) {
32
32
  }
33
33
  };
34
34
  }
35
- async function s(e, n, r = a) {
36
- return e?.requiresAdmin ? t(e, await n.wait(r)) : null;
35
+ async function s(e, t, r = a) {
36
+ return e?.requiresAdmin ? n(e, await t.wait(r)) : null;
37
37
  }
38
- async function c(e, t, n, i = a) {
39
- return r(e, t()) === null ? null : (await n.wait(i), r(e, t()));
38
+ async function c(e, t, n, r = a) {
39
+ return i(e, t()) === null ? null : (await n.wait(r), i(e, t()));
40
40
  }
41
41
  async function l(o, s, l, u = a) {
42
42
  let d = Date.now() + u, f = await c(o, s, l, u);
43
- if (f) throw new i("mode-unavailable", f);
43
+ if (f) throw new e("mode-unavailable", f);
44
44
  s()?.requiresAdmin && await l.wait(Math.max(0, d - Date.now()));
45
- let p = s(), m = n(o, p), h = r(o, p) ?? (m.provisionable ? null : e);
46
- if (h) throw new i("mode-unavailable", h);
47
- let g = l.read(), _ = t(p, g);
48
- if (_) throw new i(g.loading ? "mode-access-pending" : "mode-admin-only", _);
45
+ let p = s(), m = r(o, p), h = i(o, p) ?? (m.provisionable ? null : t);
46
+ if (h) throw new e("mode-unavailable", h);
47
+ let g = l.read(), _ = n(p, g);
48
+ if (_) throw new e(g.loading ? "mode-access-pending" : "mode-admin-only", _);
49
49
  return {
50
50
  config: p,
51
51
  capabilities: m
@@ -1,35 +1,81 @@
1
1
  import { AssistantMode, AssistantPromptPart, AssistantRawMessage, AssistantSandboxAuthContext, AssistantArtifact, AssistantSessionInfo, DownloadedAssistantArtifact, StreamAccess } from './types';
2
+ import { SandboxWriteCapabilities, WriteApprovalMode, WriteExecutionState } from './writeProposals';
3
+ import { WriteReplyKind, WriteReplyOrigin } from './writeReplyBinder';
2
4
  /**
3
- * Does a proxied request into a sandbox of this mode carry the signed-in user's
4
- * own tokens (`forwardedAuthToken` / `forwardedWorkspaceToken`)?
5
+ * Does a proxied request addressed to a sandbox of this mode carry the
6
+ * signed-in user's own tokens (`forwardedAuthToken` /
7
+ * `forwardedWorkspaceToken`) in the `proxySandboxRequest` input?
5
8
  *
6
- * ★★ Only Ask (`assistant`). It is the one mode that authenticates the
7
- * in-sandbox agent with the user's OWN identity (read-only, enforced by
8
- * AI_ASSISTANT_READONLY — see `buildAssistantSandboxEnv`). Every other mode must
9
- * never receive them:
10
- * - `api-calls` (Take action) acts through a delegated per-workspace app; the
11
- * sandbox service mints and sends those credentials itself and never reads the
12
- * forwarded tokens.
9
+ * ★★ The recipient is wspace-sandbox-svc, not the sandbox. The two fields are
10
+ * input to the svc's proxy mutation; what reaches the sandbox is the svc's
11
+ * decision, made from the sandbox's RECORDED mode, not from anything sent here:
12
+ * - relay credential mode (BOFF-8072): the svc keeps the tokens server-side,
13
+ * sealed and TTL-bound, and forwards NEITHER into any sandbox. The session
14
+ * gets only an opaque capability that the svc's session relay accepts, and
15
+ * the relay runs each business request as the user through the public
16
+ * gateway, so `@rbac` applies.
17
+ * - legacy credential mode: the svc delivers them to an Ask sandbox only, and
18
+ * already withholds them from `api-calls` (wspace-sandbox-svc
19
+ * `forwardsUserTokens`, SandboxProvider.ts:3051-3054).
20
+ *
21
+ * ★★ Ask (`assistant`) and Take action (`api-calls`), and nothing else. Both
22
+ * reach the platform gateway, and in relay mode both run their reads (and an
23
+ * admin's Take-action execution) as the user's OWN token held by the relay. For
24
+ * `api-calls` that is what lets an admin's Take action run on the admin's own
25
+ * human token rather than the svc's admin-bridge `app_as_user` mint.
26
+ *
27
+ * Every other mode must never send them:
13
28
  * - `vibe-plugins`, `general` and every PRODUCT-declared mode (see
14
29
  * `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.
30
+ * has bash, so a user token that reached one is a token a prompt injection
31
+ * can read and replay as the user (BOFF-7304). A product cannot opt a mode
32
+ * into tokens: the test below is equality with the built-in ids, not a
33
+ * capability.
18
34
  *
19
- * ★ Fails closed: an unknown, empty or absent mode forwards nothing. The sandbox
20
- * service applies the same rule server-side from the sandbox's recorded mode
21
- * (wspace-sandbox-svc#87); this is the client half, so the tokens never leave
22
- * the browser for a sandbox that has no use for them.
35
+ * ★ Fails closed: an unknown, empty or absent mode forwards nothing, so the
36
+ * tokens never leave the browser for a sandbox that has no use for them.
37
+ *
38
+ * ★ This is proxy-request forwarding only. No create-time token env is added
39
+ * for `api-calls`: `buildAssistantSandboxEnv` still puts `AUTH_TOKEN` /
40
+ * `WORKSPACE_AUTH_TOKEN` in the env of an Ask sandbox alone (on the
41
+ * createSandbox path an older svc needs), and a relay-mode svc strips even that.
23
42
  */
24
43
  export declare function forwardsUserTokensToSandbox(mode: AssistantMode | null | undefined): boolean;
25
- export declare function findExistingSandbox(workspaceId: string, product: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext, excludedSandboxIds?: ReadonlySet<string>): Promise<string | null>;
44
+ /** What a sandbox (or wspace-sandbox-svc, in front of it) answered. */
45
+ export interface SandboxProxyRawResult {
46
+ status: number;
47
+ body: unknown;
48
+ }
49
+ /**
50
+ * `proxyToSandbox` without the throw: the answer's status and body come back
51
+ * whatever the status is, so a caller can read a 4xx's `code` and `reason`
52
+ * (BOFF-7803 5a: the write-proposal endpoints answer refusals that way).
53
+ *
54
+ * ★ ONE attempt, never retried here (`executeAssistantGraphQLOnce`). The
55
+ * caller owns retry: an approve must never be re-sent behind its back, since
56
+ * a resend after a lost answer reads as a second press.
57
+ *
58
+ * ★ It still throws when there is no answer to return: a transport failure, a
59
+ * GraphQL error from the gateway or the svc, or a `proxySandboxRequest` with no
60
+ * status. Those carry no sandbox status, and inventing one would lie about
61
+ * what happened.
62
+ *
63
+ * `mode` is the mode of the SANDBOX being addressed, exactly as for every
64
+ * other proxied call (see `buildSandboxProxyRequest`).
65
+ */
66
+ export declare function proxySandboxRaw(sandboxId: string, workspaceId: string, path: string, method: string, body: unknown, mode: AssistantMode | undefined, authContext: AssistantSandboxAuthContext | undefined): Promise<SandboxProxyRawResult>;
67
+ export declare function findExistingSandbox(workspaceId: string, product: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext, excludedSandboxIds?: ReadonlySet<string>,
68
+ /** The product's `writeApproval` flag (`AssistantProductCapabilities`). */
69
+ writeApproval?: WriteApprovalMode): Promise<string | null>;
26
70
  /**
27
71
  * `findExistingSandbox`, and the status the server reported for the one it
28
72
  * chose. Reuse accepts a sandbox still PROVISIONING or PENDING — joining a boot
29
73
  * someone else started (a reload mid-cold-start, a second tab) — and a latency
30
74
  * report must not call waiting out that boot a probe (BOFF-7801).
31
75
  */
32
- export declare function findExistingSandboxWithStatus(workspaceId: string, product: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext, excludedSandboxIds?: ReadonlySet<string>): Promise<{
76
+ export declare function findExistingSandboxWithStatus(workspaceId: string, product: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext, excludedSandboxIds?: ReadonlySet<string>,
77
+ /** The product's `writeApproval` flag (`AssistantProductCapabilities`). */
78
+ writeApproval?: WriteApprovalMode): Promise<{
33
79
  id: string;
34
80
  status: string;
35
81
  } | null>;
@@ -44,7 +90,71 @@ export interface ExistingAssistantSandbox {
44
90
  createdBy: string;
45
91
  }
46
92
  /** Pure reuse selector, kept separate so quarantine behavior is regression-testable. */
47
- export declare function selectExistingAssistantSandbox(sandboxes: ExistingAssistantSandbox[], product: string, mode: AssistantMode, _isProd: boolean, authContext: Pick<AssistantSandboxAuthContext, "userId">, excludedSandboxIds?: ReadonlySet<string>): string | null;
93
+ export declare function selectExistingAssistantSandbox(sandboxes: ExistingAssistantSandbox[], product: string, mode: AssistantMode, _isProd: boolean, authContext: Pick<AssistantSandboxAuthContext, "userId">, excludedSandboxIds?: ReadonlySet<string>,
94
+ /**
95
+ * The write-approval flow the panel can get (BOFF-7803 5a): the flow a
96
+ * Take-action sandbox must run, and — at `proposal-v1` — the provisioning
97
+ * path an Ask sandbox must have come from (`askReuseMatchesProvisioning`).
98
+ * Ignored for every other mode. Last, and defaulted to `legacy`, so every
99
+ * positional caller is unchanged.
100
+ */
101
+ wantedWriteApproval?: WriteApprovalMode): string | null;
102
+ /**
103
+ * May this sandbox serve an Ask panel that wants `wanted`? (BOFF-7803 5a, the
104
+ * Ask fence.)
105
+ *
106
+ * ★★★ At `proposal-v1` an Ask sandbox is reusable only if the dedicated path
107
+ * provisioned it (`assistantAuth.provisionedVia ===
108
+ * 'provisionAssistantSandbox'`, stamped by the service, which drops any
109
+ * client-supplied `assistantAuth`). An Ask sandbox from `createSandbox` was
110
+ * built by `buildAssistantSandboxEnv`, which puts the user's `AUTH_TOKEN` and
111
+ * `WORKSPACE_AUTH_TOKEN` in its env. There the model's bash can read them and
112
+ * send a mutation to the public gateway as the user — an Editor's or an
113
+ * admin's write, from Ask. The heartbeat can keep such a sandbox alive for
114
+ * hours, so a panel that has just turned the flag on must not adopt one: it is
115
+ * released (the superseded selector holds this same predicate) and a
116
+ * dedicated one is provisioned.
117
+ *
118
+ * Only Ask, and only at `proposal-v1`. Callers pass the flow the panel can
119
+ * actually GET (`requestedWriteApproval`): when the page has learned that the
120
+ * dedicated path does not exist, Ask itself comes from `createSandbox`, the
121
+ * wanted flow reads `legacy`, and reuse is exactly as before. A Take-action
122
+ * sandbox is decided by `writeApprovalReuseMatches`; every other mode is
123
+ * unaffected.
124
+ *
125
+ * Pure, and the SAME predicate sits inside the superseded selector's negation,
126
+ * so "superseded" stays the exact complement of "reusable".
127
+ */
128
+ export declare function askReuseMatchesProvisioning(sandbox: {
129
+ metadata: Record<string, unknown> | null;
130
+ }, mode: AssistantMode, wanted: WriteApprovalMode): boolean;
131
+ /**
132
+ * May a Take-action sandbox with this metadata serve a panel that wants the
133
+ * `wanted` write-approval flow? (BOFF-7803 5a / BOFF-7800 Phase 1.)
134
+ *
135
+ * ★★ A sandbox's flow is fixed in its environment when it is created, so a
136
+ * sandbox running the other flow must never be adopted: a proposal-v1
137
+ * sandbox driven by a legacy panel, or the reverse, is a write gate nobody is
138
+ * operating. The service stamps the flow it actually provisioned at the top
139
+ * level of `metadata` (wspace-sandbox-svc `assistantClientCompatStamps`):
140
+ * - `confirmWrites: true` — the legacy gate. A pre-5a sandbox carries only
141
+ * this, and no `writeApproval`, which reads as `legacy`;
142
+ * - `confirmWrites: 'proposal-v1'` + `writeApproval: 'proposal-v1'` — the
143
+ * proposal flow. The STRING, so a pre-5a panel, which reuses only
144
+ * `=== true`, never adopts one.
145
+ * Both must agree with `wanted`; an absent `confirmWrites` (a pre-gate
146
+ * sandbox) matches nothing, as before.
147
+ *
148
+ * ★★ Except a MEMBER sandbox (`assistantAuth.accessProfile === 'member'`),
149
+ * which is always reusable: it is the only Take-action sandbox a non-admin can
150
+ * be provisioned (proposal-v1, fenced, whatever was requested), so superseding
151
+ * it over the approval flow would only stop it and provision the same thing
152
+ * again against a one-environment quota.
153
+ *
154
+ * Pure, and the SAME predicate sits inside the superseded selector's negation,
155
+ * so "superseded" stays the exact complement of "reusable".
156
+ */
157
+ export declare function writeApprovalReuseMatches(metadata: Record<string, unknown> | null | undefined, wanted: WriteApprovalMode): boolean;
48
158
  /**
49
159
  * Does this mode write through the gateway, and therefore need the
50
160
  * confirm-before-write gate?
@@ -65,7 +175,71 @@ export declare function buildAssistantSandboxEnv(product: string, mode: Assistan
65
175
  name: string;
66
176
  value: string;
67
177
  }>;
68
- export declare function createAssistantSandbox(product: string, mode: AssistantMode, workspaceId: string, isProd: boolean, ttlSeconds: number, authContext: AssistantSandboxAuthContext): Promise<string>;
178
+ /** Did this sandbox come from the dedicated provisioning path, by its stamp? */
179
+ export declare function isDedicatedAssistantSandboxRow(sandbox: {
180
+ metadata: Record<string, unknown> | null;
181
+ }): boolean;
182
+ /** Does this page know `sandboxId` came from the dedicated provisioning path? */
183
+ export declare function isDedicatedAssistantSandbox(sandboxId: string): boolean;
184
+ /**
185
+ * Does a panel whose product flag is `writeApproval` provision `mode` through
186
+ * the dedicated path? (BOFF-7800 Phase 1, BOFF-7803 5a.)
187
+ *
188
+ * ★★ Only at exactly `'proposal-v1'`, only for Ask and Take action, and only
189
+ * while this page has not seen the gateway say the path does not exist. A
190
+ * product at `legacy` keeps `createSandbox` for every mode, so it changes in
191
+ * nothing — in particular no non-admin can open Take action, and Ask stays as
192
+ * it was, until the product turns the flag on.
193
+ */
194
+ export declare function usesDedicatedAssistantProvisioning(mode: AssistantMode, writeApproval: WriteApprovalMode | null | undefined): boolean;
195
+ /**
196
+ * Is this the service's "the dedicated provisioning path is closed" refusal
197
+ * (503 `assistant.errors.assistantProvisioningUnavailable`)? The service raises
198
+ * it until it runs the session relay (BOFF-8072), whatever the caller's role.
199
+ * Any `SERVICE_UNAVAILABLE` counts: on this path every one of them is a
200
+ * "not now", and none may be retried another way.
201
+ *
202
+ * ★★ It must never lead to a retry through `createSandbox`: that path hands a
203
+ * session the credentials BOFF-8072 withdraws. It surfaces as the temporary
204
+ * outcome instead (`classifyTurnFailure`), which is what it is.
205
+ */
206
+ export declare function isAssistantProvisioningUnavailable(error: unknown): boolean;
207
+ /**
208
+ * The `provisionAssistantSandbox` input. Pure and exported so what leaves the
209
+ * browser on this path is checkable without a network.
210
+ *
211
+ * ★★ No containers, command, resources, image pull settings or storage — the
212
+ * service builds the sandbox — and NO token env for any mode: the only env is
213
+ * `AI_ASSISTANT_PRODUCT`, `HOSTNAME` and `WORKSPACE_ID`, the service's own
214
+ * allowlist. A session on this path never holds the user's token (BOFF-8072);
215
+ * the proxy forwards it to the service, which keeps it server-side.
216
+ *
217
+ * ★ `writeApproval` is sent for Take action only. Ask requests nothing about
218
+ * writes (the service gives it the read-only Ask plan whatever is sent), and
219
+ * leaving it out keeps the field at its schema default.
220
+ */
221
+ export declare function buildProvisionAssistantSandboxInput(product: string, mode: AssistantMode, workspaceId: string, isProd: boolean, ttlSeconds: number, authContext: Pick<AssistantSandboxAuthContext, "organizationId">): Record<string, unknown>;
222
+ /**
223
+ * Create an assistant sandbox, and return its id.
224
+ *
225
+ * ★★ Two paths (BOFF-7800 Phase 1, BOFF-7803 5a), chosen by the product's
226
+ * `writeApproval` flag and nothing else:
227
+ * - `'proposal-v1'`, Ask or Take action → `provisionAssistantSandbox`, gated on
228
+ * `assistant:use` (every workspace role), under the same quota. The service
229
+ * decides the access profile — an admin's Take action can execute, a
230
+ * member's is fenced — so the panel cannot widen it.
231
+ * - The service's missing-field answer (an older supergraph) falls back to
232
+ * `createSandbox`, and the page stops asking.
233
+ * - Every other failure is final. Above all the provisioning-closed 503
234
+ * (`isAssistantProvisioningUnavailable`): a retry through `createSandbox`
235
+ * would hand a non-admin's session the old credential path.
236
+ * - anything else → `createSandbox`, exactly as before.
237
+ */
238
+ export declare function createAssistantSandbox(product: string, mode: AssistantMode, workspaceId: string, isProd: boolean, ttlSeconds: number, authContext: AssistantSandboxAuthContext,
239
+ /** `writeApproval`: the product's flag (`AssistantProductCapabilities`). */
240
+ options?: {
241
+ writeApproval?: WriteApprovalMode;
242
+ }): Promise<string>;
69
243
  /**
70
244
  * Wait for RUNNING. Prefers the svc long-poll (waitForSandboxRunning); on an
71
245
  * older gateway that field errors → falls back to 2s getSandbox polling. Keeps
@@ -78,7 +252,30 @@ export declare function waitForAssistantServiceReady(sandboxId: string, workspac
78
252
  * retry. A caller that REUSES a sandbox learns from it that it joined a boot
79
253
  * in progress rather than a service already serving (BOFF-7801).
80
254
  */
81
- onNotReady?: () => void): Promise<void>;
255
+ onNotReady?: () => void): Promise<Record<string, unknown>>;
256
+ /** `proposal-v1` for exactly that string; anything else is `legacy`. */
257
+ export declare function writeApprovalModeOf(value: unknown): WriteApprovalMode;
258
+ /**
259
+ * `enabled` for exactly that string. An ABSENT value is `enabled` only when
260
+ * the caller says absence means an image that predates 5a
261
+ * (`absentMeansFenced: false`); any other value, and absence otherwise, is
262
+ * `fenced`.
263
+ */
264
+ export declare function writeExecutionOf(value: unknown, absentMeansFenced: boolean): WriteExecutionState;
265
+ /**
266
+ * What a sandbox's own `/health` body says about writes (BOFF-7803 5a).
267
+ *
268
+ * ★★ Every doubt resolves to the side that runs nothing:
269
+ * - no write capabilities at all (an image that predates 5a) → the legacy
270
+ * flow, unchanged: `{proposals: false, legacy, enabled}`;
271
+ * - a mode other than exactly `proposal-v1` → `legacy`;
272
+ * - a `writeExecution` other than exactly `enabled` → `fenced`, and so is a
273
+ * missing one on an image that does report write capabilities.
274
+ *
275
+ * `replyApproval` is always `off`: in 5a no reply approves, whatever a sandbox
276
+ * reports. Nothing here is a secret; `sessionCredentials` is a path name.
277
+ */
278
+ export declare function readSandboxWriteCapabilities(health: unknown): SandboxWriteCapabilities;
82
279
  export declare function createAssistantSession(sandboxId: string, workspaceId: string, mode: AssistantMode, authContext: AssistantSandboxAuthContext): Promise<{
83
280
  sessionId: string;
84
281
  }>;
@@ -114,7 +311,9 @@ export declare function selectSupersededAssistantSandboxes(sandboxes: readonly E
114
311
  * the two keep identical shapes — which is what makes "superseded is the
115
312
  * complement of reusable" checkable by reading them side by side.
116
313
  */
117
- excludedSandboxIds?: ReadonlySet<string>): string[];
314
+ excludedSandboxIds?: ReadonlySet<string>,
315
+ /** Same parameter, position and default as the reuse selector's. */
316
+ wantedWriteApproval?: WriteApprovalMode): string[];
118
317
  /**
119
318
  * Free the workspace's sandbox slot before provisioning a different mode.
120
319
  *
@@ -143,13 +342,52 @@ excludedSandboxIds?: ReadonlySet<string>): string[];
143
342
  */
144
343
  export declare function releaseSupersededAssistantSandboxes(workspaceId: string, product: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext,
145
344
  /** Sandboxes proven dead this session — released even if they still match. */
146
- excludedSandboxIds?: ReadonlySet<string>): Promise<string[]>;
345
+ excludedSandboxIds?: ReadonlySet<string>,
346
+ /** The product's `writeApproval` flag (`AssistantProductCapabilities`). */
347
+ writeApproval?: WriteApprovalMode): Promise<string[]>;
147
348
  /**
148
349
  * Terminalize a sandbox whose Cloudflare data plane was reaped while its DB
149
350
  * record remained RUNNING. Invoked only for Cloudflare's exact connection-
150
- * refused signature before provisioning the replacement.
351
+ * refused signature before provisioning the replacement — and by
352
+ * `releaseSupersededAssistantSandboxes` for our own superseded sandboxes.
353
+ *
354
+ * ★★ A sandbox from the dedicated path (BOFF-7800 Phase 1) is stopped through
355
+ * the owner-scoped `stopMyAssistantSandbox`: its owner may be a Viewer, who
356
+ * holds no permission `stopSandbox` accepts, and without it the superseded
357
+ * sandbox would hold a one-environment quota until its TTL ran out. It falls
358
+ * back to `stopSandbox` only on the gateway's missing-field answer; any other
359
+ * refusal (NOT_FOUND for a row that is not the caller's) is final.
360
+ *
361
+ * `ownerScoped` routes a sandbox this page does not know as dedicated the same
362
+ * way: the release on the dedicated path passes it for its owner's Ask and
363
+ * Take-action sandboxes from `createSandbox` (`releaseSupersededAssistantSandboxes`).
364
+ */
365
+ export declare function stopReapedAssistantSandbox(sandboxId: string, workspaceId: string, authContext: AssistantSandboxAuthContext, options?: {
366
+ ownerScoped?: boolean;
367
+ }): Promise<void>;
368
+ /**
369
+ * How the panel's write-reply binder classified a prompt (BOFF-7803 5a,
370
+ * design §5.8): the sandbox's `writeReply`. `proposalId` only on a
371
+ * `proposal_result` continuation.
372
+ *
373
+ * ★★ 5a is a safety floor, not the final security boundary. Nothing in a
374
+ * prompt approves a write: the sandbox supersedes every pending proposal of
375
+ * the session on ANY prompt (the strict sweep), and only the card's button
376
+ * confirms one. The tag only tells the sandbox what the reply was, so a bare
377
+ * "yes" with nothing waiting can be bridged (the model is told to prepare the
378
+ * change it described).
379
+ */
380
+ export interface AssistantPromptWriteReply {
381
+ kind: WriteReplyKind;
382
+ origin: WriteReplyOrigin;
383
+ proposalId?: string;
384
+ }
385
+ /**
386
+ * The conversation ids the sandbox's prompt admission accepts
387
+ * (`[A-Za-z0-9_-]{1,128}`). It refuses the WHOLE prompt (400) over anything
388
+ * else, so a conversation id outside this is never sent.
151
389
  */
152
- export declare function stopReapedAssistantSandbox(sandboxId: string, workspaceId: string, authContext: AssistantSandboxAuthContext): Promise<void>;
390
+ export declare const PROMPT_CONVERSATION_ID_PATTERN: RegExp;
153
391
  /**
154
392
  * Assemble the `/sessions/:id/prompt-async` request body. Pure + exported so the
155
393
  * backward-compatibility contract is unit-testable without touching the network.
@@ -157,16 +395,23 @@ export declare function stopReapedAssistantSandbox(sandboxId: string, workspaceI
157
395
  * The contract, deliberately additive:
158
396
  * - `prompt` is ALWAYS present. A bridge that predates multimodal ignores the
159
397
  * unknown `parts` key and answers from `prompt` — degradation, not failure.
160
- * - `parts` appears ONLY when there is at least one. A text-only turn therefore
161
- * produces a byte-identical body to the pre-multimodal client.
398
+ * - `parts` appears ONLY when there is at least one. A text-only turn with no
399
+ * write fields therefore produces a byte-identical body to the
400
+ * pre-multimodal client.
162
401
  * - When a bridge does understand `parts`, `parts` wins and `prompt` is the
163
402
  * text-only fallback.
403
+ * - BOFF-7803 5a: `conversationId` (the panel's stable conversation id) when it
404
+ * is one the sandbox accepts — a proposal-v1 sandbox binds the session's
405
+ * proposals to it; any other ignores it — and `writeReply` only when set.
406
+ * A sandbox that predates them ignores both unknown keys.
164
407
  */
165
408
  export declare function buildPromptRequestBody(args: {
166
409
  mode: AssistantMode;
167
410
  prompt: string;
168
411
  pageContext: Record<string, unknown> | undefined;
169
412
  parts?: AssistantPromptPart[];
413
+ conversationId?: string | null;
414
+ writeReply?: AssistantPromptWriteReply | null;
170
415
  }): Record<string, unknown>;
171
416
  export interface AssistantPromptGatewayRequest {
172
417
  sandboxId: string;
@@ -177,6 +422,10 @@ export interface AssistantPromptGatewayRequest {
177
422
  pageContext: Record<string, unknown> | undefined;
178
423
  authContext: AssistantSandboxAuthContext;
179
424
  parts?: AssistantPromptPart[];
425
+ /** The panel's conversation (BOFF-7803 5a). */
426
+ conversationId?: string | null;
427
+ /** How the binder classified this prompt (BOFF-7803 5a). */
428
+ writeReply?: AssistantPromptWriteReply | null;
180
429
  }
181
430
  /** The actual unbatched GraphQL body, including context and forwarded-token overhead. */
182
431
  export declare function buildPromptGatewayRequest(args: AssistantPromptGatewayRequest): {
@@ -186,9 +435,14 @@ export declare function buildPromptGatewayRequest(args: AssistantPromptGatewayRe
186
435
  };
187
436
  export declare function promptGatewayRequestBytes(args: AssistantPromptGatewayRequest): number;
188
437
  export declare function sendAssistantPromptAsync(sandboxId: string, workspaceId: string, sessionId: string, prompt: string, mode: AssistantMode, pageContext: Record<string, unknown> | undefined, authContext: AssistantSandboxAuthContext,
189
- /** Multimodal extras. Optional + trailing, so every existing call site is unaffected. */
438
+ /**
439
+ * Multimodal extras, and the write-lifecycle fields (BOFF-7803 5a). Optional
440
+ * + trailing, so every existing call site is unaffected.
441
+ */
190
442
  options?: {
191
443
  parts?: AssistantPromptPart[];
444
+ conversationId?: string | null;
445
+ writeReply?: AssistantPromptWriteReply | null;
192
446
  }): Promise<{
193
447
  messageID?: string;
194
448
  }>;
@@ -201,6 +455,15 @@ export declare function getAssistantMessages(sandboxId: string, workspaceId: str
201
455
  * (older backend / preview data plane off) → caller falls back to polling.
202
456
  */
203
457
  export declare function getAssistantStreamAccess(sandboxId: string, workspaceId: string, sessionId: string, mode: AssistantMode, authContext: AssistantSandboxAuthContext): Promise<StreamAccess | null>;
458
+ /**
459
+ * Extend a sandbox's TTL — the keep-warm call.
460
+ *
461
+ * ★★ Routed like `stopReapedAssistantSandbox`: a sandbox from the dedicated
462
+ * path through the owner-scoped `extendMyAssistantSandboxTTL` (a Viewer cannot
463
+ * call `extendSandboxTTL`), falling back only on the gateway's missing-field
464
+ * answer. Extending grants the session nothing: it holds no credential, and
465
+ * execution re-checks admin rights live (BOFF-8072).
466
+ */
204
467
  export declare function extendAssistantSandboxTTL(sandboxId: string, workspaceId: string, additionalSeconds: number, authContext: AssistantSandboxAuthContext): Promise<void>;
205
468
  export declare function sendHeartbeat(sandboxId: string, workspaceId: string, sessionId: string, mode: AssistantMode, authContext: AssistantSandboxAuthContext): Promise<void>;
206
469
  /**
@@ -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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"}