@arbidocs/blocks 0.4.165 → 0.4.166

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 (152) hide show
  1. package/dist/{ConnectedNativeDocxComparison-7WXIDRDY.js → ConnectedNativeDocxComparison-MSX6OCMN.js} +16 -16
  2. package/dist/{ConnectedNativeDocxComparison-7WXIDRDY.js.map → ConnectedNativeDocxComparison-MSX6OCMN.js.map} +1 -1
  3. package/dist/{ConnectedNativeDocxComparison-XV2UHRBQ.cjs → ConnectedNativeDocxComparison-S4XHG3XN.cjs} +17 -17
  4. package/dist/{ConnectedNativeDocxComparison-XV2UHRBQ.cjs.map → ConnectedNativeDocxComparison-S4XHG3XN.cjs.map} +1 -1
  5. package/dist/{ConnectedNativeDocxEditor-Z7KSH5RK.cjs → ConnectedNativeDocxEditor-4G7LNREO.cjs} +16 -16
  6. package/dist/{ConnectedNativeDocxEditor-Z7KSH5RK.cjs.map → ConnectedNativeDocxEditor-4G7LNREO.cjs.map} +1 -1
  7. package/dist/{ConnectedNativeDocxEditor-X3FEGMRT.js → ConnectedNativeDocxEditor-CTWKXXQQ.js} +14 -14
  8. package/dist/{ConnectedNativeDocxEditor-X3FEGMRT.js.map → ConnectedNativeDocxEditor-CTWKXXQQ.js.map} +1 -1
  9. package/dist/{ConnectedStreamedWordArtifact-UNZIAYWQ.cjs → ConnectedStreamedWordArtifact-DQGOIULU.cjs} +17 -17
  10. package/dist/ConnectedStreamedWordArtifact-DQGOIULU.cjs.map +1 -0
  11. package/dist/{ConnectedStreamedWordArtifact-JV56WYWK.js → ConnectedStreamedWordArtifact-HIILV2RB.js} +16 -16
  12. package/dist/{ConnectedStreamedWordArtifact-JV56WYWK.js.map → ConnectedStreamedWordArtifact-HIILV2RB.js.map} +1 -1
  13. package/dist/{NativeDocxEditor-WAUI2YRU.cjs → NativeDocxEditor-T2PJIZMU.cjs} +8 -8
  14. package/dist/{NativeDocxEditor-WAUI2YRU.cjs.map → NativeDocxEditor-T2PJIZMU.cjs.map} +1 -1
  15. package/dist/{NativeDocxEditor-XEDC4UFE.js → NativeDocxEditor-TBTBD6TC.js} +4 -4
  16. package/dist/{NativeDocxEditor-XEDC4UFE.js.map → NativeDocxEditor-TBTBD6TC.js.map} +1 -1
  17. package/dist/{WorkspaceTableView-QVOLTH5Z.js → WorkspaceTableView-CJ3QPV2X.js} +10 -10
  18. package/dist/{WorkspaceTableView-QVOLTH5Z.js.map → WorkspaceTableView-CJ3QPV2X.js.map} +1 -1
  19. package/dist/{WorkspaceTableView-OMBC2G5K.cjs → WorkspaceTableView-VEW6SMZ6.cjs} +12 -12
  20. package/dist/{WorkspaceTableView-OMBC2G5K.cjs.map → WorkspaceTableView-VEW6SMZ6.cjs.map} +1 -1
  21. package/dist/agents/index.cjs +270 -270
  22. package/dist/agents/index.js +13 -13
  23. package/dist/calls/index.cjs +1 -1
  24. package/dist/calls/index.js +1 -1
  25. package/dist/chat/index.cjs +140 -140
  26. package/dist/chat/index.js +6 -6
  27. package/dist/{chunk-R2N5VIVI.cjs → chunk-3VW7ZXQ6.cjs} +4 -4
  28. package/dist/{chunk-R2N5VIVI.cjs.map → chunk-3VW7ZXQ6.cjs.map} +1 -1
  29. package/dist/{chunk-HCAXURWO.cjs → chunk-4GITK3Q5.cjs} +3 -3
  30. package/dist/{chunk-HCAXURWO.cjs.map → chunk-4GITK3Q5.cjs.map} +1 -1
  31. package/dist/{chunk-A7HNGO5F.js → chunk-4MFSGPEH.js} +3 -3
  32. package/dist/{chunk-A7HNGO5F.js.map → chunk-4MFSGPEH.js.map} +1 -1
  33. package/dist/{chunk-C45WOKZW.cjs → chunk-5A2QQAF5.cjs} +3 -3
  34. package/dist/{chunk-C45WOKZW.cjs.map → chunk-5A2QQAF5.cjs.map} +1 -1
  35. package/dist/{chunk-C3GS4WQE.cjs → chunk-5C7DRQQE.cjs} +4 -4
  36. package/dist/{chunk-C3GS4WQE.cjs.map → chunk-5C7DRQQE.cjs.map} +1 -1
  37. package/dist/{chunk-HQYN5EFX.js → chunk-5WLORPGX.js} +3 -3
  38. package/dist/{chunk-HQYN5EFX.js.map → chunk-5WLORPGX.js.map} +1 -1
  39. package/dist/{chunk-YG3BXG5M.js → chunk-6E5XJC6L.js} +4 -4
  40. package/dist/{chunk-YG3BXG5M.js.map → chunk-6E5XJC6L.js.map} +1 -1
  41. package/dist/{chunk-HDJSU5IS.js → chunk-6XIXNH26.js} +3 -3
  42. package/dist/{chunk-HDJSU5IS.js.map → chunk-6XIXNH26.js.map} +1 -1
  43. package/dist/{chunk-OGQSYL3P.cjs → chunk-AODZXDEE.cjs} +12 -12
  44. package/dist/{chunk-OGQSYL3P.cjs.map → chunk-AODZXDEE.cjs.map} +1 -1
  45. package/dist/{chunk-V24UHHL4.cjs → chunk-APNFKXQ5.cjs} +61 -61
  46. package/dist/{chunk-V24UHHL4.cjs.map → chunk-APNFKXQ5.cjs.map} +1 -1
  47. package/dist/{chunk-EJHJQKUF.js → chunk-AVXRXPII.js} +3 -3
  48. package/dist/{chunk-EJHJQKUF.js.map → chunk-AVXRXPII.js.map} +1 -1
  49. package/dist/{chunk-YMWMVV4H.cjs → chunk-AYJZRBHG.cjs} +4 -4
  50. package/dist/{chunk-YMWMVV4H.cjs.map → chunk-AYJZRBHG.cjs.map} +1 -1
  51. package/dist/{chunk-HZJQQVKL.js → chunk-BGXWPVHR.js} +3 -3
  52. package/dist/{chunk-HZJQQVKL.js.map → chunk-BGXWPVHR.js.map} +1 -1
  53. package/dist/{chunk-2NTQH63V.js → chunk-DIPB7UR2.js} +12 -12
  54. package/dist/{chunk-2NTQH63V.js.map → chunk-DIPB7UR2.js.map} +1 -1
  55. package/dist/chunk-ECQR3VPP.cjs +18 -0
  56. package/dist/{chunk-OSWZ4K34.cjs.map → chunk-ECQR3VPP.cjs.map} +1 -1
  57. package/dist/{chunk-MPXUHCEV.cjs → chunk-ETJFC6MO.cjs} +4 -4
  58. package/dist/{chunk-MPXUHCEV.cjs.map → chunk-ETJFC6MO.cjs.map} +1 -1
  59. package/dist/{chunk-YNLWAD57.cjs → chunk-GFVIFXWT.cjs} +5 -5
  60. package/dist/{chunk-YNLWAD57.cjs.map → chunk-GFVIFXWT.cjs.map} +1 -1
  61. package/dist/{chunk-KCIYZ76I.js → chunk-GWSGIZQ5.js} +3 -3
  62. package/dist/{chunk-KCIYZ76I.js.map → chunk-GWSGIZQ5.js.map} +1 -1
  63. package/dist/{chunk-QARJQJAX.js → chunk-J7YHBMBB.js} +3 -3
  64. package/dist/{chunk-QARJQJAX.js.map → chunk-J7YHBMBB.js.map} +1 -1
  65. package/dist/{chunk-SLLNLFFP.js → chunk-JTJCCL2E.js} +4 -4
  66. package/dist/{chunk-SLLNLFFP.js.map → chunk-JTJCCL2E.js.map} +1 -1
  67. package/dist/{chunk-6RKMFTUJ.js → chunk-KBOA5UFJ.js} +8 -8
  68. package/dist/{chunk-6RKMFTUJ.js.map → chunk-KBOA5UFJ.js.map} +1 -1
  69. package/dist/{chunk-FPFMKSSB.js → chunk-KM7P35MJ.js} +3 -3
  70. package/dist/{chunk-FPFMKSSB.js.map → chunk-KM7P35MJ.js.map} +1 -1
  71. package/dist/{chunk-UKKTT3JE.js → chunk-KNCJSPXV.js} +6 -6
  72. package/dist/{chunk-UKKTT3JE.js.map → chunk-KNCJSPXV.js.map} +1 -1
  73. package/dist/{chunk-XBTOPW6B.js → chunk-KS5VQKI2.js} +4 -4
  74. package/dist/{chunk-XBTOPW6B.js.map → chunk-KS5VQKI2.js.map} +1 -1
  75. package/dist/{chunk-WE5DABTC.cjs → chunk-LMQOTLG4.cjs} +3 -3
  76. package/dist/{chunk-WE5DABTC.cjs.map → chunk-LMQOTLG4.cjs.map} +1 -1
  77. package/dist/{chunk-XA6QWXOQ.js → chunk-MXD2R4HR.js} +4 -4
  78. package/dist/{chunk-XA6QWXOQ.js.map → chunk-MXD2R4HR.js.map} +1 -1
  79. package/dist/{chunk-WLFMHGHK.cjs → chunk-NS7NVX4E.cjs} +6 -6
  80. package/dist/{chunk-WLFMHGHK.cjs.map → chunk-NS7NVX4E.cjs.map} +1 -1
  81. package/dist/{chunk-JB4EXO3V.cjs → chunk-NUAC5GTQ.cjs} +6 -6
  82. package/dist/{chunk-JB4EXO3V.cjs.map → chunk-NUAC5GTQ.cjs.map} +1 -1
  83. package/dist/{chunk-HHNYVJV3.cjs → chunk-OHCYJFV2.cjs} +7 -7
  84. package/dist/{chunk-HHNYVJV3.cjs.map → chunk-OHCYJFV2.cjs.map} +1 -1
  85. package/dist/{chunk-M7C4FHLU.cjs → chunk-PTSTVYQD.cjs} +12 -12
  86. package/dist/{chunk-M7C4FHLU.cjs.map → chunk-PTSTVYQD.cjs.map} +1 -1
  87. package/dist/{chunk-6SOWJFWJ.js → chunk-RMJ6DH7F.js} +4 -4
  88. package/dist/{chunk-6SOWJFWJ.js.map → chunk-RMJ6DH7F.js.map} +1 -1
  89. package/dist/{chunk-ZSDL36BI.js → chunk-RY2SODRN.js} +4 -4
  90. package/dist/{chunk-ZSDL36BI.js.map → chunk-RY2SODRN.js.map} +1 -1
  91. package/dist/chunk-SG3OH7ZM.cjs +18 -0
  92. package/dist/{chunk-PMHAJRKF.cjs.map → chunk-SG3OH7ZM.cjs.map} +1 -1
  93. package/dist/{chunk-X6Z6IWRY.cjs → chunk-SYTZ3UAU.cjs} +6 -6
  94. package/dist/{chunk-X6Z6IWRY.cjs.map → chunk-SYTZ3UAU.cjs.map} +1 -1
  95. package/dist/{chunk-AXCTDWFH.cjs → chunk-TNESYDBR.cjs} +3 -3
  96. package/dist/{chunk-AXCTDWFH.cjs.map → chunk-TNESYDBR.cjs.map} +1 -1
  97. package/dist/{chunk-GMJZ4FO7.js → chunk-TWVXDRLH.js} +4 -4
  98. package/dist/{chunk-GMJZ4FO7.js.map → chunk-TWVXDRLH.js.map} +1 -1
  99. package/dist/{chunk-I4HFM5HB.js → chunk-UORU5S7Y.js} +3 -3
  100. package/dist/{chunk-I4HFM5HB.js.map → chunk-UORU5S7Y.js.map} +1 -1
  101. package/dist/{chunk-VTTDCHBZ.js → chunk-XER3JLC7.js} +3 -3
  102. package/dist/{chunk-VTTDCHBZ.js.map → chunk-XER3JLC7.js.map} +1 -1
  103. package/dist/{chunk-VIV56KDN.cjs → chunk-XGFNZTPO.cjs} +4 -4
  104. package/dist/{chunk-VIV56KDN.cjs.map → chunk-XGFNZTPO.cjs.map} +1 -1
  105. package/dist/{chunk-IHPQO2TG.cjs → chunk-YNSSIULM.cjs} +5 -5
  106. package/dist/{chunk-IHPQO2TG.cjs.map → chunk-YNSSIULM.cjs.map} +1 -1
  107. package/dist/{chunk-5BKVKWKQ.js → chunk-ZPE7334Z.js} +6 -6
  108. package/dist/{chunk-5BKVKWKQ.js.map → chunk-ZPE7334Z.js.map} +1 -1
  109. package/dist/{chunk-2MX3RAF4.cjs → chunk-ZV4DNZ5N.cjs} +11 -11
  110. package/dist/{chunk-2MX3RAF4.cjs.map → chunk-ZV4DNZ5N.cjs.map} +1 -1
  111. package/dist/citations/index.cjs +1 -1
  112. package/dist/citations/index.js +1 -1
  113. package/dist/connect/docx.cjs +20 -20
  114. package/dist/connect/docx.js +16 -16
  115. package/dist/connect/index.cjs +681 -681
  116. package/dist/connect/index.cjs.map +1 -1
  117. package/dist/connect/index.js +36 -36
  118. package/dist/connect/index.js.map +1 -1
  119. package/dist/connect/viewer.cjs +70 -70
  120. package/dist/connect/viewer.js +19 -19
  121. package/dist/connection/ConnectedWorkflowsTable.d.ts +1 -0
  122. package/dist/connection/workspace-list/useConnectedWorkspaceList.d.ts +2 -0
  123. package/dist/connection/workspace-settings/useConnectedWorkspaceSettings.d.ts +4 -0
  124. package/dist/document-tools/index.cjs +20 -20
  125. package/dist/document-tools/index.js +3 -3
  126. package/dist/docx/index.cjs +51 -51
  127. package/dist/docx/index.js +4 -4
  128. package/dist/facts/index.cjs +58 -58
  129. package/dist/facts/index.js +8 -8
  130. package/dist/files/index.cjs +241 -241
  131. package/dist/files/index.js +9 -9
  132. package/dist/home/index.cjs +30 -30
  133. package/dist/home/index.js +5 -5
  134. package/dist/index.cjs +920 -920
  135. package/dist/index.js +24 -24
  136. package/dist/retrieval/index.cjs +1 -1
  137. package/dist/retrieval/index.js +1 -1
  138. package/dist/settings/index.cjs +174 -174
  139. package/dist/settings/index.js +5 -5
  140. package/dist/shell/index.cjs +12 -12
  141. package/dist/shell/index.js +4 -4
  142. package/dist/studio/index.cjs +7 -7
  143. package/dist/studio/index.js +6 -6
  144. package/dist/workflow-canvas/index.cjs +26 -26
  145. package/dist/workflow-canvas/index.js +13 -13
  146. package/dist/workspaces/index.cjs +2 -2
  147. package/dist/workspaces/index.js +2 -2
  148. package/node_modules/@arbidocs/coedit/package.json +1 -1
  149. package/package.json +5 -5
  150. package/dist/ConnectedStreamedWordArtifact-UNZIAYWQ.cjs.map +0 -1
  151. package/dist/chunk-OSWZ4K34.cjs +0 -18
  152. package/dist/chunk-PMHAJRKF.cjs +0 -18
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { NativeDocxEditor } from './chunk-VTTDCHBZ.js';
2
+ import { NativeDocxEditor } from './chunk-XER3JLC7.js';
3
3
  import { useRef, useState, useEffect } from 'react';
