@burdenoff/fe-libs 2026.1001.4 → 2026.1001.6

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 (45) hide show
  1. package/dist/shared/assistant/api.d.ts +12 -0
  2. package/dist/shared/assistant/api.d.ts.map +1 -1
  3. package/dist/shared/assistant/api.js +159 -154
  4. package/dist/shared/assistant/createSandboxAssistantTransport.d.ts.map +1 -1
  5. package/dist/shared/assistant/createSandboxAssistantTransport.js +4 -1
  6. package/dist/shared/assistant/index.d.ts +2 -0
  7. package/dist/shared/assistant/index.d.ts.map +1 -1
  8. package/dist/shared/assistant/permissionError.d.ts +15 -2
  9. package/dist/shared/assistant/permissionError.d.ts.map +1 -1
  10. package/dist/shared/assistant/permissionError.js +24 -14
  11. package/dist/shared/assistant/preview/AssistantPreviewOverlay.js +4 -4
  12. package/dist/shared/assistant/preview/types.d.ts +13 -0
  13. package/dist/shared/assistant/preview/types.d.ts.map +1 -1
  14. package/dist/shared/assistant/preview/useAssistantPreviewBridge.d.ts +21 -1
  15. package/dist/shared/assistant/preview/useAssistantPreviewBridge.d.ts.map +1 -1
  16. package/dist/shared/assistant/preview/useAssistantPreviewBridge.js +1 -1
  17. package/dist/shared/assistant/preview/writeActionResults.d.ts +10 -0
  18. package/dist/shared/assistant/preview/writeActionResults.d.ts.map +1 -0
  19. package/dist/shared/assistant/preview/writeActionResults.js +26 -0
  20. package/dist/shared/assistant/progress.d.ts +9 -1
  21. package/dist/shared/assistant/progress.d.ts.map +1 -1
  22. package/dist/shared/assistant/progress.js +49 -46
  23. package/dist/shared/assistant/quota.d.ts +18 -2
  24. package/dist/shared/assistant/quota.d.ts.map +1 -1
  25. package/dist/shared/assistant/quota.js +46 -42
  26. package/dist/shared/assistant/sandboxProxyError.d.ts +91 -0
  27. package/dist/shared/assistant/sandboxProxyError.d.ts.map +1 -0
  28. package/dist/shared/assistant/sandboxProxyError.js +43 -0
  29. package/dist/shared/assistant/transportErrors.d.ts +14 -1
  30. package/dist/shared/assistant/transportErrors.d.ts.map +1 -1
  31. package/dist/shared/assistant/transportErrors.js +20 -14
  32. package/dist/shared/assistant/turnOutcome.d.ts +27 -3
  33. package/dist/shared/assistant/turnOutcome.d.ts.map +1 -1
  34. package/dist/shared/assistant/turnOutcome.js +82 -31
  35. package/dist/shared/assistant/turnOutcomeCopy.d.ts +24 -0
  36. package/dist/shared/assistant/turnOutcomeCopy.d.ts.map +1 -1
  37. package/dist/shared/assistant/turnOutcomeCopy.js +24 -0
  38. package/dist/shared/assistant/ui/AIAssistantPanel.js +14 -14
  39. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  40. package/dist/shared/assistant/ui/AssistantChatArea.js +3 -2
  41. package/dist/shared/assistant/ui/AssistantHeader.js +4 -4
  42. package/dist/shared/assistant/ui/useWriteProposals.d.ts.map +1 -1
  43. package/dist/shared/assistant/ui/useWriteProposals.js +126 -99
  44. package/dist/shared-assistant.js +181 -179
  45. package/package.json +1 -1
@@ -118,6 +118,7 @@ export * from './ui/composer/AssistantAttachmentChips';
118
118
  export * from './ui/composer/AssistantConnectSourceItem';
119
119
  export * from './ui/composer/connectSource';
120
120
  export * from './preview/types';
121
+ export * from './preview/writeActionResults';
121
122
  export * from './preview/context';
122
123
  export * from './preview/previewTransitions';
