managed-deepagents 0.9.6-dev.3 → 0.9.6-dev.30

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 (359) hide show
  1. package/README.md +1075 -37
  2. package/dist/agent-auth.d.ts +1 -1
  3. package/dist/agent-auth.d.ts.map +1 -1
  4. package/dist/agent-auth.js +36 -12
  5. package/dist/agent-auth.js.map +1 -1
  6. package/dist/browser.d.ts +37 -0
  7. package/dist/browser.d.ts.map +1 -0
  8. package/dist/browser.js +31 -0
  9. package/dist/browser.js.map +1 -0
  10. package/dist/channels/actor.d.ts +57 -0
  11. package/dist/channels/actor.d.ts.map +1 -0
  12. package/dist/channels/actor.js +24 -0
  13. package/dist/channels/actor.js.map +1 -0
  14. package/dist/channels/assistant-text.d.ts +29 -0
  15. package/dist/channels/assistant-text.d.ts.map +1 -1
  16. package/dist/channels/assistant-text.js +81 -4
  17. package/dist/channels/assistant-text.js.map +1 -1
  18. package/dist/channels/binding.d.ts +20 -1
  19. package/dist/channels/binding.d.ts.map +1 -1
  20. package/dist/channels/binding.js +44 -11
  21. package/dist/channels/binding.js.map +1 -1
  22. package/dist/channels/delivery.d.ts +51 -0
  23. package/dist/channels/delivery.d.ts.map +1 -0
  24. package/dist/channels/delivery.js +424 -0
  25. package/dist/channels/delivery.js.map +1 -0
  26. package/dist/channels/github/app-setup.d.ts +32 -0
  27. package/dist/channels/github/app-setup.d.ts.map +1 -0
  28. package/dist/channels/github/app-setup.js +146 -0
  29. package/dist/channels/github/app-setup.js.map +1 -0
  30. package/dist/channels/github/connections.d.ts +11 -0
  31. package/dist/channels/github/connections.d.ts.map +1 -0
  32. package/dist/channels/github/connections.js +14 -0
  33. package/dist/channels/github/connections.js.map +1 -0
  34. package/dist/channels/github/index.d.ts +12 -0
  35. package/dist/channels/github/index.d.ts.map +1 -0
  36. package/dist/channels/github/index.js +266 -0
  37. package/dist/channels/github/index.js.map +1 -0
  38. package/dist/channels/github/mentions.d.ts +12 -0
  39. package/dist/channels/github/mentions.d.ts.map +1 -0
  40. package/dist/channels/github/mentions.js +185 -0
  41. package/dist/channels/github/mentions.js.map +1 -0
  42. package/dist/channels/github/schema.d.ts +4165 -0
  43. package/dist/channels/github/schema.d.ts.map +1 -0
  44. package/dist/channels/github/schema.js +221 -0
  45. package/dist/channels/github/schema.js.map +1 -0
  46. package/dist/channels/github/types.d.ts +170 -0
  47. package/dist/channels/github/types.d.ts.map +1 -0
  48. package/dist/channels/github/types.js +2 -0
  49. package/dist/channels/github/types.js.map +1 -0
  50. package/dist/channels/http/endpoint.d.ts +137 -0
  51. package/dist/channels/http/endpoint.d.ts.map +1 -0
  52. package/dist/channels/http/endpoint.js +286 -0
  53. package/dist/channels/http/endpoint.js.map +1 -0
  54. package/dist/channels/http/http.d.ts.map +1 -1
  55. package/dist/channels/http/http.js +439 -65
  56. package/dist/channels/http/http.js.map +1 -1
  57. package/dist/channels/http/index.d.ts +8 -1
  58. package/dist/channels/http/index.d.ts.map +1 -1
  59. package/dist/channels/http/index.js +35 -16
  60. package/dist/channels/http/index.js.map +1 -1
  61. package/dist/channels/http/ingress.d.ts +67 -5
  62. package/dist/channels/http/ingress.d.ts.map +1 -1
  63. package/dist/channels/http/ingress.js +155 -43
  64. package/dist/channels/http/ingress.js.map +1 -1
  65. package/dist/channels/http/provider.d.ts +125 -0
  66. package/dist/channels/http/provider.d.ts.map +1 -0
  67. package/dist/channels/http/provider.js +227 -0
  68. package/dist/channels/http/provider.js.map +1 -0
  69. package/dist/channels/http/studio.d.ts +24 -0
  70. package/dist/channels/http/studio.d.ts.map +1 -0
  71. package/dist/channels/http/studio.js +95 -0
  72. package/dist/channels/http/studio.js.map +1 -0
  73. package/dist/channels/http/threads.d.ts +7 -0
  74. package/dist/channels/http/threads.d.ts.map +1 -0
  75. package/dist/channels/http/threads.js +10 -0
  76. package/dist/channels/http/threads.js.map +1 -0
  77. package/dist/channels/http/types.d.ts +166 -2
  78. package/dist/channels/http/types.d.ts.map +1 -1
  79. package/dist/channels/linear/app-setup.d.ts +29 -0
  80. package/dist/channels/linear/app-setup.d.ts.map +1 -0
  81. package/dist/channels/linear/app-setup.js +102 -0
  82. package/dist/channels/linear/app-setup.js.map +1 -0
  83. package/dist/channels/linear/connections.d.ts +11 -0
  84. package/dist/channels/linear/connections.d.ts.map +1 -0
  85. package/dist/channels/linear/connections.js +14 -0
  86. package/dist/channels/linear/connections.js.map +1 -0
  87. package/dist/channels/linear/graphql.d.ts +57 -0
  88. package/dist/channels/linear/graphql.d.ts.map +1 -0
  89. package/dist/channels/linear/graphql.js +167 -0
  90. package/dist/channels/linear/graphql.js.map +1 -0
  91. package/dist/channels/linear/index.d.ts +13 -0
  92. package/dist/channels/linear/index.d.ts.map +1 -0
  93. package/dist/channels/linear/index.js +457 -0
  94. package/dist/channels/linear/index.js.map +1 -0
  95. package/dist/channels/linear/schema.d.ts +1050 -0
  96. package/dist/channels/linear/schema.d.ts.map +1 -0
  97. package/dist/channels/linear/schema.js +255 -0
  98. package/dist/channels/linear/schema.js.map +1 -0
  99. package/dist/channels/linear/types.d.ts +169 -0
  100. package/dist/channels/linear/types.d.ts.map +1 -0
  101. package/dist/channels/linear/types.js +2 -0
  102. package/dist/channels/linear/types.js.map +1 -0
  103. package/dist/channels/message-schema.d.ts +2 -0
  104. package/dist/channels/message-schema.d.ts.map +1 -1
  105. package/dist/channels/message-schema.js +4 -0
  106. package/dist/channels/message-schema.js.map +1 -1
  107. package/dist/channels/messaging-registry.d.ts +16 -0
  108. package/dist/channels/messaging-registry.d.ts.map +1 -1
  109. package/dist/channels/messaging-registry.js +29 -0
  110. package/dist/channels/messaging-registry.js.map +1 -1
  111. package/dist/channels/reserved-connections.d.ts +12 -0
  112. package/dist/channels/reserved-connections.d.ts.map +1 -0
  113. package/dist/channels/reserved-connections.js +55 -0
  114. package/dist/channels/reserved-connections.js.map +1 -0
  115. package/dist/channels/resolve-user-endpoint.d.ts +34 -0
  116. package/dist/channels/resolve-user-endpoint.d.ts.map +1 -0
  117. package/dist/channels/resolve-user-endpoint.js +51 -0
  118. package/dist/channels/resolve-user-endpoint.js.map +1 -0
  119. package/dist/channels/resolve-user.d.ts +95 -0
  120. package/dist/channels/resolve-user.d.ts.map +1 -0
  121. package/dist/channels/resolve-user.js +143 -0
  122. package/dist/channels/resolve-user.js.map +1 -0
  123. package/dist/channels/run-input.d.ts +88 -0
  124. package/dist/channels/run-input.d.ts.map +1 -0
  125. package/dist/channels/run-input.js +177 -0
  126. package/dist/channels/run-input.js.map +1 -0
  127. package/dist/channels/runtime.d.ts +5 -2
  128. package/dist/channels/runtime.d.ts.map +1 -1
  129. package/dist/channels/runtime.js +19 -10
  130. package/dist/channels/runtime.js.map +1 -1
  131. package/dist/channels/schedule-delivery.d.ts +2 -13
  132. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  133. package/dist/channels/schedule-delivery.js +6 -73
  134. package/dist/channels/schedule-delivery.js.map +1 -1
  135. package/dist/channels/slack/api.d.ts +2 -0
  136. package/dist/channels/slack/api.d.ts.map +1 -1
  137. package/dist/channels/slack/api.js +6 -0
  138. package/dist/channels/slack/api.js.map +1 -1
  139. package/dist/channels/slack/connections.d.ts +6 -0
  140. package/dist/channels/slack/connections.d.ts.map +1 -0
  141. package/dist/channels/slack/connections.js +6 -0
  142. package/dist/channels/slack/connections.js.map +1 -0
  143. package/dist/channels/slack/events.d.ts +278 -0
  144. package/dist/channels/slack/events.d.ts.map +1 -0
  145. package/dist/channels/slack/events.js +235 -0
  146. package/dist/channels/slack/events.js.map +1 -0
  147. package/dist/channels/slack/files.d.ts.map +1 -1
  148. package/dist/channels/slack/files.js +2 -3
  149. package/dist/channels/slack/files.js.map +1 -1
  150. package/dist/channels/slack/index.d.ts +90 -2
  151. package/dist/channels/slack/index.d.ts.map +1 -1
  152. package/dist/channels/slack/index.js +188 -6
  153. package/dist/channels/slack/index.js.map +1 -1
  154. package/dist/channels/slack/message-content.d.ts.map +1 -1
  155. package/dist/channels/slack/message-content.js +23 -28
  156. package/dist/channels/slack/message-content.js.map +1 -1
  157. package/dist/channels/slack/status.d.ts +76 -0
  158. package/dist/channels/slack/status.d.ts.map +1 -0
  159. package/dist/channels/slack/status.js +427 -0
  160. package/dist/channels/slack/status.js.map +1 -0
  161. package/dist/channels/source-providers.js +1 -1
  162. package/dist/channels/source-providers.js.map +1 -1
  163. package/dist/channels/trigger/client.d.ts.map +1 -1
  164. package/dist/channels/trigger/client.js +9 -15
  165. package/dist/channels/trigger/client.js.map +1 -1
  166. package/dist/channels/trigger/conversation.d.ts +11 -0
  167. package/dist/channels/trigger/conversation.d.ts.map +1 -0
  168. package/dist/channels/trigger/conversation.js +72 -0
  169. package/dist/channels/trigger/conversation.js.map +1 -0
  170. package/dist/channels/trigger/http.d.ts +130 -4
  171. package/dist/channels/trigger/http.d.ts.map +1 -1
  172. package/dist/channels/trigger/http.js +408 -78
  173. package/dist/channels/trigger/http.js.map +1 -1
  174. package/dist/channels/trigger/identity-context.d.ts.map +1 -1
  175. package/dist/channels/trigger/identity-context.js +2 -5
  176. package/dist/channels/trigger/identity-context.js.map +1 -1
  177. package/dist/channels/trigger/ingress.d.ts +70 -1
  178. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  179. package/dist/channels/trigger/ingress.js +135 -21
  180. package/dist/channels/trigger/ingress.js.map +1 -1
  181. package/dist/channels/trigger/transport.d.ts +10 -0
  182. package/dist/channels/trigger/transport.d.ts.map +1 -1
  183. package/dist/channels/trigger/transport.js +25 -9
  184. package/dist/channels/trigger/transport.js.map +1 -1
  185. package/dist/channels/trigger/types.d.ts +92 -3
  186. package/dist/channels/trigger/types.d.ts.map +1 -1
  187. package/dist/channels/trigger/types.js +37 -0
  188. package/dist/channels/trigger/types.js.map +1 -1
  189. package/dist/channels/types.d.ts +53 -4
  190. package/dist/channels/types.d.ts.map +1 -1
  191. package/dist/channels/types.js +2 -0
  192. package/dist/channels/types.js.map +1 -1
  193. package/dist/connections.d.ts +36 -12
  194. package/dist/connections.d.ts.map +1 -1
  195. package/dist/connections.js +125 -30
  196. package/dist/connections.js.map +1 -1
  197. package/dist/connectors/mcp/langsmith-url.d.ts.map +1 -1
  198. package/dist/connectors/mcp/langsmith-url.js +0 -1
  199. package/dist/connectors/mcp/langsmith-url.js.map +1 -1
  200. package/dist/credential-gate.d.ts +2 -0
  201. package/dist/credential-gate.d.ts.map +1 -1
  202. package/dist/credential-gate.js +37 -3
  203. package/dist/credential-gate.js.map +1 -1
  204. package/dist/define-deep-agent.d.ts +2 -2
  205. package/dist/define-deep-agent.d.ts.map +1 -1
  206. package/dist/define-deep-agent.js +53 -2
  207. package/dist/define-deep-agent.js.map +1 -1
  208. package/dist/identity/index.d.ts.map +1 -1
  209. package/dist/identity/index.js +3 -1
  210. package/dist/identity/index.js.map +1 -1
  211. package/dist/identity/loopback.d.ts +1 -1
  212. package/dist/identity/loopback.d.ts.map +1 -1
  213. package/dist/identity/loopback.js +3 -2
  214. package/dist/identity/loopback.js.map +1 -1
  215. package/dist/identity/options.d.ts +9 -0
  216. package/dist/identity/options.d.ts.map +1 -1
  217. package/dist/identity/options.js +1 -1
  218. package/dist/identity/options.js.map +1 -1
  219. package/dist/identity/slack/links.js +3 -2
  220. package/dist/identity/slack/links.js.map +1 -1
  221. package/dist/identity/types.d.ts +3 -0
  222. package/dist/identity/types.d.ts.map +1 -1
  223. package/dist/index.d.ts +19 -5
  224. package/dist/index.d.ts.map +1 -1
  225. package/dist/index.js +3 -1
  226. package/dist/index.js.map +1 -1
  227. package/dist/ingress/loopback.d.ts +1 -0
  228. package/dist/ingress/loopback.d.ts.map +1 -1
  229. package/dist/ingress/loopback.js +7 -3
  230. package/dist/ingress/loopback.js.map +1 -1
  231. package/dist/ingress/runs.d.ts +74 -1
  232. package/dist/ingress/runs.d.ts.map +1 -1
  233. package/dist/ingress/runs.js +184 -9
  234. package/dist/ingress/runs.js.map +1 -1
  235. package/dist/managed-composition.d.ts +3 -0
  236. package/dist/managed-composition.d.ts.map +1 -1
  237. package/dist/managed-composition.js +29 -13
  238. package/dist/managed-composition.js.map +1 -1
  239. package/dist/namespaces.d.ts +25 -21
  240. package/dist/namespaces.d.ts.map +1 -1
  241. package/dist/namespaces.js +4 -29
  242. package/dist/namespaces.js.map +1 -1
  243. package/dist/runtime/async-subagents.d.ts +27 -0
  244. package/dist/runtime/async-subagents.d.ts.map +1 -0
  245. package/dist/runtime/async-subagents.js +139 -0
  246. package/dist/runtime/async-subagents.js.map +1 -0
  247. package/dist/runtime/auth.d.ts.map +1 -1
  248. package/dist/runtime/auth.js +177 -8
  249. package/dist/runtime/auth.js.map +1 -1
  250. package/dist/runtime/backend.d.ts +7 -0
  251. package/dist/runtime/backend.d.ts.map +1 -1
  252. package/dist/runtime/backend.js +32 -7
  253. package/dist/runtime/backend.js.map +1 -1
  254. package/dist/runtime/browser-facade.d.ts +10 -0
  255. package/dist/runtime/browser-facade.d.ts.map +1 -0
  256. package/dist/runtime/browser-facade.js +23 -0
  257. package/dist/runtime/browser-facade.js.map +1 -0
  258. package/dist/runtime/browser-langsmith.d.ts +143 -0
  259. package/dist/runtime/browser-langsmith.d.ts.map +1 -0
  260. package/dist/runtime/browser-langsmith.js +508 -0
  261. package/dist/runtime/browser-langsmith.js.map +1 -0
  262. package/dist/runtime/browser-recorder.py +831 -0
  263. package/dist/runtime/browser-selection.d.ts +10 -0
  264. package/dist/runtime/browser-selection.d.ts.map +1 -0
  265. package/dist/runtime/browser-selection.js +21 -0
  266. package/dist/runtime/browser-selection.js.map +1 -0
  267. package/dist/runtime/browser.d.ts +138 -0
  268. package/dist/runtime/browser.d.ts.map +1 -0
  269. package/dist/runtime/browser.js +802 -0
  270. package/dist/runtime/browser.js.map +1 -0
  271. package/dist/runtime/channel-icon.d.ts +22 -0
  272. package/dist/runtime/channel-icon.d.ts.map +1 -0
  273. package/dist/runtime/channel-icon.js +81 -0
  274. package/dist/runtime/channel-icon.js.map +1 -0
  275. package/dist/runtime/channel.d.ts +11 -0
  276. package/dist/runtime/channel.d.ts.map +1 -1
  277. package/dist/runtime/channel.js.map +1 -1
  278. package/dist/runtime/graph-build-timing.d.ts +30 -0
  279. package/dist/runtime/graph-build-timing.d.ts.map +1 -0
  280. package/dist/runtime/graph-build-timing.js +50 -0
  281. package/dist/runtime/graph-build-timing.js.map +1 -0
  282. package/dist/runtime/identity-http.d.ts +2 -0
  283. package/dist/runtime/identity-http.d.ts.map +1 -1
  284. package/dist/runtime/identity-http.js +38 -2
  285. package/dist/runtime/identity-http.js.map +1 -1
  286. package/dist/runtime/identity-runtime.d.ts +10 -0
  287. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  288. package/dist/runtime/identity-runtime.js +22 -0
  289. package/dist/runtime/identity-runtime.js.map +1 -1
  290. package/dist/runtime/index.d.ts +38 -1
  291. package/dist/runtime/index.d.ts.map +1 -1
  292. package/dist/runtime/index.js +97 -43
  293. package/dist/runtime/index.js.map +1 -1
  294. package/dist/runtime/langsmith-env.d.ts +19 -0
  295. package/dist/runtime/langsmith-env.d.ts.map +1 -0
  296. package/dist/runtime/langsmith-env.js +38 -0
  297. package/dist/runtime/langsmith-env.js.map +1 -0
  298. package/dist/runtime/managed-thread.d.ts +61 -0
  299. package/dist/runtime/managed-thread.d.ts.map +1 -0
  300. package/dist/runtime/managed-thread.js +76 -0
  301. package/dist/runtime/managed-thread.js.map +1 -0
  302. package/dist/runtime/managed-tools.d.ts +10 -2
  303. package/dist/runtime/managed-tools.d.ts.map +1 -1
  304. package/dist/runtime/managed-tools.js +10 -8
  305. package/dist/runtime/managed-tools.js.map +1 -1
  306. package/dist/runtime/memory/policy.d.ts.map +1 -1
  307. package/dist/runtime/memory/policy.js +1 -3
  308. package/dist/runtime/memory/policy.js.map +1 -1
  309. package/dist/runtime/parent-run.d.ts +33 -0
  310. package/dist/runtime/parent-run.d.ts.map +1 -0
  311. package/dist/runtime/parent-run.js +114 -0
  312. package/dist/runtime/parent-run.js.map +1 -0
  313. package/dist/runtime/run-input.d.ts +14 -1
  314. package/dist/runtime/run-input.d.ts.map +1 -1
  315. package/dist/runtime/run-input.js +100 -7
  316. package/dist/runtime/run-input.js.map +1 -1
  317. package/dist/runtime/sandbox-manager.d.ts +18 -4
  318. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  319. package/dist/runtime/sandbox-manager.js +57 -20
  320. package/dist/runtime/sandbox-manager.js.map +1 -1
  321. package/dist/runtime/schedule-auth.d.ts +79 -0
  322. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  323. package/dist/runtime/schedule-auth.js +165 -7
  324. package/dist/runtime/schedule-auth.js.map +1 -1
  325. package/dist/runtime/static-entry.d.ts.map +1 -1
  326. package/dist/runtime/static-entry.js +1 -0
  327. package/dist/runtime/static-entry.js.map +1 -1
  328. package/dist/runtime/thread-record.d.ts +88 -0
  329. package/dist/runtime/thread-record.d.ts.map +1 -0
  330. package/dist/runtime/thread-record.js +213 -0
  331. package/dist/runtime/thread-record.js.map +1 -0
  332. package/dist/runtime/types.d.ts +12 -1
  333. package/dist/runtime/types.d.ts.map +1 -1
  334. package/dist/runtime-schedules.d.ts +15 -0
  335. package/dist/runtime-schedules.d.ts.map +1 -1
  336. package/dist/runtime-schedules.js +83 -20
  337. package/dist/runtime-schedules.js.map +1 -1
  338. package/dist/sandbox.d.ts +0 -6
  339. package/dist/sandbox.d.ts.map +1 -1
  340. package/dist/sandbox.js +3 -7
  341. package/dist/sandbox.js.map +1 -1
  342. package/dist/schedule-channel.d.ts +5 -2
  343. package/dist/schedule-channel.d.ts.map +1 -1
  344. package/dist/schedule-channel.js +13 -12
  345. package/dist/schedule-channel.js.map +1 -1
  346. package/dist/telemetry/metadata.d.ts.map +1 -1
  347. package/dist/telemetry/metadata.js +4 -4
  348. package/dist/telemetry/metadata.js.map +1 -1
  349. package/dist/telemetry/otel/exporter.d.ts.map +1 -1
  350. package/dist/telemetry/otel/exporter.js +3 -3
  351. package/dist/telemetry/otel/exporter.js.map +1 -1
  352. package/dist/types.d.ts +19 -2
  353. package/dist/types.d.ts.map +1 -1
  354. package/dist/types.js.map +1 -1
  355. package/dist/values.d.ts +15 -0
  356. package/dist/values.d.ts.map +1 -0
  357. package/dist/values.js +31 -0
  358. package/dist/values.js.map +1 -0
  359. package/package.json +26 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,kFAAkF;AAClF,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AA8EH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YAChC,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,aAAa,CACL,CAAC;AACX;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YAAI,MAAM,CAAU,CAAC;AAyCvD,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAiD/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,qHAEhC,CAAC;AAqEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,YAAI,OAAO,CAAU,CAAC;AAG/D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkB5B,CAAC"}
