@swirls/looms 0.0.2 → 0.2.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 (375) hide show
  1. package/CHANGELOG.md +24 -2
  2. package/dist/actor/cell.d.ts +9 -4
  3. package/dist/actor/cell.js +7 -11
  4. package/dist/actor/host.d.ts +7 -3
  5. package/dist/actor/host.js +57 -33
  6. package/dist/actor/index.d.ts +1 -1
  7. package/dist/actor/index.js +1 -1
  8. package/dist/actor/routing.d.ts +12 -1
  9. package/dist/actor/routing.js +57 -51
  10. package/dist/agent/agent-session.d.ts +5 -0
  11. package/dist/agent/agent-session.js +270 -0
  12. package/dist/agent/debugger/agent-chat.d.ts +2 -0
  13. package/dist/agent/debugger/agent-chat.js +176 -0
  14. package/dist/agent/debugger/index.d.ts +5 -0
  15. package/dist/agent/debugger/index.js +19 -0
  16. package/dist/agent/debugger/summarize.d.ts +2 -0
  17. package/dist/agent/debugger/summarize.js +51 -0
  18. package/dist/agent/debugger/token-usage.d.ts +3 -0
  19. package/dist/agent/debugger/token-usage.js +11 -0
  20. package/dist/agent/definitions-store.d.ts +2 -3
  21. package/dist/agent/definitions-store.js +2 -4
  22. package/dist/agent/definitions.d.ts +47 -29
  23. package/dist/agent/definitions.js +39 -12
  24. package/dist/agent/effects.d.ts +359 -2
  25. package/dist/agent/effects.js +60 -34
  26. package/dist/agent/events.d.ts +175 -19
  27. package/dist/agent/events.js +45 -10
  28. package/dist/agent/index.d.ts +1 -0
  29. package/dist/agent/index.js +1 -0
  30. package/dist/agent/llm.d.ts +11 -2
  31. package/dist/agent/llm.js +13 -3
  32. package/dist/agent/module.d.ts +812 -78
  33. package/dist/agent/module.js +16 -4
  34. package/dist/agent/scope.d.ts +174 -18
  35. package/dist/agent/signals.d.ts +26 -1
  36. package/dist/agent/signals.js +79 -0
  37. package/dist/agent/threads.d.ts +3 -33
  38. package/dist/agent/threads.js +20 -25
  39. package/dist/agent/tool-schema.d.ts +1 -17
  40. package/dist/agent/tool-schema.js +3 -43
  41. package/dist/agent/types.d.ts +49 -4
  42. package/dist/agent/types.js +5 -5
  43. package/dist/ai-vercel/index.d.ts +1 -0
  44. package/dist/ai-vercel/index.js +1 -0
  45. package/dist/ai-vercel/messages.js +22 -7
  46. package/dist/ai-vercel/vercel-evaluator.d.ts +36 -0
  47. package/dist/ai-vercel/vercel-evaluator.js +73 -0
  48. package/dist/ai-vercel/vercel-llm.js +64 -44
  49. package/dist/approval/debugger/approvals-view.d.ts +3 -0
  50. package/dist/approval/debugger/approvals-view.js +16 -0
  51. package/dist/approval/debugger/index.d.ts +4 -0
  52. package/dist/approval/debugger/index.js +11 -0
  53. package/dist/approval/debugger/summarize.d.ts +2 -0
  54. package/dist/approval/debugger/summarize.js +17 -0
  55. package/dist/approval/effects.d.ts +89 -0
  56. package/dist/approval/module.d.ts +179 -29
  57. package/dist/approval/projections.d.ts +0 -14
  58. package/dist/approval/projections.js +20 -3
  59. package/dist/approval/signals.d.ts +2 -0
  60. package/dist/approval/signals.js +18 -2
  61. package/dist/cli/cli.js +2 -0
  62. package/dist/cli/commands.js +12 -16
  63. package/dist/client/client.d.ts +1213 -18
  64. package/dist/client/client.js +120 -120
  65. package/dist/client/index.d.ts +1 -1
  66. package/dist/client/index.js +1 -1
  67. package/dist/client/sse.d.ts +13 -0
  68. package/dist/client/sse.js +38 -44
  69. package/dist/cloudflare/alarm-scheduler.d.ts +12 -2
  70. package/dist/cloudflare/alarm-scheduler.js +34 -7
  71. package/dist/cloudflare/durable-object.d.ts +10 -2
  72. package/dist/cloudflare/durable-object.js +59 -28
  73. package/dist/cloudflare/event-store.d.ts +7 -2
  74. package/dist/cloudflare/event-store.js +8 -7
  75. package/dist/cloudflare/index.d.ts +2 -2
  76. package/dist/cloudflare/index.js +2 -2
  77. package/dist/cloudflare/router.d.ts +1 -1
  78. package/dist/cloudflare/router.js +15 -16
  79. package/dist/core/catalog.d.ts +3 -3
  80. package/dist/core/catalog.js +2 -5
  81. package/dist/core/coalesce.js +5 -3
  82. package/dist/core/compose.d.ts +2 -1
  83. package/dist/core/compose.js +19 -2
  84. package/dist/core/debugger-host.d.ts +16 -0
  85. package/dist/core/debugger-host.js +1 -0
  86. package/dist/core/definition-store.d.ts +11 -0
  87. package/dist/core/definition-store.js +6 -0
  88. package/dist/core/effects.d.ts +127 -15
  89. package/dist/core/effects.js +89 -17
  90. package/dist/core/envelope.d.ts +27 -7
  91. package/dist/core/envelope.js +20 -6
  92. package/dist/core/event-codec.d.ts +4 -2
  93. package/dist/core/event-codec.js +10 -5
  94. package/dist/core/event-index.js +1 -3
  95. package/dist/core/fold.d.ts +3 -0
  96. package/dist/core/fold.js +171 -24
  97. package/dist/core/ids.d.ts +5 -0
  98. package/dist/core/ids.js +35 -2
  99. package/dist/core/index.d.ts +7 -1
  100. package/dist/core/index.js +6 -1
  101. package/dist/core/kind.d.ts +22 -0
  102. package/dist/core/kind.js +17 -0
  103. package/dist/core/limits.d.ts +34 -0
  104. package/dist/core/limits.js +46 -0
  105. package/dist/core/match.d.ts +1 -0
  106. package/dist/core/match.js +10 -1
  107. package/dist/core/module-scope.d.ts +22 -20
  108. package/dist/core/module-scope.js +38 -28
  109. package/dist/core/module.d.ts +18 -5
  110. package/dist/core/module.js +4 -0
  111. package/dist/core/projection.d.ts +13 -13
  112. package/dist/core/projection.js +9 -5
  113. package/dist/core/protocol.d.ts +68 -11
  114. package/dist/core/protocol.js +82 -11
  115. package/dist/core/published.d.ts +43 -0
  116. package/dist/core/published.js +44 -0
  117. package/dist/core/replay.d.ts +312 -3
  118. package/dist/core/replay.js +11 -1
  119. package/dist/core/schema.d.ts +11 -20
  120. package/dist/core/schema.js +63 -80
  121. package/dist/core/serialize.js +2 -4
  122. package/dist/core/snapshot-store.d.ts +6 -1
  123. package/dist/core/snapshot-store.js +15 -2
  124. package/dist/core/snapshots.d.ts +5 -1
  125. package/dist/core/snapshots.js +10 -15
  126. package/dist/core/sqlite-store.js +95 -11
  127. package/dist/core/state.d.ts +142 -4
  128. package/dist/core/state.js +78 -0
  129. package/dist/core/store.d.ts +38 -3
  130. package/dist/core/store.js +77 -22
  131. package/dist/core/thread.d.ts +10 -9
  132. package/dist/core/types.d.ts +5 -8
  133. package/dist/core/types.js +28 -24
  134. package/dist/core/validate-event.js +14 -4
  135. package/dist/core/worker-callback.d.ts +17 -0
  136. package/dist/core/worker-callback.js +1 -0
  137. package/dist/debugger/app/assets/index-B3Ah8WAE.css +2 -0
  138. package/dist/debugger/app/assets/index-Qb371t_O.js +22 -0
  139. package/dist/debugger/app/assets/rolldown-runtime-CbXtAM7H.js +1 -0
  140. package/dist/debugger/app/assets/routes-CjtEHgPQ.js +47 -0
  141. package/dist/debugger/app/index.html +14 -0
  142. package/dist/debugger/components/composer.d.ts +17 -0
  143. package/dist/debugger/components/composer.js +25 -0
  144. package/dist/debugger/components/debugger-split.d.ts +2 -1
  145. package/dist/debugger/components/debugger-split.js +2 -2
  146. package/dist/debugger/components/event-inspector.d.ts +2 -1
  147. package/dist/debugger/components/event-inspector.js +25 -16
  148. package/dist/debugger/components/event-stream.d.ts +2 -1
  149. package/dist/debugger/components/event-stream.js +14 -74
  150. package/dist/debugger/components/follow-list.d.ts +19 -0
  151. package/dist/debugger/components/follow-list.js +96 -0
  152. package/dist/debugger/components/json-tree.d.ts +11 -0
  153. package/dist/debugger/components/json-tree.js +120 -0
  154. package/dist/debugger/components/json-view.js +2 -2
  155. package/dist/debugger/components/run-tree.js +53 -20
  156. package/dist/debugger/components/status-dot.d.ts +4 -0
  157. package/dist/debugger/components/status-dot.js +6 -2
  158. package/dist/debugger/context.d.ts +14 -0
  159. package/dist/debugger/context.js +17 -0
  160. package/dist/debugger/contracts.d.ts +7 -4
  161. package/dist/debugger/events/builtin-families.d.ts +3 -0
  162. package/dist/debugger/events/builtin-families.js +9 -0
  163. package/dist/debugger/events/catalog.d.ts +3 -4
  164. package/dist/debugger/events/catalog.js +27 -17
  165. package/dist/debugger/events/protocol-summarize.d.ts +1 -2
  166. package/dist/debugger/events/protocol-summarize.js +42 -24
  167. package/dist/debugger/index.d.ts +20 -6
  168. package/dist/debugger/index.js +19 -5
  169. package/dist/debugger/lib/cn.d.ts +1 -0
  170. package/dist/debugger/lib/cn.js +3 -0
  171. package/dist/debugger/lib/event-meta.d.ts +2 -3
  172. package/dist/debugger/lib/event-meta.js +6 -12
  173. package/dist/debugger/lib/json.d.ts +25 -0
  174. package/dist/debugger/lib/json.js +87 -0
  175. package/dist/debugger/lib/payload.d.ts +7 -0
  176. package/dist/debugger/lib/payload.js +11 -0
  177. package/dist/debugger/lib/time.d.ts +3 -0
  178. package/dist/debugger/lib/time.js +24 -0
  179. package/dist/debugger/plugin.d.ts +36 -0
  180. package/dist/debugger/plugin.js +14 -0
  181. package/dist/debugger/server/index.d.ts +14 -0
  182. package/dist/debugger/server/index.js +114 -0
  183. package/dist/debugger/shell/debugger-shell.d.ts +15 -0
  184. package/dist/debugger/shell/debugger-shell.js +43 -0
  185. package/dist/debugger/shell/definition-key.d.ts +3 -0
  186. package/dist/debugger/shell/definition-key.js +4 -0
  187. package/dist/debugger/shell/events-pane.d.ts +12 -0
  188. package/dist/debugger/shell/events-pane.js +25 -0
  189. package/dist/debugger/shell/projections-panel.d.ts +4 -0
  190. package/dist/debugger/shell/projections-panel.js +59 -0
  191. package/dist/debugger/shell/run-controls.d.ts +4 -0
  192. package/dist/debugger/shell/run-controls.js +72 -0
  193. package/dist/debugger/shell/run-search.d.ts +6 -0
  194. package/dist/debugger/shell/run-search.js +102 -0
  195. package/dist/debugger/shell/run-type-menu.d.ts +6 -0
  196. package/dist/debugger/shell/run-type-menu.js +11 -0
  197. package/dist/debugger/shell/schema-form.d.ts +31 -0
  198. package/dist/debugger/shell/schema-form.js +117 -0
  199. package/dist/debugger/shell/start-form.d.ts +3 -0
  200. package/dist/debugger/shell/start-form.js +75 -0
  201. package/dist/debugger/shell/use-start-run.d.ts +14 -0
  202. package/dist/debugger/shell/use-start-run.js +32 -0
  203. package/dist/debugger/shell/workspace.d.ts +6 -0
  204. package/dist/debugger/shell/workspace.js +15 -0
  205. package/dist/debugger/styles.css +111 -27
  206. package/dist/debugger/ui/button.d.ts +24 -0
  207. package/dist/debugger/ui/button.js +24 -0
  208. package/dist/debugger/ui/command.d.ts +9 -0
  209. package/dist/debugger/ui/command.js +24 -0
  210. package/dist/debugger/ui/dropdown-menu.d.ts +13 -0
  211. package/dist/debugger/ui/dropdown-menu.js +37 -0
  212. package/dist/debugger/ui/panel.d.ts +14 -0
  213. package/dist/debugger/ui/panel.js +16 -0
  214. package/dist/debugger/ui/popover.d.ts +7 -0
  215. package/dist/debugger/ui/popover.js +17 -0
  216. package/dist/debugger/ui/resizable.d.ts +7 -0
  217. package/dist/debugger/ui/resizable.js +14 -0
  218. package/dist/debugger/ui/scroll-area.d.ts +2 -1
  219. package/dist/debugger/ui/scroll-area.js +5 -3
  220. package/dist/debugger/ui/select.d.ts +10 -0
  221. package/dist/debugger/ui/select.js +21 -0
  222. package/dist/debugger/ui/tabs.js +2 -2
  223. package/dist/debugger/ui/textarea.d.ts +3 -0
  224. package/dist/debugger/ui/textarea.js +7 -0
  225. package/dist/evaluator/definitions-store.d.ts +11 -0
  226. package/dist/evaluator/definitions-store.js +8 -0
  227. package/dist/evaluator/definitions.d.ts +18 -0
  228. package/dist/evaluator/definitions.js +4 -0
  229. package/dist/evaluator/effects.d.ts +226 -0
  230. package/dist/evaluator/effects.js +132 -0
  231. package/dist/evaluator/evaluator.d.ts +24 -0
  232. package/dist/evaluator/evaluator.js +67 -0
  233. package/dist/evaluator/events.d.ts +59 -0
  234. package/dist/evaluator/events.js +21 -0
  235. package/dist/evaluator/index.d.ts +11 -0
  236. package/dist/evaluator/index.js +11 -0
  237. package/dist/evaluator/module.d.ts +606 -0
  238. package/dist/evaluator/module.js +25 -0
  239. package/dist/evaluator/projections.d.ts +50 -0
  240. package/dist/evaluator/projections.js +20 -0
  241. package/dist/evaluator/scope.d.ts +59 -0
  242. package/dist/evaluator/scope.js +7 -0
  243. package/dist/evaluator/signals.d.ts +3 -0
  244. package/dist/evaluator/signals.js +17 -0
  245. package/dist/evaluator/threads.d.ts +62 -0
  246. package/dist/evaluator/threads.js +117 -0
  247. package/dist/evaluator/types.d.ts +125 -0
  248. package/dist/evaluator/types.js +51 -0
  249. package/dist/projectors/delivery.d.ts +83 -0
  250. package/dist/projectors/delivery.js +182 -0
  251. package/dist/projectors/index-model.d.ts +1 -1
  252. package/dist/projectors/index-model.js +4 -6
  253. package/dist/projectors/index.d.ts +2 -0
  254. package/dist/projectors/index.js +2 -0
  255. package/dist/projectors/memory.d.ts +1 -1
  256. package/dist/projectors/memory.js +10 -8
  257. package/dist/projectors/postgres.js +44 -58
  258. package/dist/projectors/projector.d.ts +17 -0
  259. package/dist/projectors/projector.js +26 -1
  260. package/dist/projectors/sqlite-delivery.d.ts +4 -0
  261. package/dist/projectors/sqlite-delivery.js +147 -0
  262. package/dist/projectors/sqlite.js +23 -23
  263. package/dist/projectors/with-projectors.d.ts +7 -2
  264. package/dist/projectors/with-projectors.js +27 -28
  265. package/dist/react/notify.js +11 -8
  266. package/dist/react/react.d.ts +2 -3
  267. package/dist/react/react.js +14 -30
  268. package/dist/react/sse.d.ts +1 -1
  269. package/dist/react/sse.js +1 -1
  270. package/dist/react/store.d.ts +3 -3
  271. package/dist/react/store.js +109 -119
  272. package/dist/runtime/cancellation.d.ts +16 -0
  273. package/dist/runtime/cancellation.js +129 -0
  274. package/dist/runtime/deadline-transition-planner.d.ts +31 -0
  275. package/dist/runtime/deadline-transition-planner.js +139 -0
  276. package/dist/runtime/dispatch-effect.d.ts +3 -2
  277. package/dist/runtime/dispatch-effect.js +7 -13
  278. package/dist/runtime/errors.d.ts +51 -0
  279. package/dist/runtime/errors.js +39 -0
  280. package/dist/runtime/{runtime-helpers.d.ts → helpers.d.ts} +24 -4
  281. package/dist/runtime/{runtime-helpers.js → helpers.js} +56 -19
  282. package/dist/runtime/index.d.ts +3 -3
  283. package/dist/runtime/index.js +3 -3
  284. package/dist/runtime/ingress.d.ts +15 -0
  285. package/dist/runtime/ingress.js +42 -0
  286. package/dist/runtime/local-effect-executor.d.ts +21 -0
  287. package/dist/runtime/local-effect-executor.js +137 -0
  288. package/dist/runtime/looms.d.ts +30 -4
  289. package/dist/runtime/looms.js +57 -37
  290. package/dist/runtime/observer.d.ts +45 -0
  291. package/dist/runtime/observer.js +11 -0
  292. package/dist/runtime/repository.d.ts +55 -0
  293. package/dist/runtime/repository.js +293 -0
  294. package/dist/runtime/retry-policy.d.ts +16 -0
  295. package/dist/runtime/retry-policy.js +29 -0
  296. package/dist/runtime/run-execution-context.d.ts +30 -0
  297. package/dist/runtime/run-execution-context.js +56 -0
  298. package/dist/runtime/run-start.d.ts +4 -0
  299. package/dist/runtime/run-start.js +44 -0
  300. package/dist/runtime/runtime.d.ts +6 -87
  301. package/dist/runtime/runtime.js +248 -470
  302. package/dist/runtime/server/auth.d.ts +41 -0
  303. package/dist/runtime/server/auth.js +45 -0
  304. package/dist/runtime/server/debugger-host.d.ts +11 -0
  305. package/dist/runtime/server/debugger-host.js +32 -0
  306. package/dist/runtime/server/fetch-handler.d.ts +18 -0
  307. package/dist/runtime/server/fetch-handler.js +62 -0
  308. package/dist/runtime/server/http.d.ts +38 -0
  309. package/dist/runtime/server/http.js +66 -0
  310. package/dist/runtime/server/route-table.d.ts +55 -0
  311. package/dist/runtime/server/route-table.js +74 -0
  312. package/dist/runtime/server/routes/definitions.d.ts +3 -0
  313. package/dist/runtime/server/routes/definitions.js +20 -0
  314. package/dist/runtime/server/routes/effects.d.ts +3 -0
  315. package/dist/runtime/server/routes/effects.js +59 -0
  316. package/dist/runtime/server/routes/operations.d.ts +3 -0
  317. package/dist/runtime/server/routes/operations.js +14 -0
  318. package/dist/runtime/server/routes/runs.d.ts +3 -0
  319. package/dist/runtime/server/routes/runs.js +199 -0
  320. package/dist/runtime/server.d.ts +4 -8
  321. package/dist/runtime/server.js +6 -211
  322. package/dist/runtime/sse.d.ts +2 -1
  323. package/dist/runtime/sse.js +24 -17
  324. package/dist/runtime/types.d.ts +117 -0
  325. package/dist/runtime/types.js +1 -0
  326. package/dist/runtime/wake-engine.d.ts +20 -0
  327. package/dist/runtime/wake-engine.js +311 -0
  328. package/dist/runtime/wake-scheduler.d.ts +3 -4
  329. package/dist/runtime/wake-scheduler.js +25 -31
  330. package/dist/runtime/worker-callbacks.d.ts +16 -0
  331. package/dist/runtime/worker-callbacks.js +167 -0
  332. package/dist/runtime/worker-effect-dispatch.d.ts +36 -0
  333. package/dist/runtime/worker-effect-dispatch.js +126 -0
  334. package/dist/s2/config.d.ts +1 -1
  335. package/dist/s2/config.js +1 -1
  336. package/dist/s2/lite.js +70 -82
  337. package/dist/s2/pagination.d.ts +15 -0
  338. package/dist/s2/pagination.js +36 -0
  339. package/dist/s2/projector.js +6 -5
  340. package/dist/s2/snapshot-store.js +188 -161
  341. package/dist/s2/store.d.ts +3 -21
  342. package/dist/s2/store.js +71 -165
  343. package/dist/testing/index.d.ts +15 -0
  344. package/dist/testing/index.js +53 -16
  345. package/dist/workflow/debugger/index.d.ts +4 -0
  346. package/dist/workflow/debugger/index.js +11 -0
  347. package/dist/workflow/debugger/nodes-view.d.ts +3 -0
  348. package/dist/workflow/debugger/nodes-view.js +13 -0
  349. package/dist/workflow/debugger/summarize.d.ts +2 -0
  350. package/dist/workflow/debugger/summarize.js +30 -0
  351. package/dist/workflow/definitions-store.d.ts +2 -3
  352. package/dist/workflow/definitions-store.js +2 -2
  353. package/dist/workflow/definitions.d.ts +78 -22
  354. package/dist/workflow/definitions.js +80 -14
  355. package/dist/workflow/effects.d.ts +453 -107
  356. package/dist/workflow/effects.js +214 -115
  357. package/dist/workflow/events.d.ts +149 -5
  358. package/dist/workflow/events.js +27 -5
  359. package/dist/workflow/graph.d.ts +56 -0
  360. package/dist/workflow/graph.js +207 -0
  361. package/dist/workflow/index.d.ts +1 -0
  362. package/dist/workflow/index.js +1 -0
  363. package/dist/workflow/module.d.ts +1047 -266
  364. package/dist/workflow/projections.d.ts +14 -12
  365. package/dist/workflow/projections.js +30 -8
  366. package/dist/workflow/scope.d.ts +146 -4
  367. package/dist/workflow/threads.d.ts +383 -155
  368. package/dist/workflow/threads.js +308 -110
  369. package/package.json +26 -2
  370. package/dist/debugger/events/domain-summarize.d.ts +0 -3
  371. package/dist/debugger/events/domain-summarize.js +0 -107
  372. package/dist/debugger/events/family.d.ts +0 -8
  373. package/dist/debugger/events/family.js +0 -44
  374. package/dist/runtime/events-api.d.ts +0 -4
  375. package/dist/runtime/events-api.js +0 -84
