@relayflows/surface 2.0.9 → 2.0.11

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 (343) hide show
  1. package/README.md +3 -2
  2. package/dist/completion.d.ts +2 -0
  3. package/dist/completion.d.ts.map +1 -1
  4. package/dist/context.d.ts +27 -6
  5. package/dist/context.d.ts.map +1 -1
  6. package/dist/effect-transport.d.ts +22 -0
  7. package/dist/effect-transport.d.ts.map +1 -0
  8. package/dist/effect-transport.js +42 -0
  9. package/dist/effect-transport.js.map +1 -0
  10. package/dist/flow.d.ts +30 -17
  11. package/dist/flow.d.ts.map +1 -1
  12. package/dist/flow.js +58 -73
  13. package/dist/flow.js.map +1 -1
  14. package/dist/helper-clients.d.ts +86 -0
  15. package/dist/helper-clients.d.ts.map +1 -0
  16. package/dist/helper-clients.js +30 -0
  17. package/dist/helper-clients.js.map +1 -0
  18. package/dist/helpers/airtable.d.ts +4 -0
  19. package/dist/helpers/airtable.d.ts.map +1 -0
  20. package/dist/helpers/airtable.js +5 -0
  21. package/dist/helpers/airtable.js.map +1 -0
  22. package/dist/helpers/asana.d.ts +5 -0
  23. package/dist/helpers/asana.d.ts.map +1 -0
  24. package/dist/helpers/asana.js +6 -0
  25. package/dist/helpers/asana.js.map +1 -0
  26. package/dist/helpers/azure-blob.d.ts +5 -0
  27. package/dist/helpers/azure-blob.d.ts.map +1 -0
  28. package/dist/helpers/azure-blob.js +6 -0
  29. package/dist/helpers/azure-blob.js.map +1 -0
  30. package/dist/helpers/box.d.ts +5 -0
  31. package/dist/helpers/box.d.ts.map +1 -0
  32. package/dist/helpers/box.js +6 -0
  33. package/dist/helpers/box.js.map +1 -0
  34. package/dist/helpers/calendly.d.ts +5 -0
  35. package/dist/helpers/calendly.d.ts.map +1 -0
  36. package/dist/helpers/calendly.js +6 -0
  37. package/dist/helpers/calendly.js.map +1 -0
  38. package/dist/helpers/clickup.d.ts +5 -0
  39. package/dist/helpers/clickup.d.ts.map +1 -0
  40. package/dist/helpers/clickup.js +6 -0
  41. package/dist/helpers/clickup.js.map +1 -0
  42. package/dist/helpers/clients.d.ts +3 -0
  43. package/dist/helpers/clients.d.ts.map +1 -0
  44. package/dist/helpers/clients.js +46 -0
  45. package/dist/helpers/clients.js.map +1 -0
  46. package/dist/helpers/cloudflare.d.ts +5 -0
  47. package/dist/helpers/cloudflare.d.ts.map +1 -0
  48. package/dist/helpers/cloudflare.js +6 -0
  49. package/dist/helpers/cloudflare.js.map +1 -0
  50. package/dist/helpers/confluence.d.ts +5 -0
  51. package/dist/helpers/confluence.d.ts.map +1 -0
  52. package/dist/helpers/confluence.js +6 -0
  53. package/dist/helpers/confluence.js.map +1 -0
  54. package/dist/helpers/daytona.d.ts +5 -0
  55. package/dist/helpers/daytona.d.ts.map +1 -0
  56. package/dist/helpers/daytona.js +6 -0
  57. package/dist/helpers/daytona.js.map +1 -0
  58. package/dist/helpers/docker-hub.d.ts +4 -0
  59. package/dist/helpers/docker-hub.d.ts.map +1 -0
  60. package/dist/helpers/docker-hub.js +5 -0
  61. package/dist/helpers/docker-hub.js.map +1 -0
  62. package/dist/helpers/dropbox.d.ts +5 -0
  63. package/dist/helpers/dropbox.d.ts.map +1 -0
  64. package/dist/helpers/dropbox.js +6 -0
  65. package/dist/helpers/dropbox.js.map +1 -0
  66. package/dist/helpers/fathom.d.ts +4 -0
  67. package/dist/helpers/fathom.d.ts.map +1 -0
  68. package/dist/helpers/fathom.js +5 -0
  69. package/dist/helpers/fathom.js.map +1 -0
  70. package/dist/helpers/gcp.d.ts +4 -0
  71. package/dist/helpers/gcp.d.ts.map +1 -0
  72. package/dist/helpers/gcp.js +5 -0
  73. package/dist/helpers/gcp.js.map +1 -0
  74. package/dist/helpers/gcs.d.ts +5 -0
  75. package/dist/helpers/gcs.d.ts.map +1 -0
  76. package/dist/helpers/gcs.js +6 -0
  77. package/dist/helpers/gcs.js.map +1 -0
  78. package/dist/helpers/github.d.ts +5 -0
  79. package/dist/helpers/github.d.ts.map +1 -0
  80. package/dist/helpers/github.js +6 -0
  81. package/dist/helpers/github.js.map +1 -0
  82. package/dist/helpers/gitlab.d.ts +5 -0
  83. package/dist/helpers/gitlab.d.ts.map +1 -0
  84. package/dist/helpers/gitlab.js +6 -0
  85. package/dist/helpers/gitlab.js.map +1 -0
  86. package/dist/helpers/gmail.d.ts +5 -0
  87. package/dist/helpers/gmail.d.ts.map +1 -0
  88. package/dist/helpers/gmail.js +6 -0
  89. package/dist/helpers/gmail.js.map +1 -0
  90. package/dist/helpers/google-calendar.d.ts +5 -0
  91. package/dist/helpers/google-calendar.d.ts.map +1 -0
  92. package/dist/helpers/google-calendar.js +6 -0
  93. package/dist/helpers/google-calendar.js.map +1 -0
  94. package/dist/helpers/google-drive.d.ts +5 -0
  95. package/dist/helpers/google-drive.d.ts.map +1 -0
  96. package/dist/helpers/google-drive.js +6 -0
  97. package/dist/helpers/google-drive.js.map +1 -0
  98. package/dist/helpers/granola.d.ts +5 -0
  99. package/dist/helpers/granola.d.ts.map +1 -0
  100. package/dist/helpers/granola.js +6 -0
  101. package/dist/helpers/granola.js.map +1 -0
  102. package/dist/helpers/hubspot.d.ts +5 -0
  103. package/dist/helpers/hubspot.d.ts.map +1 -0
  104. package/dist/helpers/hubspot.js +6 -0
  105. package/dist/helpers/hubspot.js.map +1 -0
  106. package/dist/helpers/index.d.ts +155 -0
  107. package/dist/helpers/index.d.ts.map +1 -0
  108. package/dist/helpers/index.js +105 -0
  109. package/dist/helpers/index.js.map +1 -0
  110. package/dist/helpers/intercom.d.ts +5 -0
  111. package/dist/helpers/intercom.d.ts.map +1 -0
  112. package/dist/helpers/intercom.js +6 -0
  113. package/dist/helpers/intercom.js.map +1 -0
  114. package/dist/helpers/jira.d.ts +5 -0
  115. package/dist/helpers/jira.d.ts.map +1 -0
  116. package/dist/helpers/jira.js +6 -0
  117. package/dist/helpers/jira.js.map +1 -0
  118. package/dist/helpers/linear.d.ts +5 -0
  119. package/dist/helpers/linear.d.ts.map +1 -0
  120. package/dist/helpers/linear.js +6 -0
  121. package/dist/helpers/linear.js.map +1 -0
  122. package/dist/helpers/mailgun.d.ts +5 -0
  123. package/dist/helpers/mailgun.d.ts.map +1 -0
  124. package/dist/helpers/mailgun.js +6 -0
  125. package/dist/helpers/mailgun.js.map +1 -0
  126. package/dist/helpers/mixpanel.d.ts +5 -0
  127. package/dist/helpers/mixpanel.d.ts.map +1 -0
  128. package/dist/helpers/mixpanel.js +6 -0
  129. package/dist/helpers/mixpanel.js.map +1 -0
  130. package/dist/helpers/neon.d.ts +4 -0
  131. package/dist/helpers/neon.d.ts.map +1 -0
  132. package/dist/helpers/neon.js +5 -0
  133. package/dist/helpers/neon.js.map +1 -0
  134. package/dist/helpers/notion.d.ts +5 -0
  135. package/dist/helpers/notion.d.ts.map +1 -0
  136. package/dist/helpers/notion.js +6 -0
  137. package/dist/helpers/notion.js.map +1 -0
  138. package/dist/helpers/onedrive.d.ts +5 -0
  139. package/dist/helpers/onedrive.d.ts.map +1 -0
  140. package/dist/helpers/onedrive.js +6 -0
  141. package/dist/helpers/onedrive.js.map +1 -0
  142. package/dist/helpers/pipedrive.d.ts +5 -0
  143. package/dist/helpers/pipedrive.d.ts.map +1 -0
  144. package/dist/helpers/pipedrive.js +6 -0
  145. package/dist/helpers/pipedrive.js.map +1 -0
  146. package/dist/helpers/postgres.d.ts +5 -0
  147. package/dist/helpers/postgres.d.ts.map +1 -0
  148. package/dist/helpers/postgres.js +6 -0
  149. package/dist/helpers/postgres.js.map +1 -0
  150. package/dist/helpers/posthog.d.ts +4 -0
  151. package/dist/helpers/posthog.d.ts.map +1 -0
  152. package/dist/helpers/posthog.js +5 -0
  153. package/dist/helpers/posthog.js.map +1 -0
  154. package/dist/helpers/providers.d.ts +252 -0
  155. package/dist/helpers/providers.d.ts.map +1 -0
  156. package/dist/helpers/providers.js +305 -0
  157. package/dist/helpers/providers.js.map +1 -0
  158. package/dist/helpers/ramp.d.ts +7 -0
  159. package/dist/helpers/ramp.d.ts.map +1 -0
  160. package/dist/helpers/ramp.js +7 -0
  161. package/dist/helpers/ramp.js.map +1 -0
  162. package/dist/helpers/recall.d.ts +5 -0
  163. package/dist/helpers/recall.d.ts.map +1 -0
  164. package/dist/helpers/recall.js +6 -0
  165. package/dist/helpers/recall.js.map +1 -0
  166. package/dist/helpers/reddit.d.ts +5 -0
  167. package/dist/helpers/reddit.d.ts.map +1 -0
  168. package/dist/helpers/reddit.js +6 -0
  169. package/dist/helpers/reddit.js.map +1 -0
  170. package/dist/helpers/redis.d.ts +5 -0
  171. package/dist/helpers/redis.d.ts.map +1 -0
  172. package/dist/helpers/redis.js +6 -0
  173. package/dist/helpers/redis.js.map +1 -0
  174. package/dist/helpers/s3.d.ts +5 -0
  175. package/dist/helpers/s3.d.ts.map +1 -0
  176. package/dist/helpers/s3.js +6 -0
  177. package/dist/helpers/s3.js.map +1 -0
  178. package/dist/helpers/salesforce.d.ts +5 -0
  179. package/dist/helpers/salesforce.d.ts.map +1 -0
  180. package/dist/helpers/salesforce.js +6 -0
  181. package/dist/helpers/salesforce.js.map +1 -0
  182. package/dist/helpers/segment.d.ts +4 -0
  183. package/dist/helpers/segment.d.ts.map +1 -0
  184. package/dist/helpers/segment.js +5 -0
  185. package/dist/helpers/segment.js.map +1 -0
  186. package/dist/helpers/sendgrid.d.ts +5 -0
  187. package/dist/helpers/sendgrid.d.ts.map +1 -0
  188. package/dist/helpers/sendgrid.js +6 -0
  189. package/dist/helpers/sendgrid.js.map +1 -0
  190. package/dist/helpers/sharepoint.d.ts +5 -0
  191. package/dist/helpers/sharepoint.d.ts.map +1 -0
  192. package/dist/helpers/sharepoint.js +6 -0
  193. package/dist/helpers/sharepoint.js.map +1 -0
  194. package/dist/helpers/shopify.d.ts +4 -0
  195. package/dist/helpers/shopify.d.ts.map +1 -0
  196. package/dist/helpers/shopify.js +5 -0
  197. package/dist/helpers/shopify.js.map +1 -0
  198. package/dist/helpers/shortcut.d.ts +5 -0
  199. package/dist/helpers/shortcut.d.ts.map +1 -0
  200. package/dist/helpers/shortcut.js +6 -0
  201. package/dist/helpers/shortcut.js.map +1 -0
  202. package/dist/helpers/slack.d.ts +17 -0
  203. package/dist/helpers/slack.d.ts.map +1 -0
  204. package/dist/helpers/slack.js +4 -0
  205. package/dist/helpers/slack.js.map +1 -0
  206. package/dist/helpers/stripe.d.ts +5 -0
  207. package/dist/helpers/stripe.d.ts.map +1 -0
  208. package/dist/helpers/stripe.js +6 -0
  209. package/dist/helpers/stripe.js.map +1 -0
  210. package/dist/helpers/teams.d.ts +5 -0
  211. package/dist/helpers/teams.d.ts.map +1 -0
  212. package/dist/helpers/teams.js +6 -0
  213. package/dist/helpers/teams.js.map +1 -0
  214. package/dist/helpers/telegram.d.ts +5 -0
  215. package/dist/helpers/telegram.d.ts.map +1 -0
  216. package/dist/helpers/telegram.js +6 -0
  217. package/dist/helpers/telegram.js.map +1 -0
  218. package/dist/helpers/webhook-server.d.ts +4 -0
  219. package/dist/helpers/webhook-server.d.ts.map +1 -0
  220. package/dist/helpers/webhook-server.js +5 -0
  221. package/dist/helpers/webhook-server.js.map +1 -0
  222. package/dist/helpers/x.d.ts +4 -0
  223. package/dist/helpers/x.d.ts.map +1 -0
  224. package/dist/helpers/x.js +5 -0
  225. package/dist/helpers/x.js.map +1 -0
  226. package/dist/helpers/zendesk.d.ts +5 -0
  227. package/dist/helpers/zendesk.d.ts.map +1 -0
  228. package/dist/helpers/zendesk.js +6 -0
  229. package/dist/helpers/zendesk.js.map +1 -0
  230. package/dist/index.d.ts +11 -4
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +3 -0
  233. package/dist/index.js.map +1 -1
  234. package/dist/memory.d.ts +19 -0
  235. package/dist/memory.d.ts.map +1 -0
  236. package/dist/memory.js +2 -0
  237. package/dist/memory.js.map +1 -0
  238. package/dist/plugin-contract.d.ts +5 -0
  239. package/dist/plugin-contract.d.ts.map +1 -0
  240. package/dist/plugin-contract.js +2 -0
  241. package/dist/plugin-contract.js.map +1 -0
  242. package/dist/provider-trigger.d.ts +13 -0
  243. package/dist/provider-trigger.d.ts.map +1 -0
  244. package/dist/provider-trigger.js +18 -0
  245. package/dist/provider-trigger.js.map +1 -0
  246. package/dist/runtime.d.ts +6 -1
  247. package/dist/runtime.d.ts.map +1 -1
  248. package/dist/runtime.js +5 -0
  249. package/dist/runtime.js.map +1 -1
  250. package/dist/slack.d.ts +34 -0
  251. package/dist/slack.d.ts.map +1 -0
  252. package/dist/slack.js +17 -0
  253. package/dist/slack.js.map +1 -0
  254. package/dist/step.d.ts +43 -1
  255. package/dist/step.d.ts.map +1 -1
  256. package/dist/triggers/github.d.ts +8 -0
  257. package/dist/triggers/github.d.ts.map +1 -0
  258. package/dist/triggers/github.js +17 -0
  259. package/dist/triggers/github.js.map +1 -0
  260. package/dist/triggers/index.d.ts +8 -0
  261. package/dist/triggers/index.d.ts.map +1 -0
  262. package/dist/triggers/index.js +9 -0
  263. package/dist/triggers/index.js.map +1 -0
  264. package/dist/triggers/slack.d.ts +8 -0
  265. package/dist/triggers/slack.d.ts.map +1 -0
  266. package/dist/triggers/slack.js +17 -0
  267. package/dist/triggers/slack.js.map +1 -0
  268. package/dist/triggers.d.ts +15 -0
  269. package/dist/triggers.d.ts.map +1 -0
  270. package/dist/triggers.js +43 -0
  271. package/dist/triggers.js.map +1 -0
  272. package/package.json +21 -2
  273. package/src/completion.ts +3 -0
  274. package/src/context.ts +26 -6
  275. package/src/effect-transport.ts +59 -0
  276. package/src/flow.ts +77 -106
  277. package/src/helper-clients.ts +30 -0
  278. package/src/helpers/README.md +42 -0
  279. package/src/helpers/airtable.ts +9 -0
  280. package/src/helpers/asana.ts +10 -0
  281. package/src/helpers/azure-blob.ts +10 -0
  282. package/src/helpers/box.ts +10 -0
  283. package/src/helpers/calendly.ts +10 -0
  284. package/src/helpers/clickup.ts +10 -0
  285. package/src/helpers/clients.ts +48 -0
  286. package/src/helpers/cloudflare.ts +10 -0
  287. package/src/helpers/confluence.ts +10 -0
  288. package/src/helpers/daytona.ts +10 -0
  289. package/src/helpers/docker-hub.ts +9 -0
  290. package/src/helpers/dropbox.ts +10 -0
  291. package/src/helpers/fathom.ts +9 -0
  292. package/src/helpers/gcp.ts +9 -0
  293. package/src/helpers/gcs.ts +10 -0
  294. package/src/helpers/github.ts +10 -0
  295. package/src/helpers/gitlab.ts +10 -0
  296. package/src/helpers/gmail.ts +10 -0
  297. package/src/helpers/google-calendar.ts +10 -0
  298. package/src/helpers/google-drive.ts +10 -0
  299. package/src/helpers/granola.ts +10 -0
  300. package/src/helpers/hubspot.ts +10 -0
  301. package/src/helpers/index.ts +212 -0
  302. package/src/helpers/intercom.ts +10 -0
  303. package/src/helpers/jira.ts +10 -0
  304. package/src/helpers/linear.ts +10 -0
  305. package/src/helpers/mailgun.ts +10 -0
  306. package/src/helpers/mixpanel.ts +10 -0
  307. package/src/helpers/neon.ts +9 -0
  308. package/src/helpers/notion.ts +10 -0
  309. package/src/helpers/onedrive.ts +10 -0
  310. package/src/helpers/pipedrive.ts +10 -0
  311. package/src/helpers/postgres.ts +10 -0
  312. package/src/helpers/posthog.ts +9 -0
  313. package/src/helpers/providers.ts +305 -0
  314. package/src/helpers/ramp.ts +12 -0
  315. package/src/helpers/recall.ts +10 -0
  316. package/src/helpers/reddit.ts +10 -0
  317. package/src/helpers/redis.ts +10 -0
  318. package/src/helpers/s3.ts +10 -0
  319. package/src/helpers/salesforce.ts +10 -0
  320. package/src/helpers/segment.ts +9 -0
  321. package/src/helpers/sendgrid.ts +10 -0
  322. package/src/helpers/sharepoint.ts +10 -0
  323. package/src/helpers/shopify.ts +9 -0
  324. package/src/helpers/shortcut.ts +10 -0
  325. package/src/helpers/slack.ts +16 -0
  326. package/src/helpers/stripe.ts +10 -0
  327. package/src/helpers/teams.ts +10 -0
  328. package/src/helpers/telegram.ts +10 -0
  329. package/src/helpers/webhook-server.ts +9 -0
  330. package/src/helpers/x.ts +9 -0
  331. package/src/helpers/zendesk.ts +10 -0
  332. package/src/index.ts +26 -3
  333. package/src/memory.ts +20 -0
  334. package/src/plugin-contract.ts +5 -0
  335. package/src/provider-trigger.ts +26 -0
  336. package/src/runtime.ts +8 -0
  337. package/src/slack.ts +47 -0
  338. package/src/step.ts +52 -1
  339. package/src/triggers/README.md +75 -0
  340. package/src/triggers/github.ts +19 -0
  341. package/src/triggers/index.ts +10 -0
  342. package/src/triggers/slack.ts +19 -0
  343. package/src/triggers.ts +49 -0
