@agent-native/toolkit 0.16.9 → 0.16.11

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 (56) hide show
  1. package/dist/collab-ui/lead-client.d.ts.map +1 -1
  2. package/dist/collab-ui/lead-client.js +11 -0
  3. package/dist/collab-ui/lead-client.js.map +1 -1
  4. package/dist/collab-ui/lead-client.spec.d.ts +2 -0
  5. package/dist/collab-ui/lead-client.spec.d.ts.map +1 -0
  6. package/dist/collab-ui/lead-client.spec.js +16 -0
  7. package/dist/collab-ui/lead-client.spec.js.map +1 -0
  8. package/dist/composer/TiptapComposer.d.ts +12 -0
  9. package/dist/composer/TiptapComposer.d.ts.map +1 -1
  10. package/dist/composer/TiptapComposer.js +59 -18
  11. package/dist/composer/TiptapComposer.js.map +1 -1
  12. package/dist/composer/TiptapComposer.spec.js +31 -1
  13. package/dist/composer/TiptapComposer.spec.js.map +1 -1
  14. package/dist/design-tweaks/scrub-input.d.ts.map +1 -1
  15. package/dist/design-tweaks/scrub-input.js +3 -2
  16. package/dist/design-tweaks/scrub-input.js.map +1 -1
  17. package/dist/design-tweaks/visual-style-controls.spec.js +19 -0
  18. package/dist/design-tweaks/visual-style-controls.spec.js.map +1 -1
  19. package/dist/editor/RegistryBlockContext.d.ts +4 -0
  20. package/dist/editor/RegistryBlockContext.d.ts.map +1 -1
  21. package/dist/editor/RegistryBlockContext.js.map +1 -1
  22. package/dist/editor/RegistryBlockNode.d.ts +13 -0
  23. package/dist/editor/RegistryBlockNode.d.ts.map +1 -1
  24. package/dist/editor/RegistryBlockNode.js +47 -20
  25. package/dist/editor/RegistryBlockNode.js.map +1 -1
  26. package/dist/editor/RegistryBlockNode.spec.js +61 -1
  27. package/dist/editor/RegistryBlockNode.spec.js.map +1 -1
  28. package/dist/editor/useCollabReconcile.concurrent.spec.js +63 -0
  29. package/dist/editor/useCollabReconcile.concurrent.spec.js.map +1 -1
  30. package/dist/editor/useCollabReconcile.d.ts.map +1 -1
  31. package/dist/editor/useCollabReconcile.js +15 -2
  32. package/dist/editor/useCollabReconcile.js.map +1 -1
  33. package/dist/ui/index.d.ts +1 -0
  34. package/dist/ui/index.d.ts.map +1 -1
  35. package/dist/ui/index.js +1 -0
  36. package/dist/ui/index.js.map +1 -1
  37. package/dist/ui/pointer-lock.d.ts +2 -0
  38. package/dist/ui/pointer-lock.d.ts.map +1 -0
  39. package/dist/ui/pointer-lock.js +22 -0
  40. package/dist/ui/pointer-lock.js.map +1 -0
  41. package/dist/ui/tooltip.js +1 -1
  42. package/package.json +1 -1
  43. package/src/collab-ui/lead-client.spec.ts +20 -0
  44. package/src/collab-ui/lead-client.ts +17 -1
  45. package/src/composer/TiptapComposer.spec.ts +40 -0
  46. package/src/composer/TiptapComposer.tsx +182 -75
  47. package/src/design-tweaks/scrub-input.tsx +3 -2
  48. package/src/design-tweaks/visual-style-controls.spec.tsx +37 -0
  49. package/src/editor/RegistryBlockContext.tsx +4 -0
  50. package/src/editor/RegistryBlockNode.spec.ts +78 -0
  51. package/src/editor/RegistryBlockNode.tsx +106 -19
  52. package/src/editor/useCollabReconcile.concurrent.spec.ts +75 -0
  53. package/src/editor/useCollabReconcile.ts +19 -2
  54. package/src/ui/index.ts +1 -0
  55. package/src/ui/pointer-lock.ts +21 -0
  56. package/src/ui/tooltip.tsx +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lead-client.d.ts","sourceRoot":"","sources":["../../src/collab-ui/lead-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMvD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EACvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAsBT"}
