managed-deepagents 0.4.1 → 0.4.3-dev.94

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 (453) hide show
  1. package/README.md +78 -35
  2. package/dist/channels/assistant-text.js +1 -1
  3. package/dist/channels/assistant-text.js.map +1 -1
  4. package/dist/channels/binding.d.ts.map +1 -1
  5. package/dist/channels/binding.js +3 -1
  6. package/dist/channels/binding.js.map +1 -1
  7. package/dist/channels/index.d.ts +7 -8
  8. package/dist/channels/index.d.ts.map +1 -1
  9. package/dist/channels/index.js +6 -5
  10. package/dist/channels/index.js.map +1 -1
  11. package/dist/channels/manifest.d.ts +7 -4
  12. package/dist/channels/manifest.d.ts.map +1 -1
  13. package/dist/channels/messaging-registry.d.ts +21 -0
  14. package/dist/channels/messaging-registry.d.ts.map +1 -0
  15. package/dist/channels/messaging-registry.js +50 -0
  16. package/dist/channels/messaging-registry.js.map +1 -0
  17. package/dist/channels/registry-types.d.ts +1 -1
  18. package/dist/channels/registry.d.ts +4 -3
  19. package/dist/channels/registry.d.ts.map +1 -1
  20. package/dist/channels/registry.js +5 -6
  21. package/dist/channels/registry.js.map +1 -1
  22. package/dist/channels/schedule-delivery.d.ts +4 -1
  23. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  24. package/dist/channels/schedule-delivery.js +3 -1
  25. package/dist/channels/schedule-delivery.js.map +1 -1
  26. package/dist/channels/slack/adapter.d.ts +1 -2
  27. package/dist/channels/slack/adapter.d.ts.map +1 -1
  28. package/dist/channels/slack/adapter.js +0 -2
  29. package/dist/channels/slack/adapter.js.map +1 -1
  30. package/dist/channels/slack/http.d.ts +7 -39
  31. package/dist/channels/slack/http.d.ts.map +1 -1
  32. package/dist/channels/slack/http.js +64 -122
  33. package/dist/channels/slack/http.js.map +1 -1
  34. package/dist/channels/slack/index.d.ts +94 -8
  35. package/dist/channels/slack/index.d.ts.map +1 -1
  36. package/dist/channels/slack/index.js +144 -6
  37. package/dist/channels/slack/index.js.map +1 -1
  38. package/dist/channels/slack/normalize.d.ts +6 -4
  39. package/dist/channels/slack/normalize.d.ts.map +1 -1
  40. package/dist/channels/slack/normalize.js +61 -28
  41. package/dist/channels/slack/normalize.js.map +1 -1
  42. package/dist/channels/slack/transport.d.ts.map +1 -1
  43. package/dist/channels/slack/transport.js +3 -2
  44. package/dist/channels/slack/transport.js.map +1 -1
  45. package/dist/channels/store.d.ts +14 -0
  46. package/dist/channels/store.d.ts.map +1 -1
  47. package/dist/channels/store.js +41 -27
  48. package/dist/channels/store.js.map +1 -1
  49. package/dist/connectors/marketplace/catalog.d.ts +96 -0
  50. package/dist/connectors/marketplace/catalog.d.ts.map +1 -0
  51. package/dist/connectors/marketplace/catalog.js +213 -0
  52. package/dist/connectors/marketplace/catalog.js.map +1 -0
  53. package/dist/connectors/marketplace/fleet-mcp.d.ts +62 -0
  54. package/dist/connectors/marketplace/fleet-mcp.d.ts.map +1 -0
  55. package/dist/connectors/marketplace/fleet-mcp.js +215 -0
  56. package/dist/connectors/marketplace/fleet-mcp.js.map +1 -0
  57. package/dist/connectors/marketplace/index.d.ts +31 -0
  58. package/dist/connectors/marketplace/index.d.ts.map +1 -0
  59. package/dist/connectors/marketplace/index.js +39 -0
  60. package/dist/connectors/marketplace/index.js.map +1 -0
  61. package/dist/connectors/marketplace/load.d.ts +14 -0
  62. package/dist/connectors/marketplace/load.d.ts.map +1 -0
  63. package/dist/connectors/marketplace/load.js +206 -0
  64. package/dist/connectors/marketplace/load.js.map +1 -0
  65. package/dist/connectors/mcp/index.d.ts +13 -20
  66. package/dist/connectors/mcp/index.d.ts.map +1 -1
  67. package/dist/connectors/mcp/index.js +92 -112
  68. package/dist/connectors/mcp/index.js.map +1 -1
  69. package/dist/connectors/mcp/load.d.ts.map +1 -1
  70. package/dist/connectors/mcp/load.js +16 -40
  71. package/dist/connectors/mcp/load.js.map +1 -1
  72. package/dist/connectors/slack/index.d.ts +24 -0
  73. package/dist/connectors/slack/index.d.ts.map +1 -0
  74. package/dist/connectors/slack/index.js +64 -0
  75. package/dist/connectors/slack/index.js.map +1 -0
  76. package/dist/connectors/tool-selection.d.ts +55 -0
  77. package/dist/connectors/tool-selection.d.ts.map +1 -0
  78. package/dist/connectors/tool-selection.js +112 -0
  79. package/dist/connectors/tool-selection.js.map +1 -0
  80. package/dist/connectors/toolserver/catalog.d.ts +326 -0
  81. package/dist/connectors/toolserver/catalog.d.ts.map +1 -0
  82. package/dist/connectors/toolserver/catalog.js +415 -0
  83. package/dist/connectors/toolserver/catalog.js.map +1 -0
  84. package/dist/connectors/toolserver/connectors.d.ts +698 -0
  85. package/dist/connectors/toolserver/connectors.d.ts.map +1 -0
  86. package/dist/connectors/toolserver/connectors.js +13 -0
  87. package/dist/connectors/toolserver/connectors.js.map +1 -0
  88. package/dist/connectors/toolserver/index.d.ts +142 -0
  89. package/dist/connectors/toolserver/index.d.ts.map +1 -0
  90. package/dist/connectors/toolserver/index.js +105 -0
  91. package/dist/connectors/toolserver/index.js.map +1 -0
  92. package/dist/connectors/toolserver/integrations.d.ts +103 -0
  93. package/dist/connectors/toolserver/integrations.d.ts.map +1 -0
  94. package/dist/connectors/toolserver/integrations.js +288 -0
  95. package/dist/connectors/toolserver/integrations.js.map +1 -0
  96. package/dist/connectors/toolserver/load.d.ts +55 -0
  97. package/dist/connectors/toolserver/load.d.ts.map +1 -0
  98. package/dist/connectors/toolserver/load.js +289 -0
  99. package/dist/connectors/toolserver/load.js.map +1 -0
  100. package/dist/define-deep-agent.d.ts.map +1 -1
  101. package/dist/define-deep-agent.js +9 -3
  102. package/dist/define-deep-agent.js.map +1 -1
  103. package/dist/extension.d.ts +69 -0
  104. package/dist/extension.d.ts.map +1 -0
  105. package/dist/extension.js +108 -0
  106. package/dist/extension.js.map +1 -0
  107. package/dist/identity/actor-subject.d.ts +60 -0
  108. package/dist/identity/actor-subject.d.ts.map +1 -0
  109. package/dist/identity/actor-subject.js +107 -0
  110. package/dist/identity/actor-subject.js.map +1 -0
  111. package/dist/identity/byo-oauth.d.ts +105 -0
  112. package/dist/identity/byo-oauth.d.ts.map +1 -0
  113. package/dist/identity/byo-oauth.js +190 -0
  114. package/dist/identity/byo-oauth.js.map +1 -0
  115. package/dist/identity/claims.d.ts +16 -0
  116. package/dist/identity/claims.d.ts.map +1 -0
  117. package/dist/identity/claims.js +33 -0
  118. package/dist/identity/claims.js.map +1 -0
  119. package/dist/identity/connect-inference.d.ts +37 -0
  120. package/dist/identity/connect-inference.d.ts.map +1 -0
  121. package/dist/identity/connect-inference.js +53 -0
  122. package/dist/identity/connect-inference.js.map +1 -0
  123. package/dist/identity/connect-provider-types.d.ts +35 -6
  124. package/dist/identity/connect-provider-types.d.ts.map +1 -1
  125. package/dist/identity/connect-provider-types.js +3 -1
  126. package/dist/identity/connect-provider-types.js.map +1 -1
  127. package/dist/identity/connect-provider.d.ts +9 -4
  128. package/dist/identity/connect-provider.d.ts.map +1 -1
  129. package/dist/identity/connect-provider.js +39 -13
  130. package/dist/identity/connect-provider.js.map +1 -1
  131. package/dist/identity/credential-resolvers.d.ts +33 -0
  132. package/dist/identity/credential-resolvers.d.ts.map +1 -0
  133. package/dist/identity/credential-resolvers.js +62 -0
  134. package/dist/identity/credential-resolvers.js.map +1 -0
  135. package/dist/identity/define-fleet-connect.d.ts +53 -0
  136. package/dist/identity/define-fleet-connect.d.ts.map +1 -0
  137. package/dist/identity/define-fleet-connect.js +76 -0
  138. package/dist/identity/define-fleet-connect.js.map +1 -0
  139. package/dist/identity/fleet-connect-hint.d.ts +41 -0
  140. package/dist/identity/fleet-connect-hint.d.ts.map +1 -0
  141. package/dist/identity/fleet-connect-hint.js +190 -0
  142. package/dist/identity/fleet-connect-hint.js.map +1 -0
  143. package/dist/identity/fleet-connect.d.ts +93 -0
  144. package/dist/identity/fleet-connect.d.ts.map +1 -0
  145. package/dist/identity/fleet-connect.js +256 -0
  146. package/dist/identity/fleet-connect.js.map +1 -0
  147. package/dist/identity/fleet-integration-connect.d.ts +32 -0
  148. package/dist/identity/fleet-integration-connect.d.ts.map +1 -0
  149. package/dist/identity/fleet-integration-connect.js +35 -0
  150. package/dist/identity/fleet-integration-connect.js.map +1 -0
  151. package/dist/identity/fleet.d.ts +56 -0
  152. package/dist/identity/fleet.d.ts.map +1 -0
  153. package/dist/identity/fleet.js +131 -0
  154. package/dist/identity/fleet.js.map +1 -0
  155. package/dist/identity/github/connect-http.d.ts +8 -4
  156. package/dist/identity/github/connect-http.d.ts.map +1 -1
  157. package/dist/identity/github/connect-http.js +32 -15
  158. package/dist/identity/github/connect-http.js.map +1 -1
  159. package/dist/identity/github/credentials-store.d.ts +10 -10
  160. package/dist/identity/github/credentials-store.d.ts.map +1 -1
  161. package/dist/identity/github/credentials-store.js +51 -49
  162. package/dist/identity/github/credentials-store.js.map +1 -1
  163. package/dist/identity/github/credentials.d.ts +19 -14
  164. package/dist/identity/github/credentials.d.ts.map +1 -1
  165. package/dist/identity/github/credentials.js +54 -24
  166. package/dist/identity/github/credentials.js.map +1 -1
  167. package/dist/identity/github/index.d.ts +1 -4
  168. package/dist/identity/github/index.d.ts.map +1 -1
  169. package/dist/identity/github/index.js +0 -3
  170. package/dist/identity/github/index.js.map +1 -1
  171. package/dist/identity/github/oauth.d.ts +18 -20
  172. package/dist/identity/github/oauth.d.ts.map +1 -1
  173. package/dist/identity/github/oauth.js +90 -109
  174. package/dist/identity/github/oauth.js.map +1 -1
  175. package/dist/identity/google/connect-http.d.ts +37 -0
  176. package/dist/identity/google/connect-http.d.ts.map +1 -0
  177. package/dist/identity/google/connect-http.js +42 -0
  178. package/dist/identity/google/connect-http.js.map +1 -0
  179. package/dist/identity/google/index.d.ts +7 -0
  180. package/dist/identity/google/index.d.ts.map +1 -0
  181. package/dist/identity/google/index.js +6 -0
  182. package/dist/identity/google/index.js.map +1 -0
  183. package/dist/identity/google/oauth.d.ts +22 -0
  184. package/dist/identity/google/oauth.d.ts.map +1 -0
  185. package/dist/identity/google/oauth.js +48 -0
  186. package/dist/identity/google/oauth.js.map +1 -0
  187. package/dist/identity/index.d.ts +40 -64
  188. package/dist/identity/index.d.ts.map +1 -1
  189. package/dist/identity/index.js +104 -243
  190. package/dist/identity/index.js.map +1 -1
  191. package/dist/identity/linkedin/connect-http.d.ts +37 -0
  192. package/dist/identity/linkedin/connect-http.d.ts.map +1 -0
  193. package/dist/identity/linkedin/connect-http.js +41 -0
  194. package/dist/identity/linkedin/connect-http.js.map +1 -0
  195. package/dist/identity/linkedin/index.d.ts +7 -0
  196. package/dist/identity/linkedin/index.d.ts.map +1 -0
  197. package/dist/identity/linkedin/index.js +6 -0
  198. package/dist/identity/linkedin/index.js.map +1 -0
  199. package/dist/identity/linkedin/oauth.d.ts +22 -0
  200. package/dist/identity/linkedin/oauth.d.ts.map +1 -0
  201. package/dist/identity/linkedin/oauth.js +47 -0
  202. package/dist/identity/linkedin/oauth.js.map +1 -0
  203. package/dist/identity/loopback.d.ts +27 -2
  204. package/dist/identity/loopback.d.ts.map +1 -1
  205. package/dist/identity/loopback.js +61 -8
  206. package/dist/identity/loopback.js.map +1 -1
  207. package/dist/identity/marketplace/connect-hint.d.ts +31 -0
  208. package/dist/identity/marketplace/connect-hint.d.ts.map +1 -0
  209. package/dist/identity/marketplace/connect-hint.js +59 -0
  210. package/dist/identity/marketplace/connect-hint.js.map +1 -0
  211. package/dist/identity/marketplace/connect.d.ts +51 -0
  212. package/dist/identity/marketplace/connect.d.ts.map +1 -0
  213. package/dist/identity/marketplace/connect.js +88 -0
  214. package/dist/identity/marketplace/connect.js.map +1 -0
  215. package/dist/identity/marketplace/index.d.ts +9 -0
  216. package/dist/identity/marketplace/index.d.ts.map +1 -0
  217. package/dist/identity/marketplace/index.js +9 -0
  218. package/dist/identity/marketplace/index.js.map +1 -0
  219. package/dist/identity/microsoft/connect-http.d.ts +38 -0
  220. package/dist/identity/microsoft/connect-http.d.ts.map +1 -0
  221. package/dist/identity/microsoft/connect-http.js +42 -0
  222. package/dist/identity/microsoft/connect-http.js.map +1 -0
  223. package/dist/identity/microsoft/index.d.ts +7 -0
  224. package/dist/identity/microsoft/index.d.ts.map +1 -0
  225. package/dist/identity/microsoft/index.js +6 -0
  226. package/dist/identity/microsoft/index.js.map +1 -0
  227. package/dist/identity/microsoft/oauth.d.ts +24 -0
  228. package/dist/identity/microsoft/oauth.d.ts.map +1 -0
  229. package/dist/identity/microsoft/oauth.js +65 -0
  230. package/dist/identity/microsoft/oauth.js.map +1 -0
  231. package/dist/identity/oauth-env.d.ts +43 -0
  232. package/dist/identity/oauth-env.d.ts.map +1 -0
  233. package/dist/identity/oauth-env.js +66 -0
  234. package/dist/identity/oauth-env.js.map +1 -0
  235. package/dist/identity/oauth-tickets.d.ts +37 -0
  236. package/dist/identity/oauth-tickets.d.ts.map +1 -0
  237. package/dist/identity/oauth-tickets.js +114 -0
  238. package/dist/identity/oauth-tickets.js.map +1 -0
  239. package/dist/identity/options.d.ts +35 -0
  240. package/dist/identity/options.d.ts.map +1 -0
  241. package/dist/identity/options.js +80 -0
  242. package/dist/identity/options.js.map +1 -0
  243. package/dist/identity/slack/connect-http.d.ts +6 -4
  244. package/dist/identity/slack/connect-http.d.ts.map +1 -1
  245. package/dist/identity/slack/connect-http.js +27 -17
  246. package/dist/identity/slack/connect-http.js.map +1 -1
  247. package/dist/identity/slack/index.d.ts +1 -2
  248. package/dist/identity/slack/index.d.ts.map +1 -1
  249. package/dist/identity/slack/index.js +1 -2
  250. package/dist/identity/slack/index.js.map +1 -1
  251. package/dist/identity/slack/links.d.ts +18 -17
  252. package/dist/identity/slack/links.d.ts.map +1 -1
  253. package/dist/identity/slack/links.js +64 -61
  254. package/dist/identity/slack/links.js.map +1 -1
  255. package/dist/identity/slack/oauth.d.ts +3 -35
  256. package/dist/identity/slack/oauth.d.ts.map +1 -1
  257. package/dist/identity/slack/oauth.js +9 -115
  258. package/dist/identity/slack/oauth.js.map +1 -1
  259. package/dist/identity/supabase.js +9 -9
  260. package/dist/identity/supabase.js.map +1 -1
  261. package/dist/identity/types.d.ts +91 -54
  262. package/dist/identity/types.d.ts.map +1 -1
  263. package/dist/identity/x/connect-http.d.ts +38 -0
  264. package/dist/identity/x/connect-http.d.ts.map +1 -0
  265. package/dist/identity/x/connect-http.js +41 -0
  266. package/dist/identity/x/connect-http.js.map +1 -0
  267. package/dist/identity/x/index.d.ts +6 -0
  268. package/dist/identity/x/index.d.ts.map +1 -0
  269. package/dist/identity/x/index.js +5 -0
  270. package/dist/identity/x/index.js.map +1 -0
  271. package/dist/index.d.ts +9 -20
  272. package/dist/index.d.ts.map +1 -1
  273. package/dist/index.js +3 -11
  274. package/dist/index.js.map +1 -1
  275. package/dist/ingress/index.d.ts +52 -0
  276. package/dist/ingress/index.d.ts.map +1 -0
  277. package/dist/ingress/index.js +127 -0
  278. package/dist/ingress/index.js.map +1 -0
  279. package/dist/memory/define-memory.d.ts +39 -0
  280. package/dist/memory/define-memory.d.ts.map +1 -0
  281. package/dist/memory/define-memory.js +78 -0
  282. package/dist/memory/define-memory.js.map +1 -0
  283. package/dist/memory/index.d.ts +9 -0
  284. package/dist/memory/index.d.ts.map +1 -0
  285. package/dist/memory/index.js +8 -0
  286. package/dist/memory/index.js.map +1 -0
  287. package/dist/memory/instructions-middleware.d.ts +74 -0
  288. package/dist/memory/instructions-middleware.d.ts.map +1 -0
  289. package/dist/memory/instructions-middleware.js +115 -0
  290. package/dist/memory/instructions-middleware.js.map +1 -0
  291. package/dist/memory/slices.d.ts +21 -0
  292. package/dist/memory/slices.d.ts.map +1 -0
  293. package/dist/memory/slices.js +61 -0
  294. package/dist/memory/slices.js.map +1 -0
  295. package/dist/memory/types.d.ts +71 -0
  296. package/dist/memory/types.d.ts.map +1 -0
  297. package/dist/memory/types.js +10 -0
  298. package/dist/memory/types.js.map +1 -0
  299. package/dist/namespaces.d.ts +262 -0
  300. package/dist/namespaces.d.ts.map +1 -0
  301. package/dist/namespaces.js +101 -0
  302. package/dist/namespaces.js.map +1 -0
  303. package/dist/runtime/auth.d.ts +43 -32
  304. package/dist/runtime/auth.d.ts.map +1 -1
  305. package/dist/runtime/auth.js +225 -125
  306. package/dist/runtime/auth.js.map +1 -1
  307. package/dist/runtime/backend.d.ts +1 -1
  308. package/dist/runtime/backend.d.ts.map +1 -1
  309. package/dist/runtime/backend.js +26 -5
  310. package/dist/runtime/backend.js.map +1 -1
  311. package/dist/runtime/channel.d.ts +91 -0
  312. package/dist/runtime/channel.d.ts.map +1 -0
  313. package/dist/runtime/channel.js +98 -0
  314. package/dist/runtime/channel.js.map +1 -0
  315. package/dist/runtime/connector.d.ts +66 -22
  316. package/dist/runtime/connector.d.ts.map +1 -1
  317. package/dist/runtime/connector.js +68 -33
  318. package/dist/runtime/connector.js.map +1 -1
  319. package/dist/runtime/cors.d.ts +12 -3
  320. package/dist/runtime/cors.d.ts.map +1 -1
  321. package/dist/runtime/cors.js +23 -5
  322. package/dist/runtime/cors.js.map +1 -1
  323. package/dist/runtime/credentials.d.ts +8 -8
  324. package/dist/runtime/credentials.d.ts.map +1 -1
  325. package/dist/runtime/credentials.js +46 -23
  326. package/dist/runtime/credentials.js.map +1 -1
  327. package/dist/runtime/eval-filesystem.d.ts +7 -0
  328. package/dist/runtime/eval-filesystem.d.ts.map +1 -0
  329. package/dist/runtime/eval-filesystem.js +44 -0
  330. package/dist/runtime/eval-filesystem.js.map +1 -0
  331. package/dist/runtime/http.d.ts +46 -0
  332. package/dist/runtime/http.d.ts.map +1 -0
  333. package/dist/runtime/http.js +53 -0
  334. package/dist/runtime/http.js.map +1 -0
  335. package/dist/runtime/identity-http.d.ts +13 -20
  336. package/dist/runtime/identity-http.d.ts.map +1 -1
  337. package/dist/runtime/identity-http.js +158 -75
  338. package/dist/runtime/identity-http.js.map +1 -1
  339. package/dist/runtime/identity-runtime.d.ts +12 -28
  340. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  341. package/dist/runtime/identity-runtime.js +35 -72
  342. package/dist/runtime/identity-runtime.js.map +1 -1
  343. package/dist/runtime/index.d.ts +97 -227
  344. package/dist/runtime/index.d.ts.map +1 -1
  345. package/dist/runtime/index.js +114 -64
  346. package/dist/runtime/index.js.map +1 -1
  347. package/dist/runtime/memory/index.d.ts +0 -2
  348. package/dist/runtime/memory/index.d.ts.map +1 -1
  349. package/dist/runtime/memory/index.js +0 -2
  350. package/dist/runtime/memory/index.js.map +1 -1
  351. package/dist/runtime/memory/mounts.d.ts +4 -12
  352. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  353. package/dist/runtime/memory/mounts.js +9 -20
  354. package/dist/runtime/memory/mounts.js.map +1 -1
  355. package/dist/runtime/recursion-limit.d.ts +22 -0
  356. package/dist/runtime/recursion-limit.d.ts.map +1 -0
  357. package/dist/runtime/recursion-limit.js +46 -0
  358. package/dist/runtime/recursion-limit.js.map +1 -0
  359. package/dist/runtime/sandbox-manager.d.ts +60 -3
  360. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  361. package/dist/runtime/sandbox-manager.js +326 -26
  362. package/dist/runtime/sandbox-manager.js.map +1 -1
  363. package/dist/runtime/sandbox-stream-retry.d.ts +18 -0
  364. package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -0
  365. package/dist/runtime/sandbox-stream-retry.js +90 -0
  366. package/dist/runtime/sandbox-stream-retry.js.map +1 -0
  367. package/dist/runtime/setup-script.d.ts.map +1 -1
  368. package/dist/runtime/setup-script.js +16 -2
  369. package/dist/runtime/setup-script.js.map +1 -1
  370. package/dist/runtime/types.d.ts +22 -0
  371. package/dist/runtime/types.d.ts.map +1 -1
  372. package/dist/runtime/validated-token.d.ts +9 -14
  373. package/dist/runtime/validated-token.d.ts.map +1 -1
  374. package/dist/runtime/validated-token.js +79 -106
  375. package/dist/runtime/validated-token.js.map +1 -1
  376. package/dist/sandbox.d.ts +17 -42
  377. package/dist/sandbox.d.ts.map +1 -1
  378. package/dist/sandbox.js +11 -32
  379. package/dist/sandbox.js.map +1 -1
  380. package/dist/schedules.js +8 -9
  381. package/dist/schedules.js.map +1 -1
  382. package/dist/types.d.ts +4 -3
  383. package/dist/types.d.ts.map +1 -1
  384. package/dist/types.js.map +1 -1
  385. package/package.json +22 -29
  386. package/dist/channels/collect.d.ts +0 -23
  387. package/dist/channels/collect.d.ts.map +0 -1
  388. package/dist/channels/collect.js +0 -46
  389. package/dist/channels/collect.js.map +0 -1
  390. package/dist/channels/github/adapter-core.d.ts +0 -6
  391. package/dist/channels/github/adapter-core.d.ts.map +0 -1
  392. package/dist/channels/github/adapter-core.js +0 -27
  393. package/dist/channels/github/adapter-core.js.map +0 -1
  394. package/dist/channels/github/adapter.d.ts +0 -16
  395. package/dist/channels/github/adapter.d.ts.map +0 -1
  396. package/dist/channels/github/adapter.js +0 -52
  397. package/dist/channels/github/adapter.js.map +0 -1
  398. package/dist/channels/github/define.d.ts +0 -198
  399. package/dist/channels/github/define.d.ts.map +0 -1
  400. package/dist/channels/github/define.js +0 -166
  401. package/dist/channels/github/define.js.map +0 -1
  402. package/dist/channels/github/http.d.ts +0 -25
  403. package/dist/channels/github/http.d.ts.map +0 -1
  404. package/dist/channels/github/http.js +0 -147
  405. package/dist/channels/github/http.js.map +0 -1
  406. package/dist/channels/github/index.d.ts +0 -12
  407. package/dist/channels/github/index.d.ts.map +0 -1
  408. package/dist/channels/github/index.js +0 -10
  409. package/dist/channels/github/index.js.map +0 -1
  410. package/dist/channels/github/normalize.d.ts +0 -32
  411. package/dist/channels/github/normalize.d.ts.map +0 -1
  412. package/dist/channels/github/normalize.js +0 -152
  413. package/dist/channels/github/normalize.js.map +0 -1
  414. package/dist/channels/github/source-thread.d.ts +0 -24
  415. package/dist/channels/github/source-thread.d.ts.map +0 -1
  416. package/dist/channels/github/source-thread.js +0 -54
  417. package/dist/channels/github/source-thread.js.map +0 -1
  418. package/dist/channels/github/transport.d.ts +0 -19
  419. package/dist/channels/github/transport.d.ts.map +0 -1
  420. package/dist/channels/github/transport.js +0 -92
  421. package/dist/channels/github/transport.js.map +0 -1
  422. package/dist/channels/plugin.d.ts +0 -61
  423. package/dist/channels/plugin.d.ts.map +0 -1
  424. package/dist/channels/plugin.js +0 -80
  425. package/dist/channels/plugin.js.map +0 -1
  426. package/dist/channels/slack/define.d.ts +0 -74
  427. package/dist/channels/slack/define.d.ts.map +0 -1
  428. package/dist/channels/slack/define.js +0 -160
  429. package/dist/channels/slack/define.js.map +0 -1
  430. package/dist/connectors/github/index.d.ts +0 -80
  431. package/dist/connectors/github/index.d.ts.map +0 -1
  432. package/dist/connectors/github/index.js +0 -118
  433. package/dist/connectors/github/index.js.map +0 -1
  434. package/dist/connectors/github/sandbox.d.ts +0 -54
  435. package/dist/connectors/github/sandbox.d.ts.map +0 -1
  436. package/dist/connectors/github/sandbox.js +0 -519
  437. package/dist/connectors/github/sandbox.js.map +0 -1
  438. package/dist/connectors/langsmith/index.d.ts +0 -385
  439. package/dist/connectors/langsmith/index.d.ts.map +0 -1
  440. package/dist/connectors/langsmith/index.js +0 -431
  441. package/dist/connectors/langsmith/index.js.map +0 -1
  442. package/dist/connectors/langsmith/routes.d.ts +0 -247
  443. package/dist/connectors/langsmith/routes.d.ts.map +0 -1
  444. package/dist/connectors/langsmith/routes.js +0 -1182
  445. package/dist/connectors/langsmith/routes.js.map +0 -1
  446. package/dist/runtime/memory/seed.d.ts +0 -21
  447. package/dist/runtime/memory/seed.d.ts.map +0 -1
  448. package/dist/runtime/memory/seed.js +0 -160
  449. package/dist/runtime/memory/seed.js.map +0 -1
  450. package/dist/runtime/memory/user-repo.d.ts +0 -19
  451. package/dist/runtime/memory/user-repo.d.ts.map +0 -1
  452. package/dist/runtime/memory/user-repo.js +0 -57
  453. package/dist/runtime/memory/user-repo.js.map +0 -1
