@zaalipro/dsh-workflows 0.1.0-rc.3

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 (229) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +224 -0
  3. package/README.i18n.yaml +4 -0
  4. package/README.md +109 -0
  5. package/README.zh.md +109 -0
  6. package/cordis.patch.yml +10 -0
  7. package/docs/architecture.i18n.yaml +4 -0
  8. package/docs/architecture.md +177 -0
  9. package/docs/architecture.zh.md +177 -0
  10. package/docs/testing.i18n.yaml +4 -0
  11. package/docs/testing.md +125 -0
  12. package/docs/testing.zh.md +125 -0
  13. package/docs/user-guide.i18n.yaml +4 -0
  14. package/docs/user-guide.md +351 -0
  15. package/docs/user-guide.zh.md +351 -0
  16. package/lib/client-types/WorkflowMemberInspector.d.ts +28 -0
  17. package/lib/client-types/WorkflowMemberInspector.d.ts.map +1 -0
  18. package/lib/client-types/WorkflowMemberInspector.js +181 -0
  19. package/lib/client-types/WorkflowMemberInspector.js.map +1 -0
  20. package/lib/client-types/WorkflowRunPanel.d.ts +43 -0
  21. package/lib/client-types/WorkflowRunPanel.d.ts.map +1 -0
  22. package/lib/client-types/WorkflowRunPanel.js +130 -0
  23. package/lib/client-types/WorkflowRunPanel.js.map +1 -0
  24. package/lib/client-types/WorkflowsDashboard.d.ts +49 -0
  25. package/lib/client-types/WorkflowsDashboard.d.ts.map +1 -0
  26. package/lib/client-types/WorkflowsDashboard.js +942 -0
  27. package/lib/client-types/WorkflowsDashboard.js.map +1 -0
  28. package/lib/client-types/adapter.d.ts +60 -0
  29. package/lib/client-types/adapter.d.ts.map +1 -0
  30. package/lib/client-types/adapter.js +117 -0
  31. package/lib/client-types/adapter.js.map +1 -0
  32. package/lib/client-types/chat-renderer.d.ts +10 -0
  33. package/lib/client-types/chat-renderer.d.ts.map +1 -0
  34. package/lib/client-types/chat-renderer.js +11 -0
  35. package/lib/client-types/chat-renderer.js.map +1 -0
  36. package/lib/client-types/contract.d.ts +210 -0
  37. package/lib/client-types/contract.d.ts.map +1 -0
  38. package/lib/client-types/contract.js +37 -0
  39. package/lib/client-types/contract.js.map +1 -0
  40. package/lib/client-types/controller.d.ts +83 -0
  41. package/lib/client-types/controller.d.ts.map +1 -0
  42. package/lib/client-types/controller.js +705 -0
  43. package/lib/client-types/controller.js.map +1 -0
  44. package/lib/client-types/index.d.ts +19 -0
  45. package/lib/client-types/index.d.ts.map +1 -0
  46. package/lib/client-types/index.js +730 -0
  47. package/lib/client-types/index.js.map +1 -0
  48. package/lib/client-types/locales.d.ts +257 -0
  49. package/lib/client-types/locales.d.ts.map +1 -0
  50. package/lib/client-types/locales.js +270 -0
  51. package/lib/client-types/locales.js.map +1 -0
  52. package/lib/client-types/slot-components.d.ts +38 -0
  53. package/lib/client-types/slot-components.d.ts.map +1 -0
  54. package/lib/client-types/slot-components.js +22 -0
  55. package/lib/client-types/slot-components.js.map +1 -0
  56. package/lib/client-types/store.d.ts +69 -0
  57. package/lib/client-types/store.d.ts.map +1 -0
  58. package/lib/client-types/store.js +135 -0
  59. package/lib/client-types/store.js.map +1 -0
  60. package/lib/client-types/workflow-definition.d.ts +52 -0
  61. package/lib/client-types/workflow-definition.d.ts.map +1 -0
  62. package/lib/client-types/workflow-definition.js +135 -0
  63. package/lib/client-types/workflow-definition.js.map +1 -0
  64. package/lib/client.js +11064 -0
  65. package/lib/client.js.map +1 -0
  66. package/lib/compat-engine/index.js +1926 -0
  67. package/lib/compat-engine/index.js.map +1 -0
  68. package/lib/compat-engine/worker.cjs +1500 -0
  69. package/lib/compat-engine/worker.cjs.map +1 -0
  70. package/lib/typert.host.d.ts +3 -0
  71. package/lib/typert.host.js +1709 -0
  72. package/lib/typert.remote-client.d.ts +57 -0
  73. package/lib/typert.remote-client.js +1662 -0
  74. package/lib/types/commands/aliases.d.ts +4 -0
  75. package/lib/types/commands/aliases.d.ts.map +1 -0
  76. package/lib/types/commands/aliases.js +25 -0
  77. package/lib/types/commands/aliases.js.map +1 -0
  78. package/lib/types/commands/index.d.ts +66 -0
  79. package/lib/types/commands/index.d.ts.map +1 -0
  80. package/lib/types/commands/index.js +550 -0
  81. package/lib/types/commands/index.js.map +1 -0
  82. package/lib/types/commands/parser.d.ts +17 -0
  83. package/lib/types/commands/parser.d.ts.map +1 -0
  84. package/lib/types/commands/parser.js +45 -0
  85. package/lib/types/commands/parser.js.map +1 -0
  86. package/lib/types/config.d.ts +71 -0
  87. package/lib/types/config.d.ts.map +1 -0
  88. package/lib/types/config.js +109 -0
  89. package/lib/types/config.js.map +1 -0
  90. package/lib/types/index.d.ts +41 -0
  91. package/lib/types/index.d.ts.map +1 -0
  92. package/lib/types/index.js +483 -0
  93. package/lib/types/index.js.map +1 -0
  94. package/lib/types/invariant.d.ts +21 -0
  95. package/lib/types/invariant.d.ts.map +1 -0
  96. package/lib/types/invariant.js +85 -0
  97. package/lib/types/invariant.js.map +1 -0
  98. package/lib/types/registry/definition.d.ts +24 -0
  99. package/lib/types/registry/definition.d.ts.map +1 -0
  100. package/lib/types/registry/definition.js +189 -0
  101. package/lib/types/registry/definition.js.map +1 -0
  102. package/lib/types/registry/index.d.ts +100 -0
  103. package/lib/types/registry/index.d.ts.map +1 -0
  104. package/lib/types/registry/index.js +899 -0
  105. package/lib/types/registry/index.js.map +1 -0
  106. package/lib/types/registry/names.d.ts +19 -0
  107. package/lib/types/registry/names.d.ts.map +1 -0
  108. package/lib/types/registry/names.js +69 -0
  109. package/lib/types/registry/names.js.map +1 -0
  110. package/lib/types/registry/remote.d.ts +15 -0
  111. package/lib/types/registry/remote.d.ts.map +1 -0
  112. package/lib/types/registry/remote.js +128 -0
  113. package/lib/types/registry/remote.js.map +1 -0
  114. package/lib/types/registry/roots.d.ts +44 -0
  115. package/lib/types/registry/roots.d.ts.map +1 -0
  116. package/lib/types/registry/roots.js +118 -0
  117. package/lib/types/registry/roots.js.map +1 -0
  118. package/lib/types/registry/types.d.ts +62 -0
  119. package/lib/types/registry/types.d.ts.map +1 -0
  120. package/lib/types/registry/types.js +2 -0
  121. package/lib/types/registry/types.js.map +1 -0
  122. package/lib/types/registry/watchers.d.ts +70 -0
  123. package/lib/types/registry/watchers.d.ts.map +1 -0
  124. package/lib/types/registry/watchers.js +152 -0
  125. package/lib/types/registry/watchers.js.map +1 -0
  126. package/lib/types/remote-events.d.ts +42 -0
  127. package/lib/types/remote-events.d.ts.map +1 -0
  128. package/lib/types/remote-events.js +21 -0
  129. package/lib/types/remote-events.js.map +1 -0
  130. package/lib/types/run-recorder.d.ts +44 -0
  131. package/lib/types/run-recorder.d.ts.map +1 -0
  132. package/lib/types/run-recorder.js +356 -0
  133. package/lib/types/run-recorder.js.map +1 -0
  134. package/lib/types/supervisor/canned-validate.d.ts +25 -0
  135. package/lib/types/supervisor/canned-validate.d.ts.map +1 -0
  136. package/lib/types/supervisor/canned-validate.js +122 -0
  137. package/lib/types/supervisor/canned-validate.js.map +1 -0
  138. package/lib/types/supervisor/completion-notice.d.ts +49 -0
  139. package/lib/types/supervisor/completion-notice.d.ts.map +1 -0
  140. package/lib/types/supervisor/completion-notice.js +281 -0
  141. package/lib/types/supervisor/completion-notice.js.map +1 -0
  142. package/lib/types/supervisor/cursors.d.ts +68 -0
  143. package/lib/types/supervisor/cursors.d.ts.map +1 -0
  144. package/lib/types/supervisor/cursors.js +158 -0
  145. package/lib/types/supervisor/cursors.js.map +1 -0
  146. package/lib/types/supervisor/engine-compat.d.ts +48 -0
  147. package/lib/types/supervisor/engine-compat.d.ts.map +1 -0
  148. package/lib/types/supervisor/engine-compat.js +116 -0
  149. package/lib/types/supervisor/engine-compat.js.map +1 -0
  150. package/lib/types/supervisor/index.d.ts +183 -0
  151. package/lib/types/supervisor/index.d.ts.map +1 -0
  152. package/lib/types/supervisor/index.js +2040 -0
  153. package/lib/types/supervisor/index.js.map +1 -0
  154. package/lib/types/supervisor/parallel-compat.d.ts +36 -0
  155. package/lib/types/supervisor/parallel-compat.d.ts.map +1 -0
  156. package/lib/types/supervisor/parallel-compat.js +180 -0
  157. package/lib/types/supervisor/parallel-compat.js.map +1 -0
  158. package/lib/types/supervisor/remote.d.ts +25 -0
  159. package/lib/types/supervisor/remote.d.ts.map +1 -0
  160. package/lib/types/supervisor/remote.js +478 -0
  161. package/lib/types/supervisor/remote.js.map +1 -0
  162. package/lib/types/supervisor/storage/bounded-file.d.ts +41 -0
  163. package/lib/types/supervisor/storage/bounded-file.d.ts.map +1 -0
  164. package/lib/types/supervisor/storage/bounded-file.js +186 -0
  165. package/lib/types/supervisor/storage/bounded-file.js.map +1 -0
  166. package/lib/types/supervisor/storage/details-codec.d.ts +14 -0
  167. package/lib/types/supervisor/storage/details-codec.d.ts.map +1 -0
  168. package/lib/types/supervisor/storage/details-codec.js +359 -0
  169. package/lib/types/supervisor/storage/details-codec.js.map +1 -0
  170. package/lib/types/supervisor/storage/index.d.ts +26 -0
  171. package/lib/types/supervisor/storage/index.d.ts.map +1 -0
  172. package/lib/types/supervisor/storage/index.js +100 -0
  173. package/lib/types/supervisor/storage/index.js.map +1 -0
  174. package/lib/types/supervisor/storage/lease.d.ts +34 -0
  175. package/lib/types/supervisor/storage/lease.d.ts.map +1 -0
  176. package/lib/types/supervisor/storage/lease.js +289 -0
  177. package/lib/types/supervisor/storage/lease.js.map +1 -0
  178. package/lib/types/supervisor/storage/manifest-codec.d.ts +10 -0
  179. package/lib/types/supervisor/storage/manifest-codec.d.ts.map +1 -0
  180. package/lib/types/supervisor/storage/manifest-codec.js +335 -0
  181. package/lib/types/supervisor/storage/manifest-codec.js.map +1 -0
  182. package/lib/types/supervisor/storage/manifest-store.d.ts +99 -0
  183. package/lib/types/supervisor/storage/manifest-store.d.ts.map +1 -0
  184. package/lib/types/supervisor/storage/manifest-store.js +1606 -0
  185. package/lib/types/supervisor/storage/manifest-store.js.map +1 -0
  186. package/lib/types/supervisor/storage/manifest-types.d.ts +269 -0
  187. package/lib/types/supervisor/storage/manifest-types.d.ts.map +1 -0
  188. package/lib/types/supervisor/storage/manifest-types.js +2 -0
  189. package/lib/types/supervisor/storage/manifest-types.js.map +1 -0
  190. package/lib/types/supervisor/storage/private-root.d.ts +143 -0
  191. package/lib/types/supervisor/storage/private-root.d.ts.map +1 -0
  192. package/lib/types/supervisor/storage/private-root.js +860 -0
  193. package/lib/types/supervisor/storage/private-root.js.map +1 -0
  194. package/lib/types/supervisor/storage/recovery.d.ts +14 -0
  195. package/lib/types/supervisor/storage/recovery.d.ts.map +1 -0
  196. package/lib/types/supervisor/storage/recovery.js +126 -0
  197. package/lib/types/supervisor/storage/recovery.js.map +1 -0
  198. package/lib/types/supervisor/storage/run-files.d.ts +67 -0
  199. package/lib/types/supervisor/storage/run-files.d.ts.map +1 -0
  200. package/lib/types/supervisor/storage/run-files.js +346 -0
  201. package/lib/types/supervisor/storage/run-files.js.map +1 -0
  202. package/lib/types/supervisor/types.d.ts +295 -0
  203. package/lib/types/supervisor/types.d.ts.map +1 -0
  204. package/lib/types/supervisor/types.js +3 -0
  205. package/lib/types/supervisor/types.js.map +1 -0
  206. package/lib/types/supervisor/value-view.d.ts +19 -0
  207. package/lib/types/supervisor/value-view.d.ts.map +1 -0
  208. package/lib/types/supervisor/value-view.js +183 -0
  209. package/lib/types/supervisor/value-view.js.map +1 -0
  210. package/lib/types/tool/index.d.ts +86 -0
  211. package/lib/types/tool/index.d.ts.map +1 -0
  212. package/lib/types/tool/index.js +810 -0
  213. package/lib/types/tool/index.js.map +1 -0
  214. package/lib/types/tool/schema.d.ts +158 -0
  215. package/lib/types/tool/schema.d.ts.map +1 -0
  216. package/lib/types/tool/schema.js +137 -0
  217. package/lib/types/tool/schema.js.map +1 -0
  218. package/lib/types/types.d.ts +9 -0
  219. package/lib/types/types.d.ts.map +1 -0
  220. package/lib/types/types.js +3 -0
  221. package/lib/types/types.js.map +1 -0
  222. package/lib/types/user-questions.d.ts +9 -0
  223. package/lib/types/user-questions.d.ts.map +1 -0
  224. package/lib/types/user-questions.js +91 -0
  225. package/lib/types/user-questions.js.map +1 -0
  226. package/package.json +273 -0
  227. package/skills/create-workflow/SKILL.md +166 -0
  228. package/vendor/workflow-engine/LICENSE +21 -0
  229. package/vendor/workflow-engine/README.md +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-components.d.ts","sourceRoot":"","sources":["../../src/client/slot-components.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAExE,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAEpF,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,KAAK,QAAQ,CAAA;AAE/E,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,iFAAiF;AACjF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;IAC/C,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,0BAA0B,CAAC,CAAA;IAClE,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACnD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACtD,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;CAClC;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,YAAY,GAAG,IAAI,CAqB9F;AAED,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,kBAAkB,CAAC;IACvH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAA;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAA;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACzG;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CAWjF"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useLayoutEffect } from 'react';