1
+ {"version":3,"file":"lead-client.d.ts","sourceRoot":"","sources":["../../src/collab-ui/lead-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMvD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EACvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAsCT"}
@@ -6,6 +6,12 @@ export function isReconcileLeadClient(awareness, localClientId) {
6
6
  return false;
7
7
  if (!awareness)
8
8
  return true;
9
+ // The peer loop below skips the local client, so its own capability has to be
10
+ // checked here — otherwise a read-only viewer that is alone, or that holds the
11
+ // lowest id, still wins the election and then applies nothing.
12
+ const localState = awareness.getStates().get(localClientId);
13
+ if (localState?.canFlushDocument === false)
14
+ return false;
9
15
  let hasPeer = false;
10
16
  let minVisible = localClientId;
11
17
  awareness.getStates().forEach((state, clientId) => {
@@ -14,6 +20,11 @@ export function isReconcileLeadClient(awareness, localClientId) {
14
20
  const candidate = state;
15
21
  if (!candidate?.user)
16
22
  return;
23
+ // Read-only viewers subscribe to awareness for presence but bind no Y.Doc,
24
+ // so electing one stops external snapshots reconciling anywhere. Absent
25
+ // (legacy clients that never publish the field) still counts as eligible.
26
+ if (candidate.canFlushDocument === false)
27
+ return;
17
28
  hasPeer = true;
18
29
  if (candidate.visible !== false && clientId < minVisible) {
19
30
  minVisible = clientId;
@@ -1 +1 @@
1
- {"version":3,"file":"lead-client.js","sourceRoot":"","sources":["../../src/collab-ui/lead-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,gFAAgF;AAChF,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CACnC,SAAuC,EACvC,aAAwC;IAExC,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,aAAa,CAAC;IAC/B,SAAS,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAChD,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,aAAa;YAAE,OAAO;QACvE,MAAM,SAAS,GAAG,KAA8C,CAAC;QACjE,IAAI,CAAC,SAAS,EAAE,IAAI;YAAE,OAAO;QAC7B,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC;YACzD,UAAU,GAAG,QAAQ,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,WAAW,GACf,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC;IAC3E,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,aAAa,IAAI,UAAU,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"lead-client.js","sourceRoot":"","sources":["../../src/collab-ui/lead-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,gFAAgF;AAChF,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CACnC,SAAuC,EACvC,aAAwC;IAExC,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,8EAA8E;IAC9E,+EAA+E;IAC/E,+DAA+D;IAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,aAAa,CAE7C,CAAC;IACd,IAAI,UAAU,EAAE,gBAAgB,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,aAAa,CAAC;IAC/B,SAAS,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAChD,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,aAAa;YAAE,OAAO;QACvE,MAAM,SAAS,GAAG,KAIjB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,IAAI;YAAE,OAAO;QAC7B,2EAA2E;QAC3E,wEAAwE;QACxE,0EAA0E;QAC1E,IAAI,SAAS,CAAC,gBAAgB,KAAK,KAAK;YAAE,OAAO;QACjD,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC;YACzD,UAAU,GAAG,QAAQ,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,WAAW,GACf,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC;IAC3E,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,aAAa,IAAI,UAAU,CAAC;AACrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lead-client.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-client.spec.d.ts","sourceRoot":"","sources":["../../src/collab-ui/lead-client.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { isReconcileLeadClient } from "./lead-client.js";
3
+ /** Minimal Awareness stand-in: isReconcileLeadClient only calls getStates(). */
4
+ function fakeAwareness(states) {
5
+ return { getStates: () => states };
6
+ }
7
+ describe("isReconcileLeadClient", () => {
8
+ it("does not elect a read-only viewer that can never apply a snapshot", () => {
9
+ const states = new Map([
10
+ [3, { user: { name: "Viewer" }, canFlushDocument: false }],
11
+ [7, { user: { name: "Editor" }, canFlushDocument: true }],
12
+ ]);
13
+ expect(isReconcileLeadClient(fakeAwareness(states), 7)).toBe(true);
14
+ });
15
+ });
16
+ //# sourceMappingURL=lead-client.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-client.spec.js","sourceRoot":"","sources":["../../src/collab-ui/lead-client.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,gFAAgF;AAChF,SAAS,aAAa,CAAC,MAA4B;IACjD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,EAA0B,CAAC;AAC7D,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAkB;YACtC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;YAC1D,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -243,6 +243,10 @@ export declare function isComposerEditorUsable<T extends {
243
243
  isDestroyed?: boolean;
244
244
  }>(editor: T | null | undefined): editor is T;
245
245
  export declare function createTiptapComposerExtensions(getPlaceholder: () => string | undefined): (import("@tiptap/core").Extension<import("@tiptap/extension-placeholder").PlaceholderOptions, any> | import("@tiptap/core").Extension<import("@tiptap/starter-kit").StarterKitOptions, any> | import("@tiptap/core").Node<any, any>)[];
246
+ export declare function hasConfiguredCloudProvider(groups: ReadonlyArray<{
247
+ engine: string;
248
+ configured: boolean;
249
+ }>): boolean;
246
250
  export declare function isOpenAiModelProviderGroup(group: {
247
251
  engine: string;
248
252
  label: string;
@@ -261,6 +265,14 @@ export declare function shouldShowModelSelectorSkeleton(isLoading: boolean, engi
261
265
  export declare function shouldShowOnlyConnectPath(showBuilderCta: boolean, groups: ReadonlyArray<{
262
266
  configured: boolean;
263
267
  }>): boolean;
268
+ /**
269
+ * When nothing is routable yet, the model hook resolves `selectedModel` to
270
+ * `""` rather than pre-selecting something unusable — that reflects "nothing
271
+ * chosen," not "nothing to show." The picker itself still has a job to do in
272
+ * that state (its connect-provider CTAs), so gate on there being engines to
273
+ * list and a way to change the selection, not on a model already being set.
274
+ */
275
+ export declare function shouldRenderModelSelector(availableModels: ReadonlyArray<unknown> | undefined, onModelChange: unknown): boolean;
264
276
  export declare function compactComposerModelName(model: string, t?: ComposerTranslate): string;
265
277
  export declare function compactComposerReasoningEffortLabel(effort: ReasoningEffort, t?: ComposerTranslate): string;
266
278
  export declare function composerModelCostTier(model: string): 1 | 2 | 3 | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"TiptapComposer.d.ts","sourceRoot":"","sources":["../../src/composer/TiptapComposer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TiptapComposer.d.ts","sourceRoot":"","sources":["../../src/composer/TiptapComposer.tsx"],"names":[],"mappings":"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"}
@@ -544,6 +544,9 @@ const LOCAL_RUNTIME_ENGINES = new Set([
544
544
  "pi-cli",
545
545
  "opencode-cli",
546
546
  ]);
547
+ export function hasConfiguredCloudProvider(groups) {
548
+ return groups.some((group) => group.configured && !LOCAL_RUNTIME_ENGINES.has(group.engine));
549
+ }
547
550
  function isOpenAiModelId(model) {
548
551
  const normalizedModel = model.toLowerCase();
549
552
  return (normalizedModel.startsWith("gpt-") ||
@@ -578,6 +581,16 @@ export function shouldShowModelSelectorSkeleton(isLoading, engineCount) {
578
581
  export function shouldShowOnlyConnectPath(showBuilderCta, groups) {
579
582
  return showBuilderCta && groups.every((group) => !group.configured);
580
583
  }
584
+ /**
585
+ * When nothing is routable yet, the model hook resolves `selectedModel` to
586
+ * `""` rather than pre-selecting something unusable — that reflects "nothing
587
+ * chosen," not "nothing to show." The picker itself still has a job to do in
588
+ * that state (its connect-provider CTAs), so gate on there being engines to
589
+ * list and a way to change the selection, not on a model already being set.
590
+ */
591
+ export function shouldRenderModelSelector(availableModels, onModelChange) {
592
+ return Boolean(availableModels && availableModels.length > 0 && onModelChange);
593
+ }
581
594
  function friendlyModelName(model, t) {
582
595
  if (model === "auto") {
583
596
  return (t?.("agentChat.composer.defaultModel", {
@@ -748,7 +761,7 @@ export function getComposerReasoningEffortOptions(model) {
748
761
  ? ["low", "medium", "high", "xhigh", "max"]
749
762
  : getReasoningEffortOptionsForModel(model);
750
763
  }
751
- function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnly = false, hostedHarness = false, showAutoModelOption = true, modelListLoading = false, open: controlledOpen, onChange, onEffortChange, onAgentChange, onModelSelectorOpenChange, providerConnectStatusEnabled = true, onConnectProvider, onConnectLocalRuntime, imageModel, }) {
764
+ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnly = false, hostedHarness = false, showAutoModelOption = true, modelListLoading = false, open: controlledOpen, onChange, onEffortChange, onAgentChange, onModelSelectorOpenChange, providerConnectStatusEnabled = true, onConnectProvider, onConnectLocalRuntime, terminalModeControl, imageModel, }) {
752
765
  const adapters = useComposerRuntimeAdapters();
753
766
  const t = adapters.translate;
754
767
  const reasoning = adapters.models?.reasoning;
@@ -834,27 +847,31 @@ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnl
834
847
  }, [agentOnly, controlledOpen, onModelSelectorOpenChange]);
835
848
  const visibleProviderGroups = modelProviderGroups;
836
849
  const showModelListSkeleton = shouldShowModelSelectorSkeleton(modelListLoading, engines.length);
837
- // Keep setup actions beside model choices while any visible provider still
838
- // needs configuration. The model rows remain visible so the user can see
839
- // what becomes available after connecting or adding a key.
850
+ // Keep setup actions visible, but do not show unusable model rows until one
851
+ // provider or local agent is ready.
840
852
  const builderFlow = adapters.builder.useConnectFlow({
841
853
  enabled: providerConnectStatusEnabled,
842
854
  trackingSource: "composer_builder_cta",
843
855
  });
844
856
  const hasConfiguredBuilderModels = providerGroups.some((group) => group.engine === "builder" && group.configured);
845
- const hasConnectedSubscription = providerGroups.some((group) => group.configured && group.isSubscription);
857
+ const hasConfiguredCloudProviderReady = hasConfiguredCloudProvider(providerGroups);
858
+ const hasConnectedSubscription = providerGroups.some((group) => hasConfiguredCloudProviderReady &&
859
+ group.configured &&
860
+ group.isSubscription &&
861
+ !LOCAL_RUNTIME_ENGINES.has(group.engine));
846
862
  const hasUnconfiguredVisibleModels = modelProviderGroups.some((group) => !group.configured);
847
- const showBuilderAction = hasUnconfiguredVisibleModels &&
863
+ const hasConfiguredProvider = providerGroups.some((group) => group.configured);
864
+ const showBuilderAction = !hasConfiguredCloudProviderReady &&
848
865
  (Boolean(onConnectProvider) ||
849
866
  (providerConnectStatusEnabled &&
850
867
  !builderFlow.configured &&
851
868
  !builderFlow.envManaged &&
852
869
  !hasConfiguredBuilderModels &&
853
870
  !hasConnectedSubscription));
854
- const showAddKeysAction = hasUnconfiguredVisibleModels;
871
+ const showAddKeysAction = !hasConfiguredCloudProviderReady &&
872
+ (hasUnconfiguredVisibleModels || showBuilderAction);
855
873
  const showProviderActions = showBuilderAction || showAddKeysAction;
856
- const onlyConnectPathAvailable = shouldShowOnlyConnectPath(showBuilderAction, providerGroups) &&
857
- modelProviderGroups.length === 0;
874
+ const onlyConnectPathAvailable = shouldShowOnlyConnectPath(showProviderActions, providerGroups);
858
875
  const openLlmSettings = useCallback(() => {
859
876
  try {
860
877
  window.location.hash = "llm";
@@ -883,7 +900,7 @@ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnl
883
900
  ? "bg-accent text-foreground"
884
901
  : "text-muted-foreground hover:bg-accent/50 hover:text-foreground"}`, children: [_jsxs("span", { className: "flex min-w-0 items-center", children: [_jsx("span", { className: "shrink-0 text-[12px] font-medium", children: "Agent" }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { role: "img", "aria-label": t("agentChat.composer.harnessAgentHelp", {
885
902
  defaultValue: "Learn about harness agents",
886
- }), onClick: (event) => event.stopPropagation(), className: `ms-1.5 ${PICKER_HELP_BUTTON_CLASS}`, children: _jsx(IconHelpCircle, { "aria-hidden": "true", className: PICKER_HELP_ICON_CLASS, strokeWidth: 1.8 }) }) }), _jsxs(TooltipContent, { side: "right", className: "z-[400] max-w-xs", children: [_jsx("span", { className: "block", children: hostedHarness
903
+ }), onClick: (event) => event.stopPropagation(), className: `ms-1.5 ${PICKER_HELP_BUTTON_CLASS}`, children: _jsx(IconHelpCircle, { "aria-hidden": "true", className: PICKER_HELP_ICON_CLASS, strokeWidth: 1.8 }) }) }), _jsxs(TooltipContent, { side: "right", className: "max-w-xs", children: [_jsx("span", { className: "block", children: hostedHarness
887
904
  ? t("agentChat.composer.hostedHarnessDescription", {
888
905
  defaultValue: "Hosted mode uses app tools only. For full coding with a repository and shell, use Agent Native Desktop.",
889
906
  })
@@ -897,7 +914,11 @@ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnl
897
914
  ? "bg-accent text-foreground"
898
915
  : "text-muted-foreground hover:bg-accent/50 hover:text-foreground"}`, children: [_jsx("span", { className: "shrink-0 text-[12px] font-medium", children: t("agentChat.composer.effort", {
899
916
  defaultValue: "Effort",
900
- }) }), _jsx("span", { className: "ms-auto min-w-0 max-w-[6rem] truncate text-end text-[11px] text-muted-foreground/80", children: effortLabel(selectedEffort) }), _jsx(IconChevronRight, { className: "h-3 w-3 shrink-0 opacity-60 rtl:-scale-x-100" })] }))] }) }), _jsx(PopoverContent, { side: "right", align: "start", sideOffset: 4, alignOffset: -8, collisionPadding: 8, className: `z-[320] overflow-visible ${MODEL_SELECTOR_POPOVER_CLASS}`, style: MODEL_SELECTOR_POPOVER_STYLE, children: _jsx("div", { className: "max-h-[min(500px,var(--radix-popover-content-available-height,500px))] overflow-y-auto", children: _jsxs("div", { className: "min-h-0 min-w-0", role: "tabpanel", "aria-label": resolvedSection, children: [resolvedSection === "agent" && agents && (_jsx("div", { className: "flex flex-col", children: agents.map((agent) => {
917
+ }) }), _jsx("span", { className: "ms-auto min-w-0 max-w-[6rem] truncate text-end text-[11px] text-muted-foreground/80", children: effortLabel(selectedEffort) }), _jsx(IconChevronRight, { className: "h-3 w-3 shrink-0 opacity-60 rtl:-scale-x-100" })] })), terminalModeControl && (_jsxs("button", { type: "button", role: "tab", "aria-selected": resolvedSection === "mode", onClick: () => setDetailSection("mode"), onMouseEnter: () => setDetailSection("mode"), className: `flex w-full min-w-0 items-center gap-1 rounded-md px-2 py-2 text-start transition-colors ${resolvedSection === "mode"
918
+ ? "bg-accent text-foreground"
919
+ : "text-muted-foreground hover:bg-accent/50 hover:text-foreground"}`, children: [_jsx("span", { className: "shrink-0 text-[12px] font-medium", children: t("agentPanel.mode", { defaultValue: "Mode" }) }), _jsx("span", { className: "ms-auto min-w-0 max-w-[6rem] truncate text-end text-[11px] text-muted-foreground/80", children: terminalModeControl.enabled
920
+ ? t("agentPanel.cli", { defaultValue: "CLI" })
921
+ : t("agentPanel.uiMode", { defaultValue: "UI" }) }), _jsx(IconChevronRight, { className: "h-3 w-3 shrink-0 opacity-60 rtl:-scale-x-100" })] }))] }) }), _jsx(PopoverContent, { side: "right", align: "start", sideOffset: 4, alignOffset: -8, collisionPadding: 8, className: `z-[320] overflow-visible ${MODEL_SELECTOR_POPOVER_CLASS}`, style: MODEL_SELECTOR_POPOVER_STYLE, children: _jsx("div", { className: "max-h-[min(500px,var(--radix-popover-content-available-height,500px))] overflow-y-auto", children: _jsxs("div", { className: "min-h-0 min-w-0", role: "tabpanel", "aria-label": resolvedSection, children: [resolvedSection === "agent" && agents && (_jsx("div", { className: "flex flex-col", children: agents.map((agent) => {
901
922
  const isSelected = agent.id === (selectedAgent ?? "default");
902
923
  const isConfigured = agent.configured !== false;
903
924
  const canConnect = !isConfigured && Boolean(onConnectLocalRuntime);
@@ -912,7 +933,7 @@ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnl
912
933
  ? "hover:bg-accent/50"
913
934
  : "cursor-default opacity-50"}`, children: [agent.icon ? (_jsx("span", { className: "flex size-4 shrink-0 items-center justify-center text-muted-foreground", "aria-hidden": "true", children: agent.icon })) : null, _jsx("span", { className: `min-w-0 truncate text-[12px] ${isSelected
914
935
  ? "text-foreground"
915
- : "text-muted-foreground"}`, children: agent.label }), agent.description && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { role: "img", "aria-label": `${agent.label} details`, onClick: (event) => event.stopPropagation(), className: PICKER_HELP_BUTTON_CLASS, children: _jsx(IconHelpCircle, { "aria-hidden": "true", className: PICKER_HELP_ICON_CLASS, strokeWidth: 1.8 }) }) }), _jsx(TooltipContent, { side: "left", className: "z-[400] max-w-xs", children: agent.description })] })), _jsx("span", { className: "min-w-0 flex-1", "aria-hidden": "true" }), isSelected && isConfigured && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] }), !isConfigured && statusLabel && (_jsx("button", { type: "button", disabled: !canConnect, className: "ms-auto max-w-[6rem] shrink-0 truncate px-2 py-2 text-end text-[10px] text-muted-foreground/70 opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 hover:text-foreground focus-visible:opacity-100 disabled:cursor-default", onClick: () => {
936
+ : "text-muted-foreground"}`, children: agent.label }), agent.description && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { role: "img", "aria-label": `${agent.label} details`, onClick: (event) => event.stopPropagation(), className: PICKER_HELP_BUTTON_CLASS, children: _jsx(IconHelpCircle, { "aria-hidden": "true", className: PICKER_HELP_ICON_CLASS, strokeWidth: 1.8 }) }) }), _jsx(TooltipContent, { side: "left", className: "max-w-xs", children: agent.description })] })), _jsx("span", { className: "min-w-0 flex-1", "aria-hidden": "true" }), isSelected && isConfigured && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] }), !isConfigured && statusLabel && (_jsx("button", { type: "button", disabled: !canConnect, className: "ms-auto max-w-[6rem] shrink-0 truncate px-2 py-2 text-end text-[10px] text-muted-foreground/70 opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 hover:text-foreground focus-visible:opacity-100 disabled:cursor-default", onClick: () => {
916
937
  if (canConnect)
917
938
  connectLocalRuntime(agent.id);
918
939
  }, children: statusLabel }))] }, agent.id));
@@ -935,7 +956,9 @@ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnl
935
956
  defaultValue: "Add your own keys",
936
957
  }) }), _jsx("span", { className: "block text-[11px] text-muted-foreground", children: t("agentPanel.configureProviderKeys", {
937
958
  defaultValue: "Choose a cloud, gateway, or local provider",
938
- }) })] })] }))] })), imageModel && imageModel.options.length > 0 && (_jsxs("div", { className: "mt-2 pt-1", children: [_jsx("div", { className: "px-2 py-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: imageModel.label ??
959
+ }) })] })] }))] })), hasConfiguredCloudProviderReady &&
960
+ imageModel &&
961
+ imageModel.options.length > 0 && (_jsxs("div", { className: "mt-2 pt-1", children: [_jsx("div", { className: "px-2 py-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: imageModel.label ??
939
962
  t("agentChat.composer.imageModel", {
940
963
  defaultValue: "Image model",
941
964
  }) }), imageModel.options.map((option) => (_jsxs("button", { type: "button", onClick: () => {
@@ -943,19 +966,23 @@ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnl
943
966
  setPickerOpen(false);
944
967
  }, className: "flex w-full items-center gap-3 rounded-md px-2 py-2 text-start hover:bg-accent/50", children: [_jsx("span", { className: `min-w-0 flex-1 truncate text-[12px] ${option.value === imageModel.value
945
968
  ? "text-foreground"
946
- : "text-muted-foreground"}`, children: option.label }), option.value === imageModel.value && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] }, option.value)))] })), showModelListSkeleton && _jsx(ModelSelectorSkeleton, {}), isCodexAgent &&
969
+ : "text-muted-foreground"}`, children: option.label }), option.value === imageModel.value && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] }, option.value)))] })), hasConfiguredProvider && showModelListSkeleton && (_jsx(ModelSelectorSkeleton, {})), hasConfiguredProvider &&
970
+ isCodexAgent &&
947
971
  !showModelListSkeleton &&
948
972
  !onlyConnectPathAvailable &&
949
973
  modelProviderGroups.length === 0 && (_jsxs("button", { type: "button", onClick: openLlmSettings, className: "flex w-full items-center rounded-md px-2 py-2 text-start hover:bg-accent/50", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-[12px] text-muted-foreground", children: t("agentChat.composer.noOpenAiModels", {
950
974
  defaultValue: "No OpenAI models configured",
951
- }) }), _jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground/70", children: "Configure" })] })), autoModelGroup && !onlyConnectPathAvailable && (_jsxs("button", { type: "button", onClick: () => {
975
+ }) }), _jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground/70", children: "Configure" })] })), hasConfiguredProvider &&
976
+ autoModelGroup &&
977
+ !onlyConnectPathAvailable && (_jsxs("button", { type: "button", onClick: () => {
952
978
  onChange("auto", autoModelGroup.engine);
953
979
  setPickerOpen(false);
954
980
  }, className: "mt-1 flex w-full items-center gap-3 rounded-md px-2 py-1.5 text-start hover:bg-accent/50", children: [_jsx("span", { className: `min-w-0 flex-1 truncate text-[13px] ${model === "auto"
955
981
  ? "text-foreground"
956
982
  : "text-muted-foreground"}`, children: t("agentChat.composer.auto", {
957
983
  defaultValue: "Auto",
958
- }) }), model === "auto" && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] })), !onlyConnectPathAvailable &&
984
+ }) }), model === "auto" && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] })), hasConfiguredProvider &&
985
+ !onlyConnectPathAvailable &&
959
986
  visibleProviderGroups.map((group, groupIndex) => {
960
987
  const models = latestModelsOnly(group.models);
961
988
  const showProviderLabels = visibleProviderGroups.length > 1;
@@ -1003,7 +1030,21 @@ function ModelSelector({ model, effort, engines, agents, selectedAgent, agentOnl
1003
1030
  })] }, `${group.engine}:${group.label}`));
1004
1031
  })] })), resolvedSection === "effort" && effortOptions.length > 0 && (_jsx("div", { className: "flex flex-col", children: effortOptions.map((option) => (_jsxs("button", { type: "button", onClick: () => onEffortChange?.(option), className: "flex w-full items-center gap-3 rounded-md px-2 py-2 text-start hover:bg-accent/50", children: [_jsx("span", { className: `min-w-0 flex-1 truncate text-[12px] ${option === selectedEffort
1005
1032
  ? "text-foreground"
1006
- : "text-muted-foreground"}`, children: effortLabel(option) }), option === selectedEffort && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] }, option))) }))] }) }) })] }) })] }));
1033
+ : "text-muted-foreground"}`, children: effortLabel(option) }), option === selectedEffort && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] }, option))) })), resolvedSection === "mode" && terminalModeControl && (_jsx("div", { className: "flex flex-col", children: [
1034
+ {
1035
+ enabled: false,
1036
+ label: t("agentPanel.uiMode", { defaultValue: "UI" }),
1037
+ },
1038
+ {
1039
+ enabled: true,
1040
+ label: t("agentPanel.cli", { defaultValue: "CLI" }),
1041
+ },
1042
+ ].map((option) => (_jsxs("button", { type: "button", onClick: () => {
1043
+ terminalModeControl.onChange(option.enabled);
1044
+ setPickerOpen(false);
1045
+ }, className: "flex w-full items-center gap-3 rounded-md px-2 py-2 text-start hover:bg-accent/50", children: [_jsx("span", { className: `min-w-0 flex-1 truncate text-[12px] ${option.enabled === terminalModeControl.enabled
1046
+ ? "text-foreground"
1047
+ : "text-muted-foreground"}`, children: option.label }), option.enabled === terminalModeControl.enabled && (_jsx(IconCheck, { className: "size-4 shrink-0 text-primary" }))] }, option.label))) }))] }) }) })] }) })] }));
1007
1048
  }