123
124
  export * from './preview/surfaceState';
@@ -185,6 +186,7 @@ export * from './useAssistantApiAccess';
185
186
  export * from './useConversationTurns';
186
187
  export * from './transportErrors';
187
188
  export * from './quota';
189
+ export * from './sandboxProxyError';
188
190
  export * from './permissionError';
189
191
  export * from './autoRouting';
190
192
  export * from './turnOutcome';
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AAGxB,cAAc,wBAAwB,CAAC;AAKvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,aAAa,CAAC;AAK5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,QAAQ,CAAC;AAIvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAIhD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAG9C,cAAc,WAAW,CAAC;AAE1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAElC,cAAc,SAAS,CAAC;AAExB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,OAAO,CAAC;AACtB,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
@@ -1,5 +1,16 @@
1
- /** A denial the person can act on, or a session fault they can recover from. */
2
- export type PermissionRefusal = "denied" | "session";
1
+ /**
2
+ * A denial the person can act on, a session fault they can recover from, or
3
+ * the §2.8 provisioning gate (BOFF-8124): the service will not START an
4
+ * assistant session for this role yet — a platform decision, not an access a
5
+ * workspace admin can grant, so its copy asks no one for anything.
6
+ */
7
+ export type PermissionRefusal = "denied" | "session" | "provisioning-gated";
8
+ /**
9
+ * The i18n key wspace-sandbox-svc refuses `provisionAssistantSandbox` with
10
+ * while the §2.8 gate is on (FORBIDDEN, for a caller without
11
+ * `sandbox:create`).
12
+ */
13
+ export declare const PROVISIONING_NOT_PERMITTED_I18N_KEY = "assistant.errors.assistantProvisioningNotPermitted";
3
14
  export interface PermissionRefusalDetail {
4
15
  readonly refusal: PermissionRefusal;
5
16
  /** The gateway's `authFailure` class, when it sent one. */
@@ -21,4 +32,6 @@ export declare function describePermissionError(error: unknown): PermissionRefus
21
32
  * stamps `lang: "en"` on failure copy so it never inherits the turn's language.
22
33
  */
23
34
  export declare function permissionRefusalMessage(detail: PermissionRefusalDetail): string;
35
+ /** Which outcome copy a permission refusal gets — one table, read by both the message and the outcome. */
36
+ export declare function permissionRefusalCopyId(refusal: PermissionRefusal): "sessionUnverified" | "provisioningNotPermitted" | "permissionDenied";
24
37
  //# sourceMappingURL=permissionError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissionError.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/permissionError.ts"],"names":[],"mappings":"AAoCA,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AASD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,uBAAuB,GAAG,IAAI,CAwBhC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAIR"}
1
+ {"version":3,"file":"permissionError.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/permissionError.ts"],"names":[],"mappings":"AAoCA;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,oBAAoB,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,uDACM,CAAC;AAEvD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AASD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,uBAAuB,GAAG,IAAI,CA8BhC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAER;AAED,0GAA0G;AAC1G,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,mBAAmB,GAAG,0BAA0B,GAAG,kBAAkB,CASvE"}
@@ -1,26 +1,36 @@
1
1
  import { extensionObjectsIn as e } from "./quota.js";
2
2
  import { TURN_OUTCOME_COPY as t } from "./turnOutcomeCopy.js";
3
3
  //#region src/shared/assistant/permissionError.ts
