@burdenoff/fe-libs 2026.920.2 → 2026.920.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/shared/assistant/aiCredits.d.ts +9 -4
  2. package/dist/shared/assistant/aiCredits.d.ts.map +1 -1
  3. package/dist/shared/assistant/images.d.ts +15 -4
  4. package/dist/shared/assistant/images.d.ts.map +1 -1
  5. package/dist/shared/assistant/index.d.ts +2 -0
  6. package/dist/shared/assistant/index.d.ts.map +1 -1
  7. package/dist/shared/assistant/preview/bridgeHost.d.ts +26 -0
  8. package/dist/shared/assistant/preview/bridgeHost.d.ts.map +1 -0
  9. package/dist/shared/assistant/preview/bridgeHost.js +16 -0
  10. package/dist/shared/assistant/preview/bridgeHostContext.d.ts +17 -0
  11. package/dist/shared/assistant/preview/bridgeHostContext.d.ts.map +1 -0
  12. package/dist/shared/assistant/preview/bridgeHostContext.js +11 -0
  13. package/dist/shared/assistant/preview/useAssistantPreviewBridge.d.ts.map +1 -1
  14. package/dist/shared/assistant/store.d.ts.map +1 -1
  15. package/dist/shared/assistant/ui/AIAssistantPanel.d.ts +4 -0
  16. package/dist/shared/assistant/ui/AIAssistantPanel.d.ts.map +1 -1
  17. package/dist/shared/assistant/ui/AIAssistantPanel.js +63 -62
  18. package/dist/shared/assistant/ui/AssistantChatArea.d.ts +2 -2
  19. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  20. package/dist/shared/assistant/ui/AssistantOverlay.d.ts +6 -0
  21. package/dist/shared/assistant/ui/AssistantOverlay.d.ts.map +1 -1
  22. package/dist/shared/assistant/ui/AssistantOverlay.js +93 -89
  23. package/dist/shared/assistant/useWorkspaceWriteAccess.d.ts +12 -9
  24. package/dist/shared/assistant/useWorkspaceWriteAccess.d.ts.map +1 -1
  25. package/dist/shared-assistant.js +42 -40
  26. package/package.json +1 -1
@@ -1,11 +1,16 @@
1
1
  import { QuotaKind } from './quota';
2
2
  /**
3
- * Fired after a successful AI-token charge so a live credits meter could refetch
3
+ * Fired after a successful AI-token charge so a live credits meter can refetch
4
4
  * its balance.
5
5
  *
6
- * ★ Namespaced by product, like the quota event. Nothing listens for it in any
7
- * product today — verified across the repo — because no product mounts a meter.
8
- * The dispatch is kept as the cheap half of that feature, not as a live path.
6
+ * ★ Namespaced by product, like the quota event: `<product>:ai-credits-updated`.
7
+ * A product that shows a credits meter subscribes to its own name; a product
8
+ * that shows none simply has no listener, and the dispatch costs nothing.
9
+ *
10
+ * ★ No census of listeners is kept here. The last one ("nothing listens in any
11
+ * product") was false by the time it was read — a product's meter hook had
12
+ * already subscribed — and a list in shared code cannot see into the products
13
+ * that consume it.
9
14
  */
10
15
  export declare function aiCreditsUpdatedEventName(product: string): string;
11
16
  export declare function notifyAiCreditsUpdated(product: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"aiCredits.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/aiCredits.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AAEjB;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG5D;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,GACd,IAAI,CASN"}
1
+ {"version":3,"file":"aiCredits.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/aiCredits.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG5D;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,GACd,IAAI,CASN"}
@@ -1,10 +1,21 @@
1
1
  import { AssistantMode, BuiltInAssistantMode } from './types';
2
2
  declare const ASSISTANT_API_AUTH_STRATEGY = "sandbox-app-client-headers-v1";
3
3
  /**
4
- * Resolve the sandbox-image registry: build-time `VITE_SANDBOX_IMAGE_REGISTRY`
5
- * override, else the Azure default. `import.meta.env` is only available in
6
- * code paths Vite transforms; non-Vite test runners and SSR contexts may not
7
- * see it, so the read is guarded (same pattern as config/gatewayUrls.ts).
4
+ * Resolve the sandbox-image registry: `DEFAULT_SANDBOX_IMAGE_REGISTRY` (ECR),
5
+ * unless `VITE_SANDBOX_IMAGE_REGISTRY` is set in the environment of the build
6
+ * that compiles THIS SOURCE FILE.
7
+ *
8
+ * ★ In the published package that build is fe-libs' own, and its Vite config
9
+ * installs a guard that FAILS a CI build whose environment, env file or Vite
10
+ * `define` names any other registry (`scripts/published-registry-guard.ts`,
11
+ * pinned end to end by `publishedRegistryBuild.test.ts`). So every shell gets
12
+ * the default. The override still takes effect where a local Vite build
13
+ * compiles fe-libs from source — a shell aliasing a sibling checkout in
14
+ * development — and the variable is then that shell's.
15
+ *
16
+ * `import.meta.env` is only available in code paths Vite transforms; non-Vite
17
+ * test runners and SSR contexts may not see it, so the read is guarded (same
18
+ * pattern as config/gatewayUrls.ts).
8
19
  */
9
20
  export declare function getSandboxImageRegistry(): string;