@@ -0,0 +1,255 @@
1
+ import { z } from "zod";
2
+ import { nonblankStringSchema } from "../message-schema.js";
3
+ // Shared scalar constraints. Linear identifiers are UUIDs, but only their
4
+ // presence matters here.
5
+ const optionalTextSchema = z.string().nullish();
6
+ /** Receipt metadata only, not a complete Linear webhook payload specification. */
7
+ export const linearReceiptSchema = z.object({
8
+ deliveryId: nonblankStringSchema,
9
+ payload: z.looseObject({
10
+ type: nonblankStringSchema,
11
+ action: nonblankStringSchema,
12
+ organizationId: z.string().optional(),
13
+ }),
14
+ });
15
+ const teamSchema = z.looseObject({
16
+ id: nonblankStringSchema,
17
+ key: nonblankStringSchema,
18
+ name: z.string().optional(),
19
+ });
20
+ const actorSchema = z.looseObject({
21
+ id: nonblankStringSchema,
22
+ type: z.string().optional(),
23
+ name: z.string().optional(),
24
+ });
25
+ // Payload subjects. Loose objects retain unmodeled provider fields.
26
+ const issueSchema = z.looseObject({
27
+ id: nonblankStringSchema,
28
+ identifier: nonblankStringSchema,
29
+ title: z.string(),
30
+ description: optionalTextSchema,
31
+ url: z.string().optional(),
32
+ teamId: z.string().optional(),
33
+ team: teamSchema.optional(),
34
+ labelIds: z.array(z.string()).optional(),
35
+ labels: z
36
+ .array(z.looseObject({ id: z.string(), name: z.string() }))
37
+ .optional(),
38
+ botActor: z.unknown().optional(),
39
+ });
40
+ const commentSchema = z.looseObject({
41
+ id: nonblankStringSchema,
42
+ body: z.string(),
43
+ issueId: nonblankStringSchema,
44
+ parentId: z.string().nullish(),
45
+ userId: z.string().nullish(),
46
+ user: z
47
+ .looseObject({ id: z.string(), name: z.string().optional() })
48
+ .nullish(),
49
+ issue: z
50
+ .looseObject({
51
+ id: nonblankStringSchema,
52
+ identifier: z.string().optional(),
53
+ title: z.string().optional(),
54
+ url: z.string().optional(),
55
+ team: teamSchema.optional(),
56
+ })
57
+ .optional(),
58
+ botActor: z.unknown().optional(),
59
+ });
60
+ const sessionIssueSchema = z.looseObject({
61
+ id: nonblankStringSchema,
62
+ identifier: z.string().optional(),
63
+ title: z.string().optional(),
64
+ url: z.string().optional(),
65
+ description: optionalTextSchema,
66
+ team: teamSchema.optional(),
67
+ });
68
+ /** A Linear agent session: the app was mentioned or delegated an issue. */
69
+ const agentSessionSchema = z.looseObject({
70
+ id: nonblankStringSchema,
71
+ status: z.string().optional(),
72
+ url: z.string().optional(),
73
+ issueId: z.string().nullish(),
74
+ issue: sessionIssueSchema.nullish(),
75
+ // The comment that started the session, when a mention did.
76
+ commentId: z.string().nullish(),
77
+ comment: z
78
+ .looseObject({ id: nonblankStringSchema, body: z.string().optional() })
79
+ .nullish(),
80
+ creatorId: z.string().nullish(),
81
+ creator: z
82
+ .looseObject({ id: nonblankStringSchema, name: z.string().optional() })
83
+ .nullish(),
84
+ });
85
+ /**
86
+ * The activity content types Linear documents; one it adds later reads as
87
+ * `unknown`. A user's reply is a `prompt`.
88
+ */
89
+ export const LINEAR_ACTIVITY_TYPES = [
90
+ "prompt",
91
+ "thought",
92
+ "action",
93
+ "response",
94
+ "error",
95
+ "elicitation",
96
+ ];
97
+ /**
98
+ * The signals Linear documents on a user's activity; one it adds later reads
99
+ * as `unknown`. `stop` asks the agent to stop.
100
+ */
101
+ export const LINEAR_PROMPT_SIGNALS = ["stop"];
102
+ /** What a user said in a session: a reply, or a signal such as `stop`. */
103
+ const agentActivitySchema = z.looseObject({
104
+ content: z.looseObject({
105
+ type: z.enum([...LINEAR_ACTIVITY_TYPES, "unknown"]).catch("unknown"),
106
+ body: z.string().optional(),
107
+ }),
108
+ signal: z
109
+ .enum([...LINEAR_PROMPT_SIGNALS, "unknown"])
110
+ .catch("unknown")
111
+ .nullish(),
112
+ signalMetadata: z.unknown().optional(),
113
+ sourceCommentId: z.string().nullish(),
114
+ userId: z.string().nullish(),
115
+ user: z
116
+ .looseObject({ id: nonblankStringSchema, name: z.string().optional() })
117
+ .nullish(),
118
+ });
119
+ // Common delivery context.
120
+ const envelopeSchema = z.looseObject({
121
+ organizationId: nonblankStringSchema,
122
+ webhookId: z.string().optional(),
123
+ webhookTimestamp: z.number(),
124
+ createdAt: z.string().optional(),
125
+ url: z.string().optional(),
126
+ actor: actorSchema.optional(),
127
+ });
128
+ function dispatchEventSchema(key, payloadSchema) {
129
+ return z.object({
130
+ key: z.literal(key),
131
+ deliveryId: nonblankStringSchema,
132
+ payload: payloadSchema,
133
+ });
134
+ }
135
+ /** Each supported event key requires its exact type, action and subject. */
136
+ export const linearDispatchSchema = z.discriminatedUnion("key", [
137
+ dispatchEventSchema("Issue.create", envelopeSchema.extend({
138
+ type: z.literal("Issue"),
139
+ action: z.literal("create"),
140
+ data: issueSchema,
141
+ })),
142
+ dispatchEventSchema("Issue.update", envelopeSchema.extend({
143
+ type: z.literal("Issue"),
144
+ action: z.literal("update"),
145
+ data: issueSchema,
146
+ // The changed fields' previous values.
147
+ updatedFrom: z.record(z.string(), z.unknown()).optional(),
148
+ })),
149
+ dispatchEventSchema("Comment.create", envelopeSchema.extend({
150
+ type: z.literal("Comment"),
151
+ action: z.literal("create"),
152
+ data: commentSchema,
153
+ })),
154
+ dispatchEventSchema("AgentSessionEvent.created", envelopeSchema.extend({
155
+ type: z.literal("AgentSessionEvent"),
156
+ action: z.literal("created"),
157
+ appUserId: z.string().optional(),
158
+ agentSession: agentSessionSchema,
159
+ // Linear's ready-made prompt: the issue, the thread and who asked.
160
+ promptContext: z.string().nullish(),
161
+ guidance: z.unknown().optional(),
162
+ })),
163
+ dispatchEventSchema("AgentSessionEvent.prompted", envelopeSchema.extend({
164
+ type: z.literal("AgentSessionEvent"),
165
+ action: z.literal("prompted"),
166
+ appUserId: z.string().optional(),
167
+ agentSession: agentSessionSchema,
168
+ agentActivity: agentActivitySchema,
169
+ })),
170
+ ]);
171
+ export const SUPPORTED_EVENT_KEYS = linearDispatchSchema.options.map((option) => option.shape.key.value);
172
+ /** The issue an event is about, wherever its payload keeps it. */
173
+ function eventIssue(event) {
174
+ if (event.payload.type === "AgentSessionEvent") {
175
+ const session = event.payload.agentSession;
176
+ const id = session.issue?.id ?? session.issueId;
177
+ // Linear opens sessions on issues; one without could not be answered.
178
+ if (!id)
179
+ throw new TypeError("Linear agent session has no issue");
180
+ return { id, ...(session.issue?.team && { team: session.issue.team }) };
181
+ }
182
+ if (event.payload.type === "Comment") {
183
+ const { data } = event.payload;
184
+ return {
185
+ id: data.issueId,
186
+ ...(data.issue?.team && { team: data.issue.team }),
187
+ };
188
+ }
189
+ const { data } = event.payload;
190
+ return { id: data.id, ...(data.team && { team: data.team }) };
191
+ }
192
+ /**
193
+ * Who acted: the webhook's actor, or for a session the user who started it or
194
+ * replied in it.
195
+ */
196
+ function eventActor(event) {
197
+ const payload = event.payload;
198
+ const person = payload.type !== "AgentSessionEvent"
199
+ ? payload.actor
200
+ : payload.action === "prompted"
201
+ ? (payload.agentActivity.user ??
202
+ (payload.agentActivity.userId
203
+ ? { id: payload.agentActivity.userId }
204
+ : undefined))
205
+ : (payload.agentSession.creator ??
206
+ (payload.agentSession.creatorId
207
+ ? { id: payload.agentSession.creatorId }
208
+ : undefined));
209
+ if (!person)
210
+ return undefined;
211
+ const { type, name } = person;
212
+ return {
213
+ provider: "linear",
214
+ id: person.id,
215
+ ...(typeof type === "string" && { type }),
216
+ ...(typeof name === "string" && { name }),
217
+ };
218
+ }
219
+ /** Routing metadata every event exposes next to its payload. */
220
+ function routing(event) {
221
+ const issue = eventIssue(event);
222
+ const actor = eventActor(event);
223
+ return {
224
+ organizationId: event.payload.organizationId,
225
+ issueId: issue.id,
226
+ ...(issue.team && {
227
+ team: { id: issue.team.id, key: issue.team.key },
228
+ }),
229
+ ...(actor && { actor }),
230
+ };
231
+ }
232
+ /**
233
+ * A Linear event's fields its endpoints are sent beside its key, delivery ID
234
+ * and payload: the one list of them, so `LinearEndpointRequest` is typed by it.
235
+ */
236
+ export const LINEAR_ENDPOINT_EVENT_FIELDS = ["actor"];
237
+ // Expose common routing metadata while preserving the original payload.
238
+ export const linearEventSchema = linearDispatchSchema.transform((event) => {
239
+ if (event.key === "AgentSessionEvent.created" ||
240
+ event.key === "AgentSessionEvent.prompted")
241
+ return {
242
+ ...event,
243
+ type: event.payload.type,
244
+ action: event.payload.action,
245
+ ...routing(event),
246
+ sessionId: event.payload.agentSession.id,
247
+ };
248
+ return {
249
+ ...event,
250
+ type: event.payload.type,
251
+ action: event.payload.action,
252
+ ...routing(event),
253
+ };
254
+ });
255
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/channels/linear/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import type { z } from "zod";
2
+ import type { MultitaskStrategy } from "../../ingress/runs.js";
3
+ import type { LINEAR_ENDPOINT_EVENT_FIELDS, linearEventSchema } from "./schema.js";
4
+ import type { ChannelRunResult } from "../run-input.js";
5
+ import type { EventFinished } from "../http/provider.js";
6
+ import type { EndpointRequest, EventEndpoint } from "../http/endpoint.js";
7
+ import type { ChannelReply } from "../types.js";
8
+ import type { LinearActor } from "../actor.js";
9
+ import type { ResolveUser } from "../resolve-user.js";
10
+ /** Handwritten schema subsets; unmodeled provider fields remain unknown. */
11
+ type EventUnion = z.output<typeof linearEventSchema>;
12
+ export type LinearEventKey = EventUnion["key"];
13
+ export type LinearEvent<K extends LinearEventKey = LinearEventKey> = Extract<EventUnion, {
14
+ key: K;
15
+ }>;
16
+ export type LinearPayloadFor<K extends LinearEventKey> = LinearEvent<K>["payload"];
17
+ /**
18
+ * The conversation's thread an event belongs to. A handler runs before any
19
+ * run exists, so this is not a run's runtime.
20
+ */
21
+ export interface LinearChannelThread {
22
+ /**
23
+ * The conversation's thread, the issue's or an agent session's, which the
24
+ * run the handler starts runs on. Useful for run context that names the
25
+ * thread, such as a token a backend signs for it.
26
+ */
27
+ id: string;
28
+ channel: {
29
+ name: string;
30
+ };
31
+ }
32
+ /**
33
+ * What an event handler returns: a run's input, as `agent.invoke` takes it —
34
+ * a string, a message such as `new HumanMessage(...)`, state such as
35
+ * `{ messages: [...] }`, or `[input, { context, metadata }]`. `null` or `undefined`
36
+ * starts nothing.
37
+ */
38
+ export type LinearEventResult = ChannelRunResult | null | undefined | void;
39
+ export type LinearEventCallback<K extends LinearEventKey> = (event: LinearEvent<K>, thread: LinearChannelThread) => LinearEventResult | Promise<LinearEventResult>;
40
+ /** The Linear app `mda deploy` sets up: how it looks, and what it may do. */
41
+ export interface LinearAppOptions {
42
+ /**
43
+ * The app's name, shown where people mention it and in its comments: 2–80
44
+ * characters, without "Linear" or a URL. Defaults to the agent's name.
45
+ *
46
+ * Applies only when deploy creates the app. Linear has no API to change an
47
+ * app, so changing it later does nothing: rename an existing app on its
48
+ * settings page in Linear. Deploy reminds you when it keeps an existing app.
49
+ */
50
+ name?: string;
51
+ /**
52
+ * What the app does, shown when a workspace admin installs it: up to 1,000
53
+ * characters. Like `name`, it applies only when deploy creates the app;
54
+ * change an existing app's description on its settings page in Linear.
55
+ */
56
+ description?: string;
57
+ /**
58
+ * The app's icon: a PNG or JPEG image, as a path relative to `channels/`
59
+ * like the Slack channel's `icon`, such as `assets/icon.png`. At least
60
+ * 256×256 pixels and at most 1 MB. The deployment serves it at
61
+ * `/channels/{name}/icon`, and deploy points the new app's icon there.
62
+ * Like `name`, it applies only when deploy creates the app.
63
+ */
64
+ icon?: string;
65
+ /**
66
+ * Keys of the teams (as in `ENG-123`) the channel is limited to: events
67
+ * about other teams' issues start nothing. Defaults to every team the app
68
+ * can see. The app's token still reaches every team it was granted, so
69
+ * limit its team access in Linear too.
70
+ */
71
+ teams?: string[];
72
+ }
73
+ /**
74
+ * Options for `channels.linear(...)`: the app's scope and event handlers that
75
+ * start runs. Each issue is one conversation, and each agent session on it
76
+ * another.
77
+ */
78
+ export interface LinearChannelOptions {
79
+ /** The Linear app `mda deploy` sets up: its name, description, icon and teams. */
80
+ app?: LinearAppOptions;
81
+ /**
82
+ * Map the Linear actor to one of your users, with a function or an endpoint MDA
83
+ * asks; overrides the identity's.
84
+ */
85
+ resolveUser?: ResolveUser<LinearActor> | EventEndpoint;
86
+ /**
87
+ * What an event that starts a run does while its conversation already
88
+ * runs: `enqueue` (the default) waits for the run and starts after it,
89
+ * `interrupt` cancels the run, keeping its progress, and starts at once,
90
+ * `rollback` cancels it and discards its progress, and `reject` starts
91
+ * nothing.
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * // A newer comment replaces the work on an older one.
96
+ * channels.linear({ multitaskStrategy: "interrupt", onEvent })
97
+ * ```
98
+ */
99
+ multitaskStrategy?: MultitaskStrategy;
100
+ /**
101
+ * Whether the channel posts the run's final answer, as a comment or the
102
+ * session's response: `auto` (the default) or `none`, to leave replying to
103
+ * the agent. Session acknowledgements, Stop and error notices still post.
104
+ */
105
+ reply?: ChannelReply;
106
+ /**
107
+ * Event handlers that start runs. Return a prompt (string, message, or
108
+ * state), or nothing to skip. The run's final reply is posted as a comment
109
+ * on the issue, under the comment that started it.
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * { "Issue.create": (e) => `Triage ${e.payload.data.identifier}` }
114
+ * ```
115
+ *
116
+ * In agent sessions the reply goes to the session instead.
117
+ *
118
+ * A handler may also be an endpoint, a URL or a `Request` carrying headers,
119
+ * to have a service of yours decide: MDA POSTs it the event and its thread,
120
+ * and starts the run it answers with. See the README's "Asking your service
121
+ * what to start".
122
+ */
123
+ onEvent?: {
124
+ [K in LinearEventKey]?: LinearEventCallback<K> | EventEndpoint;
125
+ };
126
+ /**
127
+ * Answer Linear agent sessions, which open when someone mentions the app or
128
+ * delegates an issue to it. Defaults to `true`. Without a handler, a new
129
+ * session runs with Linear's prompt for it (`promptContext`), and a reply
130
+ * in the session continues the conversation. The run's progress and reply
131
+ * show in the session, and Stop cancels the run. A run that stops on
132
+ * interrupts answers with a link to its thread in LangSmith Studio, where
133
+ * they are resumed.
134
+ *
135
+ * @experimental Sessions use Linear's Agents API, a Developer Preview, so
136
+ * they may change as Linear changes it.
137
+ */
138
+ sessions?: boolean;
139
+ /**
140
+ * Ignore changes made by other apps and integrations (a delivery whose
141
+ * actor isn't a person, or the creation of an issue or comment with a
142
+ * `botActor`), so automations don't trigger each other. Defaults to `true`.
143
+ * The app's own changes are always ignored.
144
+ */
145
+ ignoreBots?: boolean;
146
+ /**
147
+ * A delivery of a handled event is done, once, with how, to switch on by
148
+ * `type`: the run it started and how that run ended, as LangGraph names it
149
+ * (`run`), why it started none (`skipped`, such as a Stop or a handler
150
+ * that returned nothing), or that MDA lost it (`failed`); and the
151
+ * decisions the thread waits on. Called after the channel's own
152
+ * activities, such as the session's elicitation or "Stopped.", in the
153
+ * background; failures are logged. See `channels.http`'s `onFinish` for
154
+ * its limits.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * onFinish: async (event, thread, finished) => {
159
+ * if (finished.type === "run" && finished.run.status === "success")
160
+ * await reportRun(thread.id, finished.run.id);
161
+ * }
162
+ * ```
163
+ */
164
+ onFinish?: EventFinished<LinearEvent, LinearChannelThread>;
165
+ }
166
+ /** What a Linear channel POSTs an endpoint, for one event key or any. */
167
+ export type LinearEndpointRequest<K extends LinearEventKey = LinearEventKey> = EndpointRequest<LinearEvent<K>, (typeof LINEAR_ENDPOINT_EVENT_FIELDS)[number]>;
168
+ export {};
169
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channels/linear/types.ts"],"names":[],"mappings":""}
@@ -4,6 +4,8 @@ import type { MessageContent } from "@langchain/core/messages";
4
4
  import type { JsonValue } from "./types.js";