4
- var n = new Set([
4
+ var n = "assistant.errors.assistantProvisioningNotPermitted", r = new Set([
5
5
  "UNAUTHENTICATED_ACTOR",
6
6
  "WORKSPACE_SESSION_UNRESOLVED",
7
7
  "WORKSPACE_CONTEXT_MISSING"
8
8
  ]);
9
- function r(t) {
10
- let r = !1, i = null;
11
- for (let n of e(t)) {
12
- let e = n.code;
13
- (e === "FORBIDDEN" || e === "PERMISSION_DENIED") && (r = !0);
14
- let t = n.authFailure;
15
- typeof t == "string" && t.length > 0 && !i && (i = t);
9
+ function i(t) {
10
+ let n = !1, i = !1, a = null;
11
+ for (let r of e(t)) {
12
+ let e = r.code;
13
+ (e === "FORBIDDEN" || e === "PERMISSION_DENIED") && (n = !0), r.i18nKey === "assistant.errors.assistantProvisioningNotPermitted" && (i = !0);
14
+ let t = r.authFailure;
15
+ typeof t == "string" && t.length > 0 && !a && (a = t);
16
16
  }
17
- return !r && !i ? null : {
18
- refusal: i && n.has(i) ? "session" : "denied",
19
- authFailure: i
17
+ return !n && !i && !a ? null : a && r.has(a) ? {
18
+ refusal: "session",
19
+ authFailure: a
20
+ } : {
21
+ refusal: i ? "provisioning-gated" : "denied",
22
+ authFailure: a
20
23
  };
21
24
  }
22
- function i(e) {
23
- return e.refusal === "session" ? t.sessionUnverified.fallback : t.permissionDenied.fallback;
25
+ function a(e) {
26
+ return t[o(e.refusal)].fallback;
27
+ }
28
+ function o(e) {
29
+ switch (e) {
30
+ case "session": return "sessionUnverified";
31
+ case "provisioning-gated": return "provisioningNotPermitted";
32
+ case "denied": return "permissionDenied";
33
+ }
24
34
  }
25
35
  //#endregion
26
- export { r as describePermissionError, i as permissionRefusalMessage };
36
+ export { n as PROVISIONING_NOT_PERMITTED_I18N_KEY, i as describePermissionError, o as permissionRefusalCopyId, a as permissionRefusalMessage };
@@ -1,7 +1,7 @@
1
1
  import { useAssistantTr as e } from "../i18n.js";
2
2
  import { useAssistantStore as t } from "../store.js";
3
- import { hasAssistantPreviewSurface as n } from "./types.js";
4
- import { useAssistantPreview as r } from "./context.js";
3
+ import { useAssistantPreview as n } from "./context.js";
4
+ import { hasAssistantPreviewSurface as r } from "./types.js";
5
5
  import { useOverlayFocus as i } from "../ui/useOverlayFocus.js";
6
6
  import { Component as a } from "react";
7
7
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -27,11 +27,11 @@ var l = class extends a {
27
27
  return this.state.failed ? this.props.fallback : this.props.children;
28
28
  }
29
29
  }, u = ({ controller: e }) => /* @__PURE__ */ s(o, { children: e.render() }), d = ({ onClose: a }) => {
30
- let o = r(), d = e(), f = t((e) => {
30
+ let o = n(), d = e(), f = t((e) => {
31
31
  let t = e.activeConversationId, n = t ? e.processingByConversationId[t]?.messageId : null;
32
32
  return !t || !n ? "idle" : `${t}:${n}#${e.conversations.find((e) => e.id === t)?.updatedAt ?? ""}`;
33
33
  }), p = i("assistant-toggle-preview");
34
- return n(o) ? /* @__PURE__ */ c("div", {
34
+ return r(o) ? /* @__PURE__ */ c("div", {
35
35
  ref: p,
36
36
  tabIndex: -1,
37
37
  className: "absolute inset-0 z-10 flex flex-col bg-bg-surface outline-none animate-in slide-in-from-right-2 fade-in duration-200",
@@ -62,6 +62,19 @@ export interface AssistantPreviewRun {
62
62
  export type AssistantPreviewEvent = {
63
63
  kind: "start";
64
64
  run: AssistantPreviewRun;
65
+ } | {
66
+ /** An approved write finished, independently of the model's turn. */
67
+ kind: "action-result";
68
+ run: AssistantPreviewRun;
69
+ action: {
70
+ id: string;
71
+ operation: string;
72
+ responseKey: string;
73
+ /** Approved inputs, with sensitive arguments omitted. */
74
+ arguments: Readonly<Record<string, unknown>>;
75
+ /** The sandbox's redacted GraphQL response, never model narration. */
76
+ result: unknown;
77
+ };
65
78
  } | {
66
79
  kind: "snapshot";
67
80
  run: AssistantPreviewRun;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;GAcG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,mBAAmB,CAAA;CAAE,GAC3C;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,mBAAmB,CAAC;IACzB;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACrC,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,mBAAmB,CAAC;IACzB;;;;;;;;OAQG;IACH,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5C;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,EAAE,MAAM,SAAS,CAAC;IAEzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAEjD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6EAA6E;AAC7E,MAAM,MAAM,iCAAiC,GAAG,0BAA0B,GAAG;IAC3E,MAAM,EAAE,MAAM,SAAS,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,GACxD,UAAU,IAAI,iCAAiC,CAEjD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;GAcG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,mBAAmB,CAAA;CAAE,GAC3C;IACE,qEAAqE;IACrE,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,EAAE,mBAAmB,CAAC;IACzB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,yDAAyD;QACzD,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7C,sEAAsE;QACtE,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,mBAAmB,CAAC;IACzB;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACrC,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,mBAAmB,CAAC;IACzB;;;;;;;;OAQG;IACH,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5C;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,EAAE,MAAM,SAAS,CAAC;IAEzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAEjD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6EAA6E;AAC7E,MAAM,MAAM,iCAAiC,GAAG,0BAA0B,GAAG;IAC3E,MAAM,EAAE,MAAM,SAAS,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,GACxD,UAAU,IAAI,iCAAiC,CAEjD"}
@@ -1,3 +1,23 @@
1
- import { AssistantPreviewController } from './types';
1
+ import { AssistantPreviewController, AssistantPreviewEvent } from './types';
2
+ /**
3
+ * Shared delivery for turn events and approved action results. The main effect
4
+ * and the unmount cleanup had already drifted: the
5
+ * receiver fix and the async-rejection guard were applied to one and not the
6
+ * other, so closing the assistant mid-run delivered the run's only terminal
7
+ * event through the broken path. One function is the fix for the class of bug,
8
+ * not just for the instance.
9
+ *
10
+ * ★ Called ON the controller, not as a detached function: a product may supply
11
+ * a class instance or an object method whose `onEvent` uses `this`, and a bare
12
+ * call loses the receiver — the resulting throw is caught here, so the product
13
+ * would silently receive nothing at all.
14
+ *
15
+ * ★ A promise-like return has its rejection handled without awaiting. `onEvent`
16
+ * is typed as returning void, which TypeScript lets an `async` function
17
+ * satisfy, so a throw after an `await` escapes the `try` entirely and surfaces
18
+ * as an unhandled rejection in the HOST app — breaking the containment this
19
+ * wrapper exists to provide.
20
+ */
21
+ export declare function deliverPreviewEvent(controller: AssistantPreviewController | null | undefined, event: AssistantPreviewEvent): void;
2
22
  export declare function useAssistantPreviewBridge(controller: AssistantPreviewController | null): void;
3
23
  //# sourceMappingURL=useAssistantPreviewBridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantPreviewBridge.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/useAssistantPreviewBridge.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,0BAA0B,EAAyB,MAAM,SAAS,CAAC;AA2CjF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAC5C,IAAI,CA+MN"}
1
+ {"version":3,"file":"useAssistantPreviewBridge.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/useAssistantPreviewBridge.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIjF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,EACzD,KAAK,EAAE,qBAAqB,GAC3B,IAAI,CAeN;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAC5C,IAAI,CA+MN"}
@@ -75,4 +75,4 @@ function d(d) {
75
75
  ]);
76
76
  }
77
77
  //#endregion
78
- export { d as useAssistantPreviewBridge };
78
+ export { u as deliverPreviewEvent, d as useAssistantPreviewBridge };
@@ -0,0 +1,10 @@
1
+ import { WriteProposalView } from '../writeProposals';
2
+ import { PreviewOwner } from './surfaceState';
3
+ import { AssistantPreviewEvent } from './types';
4
+ /** Only a recorded successful execution supplies data to a live preview. */
5
+ export declare function writeActionResultEvents(view: Pick<WriteProposalView, 'proposalId' | 'status' | 'result'> & {
6
+ description: Pick<WriteProposalView['description'], 'rootFields'>;
7
+ }, conversationId: string, messageId: string, owner: PreviewOwner): Extract<AssistantPreviewEvent, {
8
+ kind: "action-result";
9
+ }>[];
10
+ //# sourceMappingURL=writeActionResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeActionResults.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/writeActionResults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,SAAS,CAAC;AAE1E,4EAA4E;AAC5E,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG;IAClE,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;CACnE,EACD,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,qBAAqB,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,EAAE,CA+B7D"}
@@ -0,0 +1,26 @@
1
+ //#region src/shared/assistant/preview/writeActionResults.ts
2
+ function e(e, t, n, r) {
3
+ if (e.status !== "succeeded" || !e.result || e.result.errors?.length || e.result.dataPreview === void 0) return [];
4
+ let i = {
5
+ runId: `${t}:${n}`,
6
+ conversationId: t,
7
+ messageId: n,
8
+ ...r
9
+ };
10
+ return e.description.rootFields.map((t) => {
11
+ let n = t.alias ?? t.field;
12
+ return {
13
+ kind: "action-result",
14
+ run: i,
15
+ action: {
16
+ id: `${e.proposalId}:${n}`,
17
+ operation: t.field,
18
+ responseKey: n,
19
+ arguments: Object.fromEntries(t.args.filter((e) => !e.sensitive).map((e) => [e.name, e.value])),
20
+ result: e.result?.dataPreview
21
+ }
22
+ };
23
+ });
24
+ }
25
+ //#endregion
26
+ export { e as writeActionResultEvents };
@@ -71,7 +71,15 @@ export declare function sanitize(response: string): string;
71
71
  * a prompt whose first attempt actually reached the model.
72
72
  */
73
73
  export declare function isReapedSandboxConnectionError(error: unknown): boolean;
74
- /** Whether an error is worth one retry from a clean runtime (union of fleet fragments). */
74
+ /**
75
+ * Whether an error is worth one retry from a clean runtime (union of fleet fragments).
76
+ *
77
+ * ★★ BOFF-8124: an assistant LLM refusal (`SandboxProxyError` with a terminal
78
+ * code) is decided by its code, before any fragment: only a revoked session
79
+ * retries — a fresh sandbox gets a fresh capability. A daily limit, a busy or
80
+ * unavailable proxy, or a conversation too long would fail the same way in any
81
+ * sandbox.
82
+ */
75
83
  export declare function isRecoverable(error: unknown): boolean;
76
84
  /**
77
85
  * Upsert delta messages into an accumulator keyed by message id. Correct against
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAA2B,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEpG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,MAAM,CAM5E;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAkB/E;AA0CD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAY7E;AAED;;;;GAIG;AACH;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB,GACjC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CA6BpC;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAItE;AAED,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA0BrD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,mBAAmB,EAAE,EAClC,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,mBAAmB,EAAE,CAavB;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,EAAE,CAyB7F"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAA2B,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEpG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,MAAM,CAM5E;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAkB/E;AA0CD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAY7E;AAED;;;;GAIG;AACH;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB,GACjC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CA6BpC;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAItE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA4BrD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,mBAAmB,EAAE,EAClC,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,mBAAmB,EAAE,CAavB;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,EAAE,CAyB7F"}
@@ -1,83 +1,86 @@
1
+ import { terminalCodeRecoverability as e } from "./sandboxProxyError.js";
1
2
  //#region src/shared/assistant/progress.ts
2
- function e(e) {
3
+ function t(e) {
3
4
  return e.info?.time?.created ?? 0;
4
5
  }
5
- function t(e) {
6
+ function n(e) {
6
7
  return (e ?? []).filter((e) => e.type === "text" && typeof e.text == "string").map((e) => e.text?.trim() ?? "").filter(Boolean).join("\n");
7
8
  }
8
- function n(e) {
9
+ function r(e) {
9
10
  return e.replace(/[\\[\]]/g, "\\$&").replace(/[\r\n]+/g, " ").trim();
10
11
  }
11
- var r = /^(?:png|jpe?g|gif|webp|avif|bmp|x-icon|vnd\.microsoft\.icon)$/i;
12
- function i(e, t) {
12
+ var i = /^(?:png|jpe?g|gif|webp|avif|bmp|x-icon|vnd\.microsoft\.icon)$/i;
13
+ function a(e, t) {
13
14
  let n = e.trim();
14
15
  if (/^https?:\/\//i.test(n)) return n.replace(/[()\s<>]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`);
15
16
  if (t) {
16
17
  let e = /^data:image\/([a-z0-9.+-]+);base64,[a-z0-9+/=]*$/i.exec(n);
17
- if (e && r.test(e[1])) return n;
18
+ if (e && i.test(e[1])) return n;
18
19
  }
19
20
  return null;
20
21
  }
21
- function a(e) {
22
+ function o(e) {
22
23
  let t = [];
23
- for (let r of e ?? []) {
24
- let e = r.type === "image";
25
- if (!e && r.type !== "file") continue;
26
- let a = r.url ?? (r.data && r.mimeType ? `data:${r.mimeType};base64,${r.data}` : void 0);
27
- if (!a) continue;
28
- let o = i(a, e);
24
+ for (let n of e ?? []) {
25
+ let e = n.type === "image";
26
+ if (!e && n.type !== "file") continue;
27
+ let i = n.url ?? (n.data && n.mimeType ? `data:${n.mimeType};base64,${n.data}` : void 0);
28
+ if (!i) continue;
29
+ let o = a(i, e);
29
30
  if (!o) continue;
30
- let s = n(r.filename ?? (e ? "image" : "file")) || "file";
31
+ let s = r(n.filename ?? (e ? "image" : "file")) || "file";
31
32
  t.push(e ? `![${s}](${o})` : `[${s}](${o})`);
32
33
  }
33
34
  return t;
34
35
  }
35
- function o(e) {
36
+ function s(e) {
36
37
  return typeof e == "object" && e ? e : void 0;
37
38
  }
38
- function s(e) {
39
- let t = o(e.state?.input);
39
+ function c(e) {
40
+ let t = s(e.state?.input);
40
41
  if (!t) return;
41
42
  let n = t.description;
42
43
  if (typeof n == "string" && n.trim()) return n.trim();
43
44
  let r = t.todos;
44
45
  if (Array.isArray(r)) {
45
- let e = o(r.find((e) => o(e)?.status === "in_progress") ?? r[0])?.content;
46
+ let e = s(r.find((e) => s(e)?.status === "in_progress") ?? r[0])?.content;
46
47
  if (typeof e == "string" && e.trim()) return e.trim();
47
48
  }
48
49
  }
49
- function c(e) {
50
+ function l(e) {
50
51
  return (e ?? []).filter((e) => e.type === "tool" && e.tool).map((e) => {
51
- let t = e.state?.status ?? "running", n = e.tool ?? "tool", r = s(e), i = r ? `${n} · ${r}` : n;
52
+ let t = e.state?.status ?? "running", n = e.tool ?? "tool", r = c(e), i = r ? `${n} · ${r}` : n;
52
53
  return t === "completed" ? `Completed: ${i}` : t === "failed" ? `Failed: ${i}` : `Running: ${i}`;
53
54
  });
54
55
  }
55
- function l(n, r, i) {
56
- let o = n.filter((t) => t.info?.role === "assistant" && e(t) >= r).sort((t, n) => e(t) - e(n));
57
- if (o.length === 0) return {
56
+ function u(e, r, i) {
57
+ let a = e.filter((e) => e.info?.role === "assistant" && t(e) >= r).sort((e, n) => t(e) - t(n));
58
+ if (a.length === 0) return {
58
59
  content: "Thinking…",
59
60
  done: !1
60
61
  };
61
- let s = o[o.length - 1], l = i?.accumulateNarration ? o.map((e) => t(e.parts)).filter(Boolean).join("\n\n") : t(s.parts), u = a(s.parts), d = c(s.parts);
62
+ let s = a[a.length - 1], c = i?.accumulateNarration ? a.map((e) => n(e.parts)).filter(Boolean).join("\n\n") : n(s.parts), u = o(s.parts), d = l(s.parts);
62
63
  return {
63
64
  content: [
64
- l,
65
+ c,
65
66
  ...u,
66
67
  ...d
67
68
  ].filter(Boolean).join("\n\n") || "Thinking…",
68
- done: !!s.info?.time?.completed && (!!l || u.length > 0 || d.length > 0)
69
+ done: !!s.info?.time?.completed && (!!c || u.length > 0 || d.length > 0)
69
70
  };
70
71
  }
71
- function u(e) {
72
+ function d(e) {
72
73
  return e.replace(/(Authorization\s*:\s*Bearer\s+)[^\s\n]+/gi, "$1[REDACTED]").replace(/(X-Workspace-Authorization\s*:\s*Bearer\s+)[^\s\n]+/gi, "$1[REDACTED]").replace(/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9._-]+\.[A-Za-z0-9._-]+\b/g, "[REDACTED_JWT]").replace(/\bsk-ant-[A-Za-z0-9-]+\b/g, "[REDACTED_API_KEY]");
73
74
  }
74
- function d(e) {
75
+ function f(e) {
75
76
  let t = e instanceof Error ? e.message.toLowerCase() : String(e).toLowerCase();
76
77
  return t.includes("unable to connect") && t.includes("able to access the url");
77
78
  }
78
- function f(e) {
79
- let t = e instanceof Error ? e.message.toLowerCase() : String(e).toLowerCase();
80
- return t.includes("rate limit exceeded") || t.includes("unauthorized") || t.includes("k8s api error 401") ? !1 : d(e) ? !0 : [
79
+ function p(t) {
80
+ let n = e(t);
81
+ if (n !== null) return n;
82
+ let r = t instanceof Error ? t.message.toLowerCase() : String(t).toLowerCase();
83
+ return r.includes("rate limit exceeded") || r.includes("unauthorized") || r.includes("k8s api error 401") ? !1 : f(t) ? !0 : [
81
84
  "sandbox not found",
82
85
  "sandbox is not running",
83
86
  "sandbox service not available yet",
@@ -91,33 +94,33 @@ function f(e) {
91
94
  "proxy error: 404",
92
95
  "proxy error: 502",
93
96
  "proxy error: 503"
94
- ].some((e) => t.includes(e));
97
+ ].some((e) => r.includes(e));
95
98
  }
96
- function p(t, n) {
99
+ function m(e, n) {
97
100
  let r = /* @__PURE__ */ new Map();
98
- for (let e of t) {
99
- let t = e.info?.id;
100
- t && r.set(t, e);
101
+ for (let t of e) {
102
+ let e = t.info?.id;
103
+ e && r.set(e, t);
101
104
  }
102
105
  for (let e of n) {
103
106
  let t = e.info?.id;
104
107
  t && r.set(t, e);
105
108
  }
106
- return Array.from(r.values()).sort((t, n) => e(t) - e(n));
109
+ return Array.from(r.values()).sort((e, n) => t(e) - t(n));
107
110
  }
108
- function m(n) {
111
+ function h(e) {
109
112
  let r = [];
110
- for (let i of n) {
111
- let n = i.info?.role;
112
- if (n !== "user" && n !== "assistant") continue;
113
- let o = i.parts, s = t(o), c = [s, ...a(o)].filter(Boolean).join("\n\n");
114
- c && (n === "user" && (s.startsWith("[Context file:") || s.startsWith("User's current context:")) || r.push({
115
- id: i.info?.id ?? `${n}-${e(i)}`,
116
- role: n,
113
+ for (let i of e) {
114
+ let e = i.info?.role;
115
+ if (e !== "user" && e !== "assistant") continue;
116
+ let a = i.parts, s = n(a), c = [s, ...o(a)].filter(Boolean).join("\n\n");
117
+ c && (e === "user" && (s.startsWith("[Context file:") || s.startsWith("User's current context:")) || r.push({
118
+ id: i.info?.id ?? `${e}-${t(i)}`,
119
+ role: e,
117
120
  content: c
118
121
  }));
119
122
  }
120
123
  return r;
121
124
  }
122
125
  //#endregion
123
- export { l as buildProgress, a as getAssistantMedia, t as getAssistantText, e as getRawMessageCreatedAt, c as getToolProgress, d as isReapedSandboxConnectionError, f as isRecoverable, m as mapSessionToHistory, p as mergeMessagesById, u as sanitize };
126
+ export { u as buildProgress, o as getAssistantMedia, n as getAssistantText, t as getRawMessageCreatedAt, l as getToolProgress, f as isReapedSandboxConnectionError, p as isRecoverable, h as mapSessionToHistory, m as mergeMessagesById, d as sanitize };
@@ -30,17 +30,28 @@ export declare function isQuotaExhaustedError(error: unknown): boolean;
30
30
  * never granted. Measured in prod 2026-08-13, this is why `createHealthyBowlFarm` returns
31
31
  * `429 QUOTA_NOT_PROVISIONED` on several workspaces — the core create path is simply dead there.
32
32
  *
33
+ * - `daily-limit` — the assistant's DAILY LLM allowance (per actor, workspace or environment) is
34
+ * spent (BOFF-8124). It resets on its own at `resetsAt`; no plan buys more of it, so it NEVER
35
+ * offers an upgrade. `quotaName` says whose allowance it was
36
+ * (`assistant.llm.{actor,workspace,env}_daily`).
37
+ *
33
38
  * ★ Keyed on `extensions.code`, never on the HTTP status or the message text. Both refusals are
34
39
  * `429`, so status alone cannot tell them apart — which is exactly how "no active subscription
35
- * covers this" would otherwise be reported to a farmer as "you have reached your limit".
40
+ * covers this" would otherwise be reported to a farmer as "you have reached your limit". The
41
+ * daily limit is a 429 too (the svc's prompt-async refusal), and a 402 or 429 `turnTerminal`.
36
42
  */
37
- export type QuotaRefusal = "exhausted" | "not-provisioned";
43
+ export type QuotaRefusal = "exhausted" | "not-provisioned" | "daily-limit";
38
44
  /**
39
45
  * Which refusal this is, or null when the error is not a quota wall at all.
40
46
  *
41
47
  * `not-provisioned` wins when both appear: it is the more specific and the more serious of the two,
42
48
  * and telling someone to upgrade when their plan was never granted sends them to buy something that
43
49
  * would not help.
50
+ *
51
+ * ★★★ `daily-limit` is checked FIRST, and every assistant LLM code is checked before the bare-429
52
+ * rule (BOFF-8124 §4.8(c)). The svc answers a send at the daily limit with a 429, and the proxy's
53
+ * busy refusal reaches the panel as a 429 `turnTerminal`: read by status alone, both would become
54
+ * `exhausted` — "upgrade your plan" for an allowance that resets tonight, or for a busy proxy.
44
55
  */
45
56
  export declare function classifyQuotaError(error: unknown): QuotaRefusal | null;
46
57
  /**
@@ -62,6 +73,11 @@ export interface QuotaRefusalDetail {
62
73
  quotaName: string | null;
63
74
  /** The refusing service's trace id, so support can find the request. */
64
75
  traceId: string | null;
76
+ /**
77
+ * When a `daily-limit` allowance resets (ISO-8601), as the refusal named it; null when it named
78
+ * none. Unvalidated here — `classifyTurnFailure` decides whether it can be shown.
79
+ */
80
+ resetsAt: string | null;
65
81
  }
66
82
  /** Every `extensions` object reachable on an error — the hosts `codesIn` walks. */
67
83
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmBH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmB7D;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;AA0C3D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAStE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,mFAAmF;AACnF;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAmB5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAmB5E;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAqBH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAsB7D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,CAAC;AA0C3E;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAatE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,mFAAmF;AACnF;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAmB5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAoB5E;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}