10
21
  /**
@@ -1 +1 @@
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
+ {"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;AAgBnE,QAAA,MAAM,2BAA2B,kCAAkC,CAAC;AAEpE;;;;;;;;;;;;;;;;GAgBG;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"}
@@ -120,6 +120,8 @@ export * from './ui/useDropdownEscape';
120
120
  export * from './ui/useOverlayFocus';
121
121
  export * from './ui/usePrefersReducedMotion';
122
122
  export * from './preview/useAssistantPreviewBridge';
123
+ export * from './preview/bridgeHost';
124
+ export * from './preview/bridgeHostContext';
123
125
  export * from './preview/AssistantPreviewOverlay';
124
126
  export * from './ui/composer/AssistantLanguageSelector';
125
127
  export * from './ui/composer/AssistantModeSelector';
@@ -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;AAGlC,cAAc,gBAAgB,CAAC;AAK/B,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,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,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,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;AAGzC,cAAc,WAAW,CAAC;AAE1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AAErC,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;AACxB,cAAc,aAAa,CAAC;AAC5B,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"}
@@ -0,0 +1,26 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { AssistantPreviewController } from './types';
3
+ export interface AssistantPreviewBridgeHostProps {
4
+ /**
5
+ * The product's preview controller — the SAME object passed to the panel as
6
+ * `preview`, or the panel runs a second bridge. Keep it stable across renders
7
+ * (see `AssistantPreviewController`). Absent: nothing is bridged here.
8
+ */
9
+ preview?: AssistantPreviewController | null;
10
+ children?: ReactNode;
11
+ }
12
+ /**
13
+ * Run the preview bridge for `preview` for as long as THIS is mounted, and tell
14
+ * any panel below that it need not run one.
15
+ *
16
+ * `AssistantOverlay` mounts one for `panelProps.preview`, so a product that
17
+ * passes its controller that way gets a preview that keeps following a run
18
+ * after the assistant is closed. A host that mounts the panel itself can do the
19
+ * same by wrapping the place the panel comes and goes in this.
20
+ *
21
+ * ★ Unmounting THIS is still an ending: a run in flight gets `end(abandoned)`,
22
+ * as it did when the panel unmounted — the host has gone, and with it the only
23
+ * thing following the run.
24
+ */
25
+ export declare const AssistantPreviewBridgeHost: FC<AssistantPreviewBridgeHostProps>;
26
+ //# sourceMappingURL=bridgeHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridgeHost.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/bridgeHost.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAiB1D,MAAM,WAAW,+BAA+B;IAC9C;;;;OAIG;IACH,OAAO,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,EAAE,EAAE,CAAC,+BAA+B,CAW1E,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { useAssistantPreviewBridge as e } from "./useAssistantPreviewBridge.js";
2
+ import { HostedPreviewBridgeContext as t } from "./bridgeHostContext.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region src/shared/assistant/preview/bridgeHost.tsx
5
+ function i({ controller: t }) {
6
+ return e(t), null;
7
+ }
8
+ var a = ({ preview: e, children: a }) => {
9
+ let o = e ?? null;
10
+ return /* @__PURE__ */ r(t.Provider, {
11
+ value: o,
12
+ children: [/* @__PURE__ */ n(i, { controller: o }), a]
13
+ });
14
+ };
15
+ //#endregion
16
+ export { a as AssistantPreviewBridgeHost };
@@ -0,0 +1,17 @@
1
+ import { AssistantPreviewController } from './types';
2
+ /** The controller an `AssistantPreviewBridgeHost` above bridges, or null. */
3
+ export declare const HostedPreviewBridgeContext: import('react').Context<AssistantPreviewController | null>;
4
+ /**
5
+ * The controller an ancestor already runs the bridge for, or null when none
6
+ * does.
7
+ */
8
+ export declare function useHostedAssistantPreviewBridge(): AssistantPreviewController | null;
9
+ /**
10
+ * The controller the PANEL should run its own bridge for: its `preview`, unless
11
+ * a host above it already runs the bridge for that very controller.
12
+ *
13
+ * ★ Identity, not presence. A host bridging controller A says nothing about a
14
+ * panel handed controller B; B still needs a bridge, and only the panel has it.
15
+ */
16
+ export declare function panelOwnedPreviewBridge(preview: AssistantPreviewController | null | undefined, hosted: AssistantPreviewController | null): AssistantPreviewController | null;
17
+ //# sourceMappingURL=bridgeHostContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridgeHostContext.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/bridgeHostContext.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B,4DACiB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,0BAA0B,GAAG,IAAI,CAEnF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,EACtD,MAAM,EAAE,0BAA0B,GAAG,IAAI,GACxC,0BAA0B,GAAG,IAAI,CAGnC"}
@@ -0,0 +1,11 @@
1
+ import { createContext as e, useContext as t } from "react";
2
+ //#region src/shared/assistant/preview/bridgeHostContext.ts
3
+ var n = e(null);
4
+ function r() {
5
+ return t(n);
6
+ }
7
+ function i(e, t) {
8
+ return e ? e === t ? null : e : null;
9
+ }
10
+ //#endregion
11
+ export { n as HostedPreviewBridgeContext, i as panelOwnedPreviewBridge, r as useHostedAssistantPreviewBridge };
@@ -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,CAyMN"}
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 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/store.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,10 @@ export type AIAssistantPanelProps = PanelProps & {
41
41
  *
42
42
  * ★ Absence is the off-switch — no controller, no toggle, no overlay and no
43
43
  * events. There is deliberately no second flag that could disagree with it.
44
+ *
45
+ * ★★ Passed through `AssistantOverlay`'s `panelProps`, its events keep flowing
46
+ * after the panel closes: the overlay runs the bridge, and this panel then
47
+ * runs none for the same controller (BOFF-7367, see `bridgeHost.tsx`).
44
48
  */
45
49
  preview?: AssistantPreviewController;
46
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAY,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAcrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA0NtD,CAAC"}
1
+ {"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAY,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAkBrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAiOtD,CAAC"}
@@ -7,86 +7,87 @@ import { AssistantConnectSourceProvider as a } from "./composer/connectSource.js
7
7
  import { ASSISTANT_OVERLAY_ATTR as o, ASSISTANT_PANEL_ATTR as s, activePanelOverlay as c, escapeDismisses as l, nextPanelOverlays as u } from "./panelOverlays.js";
8
8
  import { AssistantPreviewProvider as d } from "../preview/context.js";
9
9
  import { useAssistantPreviewBridge as f } from "../preview/useAssistantPreviewBridge.js";
10
- import { AssistantPreviewOverlay as p } from "../preview/AssistantPreviewOverlay.js";
11
- import { AssistantHeader as m } from "./AssistantHeader.js";
12
- import { AssistantConversationList as h } from "./AssistantConversationList.js";
13
- import { useFilesServiceWarmup as g } from "../../../storage/warmFilesService.js";
14
- import { useAssistantHeartbeat as _ } from "../useAssistantHeartbeat.js";
15
- import { useAssistantKeyboardShortcuts as v } from "../useAssistantKeyboardShortcuts.js";
16
- import { AssistantChatArea as y } from "./AssistantChatArea.js";
17
- import { useRef as b, useState as x } from "react";
18
- import { jsx as S, jsxs as C } from "react/jsx-runtime";
10
+ import { panelOwnedPreviewBridge as p, useHostedAssistantPreviewBridge as m } from "../preview/bridgeHostContext.js";
11
+ import { AssistantPreviewOverlay as h } from "../preview/AssistantPreviewOverlay.js";
12
+ import { AssistantHeader as g } from "./AssistantHeader.js";
13
+ import { AssistantConversationList as _ } from "./AssistantConversationList.js";
14
+ import { useFilesServiceWarmup as v } from "../../../storage/warmFilesService.js";
15
+ import { useAssistantHeartbeat as y } from "../useAssistantHeartbeat.js";
16
+ import { useAssistantKeyboardShortcuts as b } from "../useAssistantKeyboardShortcuts.js";
17
+ import { AssistantChatArea as x } from "./AssistantChatArea.js";
18
+ import { useRef as S, useState as C } from "react";
19
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
19
20
  //#region src/shared/assistant/ui/AIAssistantPanel.tsx
20
- var w = ({ onClose: w, visible: T, docked: E, onToggleDock: D, writeAccess: O, onNavigate: k, connectSourceHref: A, preview: j }) => {
21
- let M = t(), [N, P] = x(!1);
22
- N && !j && P(!1);
23
- let F = N && !!j;
24
- f(j ?? null);
25
- let I = b(null), { conversations: L, activeConversationId: R, conversationListOpen: z, setConversationListOpen: B, createConversation: V } = r(), H = z || F, U = c({
26
- historyOpen: z,
27
- previewOpen: F
28
- }), W = (e) => {
21
+ var E = ({ onClose: E, visible: D, docked: O, onToggleDock: k, writeAccess: A, onNavigate: j, connectSourceHref: M, preview: N }) => {
22
+ let P = t(), [F, I] = C(!1);
23
+ F && !N && I(!1);
24
+ let L = F && !!N;
25
+ f(p(N, m()));
26
+ let R = S(null), { conversations: z, activeConversationId: B, conversationListOpen: V, setConversationListOpen: H, createConversation: U } = r(), W = V || L, G = c({
27
+ historyOpen: V,
28
+ previewOpen: L
29
+ }), K = (e) => {
29
30
  let t = u({
30
- historyOpen: z,
31
- previewOpen: F
31
+ historyOpen: V,
32
+ previewOpen: L
32
33
  }, e);
33
- B(t.historyOpen), P(t.previewOpen);
34
- }, G = L.find((e) => e.id === R);
35
- _(G?.backendSessionId ?? null, G?.mode ?? null, T ?? !0), g(T ?? !0);
36
- let K = e(T !== !1);
37
- return v({
38
- panelRef: I,
34
+ H(t.historyOpen), I(t.previewOpen);
35
+ }, q = z.find((e) => e.id === B);
36
+ y(q?.backendSessionId ?? null, q?.mode ?? null, D ?? !0), v(D ?? !0);
37
+ let J = e(D !== !1);
38
+ return b({
39
+ panelRef: R,
39
40
  onClose: () => {
40
41
  if (l({
41
- historyOpen: z,
42
- previewOpen: F
42
+ historyOpen: V,
43
+ previewOpen: L
43
44
  }) === "overlay") {
44
- B(!1), P(!1);
45
+ H(!1), I(!1);
45
46
  return;
46
47
  }
47
- w();
48
+ E();
48
49
  }
49
- }), /* @__PURE__ */ S(i, {
50
- visible: T ?? !0,
51
- children: /* @__PURE__ */ S(d, {
52
- value: j,
53
- children: /* @__PURE__ */ S(n, {
54
- value: k,
55
- children: /* @__PURE__ */ S(a, {
56
- value: A,
57
- children: /* @__PURE__ */ C("div", {
58
- ref: I,
50
+ }), /* @__PURE__ */ w(i, {
51
+ visible: D ?? !0,
52
+ children: /* @__PURE__ */ w(d, {
53
+ value: N,
54
+ children: /* @__PURE__ */ w(n, {
55
+ value: j,
56
+ children: /* @__PURE__ */ w(a, {
57
+ value: M,
58
+ children: /* @__PURE__ */ T("div", {
59
+ ref: R,
59
60
  className: "relative flex h-full w-full flex-col bg-bg-surface",
60
61
  role: "complementary",
61
- "aria-label": M("panel.ariaLabel", "AI Assistant"),
62
+ "aria-label": P("panel.ariaLabel", "AI Assistant"),
62
63
  "data-testid": "ai-assistant-panel",
63
64
  [s]: "",
64
- ...U ? { [o]: U } : {},
65
+ ...G ? { [o]: G } : {},
65
66
  tabIndex: -1,
66
67
  children: [
67
- /* @__PURE__ */ S("div", {
68
+ /* @__PURE__ */ w("div", {
68
69
  className: "contents",
69
- inert: H || void 0,
70
- children: /* @__PURE__ */ S(m, {
71
- contextLabel: K,
72
- onNewConversation: () => V(),
73
- onOpenHistory: () => W("history"),
74
- historyOpen: z,
75
- onTogglePreview: () => W("preview"),
76
- previewOpen: F,
77
- onClose: w,
78
- docked: E,
79
- onToggleDock: D
70
+ inert: W || void 0,
71
+ children: /* @__PURE__ */ w(g, {
72
+ contextLabel: J,
73
+ onNewConversation: () => U(),
74
+ onOpenHistory: () => K("history"),
75
+ historyOpen: V,
76
+ onTogglePreview: () => K("preview"),
77
+ previewOpen: L,
78
+ onClose: E,
79
+ docked: O,
80
+ onToggleDock: k
80
81
  })
81
82
  }),
82
- z && /* @__PURE__ */ S(h, {}),
83
- F && /* @__PURE__ */ S(p, { onClose: () => P(!1) }),
84
- /* @__PURE__ */ S("div", {
83
+ V && /* @__PURE__ */ w(_, {}),
84
+ L && /* @__PURE__ */ w(h, { onClose: () => I(!1) }),
85
+ /* @__PURE__ */ w("div", {
85
86
  className: "contents",
86
- inert: H || void 0,
87
- children: /* @__PURE__ */ S(y, {
88
- visible: T ?? !0,
89
- writeAccess: O
87
+ inert: W || void 0,
88
+ children: /* @__PURE__ */ w(x, {
89
+ visible: D ?? !0,
90
+ writeAccess: A
90
91
  })
91
92
  })
92
93
  ]
@@ -97,4 +98,4 @@ var w = ({ onClose: w, visible: T, docked: E, onToggleDock: D, writeAccess: O, o
97
98
  });
98
99
  };
99
100
  //#endregion
100
- export { w as AIAssistantPanel };
101
+ export { E as AIAssistantPanel };
@@ -18,8 +18,8 @@ export interface AssistantChatAreaProps {
18
18
  * does not earn a place in an interface every product must satisfy.
19
19
  *
20
20
  * Defaults to `'unknown'`, which is exactly the "say nothing" branch: a
21
- * product that does not pass it gets today's behaviour for a workspace with no
22
- * roles provisioned, never a false claim in either direction.
21
+ * product that does not pass it never shows the warning, and never makes a
22
+ * false claim in either direction.
23
23
  */
24
24
  writeAccess?: WorkspaceWriteAccess;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AA2Ef,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAyDvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA4uExD,CAAC"}
1
+ {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AA2Ef,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAyDvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA8uExD,CAAC"}
@@ -80,6 +80,12 @@ export interface AssistantOverlayProps {
80
80
  /**
81
81
  * Extra props for the default `AIAssistantPanel` — `writeAccess`,
82
82
  * `connectSourceHref`, `preview`. The overlay's own props always win.
83
+ *
84
+ * ★★ `preview` is bridged HERE, by the overlay, not by the panel — so a
85
+ * product surface outside the panel keeps following a run after the assistant
86
+ * is closed (BOFF-7367). A `renderPanel` wrapper that hands its panel the
87
+ * same controller should pass it here too; one it passes only to its panel is
88
+ * bridged by that panel, for that panel's lifetime.
83
89
  */
84
90
  panelProps?: Omit<AIAssistantPanelProps, keyof AssistantOverlayPanelProps>;
85
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantOverlay.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAmBL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAID,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,4BAA4B,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GACnD,IAAI,CAaN;AAID,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACtD,CAAC;IACF,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,KAAK,EACL,QAAQ,GACT,EAAE,6BAA6B,2CAkE/B;AAED,mDAAmD;AACnD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,0BAA0B,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,kDAI5D"}
1
+ {"version":3,"file":"AssistantOverlay.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAmBL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAID,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,4BAA4B,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GACnD,IAAI,CAaN;AAID,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACtD,CAAC;IACF,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,KAAK,EACL,QAAQ,GACT,EAAE,6BAA6B,2CAkE/B;AAED,mDAAmD;AACnD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,0BAA0B,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,kDAI5D"}
@@ -1,99 +1,100 @@
1
1
  import { useAssistantTr as e } from "../i18n.js";
2
2
  import { quotaExhaustedEventName as t } from "../quota.js";
3
3
  import { assistantPanelOwnsEscape as n } from "./panelOverlays.js";
4
- import { AIAssistantPanel as r } from "./AIAssistantPanel.js";
5
- import { ASSISTANT_DOCK_WIDTH_VAR as i, ASSISTANT_OVERLAY_DESKTOP_QUERY as a, ASSISTANT_OVERLAY_TOP_VAR as o, aboveAssistantBottomChrome as s, assistantOverlayClassName as c, assistantOverlayEscapeAction as l, assistantOverlayKeys as u, assistantQuotaKindOf as d, createAssistantNavigate as f, isAssistantToggleShortcut as p, nextAssistantOpenState as m, publishedAssistantDockWidth as h, readAssistantOverlayFlag as g, requestedAssistantOpenState as _, writeAssistantOverlayFlag as v } from "./assistantOverlayState.js";
6
- import { createContext as y, useCallback as b, useContext as x, useEffect as S, useMemo as C, useRef as w, useState as T, useSyncExternalStore as E } from "react";
7
- import { Sparkles as D } from "lucide-react";
8
- import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
4
+ import { AssistantPreviewBridgeHost as r } from "../preview/bridgeHost.js";
5
+ import { AIAssistantPanel as i } from "./AIAssistantPanel.js";
6
+ import { ASSISTANT_DOCK_WIDTH_VAR as a, ASSISTANT_OVERLAY_DESKTOP_QUERY as o, ASSISTANT_OVERLAY_TOP_VAR as s, aboveAssistantBottomChrome as c, assistantOverlayClassName as l, assistantOverlayEscapeAction as u, assistantOverlayKeys as d, assistantQuotaKindOf as f, createAssistantNavigate as p, isAssistantToggleShortcut as m, nextAssistantOpenState as h, publishedAssistantDockWidth as g, readAssistantOverlayFlag as _, requestedAssistantOpenState as v, writeAssistantOverlayFlag as y } from "./assistantOverlayState.js";
7
+ import { createContext as b, useCallback as x, useContext as S, useEffect as C, useMemo as w, useRef as T, useState as E, useSyncExternalStore as D } from "react";
8
+ import { Sparkles as O } from "lucide-react";
9
+ import { jsx as k, jsxs as A } from "react/jsx-runtime";
9
10
  //#region src/shared/assistant/ui/AssistantOverlay.tsx
10
- var j = y(null);
11
+ var j = b(null);
11
12
  function M() {
12
- return x(j);
13
+ return S(j);
13
14
  }
14
15
  function N() {
15
- return x(j)?.dockWidthPx ?? 0;
16
+ return S(j)?.dockWidthPx ?? 0;
16
17
  }
17
18
  var P = () => typeof window > "u" ? void 0 : window.sessionStorage, F = () => typeof window > "u" ? void 0 : window.localStorage;
18
19
  function I(e) {
19
20
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
20
- let t = window.matchMedia(a);
21
+ let t = window.matchMedia(o);
21
22
  return t.addEventListener("change", e), () => t.removeEventListener("change", e);
22
23
  }
23
24
  function L() {
24
25
  return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(min-width: 640px)").matches;
25
26
  }
26
27
  function R() {
27
- return E(I, L, () => !1);
28
+ return D(I, L, () => !1);
28
29
  }
29
30
  function z(e, n) {
30
- let r = w(n);
31
- S(() => {
31
+ let r = T(n);
32
+ C(() => {
32
33
  r.current = n;
33
- }, [n]), S(() => {
34
+ }, [n]), C(() => {
34
35
  if (!e || typeof window > "u") return;
35
- let n = t(e), i = (e) => r.current(d(e), e);
36
+ let n = t(e), i = (e) => r.current(f(e), e);
36
37
  return window.addEventListener(n, i), () => window.removeEventListener(n, i);
37
38
  }, [e]);
38
39
  }
39
40
  var B = () => {};
40
41
  function V({ keyPrefix: e, quota: t, children: n }) {
41
- let r = C(() => u(e), [e]), [a, o] = T(() => g(P, r.openStorageKey)), [s, c] = T(() => g(F, r.dockStorageKey)), l = b(() => o(!0), []), d = b(() => o(!1), []), f = b(() => o((e) => !e), []), y = b(() => c((e) => !e), []);
42
- S(() => {
43
- v(P, r.openStorageKey, a);
44
- }, [r.openStorageKey, a]), S(() => {
45
- v(F, r.dockStorageKey, s);
46
- }, [r.dockStorageKey, s]), S(() => {
42
+ let r = w(() => d(e), [e]), [i, o] = E(() => _(P, r.openStorageKey)), [s, c] = E(() => _(F, r.dockStorageKey)), l = x(() => o(!0), []), u = x(() => o(!1), []), f = x(() => o((e) => !e), []), p = x(() => c((e) => !e), []);
43
+ C(() => {
44
+ y(P, r.openStorageKey, i);
45
+ }, [r.openStorageKey, i]), C(() => {
46
+ y(F, r.dockStorageKey, s);
47
+ }, [r.dockStorageKey, s]), C(() => {
47
48
  if (typeof window > "u") return;
48
49
  let e = (e) => {
49
- let t = _(e);
50
- o((e) => m(e, t));
50
+ let t = v(e);
51
+ o((e) => h(e, t));
51
52
  };
52
53
  return window.addEventListener(r.toggleEvent, e), () => window.removeEventListener(r.toggleEvent, e);
53
- }, [r.toggleEvent]), S(() => {
54
+ }, [r.toggleEvent]), C(() => {
54
55
  if (typeof document > "u") return;
55
56
  let e = (e) => {
56
- p(e) && (e.preventDefault(), o((e) => !e));
57
+ m(e) && (e.preventDefault(), o((e) => !e));
57
58
  };
58
59
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
59
60
  }, []), z(t?.product ?? null, t?.onExhausted ?? B);
60
- let x = h({
61
- isOpen: a,
61
+ let b = g({
62
+ isOpen: i,
62
63
  docked: s,
63
64
  isDesktop: R()
64
65
  });
65
- S(() => {
66
+ C(() => {
66
67
  if (typeof document > "u") return;
67
68
  let e = document.documentElement.style;
68
- return e.setProperty(i, `${x}px`), () => {
69
- e.removeProperty(i);
69
+ return e.setProperty(a, `${b}px`), () => {
70
+ e.removeProperty(a);
70
71
  };
71
- }, [x]);
72
- let w = C(() => ({
73
- isOpen: a,
72
+ }, [b]);
73
+ let S = w(() => ({
74
+ isOpen: i,
74
75
  open: l,
75
- close: d,
76
+ close: u,
76
77
  toggle: f,
77
78
  docked: s,
78
- toggleDock: y,
79
- dockWidthPx: x,
79
+ toggleDock: p,
80
+ dockWidthPx: b,
80
81
  keys: r
81
82
  }), [
82
- a,
83
+ i,
83
84
  l,
84
- d,
85
+ u,
85
86
  f,
86
87
  s,
87
- y,
88
- x,
88
+ p,
89
+ b,
89
90
  r
90
91
  ]);
91
92
  return /* @__PURE__ */ k(j.Provider, {
92
- value: w,
93
+ value: S,
93
94
  children: n
94
95
  });
95
96
  }
96
- var H = (e, t) => /* @__PURE__ */ k(r, {
97
+ var H = (e, t) => /* @__PURE__ */ k(i, {
97
98
  ...e,
98
99
  ...t
99
100
  });
@@ -104,68 +105,71 @@ function U(e) {
104
105
  ...e
105
106
  }) : null;
106
107
  }
107
- function W({ state: t, panelId: r = "ai-assistant", panelProps: i, renderPanel: a, navigate: u, isShellLessTarget: d, topOffsetPx: p = 56, launcherIcon: m, launcherBottomInset: h = "1.5rem", showLauncher: g = !0 }) {
108
- let { isOpen: _, close: v, toggle: y, docked: b, toggleDock: x } = t, w = e(), [E, j] = T(!1), M = C(() => u ? f({
109
- navigate: u,
110
- isShellLessTarget: d,
108
+ function W({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel: o, navigate: d, isShellLessTarget: f, topOffsetPx: m = 56, launcherIcon: h, launcherBottomInset: g = "1.5rem", showLauncher: _ = !0 }) {
109
+ let { isOpen: v, close: y, toggle: b, docked: x, toggleDock: S } = t, T = e(), [D, j] = E(!1), M = w(() => d ? p({
110
+ navigate: d,
111
+ isShellLessTarget: f,
111
112
  isDesktop: L,
112
113
  collapseSheet: () => j(!1),
113
114
  openInNewTab: (e) => window.open(e, "_blank", "noopener,noreferrer")
114
- }) : void 0, [u, d]);
115
- S(() => {
116
- if (!_) return;
115
+ }) : void 0, [d, f]);
116
+ C(() => {
117
+ if (!v) return;
117
118
  let e = (e) => {
118
- l({
119
+ u({
119
120
  key: e.key,
120
- isOpen: _,
121
+ isOpen: v,
121
122
  dialogOpen: document.querySelector("[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
122
123
  panelOwnsEscape: n()
123
- }) === "close" && (e.preventDefault(), v());
124
+ }) === "close" && (e.preventDefault(), y());
124
125
  };
125
126
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
126
- }, [_, v]);
127
+ }, [v, y]);
127
128
  let N = {
128
- panelId: r,
129
+ panelId: i,
129
130
  visible: !0,
130
- onClose: v,
131
- docked: b,
132
- onToggleDock: x,
131
+ onClose: y,
132
+ docked: x,
133
+ onToggleDock: S,
133
134
  onNavigate: M
134
- }, P = w("overlay.launcher", "AI Assistant"), F = { [o]: `${p}px` };
135
- return /* @__PURE__ */ A(O, { children: [_ && /* @__PURE__ */ A("div", {
136
- className: c({
137
- expanded: E,
138
- docked: b
139
- }),
140
- style: F,
141
- "data-testid": "assistant-overlay",
142
- children: [/* @__PURE__ */ k("button", {
135
+ }, P = T("overlay.launcher", "AI Assistant"), F = { [s]: `${m}px` };
136
+ return /* @__PURE__ */ A(r, {
137
+ preview: a?.preview,
138
+ children: [v && /* @__PURE__ */ A("div", {
139
+ className: l({
140
+ expanded: D,
141
+ docked: x
142
+ }),
143
+ style: F,
144
+ "data-testid": "assistant-overlay",
145
+ children: [/* @__PURE__ */ k("button", {
146
+ type: "button",
147
+ onClick: () => j((e) => !e),
148
+ className: "flex w-full shrink-0 justify-center pt-2 pb-1 sm:hidden",
149
+ "aria-label": D ? T("sheet.collapse", "Shrink the assistant") : T("sheet.expand", "Expand the assistant"),
150
+ "aria-expanded": D,
151
+ "data-testid": "assistant-sheet-handle",
152
+ children: /* @__PURE__ */ k("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
153
+ }), /* @__PURE__ */ k("div", {
154
+ className: "flex min-h-0 flex-1 flex-col",
155
+ children: o ? o(N) : H(a, N)
156
+ })]
157
+ }), _ && /* @__PURE__ */ k("button", {
143
158
  type: "button",
144
- onClick: () => j((e) => !e),
145
- className: "flex w-full shrink-0 justify-center pt-2 pb-1 sm:hidden",
146
- "aria-label": E ? w("sheet.collapse", "Shrink the assistant") : w("sheet.expand", "Expand the assistant"),
147
- "aria-expanded": E,
148
- "data-testid": "assistant-sheet-handle",
149
- children: /* @__PURE__ */ k("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
150
- }), /* @__PURE__ */ k("div", {
151
- className: "flex min-h-0 flex-1 flex-col",
152
- children: a ? a(N) : H(i, N)
159
+ onClick: b,
160
+ title: T("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
161
+ "aria-label": P,
162
+ "aria-haspopup": "dialog",
163
+ "aria-expanded": v,
164
+ "data-testid": "assistant-fab",
165
+ style: { bottom: c(g) },
166
+ className: "fixed right-6 z-30 size-14 items-center justify-center rounded-full border border-border-strong bg-[var(--color-accent-soft)] text-action-primary-bg shadow-float transition-colors duration-200 hover:border-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] cursor-pointer " + (v ? "hidden sm:inline-flex" : "inline-flex"),
167
+ children: h ?? /* @__PURE__ */ k(O, {
168
+ className: "size-6",
169
+ "aria-hidden": "true"
170
+ })
153
171
  })]
154
- }), g && /* @__PURE__ */ k("button", {
155
- type: "button",
156
- onClick: y,
157
- title: w("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
158
- "aria-label": P,
159
- "aria-haspopup": "dialog",
160
- "aria-expanded": _,
161
- "data-testid": "assistant-fab",
162
- style: { bottom: s(h) },
163
- className: "fixed right-6 z-30 size-14 items-center justify-center rounded-full border border-border-strong bg-[var(--color-accent-soft)] text-action-primary-bg shadow-float transition-colors duration-200 hover:border-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] cursor-pointer " + (_ ? "hidden sm:inline-flex" : "inline-flex"),
164
- children: m ?? /* @__PURE__ */ k(D, {
165
- className: "size-6",
166
- "aria-hidden": "true"
167
- })
168
- })] });
172
+ });
169
173
  }
170
174
  //#endregion
171
175
  export { U as AssistantOverlay, V as AssistantOverlayProvider, N as useAssistantDockWidth, M as useAssistantOverlayOrNull, z as useAssistantQuotaExhausted };
@@ -9,16 +9,19 @@
9
9
  * a permission error. The two questions have different answers and both are
10
10
  * legitimate; this hook asks the second one.
11
11
  *
12
- * ★ Measured 2026-09-02 against prod: `checkPermissions` answers cleanly
13
- * (HTTP 200, no errors) with `allowed: false`, `decisionPath: "default:deny"`,
14
- * and a null role — for an org OWNER. Workspace/project scopes have no roles
15
- * provisioned at all, so the honest answer today is "no, for everyone".
12
+ * ★ What it can look like: measured 2026-09-02 against prod, `checkPermissions`
13
+ * answered cleanly (HTTP 200, no errors) with `allowed: false`,
14
+ * `decisionPath: "default:deny"` and a null role — for an org OWNER. That was
15
+ * ONE workspace whose roles had never been initialised (fixed 2026-09-07 by
16
+ * `initializeWorkspaceRoles`), not the platform: workspaces are seeded with
17
+ * their role templates, and for a member whose role grants the probed actions
18
+ * this returns `granted`.
16
19
  *
17
- * ★ Which is exactly why this hook only WARNS. Using it to gate the mode would
18
- * remove Take-action from the product entirely until an ops task lands, and
19
- * dressing that up as a permissions fix would be worse than the confusion it
20
- * replaces. The moment roles are provisioned this starts returning `granted`
21
- * and the warning disappears on its own, with no code change.
20
+ * ★ Which is exactly why this hook only WARNS. The `@rbac` check on each
21
+ * mutation is the authority; a client-side read like this one can be wrong —
22
+ * an uninitialised workspace, a stale role — and a GATE built on it would hide
23
+ * Take-action from a person who is allowed to use it. A warning that turns out
24
+ * to be unnecessary costs a sentence; a wrong gate costs the mode.
22
25
  *
23
26
  * Fails OPEN on error or while loading: a network blip must not accuse someone
24
27
  * of lacking a permission they may well have.
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkspaceWriteAccess.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/useWorkspaceWriteAccess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAwBH,8EAA8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,oBAAoB,CAkDtB"}
1
+ {"version":3,"file":"useWorkspaceWriteAccess.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/useWorkspaceWriteAccess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAwBH,8EAA8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,oBAAoB,CAkDtB"}
@@ -87,43 +87,45 @@ import { AssistantEntityPreview as go } from "./shared/assistant/preview/entity/
87
87
  import { useOverlayFocus as _o } from "./shared/assistant/ui/useOverlayFocus.js";
88
88
  import { REDUCED_MOTION_ATTRIBUTE as vo, REDUCED_MOTION_QUERY as yo, readReducedMotion as bo, subscribeReducedMotion as xo, usePrefersReducedMotion as So } from "./shared/assistant/ui/usePrefersReducedMotion.js";
89
89
  import { useAssistantPreviewBridge as Co } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
90
- import { AssistantPreviewOverlay as wo } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
91
- import { AssistantLanguageSelector as To, FOLLOW_APP_LOCALE as Eo } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
92
- import { ASSISTANT_MODE_META as Do, AssistantModeSelector as Oo, assistantModeMeta as ko, nextModeIndex as Ao } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
93
- import { AssistantVoiceButton as jo } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
94
- import { AUTO_VOICE as Mo, AssistantVoiceSelector as No } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
95
- import { AssistantVoiceOrb as Po } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
96
- import { AssistantVoiceSessionButton as Fo } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
97
- import { CAPTION_SCROLL_ATTR as Io, VoiceCaption as Lo } from "./shared/assistant/ui/voice/VoiceCaption.js";
98
- import { VoiceConversationView as Ro } from "./shared/assistant/ui/voice/VoiceConversationView.js";
99
- import { VoiceWaveform as zo } from "./shared/assistant/ui/voice/VoiceWaveform.js";
100
- import { VoiceStatusLine as Bo, VoiceStatusText as Vo } from "./shared/assistant/ui/voice/VoiceStatusText.js";
101
- import { VoiceMiniController as Ho } from "./shared/assistant/ui/voice/VoiceMiniController.js";
102
- import { VoiceStage as Uo } from "./shared/assistant/ui/voice/VoiceStage.js";
103
- import { VoiceTranscriptDrawer as Wo } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
104
- import { downloadFile as Go, exportConversation as Ko } from "./shared/assistant/exportConversation.js";
105
- import { AssistantMoreMenu as qo } from "./shared/assistant/ui/AssistantMoreMenu.js";
106
- import { AssistantHeader as Jo } from "./shared/assistant/ui/AssistantHeader.js";
107
- import { AssistantConversationList as Yo } from "./shared/assistant/ui/AssistantConversationList.js";
108
- import { AssistantEmptyState as Xo } from "./shared/assistant/ui/AssistantEmptyState.js";
109
- import { AssistantTurnActivity as Zo, TurnActivityLine as Qo } from "./shared/assistant/ui/AssistantTurnActivity.js";
110
- import { AssistantMessageItem as $o } from "./shared/assistant/ui/AssistantMessageItem.js";
111
- import { AssistantMessageList as es } from "./shared/assistant/ui/AssistantMessageList.js";
112
- import { AssistantVoiceSession as ts } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
113
- import { useAssistantApiAccess as ns } from "./shared/assistant/useAssistantApiAccess.js";
114
- import { useConversationTurns as rs } from "./shared/assistant/useConversationTurns.js";
115
- import { isMultimodalBodyRejection as is, isRecoverableAssistantError as as } from "./shared/assistant/transportErrors.js";
116
- import { aiCreditsUpdatedEventName as os, dispatchAssistantQuotaExhausted as ss, notifyAiCreditsUpdated as cs } from "./shared/assistant/aiCredits.js";
117
- import { useWorkspaceWriteAccess as ls } from "./shared/assistant/useWorkspaceWriteAccess.js";
118
- import { extractDocumentText as us } from "./shared/assistant/documentExtract.js";
119
- import { useAssistantAttachments as ds } from "./shared/assistant/useAssistantAttachments.js";
120
- import { AssistantComposer as fs } from "./shared/assistant/ui/composer/AssistantComposer.js";
121
- import { isProdRuntime as ps } from "./shared/assistant/env.js";
122
- import { useAssistantHeartbeat as ms } from "./shared/assistant/useAssistantHeartbeat.js";
123
- import { useAssistantKeyboardShortcuts as hs } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
124
- import { AssistantApiCallsConsentDialog as gs } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
125
- import { AssistantChatArea as _s } from "./shared/assistant/ui/AssistantChatArea.js";
126
- import { AIAssistantPanel as vs } from "./shared/assistant/ui/AIAssistantPanel.js";
127
- import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as ys, ASSISTANT_DIALOG_SELECTOR as bs, ASSISTANT_DOCKED_DESKTOP_CLASS as xs, ASSISTANT_DOCK_WIDTH_PX as Ss, ASSISTANT_DOCK_WIDTH_VAR as Cs, ASSISTANT_FLOATING_DESKTOP_CLASS as ws, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as Ts, ASSISTANT_OVERLAY_DESKTOP_QUERY as Es, ASSISTANT_OVERLAY_TOP_VAR as Ds, ASSISTANT_SHEET_BASE_CLASS as Os, ASSISTANT_SHEET_COMPACT_CLASS as ks, ASSISTANT_SHEET_EXPANDED_CLASS as As, ASSISTANT_TOGGLE_SHORTCUT_LABEL as js, aboveAssistantBottomChrome as Ms, assistantOverlayClassName as Ns, assistantOverlayEscapeAction as Ps, assistantOverlayKeys as Fs, assistantQuotaKindOf as Is, createAssistantNavigate as Ls, isAssistantToggleShortcut as Rs, nextAssistantOpenState as zs, publishedAssistantDockWidth as Bs, readAssistantOverlayFlag as Vs, requestedAssistantOpenState as Hs, writeAssistantOverlayFlag as Us } from "./shared/assistant/ui/assistantOverlayState.js";
128
- import { AssistantOverlay as Ws, AssistantOverlayProvider as Gs, useAssistantDockWidth as Ks, useAssistantOverlayOrNull as qs, useAssistantQuotaExhausted as Js } from "./shared/assistant/ui/AssistantOverlay.js";
129
- export { Ti as ADMIN_MODE_ACCESS_WAIT_MS, vs as AIAssistantPanel, q as ASSISTANT_API_AUTH_STRATEGY, ys as ASSISTANT_BOTTOM_CHROME_CLEARANCE, bs as ASSISTANT_DIALOG_SELECTOR, xs as ASSISTANT_DOCKED_DESKTOP_CLASS, Ss as ASSISTANT_DOCK_WIDTH_PX, Cs as ASSISTANT_DOCK_WIDTH_VAR, ws as ASSISTANT_FLOATING_DESKTOP_CLASS, bi as ASSISTANT_I18N_COMPUTED_COPY, xi as ASSISTANT_I18N_LITERAL_COPY, Si as ASSISTANT_I18N_MANIFEST, or as ASSISTANT_LANGUAGES, L as ASSISTANT_MODE_FALLBACK_LABELS, R as ASSISTANT_MODE_IDS, Do as ASSISTANT_MODE_META, Pa as ASSISTANT_OVERLAY_ATTR, Ts as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, Es as ASSISTANT_OVERLAY_DESKTOP_QUERY, Ds as ASSISTANT_OVERLAY_TOP_VAR, Fa as ASSISTANT_PANEL_ATTR, Os as ASSISTANT_SHEET_BASE_CLASS, ks as ASSISTANT_SHEET_COMPACT_CLASS, As as ASSISTANT_SHEET_EXPANDED_CLASS, js as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Pr as ATTACHMENT_ACCEPT, _i as ATTACHMENT_SOURCES, Mo as AUTO_VOICE, gs as AssistantApiCallsConsentDialog, Wa as AssistantAttachmentButton, Ga as AssistantAttachmentChips, wa as AssistantAutoSpeakToggle, ma as AssistantAvatar, _s as AssistantChatArea, fs as AssistantComposer, Na as AssistantConnectSourceItem, ja as AssistantConnectSourceProvider, Yo as AssistantConversationList, Xo as AssistantEmptyState, go as AssistantEntityPreview, Jo as AssistantHeader, s as AssistantI18nProvider, Da as AssistantLanguageMenu, To as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, Ta as AssistantMessageAttachments, $o as AssistantMessageItem, es as AssistantMessageList, Oo as AssistantModeSelector, qo as AssistantMoreMenu, g as AssistantNavigateProvider, Ws as AssistantOverlay, Gs as AssistantOverlayProvider, Ea as AssistantPendingWriteCard, wo as AssistantPreviewOverlay, Ka as AssistantPreviewProvider, t as AssistantProductProvider, Oa as AssistantReplyLanguageSelector, Pe as AssistantRuntimeManager, ka as AssistantSpeakButton, ha as AssistantSpeechProvider, Aa as AssistantSpokenTurnsNotice, ho as AssistantStepRail, ua as AssistantToolActivity, Zo as AssistantTurnActivity, jo as AssistantVoiceButton, Po as AssistantVoiceOrb, No as AssistantVoiceSelector, ts as AssistantVoiceSession, Fo as AssistantVoiceSessionButton, Fr as AttachmentRejectedError, mr as BOILERPLATE_PAGE_SHARE, qe as BUILT_IN_MODE_CAPABILITIES, Io as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, Ir as DEFAULT_INLINE_LIMITS, zn as DEFAULT_SPEAKABLE_LABELS, sr as DEFAULT_SPEECH_RATE, tt as DEFAULT_STREAM_BUDGET_MS, wn as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, Eo as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, yt as HOSTED_DISABLE_MS, bt as HOSTED_TTS_MAX_CHARS, ht as HOSTED_TTS_TIER, gt as HOSTED_VOICES, Nt as HOSTED_VOICE_RANK, so as IDLE_ACTIVE_TAB, Hi as IDLE_PLAYBACK, Qa as IDLE_PREVIEW, Ja as IDLE_PREVIEW_STATE, yn as IDLE_ROTATION_CLOCK, nt as INCOMPLETE_TURN_NOTICES, Tn as INITIAL_SESSION, Lr as INLINE_IMAGE_MAX_DIM, Rr as INLINE_IMAGE_QUALITY, En as INTERRUPT_MAX_MS, Dn as INTERRUPT_MIN_MS, ji as LEGACY_WRITE_CONSENT_KEY, Je as MAX_ASSISTANT_STREAM_BUDGET_MS, zr as MAX_ATTACHMENTS, hr as MAX_BOILERPLATE_LINE_CHARS, Br as MAX_CONFIGURABLE_INLINE_CHARS, gr as MAX_EXTRACTED_CHARS, Vr as MAX_FILE_BYTES, Hr as MAX_INLINE_CHARS_PER_FILE, Ur as MAX_INLINE_CHARS_TOTAL, ie as MAX_INLINE_IMAGE_BASE64_BYTES, Wr as MAX_INLINE_IMAGE_BASE64_CHARS, Gr as MAX_INLINE_IMAGE_PARTS, Kr as MAX_INLINE_TURN_BODY_BYTES, _r as MAX_PDF_PAGES_SCANNED, ae as MAX_REQUEST_BODY_BYTES, Bn as MAX_SPEAKABLE_CHARS, Vn as MAX_SPOKEN_TABLE_ROWS, qr as MAX_TURN_BODY_BYTES, Zn as MINI_CAPTION_BUDGET, vr as MIN_PAGE_TEXT_CHARS, yr as MIN_TEXT_PAGE_SHARE, $a as NO_OWNER, Ia as NO_PANEL_OVERLAY, sn as PHRASE_ROTATE_MS, $n as POLL_FAST_MS, er as POLL_FAST_UNTIL_MS, tr as POLL_SLOW_MS, nr as POLL_STEADY_MS, rr as POLL_STEADY_UNTIL_MS, Yn as PREVIEW_LANGUAGES, V as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, H as PRODUCT_ASSISTANT_MODE_ID_PATTERN, Jr as PROMPT_ENVELOPE_RESERVE_BYTES, Yr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, vo as REDUCED_MOTION_ATTRIBUTE, yo as REDUCED_MOTION_QUERY, P as REPORT_AI_TOKEN_USAGE, oe as REQUEST_TOO_LARGE_REFUSAL, xa as SANDBOX_READY_TTL_MS, On as SILENCE_SUBMIT_MS, xt as SPEAKING_RATE_MAX, St as SPEAKING_RATE_MAX_STREAMING, Ct as SPEAKING_RATE_MAX_SYNC, wt as SPEAKING_RATE_MIN, Hn as SPEECH_CHUNK_CHARS, Un as SPEECH_CHUNK_CJK_CHARS, Pt as SPEECH_LANG, Ri as SPOKEN_LABEL_LANGUAGES, cn as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, rt as STREAM_BUDGET_MS, Mi as TAKE_ACTION_ENGLISH, ln as THINKING_PHRASES, Xr as TURN_BODY_HEADROOM_BYTES, Qo as TurnActivityLine, Ye as UNAVAILABLE_MODE_REFUSAL, Xe as UNDECLARED_MODE_CAPABILITIES, Ft as VOICE_LIST_TIMEOUT_MS, mn as VOICE_MUTED_LABEL, hn as VOICE_THINKING_LABEL, Lo as VoiceCaption, Ro as VoiceConversationView, Ho as VoiceMiniController, Uo as VoiceStage, Bo as VoiceStatusLine, Vo as VoiceStatusText, Wo as VoiceTranscriptDrawer, zo as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, se as abortAssistantTurn, Ms as aboveAssistantBottomChrome, La as activePanelOverlay, Ze as adminOnlyModeSendRefusal, Ei as adminOnlyModeSendRefusalAfterAccess, bn as advanceRotationClock, os as aiCreditsUpdatedEventName, eo as applyPreviewEvent, ce as approvePendingWrite, Ci as assistantI18nSeedCopy, z as assistantModeFallbackLabel, wi as assistantModeI18nCopy, ko as assistantModeMeta, Ns as assistantOverlayClassName, Ps as assistantOverlayEscapeAction, Fs as assistantOverlayKeys, Ra as assistantPanelOwnsEscape, Is as assistantQuotaKindOf, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, vi as availableAttachmentSources, Tt as base64ToBytes, y as browserShouldHandle, mt as browserSpeechEngine, la as buildAssistantProgress, le as buildAssistantSandboxEnv, Zr as buildAttachmentPromptBlock, Ai as buildBoundedAttachmentTurn, In as buildContinuedFromVoiceNote, Fe as buildProgress, ue as buildPromptGatewayRequest, Qr as buildPromptParts, de as buildPromptRequestBody, $r as buildPromptWithAttachments, Et as buildRequest, E as buildSandboxContextInput, Ln as buildVoiceTranscriptMarkdown, U as builtInModeExtendedBy, st as chatTurns, fe as checkAssistantAiCredits, Wn as chunkForSpeech, b as classifyAssistantHref, ei as classifyAttachment, Dt as classifyHttpFailure, S as classifyQuotaError, br as columnLetterToIndex, gn as composeVoiceStatus, Jt as configureSpeechEngine, Gn as containsCjk, d as copyToClipboard, ti as countInlineImageCandidates, ni as countInlinedImageParts, fa as countSpokenTurns, Di as createAdminModeAccessGate, Ls as createAssistantNavigate, to as createAssistantPreviewSurface, pe as createAssistantSandbox, me as createAssistantSession, Mt as createHostedTtsEngine, Sa as createReadinessTracker, qt as createRoutingSpeechEngine, ao as createRunIdentityCache, Ge as createSandboxAssistantTransport, Yt as createSpeechEngines, no as currentPreviewOwner, W as declareAssistantMode, Ot as decodeAudioResponse, xr as decodeXmlEntities, C as describeQuotaError, ri as detectDocumentFormat, Bi as detectScriptLocale, yi as deviceHasCamera, kt as disableDurationMs, ss as dispatchAssistantQuotaExhausted, Sr as docxXmlToText, he as downloadAssistantArtifact, Go as downloadFile, ia as elapsedSince, za as escapeDismisses, ii as estimateTurnBodyBytes, D as executeSandboxGraphQL, Ko as exportConversation, ge as extendAssistantSandboxTTL, us as extractDocumentText, cr as findAssistantLanguage, Qe as findAssistantModeConfig, _e as findExistingSandbox, fr as findPendingWrite, Cr as fitPdfPages, Ba as focusIsInsidePanel, ai as formatBytes, wr as formatPageRanges, ve as forwardsUserTokensToSandbox, va as getActorId, ye as getAssistantArtifacts, ra as getAssistantDisplayContent, Ie as getAssistantMedia, be as getAssistantMessages, xe as getAssistantSession, Se as getAssistantStreamAccess, Le as getAssistantText, oi as getAttachmentSendBlocker, ee as getCapability, si as getExtension, J as getImageForMode, Y as getImageTagForMode, ya as getOrganizationId, Re as getRawMessageCreatedAt, X as getResourcesForMode, Z as getSandboxImageRegistry, ci as getSendableAttachments, Xt as getSpeechEngine, ze as getToolProgress, ba as getWorkspaceId, ct as groupBySession, lt as groupConsecutiveBySession, li as hasAttachmentWorkInFlight, _t as hostedLocaleFor, vt as hostedSupportsLanguage, p as imageHostLabel, it as incompleteTurnNotice, G as isAssistantModeId, Rs as isAssistantToggleShortcut, Ya as isBlankProse, B as isBuiltInAssistantMode, kn as isCapturing, An as isEcho, It as isHostedVoice, $i as isLegacyFiller, ea as isLegacyStopped, Tr as isMostlyImagePages, is as isMultimodalBodyRejection, ps as isProdRuntime, K as isProductAssistantModeId, ui as isProviderReadableFilePart, w as isQuotaExhaustedError, Be as isReapedSandboxConnectionError, Ca as isRecentlyVerified, Ve as isRecoverable, as as isRecoverableAssistantError, m as isRemoteImageSrc, Xa as isRunningStatus, Ui as isSpeakingMessage, Lt as isSpeechBlocked, ta as isStageCopy, jn as isSubmittable, Xi as isTurnInFlight, te as isUnknownFieldError, ut as isVoiceTurn, Ni as isWriteModeAcknowledged, Er as joinSheets, Rt as languageDisplayName, di as largestInlineCharsPerFile, He as mapSessionToHistory, ne as markSupported, re as markUnsupported, Ue as mergeMessagesById, qi as mergePersistedAssistantState, en as micIsInterrupt, Ce as modeRequiresConfirmWrites, aa as msUntilNextPhrase, co as nextActiveTab, zs as nextAssistantOpenState, Ao as nextModeIndex, Va as nextPanelOverlays, Za as nextPreviewEvents, zt as normalizeLangTag, cs as notifyAiCreditsUpdated, Mn as orbMode, Dr as pageMarker, Ha as panelOwnsEscape, pr as parseConfirmationRefusal, fi as parseDataUrl, Or as parseSharedStrings, da as parseToolActivity, kr as parseWorkbookSheets, Ar as pdfTextItemsToPage, lo as pinActiveTab, Zi as planAbandonedTurn, Nn as planReplyConsumption, Qi as planTurnAbort, ir as pollDelayMs, Bt as primaryLanguageSubtag, we as promptGatewayRequestBytes, Bs as publishedAssistantDockWidth, Wi as publishedChunks, T as quotaExhaustedEventName, Vs as readAssistantOverlayFlag, bo as readReducedMotion, Zt as readSpeechEngineConfig, Te as releaseSupersededAssistantSandboxes, ur as replyFollowsInput, Ee as reportAssistantAiTokenUsage, Hs as requestedAssistantOpenState, Gi as requiresCancel, Qt as resetSpeechEngine, Ji as resolveActiveModeSandbox, pi as resolveAssistantInlineLimits, lr as resolveAssistantLanguage, $e as resolveAssistantModeCapabilities, Oi as resolveAssistantSendModeAfterAccess, dr as resolveLanguagePair, n as resolveModeConfig, Q as resolveSandboxAssistantMode, Vi as resolveSpeechLocale, Pi as restoreAcknowledgedWriteModes, xn as rotationElapsedMs, ro as runBelongsTo, oo as runIdentities, io as sameOwner, $ as sandboxBaseModeFor, We as sanitize, De as selectExistingAssistantSandbox, Oe as selectSupersededAssistantSandboxes, Vt as selectVoiceForLocale, ke as sendAssistantPromptAsync, Ae as sendHeartbeat, jr as sheetXmlToRows, At as shouldDisableEngine, uo as shouldPinOnMove, fo as shouldPinOnSelect, Qn as showPreviousChunk, tn as showsAssistantCaption, nn as showsUserCaption, Kn as speakableEmail, Ht as speechGate, zi as speechLabelsFor, Ut as speechLangForLocale, Ki as speechPlaybackReducer, jt as splitForVendor, qn as splitTableRow, Pn as spokenSoFar, pa as spokenTurnText, un as stageText, oa as startPhraseTicker, Sn as startRotationTicker, dn as statusStageCopy, po as stepsFromToolActivity, je as stopReapedAssistantSandbox, at as streamBudgetMs, na as stripLegacyFillerPrefix, xo as subscribeReducedMotion, $t as subscribeSpeechEngine, Mr as summarisePageText, Cn as syncRotationClock, mo as tabForArrowKey, fn as thinkingPhrase, pn as thinkingPhraseEntry, ar as toCaptionText, mi as toMessageAttachment, Jn as toSpeakableText, hi as truncateForInline, Nr as truncatePagesForInline, sa as turnActivityCopy, ca as turnActivityStage, et as unofferedModeSendRefusal, ki as unofferedModeSendRefusalAfterAccess, ns as useAssistantApiAccess, ds as useAssistantAttachments, Ma as useAssistantConnectSource, Ks as useAssistantDockWidth, ms as useAssistantHeartbeat, l as useAssistantI18nNamespace, hs as useAssistantKeyboardShortcuts, x as useAssistantNavigate, qs as useAssistantOverlayOrNull, r as useAssistantPageLabel, qa as useAssistantPreview, Co as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, Js as useAssistantQuotaExhausted, ga as useAssistantSpeech, o as useAssistantStorageFolders, Yi as useAssistantStore, u as useAssistantTr, rs as useConversationTurns, Ua as useDropdownEscape, _o as useOverlayFocus, So as usePrefersReducedMotion, Ke as useSandboxAssistantTransport, e as useVoiceInput, _a as useVoiceSession, ls as useWorkspaceWriteAccess, gi as validateFile, Wt as voiceAvailability, dt as voiceMarker, Xn as voicePreviewText, Gt as voiceQualityRank, ft as voiceSessionIdOf, Fn as voiceSessionReducer, rn as voiceStageState, _n as voiceStatusParts, vn as voiceStatusSuffix, Rn as voiceTranscriptFilename, pt as voiceTurnsOnly, Kt as voicesForLocale, Me as waitForAssistantServiceReady, Ne as waitForSandboxRunning, an as waveformIsActive, on as waveformIsSettled, ot as withIncompleteTurnNotice, Fi as withWriteModeAcknowledged, Us as writeAssistantOverlayFlag, Ii as writeModeConsentCopy, Li as writeModeSendRefusal };
90
+ import { HostedPreviewBridgeContext as wo, panelOwnedPreviewBridge as To, useHostedAssistantPreviewBridge as Eo } from "./shared/assistant/preview/bridgeHostContext.js";
91
+ import { AssistantPreviewBridgeHost as Do } from "./shared/assistant/preview/bridgeHost.js";
92
+ import { AssistantPreviewOverlay as Oo } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
93
+ import { AssistantLanguageSelector as ko, FOLLOW_APP_LOCALE as Ao } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
94
+ import { ASSISTANT_MODE_META as jo, AssistantModeSelector as Mo, assistantModeMeta as No, nextModeIndex as Po } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
95
+ import { AssistantVoiceButton as Fo } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
96
+ import { AUTO_VOICE as Io, AssistantVoiceSelector as Lo } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
97
+ import { AssistantVoiceOrb as Ro } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
98
+ import { AssistantVoiceSessionButton as zo } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
99
+ import { CAPTION_SCROLL_ATTR as Bo, VoiceCaption as Vo } from "./shared/assistant/ui/voice/VoiceCaption.js";
100
+ import { VoiceConversationView as Ho } from "./shared/assistant/ui/voice/VoiceConversationView.js";
101
+ import { VoiceWaveform as Uo } from "./shared/assistant/ui/voice/VoiceWaveform.js";
102
+ import { VoiceStatusLine as Wo, VoiceStatusText as Go } from "./shared/assistant/ui/voice/VoiceStatusText.js";
103
+ import { VoiceMiniController as Ko } from "./shared/assistant/ui/voice/VoiceMiniController.js";
104
+ import { VoiceStage as qo } from "./shared/assistant/ui/voice/VoiceStage.js";
105
+ import { VoiceTranscriptDrawer as Jo } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
106
+ import { downloadFile as Yo, exportConversation as Xo } from "./shared/assistant/exportConversation.js";
107
+ import { AssistantMoreMenu as Zo } from "./shared/assistant/ui/AssistantMoreMenu.js";
108
+ import { AssistantHeader as Qo } from "./shared/assistant/ui/AssistantHeader.js";
109
+ import { AssistantConversationList as $o } from "./shared/assistant/ui/AssistantConversationList.js";
110
+ import { AssistantEmptyState as es } from "./shared/assistant/ui/AssistantEmptyState.js";
111
+ import { AssistantTurnActivity as ts, TurnActivityLine as ns } from "./shared/assistant/ui/AssistantTurnActivity.js";
112
+ import { AssistantMessageItem as rs } from "./shared/assistant/ui/AssistantMessageItem.js";
113
+ import { AssistantMessageList as is } from "./shared/assistant/ui/AssistantMessageList.js";
114
+ import { AssistantVoiceSession as as } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
115
+ import { useAssistantApiAccess as os } from "./shared/assistant/useAssistantApiAccess.js";
116
+ import { useConversationTurns as ss } from "./shared/assistant/useConversationTurns.js";
117
+ import { isMultimodalBodyRejection as cs, isRecoverableAssistantError as ls } from "./shared/assistant/transportErrors.js";
118
+ import { aiCreditsUpdatedEventName as us, dispatchAssistantQuotaExhausted as ds, notifyAiCreditsUpdated as fs } from "./shared/assistant/aiCredits.js";
119
+ import { useWorkspaceWriteAccess as ps } from "./shared/assistant/useWorkspaceWriteAccess.js";
120
+ import { extractDocumentText as ms } from "./shared/assistant/documentExtract.js";
121
+ import { useAssistantAttachments as hs } from "./shared/assistant/useAssistantAttachments.js";
122
+ import { AssistantComposer as gs } from "./shared/assistant/ui/composer/AssistantComposer.js";
123
+ import { isProdRuntime as _s } from "./shared/assistant/env.js";
124
+ import { useAssistantHeartbeat as vs } from "./shared/assistant/useAssistantHeartbeat.js";
125
+ import { useAssistantKeyboardShortcuts as ys } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
126
+ import { AssistantApiCallsConsentDialog as bs } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
127
+ import { AssistantChatArea as xs } from "./shared/assistant/ui/AssistantChatArea.js";
128
+ import { AIAssistantPanel as Ss } from "./shared/assistant/ui/AIAssistantPanel.js";
129
+ import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as Cs, ASSISTANT_DIALOG_SELECTOR as ws, ASSISTANT_DOCKED_DESKTOP_CLASS as Ts, ASSISTANT_DOCK_WIDTH_PX as Es, ASSISTANT_DOCK_WIDTH_VAR as Ds, ASSISTANT_FLOATING_DESKTOP_CLASS as Os, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as ks, ASSISTANT_OVERLAY_DESKTOP_QUERY as As, ASSISTANT_OVERLAY_TOP_VAR as js, ASSISTANT_SHEET_BASE_CLASS as Ms, ASSISTANT_SHEET_COMPACT_CLASS as Ns, ASSISTANT_SHEET_EXPANDED_CLASS as Ps, ASSISTANT_TOGGLE_SHORTCUT_LABEL as Fs, aboveAssistantBottomChrome as Is, assistantOverlayClassName as Ls, assistantOverlayEscapeAction as Rs, assistantOverlayKeys as zs, assistantQuotaKindOf as Bs, createAssistantNavigate as Vs, isAssistantToggleShortcut as Hs, nextAssistantOpenState as Us, publishedAssistantDockWidth as Ws, readAssistantOverlayFlag as Gs, requestedAssistantOpenState as Ks, writeAssistantOverlayFlag as qs } from "./shared/assistant/ui/assistantOverlayState.js";
130
+ import { AssistantOverlay as Js, AssistantOverlayProvider as Ys, useAssistantDockWidth as Xs, useAssistantOverlayOrNull as Zs, useAssistantQuotaExhausted as Qs } from "./shared/assistant/ui/AssistantOverlay.js";
131
+ export { Ti as ADMIN_MODE_ACCESS_WAIT_MS, Ss as AIAssistantPanel, q as ASSISTANT_API_AUTH_STRATEGY, Cs as ASSISTANT_BOTTOM_CHROME_CLEARANCE, ws as ASSISTANT_DIALOG_SELECTOR, Ts as ASSISTANT_DOCKED_DESKTOP_CLASS, Es as ASSISTANT_DOCK_WIDTH_PX, Ds as ASSISTANT_DOCK_WIDTH_VAR, Os as ASSISTANT_FLOATING_DESKTOP_CLASS, bi as ASSISTANT_I18N_COMPUTED_COPY, xi as ASSISTANT_I18N_LITERAL_COPY, Si as ASSISTANT_I18N_MANIFEST, or as ASSISTANT_LANGUAGES, L as ASSISTANT_MODE_FALLBACK_LABELS, R as ASSISTANT_MODE_IDS, jo as ASSISTANT_MODE_META, Pa as ASSISTANT_OVERLAY_ATTR, ks as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, As as ASSISTANT_OVERLAY_DESKTOP_QUERY, js as ASSISTANT_OVERLAY_TOP_VAR, Fa as ASSISTANT_PANEL_ATTR, Ms as ASSISTANT_SHEET_BASE_CLASS, Ns as ASSISTANT_SHEET_COMPACT_CLASS, Ps as ASSISTANT_SHEET_EXPANDED_CLASS, Fs as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Pr as ATTACHMENT_ACCEPT, _i as ATTACHMENT_SOURCES, Io as AUTO_VOICE, bs as AssistantApiCallsConsentDialog, Wa as AssistantAttachmentButton, Ga as AssistantAttachmentChips, wa as AssistantAutoSpeakToggle, ma as AssistantAvatar, xs as AssistantChatArea, gs as AssistantComposer, Na as AssistantConnectSourceItem, ja as AssistantConnectSourceProvider, $o as AssistantConversationList, es as AssistantEmptyState, go as AssistantEntityPreview, Qo as AssistantHeader, s as AssistantI18nProvider, Da as AssistantLanguageMenu, ko as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, Ta as AssistantMessageAttachments, rs as AssistantMessageItem, is as AssistantMessageList, Mo as AssistantModeSelector, Zo as AssistantMoreMenu, g as AssistantNavigateProvider, Js as AssistantOverlay, Ys as AssistantOverlayProvider, Ea as AssistantPendingWriteCard, Do as AssistantPreviewBridgeHost, Oo as AssistantPreviewOverlay, Ka as AssistantPreviewProvider, t as AssistantProductProvider, Oa as AssistantReplyLanguageSelector, Pe as AssistantRuntimeManager, ka as AssistantSpeakButton, ha as AssistantSpeechProvider, Aa as AssistantSpokenTurnsNotice, ho as AssistantStepRail, ua as AssistantToolActivity, ts as AssistantTurnActivity, Fo as AssistantVoiceButton, Ro as AssistantVoiceOrb, Lo as AssistantVoiceSelector, as as AssistantVoiceSession, zo as AssistantVoiceSessionButton, Fr as AttachmentRejectedError, mr as BOILERPLATE_PAGE_SHARE, qe as BUILT_IN_MODE_CAPABILITIES, Bo as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, Ir as DEFAULT_INLINE_LIMITS, zn as DEFAULT_SPEAKABLE_LABELS, sr as DEFAULT_SPEECH_RATE, tt as DEFAULT_STREAM_BUDGET_MS, wn as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, Ao as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, yt as HOSTED_DISABLE_MS, bt as HOSTED_TTS_MAX_CHARS, ht as HOSTED_TTS_TIER, gt as HOSTED_VOICES, Nt as HOSTED_VOICE_RANK, wo as HostedPreviewBridgeContext, so as IDLE_ACTIVE_TAB, Hi as IDLE_PLAYBACK, Qa as IDLE_PREVIEW, Ja as IDLE_PREVIEW_STATE, yn as IDLE_ROTATION_CLOCK, nt as INCOMPLETE_TURN_NOTICES, Tn as INITIAL_SESSION, Lr as INLINE_IMAGE_MAX_DIM, Rr as INLINE_IMAGE_QUALITY, En as INTERRUPT_MAX_MS, Dn as INTERRUPT_MIN_MS, ji as LEGACY_WRITE_CONSENT_KEY, Je as MAX_ASSISTANT_STREAM_BUDGET_MS, zr as MAX_ATTACHMENTS, hr as MAX_BOILERPLATE_LINE_CHARS, Br as MAX_CONFIGURABLE_INLINE_CHARS, gr as MAX_EXTRACTED_CHARS, Vr as MAX_FILE_BYTES, Hr as MAX_INLINE_CHARS_PER_FILE, Ur as MAX_INLINE_CHARS_TOTAL, ie as MAX_INLINE_IMAGE_BASE64_BYTES, Wr as MAX_INLINE_IMAGE_BASE64_CHARS, Gr as MAX_INLINE_IMAGE_PARTS, Kr as MAX_INLINE_TURN_BODY_BYTES, _r as MAX_PDF_PAGES_SCANNED, ae as MAX_REQUEST_BODY_BYTES, Bn as MAX_SPEAKABLE_CHARS, Vn as MAX_SPOKEN_TABLE_ROWS, qr as MAX_TURN_BODY_BYTES, Zn as MINI_CAPTION_BUDGET, vr as MIN_PAGE_TEXT_CHARS, yr as MIN_TEXT_PAGE_SHARE, $a as NO_OWNER, Ia as NO_PANEL_OVERLAY, sn as PHRASE_ROTATE_MS, $n as POLL_FAST_MS, er as POLL_FAST_UNTIL_MS, tr as POLL_SLOW_MS, nr as POLL_STEADY_MS, rr as POLL_STEADY_UNTIL_MS, Yn as PREVIEW_LANGUAGES, V as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, H as PRODUCT_ASSISTANT_MODE_ID_PATTERN, Jr as PROMPT_ENVELOPE_RESERVE_BYTES, Yr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, vo as REDUCED_MOTION_ATTRIBUTE, yo as REDUCED_MOTION_QUERY, P as REPORT_AI_TOKEN_USAGE, oe as REQUEST_TOO_LARGE_REFUSAL, xa as SANDBOX_READY_TTL_MS, On as SILENCE_SUBMIT_MS, xt as SPEAKING_RATE_MAX, St as SPEAKING_RATE_MAX_STREAMING, Ct as SPEAKING_RATE_MAX_SYNC, wt as SPEAKING_RATE_MIN, Hn as SPEECH_CHUNK_CHARS, Un as SPEECH_CHUNK_CJK_CHARS, Pt as SPEECH_LANG, Ri as SPOKEN_LABEL_LANGUAGES, cn as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, rt as STREAM_BUDGET_MS, Mi as TAKE_ACTION_ENGLISH, ln as THINKING_PHRASES, Xr as TURN_BODY_HEADROOM_BYTES, ns as TurnActivityLine, Ye as UNAVAILABLE_MODE_REFUSAL, Xe as UNDECLARED_MODE_CAPABILITIES, Ft as VOICE_LIST_TIMEOUT_MS, mn as VOICE_MUTED_LABEL, hn as VOICE_THINKING_LABEL, Vo as VoiceCaption, Ho as VoiceConversationView, Ko as VoiceMiniController, qo as VoiceStage, Wo as VoiceStatusLine, Go as VoiceStatusText, Jo as VoiceTranscriptDrawer, Uo as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, se as abortAssistantTurn, Is as aboveAssistantBottomChrome, La as activePanelOverlay, Ze as adminOnlyModeSendRefusal, Ei as adminOnlyModeSendRefusalAfterAccess, bn as advanceRotationClock, us as aiCreditsUpdatedEventName, eo as applyPreviewEvent, ce as approvePendingWrite, Ci as assistantI18nSeedCopy, z as assistantModeFallbackLabel, wi as assistantModeI18nCopy, No as assistantModeMeta, Ls as assistantOverlayClassName, Rs as assistantOverlayEscapeAction, zs as assistantOverlayKeys, Ra as assistantPanelOwnsEscape, Bs as assistantQuotaKindOf, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, vi as availableAttachmentSources, Tt as base64ToBytes, y as browserShouldHandle, mt as browserSpeechEngine, la as buildAssistantProgress, le as buildAssistantSandboxEnv, Zr as buildAttachmentPromptBlock, Ai as buildBoundedAttachmentTurn, In as buildContinuedFromVoiceNote, Fe as buildProgress, ue as buildPromptGatewayRequest, Qr as buildPromptParts, de as buildPromptRequestBody, $r as buildPromptWithAttachments, Et as buildRequest, E as buildSandboxContextInput, Ln as buildVoiceTranscriptMarkdown, U as builtInModeExtendedBy, st as chatTurns, fe as checkAssistantAiCredits, Wn as chunkForSpeech, b as classifyAssistantHref, ei as classifyAttachment, Dt as classifyHttpFailure, S as classifyQuotaError, br as columnLetterToIndex, gn as composeVoiceStatus, Jt as configureSpeechEngine, Gn as containsCjk, d as copyToClipboard, ti as countInlineImageCandidates, ni as countInlinedImageParts, fa as countSpokenTurns, Di as createAdminModeAccessGate, Vs as createAssistantNavigate, to as createAssistantPreviewSurface, pe as createAssistantSandbox, me as createAssistantSession, Mt as createHostedTtsEngine, Sa as createReadinessTracker, qt as createRoutingSpeechEngine, ao as createRunIdentityCache, Ge as createSandboxAssistantTransport, Yt as createSpeechEngines, no as currentPreviewOwner, W as declareAssistantMode, Ot as decodeAudioResponse, xr as decodeXmlEntities, C as describeQuotaError, ri as detectDocumentFormat, Bi as detectScriptLocale, yi as deviceHasCamera, kt as disableDurationMs, ds as dispatchAssistantQuotaExhausted, Sr as docxXmlToText, he as downloadAssistantArtifact, Yo as downloadFile, ia as elapsedSince, za as escapeDismisses, ii as estimateTurnBodyBytes, D as executeSandboxGraphQL, Xo as exportConversation, ge as extendAssistantSandboxTTL, ms as extractDocumentText, cr as findAssistantLanguage, Qe as findAssistantModeConfig, _e as findExistingSandbox, fr as findPendingWrite, Cr as fitPdfPages, Ba as focusIsInsidePanel, ai as formatBytes, wr as formatPageRanges, ve as forwardsUserTokensToSandbox, va as getActorId, ye as getAssistantArtifacts, ra as getAssistantDisplayContent, Ie as getAssistantMedia, be as getAssistantMessages, xe as getAssistantSession, Se as getAssistantStreamAccess, Le as getAssistantText, oi as getAttachmentSendBlocker, ee as getCapability, si as getExtension, J as getImageForMode, Y as getImageTagForMode, ya as getOrganizationId, Re as getRawMessageCreatedAt, X as getResourcesForMode, Z as getSandboxImageRegistry, ci as getSendableAttachments, Xt as getSpeechEngine, ze as getToolProgress, ba as getWorkspaceId, ct as groupBySession, lt as groupConsecutiveBySession, li as hasAttachmentWorkInFlight, _t as hostedLocaleFor, vt as hostedSupportsLanguage, p as imageHostLabel, it as incompleteTurnNotice, G as isAssistantModeId, Hs as isAssistantToggleShortcut, Ya as isBlankProse, B as isBuiltInAssistantMode, kn as isCapturing, An as isEcho, It as isHostedVoice, $i as isLegacyFiller, ea as isLegacyStopped, Tr as isMostlyImagePages, cs as isMultimodalBodyRejection, _s as isProdRuntime, K as isProductAssistantModeId, ui as isProviderReadableFilePart, w as isQuotaExhaustedError, Be as isReapedSandboxConnectionError, Ca as isRecentlyVerified, Ve as isRecoverable, ls as isRecoverableAssistantError, m as isRemoteImageSrc, Xa as isRunningStatus, Ui as isSpeakingMessage, Lt as isSpeechBlocked, ta as isStageCopy, jn as isSubmittable, Xi as isTurnInFlight, te as isUnknownFieldError, ut as isVoiceTurn, Ni as isWriteModeAcknowledged, Er as joinSheets, Rt as languageDisplayName, di as largestInlineCharsPerFile, He as mapSessionToHistory, ne as markSupported, re as markUnsupported, Ue as mergeMessagesById, qi as mergePersistedAssistantState, en as micIsInterrupt, Ce as modeRequiresConfirmWrites, aa as msUntilNextPhrase, co as nextActiveTab, Us as nextAssistantOpenState, Po as nextModeIndex, Va as nextPanelOverlays, Za as nextPreviewEvents, zt as normalizeLangTag, fs as notifyAiCreditsUpdated, Mn as orbMode, Dr as pageMarker, To as panelOwnedPreviewBridge, Ha as panelOwnsEscape, pr as parseConfirmationRefusal, fi as parseDataUrl, Or as parseSharedStrings, da as parseToolActivity, kr as parseWorkbookSheets, Ar as pdfTextItemsToPage, lo as pinActiveTab, Zi as planAbandonedTurn, Nn as planReplyConsumption, Qi as planTurnAbort, ir as pollDelayMs, Bt as primaryLanguageSubtag, we as promptGatewayRequestBytes, Ws as publishedAssistantDockWidth, Wi as publishedChunks, T as quotaExhaustedEventName, Gs as readAssistantOverlayFlag, bo as readReducedMotion, Zt as readSpeechEngineConfig, Te as releaseSupersededAssistantSandboxes, ur as replyFollowsInput, Ee as reportAssistantAiTokenUsage, Ks as requestedAssistantOpenState, Gi as requiresCancel, Qt as resetSpeechEngine, Ji as resolveActiveModeSandbox, pi as resolveAssistantInlineLimits, lr as resolveAssistantLanguage, $e as resolveAssistantModeCapabilities, Oi as resolveAssistantSendModeAfterAccess, dr as resolveLanguagePair, n as resolveModeConfig, Q as resolveSandboxAssistantMode, Vi as resolveSpeechLocale, Pi as restoreAcknowledgedWriteModes, xn as rotationElapsedMs, ro as runBelongsTo, oo as runIdentities, io as sameOwner, $ as sandboxBaseModeFor, We as sanitize, De as selectExistingAssistantSandbox, Oe as selectSupersededAssistantSandboxes, Vt as selectVoiceForLocale, ke as sendAssistantPromptAsync, Ae as sendHeartbeat, jr as sheetXmlToRows, At as shouldDisableEngine, uo as shouldPinOnMove, fo as shouldPinOnSelect, Qn as showPreviousChunk, tn as showsAssistantCaption, nn as showsUserCaption, Kn as speakableEmail, Ht as speechGate, zi as speechLabelsFor, Ut as speechLangForLocale, Ki as speechPlaybackReducer, jt as splitForVendor, qn as splitTableRow, Pn as spokenSoFar, pa as spokenTurnText, un as stageText, oa as startPhraseTicker, Sn as startRotationTicker, dn as statusStageCopy, po as stepsFromToolActivity, je as stopReapedAssistantSandbox, at as streamBudgetMs, na as stripLegacyFillerPrefix, xo as subscribeReducedMotion, $t as subscribeSpeechEngine, Mr as summarisePageText, Cn as syncRotationClock, mo as tabForArrowKey, fn as thinkingPhrase, pn as thinkingPhraseEntry, ar as toCaptionText, mi as toMessageAttachment, Jn as toSpeakableText, hi as truncateForInline, Nr as truncatePagesForInline, sa as turnActivityCopy, ca as turnActivityStage, et as unofferedModeSendRefusal, ki as unofferedModeSendRefusalAfterAccess, os as useAssistantApiAccess, hs as useAssistantAttachments, Ma as useAssistantConnectSource, Xs as useAssistantDockWidth, vs as useAssistantHeartbeat, l as useAssistantI18nNamespace, ys as useAssistantKeyboardShortcuts, x as useAssistantNavigate, Zs as useAssistantOverlayOrNull, r as useAssistantPageLabel, qa as useAssistantPreview, Co as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, Qs as useAssistantQuotaExhausted, ga as useAssistantSpeech, o as useAssistantStorageFolders, Yi as useAssistantStore, u as useAssistantTr, ss as useConversationTurns, Ua as useDropdownEscape, Eo as useHostedAssistantPreviewBridge, _o as useOverlayFocus, So as usePrefersReducedMotion, Ke as useSandboxAssistantTransport, e as useVoiceInput, _a as useVoiceSession, ps as useWorkspaceWriteAccess, gi as validateFile, Wt as voiceAvailability, dt as voiceMarker, Xn as voicePreviewText, Gt as voiceQualityRank, ft as voiceSessionIdOf, Fn as voiceSessionReducer, rn as voiceStageState, _n as voiceStatusParts, vn as voiceStatusSuffix, Rn as voiceTranscriptFilename, pt as voiceTurnsOnly, Kt as voicesForLocale, Me as waitForAssistantServiceReady, Ne as waitForSandboxRunning, an as waveformIsActive, on as waveformIsSettled, ot as withIncompleteTurnNotice, Fi as withWriteModeAcknowledged, qs as writeAssistantOverlayFlag, Ii as writeModeConsentCopy, Li as writeModeSendRefusal };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.920.2",
3
+ "version": "2026.920.4",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {