@arbidocs/blocks 0.5.103 → 0.5.104

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 (90) hide show
  1. package/dist/ConnectedCallDock-NEZJNTKH.js +1 -1
  2. package/dist/ConnectedCallDock-P7LK2HYF.cjs +1 -1
  3. package/dist/ConnectedCallRoom-FXTR4YFI.cjs +1 -1
  4. package/dist/ConnectedCallRoom-K3X6ICCG.js +1 -1
  5. package/dist/ConnectedNativeDocxComparison-7VJKOKYU.cjs +2 -2
  6. package/dist/ConnectedNativeDocxComparison-FENZYWDH.js +2 -2
  7. package/dist/ConnectedNativeDocxEditor-CNQAMO2N.js +2 -2
  8. package/dist/ConnectedNativeDocxEditor-HB5BHGZ2.cjs +2 -2
  9. package/dist/ConnectedStreamedWordArtifact-BF6JET2D.cjs +2 -2
  10. package/dist/ConnectedStreamedWordArtifact-ILMKFCDC.js +2 -2
  11. package/dist/{DocumentReviewCard-FSOBIVED.cjs → DocumentReviewCard-MSHD73S3.cjs} +14 -14
  12. package/dist/{DocumentReviewCard-FSOBIVED.cjs.map → DocumentReviewCard-MSHD73S3.cjs.map} +1 -1
  13. package/dist/{DocumentReviewCard-XB7BE7MZ.js → DocumentReviewCard-WZNBPG72.js} +9 -9
  14. package/dist/{DocumentReviewCard-XB7BE7MZ.js.map → DocumentReviewCard-WZNBPG72.js.map} +1 -1
  15. package/dist/{FilesViewerDialog-GEIQCBBK.cjs → FilesViewerDialog-DV2U4USR.cjs} +9 -9
  16. package/dist/{FilesViewerDialog-GEIQCBBK.cjs.map → FilesViewerDialog-DV2U4USR.cjs.map} +1 -1
  17. package/dist/{FilesViewerDialog-5PL3HGYO.js → FilesViewerDialog-XETOHORQ.js} +8 -8
  18. package/dist/{FilesViewerDialog-5PL3HGYO.js.map → FilesViewerDialog-XETOHORQ.js.map} +1 -1
  19. package/dist/{WorkspaceTableView-Y2GX5GB2.cjs → WorkspaceTableView-3D6SYOWT.cjs} +3 -3
  20. package/dist/{WorkspaceTableView-Y2GX5GB2.cjs.map → WorkspaceTableView-3D6SYOWT.cjs.map} +1 -1
  21. package/dist/{WorkspaceTableView-SX5FIC4C.js → WorkspaceTableView-WD754UBK.js} +3 -3
  22. package/dist/{WorkspaceTableView-SX5FIC4C.js.map → WorkspaceTableView-WD754UBK.js.map} +1 -1
  23. package/dist/agents/index.cjs +177 -177
  24. package/dist/agents/index.js +4 -4
  25. package/dist/chat/index.cjs +1 -1
  26. package/dist/chat/index.js +1 -1
  27. package/dist/{chunk-JAIMJTXQ.js → chunk-4UOXUWX3.js} +4 -4
  28. package/dist/{chunk-JAIMJTXQ.js.map → chunk-4UOXUWX3.js.map} +1 -1
  29. package/dist/{chunk-EIV4H2PZ.cjs → chunk-4WMGFGYP.cjs} +4 -4
  30. package/dist/{chunk-EIV4H2PZ.cjs.map → chunk-4WMGFGYP.cjs.map} +1 -1
  31. package/dist/{chunk-DGOVO2QO.cjs → chunk-5R67KX2O.cjs} +8 -8
  32. package/dist/{chunk-DGOVO2QO.cjs.map → chunk-5R67KX2O.cjs.map} +1 -1
  33. package/dist/{chunk-7Z5CSFYV.cjs → chunk-5UMZXDGL.cjs} +5 -5
  34. package/dist/{chunk-7Z5CSFYV.cjs.map → chunk-5UMZXDGL.cjs.map} +1 -1
  35. package/dist/{chunk-SOY6UUFS.js → chunk-62OMGQHS.js} +3 -3
  36. package/dist/{chunk-SOY6UUFS.js.map → chunk-62OMGQHS.js.map} +1 -1
  37. package/dist/{chunk-COCZMF7B.cjs → chunk-6A4GNM4T.cjs} +4 -4
  38. package/dist/{chunk-COCZMF7B.cjs.map → chunk-6A4GNM4T.cjs.map} +1 -1
  39. package/dist/{chunk-G4D4UGSW.cjs → chunk-6NSKIS35.cjs} +4 -4
  40. package/dist/{chunk-G4D4UGSW.cjs.map → chunk-6NSKIS35.cjs.map} +1 -1
  41. package/dist/{chunk-M6DTLHCN.js → chunk-7ONU7EWY.js} +3 -3
  42. package/dist/{chunk-M6DTLHCN.js.map → chunk-7ONU7EWY.js.map} +1 -1
  43. package/dist/{chunk-4LK74S7T.cjs → chunk-BSPPKX6X.cjs} +24 -24
  44. package/dist/{chunk-4LK74S7T.cjs.map → chunk-BSPPKX6X.cjs.map} +1 -1
  45. package/dist/{chunk-BQHTBUOA.js → chunk-CEVVGJQX.js} +3 -3
  46. package/dist/{chunk-BQHTBUOA.js.map → chunk-CEVVGJQX.js.map} +1 -1
  47. package/dist/{chunk-K2G2P66L.js → chunk-E26MNOLG.js} +3 -3
  48. package/dist/{chunk-K2G2P66L.js.map → chunk-E26MNOLG.js.map} +1 -1
  49. package/dist/{chunk-NTXO6IYE.js → chunk-E6ISR55S.js} +3 -3
  50. package/dist/{chunk-NTXO6IYE.js.map → chunk-E6ISR55S.js.map} +1 -1
  51. package/dist/{chunk-UYFWLP74.js → chunk-ET3W24JV.js} +6 -6
  52. package/dist/{chunk-UYFWLP74.js.map → chunk-ET3W24JV.js.map} +1 -1
  53. package/dist/{chunk-I6WRLTWU.js → chunk-GOJ5GHFS.js} +3 -3
  54. package/dist/{chunk-I6WRLTWU.js.map → chunk-GOJ5GHFS.js.map} +1 -1
  55. package/dist/{chunk-ASOPBELQ.js → chunk-HTGEAQOA.js} +4 -4
  56. package/dist/{chunk-ASOPBELQ.js.map → chunk-HTGEAQOA.js.map} +1 -1
  57. package/dist/{chunk-ZR4TH6DZ.js → chunk-HTIEJVPI.js} +5 -5
  58. package/dist/{chunk-ZR4TH6DZ.js.map → chunk-HTIEJVPI.js.map} +1 -1
  59. package/dist/{chunk-KXNC24EF.cjs → chunk-IWLNDDPN.cjs} +35 -35
  60. package/dist/{chunk-KXNC24EF.cjs.map → chunk-IWLNDDPN.cjs.map} +1 -1
  61. package/dist/{chunk-SYMZ6L3C.js → chunk-JWUCDK2F.js} +3 -3
  62. package/dist/{chunk-SYMZ6L3C.js.map → chunk-JWUCDK2F.js.map} +1 -1
  63. package/dist/{chunk-OSWKA2NQ.cjs → chunk-OKUXM2N4.cjs} +3 -3
  64. package/dist/{chunk-OSWKA2NQ.cjs.map → chunk-OKUXM2N4.cjs.map} +1 -1
  65. package/dist/{chunk-DZGLEEUT.cjs → chunk-RBI7WVEP.cjs} +4 -4
  66. package/dist/{chunk-DZGLEEUT.cjs.map → chunk-RBI7WVEP.cjs.map} +1 -1
  67. package/dist/{chunk-KVQ6O54R.cjs → chunk-S7NJVJJX.cjs} +46 -46
  68. package/dist/{chunk-KVQ6O54R.cjs.map → chunk-S7NJVJJX.cjs.map} +1 -1
  69. package/dist/{chunk-QVY5DH2R.js → chunk-TQFDPCWU.js} +5 -5
  70. package/dist/{chunk-QVY5DH2R.js.map → chunk-TQFDPCWU.js.map} +1 -1
  71. package/dist/{chunk-S3SWSAUB.cjs → chunk-V2CKYM4B.cjs} +4 -4
  72. package/dist/{chunk-S3SWSAUB.cjs.map → chunk-V2CKYM4B.cjs.map} +1 -1
  73. package/dist/{chunk-CRKWD7B5.cjs → chunk-VULH3XAJ.cjs} +28 -28
  74. package/dist/{chunk-CRKWD7B5.cjs.map → chunk-VULH3XAJ.cjs.map} +1 -1
  75. package/dist/connect/docx.cjs +2 -2
  76. package/dist/connect/docx.js +2 -2
  77. package/dist/connect/index.cjs +521 -521
  78. package/dist/connect/index.js +24 -24
  79. package/dist/connect/viewer.cjs +7 -7
  80. package/dist/connect/viewer.js +6 -6
  81. package/dist/embed/index.cjs +13 -13
  82. package/dist/embed/index.js +7 -7
  83. package/dist/files/index.cjs +224 -224
  84. package/dist/files/index.js +3 -3
  85. package/dist/index.cjs +262 -262
  86. package/dist/index.js +6 -6
  87. package/dist/workflow-canvas/index.cjs +20 -20
  88. package/dist/workflow-canvas/index.js +10 -10
  89. package/node_modules/@arbidocs/coedit/package.json +1 -1
  90. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useWorkflowView } from './chunk-ASOPBELQ.js';
2
+ import { useWorkflowView } from './chunk-HTGEAQOA.js';
3
3
  import { workflowSteps, initialRunInputs, stepPhase, composeStepPrompt } from './chunk-XEZCSRFG.js';
4
4
  import { useState, useRef, useEffect } from 'react';
5
5
 
@@ -56,5 +56,5 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
56
56
  }
57
57
 
58
58
  export { useWorkflowPreview };
59
- //# sourceMappingURL=chunk-SOY6UUFS.js.map
60
- //# sourceMappingURL=chunk-SOY6UUFS.js.map
59
+ //# sourceMappingURL=chunk-62OMGQHS.js.map
60
+ //# sourceMappingURL=chunk-62OMGQHS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts"],"names":[],"mappings":"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","file":"chunk-SOY6UUFS.js","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts"],"names":[],"mappings":"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","file":"chunk-62OMGQHS.js","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n"]}
@@ -15,16 +15,16 @@ var chunkII2OEXHW_cjs = require('./chunk-II2OEXHW.cjs');
15
15
  var chunkAHDJXIUB_cjs = require('./chunk-AHDJXIUB.cjs');
16
16
  var chunkRL2HI6NP_cjs = require('./chunk-RL2HI6NP.cjs');
17
17
  var chunk6UZC4XVV_cjs = require('./chunk-6UZC4XVV.cjs');