@@ -1,152 +0,0 @@
1
- /**
2
- * GitHub App webhook verify + normalize into {@link ChannelEvent}.
3
- */
4
- import { createHmac, timingSafeEqual } from "node:crypto";
5
- import { randomUUID } from "node:crypto";
6
- import { ChannelError } from "../errors.js";
7
- import { matchGitHubHandler } from "./define.js";
8
- import { encodeGitHubSourceThreadKey } from "./source-thread.js";
9
- export const GITHUB_WEBHOOK_SECRET_ENV = "GITHUB_WEBHOOK_SECRET";
10
- /**
11
- * Verify `X-Hub-Signature-256` against the raw body before parsing JSON.
12
- */
13
- export function verifyGitHubWebhookSignature(rawBody, signatureHeader, secret) {
14
- if (!secret) {
15
- throw new ChannelError("channel_provider_rejected", "GitHub webhook secret is not configured");
16
- }
17
- const expectedPrefix = "sha256=";
18
- if (!signatureHeader.startsWith(expectedPrefix)) {
19
- throw new ChannelError("channel_invalid_signature", "missing or invalid X-Hub-Signature-256");
20
- }
21
- const body = typeof rawBody === "string" ? Buffer.from(rawBody) : Buffer.from(rawBody);
22
- const digest = createHmac("sha256", secret).update(body).digest("hex");
23
- const provided = signatureHeader.slice(expectedPrefix.length);
24
- const a = Buffer.from(digest, "utf8");
25
- const b = Buffer.from(provided, "utf8");
26
- if (a.length !== b.length || !timingSafeEqual(a, b)) {
27
- throw new ChannelError("channel_invalid_signature", "GitHub webhook signature mismatch");
28
- }
29
- }
30
- /**
31
- * Normalize a verified GitHub webhook payload into a {@link ChannelEvent}.
32
- *
33
- * Accepts any `X-GitHub-Event`. Returns `ignored: true` when no handler matches.
34
- */
35
- export function normalizeGitHubEvent(body, headers, config, installationIdFallback) {
36
- if (!headers.eventName) {
37
- return ignoredResult(headers.deliveryId);
38
- }
39
- const payload = asObject(body);
40
- const action = stringField(payload.action);
41
- const installationId = stringField(asObject(payload.installation)?.id) ??
42
- (numberField(asObject(payload.installation)?.id) !== undefined
43
- ? String(numberField(asObject(payload.installation)?.id))
44
- : undefined) ??
45
- installationIdFallback ??
46
- undefined;
47
- const repository = asObject(payload.repository);
48
- const ownerLogin = stringField(asObject(repository.owner)?.login) ??
49
- stringField(repository.full_name)?.split("/")[0] ??
50
- undefined;
51
- const repoName = stringField(repository.name) ??
52
- stringField(repository.full_name)?.split("/")[1] ??
53
- undefined;
54
- const fullName = stringField(repository.full_name) ??
55
- (ownerLogin && repoName ? `${ownerLogin}/${repoName}` : undefined);
56
- const handler = matchGitHubHandler(config, headers.eventName, fullName, action);
57
- if (!handler) {
58
- return ignoredResult(headers.deliveryId);
59
- }
60
- const issueOrPullNumber = extractIssueOrPullNumber(payload);
61
- const trigger = action !== undefined ? `${headers.eventName}.${action}` : headers.eventName;
62
- const promptEvent = {
63
- eventName: headers.eventName,
64
- ...(action !== undefined ? { action } : {}),
65
- trigger,
66
- deliveryId: headers.deliveryId,
67
- ...(fullName !== undefined ? { repository: fullName } : {}),
68
- ...(installationId !== undefined ? { installationId } : {}),
69
- ...(issueOrPullNumber !== undefined ? { issueOrPullNumber } : {}),
70
- payload: body,
71
- };
72
- const text = handler.prompt(promptEvent);
73
- const conversationId = ownerLogin && repoName && issueOrPullNumber !== undefined
74
- ? `${ownerLogin}/${repoName}#${issueOrPullNumber}`
75
- : (fullName ?? headers.deliveryId);
76
- const sourceThreadKey = encodeGitHubSourceThreadKey({
77
- installationId: installationId ?? "unknown",
78
- owner: ownerLogin,
79
- repo: repoName,
80
- number: issueOrPullNumber,
81
- deliveryId: headers.deliveryId,
82
- });
83
- return {
84
- trigger,
85
- sourceThreadKey,
86
- handler,
87
- promptEvent,
88
- event: {
89
- deliveryId: randomUUID(),
90
- eventId: headers.deliveryId,
91
- type: trigger,
92
- address: {
93
- conversationId,
94
- ...(issueOrPullNumber !== undefined
95
- ? { threadId: conversationId }
96
- : {}),
97
- },
98
- message: { id: headers.deliveryId, text, attachments: [] },
99
- native: {
100
- provider: "github",
101
- payload: {
102
- eventName: headers.eventName,
103
- ...(action !== undefined ? { action } : {}),
104
- ...(fullName !== undefined ? { repository: fullName } : {}),
105
- ...(installationId !== undefined
106
- ? { installation: { id: installationId } }
107
- : {}),
108
- },
109
- },
110
- },
111
- };
112
- }
113
- /** Best-effort issue/PR number from common webhook payload shapes. */
114
- export function extractIssueOrPullNumber(payload) {
115
- const pr = numberField(asObject(payload.pull_request).number);
116
- if (pr !== undefined)
117
- return pr;
118
- const issue = numberField(asObject(payload.issue).number);
119
- if (issue !== undefined)
120
- return issue;
121
- return numberField(payload.number);
122
- }
123
- function ignoredResult(deliveryHeader) {
124
- return {
125
- ignored: true,
126
- trigger: "ignored",
127
- sourceThreadKey: "",
128
- event: {
129
- deliveryId: randomUUID(),
130
- eventId: deliveryHeader,
131
- type: "ignored",
132
- address: { conversationId: "" },
133
- },
134
- };
135
- }
136
- function asObject(value) {
137
- return typeof value === "object" && value !== null
138
- ? value
139
- : {};
140
- }
141
- function stringField(value) {
142
- if (typeof value === "number" && Number.isFinite(value)) {
143
- return String(value);
144
- }
145
- return typeof value === "string" && value.trim() ? value.trim() : undefined;
146
- }
147
- function numberField(value) {
148
- return typeof value === "number" && Number.isFinite(value)
149
- ? value
150
- : undefined;
151
- }
152
- //# sourceMappingURL=normalize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/channels/github/normalize.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Stable GitHub source-thread keys for trusted channel ingress.
3
- *
4
- * Prefer issue/PR scoped keys when a number is known:
5
- * `github:<installationId>:<owner>/<repo>#<number>`
6
- * Otherwise fall back to delivery-scoped keys:
7
- * `github:<installationId>:<owner>/<repo>:delivery:<deliveryId>`
8
- * `github:<installationId>:delivery:<deliveryId>`
9
- */
10
- export declare function encodeGitHubSourceThreadKey(input: {
11
- installationId: string;
12
- owner?: string;
13
- repo?: string;
14
- number?: number;
15
- deliveryId?: string;
16
- }): string;
17
- export declare function decodeGitHubSourceThreadKey(key: string): {
18
- installationId: string;
19
- owner?: string;
20
- repo?: string;
21
- number?: number;
22
- deliveryId?: string;
23
- } | null;
24
- //# sourceMappingURL=source-thread.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-thread.d.ts","sourceRoot":"","sources":["../../../src/channels/github/source-thread.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAiBT;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,CA6BP"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Stable GitHub source-thread keys for trusted channel ingress.
3
- *
4
- * Prefer issue/PR scoped keys when a number is known:
5
- * `github:<installationId>:<owner>/<repo>#<number>`
6
- * Otherwise fall back to delivery-scoped keys:
7
- * `github:<installationId>:<owner>/<repo>:delivery:<deliveryId>`
8
- * `github:<installationId>:delivery:<deliveryId>`
9
- */
10
- export function encodeGitHubSourceThreadKey(input) {
11
- const install = input.installationId || "unknown";
12
- if (input.owner &&
13
- input.repo &&
14
- typeof input.number === "number" &&
15
- Number.isFinite(input.number)) {
16
- return `github:${install}:${input.owner}/${input.repo}#${input.number}`;
17
- }
18
- if (input.owner && input.repo && input.deliveryId) {
19
- return `github:${install}:${input.owner}/${input.repo}:delivery:${input.deliveryId}`;
20
- }
21
- if (input.deliveryId) {
22
- return `github:${install}:delivery:${input.deliveryId}`;
23
- }
24
- return `github:${install}:delivery:unknown`;
25
- }
26
- export function decodeGitHubSourceThreadKey(key) {
27
- const issue = /^github:([^:]+):([^/]+)\/([^#]+)#(\d+)$/.exec(key);
28
- if (issue) {
29
- return {
30
- installationId: issue[1],
31
- owner: issue[2],
32
- repo: issue[3],
33
- number: Number(issue[4]),
34
- };
35
- }
36
- const repoDelivery = /^github:([^:]+):([^/]+)\/([^:]+):delivery:(.+)$/.exec(key);
37
- if (repoDelivery) {
38
- return {
39
- installationId: repoDelivery[1],
40
- owner: repoDelivery[2],
41
- repo: repoDelivery[3],
42
- deliveryId: repoDelivery[4],
43
- };
44
- }
45
- const delivery = /^github:([^:]+):delivery:(.+)$/.exec(key);
46
- if (delivery) {
47
- return {
48
- installationId: delivery[1],
49
- deliveryId: delivery[2],
50
- };
51
- }
52
- return null;
53
- }
54
- //# sourceMappingURL=source-thread.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-thread.js","sourceRoot":"","sources":["../../../src/channels/github/source-thread.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,UAAU,2BAA2B,CAAC,KAM3C;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,SAAS,CAAC;IAClD,IACE,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,IAAI;QACV,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAC7B,CAAC;QACD,OAAO,UAAU,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,UAAU,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,UAAU,EAAE,CAAC;IACvF,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,UAAU,OAAO,aAAa,KAAK,CAAC,UAAU,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,UAAU,OAAO,mBAAmB,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAW;IAOrD,MAAM,KAAK,GAAG,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,cAAc,EAAE,KAAK,CAAC,CAAC,CAAE;YACzB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAE;YAChB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE;YACf,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,iDAAiD,CAAC,IAAI,CACzE,GAAG,CACJ,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,cAAc,EAAE,YAAY,CAAC,CAAC,CAAE;YAChC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAE;YACvB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAE;YACtB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAE;SAC7B,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAE;YAC5B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAE;SACzB,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * GitHub App installation transport — PR/issue comments via the REST API.
3
- */
4
- import type { ChannelTransport } from "../runtime.js";
5
- export declare const GITHUB_APP_ID_ENV = "GITHUB_APP_ID";
6
- export declare const GITHUB_APP_PRIVATE_KEY_ENV = "GITHUB_APP_PRIVATE_KEY";
7
- export declare const GITHUB_INSTALLATION_ID_ENV = "GITHUB_INSTALLATION_ID";
8
- export interface GitHubAppTransportOptions {
9
- appId: string;
10
- privateKey: string;
11
- installationId: string;
12
- /** Override fetch (tests). */
13
- fetch?: typeof fetch;
14
- }
15
- /**
16
- * Build a {@link ChannelTransport} that posts/edits issue comments as the App.
17
- */
18
- export declare function createGitHubAppTransport(options: GitHubAppTransportOptions): ChannelTransport;
19
- //# sourceMappingURL=transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/channels/github/transport.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,gBAAgB,CA+DlB"}
@@ -1,92 +0,0 @@
1
- /**
2
- * GitHub App installation transport — PR/issue comments via the REST API.
3
- */
4
- import { createPrivateKey } from "node:crypto";
5
- import { SignJWT } from "jose";
6
- export const GITHUB_APP_ID_ENV = "GITHUB_APP_ID";
7
- export const GITHUB_APP_PRIVATE_KEY_ENV = "GITHUB_APP_PRIVATE_KEY";
8
- export const GITHUB_INSTALLATION_ID_ENV = "GITHUB_INSTALLATION_ID";
9
- /**
10
- * Build a {@link ChannelTransport} that posts/edits issue comments as the App.
11
- */
12
- export function createGitHubAppTransport(options) {
13
- const fetchImpl = options.fetch ?? fetch;
14
- let installationToken;
15
- async function getInstallationToken() {
16
- const now = Date.now();
17
- if (installationToken && installationToken.expiresAt > now + 60_000) {
18
- return installationToken.token;
19
- }
20
- const jwt = await appJwt(options.appId, options.privateKey);
21
- const res = await fetchImpl(`https://api.github.com/app/installations/${options.installationId}/access_tokens`, {
22
- method: "POST",
23
- headers: {
24
- Authorization: `Bearer ${jwt}`,
25
- Accept: "application/vnd.github+json",
26
- "X-GitHub-Api-Version": "2022-11-28",
27
- },
28
- });
29
- if (!res.ok) {
30
- throw new Error(`GitHub installation token failed: ${res.status} ${await res.text()}`);
31
- }
32
- const body = (await res.json());
33
- installationToken = {
34
- token: body.token,
35
- expiresAt: Date.parse(body.expires_at),
36
- };
37
- return body.token;
38
- }
39
- return {
40
- async post(input) {
41
- const target = parseConversationId(input.conversationId);
42
- const token = await getInstallationToken();
43
- const res = await fetchImpl(`https://api.github.com/repos/${target.owner}/${target.repo}/issues/${target.number}/comments`, {
44
- method: "POST",
45
- headers: {
46
- Authorization: `Bearer ${token}`,
47
- Accept: "application/vnd.github+json",
48
- "Content-Type": "application/json",
49
- "X-GitHub-Api-Version": "2022-11-28",
50
- },
51
- body: JSON.stringify({ body: input.text }),
52
- });
53
- if (!res.ok) {
54
- throw new Error(`GitHub create comment failed: ${res.status} ${await res.text()}`);
55
- }
56
- const body = (await res.json());
57
- return {
58
- id: `github-comment:${body.id}`,
59
- providerMessageId: String(body.id),
60
- };
61
- },
62
- };
63
- }
64
- function parseConversationId(conversationId) {
65
- const match = /^([^/]+)\/([^#]+)#(\d+)$/.exec(conversationId);
66
- if (!match) {
67
- throw new Error(`GitHub transport cannot parse conversationId "${conversationId}"`);
68
- }
69
- return {
70
- owner: match[1],
71
- repo: match[2],
72
- number: Number(match[3]),
73
- };
74
- }
75
- /**
76
- * Sign an App JWT. Uses Node `createPrivateKey` so both PKCS#1
77
- * (`BEGIN RSA PRIVATE KEY`, GitHub's download format) and PKCS#8 PEMs work.
78
- */
79
- async function appJwt(appId, privateKeyPem) {
80
- const key = createPrivateKey(normalizePem(privateKeyPem));
81
- const now = Math.floor(Date.now() / 1000);
82
- return new SignJWT({})
83
- .setProtectedHeader({ alg: "RS256" })
84
- .setIssuedAt(now - 60)
85
- .setExpirationTime(now + 9 * 60)
86
- .setIssuer(appId)
87
- .sign(key);
88
- }
89
- function normalizePem(key) {
90
- return key.includes("\\n") ? key.replace(/\\n/g, "\n") : key;
91
- }
92
- //# sourceMappingURL=transport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/channels/github/transport.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- /**
2
- * Channel plugin contract — the return value of any `define*` helper.
3
- *
4
- * Third-party packages export helpers like `defineStripeChannel` that return a
5
- * branded {@link ChannelDefinition}. Helper names are irrelevant; the brand,
6
- * adapter, and `toManifest` are what the CLI and runtime use.
7
- */
8
- import type { ChannelManifest } from "./manifest.js";
9
- import type { ChannelProviderAdapter } from "./registry-types.js";
10
- /**
11
- * Realm-global brand marking a value as a managed channel definition.
12
- * `Symbol.for` keeps identity stable across duplicate package copies.
13
- */
14
- export declare const CHANNEL_BRAND: unique symbol;
15
- /**
16
- * Author-supplied manifest fields. {@link defineChannel} stamps `name` (route)
17
- * and `provider` from the definition so helpers do not repeat them.
18
- */
19
- export type ChannelManifestBody = Omit<ChannelManifest, "name" | "provider">;
20
- /**
21
- * Plugin object returned by `defineSlackChannel`, `defineGitHubChannel`, or any
22
- * third-party `define*Channel` helper.
23
- */
24
- export interface ChannelDefinition<TConfig = unknown> {
25
- readonly [CHANNEL_BRAND]: true;
26
- readonly kind: "channel";
27
- /** Adapter registry key and trusted source-provider stamp. */
28
- readonly provider: string;
29
- /** Provider Events/reply implementation (usually from the same package). */
30
- readonly adapter: ChannelProviderAdapter;
31
- /**
32
- * Deploy/runtime metadata. Must be pure JSON (no functions).
33
- * Live callbacks stay on {@link ChannelDefinition.config}.
34
- * `name` and `provider` are stamped by {@link defineChannel}.
35
- */
36
- toManifest(name: string): ChannelManifest;
37
- /** Provider-specific live config consumed by the adapter. */
38
- readonly config: TConfig;
39
- }
40
- /** Inputs for {@link defineChannel}. */
41
- export interface DefineChannelOptions<TConfig> {
42
- provider: string;
43
- adapter: ChannelProviderAdapter;
44
- config: TConfig;
45
- /** Return deploy fields only — `name` / `provider` are stamped automatically. */
46
- toManifest: (name: string) => ChannelManifestBody;
47
- }
48
- /**
49
- * Build a branded channel definition. First-party and third-party helpers should
50
- * wrap this (or return an equivalent branded object).
51
- */
52
- export declare function defineChannel<TConfig>(options: DefineChannelOptions<TConfig>): ChannelDefinition<TConfig>;
53
- /** Type guard for branded channel definitions. */
54
- export declare function isChannelDefinition(value: unknown): value is ChannelDefinition;
55
- /**
56
- * Build the deploy/runtime manifest map from live channel definitions.
57
- *
58
- * Also registers each definition's adapter so Events routes can dispatch.
59
- */
60
- export declare function manifestsFromChannelDefinitions(definitions: Record<string, unknown>): Record<string, ChannelManifest>;
61
- //# sourceMappingURL=plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/channels/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,MAAkC,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,OAAO;IAClD,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IAC1C,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB,CAAC,OAAO;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,mBAAmB,CAAC;CACnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EACnC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACrC,iBAAiB,CAAC,OAAO,CAAC,CA4C5B;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAI5B;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAcjC"}
@@ -1,80 +0,0 @@
1
- /**
2
- * Channel plugin contract — the return value of any `define*` helper.
3
- *
4
- * Third-party packages export helpers like `defineStripeChannel` that return a
5
- * branded {@link ChannelDefinition}. Helper names are irrelevant; the brand,
6
- * adapter, and `toManifest` are what the CLI and runtime use.
7
- */
8
- import { registerChannelAdapter } from "./registry-store.js";
9
- /**
10
- * Realm-global brand marking a value as a managed channel definition.
11
- * `Symbol.for` keeps identity stable across duplicate package copies.
12
- */
13
- export const CHANNEL_BRAND = Symbol.for("mda.channel");
14
- /**
15
- * Build a branded channel definition. First-party and third-party helpers should
16
- * wrap this (or return an equivalent branded object).
17
- */
18
- export function defineChannel(options) {
19
- if (!options || typeof options !== "object") {
20
- throw new Error("defineChannel(...) requires an options object.");
21
- }
22
- if (typeof options.provider !== "string" || !options.provider.trim()) {
23
- throw new Error("defineChannel(...) requires a non-empty `provider` string.");
24
- }
25
- if (options.adapter === null ||
26
- typeof options.adapter !== "object" ||
27
- typeof options.adapter.handleEventsRequest !== "function") {
28
- throw new Error("defineChannel(...) requires an `adapter` with handleEventsRequest.");
29
- }
30
- if (typeof options.toManifest !== "function") {
31
- throw new Error("defineChannel(...) requires a `toManifest` function.");
32
- }
33
- const provider = options.provider.trim();
34
- if (options.adapter.provider !== provider) {
35
- throw new Error(`defineChannel(...) adapter.provider ("${options.adapter.provider}") ` +
36
- `must match provider ("${provider}").`);
37
- }
38
- const authorToManifest = options.toManifest;
39
- return {
40
- [CHANNEL_BRAND]: true,
41
- kind: "channel",
42
- provider,
43
- adapter: options.adapter,
44
- config: options.config,
45
- toManifest(name) {
46
- const body = authorToManifest(name);
47
- return {
48
- ...body,
49
- name,
50
- provider,
51
- };
52
- },
53
- };
54
- }
55
- /** Type guard for branded channel definitions. */
56
- export function isChannelDefinition(value) {
57
- if (typeof value !== "object" || value === null)
58
- return false;
59
- const record = value;
60
- return record[CHANNEL_BRAND] === true && record.kind === "channel";
61
- }
62
- /**
63
- * Build the deploy/runtime manifest map from live channel definitions.
64
- *
65
- * Also registers each definition's adapter so Events routes can dispatch.
66
- */
67
- export function manifestsFromChannelDefinitions(definitions) {
68
- const out = {};
69
- for (const [name, value] of Object.entries(definitions)) {
70
- if (!isChannelDefinition(value)) {
71
- throw new Error(`channel "${name}" is not a branded ChannelDefinition. ` +
72
- "Export `channel = defineXChannel(...)` (or defineChannel) so the " +
73
- "return value includes CHANNEL_BRAND, adapter, and toManifest.");
74
- }
75
- registerChannelAdapter(value.adapter);
76
- out[name] = value.toManifest(name);
77
- }
78
- return out;
79
- }
80
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/channels/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG7D;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAsCtE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsC;IAEtC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IACE,OAAO,CAAC,OAAO,KAAK,IAAI;QACxB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,KAAK,UAAU,EACzD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,yCAAyC,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK;YACpE,yBAAyB,QAAQ,KAAK,CACzC,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC5C,OAAO;QACL,CAAC,aAAa,CAAC,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;QACf,QAAQ;QACR,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,CAAC,IAAY;YACrB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI;gBACJ,QAAQ;aACT,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAyC,CAAC;IACzD,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC7C,WAAoC;IAEpC,MAAM,GAAG,GAAoC,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,wCAAwC;gBACtD,mEAAmE;gBACnE,+DAA+D,CAClE,CAAC;QACJ,CAAC;QACD,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,74 +0,0 @@
1
- /**
2
- * `defineSlackChannel` — declarative Slack channel authoring surface.
3
- *
4
- * Returns a validated declaration. Provider HTTP, OAuth, and Web API clients
5
- * remain managed implementation details.
6
- */
7
- import type { ChannelManifest } from "../manifest.js";
8
- import { type ChannelDefinition } from "../plugin.js";
9
- export type { ChannelManifest } from "../manifest.js";
10
- /** Env vars deploy must ensure for any Slack channel manifest. */
11
- export declare const SLACK_CHANNEL_REQUIRED_ENV: readonly ["SLACK_SIGNING_SECRET", "SLACK_BOT_TOKEN"];
12
- /**
13
- * Managed Slack triggers.
14
- * Later phases may enable `slash_command` / `interaction`.
15
- */
16
- export type SlackChannelTrigger = "app_mention" | "direct_message" | "thread_reply";
17
- export type SlackMentionBehavior = "strip" | "preserve";
18
- export type SlackConversationMapping = "thread" | "conversation" | "message";
19
- export interface SlackChannelFilters {
20
- includeConversations?: readonly string[];
21
- excludeConversations?: readonly string[];
22
- /** Fully-qualified mapped actor IDs such as `slack:T123:U456`. */
23
- includeActors?: readonly string[];
24
- excludeActors?: readonly string[];
25
- /**
26
- * Slack Connect shared conversations. Phase 1 rejects `true`.
27
- * @default false
28
- */
29
- allowSharedConversations?: boolean;
30
- }
31
- export interface SlackConversationPolicy {
32
- /** @default "thread" */
33
- appMention?: SlackConversationMapping;
34
- /** @default "conversation" */
35
- directMessage?: SlackConversationMapping;
36
- }
37
- export interface SlackChannelConfig {
38
- on: readonly SlackChannelTrigger[];
39
- /** @default true */
40
- autoReply?: boolean;
41
- /** @default "strip" */
42
- mentionBehavior?: SlackMentionBehavior;
43
- filters?: SlackChannelFilters;
44
- conversation?: SlackConversationPolicy;
45
- }
46
- /** Object exported from `channels/*.ts`. */
47
- export type SlackChannelDefinition = ChannelDefinition<RequiredSlackChannelConfig>;
48
- /** Normalized config with defaults applied. */
49
- export interface RequiredSlackChannelConfig {
50
- on: readonly SlackChannelTrigger[];
51
- autoReply: boolean;
52
- mentionBehavior: SlackMentionBehavior;
53
- filters: {
54
- includeConversations?: readonly string[];
55
- excludeConversations?: readonly string[];
56
- includeActors?: readonly string[];
57
- excludeActors?: readonly string[];
58
- allowSharedConversations: boolean;
59
- };
60
- conversation: {
61
- appMention: SlackConversationMapping;
62
- directMessage: SlackConversationMapping;
63
- };
64
- }
65
- /**
66
- * Declare a managed Slack channel. Files under `channels/*.ts` export a named
67
- * `channel` created with this helper.
68
- */
69
- export declare function defineSlackChannel(config: SlackChannelConfig): SlackChannelDefinition;
70
- /** Derive Slack OAuth scopes from enabled channel triggers. */
71
- export declare function requiredSlackScopes(config: Pick<RequiredSlackChannelConfig, "on">): string[];
72
- /** Build the compile/deploy channel manifest for a file-derived name. */
73
- export declare function toChannelManifest(name: string, definition: SlackChannelDefinition | RequiredSlackChannelConfig): ChannelManifest;
74
- //# sourceMappingURL=define.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/define.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGrE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,YACrC,sBAAsB,oBAEd,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,aAAa,GACb,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,kEAAkE;IAClE,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,8BAA8B;IAC9B,aAAa,CAAC,EAAE,wBAAwB,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnC,oBAAoB;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB;IACvB,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAED,4CAA4C;AAC5C,MAAM,MAAM,sBAAsB,GAChC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;AAEhD,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,oBAAoB,CAAC;IACtC,OAAO,EAAE;QACP,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,wBAAwB,EAAE,OAAO,CAAC;KACnC,CAAC;IACF,YAAY,EAAE;QACZ,UAAU,EAAE,wBAAwB,CAAC;QACrC,aAAa,EAAE,wBAAwB,CAAC;KACzC,CAAC;CACH;AAUD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,sBAAsB,CAexB;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,GAC7C,MAAM,EAAE,CAeV;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,sBAAsB,GAAG,0BAA0B,GAC9D,eAAe,CAmBjB"}