package/README.md CHANGED
@@ -26,8 +26,9 @@ lifecycle contract are in `docs/SURFACE.md`, "The authored operation lifecycle".
26
26
  This is an in-repository foundation, not a registry-published package. The
27
27
  repository's `flows run` command can execute a directly authored `.flow.ts`
28
28
  with required JSON input. Durable authored-root resume remains tracked in issue
29
- #132. Resident trigger handlers (`flow.on(...)`) are gate-2 work and are not yet
30
- part of this package.
29
+ #132. `flow.on(...)` records webhook and generated provider subscriptions.
30
+ See [provider event triggers](src/triggers/README.md) for declarations, inbox
31
+ envelopes, and executor bindings; deploying handler bodies is tracked in #301.
31
32
 
32
33
  The repository pins Bun through `surface/bun.lock`. From a fresh checkout:
33
34
 
@@ -4,4 +4,6 @@ export type CompletionReason = (typeof COMPLETION_REASONS)[number];
4
4
  /** The closed run completion vocabulary from the journal protocol. */
5
5
  export declare const RUN_COMPLETION_REASONS: readonly ["success", "step_failed", "canceled", "budget_exceeded"];
6
6
  export type RunCompletionReason = (typeof RUN_COMPLETION_REASONS)[number];
7
+ /** Authored outcomes include a human handoff; it is not a kernel terminal reason. */
8
+ export type FlowCompletionReason = RunCompletionReason | 'needs_human';
7
9
  //# sourceMappingURL=completion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,wJAUrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,oEAKzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,wJAUrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,oEAKzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,qFAAqF;AACrF,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,aAAa,CAAC"}