4
4
  import { parseVersionRef } from '@arbidocs/react/artifacts';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -61,5 +61,5 @@ function NativeDocxComparison({
61
61
  }
62
62
 
63
63
  export { NativeDocxComparison };
64
- //# sourceMappingURL=chunk-EJHJQKUF.js.map
65
- //# sourceMappingURL=chunk-EJHJQKUF.js.map
64
+ //# sourceMappingURL=chunk-AVXRXPII.js.map
65
+ //# sourceMappingURL=chunk-AVXRXPII.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/docx/NativeDocxComparison.tsx"],"names":["error"],"mappings":"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","file":"chunk-EJHJQKUF.js","sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface NativeDocxComparisonProps {\n adapter: NativeDocxAdapter\n baseId: string\n revisedId: string\n title: string\n onCompared?: (documentId: string) => void | Promise<void>\n}\n\n/** A `doc-…@v{n}` side names an older version: the endpoint takes its document and version apart. */\nfunction redlineQuery(baseId: string, revisedId: string): URLSearchParams {\n const base = parseVersionRef(baseId)\n const revised = parseVersionRef(revisedId)\n const query = new URLSearchParams({ base_ext_id: base.docId, revised_ext_id: revised.docId })\n if (base.version) query.set('base_version', String(base.version))\n if (revised.version) query.set('revised_version', String(revised.version))\n return query\n}\n\n/** Word comparison through the host's authenticated transport and LibreOffice service. */\nexport function NativeDocxComparison({\n adapter,\n baseId,\n revisedId,\n title,\n onCompared,\n}: NativeDocxComparisonProps) {\n const host = useRef({ adapter, onCompared })\n host.current = { adapter, onCompared }\n const [documentId, setDocumentId] = useState('')\n const [error, setError] = useState('')\n const [attempt, setAttempt] = useState(0)\n useEffect(() => {\n let cancelled = false\n setDocumentId('')\n setError('')\n void host.current.adapter\n .request(`/redline?${redlineQuery(baseId, revisedId)}`, { method: 'POST' })\n .then((response) => response.json())\n .then((result: { document_ext_id: string }) => {\n if (!result.document_ext_id) throw new Error('Comparison did not return a Word document.')\n if (!cancelled) {\n setDocumentId(result.document_ext_id)\n void Promise.resolve(host.current.onCompared?.(result.document_ext_id)).catch(() => {})\n }\n })\n .catch((error) => {\n if (!cancelled) setError(error instanceof Error ? error.message : String(error))\n })\n return () => {\n cancelled = true\n }\n }, [baseId, revisedId, attempt])\n if (error)\n return (\n <div className=\"native-docx-error\" role=\"alert\">\n <p>{error}</p>\n <button onClick={() => setAttempt((value) => value + 1)}>Retry comparison</button>\n </div>\n )\n if (!documentId)\n return (\n <div className=\"native-docx-error\" role=\"status\">\n Comparing Word documents…\n </div>\n )\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={`${title.replace(/\\.[^.]+$/, '')} (redline).docx`}\n />\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/docx/NativeDocxComparison.tsx"],"names":["error"],"mappings":"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","file":"chunk-AVXRXPII.js","sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface NativeDocxComparisonProps {\n adapter: NativeDocxAdapter\n baseId: string\n revisedId: string\n title: string\n onCompared?: (documentId: string) => void | Promise<void>\n}\n\n/** A `doc-…@v{n}` side names an older version: the endpoint takes its document and version apart. */\nfunction redlineQuery(baseId: string, revisedId: string): URLSearchParams {\n const base = parseVersionRef(baseId)\n const revised = parseVersionRef(revisedId)\n const query = new URLSearchParams({ base_ext_id: base.docId, revised_ext_id: revised.docId })\n if (base.version) query.set('base_version', String(base.version))\n if (revised.version) query.set('revised_version', String(revised.version))\n return query\n}\n\n/** Word comparison through the host's authenticated transport and LibreOffice service. */\nexport function NativeDocxComparison({\n adapter,\n baseId,\n revisedId,\n title,\n onCompared,\n}: NativeDocxComparisonProps) {\n const host = useRef({ adapter, onCompared })\n host.current = { adapter, onCompared }\n const [documentId, setDocumentId] = useState('')\n const [error, setError] = useState('')\n const [attempt, setAttempt] = useState(0)\n useEffect(() => {\n let cancelled = false\n setDocumentId('')\n setError('')\n void host.current.adapter\n .request(`/redline?${redlineQuery(baseId, revisedId)}`, { method: 'POST' })\n .then((response) => response.json())\n .then((result: { document_ext_id: string }) => {\n if (!result.document_ext_id) throw new Error('Comparison did not return a Word document.')\n if (!cancelled) {\n setDocumentId(result.document_ext_id)\n void Promise.resolve(host.current.onCompared?.(result.document_ext_id)).catch(() => {})\n }\n })\n .catch((error) => {\n if (!cancelled) setError(error instanceof Error ? error.message : String(error))\n })\n return () => {\n cancelled = true\n }\n }, [baseId, revisedId, attempt])\n if (error)\n return (\n <div className=\"native-docx-error\" role=\"alert\">\n <p>{error}</p>\n <button onClick={() => setAttempt((value) => value + 1)}>Retry comparison</button>\n </div>\n )\n if (!documentId)\n return (\n <div className=\"native-docx-error\" role=\"status\">\n Comparing Word documents…\n </div>\n )\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={`${title.replace(/\\.[^.]+$/, '')} (redline).docx`}\n />\n )\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkAYKE6USO_cjs = require('./chunk-AYKE6USO.cjs');
5
- var chunkC45WOKZW_cjs = require('./chunk-C45WOKZW.cjs');
5
+ var chunk5A2QQAF5_cjs = require('./chunk-5A2QQAF5.cjs');
6
6
  var chunkJKB7WT7L_cjs = require('./chunk-JKB7WT7L.cjs');
7
7
  var react$1 = require('react');
8
8
  var react = require('@arbidocs/react');
@@ -64,7 +64,7 @@ function useConnectedChat(options) {
64
64
  }
65
65
  function ConnectedAssistantDock(props) {
66
66
  const chat = useConnectedChat();
67
- return /* @__PURE__ */ jsxRuntime.jsx(chunkC45WOKZW_cjs.AssistantDock, { ...props, chat });
67
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk5A2QQAF5_cjs.AssistantDock, { ...props, chat });
68
68
  }
