@xrkseek/harness 0.4.8 → 0.4.9

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 (242) hide show
  1. package/node_modules/@xrkseek/cordis/LICENSE +21 -0
  2. package/node_modules/@xrkseek/cordis/README.md +14 -0
  3. package/node_modules/@xrkseek/cordis/bin.js +16 -0
  4. package/node_modules/@xrkseek/cordis/lib/index.js +1828 -0
  5. package/node_modules/@xrkseek/cordis/lib/types/context.d.ts +101 -0
  6. package/node_modules/@xrkseek/cordis/lib/types/context.d.ts.map +1 -0
  7. package/node_modules/@xrkseek/cordis/lib/types/events.d.ts +240 -0
  8. package/node_modules/@xrkseek/cordis/lib/types/events.d.ts.map +1 -0
  9. package/node_modules/@xrkseek/cordis/lib/types/fiber.d.ts +202 -0
  10. package/node_modules/@xrkseek/cordis/lib/types/fiber.d.ts.map +1 -0
  11. package/node_modules/@xrkseek/cordis/lib/types/index.d.ts +15 -0
  12. package/node_modules/@xrkseek/cordis/lib/types/index.d.ts.map +1 -0
  13. package/node_modules/@xrkseek/cordis/lib/types/logger.d.ts +105 -0
  14. package/node_modules/@xrkseek/cordis/lib/types/logger.d.ts.map +1 -0
  15. package/node_modules/@xrkseek/cordis/lib/types/reflect.d.ts +186 -0
  16. package/node_modules/@xrkseek/cordis/lib/types/reflect.d.ts.map +1 -0
  17. package/node_modules/@xrkseek/cordis/lib/types/registry.d.ts +201 -0
  18. package/node_modules/@xrkseek/cordis/lib/types/registry.d.ts.map +1 -0
  19. package/node_modules/@xrkseek/cordis/lib/types/service.d.ts +55 -0
  20. package/node_modules/@xrkseek/cordis/lib/types/service.d.ts.map +1 -0
  21. package/node_modules/@xrkseek/cordis/lib/types/utils.d.ts +62 -0
  22. package/node_modules/@xrkseek/cordis/lib/types/utils.d.ts.map +1 -0
  23. package/node_modules/@xrkseek/cordis/package.json +49 -0
  24. package/node_modules/@xrkseek/cordis/src/context.d.ts +101 -0
  25. package/node_modules/@xrkseek/cordis/src/context.d.ts.map +1 -0
  26. package/node_modules/@xrkseek/cordis/src/context.js +99 -0
  27. package/node_modules/@xrkseek/cordis/src/context.js.map +1 -0
  28. package/node_modules/@xrkseek/cordis/src/context.ts +146 -0
  29. package/node_modules/@xrkseek/cordis/src/events.d.ts +240 -0
  30. package/node_modules/@xrkseek/cordis/src/events.d.ts.map +1 -0
  31. package/node_modules/@xrkseek/cordis/src/events.js +199 -0
  32. package/node_modules/@xrkseek/cordis/src/events.js.map +1 -0
  33. package/node_modules/@xrkseek/cordis/src/events.ts +352 -0
  34. package/node_modules/@xrkseek/cordis/src/fiber.d.ts +202 -0
  35. package/node_modules/@xrkseek/cordis/src/fiber.d.ts.map +1 -0
  36. package/node_modules/@xrkseek/cordis/src/fiber.js +677 -0
  37. package/node_modules/@xrkseek/cordis/src/fiber.js.map +1 -0
  38. package/node_modules/@xrkseek/cordis/src/fiber.ts +754 -0
  39. package/node_modules/@xrkseek/cordis/src/index.d.ts +15 -0
  40. package/node_modules/@xrkseek/cordis/src/index.d.ts.map +1 -0
  41. package/node_modules/@xrkseek/cordis/src/index.js +15 -0
  42. package/node_modules/@xrkseek/cordis/src/index.js.map +1 -0
  43. package/node_modules/@xrkseek/cordis/src/index.ts +14 -0
  44. package/node_modules/@xrkseek/cordis/src/logger.d.ts +105 -0
  45. package/node_modules/@xrkseek/cordis/src/logger.d.ts.map +1 -0
  46. package/node_modules/@xrkseek/cordis/src/logger.js +193 -0
  47. package/node_modules/@xrkseek/cordis/src/logger.js.map +1 -0
  48. package/node_modules/@xrkseek/cordis/src/logger.ts +270 -0
  49. package/node_modules/@xrkseek/cordis/src/reflect.d.ts +186 -0
  50. package/node_modules/@xrkseek/cordis/src/reflect.d.ts.map +1 -0
  51. package/node_modules/@xrkseek/cordis/src/reflect.js +311 -0
  52. package/node_modules/@xrkseek/cordis/src/reflect.js.map +1 -0
  53. package/node_modules/@xrkseek/cordis/src/reflect.ts +418 -0
  54. package/node_modules/@xrkseek/cordis/src/registry.d.ts +201 -0
  55. package/node_modules/@xrkseek/cordis/src/registry.d.ts.map +1 -0
  56. package/node_modules/@xrkseek/cordis/src/registry.js +218 -0
  57. package/node_modules/@xrkseek/cordis/src/registry.js.map +1 -0
  58. package/node_modules/@xrkseek/cordis/src/registry.ts +337 -0
  59. package/node_modules/@xrkseek/cordis/src/service.d.ts +55 -0
  60. package/node_modules/@xrkseek/cordis/src/service.d.ts.map +1 -0
  61. package/node_modules/@xrkseek/cordis/src/service.js +113 -0
  62. package/node_modules/@xrkseek/cordis/src/service.js.map +1 -0
  63. package/node_modules/@xrkseek/cordis/src/service.ts +115 -0
  64. package/node_modules/@xrkseek/cordis/src/utils.d.ts +62 -0
  65. package/node_modules/@xrkseek/cordis/src/utils.d.ts.map +1 -0
  66. package/node_modules/@xrkseek/cordis/src/utils.js +271 -0
  67. package/node_modules/@xrkseek/cordis/src/utils.js.map +1 -0
  68. package/node_modules/@xrkseek/cordis/src/utils.ts +287 -0
  69. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  70. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +39 -68
  71. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  72. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +4 -3
  73. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
  74. package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
  75. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts.map +1 -1
  76. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +2 -1
  77. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
  78. package/node_modules/@xrkseek/exec-image-gen/README.md +1 -1
  79. package/node_modules/@xrkseek/exec-image-gen/dist/catalog.d.ts +16 -0
  80. package/node_modules/@xrkseek/exec-image-gen/dist/catalog.d.ts.map +1 -0
  81. package/node_modules/@xrkseek/exec-image-gen/dist/catalog.js +152 -0
  82. package/node_modules/@xrkseek/exec-image-gen/dist/catalog.js.map +1 -0
  83. package/node_modules/@xrkseek/exec-image-gen/dist/deepinfra-http.d.ts +9 -0
  84. package/node_modules/@xrkseek/exec-image-gen/dist/deepinfra-http.d.ts.map +1 -0
  85. package/node_modules/@xrkseek/exec-image-gen/dist/deepinfra-http.js +21 -0
  86. package/node_modules/@xrkseek/exec-image-gen/dist/deepinfra-http.js.map +1 -0
  87. package/node_modules/@xrkseek/exec-image-gen/dist/fal-http.d.ts +16 -0
  88. package/node_modules/@xrkseek/exec-image-gen/dist/fal-http.d.ts.map +1 -0
  89. package/node_modules/@xrkseek/exec-image-gen/dist/fal-http.js +189 -0
  90. package/node_modules/@xrkseek/exec-image-gen/dist/fal-http.js.map +1 -0
  91. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts +10 -5
  92. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts.map +1 -1
  93. package/node_modules/@xrkseek/exec-image-gen/dist/index.js +174 -18
  94. package/node_modules/@xrkseek/exec-image-gen/dist/index.js.map +1 -1
  95. package/node_modules/@xrkseek/exec-image-gen/dist/krea-http.d.ts +16 -0
  96. package/node_modules/@xrkseek/exec-image-gen/dist/krea-http.d.ts.map +1 -0
  97. package/node_modules/@xrkseek/exec-image-gen/dist/krea-http.js +144 -0
  98. package/node_modules/@xrkseek/exec-image-gen/dist/krea-http.js.map +1 -0
  99. package/node_modules/@xrkseek/exec-image-gen/dist/meta-ai-http.d.ts +9 -0
  100. package/node_modules/@xrkseek/exec-image-gen/dist/meta-ai-http.d.ts.map +1 -0
  101. package/node_modules/@xrkseek/exec-image-gen/dist/meta-ai-http.js +21 -0
  102. package/node_modules/@xrkseek/exec-image-gen/dist/meta-ai-http.js.map +1 -0
  103. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts +4 -1
  104. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts.map +1 -1
  105. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js +7 -5
  106. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js.map +1 -1
  107. package/node_modules/@xrkseek/exec-image-gen/dist/openrouter-http.d.ts +14 -0
  108. package/node_modules/@xrkseek/exec-image-gen/dist/openrouter-http.d.ts.map +1 -0
  109. package/node_modules/@xrkseek/exec-image-gen/dist/openrouter-http.js +117 -0
  110. package/node_modules/@xrkseek/exec-image-gen/dist/openrouter-http.js.map +1 -0
  111. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts.map +1 -1
  112. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js +43 -6
  113. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js.map +1 -1
  114. package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts +1 -1
  115. package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts.map +1 -1
  116. package/node_modules/@xrkseek/exec-image-gen/dist/types.js.map +1 -1
  117. package/node_modules/@xrkseek/exec-image-gen/dist/xai-http.d.ts +16 -0
  118. package/node_modules/@xrkseek/exec-image-gen/dist/xai-http.d.ts.map +1 -0
  119. package/node_modules/@xrkseek/exec-image-gen/dist/xai-http.js +137 -0
  120. package/node_modules/@xrkseek/exec-image-gen/dist/xai-http.js.map +1 -0
  121. package/node_modules/@xrkseek/exec-memory/dist/consolidate-pipeline.d.ts +52 -0
  122. package/node_modules/@xrkseek/exec-memory/dist/consolidate-pipeline.d.ts.map +1 -0
  123. package/node_modules/@xrkseek/exec-memory/dist/consolidate-pipeline.js +216 -0
  124. package/node_modules/@xrkseek/exec-memory/dist/consolidate-pipeline.js.map +1 -0
  125. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +1 -0
  126. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
  127. package/node_modules/@xrkseek/exec-memory/dist/index.js +1 -0
  128. package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
  129. package/node_modules/@xrkseek/exec-memory/dist/tools.d.ts.map +1 -1
  130. package/node_modules/@xrkseek/exec-memory/dist/tools.js +20 -7
  131. package/node_modules/@xrkseek/exec-memory/dist/tools.js.map +1 -1
  132. package/node_modules/@xrkseek/exec-video-gen/README.md +1 -1
  133. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts +14 -1
  134. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts.map +1 -1
  135. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js +99 -1
  136. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js.map +1 -1
  137. package/node_modules/@xrkseek/exec-video-gen/dist/deepinfra-http.d.ts +9 -0
  138. package/node_modules/@xrkseek/exec-video-gen/dist/deepinfra-http.d.ts.map +1 -0
  139. package/node_modules/@xrkseek/exec-video-gen/dist/deepinfra-http.js +17 -0
  140. package/node_modules/@xrkseek/exec-video-gen/dist/deepinfra-http.js.map +1 -0
  141. package/node_modules/@xrkseek/exec-video-gen/dist/fal-http.d.ts +14 -0
  142. package/node_modules/@xrkseek/exec-video-gen/dist/fal-http.d.ts.map +1 -0
  143. package/node_modules/@xrkseek/exec-video-gen/dist/fal-http.js +342 -0
  144. package/node_modules/@xrkseek/exec-video-gen/dist/fal-http.js.map +1 -0
  145. package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts +8 -6
  146. package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts.map +1 -1
  147. package/node_modules/@xrkseek/exec-video-gen/dist/index.js +122 -19
  148. package/node_modules/@xrkseek/exec-video-gen/dist/index.js.map +1 -1
  149. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts +4 -1
  150. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts.map +1 -1
  151. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js +21 -15
  152. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js.map +1 -1
  153. package/node_modules/@xrkseek/exec-video-gen/dist/openrouter-http.d.ts +9 -0
  154. package/node_modules/@xrkseek/exec-video-gen/dist/openrouter-http.d.ts.map +1 -0
  155. package/node_modules/@xrkseek/exec-video-gen/dist/openrouter-http.js +18 -0
  156. package/node_modules/@xrkseek/exec-video-gen/dist/openrouter-http.js.map +1 -0
  157. package/node_modules/@xrkseek/exec-video-gen/dist/tools.d.ts.map +1 -1
  158. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js +26 -6
  159. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js.map +1 -1
  160. package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts +1 -1
  161. package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts.map +1 -1
  162. package/node_modules/@xrkseek/exec-video-gen/dist/types.js.map +1 -1
  163. package/node_modules/@xrkseek/exec-video-gen/dist/xai-http.d.ts +18 -0
  164. package/node_modules/@xrkseek/exec-video-gen/dist/xai-http.d.ts.map +1 -0
  165. package/node_modules/@xrkseek/exec-video-gen/dist/xai-http.js +263 -0
  166. package/node_modules/@xrkseek/exec-video-gen/dist/xai-http.js.map +1 -0
  167. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  168. package/node_modules/@xrkseek/preset-harness/dist/preset.js +12 -3
  169. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  170. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  171. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  172. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  173. package/node_modules/@xrkseek/server-face/dist/agent-team-graph.d.ts +31 -0
  174. package/node_modules/@xrkseek/server-face/dist/agent-team-graph.d.ts.map +1 -1
  175. package/node_modules/@xrkseek/server-face/dist/agent-team-graph.js +125 -1
  176. package/node_modules/@xrkseek/server-face/dist/agent-team-graph.js.map +1 -1
  177. package/node_modules/@xrkseek/server-face/dist/context.d.ts +19 -1
  178. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  179. package/node_modules/@xrkseek/server-face/dist/index.d.ts +3 -3
  180. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  181. package/node_modules/@xrkseek/server-face/dist/index.js +1 -1
  182. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  183. package/node_modules/@xrkseek/server-face/dist/mcp-oauth.d.ts.map +1 -1
  184. package/node_modules/@xrkseek/server-face/dist/mcp-oauth.js +25 -3
  185. package/node_modules/@xrkseek/server-face/dist/mcp-oauth.js.map +1 -1
  186. package/node_modules/@xrkseek/server-face/dist/ralph-tool.d.ts +2 -0
  187. package/node_modules/@xrkseek/server-face/dist/ralph-tool.d.ts.map +1 -1
  188. package/node_modules/@xrkseek/server-face/dist/ralph-tool.js +11 -5
  189. package/node_modules/@xrkseek/server-face/dist/ralph-tool.js.map +1 -1
  190. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  191. package/node_modules/@xrkseek/server-face/dist/runtime.js +1 -0
  192. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  193. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +16 -0
  194. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  195. package/node_modules/@xrkseek/server-face/dist/session-status.js +44 -5
  196. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  197. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts +9 -0
  198. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  199. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +50 -0
  200. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  201. package/node_modules/@xrkseek/server-face/dist/settings-document.d.ts.map +1 -1
  202. package/node_modules/@xrkseek/server-face/dist/settings-document.js +40 -0
  203. package/node_modules/@xrkseek/server-face/dist/settings-document.js.map +1 -1
  204. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  205. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +20 -4
  206. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  207. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  208. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +191 -0
  209. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  210. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.d.ts.map +1 -1
  211. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.js +8 -0
  212. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.js.map +1 -1
  213. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  214. package/node_modules/@xrkseek/server-host/dist/index.js +135 -24
  215. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  216. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
  217. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +6 -0
  218. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
  219. package/node_modules/@xrkseek/server-host/dist/workflow-engine-mount.d.ts +32 -0
  220. package/node_modules/@xrkseek/server-host/dist/workflow-engine-mount.d.ts.map +1 -0
  221. package/node_modules/@xrkseek/server-host/dist/workflow-engine-mount.js +134 -0
  222. package/node_modules/@xrkseek/server-host/dist/workflow-engine-mount.js.map +1 -0
  223. package/node_modules/@xrkseek/server-host/package.json +2 -0
  224. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.d.ts.map +1 -1
  225. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js +20 -0
  226. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js.map +1 -1
  227. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-face-bridge.d.ts +10 -2
  228. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-face-bridge.d.ts.map +1 -1
  229. package/node_modules/@xrkseek/xrk-workflow/README.i18n.yaml +6 -0
  230. package/node_modules/@xrkseek/xrk-workflow/README.md +73 -0
  231. package/node_modules/@xrkseek/xrk-workflow/README.zh.md +72 -0
  232. package/node_modules/@xrkseek/xrk-workflow/lib/types/index.d.ts +177 -0
  233. package/node_modules/@xrkseek/xrk-workflow/lib/types/index.js +730 -0
  234. package/node_modules/@xrkseek/xrk-workflow/lib/types/invariant.d.ts +13 -0
  235. package/node_modules/@xrkseek/xrk-workflow/lib/types/invariant.js +118 -0
  236. package/node_modules/@xrkseek/xrk-workflow/lib/types/runtime-types.d.ts +45 -0
  237. package/node_modules/@xrkseek/xrk-workflow/lib/types/runtime-types.js +9 -0
  238. package/node_modules/@xrkseek/xrk-workflow/lib/types/types.d.ts +118 -0
  239. package/node_modules/@xrkseek/xrk-workflow/lib/types/types.js +16 -0
  240. package/node_modules/@xrkseek/xrk-workflow/package.json +53 -0
  241. package/node_modules/@xrkseek/xrk-workflow/src/index.ts +947 -0
  242. package/package.json +5 -1
