@arbidocs/blocks 0.4.93 → 0.4.95

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 (112) hide show
  1. package/dist/agents/index.cjs +281 -281
  2. package/dist/agents/index.js +5 -5
  3. package/dist/chat/index.cjs +127 -127
  4. package/dist/chat/index.js +4 -4
  5. package/dist/{chunk-HOXKR26S.js → chunk-24CS7JWU.js} +3 -3
  6. package/dist/{chunk-HOXKR26S.js.map → chunk-24CS7JWU.js.map} +1 -1
  7. package/dist/{chunk-6XS5IJ5R.cjs → chunk-3OXWJ3CZ.cjs} +5 -5
  8. package/dist/{chunk-6XS5IJ5R.cjs.map → chunk-3OXWJ3CZ.cjs.map} +1 -1
  9. package/dist/chunk-AF6RDAJF.js +14 -0
  10. package/dist/chunk-AF6RDAJF.js.map +1 -0
  11. package/dist/chunk-AOFATOT3.cjs +196 -0
  12. package/dist/chunk-AOFATOT3.cjs.map +1 -0
  13. package/dist/{chunk-NYBIKDWI.cjs → chunk-CKYA2IG5.cjs} +11 -5
  14. package/dist/chunk-CKYA2IG5.cjs.map +1 -0
  15. package/dist/chunk-D3QPYKZG.js +173 -0
  16. package/dist/chunk-D3QPYKZG.js.map +1 -0
  17. package/dist/{chunk-3WW32OUU.cjs → chunk-DCZGYCN2.cjs} +4 -4
  18. package/dist/{chunk-3WW32OUU.cjs.map → chunk-DCZGYCN2.cjs.map} +1 -1
  19. package/dist/{chunk-2ZDFVRGV.cjs → chunk-E2AAIMXO.cjs} +975 -61
  20. package/dist/chunk-E2AAIMXO.cjs.map +1 -0
  21. package/dist/{chunk-EWSEQEPL.js → chunk-EJAYB7PP.js} +4 -4
  22. package/dist/{chunk-EWSEQEPL.js.map → chunk-EJAYB7PP.js.map} +1 -1
  23. package/dist/{chunk-UO74FLRK.js → chunk-EOEDGJ75.js} +22 -53
  24. package/dist/chunk-EOEDGJ75.js.map +1 -0
  25. package/dist/{chunk-XMBYDLZQ.cjs → chunk-GNHOB2ZB.cjs} +4 -4
  26. package/dist/{chunk-XMBYDLZQ.cjs.map → chunk-GNHOB2ZB.cjs.map} +1 -1
  27. package/dist/{chunk-SF4BDUZS.js → chunk-HUFLBZWI.js} +3 -3
  28. package/dist/{chunk-SF4BDUZS.js.map → chunk-HUFLBZWI.js.map} +1 -1
  29. package/dist/{chunk-B4SRYJLM.cjs → chunk-KBPHLW2R.cjs} +3 -3
  30. package/dist/{chunk-B4SRYJLM.cjs.map → chunk-KBPHLW2R.cjs.map} +1 -1
  31. package/dist/{chunk-IF6VAYIA.cjs → chunk-OYMYNYFV.cjs} +5 -5
  32. package/dist/{chunk-IF6VAYIA.cjs.map → chunk-OYMYNYFV.cjs.map} +1 -1
  33. package/dist/{chunk-ICBAFX5B.js → chunk-PDEHIGJ5.js} +3 -3
  34. package/dist/{chunk-ICBAFX5B.js.map → chunk-PDEHIGJ5.js.map} +1 -1
  35. package/dist/{chunk-SJVUKXS6.js → chunk-QQH2NI5U.js} +6 -6
  36. package/dist/{chunk-SJVUKXS6.js.map → chunk-QQH2NI5U.js.map} +1 -1
  37. package/dist/chunk-RC25WMVB.cjs +16 -0
  38. package/dist/chunk-RC25WMVB.cjs.map +1 -0
  39. package/dist/{chunk-YFPIJUV3.cjs → chunk-RZGVMV6B.cjs} +5 -5
  40. package/dist/{chunk-YFPIJUV3.cjs.map → chunk-RZGVMV6B.cjs.map} +1 -1
  41. package/dist/{chunk-AMC5PMJ3.cjs → chunk-TOVSTC2M.cjs} +36 -68
  42. package/dist/chunk-TOVSTC2M.cjs.map +1 -0
  43. package/dist/{chunk-R3PDNQYT.js → chunk-UMY6Y6BM.js} +11 -5
  44. package/dist/chunk-UMY6Y6BM.js.map +1 -0
  45. package/dist/{chunk-MROSCSPW.cjs → chunk-VQ65UHTV.cjs} +45 -45
  46. package/dist/{chunk-MROSCSPW.cjs.map → chunk-VQ65UHTV.cjs.map} +1 -1
  47. package/dist/{chunk-MP6FK43E.cjs → chunk-VYKMBLDX.cjs} +8 -8
  48. package/dist/{chunk-MP6FK43E.cjs.map → chunk-VYKMBLDX.cjs.map} +1 -1
  49. package/dist/{chunk-W2R7YVFM.js → chunk-WXLKMEMB.js} +970 -65
  50. package/dist/chunk-WXLKMEMB.js.map +1 -0
  51. package/dist/{chunk-XQDM6T6C.js → chunk-YG7DGGCA.js} +3 -3
  52. package/dist/{chunk-XQDM6T6C.js.map → chunk-YG7DGGCA.js.map} +1 -1
  53. package/dist/{chunk-BX62HJZU.js → chunk-YPKSLTL5.js} +3 -3
  54. package/dist/{chunk-BX62HJZU.js.map → chunk-YPKSLTL5.js.map} +1 -1
  55. package/dist/{chunk-UDLMLU6T.js → chunk-ZNDAXSDP.js} +3 -3
  56. package/dist/{chunk-UDLMLU6T.js.map → chunk-ZNDAXSDP.js.map} +1 -1
  57. package/dist/connect/docx.cjs +8 -6
  58. package/dist/connect/docx.cjs.map +1 -1
  59. package/dist/connect/docx.js +6 -4
  60. package/dist/connect/docx.js.map +1 -1
  61. package/dist/connect/index.cjs +47 -45
  62. package/dist/connect/index.cjs.map +1 -1
  63. package/dist/connect/index.js +16 -14
  64. package/dist/connect/index.js.map +1 -1
  65. package/dist/docx/NativeDocxEditor.d.ts +6 -0
  66. package/dist/docx/definitions/DefinedTerms.d.ts +50 -0
  67. package/dist/docx/definitions/commands.d.ts +78 -0
  68. package/dist/docx/definitions/fragment.d.ts +29 -0
  69. package/dist/docx/definitions/port.d.ts +76 -0
  70. package/dist/docx/index.cjs +53 -15
  71. package/dist/docx/index.cjs.map +1 -1
  72. package/dist/docx/index.d.ts +3 -0
  73. package/dist/docx/index.js +5 -3
  74. package/dist/docx/index.js.map +1 -1
  75. package/dist/facts/index.cjs +7 -12
  76. package/dist/facts/index.cjs.map +1 -1
  77. package/dist/facts/index.js +3 -10
  78. package/dist/facts/index.js.map +1 -1
  79. package/dist/home/CreateTile.d.ts +3 -1
  80. package/dist/home/index.cjs +10 -4
  81. package/dist/home/index.cjs.map +1 -1
  82. package/dist/home/index.js +10 -4
  83. package/dist/home/index.js.map +1 -1
  84. package/dist/index.cjs +1207 -1067
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.js +102 -15
  87. package/dist/index.js.map +1 -1
  88. package/dist/settings/PanelFrame.d.ts +3 -1
  89. package/dist/settings/index.cjs +12 -4
  90. package/dist/settings/index.cjs.map +1 -1
  91. package/dist/settings/index.js +12 -4
  92. package/dist/settings/index.js.map +1 -1
  93. package/dist/shell/Workspace.d.ts +6 -1
  94. package/dist/shell/index.cjs +67 -67
  95. package/dist/shell/index.js +3 -3
  96. package/dist/studio/index.cjs +7 -7
  97. package/dist/studio/index.js +6 -6
  98. package/dist/tags/definitions.d.ts +92 -0
  99. package/dist/tags/glossary.d.ts +44 -0
  100. package/dist/tags/index.d.ts +2 -0
  101. package/dist/tags/ooxml.d.ts +46 -0
  102. package/dist/tags/tagTableDocx.d.ts +1 -1
  103. package/dist/workflow-canvas/index.cjs +49 -49
  104. package/dist/workflow-canvas/index.js +6 -6
  105. package/package.json +4 -4
  106. package/src/docx/README.md +11 -0
  107. package/dist/chunk-2ZDFVRGV.cjs.map +0 -1
  108. package/dist/chunk-AMC5PMJ3.cjs.map +0 -1
  109. package/dist/chunk-NYBIKDWI.cjs.map +0 -1
  110. package/dist/chunk-R3PDNQYT.js.map +0 -1
  111. package/dist/chunk-UO74FLRK.js.map +0 -1
  112. package/dist/chunk-W2R7YVFM.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection/ai.tsx"],"names":["useKitAiTask","useKitWorkspaceDocs","useKitSemanticSearch"],"mappings":"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","file":"chunk-XQDM6T6C.js","sourcesContent":["/**\n * The connected agent hooks — thin adapters over the reusable AI kit in\n * `@arbidocs/react`. The streaming/accumulation/search plumbing lives once in\n * the SDK; these hooks only bind the *workspace source* (from the connection\n * context, falling back to the configured workspace) and inject the host's\n * default assistant *configuration* so call sites needn't know the config\n * ext_id. An explicit `opts.model` still wins.\n */\nimport { useCallback } from 'react'\nimport {\n useAiTask as useKitAiTask,\n useWorkspaceDocs as useKitWorkspaceDocs,\n useSemanticSearch as useKitSemanticSearch,\n useArbiChat,\n useWorkspaceUsers,\n type ArbiChat,\n type UseArbiChatOptions,\n type AiRunOptions,\n} from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport { AssistantDock, type AssistantDockProps } from '../chat/AssistantDock'\nimport type { MentionCandidate } from '../chat/mentions'\n\nexport type { AiTaskStatus, AiRunOptions, SearchChunk, ArtifactEvent } from '@arbidocs/react'\n\n/** Client-side redlining, re-exported so a host app has one import surface. */\nexport { toRedlineMarkdown, redlineStats, textToArtifact } from '@arbidocs/react'\n\n/**\n * The kit's `useAiTask` with the host's default assistant configuration\n * injected, so call sites needn't know the config ext_id.\n */\nexport function useConnectedAiTask() {\n const { assistantConfig } = useConnection()\n const task = useKitAiTask()\n const kitRun = task.run\n const run = useCallback(\n (question: string, docIds: string[], opts?: AiRunOptions) =>\n kitRun(question, docIds, { ...opts, model: opts?.model ?? assistantConfig }),\n [kitRun, assistantConfig]\n )\n return { ...task, run }\n}\n\n/** Resolve the active workspace + its document ids (what we ground the agent on). */\nexport function useWorkspaceDocs() {\n const { workspaceId, fallbackWorkspaceId } = useConnection()\n return useKitWorkspaceDocs(workspaceId ?? fallbackWorkspaceId)\n}\n\n/** Search the active workspace's documents and return the top matching passages. */\nexport function useSemanticSearch() {\n const { docIds } = useWorkspaceDocs()\n return useKitSemanticSearch(docIds)\n}\n\n/**\n * The chat controller for `ChatPage` bound to the connection: the active workspace and the host's\n * default assistant configuration are injected, so a host writes\n * `<ChatPage chat={useConnectedChat()} />`.\n */\nexport function useConnectedChat(\n options?: Omit<UseArbiChatOptions, 'workspaceId'>\n): ArbiChat & { mentionCandidates: MentionCandidate[] } {\n const { workspaceId, fallbackWorkspaceId, assistantConfig, user, status, ensureWorkspaceOpen } =\n useConnection()\n const wsId = workspaceId ?? fallbackWorkspaceId\n const { data: members = [] } = useWorkspaceUsers(wsId, {\n enabled: status === 'authenticated' && !!wsId,\n beforeFetch: ensureWorkspaceOpen,\n })\n const mentionCandidates: MentionCandidate[] = [\n { id: 'assistant', kind: 'assistant', label: 'Assistant' },\n ...(status === 'authenticated' ? members : [])\n .filter(\n (member) =>\n !member.agent_ext_id &&\n member.user.external_id !== user?.externalId &&\n !member.user.external_id.startsWith('agt-')\n )\n .map((member) => ({\n id: member.user.external_id,\n kind: 'user' as const,\n label:\n [member.user.given_name, member.user.family_name].filter(Boolean).join(' ') ||\n member.user.email,\n description: member.user.email,\n }))\n .sort((a, b) => a.label.localeCompare(b.label)),\n ]\n const chat = useArbiChat({\n ...options,\n workspaceId: workspaceId ?? fallbackWorkspaceId,\n model: options?.model ?? assistantConfig,\n })\n return {\n ...chat,\n mentionCandidates,\n messages: chat.messages.map((message) => ({\n ...message,\n ...(message.authorId\n ? {\n senderName:\n message.authorId === user?.externalId\n ? user?.name || user?.email\n : mentionCandidates.find((candidate) => candidate.id === message.authorId)?.label,\n }\n : {}),\n })),\n }\n}\n\n/**\n * The assistant dock bound to the connection: mount it once in the layout (`Shell.Root`'s `aside`)\n * and put `AssistantDockToggle` in the topbar. Chat state lives here, so it survives closing the dock.\n */\nexport function ConnectedAssistantDock(props: Omit<AssistantDockProps, 'chat'>) {\n const chat = useConnectedChat()\n return <AssistantDock {...props} chat={chat} />\n}\n"]}