69
69
 
70
70
  Object.defineProperty(exports, "redlineStats", {
@@ -84,5 +84,5 @@ exports.useConnectedAiTask = useConnectedAiTask;
84
84
  exports.useConnectedChat = useConnectedChat;
85
85
  exports.useSemanticSearch = useSemanticSearch;
86
86
  exports.useWorkspaceDocs = useWorkspaceDocs;
87
- //# sourceMappingURL=chunk-YMWMVV4H.cjs.map
88
- //# sourceMappingURL=chunk-YMWMVV4H.cjs.map
87
+ //# sourceMappingURL=chunk-AYJZRBHG.cjs.map
88
+ //# sourceMappingURL=chunk-AYJZRBHG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection/ai.tsx"],"names":["useConnection","useKitAiTask","useCallback","useKitWorkspaceDocs","useKitSemanticSearch","useWorkspaceUsers","useArbiChat","takeOpenDocumentForTurn","jsx","AssistantDock"],"mappings":"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","file":"chunk-YMWMVV4H.cjs","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'\nimport { takeOpenDocumentForTurn } from '../chat/open-document'\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 (all of them) and return the top matching passages. */\nexport function useSemanticSearch() {\n const { assistantConfig } = useConnection()\n return useKitSemanticSearch([], { model: assistantConfig })\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 // Drafting mode: each question names the document open beside the chat.\n activeArtifact: () => takeOpenDocumentForTurn({ workspaceId: wsId }),\n ...options,\n workspaceId: wsId,\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":["useConnection","useKitAiTask","useCallback","useKitWorkspaceDocs","useKitSemanticSearch","useWorkspaceUsers","useArbiChat","takeOpenDocumentForTurn","jsx","AssistantDock"],"mappings":"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","file":"chunk-AYJZRBHG.cjs","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'\nimport { takeOpenDocumentForTurn } from '../chat/open-document'\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 (all of them) and return the top matching passages. */\nexport function useSemanticSearch() {\n const { assistantConfig } = useConnection()\n return useKitSemanticSearch([], { model: assistantConfig })\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 // Drafting mode: each question names the document open beside the chat.\n activeArtifact: () => takeOpenDocumentForTurn({ workspaceId: wsId }),\n ...options,\n workspaceId: wsId,\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-VTTDCHBZ.js';
2
+ import { NativeDocxEditor } from './chunk-XER3JLC7.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-HZJQQVKL.js.map
41
- //# sourceMappingURL=chunk-HZJQQVKL.js.map
40
+ //# sourceMappingURL=chunk-BGXWPVHR.js.map
41
+ //# sourceMappingURL=chunk-BGXWPVHR.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-HZJQQVKL.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-BGXWPVHR.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,26 +1,26 @@
1
1
  "use client";
2
- import { useWorkflowView, SkillTypeBadge, SkillGlobalBadge, SkillActionButton, activateOnKey, asTaskStatus, STATUS_LABELS, STATUS_TONE, STATUS_ORDER, goalProgress, activeStepId, DEFAULT_STEP_BAR_LABELS, StepBarFrame, STEP_LABEL_CURRENT, STEP_LABEL, STEP_LABEL_MAX } from './chunk-6RKMFTUJ.js';
2
+ import { useWorkflowView, SkillTypeBadge, SkillGlobalBadge, SkillActionButton, activateOnKey, asTaskStatus, STATUS_LABELS, STATUS_TONE, STATUS_ORDER, goalProgress, activeStepId, DEFAULT_STEP_BAR_LABELS, StepBarFrame, STEP_LABEL_CURRENT, STEP_LABEL, STEP_LABEL_MAX } from './chunk-KBOA5UFJ.js';
3
3
  import { MultiSelect } from './chunk-CQCC7LE7.js';
4
- import { PersonPill, SchemaForm } from './chunk-5BKVKWKQ.js';
5
- import { ScopePicker, AddFilesFirst } from './chunk-I4HFM5HB.js';
4
+ import { PersonPill, SchemaForm } from './chunk-ZPE7334Z.js';
5
+ import { ScopePicker, AddFilesFirst } from './chunk-UORU5S7Y.js';
6
6
  import { TriStateFilterMenu } from './chunk-NUSBINUM.js';
7
- import { useControllableState } from './chunk-RLWIUUQ5.js';
8
- import { EmptyState } from './chunk-P6GHJSLR.js';
9
- import { TabHeader } from './chunk-ABEKUV6L.js';
10
7
  import { CellHoverIcon } from './chunk-M4S75AEJ.js';
11
8
  import { ToneBadge } from './chunk-5LXQPP2K.js';
9
+ import { useControllableState } from './chunk-RLWIUUQ5.js';
10
+ import { EmptyState } from './chunk-P6GHJSLR.js';
11
+ import { ActionLink } from './chunk-H7PHANI4.js';
12
12
  import { SelectionBar, SelectionBarAction } from './chunk-NUNKSZKU.js';
13
13
  import { FilterInput } from './chunk-YU2KUMGE.js';
14
- import { ActionLink } from './chunk-H7PHANI4.js';
14
+ import { GridView } from './chunk-N5YEF3LC.js';
15
+ import { TabHeader } from './chunk-ABEKUV6L.js';
15
16
  import { DEFAULT_STEP_RECORD_LABELS, DEFAULT_STEP_DOCUMENT_LABELS, DEFAULT_STEP_KIND_LABELS, workflowSteps, initialRunInputs, stepPhase, composeStepPrompt, useMentionAutocomplete, StepChip, StepDocumentButton, stepLevels, isRunFinished, stepKindOf, stepDocuments, eventWaitingDocuments, waitingForDocumentsText, STEP_KIND_ICONS, StepDocumentCards, StepRecord, splitDocRef, waitingDocuments } from './chunk-PDKM27DF.js';
16
17
  import { isWorkflowScope, composeWorkflowPrompt, defaultInputs, validateInputs } from './chunk-TZGBRLPK.js';
17
18
  import { toMessageMentions, extractMentions, MentionMenu } from './chunk-AA3PT6KR.js';
18
- import { useBlocksEnvironment } from './chunk-5NWY3FXQ.js';
19
- import { formatCount } from './chunk-OXF2IFXG.js';
20
- import { GridView } from './chunk-N5YEF3LC.js';
21
19
  import { useIsPhone } from './chunk-SLSBJRWW.js';
22
20
  import { testIdOr, prefixedTestId } from './chunk-7F6CBP3Z.js';
21
+ import { useBlocksEnvironment } from './chunk-5NWY3FXQ.js';
23
22
  import { ModalHeader } from './chunk-TX2ZICS7.js';
23
+ import { formatCount } from './chunk-OXF2IFXG.js';
24
24
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
25
25
  import { memo, forwardRef, useState, useMemo, useRef, useEffect, useLayoutEffect } from 'react';
26
26
  import { ChevronDown, ChevronRight, Plus, Trash2, MessageSquare, Eye, ClipboardList, Pencil, Copy, Bot, Sparkles, Download, Lock, Globe, ListChecks, Loader2, AlertTriangle, FileX, SkipForward, X, Check, FileText, CornerDownRight, AlertCircle, KeyRound, Workflow, ChevronsUpDown, ChevronsDownUp, ListTodo, CheckCheck, MoreHorizontal, CalendarClock, ArrowUpRight, SendHorizontal, Zap, MessagesSquare, ChevronUp, Pause, Activity, Hourglass, MoreVertical, TriangleAlert, CheckSquare, Square, CheckCircle2, SquareArrowOutUpRight, ArrowLeft, CornerLeftUp, CornerUpLeft, CircleDashed, RotateCcw, History, ListPlus, Clock, CircleCheck, Hand, Flag, Play } from 'lucide-react';
@@ -8177,5 +8177,5 @@ function AgentCreateView({
8177
8177
  }
8178
8178
 
8179
8179
  export { AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentEditView, AgentGallery, AgentMainView, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_THREAD_LAUNCHER_LABELS, DEFAULT_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PillSelect, RecurrenceBuilder, SkillCard, SkillRow, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TASK_COLUMN_ORDER, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadActivity, ThreadLauncher, ThreadNotifyDialog, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WorkflowRunStatus, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsToolbar, authModeFor, buildRRule, buildTaskRows, compactThreadActivity, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, groupThreadActivity, hasTaskFields, humanizeSection, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isOutOfBounds, isPlainTodo, isoToLocalInput, linkedRunsFromActivity, localInputToIso, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, resolveScopeInputs, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, useWorkflowPreview, workflowTaskFields, workflowToComposerValues, workflowWhen };
8180
- //# sourceMappingURL=chunk-2NTQH63V.js.map
8181
- //# sourceMappingURL=chunk-2NTQH63V.js.map
8180
+ //# sourceMappingURL=chunk-DIPB7UR2.js.map
8181
+ //# sourceMappingURL=chunk-DIPB7UR2.js.map