1008
1049
  function ModelSelectorSkeleton() {
1009
1050
  const t = useComposerRuntimeAdapters().translate;
@@ -2237,6 +2278,6 @@ export function TiptapComposer({ placeholder, disabled = false, maxDocumentAttac
2237
2278
  defaultValue: "Remove {{name}} context",
2238
2279
  name: item.title,
2239
2280
  }), className: "ms-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground", children: _jsx(IconX, { className: "h-3 w-3" }) })] }, item.key)))] })), _jsx("div", { "data-agent-composer-variant": layoutVariant, "data-agent-composer-slot": "editor-wrap", className: `agent-composer-editor-wrap ${composerMode || hasContextRows ? "px-2 pt-1 pb-1" : "px-2 pt-2 pb-1"}`, children: _jsx(EditorContent, { editor: editor, "data-agent-composer-variant": layoutVariant, "data-agent-composer-slot": "editor", className: "agent-composer-editor aui-composer flex-1 min-w-0 [&_.ProseMirror]:outline-none [&_.ProseMirror_p]:m-0 px-0.5" }) }), voiceEnabled && _jsx(VoiceRecordingOverlay, { voice: voice }), _jsxs("div", { "data-agent-composer-variant": layoutVariant, "data-agent-composer-slot": "toolbar", className: "agent-composer-toolbar flex items-center gap-1 px-2 py-1.5", children: [attachButton ??
2240
- (plusMenuMode === "hidden" ? null : (_jsx(ComposerPlusMenu, { onSelectMode: handleSelectMode, mode: plusMenuMode, terminalModeControl: terminalModeControl, extensionTools: extensionTools, onAttachmentError: onAttachmentError }))), toolbarSlot ?? modeControl, _jsx("div", { "data-agent-composer-slot": "toolbar-spacer", className: "flex-1" }), selectedModel && availableModels && onModelChange && (_jsx(ModelSelector, { model: selectedModel, open: modelSelectorOpen, effort: selectedEffort, engines: availableModels, agents: availableAgents, selectedAgent: selectedAgent, agentOnly: agentOnly, hostedHarness: hostedHarness, showAutoModelOption: showAutoModelOption, modelListLoading: modelListLoading, onChange: onModelChange, onEffortChange: onEffortChange, onAgentChange: onAgentChange, onModelSelectorOpenChange: onModelSelectorOpenChange, providerConnectStatusEnabled: providerConnectStatusEnabled, onConnectProvider: onConnectProvider, onConnectLocalRuntime: onConnectLocalRuntime, imageModel: imageModelMenu })), execMode && onExecModeChange && (_jsx(ModeSelector, { mode: execMode, onChange: onExecModeChange, planModeDisabled: planModeDisabled, planModeDisabledReason: planModeDisabledReason })), actionButton ?? (_jsxs(_Fragment, { children: [extraActionButton, voiceEnabled && (_jsx(VoiceButton, { voice: voice, isMac: isMac, disabled: disabled })), primaryAction === "stop" ? (stopButton) : (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", onClick: () => void submitComposer("immediate"), disabled: !canSend, "data-agent-composer-slot": "send-button", className: "agent-composer-send-button shrink-0 flex h-7 w-7 items-center justify-center rounded-md bg-primary text-primary-foreground hover:opacity-90 transition-[opacity,transform] duration-150 active:scale-[0.97] disabled:opacity-30 disabled:cursor-not-allowed", children: _jsx(IconArrowUp, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: sendButtonTooltip })] }))] }))] }), _jsx(MentionPopover, { ref: popoverRef, type: popover?.type ?? "@", position: popover?.position ?? null, mentionItems: filteredMentionItems, skills: filteredSkills, commands: filteredCommands, hint: hint, isLoading: popover?.type === "@" ? mentionsLoading : skillsLoading, query: popover?.query ?? "", onSelectMention: handleSelectMention, onSelectSkill: handleSelectSkill, onSelectCommand: handleSelectCommand, onClose: closePopover })] }));
2281
+ (plusMenuMode === "hidden" ? null : (_jsx(ComposerPlusMenu, { onSelectMode: handleSelectMode, mode: plusMenuMode, terminalModeControl: terminalModeControl, extensionTools: extensionTools, onAttachmentError: onAttachmentError }))), toolbarSlot ?? modeControl, _jsx("div", { "data-agent-composer-slot": "toolbar-spacer", className: "flex-1" }), shouldRenderModelSelector(availableModels, onModelChange) && (_jsx(ModelSelector, { model: selectedModel ?? "", open: modelSelectorOpen, effort: selectedEffort, engines: availableModels, agents: availableAgents, selectedAgent: selectedAgent, agentOnly: agentOnly, hostedHarness: hostedHarness, showAutoModelOption: showAutoModelOption, modelListLoading: modelListLoading, onChange: onModelChange, onEffortChange: onEffortChange, onAgentChange: onAgentChange, onModelSelectorOpenChange: onModelSelectorOpenChange, providerConnectStatusEnabled: providerConnectStatusEnabled, onConnectProvider: onConnectProvider, onConnectLocalRuntime: onConnectLocalRuntime, terminalModeControl: terminalModeControl, imageModel: imageModelMenu })), execMode && onExecModeChange && (_jsx(ModeSelector, { mode: execMode, onChange: onExecModeChange, planModeDisabled: planModeDisabled, planModeDisabledReason: planModeDisabledReason })), actionButton ?? (_jsxs(_Fragment, { children: [extraActionButton, voiceEnabled && (_jsx(VoiceButton, { voice: voice, isMac: isMac, disabled: disabled })), primaryAction === "stop" ? (stopButton) : (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", onClick: () => void submitComposer("immediate"), disabled: !canSend, "data-agent-composer-slot": "send-button", className: "agent-composer-send-button shrink-0 flex h-7 w-7 items-center justify-center rounded-md bg-primary text-primary-foreground hover:opacity-90 transition-[opacity,transform] duration-150 active:scale-[0.97] disabled:opacity-30 disabled:cursor-not-allowed", children: _jsx(IconArrowUp, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: sendButtonTooltip })] }))] }))] }), _jsx(MentionPopover, { ref: popoverRef, type: popover?.type ?? "@", position: popover?.position ?? null, mentionItems: filteredMentionItems, skills: filteredSkills, commands: filteredCommands, hint: hint, isLoading: popover?.type === "@" ? mentionsLoading : skillsLoading, query: popover?.query ?? "", onSelectMention: handleSelectMention, onSelectSkill: handleSelectSkill, onSelectCommand: handleSelectCommand, onClose: closePopover })] }));
2241
2282
  }
2242
2283
  //# sourceMappingURL=TiptapComposer.js.map