@xyne/workflow-sdk 1.0.0

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 (310) hide show
  1. package/README.md +36 -0
  2. package/dist/agents/agent-step.d.ts +152 -0
  3. package/dist/agents/agent-step.d.ts.map +1 -0
  4. package/dist/agents/agent-step.js +403 -0
  5. package/dist/agents/agent-step.js.map +1 -0
  6. package/dist/agents/base-runtime.d.ts +38 -0
  7. package/dist/agents/base-runtime.d.ts.map +1 -0
  8. package/dist/agents/base-runtime.js +21 -0
  9. package/dist/agents/base-runtime.js.map +1 -0
  10. package/dist/agents/index.d.ts +12 -0
  11. package/dist/agents/index.d.ts.map +1 -0
  12. package/dist/agents/index.js +17 -0
  13. package/dist/agents/index.js.map +1 -0
  14. package/dist/agents/interceptor.d.ts +19 -0
  15. package/dist/agents/interceptor.d.ts.map +1 -0
  16. package/dist/agents/interceptor.js +21 -0
  17. package/dist/agents/interceptor.js.map +1 -0
  18. package/dist/agents/interceptors/approval-gate.d.ts +14 -0
  19. package/dist/agents/interceptors/approval-gate.d.ts.map +1 -0
  20. package/dist/agents/interceptors/approval-gate.js +19 -0
  21. package/dist/agents/interceptors/approval-gate.js.map +1 -0
  22. package/dist/agents/interceptors/tool-logger.d.ts +15 -0
  23. package/dist/agents/interceptors/tool-logger.d.ts.map +1 -0
  24. package/dist/agents/interceptors/tool-logger.js +23 -0
  25. package/dist/agents/interceptors/tool-logger.js.map +1 -0
  26. package/dist/agents/pi-mono-runtime.d.ts +88 -0
  27. package/dist/agents/pi-mono-runtime.d.ts.map +1 -0
  28. package/dist/agents/pi-mono-runtime.js +129 -0
  29. package/dist/agents/pi-mono-runtime.js.map +1 -0
  30. package/dist/agents/tool-registry.d.ts +25 -0
  31. package/dist/agents/tool-registry.d.ts.map +1 -0
  32. package/dist/agents/tool-registry.js +47 -0
  33. package/dist/agents/tool-registry.js.map +1 -0
  34. package/dist/agents/tool-types.d.ts +25 -0
  35. package/dist/agents/tool-types.d.ts.map +1 -0
  36. package/dist/agents/tool-types.js +9 -0
  37. package/dist/agents/tool-types.js.map +1 -0
  38. package/dist/agents/types.d.ts +91 -0
  39. package/dist/agents/types.d.ts.map +1 -0
  40. package/dist/agents/types.js +12 -0
  41. package/dist/agents/types.js.map +1 -0
  42. package/dist/builder/index.d.ts +30 -0
  43. package/dist/builder/index.d.ts.map +1 -0
  44. package/dist/builder/index.js +32 -0
  45. package/dist/builder/index.js.map +1 -0
  46. package/dist/client/index.d.ts +19 -0
  47. package/dist/client/index.d.ts.map +1 -0
  48. package/dist/client/index.js +18 -0
  49. package/dist/client/index.js.map +1 -0
  50. package/dist/client/types.d.ts +128 -0
  51. package/dist/client/types.d.ts.map +1 -0
  52. package/dist/client/types.js +10 -0
  53. package/dist/client/types.js.map +1 -0
  54. package/dist/client/workflow-client.d.ts +15 -0
  55. package/dist/client/workflow-client.d.ts.map +1 -0
  56. package/dist/client/workflow-client.js +293 -0
  57. package/dist/client/workflow-client.js.map +1 -0
  58. package/dist/common/attachment.d.ts +31 -0
  59. package/dist/common/attachment.d.ts.map +1 -0
  60. package/dist/common/attachment.js +21 -0
  61. package/dist/common/attachment.js.map +1 -0
  62. package/dist/common/executable-check.d.ts +42 -0
  63. package/dist/common/executable-check.d.ts.map +1 -0
  64. package/dist/common/executable-check.js +115 -0
  65. package/dist/common/executable-check.js.map +1 -0
  66. package/dist/common/index.d.ts +21 -0
  67. package/dist/common/index.d.ts.map +1 -0
  68. package/dist/common/index.js +19 -0
  69. package/dist/common/index.js.map +1 -0
  70. package/dist/common/resume-payload.d.ts +34 -0
  71. package/dist/common/resume-payload.d.ts.map +1 -0
  72. package/dist/common/resume-payload.js +12 -0
  73. package/dist/common/resume-payload.js.map +1 -0
  74. package/dist/engine/available-context.d.ts +29 -0
  75. package/dist/engine/available-context.d.ts.map +1 -0
  76. package/dist/engine/available-context.js +66 -0
  77. package/dist/engine/available-context.js.map +1 -0
  78. package/dist/engine/condition-evaluator.d.ts +13 -0
  79. package/dist/engine/condition-evaluator.d.ts.map +1 -0
  80. package/dist/engine/condition-evaluator.js +92 -0
  81. package/dist/engine/condition-evaluator.js.map +1 -0
  82. package/dist/engine/config-validator.d.ts +25 -0
  83. package/dist/engine/config-validator.d.ts.map +1 -0
  84. package/dist/engine/config-validator.js +316 -0
  85. package/dist/engine/config-validator.js.map +1 -0
  86. package/dist/engine/pause-step.d.ts +20 -0
  87. package/dist/engine/pause-step.d.ts.map +1 -0
  88. package/dist/engine/pause-step.js +24 -0
  89. package/dist/engine/pause-step.js.map +1 -0
  90. package/dist/engine/service-registry.d.ts +49 -0
  91. package/dist/engine/service-registry.d.ts.map +1 -0
  92. package/dist/engine/service-registry.js +76 -0
  93. package/dist/engine/service-registry.js.map +1 -0
  94. package/dist/engine/variable-resolver.d.ts +29 -0
  95. package/dist/engine/variable-resolver.d.ts.map +1 -0
  96. package/dist/engine/variable-resolver.js +130 -0
  97. package/dist/engine/variable-resolver.js.map +1 -0
  98. package/dist/engine/workflow-executor.d.ts +96 -0
  99. package/dist/engine/workflow-executor.d.ts.map +1 -0
  100. package/dist/engine/workflow-executor.js +837 -0
  101. package/dist/engine/workflow-executor.js.map +1 -0
  102. package/dist/index.d.ts +57 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +56 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/persistence/in-memory-adapter.d.ts +138 -0
  107. package/dist/persistence/in-memory-adapter.d.ts.map +1 -0
  108. package/dist/persistence/in-memory-adapter.js +315 -0
  109. package/dist/persistence/in-memory-adapter.js.map +1 -0
  110. package/dist/persistence/types.d.ts +214 -0
  111. package/dist/persistence/types.d.ts.map +1 -0
  112. package/dist/persistence/types.js +8 -0
  113. package/dist/persistence/types.js.map +1 -0
  114. package/dist/router/types.d.ts +57 -0
  115. package/dist/router/types.d.ts.map +1 -0
  116. package/dist/router/types.js +8 -0
  117. package/dist/router/types.js.map +1 -0
  118. package/dist/router/workflow-router.d.ts +26 -0
  119. package/dist/router/workflow-router.d.ts.map +1 -0
  120. package/dist/router/workflow-router.js +611 -0
  121. package/dist/router/workflow-router.js.map +1 -0
  122. package/dist/runtime/execution-event-bus.d.ts +38 -0
  123. package/dist/runtime/execution-event-bus.d.ts.map +1 -0
  124. package/dist/runtime/execution-event-bus.js +87 -0
  125. package/dist/runtime/execution-event-bus.js.map +1 -0
  126. package/dist/runtime/types.d.ts +129 -0
  127. package/dist/runtime/types.d.ts.map +1 -0
  128. package/dist/runtime/types.js +5 -0
  129. package/dist/runtime/types.js.map +1 -0
  130. package/dist/runtime/workflow-runtime.d.ts +256 -0
  131. package/dist/runtime/workflow-runtime.d.ts.map +1 -0
  132. package/dist/runtime/workflow-runtime.js +699 -0
  133. package/dist/runtime/workflow-runtime.js.map +1 -0
  134. package/dist/steps/base-step.d.ts +204 -0
  135. package/dist/steps/base-step.d.ts.map +1 -0
  136. package/dist/steps/base-step.js +69 -0
  137. package/dist/steps/base-step.js.map +1 -0
  138. package/dist/steps/builtin/code.step.d.ts +95 -0
  139. package/dist/steps/builtin/code.step.d.ts.map +1 -0
  140. package/dist/steps/builtin/code.step.js +122 -0
  141. package/dist/steps/builtin/code.step.js.map +1 -0
  142. package/dist/steps/builtin/conditional.step.d.ts +146 -0
  143. package/dist/steps/builtin/conditional.step.d.ts.map +1 -0
  144. package/dist/steps/builtin/conditional.step.js +71 -0
  145. package/dist/steps/builtin/conditional.step.js.map +1 -0
  146. package/dist/steps/builtin/dedup.step.d.ts +65 -0
  147. package/dist/steps/builtin/dedup.step.d.ts.map +1 -0
  148. package/dist/steps/builtin/dedup.step.js +61 -0
  149. package/dist/steps/builtin/dedup.step.js.map +1 -0
  150. package/dist/steps/builtin/http-request.step.d.ts +928 -0
  151. package/dist/steps/builtin/http-request.step.d.ts.map +1 -0
  152. package/dist/steps/builtin/http-request.step.js +570 -0
  153. package/dist/steps/builtin/http-request.step.js.map +1 -0
  154. package/dist/steps/builtin/loop.step.d.ts +100 -0
  155. package/dist/steps/builtin/loop.step.d.ts.map +1 -0
  156. package/dist/steps/builtin/loop.step.js +79 -0
  157. package/dist/steps/builtin/loop.step.js.map +1 -0
  158. package/dist/steps/builtin/parallel.step.d.ts +208 -0
  159. package/dist/steps/builtin/parallel.step.d.ts.map +1 -0
  160. package/dist/steps/builtin/parallel.step.js +249 -0
  161. package/dist/steps/builtin/parallel.step.js.map +1 -0
  162. package/dist/steps/builtin/switch.step.d.ts +200 -0
  163. package/dist/steps/builtin/switch.step.d.ts.map +1 -0
  164. package/dist/steps/builtin/switch.step.js +92 -0
  165. package/dist/steps/builtin/switch.step.js.map +1 -0
  166. package/dist/steps/builtin/transform.step.d.ts +247 -0
  167. package/dist/steps/builtin/transform.step.d.ts.map +1 -0
  168. package/dist/steps/builtin/transform.step.js +135 -0
  169. package/dist/steps/builtin/transform.step.js.map +1 -0
  170. package/dist/steps/builtin/wait.step.d.ts +921 -0
  171. package/dist/steps/builtin/wait.step.d.ts.map +1 -0
  172. package/dist/steps/builtin/wait.step.js +211 -0
  173. package/dist/steps/builtin/wait.step.js.map +1 -0
  174. package/dist/steps/step-registry.d.ts +64 -0
  175. package/dist/steps/step-registry.d.ts.map +1 -0
  176. package/dist/steps/step-registry.js +102 -0
  177. package/dist/steps/step-registry.js.map +1 -0
  178. package/dist/storage/in-memory-adapter.d.ts +25 -0
  179. package/dist/storage/in-memory-adapter.d.ts.map +1 -0
  180. package/dist/storage/in-memory-adapter.js +41 -0
  181. package/dist/storage/in-memory-adapter.js.map +1 -0
  182. package/dist/storage/types.d.ts +53 -0
  183. package/dist/storage/types.d.ts.map +1 -0
  184. package/dist/storage/types.js +13 -0
  185. package/dist/storage/types.js.map +1 -0
  186. package/dist/testing/index.d.ts +10 -0
  187. package/dist/testing/index.d.ts.map +1 -0
  188. package/dist/testing/index.js +10 -0
  189. package/dist/testing/index.js.map +1 -0
  190. package/dist/testing/mock-context.d.ts +13 -0
  191. package/dist/testing/mock-context.d.ts.map +1 -0
  192. package/dist/testing/mock-context.js +21 -0
  193. package/dist/testing/mock-context.js.map +1 -0
  194. package/dist/testing/mock-step-context.d.ts +47 -0
  195. package/dist/testing/mock-step-context.d.ts.map +1 -0
  196. package/dist/testing/mock-step-context.js +59 -0
  197. package/dist/testing/mock-step-context.js.map +1 -0
  198. package/dist/triggers/base-trigger.d.ts +58 -0
  199. package/dist/triggers/base-trigger.d.ts.map +1 -0
  200. package/dist/triggers/base-trigger.js +37 -0
  201. package/dist/triggers/base-trigger.js.map +1 -0
  202. package/dist/triggers/builtin/default-cron-trigger.d.ts +44 -0
  203. package/dist/triggers/builtin/default-cron-trigger.d.ts.map +1 -0
  204. package/dist/triggers/builtin/default-cron-trigger.js +31 -0
  205. package/dist/triggers/builtin/default-cron-trigger.js.map +1 -0
  206. package/dist/triggers/builtin/default-event-trigger.d.ts +32 -0
  207. package/dist/triggers/builtin/default-event-trigger.d.ts.map +1 -0
  208. package/dist/triggers/builtin/default-event-trigger.js +21 -0
  209. package/dist/triggers/builtin/default-event-trigger.js.map +1 -0
  210. package/dist/triggers/builtin/default-manual-trigger.d.ts +119 -0
  211. package/dist/triggers/builtin/default-manual-trigger.d.ts.map +1 -0
  212. package/dist/triggers/builtin/default-manual-trigger.js +64 -0
  213. package/dist/triggers/builtin/default-manual-trigger.js.map +1 -0
  214. package/dist/triggers/builtin/default-webhook-trigger.d.ts +72 -0
  215. package/dist/triggers/builtin/default-webhook-trigger.d.ts.map +1 -0
  216. package/dist/triggers/builtin/default-webhook-trigger.js +91 -0
  217. package/dist/triggers/builtin/default-webhook-trigger.js.map +1 -0
  218. package/dist/triggers/cron-trigger.d.ts +52 -0
  219. package/dist/triggers/cron-trigger.d.ts.map +1 -0
  220. package/dist/triggers/cron-trigger.js +15 -0
  221. package/dist/triggers/cron-trigger.js.map +1 -0
  222. package/dist/triggers/event-trigger.d.ts +14 -0
  223. package/dist/triggers/event-trigger.d.ts.map +1 -0
  224. package/dist/triggers/event-trigger.js +13 -0
  225. package/dist/triggers/event-trigger.js.map +1 -0
  226. package/dist/triggers/manual-trigger.d.ts +11 -0
  227. package/dist/triggers/manual-trigger.d.ts.map +1 -0
  228. package/dist/triggers/manual-trigger.js +10 -0
  229. package/dist/triggers/manual-trigger.js.map +1 -0
  230. package/dist/triggers/trigger-registry.d.ts +48 -0
  231. package/dist/triggers/trigger-registry.d.ts.map +1 -0
  232. package/dist/triggers/trigger-registry.js +81 -0
  233. package/dist/triggers/trigger-registry.js.map +1 -0
  234. package/dist/triggers/webhook-trigger.d.ts +54 -0
  235. package/dist/triggers/webhook-trigger.d.ts.map +1 -0
  236. package/dist/triggers/webhook-trigger.js +13 -0
  237. package/dist/triggers/webhook-trigger.js.map +1 -0
  238. package/dist/types/attachment.d.ts +23 -0
  239. package/dist/types/attachment.d.ts.map +1 -0
  240. package/dist/types/attachment.js +2 -0
  241. package/dist/types/attachment.js.map +1 -0
  242. package/dist/types/categories.d.ts +14 -0
  243. package/dist/types/categories.d.ts.map +1 -0
  244. package/dist/types/categories.js +10 -0
  245. package/dist/types/categories.js.map +1 -0
  246. package/dist/types/context.d.ts +61 -0
  247. package/dist/types/context.d.ts.map +1 -0
  248. package/dist/types/context.js +2 -0
  249. package/dist/types/context.js.map +1 -0
  250. package/dist/types/index.d.ts +18 -0
  251. package/dist/types/index.d.ts.map +1 -0
  252. package/dist/types/index.js +12 -0
  253. package/dist/types/index.js.map +1 -0
  254. package/dist/types/known-types.d.ts +34 -0
  255. package/dist/types/known-types.d.ts.map +1 -0
  256. package/dist/types/known-types.js +49 -0
  257. package/dist/types/known-types.js.map +1 -0
  258. package/dist/types/operators.d.ts +20 -0
  259. package/dist/types/operators.d.ts.map +1 -0
  260. package/dist/types/operators.js +27 -0
  261. package/dist/types/operators.js.map +1 -0
  262. package/dist/types/pause-path.d.ts +23 -0
  263. package/dist/types/pause-path.d.ts.map +1 -0
  264. package/dist/types/pause-path.js +2 -0
  265. package/dist/types/pause-path.js.map +1 -0
  266. package/dist/types/pause-state.d.ts +100 -0
  267. package/dist/types/pause-state.d.ts.map +1 -0
  268. package/dist/types/pause-state.js +15 -0
  269. package/dist/types/pause-state.js.map +1 -0
  270. package/dist/types/resume-payload.d.ts +34 -0
  271. package/dist/types/resume-payload.d.ts.map +1 -0
  272. package/dist/types/resume-payload.js +12 -0
  273. package/dist/types/resume-payload.js.map +1 -0
  274. package/dist/types/status.d.ts +27 -0
  275. package/dist/types/status.d.ts.map +1 -0
  276. package/dist/types/status.js +41 -0
  277. package/dist/types/status.js.map +1 -0
  278. package/dist/types/step-events.d.ts +22 -0
  279. package/dist/types/step-events.d.ts.map +1 -0
  280. package/dist/types/step-events.js +8 -0
  281. package/dist/types/step-events.js.map +1 -0
  282. package/dist/types/step-types.d.ts +12 -0
  283. package/dist/types/step-types.d.ts.map +1 -0
  284. package/dist/types/step-types.js +2 -0
  285. package/dist/types/step-types.js.map +1 -0
  286. package/dist/types/trigger-types.d.ts +12 -0
  287. package/dist/types/trigger-types.d.ts.map +1 -0
  288. package/dist/types/trigger-types.js +2 -0
  289. package/dist/types/trigger-types.js.map +1 -0
  290. package/dist/types/validation.d.ts +19 -0
  291. package/dist/types/validation.d.ts.map +1 -0
  292. package/dist/types/validation.js +11 -0
  293. package/dist/types/validation.js.map +1 -0
  294. package/dist/types/workflow-config.d.ts +122 -0
  295. package/dist/types/workflow-config.d.ts.map +1 -0
  296. package/dist/types/workflow-config.js +71 -0
  297. package/dist/types/workflow-config.js.map +1 -0
  298. package/dist/util/executable-check.d.ts +42 -0
  299. package/dist/util/executable-check.d.ts.map +1 -0
  300. package/dist/util/executable-check.js +115 -0
  301. package/dist/util/executable-check.js.map +1 -0
  302. package/dist/util/schema-convert.d.ts +14 -0
  303. package/dist/util/schema-convert.d.ts.map +1 -0
  304. package/dist/util/schema-convert.js +16 -0
  305. package/dist/util/schema-convert.js.map +1 -0
  306. package/dist/util/variable-ref.d.ts +52 -0
  307. package/dist/util/variable-ref.d.ts.map +1 -0
  308. package/dist/util/variable-ref.js +89 -0
  309. package/dist/util/variable-ref.js.map +1 -0
  310. package/package.json +97 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * BaseAgentRuntime — abstract class for LLM runtime implementations.