18
- var chunkXNXNLXIC_cjs = require('./chunk-XNXNLXIC.cjs');
19
18
  var chunkTTPJ2G3G_cjs = require('./chunk-TTPJ2G3G.cjs');
19
+ var chunkXNXNLXIC_cjs = require('./chunk-XNXNLXIC.cjs');
20
20
  var chunkSJSGSHIT_cjs = require('./chunk-SJSGSHIT.cjs');
21
21
  var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
22
22
  var chunkIN6ILI5A_cjs = require('./chunk-IN6ILI5A.cjs');
23
23
  var chunkHSLPFBK2_cjs = require('./chunk-HSLPFBK2.cjs');
24
24
  var chunkQGVOT7E4_cjs = require('./chunk-QGVOT7E4.cjs');
25
25
  var chunkQRAQZTJE_cjs = require('./chunk-QRAQZTJE.cjs');
26
- var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
27
26
  var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
27
+ var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
28
28
  var chunkWGWP4ATS_cjs = require('./chunk-WGWP4ATS.cjs');
29
29
  var chunkJDFBEGQO_cjs = require('./chunk-JDFBEGQO.cjs');
30
30
  var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
@@ -10009,5 +10009,5 @@ exports.useWorkflowView = useWorkflowView;
10009
10009
  exports.withLabelIds = withLabelIds;
10010
10010
  exports.workflowFromSkillMarkdown = workflowFromSkillMarkdown;
10011
10011
  exports.workflowToSkillMarkdown = workflowToSkillMarkdown;
10012
- //# sourceMappingURL=chunk-COCZMF7B.cjs.map
10013
- //# sourceMappingURL=chunk-COCZMF7B.cjs.map
10012
+ //# sourceMappingURL=chunk-6A4GNM4T.cjs.map
10013
+ //# sourceMappingURL=chunk-6A4GNM4T.cjs.map