3
+ import { WorkflowsDashboard } from './WorkflowsDashboard.js';
4
+ import { WorkflowRunPanel } from './WorkflowRunPanel.js';
5
+ /** Translate the official slot standard kit into the package-owned dialog. */
6
+ export function WorkflowsDashboardSlot(props) {
7
+ const sessionId = props.useSessions(value => value.current);
8
+ const state = props.useStore(value => value);
9
+ const source = props.useWorkflowRuns(value => value);
10
+ useLayoutEffect(() => {
11
+ props.onPresenceChange?.(state.open);
12
+ }, [state.open, props.onPresenceChange]);
13
+ useLayoutEffect(() => () => { props.onUnmount?.(); }, [props.onUnmount]);
14
+ return (_jsx(WorkflowsDashboard, { operations: props.operations, source: source, sessionId: sessionId, open: state.open, store: state, storeActions: props.actions, invoker: props.invoker, onClose: props.onClose ?? props.actions.close, labels: props.labels }));
15
+ }
16
+ /** Keyed durable-Chat renderer with exact-parent child navigation. */
17
+ export function WorkflowRunChatSlot(props) {
18
+ if (props.useSessions !== undefined)
19
+ props.useSessions(value => value);
20
+ return (_jsx(WorkflowRunPanel, { node: props.node, sessionId: props.sessionId, labels: props.labels, isChildAvailable: childId => props.childAvailable?.(props.sessionId, childId) === true, resolveAndOpenChild: childId => props.operations.resolveAndOpenChild(props.sessionId, childId) }));
21
+ }
22
+ //# sourceMappingURL=slot-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-components.js","sourceRoot":"","sources":["../../src/client/slot-components.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAqB,MAAM,OAAO,CAAA;AAI1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAA8B,MAAM,uBAAuB,CAAA;AAwBpF,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACpD,eAAe,CAAC,GAAG,EAAE;QACnB,KAAK,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACxC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;IACvE,OAAO,CACL,KAAC,kBAAkB,IACjB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,KAAK,CAAC,OAAO,EAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAC7C,MAAM,EAAE,KAAK,CAAC,MAAM,GACpB,CACH,CAAA;AACH,CAAC;AAQD,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACtE,OAAO,CACL,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,EACtF,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,GAC9F,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,69 @@
1
+ /** Framework-neutral interaction store for the workflow dashboard. */
2
+ /** Sections available in the selected-run inspector. */
3
+ export type WorkflowInspectorTab = 'members' | 'logs' | 'result' | 'artifacts';
4
+ /** Narrow-screen route. */
5
+ export type WorkflowMobileView = 'runs' | 'execution' | 'inspector';
6
+ /** Overlay navigation state. Workflow business data remains in the controller. */
7
+ export interface WorkflowsState {
8
+ open: boolean;
9
+ selectedRunId: string | undefined;
10
+ selectedMemberId: string | undefined;
11
+ selectedArtifactName: string | undefined;
12
+ inspectorTab: WorkflowInspectorTab;
13
+ mobileView: WorkflowMobileView;
14
+ }
15
+ /** Draft-based actions can be adapted directly to DSH's Immer store runtime. */
16
+ export interface WorkflowsActions {
17
+ open(draft: WorkflowsState): void;
18
+ close(draft: WorkflowsState): void;
19
+ selectRun(draft: WorkflowsState, runId: string): void;
20
+ reconcileRun(draft: WorkflowsState, runId: string | undefined, visibleRunIds?: readonly string[]): void;
21
+ selectMember(draft: WorkflowsState, memberId: string): void;
22
+ selectArtifact(draft: WorkflowsState, name: string | undefined): void;
23
+ selectTab(draft: WorkflowsState, tab: WorkflowInspectorTab): void;
24
+ showRuns(draft: WorkflowsState): void;
25
+ showExecution(draft: WorkflowsState): void;
26
+ /** Compatibility spelling used by early package consumers. */
27
+ showRun(draft: WorkflowsState): void;
28
+ }
29
+ export interface WorkflowsStoreHandle {
30
+ readonly init: () => WorkflowsState;
31
+ readonly actions: WorkflowsActions;
32
+ readonly spec: {
33
+ readonly init: () => WorkflowsState;
34
+ readonly actions: WorkflowsActions;
35
+ };
36
+ readonly state: WorkflowsState;
37
+ getState(): WorkflowsState;
38
+ dispatch<K extends keyof WorkflowsActions>(action: K, ...args: ActionArguments<WorkflowsActions[K]>): void;
39
+ subscribe(listener: () => void): () => void;
40
+ /** Slot-runtime compatible instance factory. */
41
+ create(): WorkflowsStoreInstance;
42
+ dispose(): void;
43
+ }
44
+ type ActionArguments<T> = T extends (draft: WorkflowsState, ...args: infer A) => void ? A : never;
45
+ export interface WorkflowsStoreInstance {
46
+ readonly actions: {
47
+ [K in keyof WorkflowsActions]: (...args: ActionArguments<WorkflowsActions[K]>) => void;
48
+ };
49
+ getSnapshot(): WorkflowsState;
50
+ subscribe(listener: () => void): () => void;
51
+ clearPersisted(): void;
52
+ readonly store: {
53
+ getSnapshot(): WorkflowsState;
54
+ subscribe(listener: () => void): () => void;
55
+ update(mutator: (draft: WorkflowsState) => void): void;
56
+ set(next: WorkflowsState): void;
57
+ };
58
+ }
59
+ /** Pure dashboard state transitions. */
60
+ export declare const workflowsActions: WorkflowsActions;
61
+ /**
62
+ * Create a store definition plus a small standalone runtime. Its `init` and
63
+ * `actions` fields mirror the official store contract, while `dispatch` makes
64
+ * it directly testable without importing a second browser state library.
65
+ */
66
+ export declare function createWorkflowsStore(): WorkflowsStoreHandle;
67
+ export declare const createWorkflowStore: typeof createWorkflowsStore;
68
+ export {};
69
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/client/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /** Framework-neutral interaction store for the workflow dashboard. */
2
+ const initial = () => ({
3
+ open: false,
4
+ selectedRunId: undefined,
5
+ selectedMemberId: undefined,
6
+ selectedArtifactName: undefined,
7
+ inspectorTab: 'members',
8
+ mobileView: 'runs',
9
+ });
10
+ /** Pure dashboard state transitions. */
11
+ export const workflowsActions = {
12
+ open: draft => { draft.open = true; },
13
+ close: draft => { draft.open = false; },
14
+ selectRun: (draft, runId) => {
15
+ if (draft.selectedRunId !== runId) {
16
+ draft.selectedMemberId = undefined;
17
+ draft.selectedArtifactName = undefined;
18
+ draft.inspectorTab = 'members';
19
+ }
20
+ draft.selectedRunId = runId;
21
+ draft.mobileView = 'execution';
22
+ },
23
+ reconcileRun: (draft, runId, visibleRunIds) => {
24
+ const candidate = runId === undefined
25
+ ? visibleRunIds?.[0]
26
+ : visibleRunIds === undefined || visibleRunIds.includes(runId)
27
+ ? runId
28
+ : visibleRunIds[0];
29
+ if (candidate !== draft.selectedRunId) {
30
+ draft.selectedMemberId = undefined;
31
+ draft.selectedArtifactName = undefined;
32
+ draft.inspectorTab = 'members';
33
+ }
34
+ draft.selectedRunId = candidate;
35
+ // Reconciliation intentionally preserves the current mobile route.
36
+ },
37
+ selectMember: (draft, memberId) => {
38
+ draft.selectedMemberId = memberId;
39
+ draft.inspectorTab = 'members';
40
+ draft.mobileView = 'inspector';
41
+ },
42
+ selectArtifact: (draft, name) => {
43
+ draft.selectedArtifactName = name;
44
+ draft.inspectorTab = 'artifacts';
45
+ draft.mobileView = 'inspector';
46
+ },
47
+ selectTab: (draft, tab) => {
48
+ draft.inspectorTab = tab;
49
+ if (tab === 'members') {
50
+ draft.mobileView = 'execution';
51
+ draft.selectedArtifactName = undefined;
52
+ }
53
+ else {
54
+ draft.mobileView = 'inspector';
55
+ if (tab !== 'artifacts')
56
+ draft.selectedArtifactName = undefined;
57
+ draft.selectedMemberId = undefined;
58
+ }
59
+ },
60
+ showRuns: draft => { draft.mobileView = 'runs'; },
61
+ showExecution: draft => { draft.mobileView = 'execution'; },
62
+ showRun: draft => { draft.mobileView = 'execution'; },
63
+ };
64
+ /**
65
+ * Create a store definition plus a small standalone runtime. Its `init` and
66
+ * `actions` fields mirror the official store contract, while `dispatch` makes
67
+ * it directly testable without importing a second browser state library.
68
+ */
69
+ export function createWorkflowsStore() {
70
+ const standalone = createRuntime();
71
+ return {
72
+ init: initial,
73
+ actions: workflowsActions,
74
+ spec: { init: initial, actions: workflowsActions },
75
+ get state() { return standalone.getSnapshot(); },
76
+ getState: standalone.getSnapshot,
77
+ dispatch: (action, ...args) => { standalone.run(action, args); },
78
+ subscribe: standalone.subscribe,
79
+ create: createBoundInstance,
80
+ dispose: standalone.dispose,
81
+ };
82
+ }
83
+ function createRuntime() {
84
+ let current = initial();
85
+ const listeners = new Set();
86
+ const publish = () => {
87
+ for (const listener of [...listeners]) {
88
+ try {
89
+ listener();
90
+ }
91
+ catch { /* one observer cannot starve later observers */ }
92
+ }
93
+ };
94
+ const set = (next) => { current = next; publish(); };
95
+ const update = (mutator) => {
96
+ const draft = { ...current };
97
+ mutator(draft);
98
+ set(draft);
99
+ };
100
+ return {
101
+ getSnapshot: () => current,
102
+ subscribe: (listener) => {
103
+ listeners.add(listener);
104
+ return () => { listeners.delete(listener); };
105
+ },
106
+ run: (action, args) => {
107
+ update(draft => { workflowsActions[action](draft, ...args); });
108
+ },
109
+ update,
110
+ set,
111
+ dispose: () => { listeners.clear(); },
112
+ };
113
+ }
114
+ function createBoundInstance() {
115
+ const runtime = createRuntime();
116
+ const actions = {};
117
+ for (const action of Object.keys(workflowsActions)) {
118
+ ;
119
+ actions[action] = (...args) => { runtime.run(action, args); };
120
+ }
121
+ return {
122
+ actions,
123
+ getSnapshot: runtime.getSnapshot,
124
+ subscribe: runtime.subscribe,
125
+ clearPersisted: () => undefined,
126
+ store: {
127
+ getSnapshot: runtime.getSnapshot,
128
+ subscribe: runtime.subscribe,
129
+ update: runtime.update,
130
+ set: runtime.set,
131
+ },
132
+ };
133
+ }
134
+ export const createWorkflowStore = createWorkflowsStore;
135
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/client/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { ConversationNodeDefinition } from '@deepseek-ai/dsh-client-runtime/client';
2
+ /** Status shown for a workflow, phase, or member in the durable Chat row. */
3
+ export type WorkflowRunStatus = 'running' | 'completed' | 'failed' | 'cancelled' | 'interrupted';
4
+ /** One member that actually emitted an official agent-start event. */
5
+ export interface WorkflowRunMemberData {
6
+ readonly seq: number;
7
+ readonly label: string;
8
+ readonly childId: string;
9
+ readonly status: WorkflowRunStatus;
10
+ }
11
+ /** One exact phase identity. `null` is omitted; `''` is an empty phase name. */
12
+ export interface WorkflowRunPhaseData {
13
+ readonly key: string;
14
+ readonly phase: string | null;
15
+ readonly members: readonly WorkflowRunMemberData[];
16
+ }
17
+ /** Durable, human-renderable payload for one workflow-run Chat node. */
18
+ export interface WorkflowRunChatData {
19
+ readonly name: string;
20
+ readonly status: WorkflowRunStatus;
21
+ readonly phases: readonly WorkflowRunPhaseData[];
22
+ }
23
+ declare module '@deepseek-ai/dsh-client-ui-conversation/client' {
24
+ interface ChatNodeDataMap {
25
+ 'workflow-run': WorkflowRunChatData;
26
+ }
27
+ }
28
+ /** Internal fold state for one member; exported so declaration emit is stable. */
29
+ export interface WorkflowMemberState {
30
+ readonly seq: number;
31
+ readonly label: string;
32
+ readonly phase?: string;
33
+ readonly childId: string;
34
+ readonly outcome?: string;
35
+ }
36
+ /** Internal fold state retained by the official conversation projection. */
37
+ export interface WorkflowState {
38
+ readonly name: string;
39
+ readonly stopReason?: string;
40
+ readonly members: readonly WorkflowMemberState[];
41
+ }
42
+ /**
43
+ * Build a stable phase key without conflating an omitted field and `''`.
44
+ * @param phase - exact phase text, or null when the field was omitted.
45
+ * @returns a collision-free renderer key.
46
+ */
47
+ export declare function workflowPhaseKey(phase: string | null): string;
48
+ /** Fold only the four official durable workflow events into one keyed Chat node. */
49
+ export declare const workflowRunDefinition: ConversationNodeDefinition<WorkflowState>;
50
+ /** Backward-compatible public name used by some Chat registration faces. */
51
+ export declare const workflowMessageDefinition: ConversationNodeDefinition<WorkflowState>;
52
+ //# sourceMappingURL=workflow-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-definition.d.ts","sourceRoot":"","sources":["../../src/client/workflow-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,0BAA0B,EAC3B,MAAM,wCAAwC,CAAA;AAG/C,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAA;AAEhG,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CACnC;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAA;CACnD;AAED,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACjD;AAED,OAAO,QAAQ,gDAAgD,CAAC;IAC9D,UAAU,eAAe;QACvB,cAAc,EAAE,mBAAmB,CAAA;KACpC;CACF;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAA;CACjD;AAOD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE7D;AAsFD,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,0BAA0B,CAAC,aAAa,CA6C3E,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,2CAAwB,CAAA"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Build a stable phase key without conflating an omitted field and `''`.
3
+ * @param phase - exact phase text, or null when the field was omitted.
4
+ * @returns a collision-free renderer key.
5
+ */
6
+ export function workflowPhaseKey(phase) {
7
+ return phase === null ? 'missing' : `value:${phase.length}:${phase}`;
8
+ }
9
+ function eventOf(event) {
10
+ return event;
11
+ }
12
+ function statusFromStopReason(stopReason) {
13
+ switch (stopReason) {
14
+ case 'completed': return 'completed';
15
+ case 'cancelled':
16
+ case 'interrupted': return 'cancelled';
17
+ case 'error':
18
+ case 'failed': return 'failed';
19
+ default: return 'failed';
20
+ }
21
+ }
22
+ function statusFromOutcome(outcome) {
23
+ switch (outcome) {
24
+ case 'completed': return 'completed';
25
+ case 'cancelled':
26
+ case 'interrupted': return 'cancelled';
27
+ case 'error':
28
+ case 'failed': return 'failed';
29
+ default: return 'failed';
30
+ }
31
+ }
32
+ function projectWorkflow(context, _location) {
33
+ const state = context.state;
34
+ const phases = new Map();
35
+ for (const member of state.members) {
36
+ const phase = member.phase === undefined ? null : member.phase;
37
+ const key = workflowPhaseKey(phase);
38
+ let group = phases.get(key);
39
+ if (group === undefined) {
40
+ group = { phase, members: [] };
41
+ phases.set(key, group);
42
+ }
43
+ group.members.push({
44
+ seq: member.seq,
45
+ label: member.label,
46
+ childId: member.childId,
47
+ status: member.outcome === undefined
48
+ ? 'running'
49
+ : statusFromOutcome(member.outcome),
50
+ });
51
+ }
52
+ return {
53
+ name: state.name,
54
+ status: state.stopReason === undefined ? 'running' : statusFromStopReason(state.stopReason),
55
+ phases: [...phases].map(([key, phase]) => ({
56
+ key,
57
+ phase: phase.phase,
58
+ members: phase.members,
59
+ })),
60
+ };
61
+ }
62
+ function updateAgentStart(state, data) {
63
+ const seq = Number(data.seq);
64
+ if (!Number.isSafeInteger(seq) || seq < 1 || state.members.some(member => member.seq === seq))
65
+ return state;
66
+ const member = {
67
+ seq,
68
+ label: String(data.label ?? ''),
69
+ childId: String(data.childId ?? data.childSessionId ?? ''),
70
+ ...(data.phase === undefined ? {} : { phase: String(data.phase) }),
71
+ };
72
+ return { ...state, members: [...state.members, member] };
73
+ }
74
+ function updateAgentEnd(state, data) {
75
+ const seq = Number(data.seq);
76
+ return {
77
+ ...state,
78
+ members: state.members.map(member => member.seq === seq
79
+ ? { ...member, outcome: String(data.outcome ?? 'error') }
80
+ : member),
81
+ };
82
+ }
83
+ /** Fold only the four official durable workflow events into one keyed Chat node. */
84
+ export const workflowRunDefinition = {
85
+ kind: 'workflow-run',
86
+ target: 'chat',
87
+ match: (rawEvent) => {
88
+ const event = eventOf(rawEvent);
89
+ if (event.type === 'tool-workflow/run-start') {
90
+ return { id: String(event.data.runId), role: 'start' };
91
+ }
92
+ if (event.type === 'tool-workflow/agent-start'
93
+ || event.type === 'tool-workflow/agent-end'
94
+ || event.type === 'tool-workflow/run-end') {
95
+ return { id: String(event.data.runId), role: 'update' };
96
+ }
97
+ return null;
98
+ },
99
+ start: (_context, match) => {
100
+ const event = eventOf(match.event);
101
+ if (event.type !== 'tool-workflow/run-start') {
102
+ throw new Error('workflow-run start requires tool-workflow/run-start');
103
+ }
104
+ return { name: String(event.data.name ?? ''), members: [] };
105
+ },
106
+ update: (context, match) => {
107
+ const event = eventOf(match.event);
108
+ if (event.type === 'tool-workflow/agent-start')
109
+ return updateAgentStart(context.state, event.data);
110
+ if (event.type === 'tool-workflow/agent-end')
111
+ return updateAgentEnd(context.state, event.data);
112
+ if (event.type === 'tool-workflow/run-end') {
113
+ return { ...context.state, stopReason: String(event.data.stopReason ?? 'error') };
114
+ }
115
+ return context.state;
116
+ },
117
+ buildViewNode: (context) => {
118
+ if (context.start === undefined || context.state === undefined)
119
+ return null;
120
+ const data = projectWorkflow(context, context.start.location);
121
+ return {
122
+ key: context.key,
123
+ kind: 'workflow-run',
124
+ id: context.id,
125
+ target: 'chat',
126
+ anchorSeq: context.start.event.seq,
127
+ location: context.start.location,
128
+ visibility: 'visible',
129
+ data,
130
+ };
131
+ },
132
+ };
133
+ /** Backward-compatible public name used by some Chat registration faces. */
134
+ export const workflowMessageDefinition = workflowRunDefinition;
135
+ //# sourceMappingURL=workflow-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-definition.js","sourceRoot":"","sources":["../../src/client/workflow-definition.ts"],"names":[],"mappings":"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"}