5
5
  /** Accept only finite, acyclic plain JSON, including frozen values. */
6
6
  export declare function isJsonValue(value: unknown, ancestors?: Set<object>): value is JsonValue;
7
+ /** A string with something other than whitespace in it. */
8
+ export declare const nonblankStringSchema: z.ZodString;
7
9
  export declare const jsonValueSchema: z.ZodCustom<JsonValue, JsonValue>;
8
10
  export declare const channelContentMessageSchema: z.ZodObject<{
9
11
  type: z.ZodLiteral<"content">;
@@ -1 +1 @@
1
- {"version":3,"file":"message-schema.d.ts","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,uEAAuE;AACvE,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,SAAS,cAAoB,GAC5B,KAAK,IAAI,SAAS,CAiBpB;AAED,eAAO,MAAM,eAAe,mCAG3B,CAAC;AAeF,eAAO,MAAM,2BAA2B;;;kBAE7B,CAAC;AACZ,eAAO,MAAM,0BAA0B;;;kBAE5B,CAAC;AACZ,eAAO,MAAM,oBAAoB;;;;;;4BAG/B,CAAC"}
1
+ {"version":3,"file":"message-schema.d.ts","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,uEAAuE;AACvE,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,SAAS,cAAoB,GAC5B,KAAK,IAAI,SAAS,CAiBpB;AAED,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,aAEY,CAAC;AAE9C,eAAO,MAAM,eAAe,mCAG3B,CAAC;AAeF,eAAO,MAAM,2BAA2B;;;kBAE7B,CAAC;AACZ,eAAO,MAAM,0BAA0B;;;kBAE5B,CAAC;AACZ,eAAO,MAAM,oBAAoB;;;;;;4BAG/B,CAAC"}
@@ -17,6 +17,10 @@ export function isJsonValue(value, ancestors = new Set()) {
17
17
  ancestors.delete(value);
18
18
  return valid;
19
19
  }
20
+ /** A string with something other than whitespace in it. */
21
+ export const nonblankStringSchema = z
22
+ .string()
23
+ .refine((value) => value.trim().length > 0);
20
24
  export const jsonValueSchema = z.custom(isJsonValue, "must be finite acyclic JSON");
21
25
  const contentSchema = z.custom((value) => typeof value === "string" ||
22
26
  (Array.isArray(value) &&
@@ -1 +1 @@
1
- {"version":3,"file":"message-schema.js","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,uEAAuE;AACvE,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,SAAS,GAAG,IAAI,GAAG,EAAU;IAE7B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3E,OAAO,IAAI,CAAC;IACd,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS;QACjD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI;QAErC,OAAO,KAAK,CAAC;IACf,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACvE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CACvC,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CACrC,WAAW,EACX,6BAA6B,CAC9B,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;IACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnB,KAAK,CAAC,KAAK,CACT,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,WAAW,CAAC,KAAK,CAAC,CACrB,CAAC,EACN,iDAAiD,CAClD,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,2BAA2B;IAC3B,0BAA0B;CAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"message-schema.js","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,uEAAuE;AACvE,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,SAAS,GAAG,IAAI,GAAG,EAAU;IAE7B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3E,OAAO,IAAI,CAAC;IACd,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS;QACjD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI;QAErC,OAAO,KAAK,CAAC;IACf,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACvE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CACvC,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CACrC,WAAW,EACX,6BAA6B,CAC9B,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;IACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnB,KAAK,CAAC,KAAK,CACT,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,WAAW,CAAC,KAAK,CAAC,CACrB,CAAC,EACN,iDAAiD,CAClD,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,2BAA2B;IAC3B,0BAA0B;CAC3B,CAAC,CAAC"}
@@ -7,8 +7,22 @@
7
7
  */
8
8
  import type { JsonObject } from "./manifest.js";
9
9
  import type { ChannelMessagingAdapter } from "./runtime.js";
10
+ import type { HttpDelivery } from "./http/types.js";
11
+ import type { JsonValue } from "./types.js";
10
12
  import type { Channel } from "../runtime/channel.js";
11
13
  import type { Connector } from "../runtime/connector.js";
14
+ /**
15
+ * Tells a conversation that its thread waits on a decision. Internal: the
16
+ * built-in GitHub and Linear channels set it; `channels.http()` has none.
17
+ */
18
+ export type PausedNotice = (target: JsonValue, delivery: HttpDelivery, outcome: "interrupted" | "waiting") => Promise<void>;
19
+ /** Give a built-in channel its paused notice. */
20
+ export declare function withPausedNotice<T extends object>(channel: T, notice: PausedNotice): T;
21
+ /**
22
+ * Whether the channel posts a run's final answer: `false` only for one
23
+ * declared with `reply: "none"`, which leaves replying to the agent.
24
+ */
25
+ export declare function channelAutoRepliesForName(name: string): boolean;
12
26
  export declare function channelProviderForName(name: string): string | undefined;
13
27
  export declare function channelProviderConfigForName(name: string): JsonObject | undefined;
14
28
  /** Register messaging factories from collected channels. */
@@ -17,4 +31,6 @@ export declare function registerChannelMessaging(channels: readonly Channel[]):
17
31
  export declare function registerConnectorMessaging(connectors: readonly Connector[]): void;
18
32
  /** Build a transport for a channel/connector file-stem name. */
19
33
  export declare function messagingTransportForName(name: string, env?: NodeJS.ProcessEnv): ChannelMessagingAdapter | undefined;
34
+ /** The paused notice of a channel by file-stem name, if it has one. */
35
+ export declare function pausedNoticeForName(name: string): PausedNotice | undefined;
20
36
  //# sourceMappingURL=messaging-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messaging-registry.d.ts","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAmBzD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,GACX,UAAU,GAAG,SAAS,CAExB;AA+BD,4DAA4D;AAC5D,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAE3E;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,IAAI,CAEN;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,uBAAuB,GAAG,SAAS,CAErC"}
1
+ {"version":3,"file":"messaging-registry.d.ts","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMzD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,aAAa,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;AAKnB,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,YAAY,GACnB,CAAC,CAGH;AAiBD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAGD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,GACX,UAAU,GAAG,SAAS,CAExB;AAqCD,4DAA4D;AAC5D,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAE3E;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,IAAI,CAEN;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,uBAAuB,GAAG,SAAS,CAErC;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE1E"}
@@ -6,7 +6,22 @@
6
6
  * delivery look up transports by file-stem name.
7
7
  */
8
8
  import { registerDeclaredSourceProviders } from "./source-providers.js";
9
+ /** Where a channel keeps its paused notice, out of its public shape. */
10
+ const PAUSED_NOTICE = Symbol("mda.pausedNotice");
11
+ /** Give a built-in channel its paused notice. */
12
+ export function withPausedNotice(channel, notice) {
13
+ Object.defineProperty(channel, PAUSED_NOTICE, { value: notice });
14
+ return channel;
15
+ }
9
16
  const providerByName = new Map();
17
+ const repliesNoneByName = new Set();
18
+ /**
19
+ * Whether the channel posts a run's final answer: `false` only for one
20
+ * declared with `reply: "none"`, which leaves replying to the agent.
21
+ */
22
+ export function channelAutoRepliesForName(name) {
23
+ return !repliesNoneByName.has(name);
24
+ }
10
25
  const providerConfigByName = new Map();
11
26
  export function channelProviderForName(name) {
12
27
  return providerByName.get(name);
@@ -15,6 +30,7 @@ export function channelProviderConfigForName(name) {
15
30
  return providerConfigByName.get(name);
16
31
  }
17
32
  const byName = new Map();
33
+ const pausedNoticeByName = new Map();
18
34
  function registerMessagingSources(sources) {
19
35
  registerDeclaredSourceProviders(sources);
20
36
  for (const source of sources) {
@@ -27,6 +43,11 @@ function registerMessagingSources(sources) {
27
43
  else {
28
44
  byName.delete(source.name);
29
45
  }
46
+ const notice = source[PAUSED_NOTICE];
47
+ if (notice)
48
+ pausedNoticeByName.set(source.name, notice);
49
+ else
50
+ pausedNoticeByName.delete(source.name);
30
51
  if (source.kind)
31
52
  providerByName.set(source.name, source.kind);
32
53
  const requirements = typeof source.requirements === "function"
@@ -35,6 +56,10 @@ function registerMessagingSources(sources) {
35
56
  if (requirements?.provider) {
36
57
  providerByName.set(source.name, requirements.provider);
37
58
  }
59
+ if (source.reply === "none")
60
+ repliesNoneByName.add(source.name);
61
+ else
62
+ repliesNoneByName.delete(source.name);
38
63
  if (requirements?.providerConfig) {
39
64
  providerConfigByName.set(source.name, requirements.providerConfig);
40
65
  }
@@ -55,4 +80,8 @@ export function registerConnectorMessaging(connectors) {
55
80
  export function messagingTransportForName(name, env = process.env) {
56
81
  return byName.get(name)?.(env);
57
82
  }
83
+ /** The paused notice of a channel by file-stem name, if it has one. */
84
+ export function pausedNoticeForName(name) {
85
+ return pausedNoticeByName.get(name);
86
+ }
58
87
  //# sourceMappingURL=messaging-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messaging-registry.js","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAoBxE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AACjD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE3D,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAAY;IAEZ,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEnD,SAAS,wBAAwB,CAAC,OAAmC;IACnE,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,IAAI;YAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU;YACvC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC3B,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,YAAY,EAAE,cAAc,EAAE,CAAC;YACjC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,wBAAwB,CAAC,QAA4B;IACnE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,0BAA0B,CACxC,UAAgC;IAEhC,wBAAwB,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"messaging-registry.js","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Why a channel's reserved agent connection cannot be read as a user
3
+ * connection, or undefined for any other slug. Reading an app's token as the
4
+ * person running the agent is not supported yet.
5
+ */
6
+ export declare function reservedUserConnectionError(slug: string): string | undefined;
7
+ /**
8
+ * The connection that actually holds a channel's reserved agent connection;
9
+ * other slugs pass through unchanged.
10
+ */
11
+ export declare function reservedAgentConnectionSlug(slug: string, deploymentId: string | undefined): string;
12
+ //# sourceMappingURL=reserved-connections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-connections.d.ts","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"AAiDA;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS5E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAGR"}