@@ -0,0 +1,13 @@
1
+ /** Package-owned workflow lifecycle invariants. @module @xrkseek/xrk-workflow/invariant */
2
+ import type { Context } from '@xrkseek/cordis';
3
+ /** Cordis companion plugin name. */
4
+ export declare const name = "workflow-invariant";
5
+ /** Service required before the companion can reserve package ownership. */
6
+ export declare const inject: string[];
7
+ /**
8
+ * Register the workflow invariant companion.
9
+ * @param ctx - Cordis context carrying the invariant service.
10
+ * @returns the installed registration's disposer after setup succeeds.
11
+ */
12
+ export declare const apply: (ctx: Context) => Promise<() => void>;
13
+ //# sourceMappingURL=invariant.d.ts.map
@@ -0,0 +1,118 @@
1
+ /** Package-owned workflow lifecycle invariants. @module @xrkseek/xrk-workflow/invariant */
2
+ const PACKAGE_NAME = '@xrkseek/xrk-workflow';
3
+ /** Cordis companion plugin name. */
4
+ export const name = 'workflow-invariant';
5
+ /** Service required before the companion can reserve package ownership. */
6
+ export const inject = ['invariants'];
7
+ /** Require every event for a run to retain its validated identity snapshot. */
8
+ function traceFor(traces, info, fail) {
9
+ const trace = traces.get(info.id);
10
+ if (trace === undefined)
11
+ fail(`workflow event has no matching workflow/start for run ${JSON.stringify(info.id)}`);
12
+ if (trace.meta !== JSON.stringify(info.meta)) {
13
+ fail(`workflow event meta diverges from workflow/start for run ${JSON.stringify(info.id)}`);
14
+ }
15
+ return trace;
16
+ }
17
+ /** Assert the immutable identity fields shared by an agent pair. */
18
+ function validateAgentEnd(start, end, fail) {
19
+ if (start.label !== end.label || start.phase !== end.phase || start.childId !== end.childId) {
20
+ fail(`workflow/agent-end identity diverges from workflow/agent-start for seq ${end.seq}`);
21
+ }
22
+ const outcome = end.outcome;
23
+ if (outcome !== 'completed' && outcome !== 'failed' && outcome !== 'cancelled') {
24
+ fail(`workflow/agent-end carries unknown outcome ${JSON.stringify(outcome)}`);
25
+ }
26
+ }
27
+ /** Validate a terminal result against the accumulated run trace. */
28
+ function validateWorkflowEnd(trace, result, fail) {
29
+ if (trace.agents.size > 0)
30
+ fail(`workflow/end has ${trace.agents.size} agent call(s) without workflow/agent-end`);
31
+ if (!Number.isSafeInteger(result.agentsStarted) || result.agentsStarted < trace.starts) {
32
+ fail('workflow/end agentsStarted must be a safe integer covering every observed agent start');
33
+ }
34
+ if (result.stopReason === 'completed' ? result.error !== undefined : typeof result.error !== 'string') {
35
+ fail('workflow/end error must be absent exactly for completed runs');
36
+ }
37
+ }
38
+ /** Install workflow start/end and child-call pairing checks. */
39
+ const install = (ctx, fail) => {
40
+ const traces = new Map();
41
+ const stagedStarts = new WeakSet();
42
+ const stagedAgentStarts = new WeakSet();
43
+ const stagedAgentEnds = new WeakSet();
44
+ const stagedEnds = new WeakSet();
45
+ ctx.on('internal/dispatch', (_mode, eventName, args) => {
46
+ if (eventName === 'workflow/start') {
47
+ const info = args[0];
48
+ if (String(info.id).length === 0 || info.meta.name.length === 0 || info.meta.description.length === 0) {
49
+ fail('workflow/start id, meta.name, and meta.description must be non-empty');
50
+ }
51
+ if (traces.has(info.id))
52
+ fail(`workflow/start repeated run id ${JSON.stringify(info.id)}`);
53
+ stagedStarts.add(info);
54
+ return;
55
+ }
56
+ if (!eventName.startsWith('workflow/'))
57
+ return;
58
+ const info = args[0];
59
+ const trace = traceFor(traces, info, fail);
60
+ if (eventName === 'workflow/agent-start') {
61
+ const agent = args[1];
62
+ if (!Number.isSafeInteger(agent.seq) || agent.seq < 1 || String(agent.childId).length === 0) {
63
+ fail('workflow/agent-start seq must be positive and childId must be non-empty');
64
+ }
65
+ if (trace.agents.has(agent.seq))
66
+ fail(`workflow/agent-start repeated seq ${agent.seq}`);
67
+ stagedAgentStarts.add(agent);
68
+ return;
69
+ }
70
+ if (eventName === 'workflow/agent-end') {
71
+ const agent = args[1];
72
+ const start = trace.agents.get(agent.seq);
73
+ if (start === undefined)
74
+ return fail(`workflow/agent-end has no matching start for seq ${agent.seq}`);
75
+ validateAgentEnd(start, agent, fail);
76
+ stagedAgentEnds.add(agent);
77
+ return;
78
+ }
79
+ if (eventName === 'workflow/end') {
80
+ const result = args[1];
81
+ validateWorkflowEnd(trace, result, fail);
82
+ stagedEnds.add(result);
83
+ }
84
+ }, { global: true });
85
+ ctx.on('workflow/start', (info) => {
86
+ /* v8 ignore next -- internal/dispatch stages the same run-info object */
87
+ if (!stagedStarts.delete(info))
88
+ return;
89
+ traces.set(info.id, { meta: JSON.stringify(info.meta), agents: new Map(), starts: 0 });
90
+ }, { global: true });
91
+ ctx.on('workflow/agent-start', (info, agent) => {
92
+ /* v8 ignore next -- internal/dispatch stages the same agent object */
93
+ if (!stagedAgentStarts.delete(agent))
94
+ return;
95
+ const trace = traceFor(traces, info, fail);
96
+ trace.agents.set(agent.seq, agent);
97
+ trace.starts += 1;
98
+ }, { global: true });
99
+ ctx.on('workflow/agent-end', (info, agent) => {
100
+ /* v8 ignore next -- internal/dispatch stages the same agent object */
101
+ if (!stagedAgentEnds.delete(agent))
102
+ return;
103
+ traceFor(traces, info, fail).agents.delete(agent.seq);
104
+ }, { global: true });
105
+ ctx.on('workflow/end', (info, result) => {
106
+ /* v8 ignore next -- internal/dispatch stages the same result object */
107
+ if (!stagedEnds.delete(result))
108
+ return;
109
+ traces.delete(info.id);
110
+ }, { global: true });
111
+ };
112
+ /**
113
+ * Register the workflow invariant companion.
114
+ * @param ctx - Cordis context carrying the invariant service.
115
+ * @returns the installed registration's disposer after setup succeeds.
116
+ */
117
+ export const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
118
+ //# sourceMappingURL=invariant.js.map
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Host-only workflow request and live-run handles. The browser-safe durable
3
+ * vocabulary remains in `./types` so Client programs never import Agent or
4
+ * host Cordis context declarations.
5
+ *
6
+ * @module @xrkseek/xrk-workflow
7
+ */
8
+ import type { Agent } from '@xrkseek/xrk-agent';
9
+ import type { WorkflowMeta, WorkflowResult, WorkflowRunId } from './types.ts';
10
+ /**
11
+ * What a caller asks for when starting a workflow run. `meta` and `args` are
12
+ * plain JSON data by the seam contract. `parent` is required because every
13
+ * `agent()` spawned by the script is attributed to that live Agent.
14
+ */
15
+ export interface WorkflowStartRequest {
16
+ /** The plain-JS script body (top-level await allowed; ends with `return <json-value>`). */
17
+ script: string;
18
+ /** The workflow's identity block, as plain JSON data (shape-validated by the engine). */
19
+ meta: WorkflowMeta;
20
+ /** Optional input exposed verbatim to the script as the `args` global. */
21
+ args?: unknown;
22
+ /** Optional engine-wide child-provider override for this run. */
23
+ subagentProvider?: string;
24
+ /** Optional per-run total-child ceiling. */
25
+ maxTotalAgents?: number;
26
+ /** The agent on whose behalf the run executes (parent of every child). */
27
+ parent: Agent;
28
+ /** Cancels the run when aborted. */
29
+ signal?: AbortSignal;
30
+ }
31
+ /**
32
+ * Holder-owned live workflow. `result` never rejects; consumers may cancel
33
+ * and must call idempotent `dispose()` to await script and child quiescence.
34
+ */
35
+ export interface WorkflowRun {
36
+ readonly id: WorkflowRunId;
37
+ /** The validated meta block available before the script body runs. */
38
+ readonly meta: WorkflowMeta;
39
+ readonly result: Promise<WorkflowResult>;
40
+ /** Cancel the run and its children. */
41
+ cancel(reason?: string): void;
42
+ /** Cancel if needed and await bounded settlement and cleanup. */
43
+ dispose(): Promise<void>;
44
+ }
45
+ //# sourceMappingURL=runtime-types.d.ts.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Host-only workflow request and live-run handles. The browser-safe durable
3
+ * vocabulary remains in `./types` so Client programs never import Agent or
4
+ * host Cordis context declarations.
5
+ *
6
+ * @module @xrkseek/xrk-workflow
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=runtime-types.js.map
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Workflow seam vocabulary: the request/run/result types a workflow engine
3
+ * consumes and produces, plus the fields in the `workflow/*` event payloads.
4
+ * Types only (plus the id-brand factory), per the package convention.
5
+ *
6
+ * @module @xrkseek/xrk-workflow/types
7
+ */
8
+ import type { Branded } from '@xrkseek/xrk-brand';
9
+ import type { SessionId } from '@xrkseek/xrk-session/types';
10
+ /** Identifies one workflow run. */
11
+ export type WorkflowRunId = Branded<'WorkflowRunId'>;
12
+ /**
13
+ * Brand a string as a {@link WorkflowRunId}.
14
+ * @param id - the raw id string (the engine mints UUIDs; tests may pass fixtures).
15
+ * @returns the same string, branded.
16
+ */
17
+ export declare function WorkflowRunId(id: string): WorkflowRunId;
18
+ /**
19
+ * One phase declared in a script's `meta.phases` (progress vocabulary only —
20
+ * phases group agents in observers/UIs; they impose no execution structure).
21
+ */
22
+ export interface WorkflowPhase {
23
+ /** The phase title; `phase()` calls match against it by exact string. */
24
+ title: string;
25
+ /** Optional one-line description of what the phase does. */
26
+ detail?: string;
27
+ /** Optional provider override this phase is expected to use (informational). */
28
+ provider?: string;
29
+ /** Optional model override this phase is expected to use (informational). */
30
+ model?: string;
31
+ }
32
+ /**
33
+ * The script's identity block, provided as plain JSON data alongside the
34
+ * script body (the model-facing tool carries it as its `meta` parameter) and
35
+ * validated by the engine before the body runs. `name`/`description` are
36
+ * required; the rest is optional annotation. The field vocabulary matches the
37
+ * Claude Code dynamic-workflows meta block.
38
+ */
39
+ export interface WorkflowMeta {
40
+ /** Short kebab-case workflow name (display + persistence key). */
41
+ name: string;
42
+ /** One-line description of what the workflow does. */
43
+ description: string;
44
+ /** Optional guidance on when this workflow applies (shown in listings). */
45
+ whenToUse?: string;
46
+ /** Optional phase declarations matched by `phase()` calls. */
47
+ phases?: WorkflowPhase[];
48
+ }
49
+ /**
50
+ * Why a run settled. CLOSED union (engine-owned, consumers may exhaust):
51
+ * `completed` = the script ran to its final `return`; `cancelled` = the run
52
+ * was cancelled (caller `cancel()`/signal); `error` = the script threw, a
53
+ * fatal `WorkflowError` propagated, or the result failed materialization.
54
+ */
55
+ export type WorkflowStopReason = 'completed' | 'cancelled' | 'error';
56
+ /**
57
+ * The outcome resolved by a live workflow run. `value` is
58
+ * the script's materialized return value (plain host-realm JSON data; `null`
59
+ * when the script returned `undefined`) — meaningful only for `completed`.
60
+ * A non-`completed` reason carries the failure in `error`; the consumer maps
61
+ * it to an `isError` tool result rather than reporting partial output.
62
+ */
63
+ export interface WorkflowResult {
64
+ /** The script's return value (host JSON data; `null` for no return). */
65
+ value: unknown;
66
+ /** Why the run settled. */
67
+ stopReason: WorkflowStopReason;
68
+ /** The failure message (present iff `stopReason` is not `completed`). */
69
+ error?: string;
70
+ /**
71
+ * How many `agent()` calls the run accepted over its whole lifetime. On a
72
+ * graceful settlement this is the script-side count (calls still queued for
73
+ * a concurrency slot included); on a termination path (grace force-settle,
74
+ * worker death) it degrades to the host-observed count — calls queued
75
+ * inside a terminated script are unknowable then.
76
+ */
77
+ agentsStarted: number;
78
+ }
79
+ /** Identifying detail for a run, carried by every `workflow/*` event as borrowed immutable data, never the live run. */
80
+ export interface WorkflowRunInfo {
81
+ /** The run's id. */
82
+ id: WorkflowRunId;
83
+ /** The run's validated meta block. */
84
+ meta: WorkflowMeta;
85
+ }
86
+ /** One `agent()` call's identity within a run (the `workflow/agent-start` payload). */
87
+ export interface WorkflowAgentInfo {
88
+ /** 1-based sequence number of this `agent()` call within the run. */
89
+ seq: number;
90
+ /** The display label (the `label` option, or a prompt snippet). */
91
+ label: string;
92
+ /** The phase this agent belongs to (the `phase` option, else the current `phase()` title). */
93
+ phase?: string;
94
+ /** The child agent's id on the subagent seam. */
95
+ childId: SessionId;
96
+ }
97
+ /** How one `agent()` call settled: clean result, child failure (script sees `null`), or run cancellation. */
98
+ export type WorkflowAgentOutcome = 'completed' | 'failed' | 'cancelled';
99
+ /** One `agent()` call's settlement (the `workflow/agent-end` payload). */
100
+ export interface WorkflowAgentEndInfo extends WorkflowAgentInfo {
101
+ /** How the call settled. */
102
+ outcome: WorkflowAgentOutcome;
103
+ }
104
+ /**
105
+ * A settled run's outcome as event data (the `workflow/end` payload): the
106
+ * {@link WorkflowResult} minus `value` (a listener observing outcomes must not
107
+ * receive a mutable alias of the caller's result value; a consumer that needs
108
+ * the value holds the run and awaits `result`).
109
+ */
110
+ export interface WorkflowResultInfo {
111
+ /** Why the run settled. */
112
+ stopReason: WorkflowStopReason;
113
+ /** The failure message (present iff `stopReason` is not `completed`). */
114
+ error?: string;
115
+ /** How many `agent()` calls the run accepted (see {@link WorkflowResult.agentsStarted}). */
116
+ agentsStarted: number;
117
+ }
118
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Workflow seam vocabulary: the request/run/result types a workflow engine
3
+ * consumes and produces, plus the fields in the `workflow/*` event payloads.
4
+ * Types only (plus the id-brand factory), per the package convention.
5
+ *
6
+ * @module @xrkseek/xrk-workflow/types
7
+ */
8
+ /**
9
+ * Brand a string as a {@link WorkflowRunId}.
10
+ * @param id - the raw id string (the engine mints UUIDs; tests may pass fixtures).
11
+ * @returns the same string, branded.
12
+ */
13
+ export function WorkflowRunId(id) {
14
+ return id;
15
+ }
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@xrkseek/xrk-workflow",
3
+ "description": "Workflow capability seam: ctx.workflowEngine service, run vocabulary, and workflow/* events",
4
+ "version": "0.1.0-rc.8",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/xrkseek/XRK-harness.git",
8
+ "directory": "packages/workflow/workflow"
9
+ },
10
+ "type": "module",
11
+ "main": "src/index.ts",
12
+ "types": "lib/types/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./lib/types/index.d.ts",
16
+ "default": "./src/index.ts"
17
+ },
18
+ "./invariant": {
19
+ "types": "./lib/types/invariant.d.ts",
20
+ "default": "./lib/types/invariant.js"
21
+ },
22
+ "./types": {
23
+ "types": "./lib/types/types.d.ts",
24
+ "default": "./lib/types/types.js"
25
+ },
26
+ "./src/*": "./src/*",
27
+ "./package.json": "./package.json"
28
+ },
29
+ "files": [
30
+ "lib/index.js",
31
+ "lib/invariant.js",
32
+ "lib/types/**/*.js",
33
+ "lib/types/**/*.d.ts"
34
+ ],
35
+ "license": "MIT",
36
+ "peerDependencies": {
37
+ "@xrkseek/xrk-agent": "workspace:^",
38
+ "@xrkseek/xrk-brand": "workspace:^",
39
+ "@xrkseek/xrk-invariants": "workspace:^",
40
+ "@xrkseek/xrk-llm": "workspace:^",
41
+ "@xrkseek/xrk-session": "workspace:^",
42
+ "@xrkseek/cordis": "workspace:^"
43
+ },
44
+ "devDependencies": {
45
+ "@xrkseek/xrk-agent": "workspace:^",
46
+ "@xrkseek/xrk-brand": "workspace:^",
47
+ "@xrkseek/xrk-invariants": "workspace:^",
48
+ "@xrkseek/xrk-llm": "workspace:^",
49
+ "@xrkseek/xrk-session": "workspace:^",
50
+ "@xrkseek/cordis": "workspace:^"
51
+ },
52
+ "private": true
53
+ }