@@ -1,6 +1,6 @@
1
1
  import type { StandardSchemaV1 } from '@standard-schema/spec';
2
2
  import type { Schema } from 'effect';
3
- import type { InferDefinedSchema, JsonValue, RuntimeEffect, SchemaInput } from '@swirls/looms/core';
3
+ import { type JsonValue, type RuntimeEffect, type SchemaInput } from '@swirls/looms/core';
4
4
  import type { StopWhen } from './stop-when';
5
5
  import type { Message, ToolCall } from './types';
6
6
  export interface ToolContext {
@@ -12,8 +12,7 @@ export interface FunctionTool<TName extends string = string, TInput = JsonValue,
12
12
  readonly kind: 'function';
13
13
  readonly name: TName;
14
14
  readonly description: string;
15
- readonly input?: StandardSchemaV1<any, TInput> | Schema.Schema<TInput>;
16
- readonly inputSchema?: JsonValue;
15
+ readonly input?: StandardSchemaV1<any, TInput> | Schema.ConstraintDecoder<TInput>;
17
16
  handler(input: TInput, ctx: ToolContext): Promise<TOutput> | TOutput;
18
17
  }
19
18
  export interface ThreadTool {
@@ -21,12 +20,13 @@ export interface ThreadTool {
21
20
  readonly name: string;
22
21
  readonly description: string;
23
22
  readonly input?: SchemaInput;
24
- readonly inputSchema?: JsonValue;
25
23
  readonly childKind: string;
26
24
  readonly childName: string;
25
+ readonly childVersion: string;
27
26
  readonly child: {
28
27
  kind: string;
29
28
  name: string;
29
+ version?: string;
30
30
  };
31
31
  mapInput?(input: JsonValue): JsonValue;
32
32
  }
@@ -35,7 +35,6 @@ export interface EffectsTool {
35
35
  readonly name: string;
36
36
  readonly description: string;
37
37
  readonly input?: SchemaInput;
38
- readonly inputSchema?: JsonValue;
39
38
  effects(input: JsonValue): RuntimeEffect[];
40
39
  waitOn?: {
41
40
  type: string | readonly string[];
@@ -46,6 +45,7 @@ export type ToolLike = FunctionTool | ThreadTool | EffectsTool;
46
45
  export type AgentToolEntry = ToolLike | {
47
46
  kind: string;
48
47
  name: string;
48
+ version?: string;
49
49
  instructions?: string;
50
50
  description?: string;
51
51
  input?: SchemaInput;
@@ -57,6 +57,7 @@ export interface AgentTurnContext<TInput = JsonValue> {
57
57
  readonly input: TInput;
58
58
  readonly tools: ToolLike[];
59
59
  readonly instructions: string;
60
+ readonly signal?: AbortSignal;
60
61
  }
61
62
  export interface AgentTurnResult<TOutput extends JsonValue = JsonValue> {
62
63
  message: Message;
@@ -71,9 +72,11 @@ export interface AgentTurnResult<TOutput extends JsonValue = JsonValue> {
71
72
  export interface AgentDefinition<TName extends string = string, TInput = JsonValue, TOutput extends JsonValue = JsonValue> {
72
73
  readonly kind: 'agent';
73
74
  readonly name: TName;
75
+ readonly version: string;
76
+ readonly description?: string;
74
77
  readonly model?: string;
75
78
  readonly instructions: string;
76
- readonly input?: StandardSchemaV1<any, TInput> | Schema.Schema<TInput>;
79
+ readonly input?: StandardSchemaV1<any, TInput> | Schema.ConstraintDecoder<TInput>;
77
80
  readonly tools?: ToolLike[];
78
81
  readonly maxTurns?: number;
79
82
  readonly conversational?: boolean;
@@ -81,33 +84,37 @@ export interface AgentDefinition<TName extends string = string, TInput = JsonVal
81
84
  runTurn?(ctx: AgentTurnContext<TInput>): Promise<AgentTurnResult<TOutput>> | AgentTurnResult<TOutput>;
82
85
  }
83
86
  export type AnyAgentDefinition = AgentDefinition;
87
+ export interface AgentSessionDefinition<TName extends string = string> {
88
+ readonly kind: 'agent-session';
89
+ readonly name: TName;
90
+ readonly version: string;
91
+ readonly description?: string;
92
+ /** The agent definition is pinned when the session definition is created. */
93
+ readonly agent: Pick<AgentDefinition, 'kind' | 'name' | 'version'>;
94
+ /** Max idle milliseconds before parking. Zero waits indefinitely. */
95
+ readonly idleTimeoutMs: number;
96
+ }
97
+ export declare function defineAgentSession<TName extends string>(def: {
98
+ readonly name: TName;
99
+ readonly description?: string;
100
+ readonly agent: Pick<AgentDefinition, 'kind' | 'name' | 'version'>;
101
+ readonly version?: string;
102
+ readonly idleTimeoutMs?: number;
103
+ }): AgentSessionDefinition<TName>;
84
104
  export declare function normalizeTools(tools?: ReadonlyArray<AgentToolEntry>): ToolLike[];
85
- export declare function defineTool<TName extends string, TSchema = undefined, TInput = InferDefinedSchema<TSchema>, TOutput extends JsonValue = JsonValue>(def: {
86
- name: TName;
87
- description: string;
88
- input?: TSchema;
89
- inputSchema?: JsonValue;
90
- handler: (input: TInput, ctx: ToolContext) => Promise<TOutput> | TOutput;
91
- }): FunctionTool<TName, TInput, TOutput>;
92
- export declare function defineAgent<TName extends string, TSchema = undefined, TInput = InferDefinedSchema<TSchema>, TOutput extends JsonValue = JsonValue>(def: {
93
- name: TName;
94
- model?: string;
95
- instructions: string;
96
- input?: TSchema;
97
- tools?: AgentToolEntry[];
98
- maxTurns?: number;
99
- conversational?: boolean;
100
- stopWhen?: StopWhen;
101
- runTurn?: (ctx: AgentTurnContext<TInput>) => Promise<AgentTurnResult<TOutput>> | AgentTurnResult<TOutput>;
105
+ export declare function defineTool<TName extends string, TInput = JsonValue, TOutput extends JsonValue = JsonValue>(def: Omit<FunctionTool<TName, TInput, TOutput>, 'kind'>): FunctionTool<TName, TInput, TOutput>;
106
+ export declare function defineAgent<TName extends string, TInput = JsonValue, TOutput extends JsonValue = JsonValue>(def: Omit<AgentDefinition<TName, TInput, TOutput>, 'kind' | 'version' | 'tools'> & {
107
+ readonly version?: string;
108
+ readonly tools?: AgentToolEntry[];
102
109
  }): AgentDefinition<TName, TInput, TOutput>;
103
110
  export declare function asThreadTool(def: {
104
111
  name?: string;
105
112
  description?: string;
106
113
  input?: SchemaInput;
107
- inputSchema?: JsonValue;
108
114
  child: {
109
115
  kind: string;
110
116
  name: string;
117
+ version?: string;
111
118
  };
112
119
  mapInput?: (input: JsonValue) => JsonValue;
113
120
  }): ThreadTool;
@@ -115,27 +122,38 @@ export declare function asAgentTool(def: {
115
122
  name?: string;
116
123
  description?: string;
117
124
  input?: SchemaInput;
118
- inputSchema?: JsonValue;
119
125
  agent: {
120
126
  kind: 'agent';
121
127
  name: string;
128
+ version?: string;
122
129
  instructions?: string;
123
130
  input?: SchemaInput;
124
- inputSchema?: JsonValue;
125
131
  };
126
132
  mapInput?: (input: JsonValue) => JsonValue;
127
133
  }): ThreadTool;
134
+ type EvaluatorToolTarget = {
135
+ kind: 'evaluator';
136
+ name: string;
137
+ description?: string;
138
+ input?: SchemaInput;
139
+ };
140
+ export declare function asEvaluatorTool(def: {
141
+ name?: string;
142
+ description?: string;
143
+ input?: SchemaInput;
144
+ evaluator: EvaluatorToolTarget;
145
+ mapInput?: (input: JsonValue) => JsonValue;
146
+ }): ThreadTool;
128
147
  export declare function asWorkflowTool(def: {
129
148
  name?: string;
130
149
  description?: string;
131
150
  input?: SchemaInput;
132
- inputSchema?: JsonValue;
133
151
  workflow: {
134
152
  kind: 'workflow';
135
153
  name: string;
154
+ version?: string;
136
155
  description?: string;
137
156
  input?: SchemaInput;
138
- inputSchema?: JsonValue;
139
157
  };
140
158
  mapInput?: (input: JsonValue) => JsonValue;
141
159
  }): ThreadTool;
@@ -143,10 +161,10 @@ export declare function asEffectsTool(def: {
143
161
  name: string;
144
162
  description: string;
145
163
  input?: SchemaInput;
146
- inputSchema?: JsonValue;
147
164
  effects: (input: JsonValue) => RuntimeEffect[];
148
165
  waitOn?: {
149
166
  type: string | readonly string[];
150
167
  match?: JsonValue;
151
168
  };
152
169
  }): EffectsTool;
170
+ export {};
@@ -1,7 +1,30 @@
1
+ import { DEFAULT_DEFINITION_VERSION, } from '@swirls/looms/core';
2
+ export function defineAgentSession(def) {
3
+ const definition = {
4
+ kind: 'agent-session',
5
+ name: def.name,
6
+ version: def.version ?? DEFAULT_DEFINITION_VERSION,
7
+ agent: {
8
+ kind: 'agent',
9
+ name: def.agent.name,
10
+ version: def.agent.version,
11
+ },
12
+ idleTimeoutMs: Math.max(0, def.idleTimeoutMs ?? 0),
13
+ };
14
+ if (def.description === undefined) {
15
+ return definition;
16
+ }
17
+ return { ...definition, description: def.description };
18
+ }
1
19
  export function normalizeTools(tools = []) {
2
20
  return tools.map((entry) => {
3
- if (entry.kind === 'function' || entry.kind === 'thread' || entry.kind === 'effects') {
4
- // SAFETY: kind discriminant matches ToolLike.
21
+ if (entry.kind === 'function' && 'handler' in entry) {
22
+ return entry;
23
+ }
24
+ if (entry.kind === 'thread' && 'child' in entry) {
25
+ return entry;
26
+ }
27
+ if (entry.kind === 'effects' && 'effects' in entry) {
5
28
  return entry;
6
29
  }
7
30
  return asThreadTool({
@@ -16,15 +39,13 @@ export function normalizeTools(tools = []) {
16
39
  });
17
40
  }
18
41
  export function defineTool(def) {
19
- // SAFETY: factory fields match FunctionTool.
20
- return { kind: 'function', ...def, input: def.input };
42
+ return { kind: 'function', ...def };
21
43
  }
22
44
  export function defineAgent(def) {
23
- // SAFETY: factory fields match AgentDefinition.
24
45
  return {
25
46
  kind: 'agent',
26
47
  ...def,
27
- input: def.input,
48
+ version: def.version ?? DEFAULT_DEFINITION_VERSION,
28
49
  tools: def.tools ? normalizeTools(def.tools) : undefined,
29
50
  };
30
51
  }
@@ -34,9 +55,9 @@ export function asThreadTool(def) {
34
55
  name: def.name ?? def.child.name,
35
56
  description: def.description ?? def.child.name,
36
57
  input: def.input,
37
- inputSchema: def.inputSchema,
38
58
  childKind: def.child.kind,
39
59
  childName: def.child.name,
60
+ childVersion: def.child.version ?? DEFAULT_DEFINITION_VERSION,
40
61
  child: def.child,
41
62
  mapInput: def.mapInput,
42
63
  };
@@ -46,8 +67,16 @@ export function asAgentTool(def) {
46
67
  name: def.name,
47
68
  description: def.description ?? def.agent.instructions,
48
69
  input: def.input ?? def.agent.input,
49
- inputSchema: def.inputSchema ?? def.agent.inputSchema,
50
- child: { kind: 'agent', name: def.agent.name },
70
+ child: { kind: 'agent', name: def.agent.name, version: def.agent.version },
71
+ mapInput: def.mapInput,
72
+ });
73
+ }
74
+ export function asEvaluatorTool(def) {
75
+ return asThreadTool({
76
+ name: def.name,
77
+ description: def.description ?? def.evaluator.description,
78
+ input: def.input ?? def.evaluator.input,
79
+ child: { kind: 'evaluator', name: def.evaluator.name },
51
80
  mapInput: def.mapInput,
52
81
  });
53
82
  }
@@ -56,8 +85,7 @@ export function asWorkflowTool(def) {
56
85
  name: def.name,
57
86
  description: def.description ?? def.workflow.description,
58
87
  input: def.input ?? def.workflow.input,
59
- inputSchema: def.inputSchema ?? def.workflow.inputSchema,
60
- child: { kind: 'workflow', name: def.workflow.name },
88
+ child: { kind: 'workflow', name: def.workflow.name, version: def.workflow.version },
61
89
  mapInput: def.mapInput,
62
90
  });
63
91
  }
@@ -67,7 +95,6 @@ export function asEffectsTool(def) {
67
95
  name: def.name,
68
96
  description: def.description,
69
97
  input: def.input,
70
- inputSchema: def.inputSchema,
71
98
  effects: def.effects,
72
99
  waitOn: def.waitOn,
73
100
  };