3
+ *
4
+ * Returns `AsyncIterable<AgentEvent>` (pi-mono type). Single `execute()`
5
+ * method — run and resume use the same entry point (resume context is
6
+ * optional in `AgentInput`).
7
+ *
8
+ * **What the runtime does:**
9
+ * - Sends messages to the LLM
10
+ * - Yields pi-mono AgentEvent stream
11
+ * - Calls tools via hooks
12
+ *
13
+ * **What the runtime does NOT do:**
14
+ * - Tool resolution (AgentStep does this)
15
+ * - HITL / pause decisions (interceptor chain does this)
16
+ * - MCP connections (host-side adapter does this)
17
+ * - Event persistence (AgentStep does this via ctx.emit)
18
+ */
19
+ export class BaseAgentRuntime {
20
+ }
21
+ //# sourceMappingURL=base-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-runtime.js","sourceRoot":"","sources":["../../src/agents/base-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,MAAM,OAAgB,gBAAgB;CAqBrC"}
@@ -0,0 +1,12 @@
1
+ export type { AgentEvent, AgentTool, AgentToolResult, AgentToolUpdateCallback, AgentContext, AgentMessage, AgentLoopConfig, BeforeToolCallResult, AfterToolCallResult, BeforeToolCallContext, AfterToolCallContext, ThinkingLevel, Message, UserMessage, AssistantMessage, ToolResultMessage, TextContent, ThinkingContent, ImageContent, ToolCall, Tool, Usage, Model, Context, StopReason, TSchema, Static, AgentCapabilities, AgentHooks, AgentInput, AgentPauseState, AgentResult, PauseRequest, PauseRequestType, ResumePayload, ResumeAttachment, ResumeAction, ToolCallRecord, } from './types.js';
2
+ export { Type } from './types.js';
3
+ export { BaseAgentRuntime } from './base-runtime.js';
4
+ export type { WorkflowTool, ToolExecutionContext } from './tool-types.js';
5
+ export { AgentToolRegistry } from './tool-registry.js';
6
+ export type { ToolInterceptor } from './interceptor.js';
7
+ export { runInterceptorChain } from './interceptor.js';
8
+ export { ApprovalGateInterceptor } from './interceptors/approval-gate.js';
9
+ export { ToolLoggingInterceptor } from './interceptors/tool-logger.js';
10
+ export { AgentStep, AgentStepConfigSchema, type AgentStepConfig, } from './agent-step.js';
11
+ export { PiMonoRuntime, PiMonoConfigSchema, type PiMonoConfig, type PiMonoRuntimeOptions, } from './pi-mono-runtime.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAQA,YAAY,EAEV,UAAU,EACV,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,UAAU,EACV,OAAO,EACP,MAAM,EAEN,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,17 @@
1
+ // @xyne/workflow-sdk/agents — Agent / LLM system
2
+ //
3
+ // Separate entry point. Only usable when pi-mono peer deps are installed:
4
+ // @earendil-works/pi-agent-core
5
+ // @earendil-works/pi-ai
6
+ export { Type } from './types.js';
7
+ // ─── Base Runtime ───
8
+ export { BaseAgentRuntime } from './base-runtime.js';
9
+ export { AgentToolRegistry } from './tool-registry.js';
10
+ export { runInterceptorChain } from './interceptor.js';
11
+ export { ApprovalGateInterceptor } from './interceptors/approval-gate.js';
12
+ export { ToolLoggingInterceptor } from './interceptors/tool-logger.js';
13
+ // ─── Agent Step ───
14
+ export { AgentStep, AgentStepConfigSchema, } from './agent-step.js';
15
+ // ─── Pi-Mono Runtime ───
16
+ export { PiMonoRuntime, PiMonoConfigSchema, } from './pi-mono-runtime.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,0EAA0E;AAC1E,kCAAkC;AAClC,0BAA0B;AA+C1B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,uBAAuB;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,qBAAqB;AAErB,OAAO,EACL,SAAS,EACT,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AAEzB,0BAA0B;AAE1B,OAAO,EACL,aAAa,EACb,kBAAkB,GAGnB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Tool call interceptor chain — strategy pattern for tool call gates.
3
+ *
4
+ * Replaces hardcoded approval logic with a composable chain.
5
+ * Interceptors run in order; first one returning 'deny' or 'pause' wins.
6
+ */
7
+ /** A single interceptor in the chain. */
8
+ export interface ToolInterceptor {
9
+ /** Return true if this interceptor applies to this tool call. */
10
+ shouldIntercept(toolName: string, args: Record<string, unknown>): boolean;
11
+ /** Handle the interception — return allow/deny/pause. */
12
+ handle(toolName: string, args: Record<string, unknown>): Promise<'allow' | 'deny' | 'pause'>;
13
+ }
14
+ /**
15
+ * Run interceptors in order. First one that returns 'deny' or 'pause' wins.
16
+ * If all return 'allow' (or none intercept), the tool call proceeds.
17
+ */
18
+ export declare function runInterceptorChain(interceptors: readonly ToolInterceptor[], toolName: string, args: Record<string, unknown>): Promise<'allow' | 'deny' | 'pause'>;
19
+ //# sourceMappingURL=interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/agents/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yCAAyC;AACzC,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1E,yDAAyD;IACzD,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,SAAS,eAAe,EAAE,EACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAQrC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Tool call interceptor chain — strategy pattern for tool call gates.
3
+ *
4
+ * Replaces hardcoded approval logic with a composable chain.
5
+ * Interceptors run in order; first one returning 'deny' or 'pause' wins.
6
+ */
7
+ /**
8
+ * Run interceptors in order. First one that returns 'deny' or 'pause' wins.
9
+ * If all return 'allow' (or none intercept), the tool call proceeds.
10
+ */
11
+ export async function runInterceptorChain(interceptors, toolName, args) {
12
+ for (const interceptor of interceptors) {
13
+ if (interceptor.shouldIntercept(toolName, args)) {
14
+ const result = await interceptor.handle(toolName, args);
15
+ if (result !== 'allow')
16
+ return result;
17
+ }
18
+ }
19
+ return 'allow';
20
+ }
21
+ //# sourceMappingURL=interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/agents/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAAwC,EACxC,QAAgB,EAChB,IAA6B;IAE7B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,MAAM,KAAK,OAAO;gBAAE,OAAO,MAAM,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ApprovalGateInterceptor — gates tool calls that require human approval.
3
+ *
4
+ * Any tool whose name is in the configured list always returns 'pause',
5
+ * causing AgentStep to build a PauseRequest for the host UI.
6
+ */
7
+ import type { ToolInterceptor } from '../interceptor.js';
8
+ export declare class ApprovalGateInterceptor implements ToolInterceptor {
9
+ private readonly gatedTools;
10
+ constructor(toolNames: readonly string[]);
11
+ shouldIntercept(toolName: string): boolean;
12
+ handle(): Promise<'pause'>;
13
+ }
14
+ //# sourceMappingURL=approval-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-gate.d.ts","sourceRoot":"","sources":["../../../src/agents/interceptors/approval-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,SAAS,EAAE,SAAS,MAAM,EAAE;IAIxC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAGjC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ApprovalGateInterceptor — gates tool calls that require human approval.
3
+ *
4
+ * Any tool whose name is in the configured list always returns 'pause',
5
+ * causing AgentStep to build a PauseRequest for the host UI.
6
+ */
7
+ export class ApprovalGateInterceptor {
8
+ gatedTools;
9
+ constructor(toolNames) {
10
+ this.gatedTools = new Set(toolNames);
11
+ }
12
+ shouldIntercept(toolName) {
13
+ return this.gatedTools.has(toolName);
14
+ }
15
+ async handle() {
16
+ return 'pause';
17
+ }
18
+ }
19
+ //# sourceMappingURL=approval-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-gate.js","sourceRoot":"","sources":["../../../src/agents/interceptors/approval-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,uBAAuB;IACjB,UAAU,CAAsB;IAEjD,YAAY,SAA4B;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ToolLoggingInterceptor — emits tool call events via ctx.emit() for observability.
3
+ *
4
+ * Intercepts all tool calls, emits a 'tool_call' progress event, and
5
+ * always returns 'allow' (never blocks).
6
+ */
7
+ import type { StepProgressEvent } from '../../types/step-events.js';
8
+ import type { ToolInterceptor } from '../interceptor.js';
9
+ export declare class ToolLoggingInterceptor implements ToolInterceptor {
10
+ private readonly emit;
11
+ constructor(emit: (event: StepProgressEvent) => void);
12
+ shouldIntercept(): boolean;
13
+ handle(toolName: string, args: Record<string, unknown>): Promise<'allow'>;
14
+ }
15
+ //# sourceMappingURL=tool-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-logger.d.ts","sourceRoot":"","sources":["../../../src/agents/interceptors/tool-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,qBAAa,sBAAuB,YAAW,eAAe;IAE1D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI;IAG3D,eAAe,IAAI,OAAO;IAIpB,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;CAOpB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * ToolLoggingInterceptor — emits tool call events via ctx.emit() for observability.
3
+ *
4
+ * Intercepts all tool calls, emits a 'tool_call' progress event, and
5
+ * always returns 'allow' (never blocks).
6
+ */
7
+ export class ToolLoggingInterceptor {
8
+ emit;
9
+ constructor(emit) {
10
+ this.emit = emit;
11
+ }
12
+ shouldIntercept() {
13
+ return true;
14
+ }
15
+ async handle(toolName, args) {
16
+ this.emit({
17
+ type: 'tool_call',
18
+ data: { tool: toolName, args, phase: 'start' },
19
+ });
20
+ return 'allow';
21
+ }
22
+ }
23
+ //# sourceMappingURL=tool-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-logger.js","sourceRoot":"","sources":["../../../src/agents/interceptors/tool-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,OAAO,sBAAsB;IAEd;IADnB,YACmB,IAAwC;QAAxC,SAAI,GAAJ,IAAI,CAAoC;IACxD,CAAC;IAEJ,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,IAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;SAC/C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * PiMonoRuntime — concrete BaseAgentRuntime implementation using pi-mono.
3
+ *
4
+ * Wraps pi-mono's `agentLoop` / `agentLoopContinue` functions.
5
+ * Uses LiteLLM as the provider (OpenAI-compatible proxy).
6
+ *
7
+ * The runtime is thin by design — AgentStep handles tool resolution,
8
+ * interceptor chain, event consumption, and pause/resume orchestration.
9
+ */
10
+ import { z } from 'zod';
11
+ import type { AgentEvent } from '@earendil-works/pi-agent-core';
12
+ import { BaseAgentRuntime } from './base-runtime.js';
13
+ import type { AgentCapabilities, AgentInput } from './types.js';
14
+ import type { StepExecutionContext } from '../steps/base-step.js';
15
+ export declare const PiMonoConfigSchema: z.ZodObject<{
16
+ /** LiteLLM model name (routed by LiteLLM to the correct provider). */
17
+ model: z.ZodDefault<z.ZodString>;
18
+ /** System prompt for the agent. */
19
+ systemPrompt: z.ZodString;
20
+ /** User message to start the conversation. */
21
+ userMessage: z.ZodString;
22
+ /** LLM temperature. */
23
+ temperature: z.ZodOptional<z.ZodNumber>;
24
+ /** Max tokens in the response. */
25
+ maxTokens: z.ZodOptional<z.ZodNumber>;
26
+ /** Thinking level for reasoning models. */
27
+ thinkingLevel: z.ZodOptional<z.ZodEnum<["off", "minimal", "low", "medium", "high", "xhigh"]>>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ systemPrompt: string;
30
+ userMessage: string;
31
+ model: string;
32
+ temperature?: number | undefined;
33
+ maxTokens?: number | undefined;
34
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
35
+ }, {
36
+ systemPrompt: string;
37
+ userMessage: string;
38
+ model?: string | undefined;
39
+ temperature?: number | undefined;
40
+ maxTokens?: number | undefined;
41
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
42
+ }>;
43
+ export type PiMonoConfig = z.infer<typeof PiMonoConfigSchema>;
44
+ export interface PiMonoRuntimeOptions {
45
+ /** LiteLLM base URL (e.g. https://grid.ai.juspay.net/). */
46
+ baseUrl: string;
47
+ /** LiteLLM API key. */
48
+ apiKey: string;
49
+ /** Pi-ai API type. Default: 'openai-responses' (LiteLLM is OpenAI-compatible). */
50
+ api?: string | undefined;
51
+ }
52
+ export declare class PiMonoRuntime extends BaseAgentRuntime<typeof PiMonoConfigSchema> {
53
+ private readonly options;
54
+ readonly name = "pi-mono";
55
+ readonly capabilities: AgentCapabilities;
56
+ readonly configSchema: z.ZodObject<{
57
+ /** LiteLLM model name (routed by LiteLLM to the correct provider). */
58
+ model: z.ZodDefault<z.ZodString>;
59
+ /** System prompt for the agent. */
60
+ systemPrompt: z.ZodString;
61
+ /** User message to start the conversation. */
62
+ userMessage: z.ZodString;
63
+ /** LLM temperature. */
64
+ temperature: z.ZodOptional<z.ZodNumber>;
65
+ /** Max tokens in the response. */
66
+ maxTokens: z.ZodOptional<z.ZodNumber>;
67
+ /** Thinking level for reasoning models. */
68
+ thinkingLevel: z.ZodOptional<z.ZodEnum<["off", "minimal", "low", "medium", "high", "xhigh"]>>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ systemPrompt: string;
71
+ userMessage: string;
72
+ model: string;
73
+ temperature?: number | undefined;
74
+ maxTokens?: number | undefined;
75
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
76
+ }, {
77
+ systemPrompt: string;
78
+ userMessage: string;
79
+ model?: string | undefined;
80
+ temperature?: number | undefined;
81
+ maxTokens?: number | undefined;
82
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
83
+ }>;
84
+ constructor(options: PiMonoRuntimeOptions);
85
+ execute(config: PiMonoConfig, input: AgentInput, _ctx: StepExecutionContext): AsyncIterable<AgentEvent>;
86
+ private buildPiMonoHooks;
87
+ }
88
+ //# sourceMappingURL=pi-mono-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-mono-runtime.d.ts","sourceRoot":"","sources":["../../src/agents/pi-mono-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,UAAU,EAOX,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,eAAO,MAAM,kBAAkB;IAC7B,sEAAsE;;IAEtE,mCAAmC;;IAEnC,8CAA8C;;IAE9C,uBAAuB;;IAEvB,kCAAkC;;IAElC,2CAA2C;;;;;;;;;;;;;;;;EAI3C,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAID,qBAAa,aAAc,SAAQ,gBAAgB,CAAC,OAAO,kBAAkB,CAAC;IAUhE,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,SAAkB,IAAI,aAAa;IACnC,SAAkB,YAAY,EAAE,iBAAiB,CAK/C;IACF,SAAkB,YAAY;QAvC9B,sEAAsE;;QAEtE,mCAAmC;;QAEnC,8CAA8C;;QAE9C,uBAAuB;;QAEvB,kCAAkC;;QAElC,2CAA2C;;;;;;;;;;;;;;;;OA6BS;gBAEvB,OAAO,EAAE,oBAAoB;IAI1C,OAAO,CACrB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,oBAAoB,GACzB,aAAa,CAAC,UAAU,CAAC;IAuD5B,OAAO,CAAC,gBAAgB;CAyCzB"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * PiMonoRuntime — concrete BaseAgentRuntime implementation using pi-mono.
3
+ *
4
+ * Wraps pi-mono's `agentLoop` / `agentLoopContinue` functions.
5
+ * Uses LiteLLM as the provider (OpenAI-compatible proxy).
6
+ *
7
+ * The runtime is thin by design — AgentStep handles tool resolution,
8
+ * interceptor chain, event consumption, and pause/resume orchestration.
9
+ */
10
+ import { z } from 'zod';
11
+ import { agentLoop, agentLoopContinue } from '@earendil-works/pi-agent-core';
12
+ import { BaseAgentRuntime } from './base-runtime.js';
13
+ // ─── Config Schema ───
14
+ export const PiMonoConfigSchema = z.object({
15
+ /** LiteLLM model name (routed by LiteLLM to the correct provider). */
16
+ model: z.string().default('claude-sonnet-4-20250514'),
17
+ /** System prompt for the agent. */
18
+ systemPrompt: z.string(),
19
+ /** User message to start the conversation. */
20
+ userMessage: z.string(),
21
+ /** LLM temperature. */
22
+ temperature: z.number().optional(),
23
+ /** Max tokens in the response. */
24
+ maxTokens: z.number().optional(),
25
+ /** Thinking level for reasoning models. */
26
+ thinkingLevel: z
27
+ .enum(['off', 'minimal', 'low', 'medium', 'high', 'xhigh'])
28
+ .optional(),
29
+ });
30
+ // ─── Runtime ───
31
+ export class PiMonoRuntime extends BaseAgentRuntime {
32
+ options;
33
+ name = 'pi-mono';
34
+ capabilities = {
35
+ streaming: true,
36
+ toolUse: true,
37
+ hooks: true,
38
+ multiTurn: true,
39
+ };
40
+ configSchema = PiMonoConfigSchema;
41
+ constructor(options) {
42
+ super();
43
+ this.options = options;
44
+ }
45
+ async *execute(config, input, _ctx) {
46
+ // 1. Build custom Model pointing to LiteLLM
47
+ const model = {
48
+ id: config.model,
49
+ name: config.model,
50
+ api: this.options.api ?? 'openai-responses',
51
+ provider: 'litellm',
52
+ baseUrl: this.options.baseUrl,
53
+ reasoning: config.thinkingLevel != null && config.thinkingLevel !== 'off',
54
+ input: ['text', 'image'],
55
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
56
+ contextWindow: 200_000,
57
+ maxTokens: config.maxTokens ?? 8192,
58
+ };
59
+ // 2. Build AgentLoopConfig
60
+ const apiKey = this.options.apiKey;
61
+ const loopConfig = {
62
+ model,
63
+ convertToLlm: defaultConvertToLlm,
64
+ getApiKey: () => apiKey,
65
+ ...(config.temperature !== undefined && {
66
+ temperature: config.temperature,
67
+ }),
68
+ ...(config.maxTokens !== undefined && { maxTokens: config.maxTokens }),
69
+ ...(config.thinkingLevel && config.thinkingLevel !== 'off' && {
70
+ reasoning: config.thinkingLevel,
71
+ }),
72
+ ...this.buildPiMonoHooks(input),
73
+ };
74
+ // 3. Build context
75
+ const context = {
76
+ systemPrompt: config.systemPrompt,
77
+ messages: input.resume?.messages ?? [],
78
+ ...(input.tools.length > 0 && { tools: input.tools }),
79
+ };
80
+ // 4. Run or resume
81
+ if (input.resume) {
82
+ yield* agentLoopContinue(context, loopConfig, input.signal);
83
+ }
84
+ else {
85
+ const prompts = [
86
+ {
87
+ role: 'user',
88
+ content: config.userMessage,
89
+ timestamp: Date.now(),
90
+ },
91
+ ];
92
+ yield* agentLoop(prompts, context, loopConfig, input.signal);
93
+ }
94
+ }
95
+ // ─── Private ───
96
+ buildPiMonoHooks(input) {
97
+ const hooks = {};
98
+ if (input.hooks.beforeToolCall) {
99
+ const sdkHook = input.hooks.beforeToolCall;
100
+ hooks.beforeToolCall = async (btc) => {
101
+ const result = await sdkHook(btc.toolCall.name, btc.args ?? {});
102
+ if (result === 'deny') {
103
+ return { block: true, reason: 'Denied by interceptor' };
104
+ }
105
+ if (result === 'pause') {
106
+ return { block: true, reason: '__pause__' };
107
+ }
108
+ return undefined; // 'allow'
109
+ };
110
+ }
111
+ if (input.hooks.afterToolCall) {
112
+ const sdkHook = input.hooks.afterToolCall;
113
+ hooks.afterToolCall = async (atc) => {
114
+ await sdkHook(atc.toolCall.name, atc.args ?? {}, atc.result);
115
+ return undefined;
116
+ };
117
+ }
118
+ return hooks;
119
+ }
120
+ }
121
+ // ─── Helpers ───
122
+ /**
123
+ * Default message converter — filters for standard LLM message types.
124
+ * Matches pi-mono's built-in default.
125
+ */
126
+ function defaultConvertToLlm(messages) {
127
+ return messages.filter((m) => m.role === 'user' || m.role === 'assistant' || m.role === 'toolResult');
128
+ }
129
+ //# sourceMappingURL=pi-mono-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-mono-runtime.js","sourceRoot":"","sources":["../../src/agents/pi-mono-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * AgentToolRegistry — registry for WorkflowTool instances.
3
+ *
4
+ * Stores tools by name. Used by AgentStep to resolve tool names from
5
+ * workflow config into concrete tool implementations.
6
+ */
7
+ import type { WorkflowTool } from './tool-types.js';
8
+ export declare class AgentToolRegistry {
9
+ private readonly tools;
10
+ /** Register a tool. Throws if a tool with the same name is already registered. */
11
+ register(tool: WorkflowTool): void;
12
+ /** Get a tool by name. Returns undefined if not found. */
13
+ get(name: string): WorkflowTool | undefined;
14
+ /** Get all registered tools. */
15
+ getAll(): WorkflowTool[];
16
+ /** Resolve a list of tool names to WorkflowTool instances. Throws if any name is missing. */
17
+ resolve(names: readonly string[]): WorkflowTool[];
18
+ /** Get all registered tool names. */
19
+ getNames(): string[];
20
+ /** Check if a tool is registered. */
21
+ has(name: string): boolean;
22
+ /** Number of registered tools. */
23
+ get size(): number;
24
+ }
25
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/agents/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IAEzD,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAOlC,0DAA0D;IAC1D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3C,gCAAgC;IAChC,MAAM,IAAI,YAAY,EAAE;IAIxB,6FAA6F;IAC7F,OAAO,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,EAAE;IAUjD,qCAAqC;IACrC,QAAQ,IAAI,MAAM,EAAE;IAIpB,qCAAqC;IACrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,kCAAkC;IAClC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * AgentToolRegistry — registry for WorkflowTool instances.
3
+ *
4
+ * Stores tools by name. Used by AgentStep to resolve tool names from
5
+ * workflow config into concrete tool implementations.
6
+ */
7
+ export class AgentToolRegistry {
8
+ tools = new Map();
9
+ /** Register a tool. Throws if a tool with the same name is already registered. */
10
+ register(tool) {
11
+ if (this.tools.has(tool.name)) {
12
+ throw new Error(`Tool "${tool.name}" is already registered`);
13
+ }
14
+ this.tools.set(tool.name, tool);
15
+ }
16
+ /** Get a tool by name. Returns undefined if not found. */
17
+ get(name) {
18
+ return this.tools.get(name);
19
+ }
20
+ /** Get all registered tools. */
21
+ getAll() {
22
+ return [...this.tools.values()];
23
+ }
24
+ /** Resolve a list of tool names to WorkflowTool instances. Throws if any name is missing. */
25
+ resolve(names) {
26
+ return names.map((name) => {
27
+ const tool = this.tools.get(name);
28
+ if (!tool) {
29
+ throw new Error(`Tool "${name}" not found in registry`);
30
+ }
31
+ return tool;
32
+ });
33
+ }
34
+ /** Get all registered tool names. */
35
+ getNames() {
36
+ return [...this.tools.keys()];
37
+ }
38
+ /** Check if a tool is registered. */
39
+ has(name) {
40
+ return this.tools.has(name);
41
+ }
42
+ /** Number of registered tools. */
43
+ get size() {
44
+ return this.tools.size;
45
+ }
46
+ }
47
+ //# sourceMappingURL=tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/agents/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,iBAAiB;IACX,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEzD,kFAAkF;IAClF,QAAQ,CAAC,IAAkB;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,0DAA0D;IAC1D,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,gCAAgC;IAChC,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,6FAA6F;IAC7F,OAAO,CAAC,KAAwB;QAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,yBAAyB,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,qCAAqC;IACrC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * WorkflowTool — Zod-based tool interface for engine consumers.
3
+ *
4
+ * Tool authors write tools using Zod schemas (consistent with the rest of
5
+ * the engine). AgentStep converts these to pi-mono AgentTool at execution
6
+ * time via JSON Schema conversion.
7
+ */
8
+ import type { z } from 'zod';
9
+ /** Tool definition for engine consumers — uses Zod (consistent with engine patterns). */
10
+ export interface WorkflowTool<TInput extends z.ZodTypeAny = z.ZodTypeAny> {
11
+ readonly name: string;
12
+ readonly description: string;
13
+ readonly inputSchema: TInput;
14
+ execute(args: z.infer<TInput>, ctx: ToolExecutionContext): Promise<unknown>;
15
+ }
16
+ /** Context available to tool execute() calls. */
17
+ export interface ToolExecutionContext {
18
+ readonly signal: AbortSignal;
19
+ readonly log: {
20
+ info(msg: string): void;
21
+ warn(msg: string): void;
22
+ error(msg: string): void;
23
+ };
24
+ }
25
+ //# sourceMappingURL=tool-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../src/agents/tool-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,yFAAyF;AACzF,MAAM,WAAW,YAAY,CAC3B,MAAM,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;IAE1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,OAAO,CACL,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EACrB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * WorkflowTool — Zod-based tool interface for engine consumers.
3
+ *
4
+ * Tool authors write tools using Zod schemas (consistent with the rest of
5
+ * the engine). AgentStep converts these to pi-mono AgentTool at execution
6
+ * time via JSON Schema conversion.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=tool-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-types.js","sourceRoot":"","sources":["../../src/agents/tool-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}