package/dist/context.d.ts CHANGED
@@ -1,5 +1,7 @@
1
+ import type { Helpers } from "./helpers/index.js";
2
+ import type { MemoryHelper } from "./memory.js";
1
3
  import type { CloudHelper } from "./cloud.js";
2
- import type { RunCompletionReason } from "./completion.js";
4
+ import type { FlowCompletionReason } from "./completion.js";
3
5
  import type { Step } from "./step.js";
4
6
  export interface AgentResult {
5
7
  summary: string;
@@ -8,9 +10,21 @@ export interface AgentResult {
8
10
  export interface AgentOptions {
9
11
  task: string;
10
12
  workspace?: string;
11
- /** Overrides a named declaration's (or the flow/project default's) CLI for this step only. */
12
13
  cli?: string;
13
- /** Overrides a named declaration's model for this step only. No flow/project default exists for model. */
14
+ model?: string;
15
+ /** Working directory for the CLI subprocess; defaults to the flow-runner's cwd. */
16
+ cwd?: string;
17
+ /**
18
+ * Dispatch transport (flows#385). `'direct'` (default) spawns the CLI as a
19
+ * local subprocess. `'relay'` posts to agent-relay so the agent registers
20
+ * as a first-class workspace participant that DMs can steer.
21
+ */
22
+ transport?: 'direct' | 'relay';
23
+ }
24
+ export interface LlmOptions {
25
+ /** JSON Schema checked before the result is accepted by the journal. */
26
+ output: Record<string, unknown>;
27
+ cli?: string;
14
28
  model?: string;
15
29
  }
16
30
  /**
@@ -19,15 +33,22 @@ export interface AgentOptions {
19
33
  * This package declares the authoring contract only. It cannot construct a
20
34
  * context or execute a step, so all effects remain behind the journal client.
21
35
  */
22
- export interface Ctx {
23
- run(command: string): Step<string>;
36
+ export interface Ctx extends Helpers {
37
+ readonly mcp: Readonly<Record<string, Readonly<Record<string, (args: unknown) => Step<unknown>>>>>;
38
+ /** Command lease: milliseconds or a duration such as "5m"; default 30s, maximum 15m. */
39
+ run(command: string, options?: {
40
+ timeout?: string | number;
41
+ }): Step<string>;
24
42
  llm(strings: TemplateStringsArray, ...values: unknown[]): Step<string>;
43
+ /** JSON Schema validates the value at runtime; narrow unknown in author code. */
44
+ llm(prompt: string, options: LlmOptions): Step<unknown>;
25
45
  agent(name: string, options: AgentOptions): Step<AgentResult>;
26
46
  human(question: string, options: {
27
47
  to: string;
28
48
  }): Promise<boolean>;
29
49
  dispatch<T>(flow: string, input: unknown): Promise<T>;
30
- done(reason: RunCompletionReason): void;
50
+ done(reason: FlowCompletionReason): void;
31
51
  cloud: CloudHelper;
52
+ memory: MemoryHelper;
32
53
  }
33
54
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0GAA0G;IAC1G,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAG;IAClB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,WAAW,CAAC;CACpB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAI,SAAQ,OAAO;IAClC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,wFAAwF;IACxF,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5E,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,iFAAiF;IACjF,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;CACtB"}
@@ -0,0 +1,22 @@
1
+ import type { RelayClientOptions, RelayTransport } from '@relayfile/relay-helpers/transport';
2
+ import type { Step } from './step.js';
3
+ /** Promise-returning client verbs become lazy, journal-owned steps. */
4
+ export type JournalHelper<T> = {
5
+ [K in keyof T]: T[K] extends (...args: infer A) => Promise<infer R> ? (...args: A) => Step<R> : T[K] extends (...args: infer A) => infer R ? (...args: A) => R : T[K] extends object ? JournalHelper<T[K]> : T[K];
6
+ };
7
+ export interface HelperCall {
8
+ type: 'effect';
9
+ provider: string;
10
+ verb: string;
11
+ args: unknown[];
12
+ }
13
+ export type EffectDispatcher = <T>(call: HelperCall) => Step<T>;
14
+ export interface UnavailableHelper {
15
+ readonly available: false;
16
+ }
17
+ export type HelperFactory = (options: RelayClientOptions) => object;
18
+ export declare function bindHelper<T extends object>(provider: string, factory: (options: RelayClientOptions) => T, dispatch: EffectDispatcher): JournalHelper<T>;
19
+ export declare function bindHelper(provider: string, factory: undefined, dispatch: EffectDispatcher): UnavailableHelper;
20
+ /** Resolve only own, generated client methods; never arbitrary prototype members. */
21
+ export declare function invokeHelper(factory: HelperFactory, call: HelperCall, transport: RelayTransport): Promise<unknown>;
22
+ //# sourceMappingURL=effect-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-transport.d.ts","sourceRoot":"","sources":["../src/effect-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,uEAAuE;AACvE,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAC5B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAC/D,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAC9D,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AACF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,WAAW,iBAAiB;IAAG,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAA;CAAE;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,kBAAkB,KAAK,MAAM,CAAC;AAQpE,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1J,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;AAkBhH,qFAAqF;AACrF,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAYxH"}
@@ -0,0 +1,42 @@
1
+ const unavailableTransport = {
2
+ async read() { throw new Error('Helper I/O requires a journaled step'); },
3
+ async list() { throw new Error('Helper I/O requires a journaled step'); },
4
+ async write() { throw new Error('Helper I/O requires a journaled step'); },
5
+ };
6
+ export function bindHelper(provider, factory, dispatch) {
7
+ if (!factory)
8
+ return Object.freeze({ available: false });
9
+ function wrap(client, prefix = '') {
10
+ return Object.fromEntries(Object.entries(client).map(([key, value]) => {
11
+ const verb = `${prefix}${key}`;
12
+ if (typeof value === 'function')
13
+ return [key, key === 'path'
14
+ ? value.bind(client)
15
+ : (...args) => {
16
+ while (args.length && args.at(-1) === undefined)
17
+ args.pop();
18
+ return dispatch({ type: 'effect', provider, verb, args });
19
+ }];
20
+ return [key, value && typeof value === 'object' ? wrap(value, `${verb}.`) : value];
21
+ }));
22
+ }
23
+ return wrap(factory({ transport: unavailableTransport }));
24
+ }
25
+ /** Resolve only own, generated client methods; never arbitrary prototype members. */
26
+ export async function invokeHelper(factory, call, transport) {
27
+ let target = factory({ transport });
28
+ const parts = call.verb.split('.');
29
+ for (const part of parts.slice(0, -1)) {
30
+ if (!target || typeof target !== 'object' || !Object.hasOwn(target, part))
31
+ throw new Error('Unknown helper resource');
32
+ target = target[part];
33
+ }
34
+ const verb = parts.at(-1);
35
+ if (!target || typeof target !== 'object' || !Object.hasOwn(target, verb) || verb === 'path')
36
+ throw new Error('Unknown helper verb');
37
+ const method = target[verb];
38
+ if (typeof method !== 'function')
39
+ throw new Error('Unknown helper verb');
40
+ return await method.apply(target, call.args) ?? null;
41
+ }
42
+ //# sourceMappingURL=effect-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-transport.js","sourceRoot":"","sources":["../src/effect-transport.ts"],"names":[],"mappings":"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"}
package/dist/flow.d.ts CHANGED
@@ -1,59 +1,72 @@
1
+ import type { Helpers } from "./helpers/index.js";
2
+ type HelperTools = Partial<Record<keyof Helpers, boolean>>;
1
3
  import type { Ctx } from "./context.js";
2
- /**
3
- * A reusable agent CLI/model pair, selectable by name from `f.agent(name, ...)`.
4
- * Both fields are required so selecting a named agent can never inherit a
5
- * host model — mirrors the kernel-spec dialect's `NamedAgentSpec`
6
- * (`packages/sdk/src/spec.ts`), which this compiles into.
7
- */
8
- export interface NamedAgentDeclaration {
9
- cli: string;
10
- model: string;
11
- }
4
+ import { type TriggerSource } from "./triggers.js";
12
5
  /** Optional escalation header; the empty header is the common case. */
13
6
  export interface FlowHeader {
7
+ /** Relative paths to reusable authored flows composed by this body. */
8
+ use?: string[];
14
9
  identity?: string;
15
10
  memory?: {
16
11
  script?: boolean;
17
12
  agent?: boolean;
18
13
  };
19
- budget?: string;
20
- tools?: {
14
+ budget?: string | {
15
+ tokens?: number;
16
+ dollars?: number;
17
+ wallclock?: string;
18
+ };
19
+ tools?: HelperTools & {
21
20
  relayfile?: string[];
22
21
  mcp?: string[];
23
22
  };
24
23
  workspace?: string;
25
- agents?: Record<string, NamedAgentDeclaration>;
26
24
  }
27
25
  export type FlowBody<Input = unknown> = (f: Ctx, input: Input) => Promise<void>;
28
26
  export interface ReadonlyFlowHeader {
27
+ readonly use?: readonly string[];
29
28
  readonly identity?: string;
30
29
  readonly memory?: Readonly<{
31
30
  script?: boolean;
32
31
  agent?: boolean;
33
32
  }>;
34
- readonly budget?: string;
35
- readonly tools?: Readonly<{
33
+ readonly budget?: string | Readonly<{
34
+ tokens?: number;
35
+ dollars?: number;
36
+ wallclock?: string;
37
+ }>;
38
+ readonly tools?: Readonly<HelperTools & {
39
+ slack?: boolean;
36
40
  relayfile?: readonly string[];
37
41
  mcp?: readonly string[];
38
42
  }>;
39
43
  readonly workspace?: string;
40
- readonly agents?: Readonly<Record<string, Readonly<NamedAgentDeclaration>>>;
41
44
  }
42
45
  /** Immutable definition retained for the SDK's journal-backed runtime. */
43
46
  export interface AuthoredFlowDefinition<Input = unknown> {
44
47
  readonly name: string;
45
48
  readonly header: ReadonlyFlowHeader;
46
49
  readonly body: FlowBody<Input>;
50
+ readonly handlers: readonly TriggerHandler[];
51
+ }
52
+ export interface TriggerHandler {
53
+ readonly trigger: TriggerSource;
54
+ readonly body: FlowBody;
47
55
  }
48
56
  /** Opaque authored-flow handle. Execution stays behind the journal runtime. */
49
57
  export interface FlowHandle {
50
58
  readonly name: string;
59
+ on<Event = Record<string, unknown>>(trigger: TriggerSource, body: FlowBody<Event>): TriggeredFlowHandle;
60
+ }
61
+ export interface TriggeredFlowHandle extends FlowHandle {
51
62
  }
63
+ export declare function flow(name: string, header?: FlowHeader): FlowHandle;
52
64
  export declare function flow<Input = unknown>(name: string, body: FlowBody<Input>): FlowHandle;
53
65
  export declare function flow<Input = unknown>(name: string, header: FlowHeader, body: FlowBody<Input>): FlowHandle;
54
66
  /**
55
67
  * Runtime bridge used by the SDK after it imports an authored `.flow.ts`.
56
68
  * The root package deliberately does not re-export this accessor.
57
69
  */
58
- export declare function getFlowDefinition<Input = unknown>(handle: FlowHandle): AuthoredFlowDefinition<Input>;
70
+ export declare function getFlowDefinition<Input = unknown>(handle: Pick<FlowHandle, "name">): AuthoredFlowDefinition<Input>;
71
+ export {};
59
72
  //# sourceMappingURL=flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,QAAQ,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC9B,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E;AAED,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB,CAAC,KAAK,GAAG,OAAO;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;CAChC;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;AACvF,wBAAgB,IAAI,CAAC,KAAK,GAAG,OAAO,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GACpB,UAAU,CAAC;AAkCd;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAapG"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
package/dist/flow.js CHANGED
@@ -1,20 +1,42 @@
1
+ import { helperProviders } from "./helpers/providers.js";
2
+ import { webhook } from "./triggers.js";
1
3
  const definitions = new WeakMap();
2
- export function flow(name, headerOrBody, body) {
4
+ export function flow(name, headerOrBody = {}, body) {
3
5
  const flowBody = typeof headerOrBody === "function" ? headerOrBody : body;
4
6
  const header = typeof headerOrBody === "function" ? {} : headerOrBody;
5
7
  if (name.trim().length === 0) {
6
8
  throw new TypeError("flow name must not be empty");
7
9
  }
8
- if (typeof flowBody !== "function") {
10
+ if (flowBody !== undefined && typeof flowBody !== "function") {
9
11
  throw new TypeError(`flow "${name}" requires a body`);
10
12
  }
11
13
  assertFlowHeader(header, name);
12
14
  const definition = Object.freeze({
13
15
  name,
14
16
  header: freezeHeader(header),
15
- body: flowBody,
17
+ body: flowBody ?? (async () => { throw new TypeError(`flow "${name}" has no direct-run body`); }),
18
+ handlers: Object.freeze([]),
16
19
  });
17
- const handle = Object.freeze({ name });
20
+ return makeHandle(definition);
21
+ }
22
+ function makeHandle(definition) {
23
+ const handle = { name: definition.name };
24
+ Object.defineProperty(handle, "on", {
25
+ value: (trigger, body) => {
26
+ if (typeof body !== "function")
27
+ throw new TypeError("trigger handler requires a body");
28
+ assertHeaderObject(trigger, "trigger");
29
+ assertKnownKeys(trigger, ["kind", "name", "filter"], "trigger");
30
+ if (trigger.kind !== "webhook")
31
+ throw new TypeError("unsupported trigger kind");
32
+ const source = webhook(trigger.name, trigger.filter);
33
+ return makeHandle(Object.freeze({
34
+ ...definition,
35
+ handlers: Object.freeze([...definition.handlers, Object.freeze({ trigger: source, body: body })]),
36
+ }));
37
+ },
38
+ });
39
+ Object.freeze(handle);
18
40
  // One map holds definitions of many input types, so it is stored at the
19
41
  // default parameterisation and `getFlowDefinition<Input>` re-parameterises on
20
42
  // the way out. The cast is needed because `body` puts `Input` in a parameter
@@ -57,12 +79,12 @@ function isStoredDefinition(value, handleName) {
57
79
  }
58
80
  function freezeHeader(header) {
59
81
  const unknownFields = Object.keys(header).filter((field) => ![
82
+ "use",
60
83
  "identity",
61
84
  "memory",
62
85
  "budget",
63
86
  "tools",
64
87
  "workspace",
65
- "agents",
66
88
  ].includes(field));
67
89
  if (unknownFields.length > 0) {
68
90
  throw new TypeError(`flow header has unknown fields: ${unknownFields.join(", ")}`);
@@ -73,6 +95,8 @@ function freezeHeader(header) {
73
95
  const tools = header.tools === undefined
74
96
  ? undefined
75
97
  : Object.freeze({
98
+ ...Object.fromEntries(helperProviders.filter(p => header.tools?.[p.namespace] !== undefined)
99
+ .map(p => [p.namespace, header.tools[p.namespace]])),
76
100
  ...(header.tools.relayfile === undefined
77
101
  ? {}
78
102
  : { relayfile: Object.freeze([...header.tools.relayfile]) }),
@@ -80,31 +104,38 @@ function freezeHeader(header) {
80
104
  ? {}
81
105
  : { mcp: Object.freeze([...header.tools.mcp]) }),
82
106
  });
83
- const agents = header.agents === undefined
84
- ? undefined
85
- : Object.freeze(Object.fromEntries(ownDataEntries(header.agents, "header.agents").map(([name, declaration]) => {
86
- // Validated by assertFlowHeader's own ownDataEntries pass before
87
- // this ever runs: exactly {cli, model}, both non-empty trimmed
88
- // strings, read as data properties (never through a getter).
89
- const record = declaration;
90
- return [name, Object.freeze({ cli: record.cli, model: record.model })];
91
- })));
92
107
  return Object.freeze({
108
+ ...(header.use === undefined ? {} : { use: Object.freeze([...header.use]) }),
93
109
  ...(header.identity === undefined ? {} : { identity: header.identity }),
94
110
  ...(memory === undefined ? {} : { memory }),
95
- ...(header.budget === undefined ? {} : { budget: header.budget }),
111
+ ...(header.budget === undefined ? {} : { budget: typeof header.budget === "string" ? header.budget : Object.freeze({ ...header.budget }) }),
96
112
  ...(tools === undefined ? {} : { tools }),
97
113
  ...(header.workspace === undefined ? {} : { workspace: header.workspace }),
98
- ...(agents === undefined ? {} : { agents }),
99
114
  });
100
115
  }
101
116
  function assertFlowHeader(value, flowName) {
102
117
  const at = `unsupported_header: flow "${flowName}" header`;
103
118
  assertHeaderObject(value, at);
104
- assertKnownKeys(value, ["identity", "memory", "budget", "tools", "workspace", "agents"], at);
119
+ assertKnownKeys(value, ["use", "identity", "memory", "budget", "tools", "workspace"], at);
105
120
  assertOptionalString(value, "identity", at);
106
- assertOptionalString(value, "budget", at);
121
+ if (value.budget !== undefined && typeof value.budget !== "string") {
122
+ assertHeaderObject(value.budget, `${at}.budget`);
123
+ assertKnownKeys(value.budget, ["tokens", "dollars", "wallclock"], `${at}.budget`);
124
+ assertOptionalString(value.budget, "wallclock", at);
125
+ for (const key of ["tokens", "dollars"]) {
126
+ if (value.budget[key] !== undefined && typeof value.budget[key] !== "number")
127
+ throw new TypeError(`budget_syntax_invalid: ${key} must be a number`);
128
+ }
129
+ }
107
130
  assertOptionalString(value, "workspace", at);
131
+ assertOptionalStringArray(value, "use", at);
132
+ if (value.use !== undefined) {
133
+ for (const path of value.use) {
134
+ if (!/^(?:\.\/|\.\.\/).+\.flow\.ts$/.test(path) || /[?#\\\\]/.test(path)) {
135
+ throw new TypeError(`${at}.use: expected relative .flow.ts paths`);
136
+ }
137
+ }
138
+ }
108
139
  if (value.memory !== undefined) {
109
140
  assertHeaderObject(value.memory, `${at}.memory`);
110
141
  assertKnownKeys(value.memory, ["script", "agent"], `${at}.memory`);
@@ -113,47 +144,12 @@ function assertFlowHeader(value, flowName) {
113
144
  }
114
145
  if (value.tools !== undefined) {
115
146
  assertHeaderObject(value.tools, `${at}.tools`);
116
- assertKnownKeys(value.tools, ["relayfile", "mcp"], `${at}.tools`);
147
+ assertKnownKeys(value.tools, ["relayfile", "mcp", ...helperProviders.map(p => p.namespace)], `${at}.tools`);
148
+ for (const { namespace } of helperProviders)
149
+ assertOptionalBoolean(value.tools, namespace, `${at}.tools`);
117
150
  assertOptionalStringArray(value.tools, "relayfile", `${at}.tools`);
118
151
  assertOptionalStringArray(value.tools, "mcp", `${at}.tools`);
119
152
  }
120
- if (value.agents !== undefined) {
121
- assertHeaderObject(value.agents, `${at}.agents`);
122
- for (const [name, declaration] of ownDataEntries(value.agents, `${at}.agents`)) {
123
- if (name !== name.trim() || name.length === 0) {
124
- throw new TypeError(`${at}.agents: agent name ${JSON.stringify(name)} must be a non-empty, trimmed string`);
125
- }
126
- const declarationAt = `${at}.agents.${name}`;
127
- assertHeaderObject(declaration, declarationAt);
128
- assertKnownKeys(declaration, ["cli", "model"], declarationAt);
129
- assertRequiredTrimmedString(declaration, "cli", declarationAt);
130
- assertRequiredTrimmedString(declaration, "model", declarationAt);
131
- }
132
- }
133
- }
134
- /**
135
- * Reads every own property of `value` via its descriptor rather than
136
- * `Object.entries`/property access, so an accessor (getter) property is
137
- * REJECTED — never invoked — instead of being enumerated as if it were
138
- * ordinary data. `Object.entries` would call the getter, and a stateful
139
- * getter can legally answer validation with one value and a second,
140
- * unvalidated read (e.g. during freezing) with a different one — the closed
141
- * declaration contract must not depend on a property being well-behaved
142
- * across two separate reads.
143
- */
144
- function ownDataEntries(value, at) {
145
- const entries = [];
146
- for (const key of Reflect.ownKeys(value)) {
147
- if (typeof key !== "string") {
148
- throw new TypeError(`${at}: unknown field ${JSON.stringify(String(key))}`);
149
- }
150
- const descriptor = Object.getOwnPropertyDescriptor(value, key);
151
- if (descriptor === undefined || !("value" in descriptor)) {
152
- throw new TypeError(`${at}.${key}: expected a data property`);
153
- }
154
- entries.push([key, descriptor.value]);
155
- }
156
- return entries;
157
153
  }
158
154
  function assertHeaderObject(value, at) {
159
155
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
@@ -181,22 +177,6 @@ function assertOptionalString(value, key, at) {
181
177
  throw new TypeError(`${at}.${key}: expected a string`);
182
178
  }
183
179
  }
184
- /**
185
- * Requires a trimmed, non-empty string — not merely non-empty-after-trim.
186
- * The SDK's own project-config schema only accepts already-trimmed model/cli
187
- * strings (`readProjectConfig`, cli/check.ts); accepting untrimmed values
188
- * here would let a flow author declare " claude " and have it validate at
189
- * authoring time but fail later at f.agent preflight, moving a defect from
190
- * authoring to execution instead of catching it up front.
191
- */
192
- function assertRequiredTrimmedString(value, key, at) {
193
- if (typeof value[key] !== "string" || value[key].length === 0) {
194
- throw new TypeError(`${at}.${key}: expected a non-empty string`);
195
- }
196
- if (value[key] !== value[key].trim()) {
197
- throw new TypeError(`${at}.${key}: must not have leading or trailing whitespace`);
198
- }
199
- }
200
180
  function assertOptionalBoolean(value, key, at) {
201
181
  if (value[key] !== undefined && typeof value[key] !== "boolean") {
202
182
  throw new TypeError(`${at}.${key}: expected a boolean`);
@@ -205,8 +185,13 @@ function assertOptionalBoolean(value, key, at) {
205
185
  function assertOptionalStringArray(value, key, at) {
206
186
  const candidate = value[key];
207
187
  if (candidate !== undefined
208
- && (!Array.isArray(candidate) || candidate.some((item) => typeof item !== "string"))) {
188
+ && (!Array.isArray(candidate) || Array.from(candidate).some((item) => typeof item !== "string"))) {
209
189
  throw new TypeError(`${at}.${key}: expected an array of strings`);
210
190
  }
191
+ if (key === "use" && Array.isArray(candidate)
192
+ && (candidate.some((item) => item.trim().length === 0)
193
+ || new Set(candidate).size !== candidate.length)) {
194
+ throw new TypeError(`${at}.${key}: expected unique nonempty paths`);
195
+ }
211
196
  }
212
197
  //# sourceMappingURL=flow.js.map
package/dist/flow.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,OAAO,EAAE,OAAO,EAAsB,MAAM,eAAe,CAAC;AAiD5D,MAAM,WAAW,GAAG,IAAI,OAAO,EAAkC,CAAC;AASlE,MAAM,UAAU,IAAI,CAClB,IAAY,EACZ,eAA6C,EAAE,EAC/C,IAAsB;IAEtB,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,MAAM,MAAM,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAEtE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;IACxD,CAAC;IACD,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE/B,MAAM,UAAU,GAAkC,MAAM,CAAC,MAAM,CAAC;QAC9D,IAAI;QACJ,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;QAC5B,IAAI,EAAE,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,SAAS,CAAC,SAAS,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KAC5B,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,UAAoC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,UAAkC;IACpD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAgB,CAAC;IACvD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;QAClC,KAAK,EAAE,CAAQ,OAAsB,EAAE,IAAqB,EAAuB,EAAE;YACnF,IAAI,OAAO,IAAI,KAAK,UAAU;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YACvF,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvC,eAAe,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC9B,GAAG,UAAU;gBACb,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAgB,EAAE,CAAC,CAAC,CAAC;aAC9G,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,wEAAwE;IACxE,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAC9E,qEAAqE;IACrE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAkB,MAAgC;IACjF,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpF,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IACE,UAAU,KAAK,SAAS;WACrB,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;WAChD,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAClC,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAc,EACd,UAAmB;IAEnB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,KAAwC,CAAC;IAC3D,OAAO,OAAO,UAAU,KAAK,QAAQ;WAChC,SAAS,CAAC,IAAI,KAAK,UAAU;WAC7B,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU;WACpC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;WACpC,SAAS,CAAC,MAAM,KAAK,IAAI;WACzB,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;WAChC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;WACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,MAAkB;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3D,KAAK;QACL,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,WAAW;KACZ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACnB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,mCAAmC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS;QACxC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS;QACtC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;iBACzF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,KAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACvD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;IACP,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3I,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;KAC3E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,QAAgB;IACxD,MAAM,EAAE,GAAG,6BAA6B,QAAQ,UAAU,CAAC;IAC3D,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,eAAe,CACb,KAAK,EACL,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAC7D,EAAE,CACH,CAAC;IACF,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACjD,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClF,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,GAAG,mBAAmB,CAAC,CAAC;QACtJ,CAAC;IACH,CAAC;IACD,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7C,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,GAAe,EAAE,CAAC;YACzC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,wCAAwC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACjD,eAAe,CACb,KAAK,CAAC,MAAM,EACZ,CAAC,QAAQ,EAAE,OAAO,CAAC,EACnB,GAAG,EAAE,SAAS,CACf,CAAC;QACF,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9D,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/C,eAAe,CACb,KAAK,CAAC,KAAK,EACX,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,EAAE,QAAQ,CACd,CAAC;QACF,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,eAAe;YAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1G,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnE,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAc,EACd,EAAU;IAEV,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,KAA8B,EAC9B,OAA0B,EAC1B,EAAU;IAEV,MAAM,WAAW,GAAG,IAAI,GAAG,CAAc,OAAO,CAAC,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA8B,EAC9B,GAAW,EACX,EAAU;IAEV,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,qBAAqB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAA8B,EAC9B,GAAW,EACX,EAAU;IAEV,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,sBAAsB,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,KAA8B,EAC9B,GAAW,EACX,EAAU;IAEV,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IACE,SAAS,KAAK,SAAS;WACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,EAChG,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,gCAAgC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;WACxC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;eACjD,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,kCAAkC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
@@ -0,0 +1,86 @@
1
+ import type { RelayClientOptions } from '@relayfile/relay-helpers/transport';
2
+ /** Accept the conventional owner/repo shorthand as well as upstream arguments. */
3
+ export declare function githubClient(options: RelayClientOptions): {
4
+ createIssue(args: {
5
+ owner?: string;
6
+ repo: string;
7
+ title: string;
8
+ body: string;
9
+ labels?: string[];
10
+ }): Promise<import("@relayfile/relay-helpers").CreatedResult>;
11
+ comment(target: import("@relayfile/relay-helpers").GithubTarget, body: string): Promise<import("@relayfile/relay-helpers").CreatedResult>;
12
+ createPullRequest(args: {
13
+ owner: string;
14
+ repo: string;
15
+ title: string;
16
+ head: string;
17
+ base: string;
18
+ body?: string;
19
+ draft?: boolean;
20
+ author?: "app" | "user";
21
+ }): Promise<import("@relayfile/relay-helpers").CreatedResult>;
22
+ pushRef(args: {
23
+ owner: string;
24
+ repo: string;
25
+ ref: string;
26
+ sha: string;
27
+ }): Promise<void>;
28
+ updateRef(args: {
29
+ owner: string;
30
+ repo: string;
31
+ ref: string;
32
+ sha: string;
33
+ force?: boolean;
34
+ }): Promise<void>;
35
+ closePullRequest(target: import("@relayfile/relay-helpers").GithubTarget): Promise<void>;
36
+ mergePullRequest(args: {
37
+ owner: string;
38
+ repo: string;
39
+ number: number;
40
+ method?: "merge" | "squash" | "rebase";
41
+ commitTitle?: string;
42
+ commitMessage?: string;
43
+ sha?: string;
44
+ }): Promise<{
45
+ merged: boolean;
46
+ sha?: string;
47
+ }>;
48
+ review(target: import("@relayfile/relay-helpers").GithubTarget, args: {
49
+ body: string;
50
+ event: "COMMENT" | "APPROVE" | "REQUEST_CHANGES";
51
+ comments?: Array<{
52
+ path: string;
53
+ line: number;
54
+ body: string;
55
+ }>;
56
+ }): Promise<void>;
57
+ "close-pull-request": import("@relayfile/relay-helpers").ResourceClient;
58
+ "issue-comments": import("@relayfile/relay-helpers").ResourceClient;
59
+ issues: import("@relayfile/relay-helpers").ResourceClient;
60
+ merge: import("@relayfile/relay-helpers").ResourceClient;
61
+ "pull-requests": import("@relayfile/relay-helpers").ResourceClient;
62
+ refs: import("@relayfile/relay-helpers").ResourceClient;
63
+ replies: import("@relayfile/relay-helpers").ResourceClient;
64
+ reviews: import("@relayfile/relay-helpers").ResourceClient;
65
+ };
66
+ export declare function stripeClient(options: RelayClientOptions): {
67
+ createInvoice(args: {
68
+ customer: string;
69
+ auto_advance?: boolean;
70
+ collection_method?: "charge_automatically" | "send_invoice";
71
+ days_until_due?: number;
72
+ description?: string;
73
+ metadata?: Record<string, string>;
74
+ }): Promise<import("@relayfile/relay-helpers").CreatedResult>;
75
+ };
76
+ export declare function notionClient(options: RelayClientOptions): {
77
+ appendBlock(args: {
78
+ pageId: string;
79
+ block: Record<string, unknown>;
80
+ }): Promise<import("@relayfile/relay-helpers").CreatedResult>;
81
+ comments: import("@relayfile/relay-helpers").ResourceClient;
82
+ pages: import("@relayfile/relay-helpers").ResourceClient;
83
+ content: import("@relayfile/relay-helpers").ResourceClient;
84
+ properties: import("@relayfile/relay-helpers").ResourceClient;
85
+ };
86
+ //# sourceMappingURL=helper-clients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper-clients.d.ts","sourceRoot":"","sources":["../src/helper-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,EAAE,kBAAkB;sBAEhB;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;;;;;;;;YAOhE,CAAC;aACrC,CAAC;cAAyB,CAAC;;;;;;;;;;;;;aAO3B,CAAC;;;;;;;cAKH,CAAC;mBAAoD,CAAC;qBACtD,CAAC;WAAqB,CAAC;;;WAAgE,CAAC;;;;;gBAG4C,CAAC;;;;;;;;;;;;;;EAnBtJ;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,kBAAkB;wBACzB;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,sBAAsB,GAAG,cAAc,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;EAKzN;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,kBAAkB;sBACO;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;;;;;EAOhH"}