1
+ {"version":3,"sources":["../src/connection/ai.tsx"],"names":["useKitAiTask","useKitWorkspaceDocs","useKitSemanticSearch"],"mappings":"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","file":"chunk-YG7DGGCA.js","sourcesContent":["/**\n * The connected agent hooks — thin adapters over the reusable AI kit in\n * `@arbidocs/react`. The streaming/accumulation/search plumbing lives once in\n * the SDK; these hooks only bind the *workspace source* (from the connection\n * context, falling back to the configured workspace) and inject the host's\n * default assistant *configuration* so call sites needn't know the config\n * ext_id. An explicit `opts.model` still wins.\n */\nimport { useCallback } from 'react'\nimport {\n useAiTask as useKitAiTask,\n useWorkspaceDocs as useKitWorkspaceDocs,\n useSemanticSearch as useKitSemanticSearch,\n useArbiChat,\n useWorkspaceUsers,\n type ArbiChat,\n type UseArbiChatOptions,\n type AiRunOptions,\n} from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport { AssistantDock, type AssistantDockProps } from '../chat/AssistantDock'\nimport type { MentionCandidate } from '../chat/mentions'\n\nexport type { AiTaskStatus, AiRunOptions, SearchChunk, ArtifactEvent } from '@arbidocs/react'\n\n/** Client-side redlining, re-exported so a host app has one import surface. */\nexport { toRedlineMarkdown, redlineStats, textToArtifact } from '@arbidocs/react'\n\n/**\n * The kit's `useAiTask` with the host's default assistant configuration\n * injected, so call sites needn't know the config ext_id.\n */\nexport function useConnectedAiTask() {\n const { assistantConfig } = useConnection()\n const task = useKitAiTask()\n const kitRun = task.run\n const run = useCallback(\n (question: string, docIds: string[], opts?: AiRunOptions) =>\n kitRun(question, docIds, { ...opts, model: opts?.model ?? assistantConfig }),\n [kitRun, assistantConfig]\n )\n return { ...task, run }\n}\n\n/** Resolve the active workspace + its document ids (what we ground the agent on). */\nexport function useWorkspaceDocs() {\n const { workspaceId, fallbackWorkspaceId } = useConnection()\n return useKitWorkspaceDocs(workspaceId ?? fallbackWorkspaceId)\n}\n\n/** Search the active workspace's documents and return the top matching passages. */\nexport function useSemanticSearch() {\n const { docIds } = useWorkspaceDocs()\n return useKitSemanticSearch(docIds)\n}\n\n/**\n * The chat controller for `ChatPage` bound to the connection: the active workspace and the host's\n * default assistant configuration are injected, so a host writes\n * `<ChatPage chat={useConnectedChat()} />`.\n */\nexport function useConnectedChat(\n options?: Omit<UseArbiChatOptions, 'workspaceId'>\n): ArbiChat & { mentionCandidates: MentionCandidate[] } {\n const { workspaceId, fallbackWorkspaceId, assistantConfig, user, status, ensureWorkspaceOpen } =\n useConnection()\n const wsId = workspaceId ?? fallbackWorkspaceId\n const { data: members = [] } = useWorkspaceUsers(wsId, {\n enabled: status === 'authenticated' && !!wsId,\n beforeFetch: ensureWorkspaceOpen,\n })\n const mentionCandidates: MentionCandidate[] = [\n { id: 'assistant', kind: 'assistant', label: 'Assistant' },\n ...(status === 'authenticated' ? members : [])\n .filter(\n (member) =>\n !member.agent_ext_id &&\n member.user.external_id !== user?.externalId &&\n !member.user.external_id.startsWith('agt-')\n )\n .map((member) => ({\n id: member.user.external_id,\n kind: 'user' as const,\n label:\n [member.user.given_name, member.user.family_name].filter(Boolean).join(' ') ||\n member.user.email,\n description: member.user.email,\n }))\n .sort((a, b) => a.label.localeCompare(b.label)),\n ]\n const chat = useArbiChat({\n ...options,\n workspaceId: workspaceId ?? fallbackWorkspaceId,\n model: options?.model ?? assistantConfig,\n })\n return {\n ...chat,\n mentionCandidates,\n messages: chat.messages.map((message) => ({\n ...message,\n ...(message.authorId\n ? {\n senderName:\n message.authorId === user?.externalId\n ? user?.name || user?.email\n : mentionCandidates.find((candidate) => candidate.id === message.authorId)?.label,\n }\n : {}),\n })),\n }\n}\n\n/**\n * The assistant dock bound to the connection: mount it once in the layout (`Shell.Root`'s `aside`)\n * and put `AssistantDockToggle` in the topbar. Chat state lives here, so it survives closing the dock.\n */\nexport function ConnectedAssistantDock(props: Omit<AssistantDockProps, 'chat'>) {\n const chat = useConnectedChat()\n return <AssistantDock {...props} chat={chat} />\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { NativeDocxEditor } from './chunk-W2R7YVFM.js';
2
+ import { NativeDocxEditor } from './chunk-WXLKMEMB.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
5
5
  function StreamedWordArtifact({
@@ -37,5 +37,5 @@ function StreamedWordArtifact({
37
37
  }
38
38
 
39
39
  export { StreamedWordArtifact };
40
- //# sourceMappingURL=chunk-BX62HJZU.js.map
41
- //# sourceMappingURL=chunk-BX62HJZU.js.map
40
+ //# sourceMappingURL=chunk-YPKSLTL5.js.map
41
+ //# sourceMappingURL=chunk-YPKSLTL5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/docx/StreamedWordArtifact.tsx"],"names":[],"mappings":";;;AAmBO,SAAS,oBAAA,CAAqB;AAAA,EACnC,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,IAAI,CAAC,QAAQ,UAAA,EAAY;AACvB,IAAA,uBACE,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QAEC,OAAA;AAAA,QACA,UAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OAAA;AAAA,MAJK;AAAA,KAKP;AAAA,EAEJ;AACA,EAAA,uBACE,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MAEC,OAAA;AAAA,MACA,UAAA,EAAW,gBAAA;AAAA,MACX,KAAA;AAAA,MACA,YAAA,EAAa,EAAA;AAAA,MACb,MAAA,EAAQ,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA;AAAM,KAAA;AAAA,IAL3B;AAAA,GAMN;AAEJ","file":"chunk-BX62HJZU.js","sourcesContent":["import { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface StreamedWordArtifactProps {\n adapter: NativeDocxAdapter\n /** Streamed Markdown, shown as a read-only preview while the draft is generated. */\n content: string\n title: string\n busy: boolean\n error?: string | null\n /** The DOCX draft the server stored for this generation (`doc-…`), once known. */\n documentId?: string\n onSaved?: (documentId: string) => void\n}\n\n/**\n * One drafting surface for an AI document draft. The server stores every draft as DOCX, so\n * this component never creates a document: it previews the streamed Markdown until generation\n * ends and the stored DOCX is known, then opens that DOCX in the live collaborative editor.\n */\nexport function StreamedWordArtifact({\n adapter,\n content,\n title,\n busy,\n error,\n documentId,\n onSaved,\n}: StreamedWordArtifactProps) {\n if (!busy && documentId) {\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={title}\n onSaved={onSaved}\n />\n )\n }\n return (\n <NativeDocxEditor\n key=\"stream-preview\"\n adapter={adapter}\n documentId=\"stream-preview\"\n title={title}\n draftContent=\"\"\n stream={{ content, busy, error }}\n />\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/docx/StreamedWordArtifact.tsx"],"names":[],"mappings":";;;AAmBO,SAAS,oBAAA,CAAqB;AAAA,EACnC,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,IAAI,CAAC,QAAQ,UAAA,EAAY;AACvB,IAAA,uBACE,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QAEC,OAAA;AAAA,QACA,UAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OAAA;AAAA,MAJK;AAAA,KAKP;AAAA,EAEJ;AACA,EAAA,uBACE,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MAEC,OAAA;AAAA,MACA,UAAA,EAAW,gBAAA;AAAA,MACX,KAAA;AAAA,MACA,YAAA,EAAa,EAAA;AAAA,MACb,MAAA,EAAQ,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA;AAAM,KAAA;AAAA,IAL3B;AAAA,GAMN;AAEJ","file":"chunk-YPKSLTL5.js","sourcesContent":["import { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface StreamedWordArtifactProps {\n adapter: NativeDocxAdapter\n /** Streamed Markdown, shown as a read-only preview while the draft is generated. */\n content: string\n title: string\n busy: boolean\n error?: string | null\n /** The DOCX draft the server stored for this generation (`doc-…`), once known. */\n documentId?: string\n onSaved?: (documentId: string) => void\n}\n\n/**\n * One drafting surface for an AI document draft. The server stores every draft as DOCX, so\n * this component never creates a document: it previews the streamed Markdown until generation\n * ends and the stored DOCX is known, then opens that DOCX in the live collaborative editor.\n */\nexport function StreamedWordArtifact({\n adapter,\n content,\n title,\n busy,\n error,\n documentId,\n onSaved,\n}: StreamedWordArtifactProps) {\n if (!busy && documentId) {\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={title}\n onSaved={onSaved}\n />\n )\n }\n return (\n <NativeDocxEditor\n key=\"stream-preview\"\n adapter={adapter}\n documentId=\"stream-preview\"\n title={title}\n draftContent=\"\"\n stream={{ content, busy, error }}\n />\n )\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useConnection } from './chunk-OYMWV45N.js';
3
- import { NativeDocxEditor, loadDocxFonts } from './chunk-W2R7YVFM.js';
3
+ import { NativeDocxEditor, loadDocxFonts } from './chunk-WXLKMEMB.js';
4
4
  import { useMemo } from 'react';
5
5
  import { useQueryClient, useQuery } from '@tanstack/react-query';
6
6
  import { useArbi, notify, arbiQueryKeys } from '@arbidocs/react';
@@ -88,5 +88,5 @@ function useConnectedNativeDocxAdapter(fontBaseUrl = "/native-docx/fonts") {
88
88
  }
89
89
 
90
90
  export { ConnectedNativeDocxEditor, useConnectedNativeDocxAdapter };
91
- //# sourceMappingURL=chunk-UDLMLU6T.js.map
92
- //# sourceMappingURL=chunk-UDLMLU6T.js.map
91
+ //# sourceMappingURL=chunk-ZNDAXSDP.js.map
92
+ //# sourceMappingURL=chunk-ZNDAXSDP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection/ConnectedNativeDocxEditor.tsx"],"names":[],"mappings":"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","file":"chunk-UDLMLU6T.js","sourcesContent":["import { useMemo } from 'react'\nimport { useQuery, useQueryClient } from '@tanstack/react-query'\nimport { useArbi, notify, arbiQueryKeys } from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport {\n NativeDocxEditor,\n type NativeDocxAdapter,\n type NativeDocxEditorProps,\n} from '../docx/NativeDocxEditor'\nimport { loadDocxFonts } from '../docx/fonts'\n\n/** Native Word widget bound to the standard blocks connection and SDK session. */\nexport function ConnectedNativeDocxEditor({\n fontBaseUrl = '/native-docx/fonts',\n ...props\n}: Omit<NativeDocxEditorProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <NativeDocxEditor {...props} adapter={adapter} />\n}\n\nexport function useConnectedNativeDocxAdapter(fontBaseUrl = '/native-docx/fonts') {\n const arbi = useArbi()\n const { workspaceId, apiUrl, user, ensureWorkspaceOpen } = useConnection()\n const queries = useQueryClient()\n const { data: members } = useQuery({\n queryKey: ['native-docx-members', apiUrl, user?.externalId, workspaceId],\n enabled: arbi.isLoggedIn && !!workspaceId,\n queryFn: async () => {\n await ensureWorkspaceOpen()\n return arbi.workspaces.listUsers()\n },\n })\n const adapter = useMemo<NativeDocxAdapter>(\n () => ({\n request: async (path, options) => {\n await ensureWorkspaceOpen()\n return arbi.editor.request(path, options)\n },\n open: async (id) => {\n await ensureWorkspaceOpen()\n return (\n await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: 'POST' })\n ).json()\n },\n save: async (id, state) =>\n (\n await arbi.editor.request(`/${encodeURIComponent(id)}/save`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ state }),\n })\n ).json(),\n loadFonts: () => loadDocxFonts(fontBaseUrl),\n baseUrl: apiUrl,\n author: user?.name || 'You',\n onVersionSaved: async (id) => {\n if (!workspaceId) return\n const key = arbiQueryKeys.documents(workspaceId)\n try {\n const documents = await arbi.documents.get([id])\n if (!documents.length) throw new Error('The saved version is not available yet.')\n queries.setQueryData<Awaited<ReturnType<typeof arbi.documents.list>>>(key, (previous) => [\n ...documents,\n ...(previous || []).filter(\n (doc) => !documents.some((saved) => saved.external_id === doc.external_id)\n ),\n ])\n } catch {\n await queries.invalidateQueries({ queryKey: key })\n }\n },\n notify: (message, kind) => notify[kind](message),\n mentions: members?.map(({ user: member }) => ({\n id: member.external_id,\n name: [member.given_name, member.family_name].filter(Boolean).join(' '),\n kind: member.external_id.startsWith('agt-') ? 'agent' : 'human',\n })),\n requestAgent: async (id, request) => {\n const response = await arbi.editor.request(`/${encodeURIComponent(id)}/mentions`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n comment_id: request.commentId,\n instruction: request.instruction,\n request_id: request.requestId,\n recipient_ids: request.recipientIds,\n }),\n })\n const delivery = (await response.json()) as { response_ids: string[] }\n notify.success('Mention delivered.')\n return { responseIds: delivery.response_ids || [] }\n },\n getAgentStatus: async (responseId) => (await arbi.assistant.getResponse(responseId)).status,\n }),\n [arbi, apiUrl, user?.name, members, ensureWorkspaceOpen, fontBaseUrl, queries, workspaceId]\n )\n return adapter\n}\n"]}
1
+ {"version":3,"sources":["../src/connection/ConnectedNativeDocxEditor.tsx"],"names":[],"mappings":"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","file":"chunk-ZNDAXSDP.js","sourcesContent":["import { useMemo } from 'react'\nimport { useQuery, useQueryClient } from '@tanstack/react-query'\nimport { useArbi, notify, arbiQueryKeys } from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport {\n NativeDocxEditor,\n type NativeDocxAdapter,\n type NativeDocxEditorProps,\n} from '../docx/NativeDocxEditor'\nimport { loadDocxFonts } from '../docx/fonts'\n\n/** Native Word widget bound to the standard blocks connection and SDK session. */\nexport function ConnectedNativeDocxEditor({\n fontBaseUrl = '/native-docx/fonts',\n ...props\n}: Omit<NativeDocxEditorProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <NativeDocxEditor {...props} adapter={adapter} />\n}\n\nexport function useConnectedNativeDocxAdapter(fontBaseUrl = '/native-docx/fonts') {\n const arbi = useArbi()\n const { workspaceId, apiUrl, user, ensureWorkspaceOpen } = useConnection()\n const queries = useQueryClient()\n const { data: members } = useQuery({\n queryKey: ['native-docx-members', apiUrl, user?.externalId, workspaceId],\n enabled: arbi.isLoggedIn && !!workspaceId,\n queryFn: async () => {\n await ensureWorkspaceOpen()\n return arbi.workspaces.listUsers()\n },\n })\n const adapter = useMemo<NativeDocxAdapter>(\n () => ({\n request: async (path, options) => {\n await ensureWorkspaceOpen()\n return arbi.editor.request(path, options)\n },\n open: async (id) => {\n await ensureWorkspaceOpen()\n return (\n await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: 'POST' })\n ).json()\n },\n save: async (id, state) =>\n (\n await arbi.editor.request(`/${encodeURIComponent(id)}/save`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ state }),\n })\n ).json(),\n loadFonts: () => loadDocxFonts(fontBaseUrl),\n baseUrl: apiUrl,\n author: user?.name || 'You',\n onVersionSaved: async (id) => {\n if (!workspaceId) return\n const key = arbiQueryKeys.documents(workspaceId)\n try {\n const documents = await arbi.documents.get([id])\n if (!documents.length) throw new Error('The saved version is not available yet.')\n queries.setQueryData<Awaited<ReturnType<typeof arbi.documents.list>>>(key, (previous) => [\n ...documents,\n ...(previous || []).filter(\n (doc) => !documents.some((saved) => saved.external_id === doc.external_id)\n ),\n ])\n } catch {\n await queries.invalidateQueries({ queryKey: key })\n }\n },\n notify: (message, kind) => notify[kind](message),\n mentions: members?.map(({ user: member }) => ({\n id: member.external_id,\n name: [member.given_name, member.family_name].filter(Boolean).join(' '),\n kind: member.external_id.startsWith('agt-') ? 'agent' : 'human',\n })),\n requestAgent: async (id, request) => {\n const response = await arbi.editor.request(`/${encodeURIComponent(id)}/mentions`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n comment_id: request.commentId,\n instruction: request.instruction,\n request_id: request.requestId,\n recipient_ids: request.recipientIds,\n }),\n })\n const delivery = (await response.json()) as { response_ids: string[] }\n notify.success('Mention delivered.')\n return { responseIds: delivery.response_ids || [] }\n },\n getAgentStatus: async (responseId) => (await arbi.assistant.getResponse(responseId)).status,\n }),\n [arbi, apiUrl, user?.name, members, ensureWorkspaceOpen, fontBaseUrl, queries, workspaceId]\n )\n return adapter\n}\n"]}
@@ -1,10 +1,12 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkYFPIJUV3_cjs = require('../chunk-YFPIJUV3.cjs');
4
+ var chunkRZGVMV6B_cjs = require('../chunk-RZGVMV6B.cjs');
5
5
  require('../chunk-MUMH3Z6K.cjs');
6
- var chunk6XS5IJ5R_cjs = require('../chunk-6XS5IJ5R.cjs');
7
- require('../chunk-2ZDFVRGV.cjs');
6
+ var chunk3OXWJ3CZ_cjs = require('../chunk-3OXWJ3CZ.cjs');
7
+ require('../chunk-E2AAIMXO.cjs');
8
+ require('../chunk-AOFATOT3.cjs');
9
+ require('../chunk-RC25WMVB.cjs');
8
10
  require('../chunk-7UTB4PHM.cjs');
9
11
  require('../chunk-MHVNT4J3.cjs');
10
12
  require('../chunk-DES3K4SD.cjs');
@@ -14,13 +16,13 @@ function ConnectedStreamedWordArtifact({
14
16
  fontBaseUrl,
15
17
  ...props
16
18
  }) {
17
- const adapter = chunkYFPIJUV3_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
18
- return /* @__PURE__ */ jsxRuntime.jsx(chunk6XS5IJ5R_cjs.StreamedWordArtifact, { ...props, adapter });
19
+ const adapter = chunkRZGVMV6B_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
20
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk3OXWJ3CZ_cjs.StreamedWordArtifact, { ...props, adapter });
19
21
  }
20
22
 
21
23
  Object.defineProperty(exports, "ConnectedNativeDocxEditor", {
22
24
  enumerable: true,
23
- get: function () { return chunkYFPIJUV3_cjs.ConnectedNativeDocxEditor; }
25
+ get: function () { return chunkRZGVMV6B_cjs.ConnectedNativeDocxEditor; }
24
26
  });
25
27
  exports.ConnectedStreamedWordArtifact = ConnectedStreamedWordArtifact;
26
28
  //# sourceMappingURL=docx.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":["useConnectedNativeDocxAdapter","jsx","StreamedWordArtifact"],"mappings":";;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,uBAAOC,cAAA,CAACC,sCAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.cjs","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
1
+ {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":["useConnectedNativeDocxAdapter","jsx","StreamedWordArtifact"],"mappings":";;;;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,uBAAOC,cAAA,CAACC,sCAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.cjs","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
@@ -1,9 +1,11 @@
1
1
  "use client";
2
- import { useConnectedNativeDocxAdapter } from '../chunk-UDLMLU6T.js';
3
- export { ConnectedNativeDocxEditor } from '../chunk-UDLMLU6T.js';
2
+ import { useConnectedNativeDocxAdapter } from '../chunk-ZNDAXSDP.js';
3
+ export { ConnectedNativeDocxEditor } from '../chunk-ZNDAXSDP.js';
4
4
  import '../chunk-OYMWV45N.js';
5
- import { StreamedWordArtifact } from '../chunk-BX62HJZU.js';
6
- import '../chunk-W2R7YVFM.js';
5
+ import { StreamedWordArtifact } from '../chunk-YPKSLTL5.js';
6
+ import '../chunk-WXLKMEMB.js';
7
+ import '../chunk-D3QPYKZG.js';
8
+ import '../chunk-AF6RDAJF.js';
7
9
  import '../chunk-AA3PT6KR.js';
8
10
  import '../chunk-7F6CBP3Z.js';
9
11
  import '../chunk-VUNV25KB.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":[],"mappings":";;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.js","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
1
+ {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.js","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
@@ -1,33 +1,35 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var chunkGNHOB2ZB_cjs = require('../chunk-GNHOB2ZB.cjs');
4
5
  var chunk5YXG342J_cjs = require('../chunk-5YXG342J.cjs');
5
- var chunkXMBYDLZQ_cjs = require('../chunk-XMBYDLZQ.cjs');
6
- var chunkYFPIJUV3_cjs = require('../chunk-YFPIJUV3.cjs');
7
- var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
8
6
  var chunkJH6JTI76_cjs = require('../chunk-JH6JTI76.cjs');
9
- require('../chunk-2ZDFVRGV.cjs');
10
7
  var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
11
- var chunkAMC5PMJ3_cjs = require('../chunk-AMC5PMJ3.cjs');
12
- var chunk3WW32OUU_cjs = require('../chunk-3WW32OUU.cjs');
8
+ var chunkTOVSTC2M_cjs = require('../chunk-TOVSTC2M.cjs');
9
+ var chunkVYKMBLDX_cjs = require('../chunk-VYKMBLDX.cjs');
10
+ require('../chunk-VGOFFCMT.cjs');
11
+ var chunkDCZGYCN2_cjs = require('../chunk-DCZGYCN2.cjs');
13
12
  var chunkN26CXGXC_cjs = require('../chunk-N26CXGXC.cjs');
13
+ require('../chunk-KBPHLW2R.cjs');
14
14
  var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
15
15
  require('../chunk-7D737FLE.cjs');
16
16
  require('../chunk-DETZZBG2.cjs');
17
17
  require('../chunk-32HW2Q33.cjs');
18
18
  var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
19
- var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
20
- require('../chunk-ADOKTJHV.cjs');
21
- var chunkMP6FK43E_cjs = require('../chunk-MP6FK43E.cjs');
22
- require('../chunk-VGOFFCMT.cjs');
23
- require('../chunk-B4SRYJLM.cjs');
24
- require('../chunk-7UTB4PHM.cjs');
25
19
  require('../chunk-PPCATBOY.cjs');
20
+ require('../chunk-ADOKTJHV.cjs');
21
+ var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
26
22
  var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
27
23
  var chunk3R6XBYL7_cjs = require('../chunk-3R6XBYL7.cjs');
28
24
  var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
29
25
  require('../chunk-IXALYQT7.cjs');
30
26
  require('../chunk-FX3K6LNZ.cjs');
27
+ var chunkRZGVMV6B_cjs = require('../chunk-RZGVMV6B.cjs');
28
+ var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
29
+ require('../chunk-E2AAIMXO.cjs');
30
+ var chunkAOFATOT3_cjs = require('../chunk-AOFATOT3.cjs');
31
+ require('../chunk-RC25WMVB.cjs');
32
+ require('../chunk-7UTB4PHM.cjs');
31
33
  require('../chunk-MHVNT4J3.cjs');
32
34
  require('../chunk-DES3K4SD.cjs');
33
35
  var react = require('react');
@@ -117,7 +119,7 @@ function ConnectedWorkspaceActivity({
117
119
  [feed.data]
118
120
  );
119
121
  return /* @__PURE__ */ jsxRuntime.jsx(
120
- chunkAMC5PMJ3_cjs.WorkspaceActivityList,
122
+ chunkTOVSTC2M_cjs.WorkspaceActivityList,
121
123
  {
122
124
  ...listProps,
123
125
  items,
@@ -143,7 +145,7 @@ function ConnectedWorkspaceNotificationMenu({
143
145
  });
144
146
  if (!workspaceId) return null;
145
147
  return /* @__PURE__ */ jsxRuntime.jsx(
146
- chunkAMC5PMJ3_cjs.WorkspaceNotificationMenu,
148
+ chunkTOVSTC2M_cjs.WorkspaceNotificationMenu,
147
149
  {
148
150
  ...menuProps,
149
151
  level,
@@ -162,7 +164,7 @@ function ConnectedThreadFollow({
162
164
  enabled: status === "authenticated"
163
165
  });
164
166
  if (!conversationId) return null;
165
- const Control = as === "menu-item" ? chunkAMC5PMJ3_cjs.ThreadFollowMenuItem : chunkAMC5PMJ3_cjs.ThreadFollowButton;
167
+ const Control = as === "menu-item" ? chunkTOVSTC2M_cjs.ThreadFollowMenuItem : chunkTOVSTC2M_cjs.ThreadFollowButton;
166
168
  return /* @__PURE__ */ jsxRuntime.jsx(
167
169
  Control,
168
170
  {
@@ -288,7 +290,7 @@ function StreamedArtifact({
288
290
  }
289
291
  var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
290
292
  function formValues(step, inputs) {
291
- const fields = chunk3WW32OUU_cjs.stepFields(step);
293
+ const fields = chunkDCZGYCN2_cjs.stepFields(step);
292
294
  if (!fields.length) return void 0;
293
295
  if (step.kind === "form")
294
296
  return Object.fromEntries(fields.map((f) => [f.name, inputs[f.name] ?? ""]));
@@ -323,10 +325,10 @@ function useAnswerRetry(missing, refetch) {
323
325
  function useWorkflowThread(workflow, options = {}) {
324
326
  const arbi = react$1.useArbi();
325
327
  const { ensureWorkspaceOpen, status } = chunkMUMH3Z6K_cjs.useConnection();
326
- const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
328
+ const { wsId } = chunkGNHOB2ZB_cjs.useWorkspaceDocs();
327
329
  const [threadId, setThreadId] = react.useState(options.conversationId);
328
330
  const [localInputs, setLocalInputs] = react.useState(
329
- () => chunk3WW32OUU_cjs.initialRunInputs(workflow, options.initialInputs)
331
+ () => chunkDCZGYCN2_cjs.initialRunInputs(workflow, options.initialInputs)
330
332
  );
331
333
  const [edits, setEdits] = react.useState({});
332
334
  const [localStates, setLocalStates] = react.useState({});
@@ -346,12 +348,12 @@ function useWorkflowThread(workflow, options = {}) {
346
348
  );
347
349
  const conversation = conversations.data?.find((c) => c.external_id === threadId);
348
350
  const steps = react.useMemo(
349
- () => chunk3WW32OUU_cjs.workflowSteps(workflow).length > 0 ? chunk3WW32OUU_cjs.workflowSteps(workflow) : chunk3WW32OUU_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
351
+ () => chunkDCZGYCN2_cjs.workflowSteps(workflow).length > 0 ? chunkDCZGYCN2_cjs.workflowSteps(workflow) : chunkDCZGYCN2_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
350
352
  [workflow, conversation?.plan?.steps]
351
353
  );
352
354
  const activity = react$1.useConversationActivity(threadId, { live: !!threadId });
353
355
  const serverStates = react.useMemo(
354
- () => chunk3WW32OUU_cjs.stepStatesFromActivity(activity.data ?? []),
356
+ () => chunkDCZGYCN2_cjs.stepStatesFromActivity(activity.data ?? []),
355
357
  [activity.data]
356
358
  );
357
359
  const working = steps.some(
@@ -394,7 +396,7 @@ function useWorkflowThread(workflow, options = {}) {
394
396
  async (values, done) => {
395
397
  await ensureWorkspaceOpen();
396
398
  const created = await createWork.mutateAsync({
397
- title: chunk3WW32OUU_cjs.runThreadTitle(workflow, values).slice(0, 60),
399
+ title: chunkDCZGYCN2_cjs.runThreadTitle(workflow, values).slice(0, 60),
398
400
  description: workflow.description || null,
399
401
  prompt: null,
400
402
  skill_ref: null,
@@ -406,7 +408,7 @@ function useWorkflowThread(workflow, options = {}) {
406
408
  criteria: [],
407
409
  max_passes: 3,
408
410
  documents: [],
409
- steps: chunk3WW32OUU_cjs.toPlanSteps(workflow, {
411
+ steps: chunkDCZGYCN2_cjs.toPlanSteps(workflow, {
410
412
  inputs: values,
411
413
  resolveWorkflow: options.resolveWorkflow,
412
414
  compose: options.compose
@@ -493,7 +495,7 @@ function useWorkflowThread(workflow, options = {}) {
493
495
  const anyRunning = Object.values(states).some((s) => s.status === "running");
494
496
  const needsStart = !threadId || idle && !anyRunning;
495
497
  const runError = idle ? conversation?.last_error ?? null : null;
496
- const view = chunk3WW32OUU_cjs.useWorkflowView({
498
+ const view = chunkDCZGYCN2_cjs.useWorkflowView({
497
499
  steps,
498
500
  states,
499
501
  inputs,
@@ -536,7 +538,7 @@ function WorkflowRunThread({
536
538
  if (listed && activeThreadId !== conversationId) selectThread(conversationId);
537
539
  }, [listed, activeThreadId, conversationId, selectThread]);
538
540
  return /* @__PURE__ */ jsxRuntime.jsx(
539
- chunkMP6FK43E_cjs.ChatPage,
541
+ chunkVYKMBLDX_cjs.ChatPage,
540
542
  {
541
543
  chat: { ...chat, threads: chat.threads.filter((t) => t.id === conversationId) },
542
544
  singleThread: true,
@@ -574,7 +576,7 @@ function WorkflowSignDialog({
574
576
  const arbi = react$1.useArbi();
575
577
  const { user, ensureWorkspaceOpen } = chunkMUMH3Z6K_cjs.useConnection();
576
578
  const tools = documentTools.useOptionalDocumentTools();
577
- const { id, version: stepVersion } = chunk3WW32OUU_cjs.splitDocRef(docRef);
579
+ const { id, version: stepVersion } = chunkDCZGYCN2_cjs.splitDocRef(docRef);
578
580
  const [version, setVersion] = react.useState(stepVersion);
579
581
  const [pdf, setPdf] = react.useState(null);
580
582
  const [preparing, setPreparing] = react.useState(false);
@@ -652,7 +654,7 @@ function WorkflowWordDialog({
652
654
  onClose,
653
655
  labels
654
656
  }) {
655
- const { id } = chunk3WW32OUU_cjs.splitDocRef(docRef);
657
+ const { id } = chunkDCZGYCN2_cjs.splitDocRef(docRef);
656
658
  return /* @__PURE__ */ jsxRuntime.jsx(
657
659
  chunkULWRNGGE_cjs.ModalScaffold,
658
660
  {
@@ -661,7 +663,7 @@ function WorkflowWordDialog({
661
663
  title: title ?? labels.wordTitle,
662
664
  size: "xl",
663
665
  testId: "workflow-word-dialog",
664
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkYFPIJUV3_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
666
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkRZGVMV6B_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
665
667
  }
666
668
  );
667
669
  }
@@ -801,7 +803,7 @@ function ConnectedWorkflowRunner({
801
803
  const dl = { ...DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS, ...dialogLabels };
802
804
  const arbi = react$1.useArbi();
803
805
  const { ensureWorkspaceOpen, user } = chunkMUMH3Z6K_cjs.useConnection();
804
- const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
806
+ const { wsId } = chunkGNHOB2ZB_cjs.useWorkspaceDocs();
805
807
  const { data: docs = [], refetch } = react$1.useDocuments(wsId);
806
808
  const [sending, setSending] = react.useState([]);
807
809
  const [added, setAdded] = react.useState({});
@@ -824,7 +826,7 @@ function ConnectedWorkflowRunner({
824
826
  () => ({
825
827
  me: user?.externalId,
826
828
  openDocument: onOpenDocument && ((ref) => {
827
- const { id, version } = chunk3WW32OUU_cjs.splitDocRef(ref);
829
+ const { id, version } = chunkDCZGYCN2_cjs.splitDocRef(ref);
828
830
  onOpenDocument(id, version);
829
831
  }),
830
832
  openDraft: onOpenDraft && ((draftId) => onOpenDraft(draftId)),
@@ -834,7 +836,7 @@ function ConnectedWorkflowRunner({
834
836
  const w = state.waiting;
835
837
  if (w?.doc_ext_id) setDialog({ kind: "sign", docRef: w.doc_ext_id });
836
838
  }),
837
- openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunk3WW32OUU_cjs.splitDocRef(ref).id) ?? "" })),
839
+ openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunkDCZGYCN2_cjs.splitDocRef(ref).id) ?? "" })),
838
840
  openReview: hostActions?.openReview ?? ((tags, documents) => setDialog({ kind: "review", tags, documents }))
839
841
  }),
840
842
  [user?.externalId, onOpenDocument, onOpenDraft, onOpenMessage, hostActions, nameOfDoc, inThread]
@@ -970,7 +972,7 @@ function ConnectedWorkflowRunner({
970
972
  );
971
973
  };
972
974
  const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
973
- chunk3WW32OUU_cjs.WorkflowRunner,
975
+ chunkDCZGYCN2_cjs.WorkflowRunner,
974
976
  {
975
977
  people,
976
978
  ...runnerProps,
@@ -1016,10 +1018,10 @@ function ConnectedWorkflowRunner({
1016
1018
  ) }),
1017
1019
  inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1018
1020
  /* @__PURE__ */ jsxRuntime.jsx(
1019
- chunk3WW32OUU_cjs.WorkflowStepBar,
1021
+ chunkDCZGYCN2_cjs.WorkflowStepBar,
1020
1022
  {
1021
1023
  run: view,
1022
- levels: chunk3WW32OUU_cjs.stepLevels(view.steps),
1024
+ levels: chunkDCZGYCN2_cjs.stepLevels(view.steps),
1023
1025
  doneTitle: (workflow.run.kind === "steps" ? workflow.run.completion?.title : void 0) ?? runnerProps.labels?.complete ?? "Done",
1024
1026
  icon: (key) => key && runnerProps.renderIcon ? runnerProps.renderIcon(key) : void 0,
1025
1027
  tid: (suffix) => `${testIdPrefix}-${suffix}`
@@ -1200,17 +1202,17 @@ function ConnectedTagTable({
1200
1202
  const fail = (e) => setError(e instanceof Error ? e.message : String(e));
1201
1203
  const snapshot = (data) => {
1202
1204
  const title = exportTitle ?? KIND_TITLES[kind];
1203
- const bytes = chunkAMC5PMJ3_cjs.tagTableDocx(data, {
1205
+ const bytes = chunkTOVSTC2M_cjs.tagTableDocx(data, {
1204
1206
  title,
1205
1207
  nameOf: (id) => people.find((p) => p.value === id)?.label
1206
1208
  });
1207
1209
  const stamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
1208
1210
  const name = `${title.replace(/[\\/:*?"<>|]+/g, "-")} (${stamp}).docx`;
1209
- return { blob: new Blob([bytes], { type: chunkAMC5PMJ3_cjs.DOCX_MIME_TYPE }), name };
1211
+ return { blob: new Blob([bytes], { type: chunkAOFATOT3_cjs.DOCX_MIME_TYPE }), name };
1210
1212
  };
1211
1213
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1212
1214
  /* @__PURE__ */ jsxRuntime.jsx(
1213
- chunkAMC5PMJ3_cjs.TagTable,
1215
+ chunkTOVSTC2M_cjs.TagTable,
1214
1216
  {
1215
1217
  ...props,
1216
1218
  table,
@@ -3320,7 +3322,7 @@ function ConnectedMailbox({
3320
3322
  function ActiveChat({ agentId, workspaceId }) {
3321
3323
  const chat = react$1.useArbiChat({ agentId, workspaceId });
3322
3324
  return /* @__PURE__ */ jsxRuntime.jsx(
3323
- chunkMP6FK43E_cjs.ChatPage,
3325
+ chunkVYKMBLDX_cjs.ChatPage,
3324
3326
  {
3325
3327
  chat: { ...chat, assistantMode: void 0, setAssistantMode: void 0 },
3326
3328
  documentsRequired: false,
@@ -3382,35 +3384,35 @@ function ConnectedAgentChatPanel({
3382
3384
 
3383
3385
  Object.defineProperty(exports, "ConnectedAssistantDock", {
3384
3386
  enumerable: true,
3385
- get: function () { return chunkXMBYDLZQ_cjs.ConnectedAssistantDock; }
3387
+ get: function () { return chunkGNHOB2ZB_cjs.ConnectedAssistantDock; }
3386
3388
  });
3387
3389
  Object.defineProperty(exports, "redlineStats", {
3388
3390
  enumerable: true,
3389
- get: function () { return chunkXMBYDLZQ_cjs.redlineStats; }
3391
+ get: function () { return chunkGNHOB2ZB_cjs.redlineStats; }
3390
3392
  });
3391
3393
  Object.defineProperty(exports, "textToArtifact", {
3392
3394
  enumerable: true,
3393
- get: function () { return chunkXMBYDLZQ_cjs.textToArtifact; }
3395
+ get: function () { return chunkGNHOB2ZB_cjs.textToArtifact; }
3394
3396
  });
3395
3397
  Object.defineProperty(exports, "toRedlineMarkdown", {
3396
3398
  enumerable: true,
3397
- get: function () { return chunkXMBYDLZQ_cjs.toRedlineMarkdown; }
3399
+ get: function () { return chunkGNHOB2ZB_cjs.toRedlineMarkdown; }
3398
3400
  });
3399
3401
  Object.defineProperty(exports, "useConnectedAiTask", {
3400
3402
  enumerable: true,
3401
- get: function () { return chunkXMBYDLZQ_cjs.useConnectedAiTask; }
3403
+ get: function () { return chunkGNHOB2ZB_cjs.useConnectedAiTask; }
3402
3404
  });
3403
3405
  Object.defineProperty(exports, "useConnectedChat", {
3404
3406
  enumerable: true,
3405
- get: function () { return chunkXMBYDLZQ_cjs.useConnectedChat; }
3407
+ get: function () { return chunkGNHOB2ZB_cjs.useConnectedChat; }
3406
3408
  });
3407
3409
  Object.defineProperty(exports, "useSemanticSearch", {
3408
3410
  enumerable: true,
3409
- get: function () { return chunkXMBYDLZQ_cjs.useSemanticSearch; }
3411
+ get: function () { return chunkGNHOB2ZB_cjs.useSemanticSearch; }
3410
3412
  });
3411
3413
  Object.defineProperty(exports, "useWorkspaceDocs", {
3412
3414
  enumerable: true,
3413
- get: function () { return chunkXMBYDLZQ_cjs.useWorkspaceDocs; }
3415
+ get: function () { return chunkGNHOB2ZB_cjs.useWorkspaceDocs; }
3414
3416
  });
3415
3417
  Object.defineProperty(exports, "ConnectionProvider", {
3416
3418
  enumerable: true,