@hotmeshio/long-tail 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (809) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +262 -0
  3. package/build/examples/external-mcp-server/server.d.ts +17 -0
  4. package/build/examples/external-mcp-server/server.js +116 -0
  5. package/build/examples/index.d.ts +2 -0
  6. package/build/examples/index.js +7 -0
  7. package/build/examples/seed.d.ts +5 -0
  8. package/build/examples/seed.js +221 -0
  9. package/build/examples/types/envelopes.d.ts +34 -0
  10. package/build/examples/types/envelopes.js +8 -0
  11. package/build/examples/types/index.d.ts +10 -0
  12. package/build/examples/types/index.js +9 -0
  13. package/build/examples/types/resolvers.d.ts +27 -0
  14. package/build/examples/types/resolvers.js +9 -0
  15. package/build/examples/workers.d.ts +10 -0
  16. package/build/examples/workers.js +49 -0
  17. package/build/examples/workflows/basic-echo/activities.d.ts +20 -0
  18. package/build/examples/workflows/basic-echo/activities.js +55 -0
  19. package/build/examples/workflows/basic-echo/index.d.ts +14 -0
  20. package/build/examples/workflows/basic-echo/index.js +66 -0
  21. package/build/examples/workflows/kitchen-sink/activities.d.ts +40 -0
  22. package/build/examples/workflows/kitchen-sink/activities.js +46 -0
  23. package/build/examples/workflows/kitchen-sink/index.d.ts +22 -0
  24. package/build/examples/workflows/kitchen-sink/index.js +123 -0
  25. package/build/examples/workflows/review-content/activities.d.ts +10 -0
  26. package/build/examples/workflows/review-content/activities.js +44 -0
  27. package/build/examples/workflows/review-content/index.d.ts +10 -0
  28. package/build/examples/workflows/review-content/index.js +95 -0
  29. package/build/examples/workflows/review-content/types.d.ts +28 -0
  30. package/build/examples/workflows/review-content/types.js +2 -0
  31. package/build/index.d.ts +37 -0
  32. package/build/index.js +151 -0
  33. package/build/modules/auth.d.ts +58 -0
  34. package/build/modules/auth.js +163 -0
  35. package/build/modules/config.d.ts +19 -0
  36. package/build/modules/config.js +26 -0
  37. package/build/modules/defaults.d.ts +58 -0
  38. package/build/modules/defaults.js +95 -0
  39. package/build/modules/ltconfig.d.ts +21 -0
  40. package/build/modules/ltconfig.js +110 -0
  41. package/build/modules/maintenance.d.ts +18 -0
  42. package/build/modules/maintenance.js +47 -0
  43. package/build/routes/auth.d.ts +2 -0
  44. package/build/routes/auth.js +48 -0
  45. package/build/routes/bot-accounts.d.ts +2 -0
  46. package/build/routes/bot-accounts.js +280 -0
  47. package/build/routes/controlplane.d.ts +2 -0
  48. package/build/routes/controlplane.js +144 -0
  49. package/build/routes/dba.d.ts +2 -0
  50. package/build/routes/dba.js +86 -0
  51. package/build/routes/delegation.d.ts +2 -0
  52. package/build/routes/delegation.js +81 -0
  53. package/build/routes/escalations/bulk.d.ts +2 -0
  54. package/build/routes/escalations/bulk.js +324 -0
  55. package/build/routes/escalations/helpers.d.ts +5 -0
  56. package/build/routes/escalations/helpers.js +48 -0
  57. package/build/routes/escalations/index.d.ts +2 -0
  58. package/build/routes/escalations/index.js +20 -0
  59. package/build/routes/escalations/list.d.ts +2 -0
  60. package/build/routes/escalations/list.js +140 -0
  61. package/build/routes/escalations/resolve.d.ts +2 -0
  62. package/build/routes/escalations/resolve.js +240 -0
  63. package/build/routes/escalations/single.d.ts +2 -0
  64. package/build/routes/escalations/single.js +195 -0
  65. package/build/routes/exports.d.ts +2 -0
  66. package/build/routes/exports.js +163 -0
  67. package/build/routes/files.d.ts +2 -0
  68. package/build/routes/files.js +47 -0
  69. package/build/routes/index.d.ts +2 -0
  70. package/build/routes/index.js +52 -0
  71. package/build/routes/insight.d.ts +2 -0
  72. package/build/routes/insight.js +58 -0
  73. package/build/routes/maintenance.d.ts +2 -0
  74. package/build/routes/maintenance.js +38 -0
  75. package/build/routes/mcp-runs.d.ts +2 -0
  76. package/build/routes/mcp-runs.js +85 -0
  77. package/build/routes/mcp.d.ts +2 -0
  78. package/build/routes/mcp.js +264 -0
  79. package/build/routes/namespaces.d.ts +2 -0
  80. package/build/routes/namespaces.js +71 -0
  81. package/build/routes/oauth.d.ts +7 -0
  82. package/build/routes/oauth.js +217 -0
  83. package/build/routes/resolve.d.ts +9 -0
  84. package/build/routes/resolve.js +19 -0
  85. package/build/routes/roles.d.ts +2 -0
  86. package/build/routes/roles.js +195 -0
  87. package/build/routes/settings.d.ts +2 -0
  88. package/build/routes/settings.js +35 -0
  89. package/build/routes/tasks.d.ts +2 -0
  90. package/build/routes/tasks.js +133 -0
  91. package/build/routes/users.d.ts +2 -0
  92. package/build/routes/users.js +206 -0
  93. package/build/routes/workflows/config.d.ts +2 -0
  94. package/build/routes/workflows/config.js +123 -0
  95. package/build/routes/workflows/discovery.d.ts +2 -0
  96. package/build/routes/workflows/discovery.js +146 -0
  97. package/build/routes/workflows/index.d.ts +2 -0
  98. package/build/routes/workflows/index.js +18 -0
  99. package/build/routes/workflows/invocation.d.ts +2 -0
  100. package/build/routes/workflows/invocation.js +162 -0
  101. package/build/routes/yaml-workflows/crud.d.ts +2 -0
  102. package/build/routes/yaml-workflows/crud.js +276 -0
  103. package/build/routes/yaml-workflows/deployment.d.ts +2 -0
  104. package/build/routes/yaml-workflows/deployment.js +179 -0
  105. package/build/routes/yaml-workflows/helpers.d.ts +2 -0
  106. package/build/routes/yaml-workflows/helpers.js +8 -0
  107. package/build/routes/yaml-workflows/index.d.ts +2 -0
  108. package/build/routes/yaml-workflows/index.js +21 -0
  109. package/build/routes/yaml-workflows/versions.d.ts +2 -0
  110. package/build/routes/yaml-workflows/versions.js +116 -0
  111. package/build/scripts/process-helpers.d.ts +11 -0
  112. package/build/scripts/process-helpers.js +59 -0
  113. package/build/scripts/process.d.ts +18 -0
  114. package/build/scripts/process.js +191 -0
  115. package/build/scripts/token.d.ts +13 -0
  116. package/build/scripts/token.js +42 -0
  117. package/build/services/auth/bot-api-key.d.ts +32 -0
  118. package/build/services/auth/bot-api-key.js +112 -0
  119. package/build/services/auth/delegation.d.ts +20 -0
  120. package/build/services/auth/delegation.js +53 -0
  121. package/build/services/auth/service-token.d.ts +23 -0
  122. package/build/services/auth/service-token.js +105 -0
  123. package/build/services/config/cache.d.ts +2 -0
  124. package/build/services/config/cache.js +24 -0
  125. package/build/services/config/index.d.ts +4 -0
  126. package/build/services/config/index.js +13 -0
  127. package/build/services/config/provider.d.ts +2 -0
  128. package/build/services/config/provider.js +30 -0
  129. package/build/services/config/read.d.ts +3 -0
  130. package/build/services/config/read.js +68 -0
  131. package/build/services/config/sql.d.ts +14 -0
  132. package/build/services/config/sql.js +58 -0
  133. package/build/services/config/write.d.ts +5 -0
  134. package/build/services/config/write.js +61 -0
  135. package/build/services/controlplane/index.d.ts +47 -0
  136. package/build/services/controlplane/index.js +124 -0
  137. package/build/services/controlplane/quorum-bridge.d.ts +15 -0
  138. package/build/services/controlplane/quorum-bridge.js +62 -0
  139. package/build/services/controlplane/sql.d.ts +21 -0
  140. package/build/services/controlplane/sql.js +70 -0
  141. package/build/services/controlplane/types.d.ts +13 -0
  142. package/build/services/controlplane/types.js +3 -0
  143. package/build/services/cron/index.d.ts +46 -0
  144. package/build/services/cron/index.js +199 -0
  145. package/build/services/db/index.d.ts +3 -0
  146. package/build/services/db/index.js +19 -0
  147. package/build/services/db/migrate.d.ts +1 -0
  148. package/build/services/db/migrate.js +78 -0
  149. package/build/services/dba.d.ts +28 -0
  150. package/build/services/dba.js +32 -0
  151. package/build/services/escalation/bulk.d.ts +27 -0
  152. package/build/services/escalation/bulk.js +57 -0
  153. package/build/services/escalation/crud.d.ts +47 -0
  154. package/build/services/escalation/crud.js +150 -0
  155. package/build/services/escalation/index.d.ts +4 -0
  156. package/build/services/escalation/index.js +20 -0
  157. package/build/services/escalation/queries.d.ts +37 -0
  158. package/build/services/escalation/queries.js +163 -0
  159. package/build/services/escalation/sql.d.ts +21 -0
  160. package/build/services/escalation/sql.js +135 -0
  161. package/build/services/escalation/types.d.ts +43 -0
  162. package/build/services/escalation/types.js +13 -0
  163. package/build/services/escalation-strategy/default.d.ts +12 -0
  164. package/build/services/escalation-strategy/default.js +17 -0
  165. package/build/services/escalation-strategy/index.d.ts +21 -0
  166. package/build/services/escalation-strategy/index.js +32 -0
  167. package/build/services/escalation-strategy/mcp.d.ts +13 -0
  168. package/build/services/escalation-strategy/mcp.js +51 -0
  169. package/build/services/events/index.d.ts +37 -0
  170. package/build/services/events/index.js +64 -0
  171. package/build/services/events/memory.d.ts +27 -0
  172. package/build/services/events/memory.js +40 -0
  173. package/build/services/events/nats.d.ts +29 -0
  174. package/build/services/events/nats.js +50 -0
  175. package/build/services/events/publish.d.ts +72 -0
  176. package/build/services/events/publish.js +106 -0
  177. package/build/services/events/socketio.d.ts +33 -0
  178. package/build/services/events/socketio.js +70 -0
  179. package/build/services/export/client.d.ts +2 -0
  180. package/build/services/export/client.js +16 -0
  181. package/build/services/export/index.d.ts +39 -0
  182. package/build/services/export/index.js +158 -0
  183. package/build/services/export/post-process.d.ts +16 -0
  184. package/build/services/export/post-process.js +133 -0
  185. package/build/services/export/types.d.ts +25 -0
  186. package/build/services/export/types.js +2 -0
  187. package/build/services/hotmesh-utils.d.ts +61 -0
  188. package/build/services/hotmesh-utils.js +204 -0
  189. package/build/services/iam/activity.d.ts +52 -0
  190. package/build/services/iam/activity.js +59 -0
  191. package/build/services/iam/bots.d.ts +83 -0
  192. package/build/services/iam/bots.js +157 -0
  193. package/build/services/iam/context.d.ts +14 -0
  194. package/build/services/iam/context.js +61 -0
  195. package/build/services/iam/credentials.d.ts +42 -0
  196. package/build/services/iam/credentials.js +86 -0
  197. package/build/services/iam/envelope.d.ts +10 -0
  198. package/build/services/iam/envelope.js +32 -0
  199. package/build/services/iam/ephemeral.d.ts +50 -0
  200. package/build/services/iam/ephemeral.js +131 -0
  201. package/build/services/iam/index.d.ts +19 -0
  202. package/build/services/iam/index.js +37 -0
  203. package/build/services/iam/principal.d.ts +12 -0
  204. package/build/services/iam/principal.js +53 -0
  205. package/build/services/iam/resolve.d.ts +48 -0
  206. package/build/services/iam/resolve.js +89 -0
  207. package/build/services/insight/index.d.ts +30 -0
  208. package/build/services/insight/index.js +81 -0
  209. package/build/services/insight/prompts.d.ts +4 -0
  210. package/build/services/insight/prompts.js +15 -0
  211. package/build/services/interceptor/activities/config.d.ts +21 -0
  212. package/build/services/interceptor/activities/config.js +26 -0
  213. package/build/services/interceptor/activities/escalation.d.ts +58 -0
  214. package/build/services/interceptor/activities/escalation.js +110 -0
  215. package/build/services/interceptor/activities/index.d.ts +4 -0
  216. package/build/services/interceptor/activities/index.js +23 -0
  217. package/build/services/interceptor/activities/task.d.ts +65 -0
  218. package/build/services/interceptor/activities/task.js +168 -0
  219. package/build/services/interceptor/activities/workflow.d.ts +26 -0
  220. package/build/services/interceptor/activities/workflow.js +41 -0
  221. package/build/services/interceptor/activity-interceptor.d.ts +32 -0
  222. package/build/services/interceptor/activity-interceptor.js +86 -0
  223. package/build/services/interceptor/completion.d.ts +16 -0
  224. package/build/services/interceptor/completion.js +149 -0
  225. package/build/services/interceptor/context.d.ts +11 -0
  226. package/build/services/interceptor/context.js +20 -0
  227. package/build/services/interceptor/escalation.d.ts +26 -0
  228. package/build/services/interceptor/escalation.js +150 -0
  229. package/build/services/interceptor/index.d.ts +45 -0
  230. package/build/services/interceptor/index.js +160 -0
  231. package/build/services/interceptor/lifecycle.d.ts +44 -0
  232. package/build/services/interceptor/lifecycle.js +174 -0
  233. package/build/services/interceptor/state.d.ts +22 -0
  234. package/build/services/interceptor/state.js +36 -0
  235. package/build/services/interceptor/types.d.ts +43 -0
  236. package/build/services/interceptor/types.js +3 -0
  237. package/build/services/llm/detect.d.ts +16 -0
  238. package/build/services/llm/detect.js +33 -0
  239. package/build/services/llm/index.d.ts +34 -0
  240. package/build/services/llm/index.js +106 -0
  241. package/build/services/llm/providers/anthropic.d.ts +11 -0
  242. package/build/services/llm/providers/anthropic.js +85 -0
  243. package/build/services/llm/providers/openai.d.ts +9 -0
  244. package/build/services/llm/providers/openai.js +46 -0
  245. package/build/services/llm/translate.d.ts +66 -0
  246. package/build/services/llm/translate.js +192 -0
  247. package/build/services/llm/types.d.ts +64 -0
  248. package/build/services/llm/types.js +8 -0
  249. package/build/services/logger/index.d.ts +32 -0
  250. package/build/services/logger/index.js +69 -0
  251. package/build/services/logger/pino.d.ts +24 -0
  252. package/build/services/logger/pino.js +59 -0
  253. package/build/services/maintenance/index.d.ts +43 -0
  254. package/build/services/maintenance/index.js +183 -0
  255. package/build/services/mcp/adapter.d.ts +23 -0
  256. package/build/services/mcp/adapter.js +119 -0
  257. package/build/services/mcp/client/connection.d.ts +46 -0
  258. package/build/services/mcp/client/connection.js +280 -0
  259. package/build/services/mcp/client/index.d.ts +2 -0
  260. package/build/services/mcp/client/index.js +16 -0
  261. package/build/services/mcp/client/tools.d.ts +22 -0
  262. package/build/services/mcp/client/tools.js +118 -0
  263. package/build/services/mcp/db-server/index.d.ts +25 -0
  264. package/build/services/mcp/db-server/index.js +49 -0
  265. package/build/services/mcp/db-server/schemas.d.ts +52 -0
  266. package/build/services/mcp/db-server/schemas.js +34 -0
  267. package/build/services/mcp/db-server/tools.d.ts +5 -0
  268. package/build/services/mcp/db-server/tools.js +224 -0
  269. package/build/services/mcp/db.d.ts +26 -0
  270. package/build/services/mcp/db.js +141 -0
  271. package/build/services/mcp/index.d.ts +25 -0
  272. package/build/services/mcp/index.js +47 -0
  273. package/build/services/mcp/playwright-server/index.d.ts +14 -0
  274. package/build/services/mcp/playwright-server/index.js +25 -0
  275. package/build/services/mcp/playwright-server/lifecycle.d.ts +7 -0
  276. package/build/services/mcp/playwright-server/lifecycle.js +63 -0
  277. package/build/services/mcp/playwright-server/schemas.d.ts +81 -0
  278. package/build/services/mcp/playwright-server/schemas.js +48 -0
  279. package/build/services/mcp/playwright-server/tools.d.ts +2 -0
  280. package/build/services/mcp/playwright-server/tools.js +224 -0
  281. package/build/services/mcp/server.d.ts +26 -0
  282. package/build/services/mcp/server.js +286 -0
  283. package/build/services/mcp/sql.d.ts +12 -0
  284. package/build/services/mcp/sql.js +59 -0
  285. package/build/services/mcp/types.d.ts +17 -0
  286. package/build/services/mcp/types.js +3 -0
  287. package/build/services/mcp/vision-server.d.ts +15 -0
  288. package/build/services/mcp/vision-server.js +214 -0
  289. package/build/services/mcp/workflow-compiler-server.d.ts +15 -0
  290. package/build/services/mcp/workflow-compiler-server.js +206 -0
  291. package/build/services/mcp/workflow-server.d.ts +24 -0
  292. package/build/services/mcp/workflow-server.js +230 -0
  293. package/build/services/mcp-runs/enrichment.d.ts +12 -0
  294. package/build/services/mcp-runs/enrichment.js +39 -0
  295. package/build/services/mcp-runs/events.d.ts +6 -0
  296. package/build/services/mcp-runs/events.js +126 -0
  297. package/build/services/mcp-runs/execution-builder.d.ts +12 -0
  298. package/build/services/mcp-runs/execution-builder.js +100 -0
  299. package/build/services/mcp-runs/index.d.ts +4 -0
  300. package/build/services/mcp-runs/index.js +8 -0
  301. package/build/services/mcp-runs/queries.d.ts +28 -0
  302. package/build/services/mcp-runs/queries.js +71 -0
  303. package/build/services/mcp-runs/sql.d.ts +4 -0
  304. package/build/services/mcp-runs/sql.js +17 -0
  305. package/build/services/mcp-runs/types.d.ts +65 -0
  306. package/build/services/mcp-runs/types.js +2 -0
  307. package/build/services/namespace/index.d.ts +17 -0
  308. package/build/services/namespace/index.js +41 -0
  309. package/build/services/namespace/sql.d.ts +4 -0
  310. package/build/services/namespace/sql.js +23 -0
  311. package/build/services/namespace/types.d.ts +11 -0
  312. package/build/services/namespace/types.js +3 -0
  313. package/build/services/oauth/crypto.d.ts +19 -0
  314. package/build/services/oauth/crypto.js +95 -0
  315. package/build/services/oauth/db.d.ts +20 -0
  316. package/build/services/oauth/db.js +140 -0
  317. package/build/services/oauth/index.d.ts +12 -0
  318. package/build/services/oauth/index.js +77 -0
  319. package/build/services/oauth/providers/anthropic.d.ts +3 -0
  320. package/build/services/oauth/providers/anthropic.js +111 -0
  321. package/build/services/oauth/providers/github.d.ts +3 -0
  322. package/build/services/oauth/providers/github.js +46 -0
  323. package/build/services/oauth/providers/google.d.ts +3 -0
  324. package/build/services/oauth/providers/google.js +44 -0
  325. package/build/services/oauth/providers/index.d.ts +2 -0
  326. package/build/services/oauth/providers/index.js +7 -0
  327. package/build/services/oauth/providers/microsoft.d.ts +3 -0
  328. package/build/services/oauth/providers/microsoft.js +46 -0
  329. package/build/services/oauth/providers/mock.d.ts +3 -0
  330. package/build/services/oauth/providers/mock.js +76 -0
  331. package/build/services/oauth/providers/registry.d.ts +8 -0
  332. package/build/services/oauth/providers/registry.js +46 -0
  333. package/build/services/oauth/providers/types.d.ts +13 -0
  334. package/build/services/oauth/providers/types.js +2 -0
  335. package/build/services/oauth/state.d.ts +30 -0
  336. package/build/services/oauth/state.js +83 -0
  337. package/build/services/orchestrator/index.d.ts +23 -0
  338. package/build/services/orchestrator/index.js +156 -0
  339. package/build/services/orchestrator/types.d.ts +15 -0
  340. package/build/services/orchestrator/types.js +3 -0
  341. package/build/services/role/index.d.ts +47 -0
  342. package/build/services/role/index.js +136 -0
  343. package/build/services/role/sql.d.ts +14 -0
  344. package/build/services/role/sql.js +80 -0
  345. package/build/services/role/types.d.ts +11 -0
  346. package/build/services/role/types.js +3 -0
  347. package/build/services/storage/index.d.ts +12 -0
  348. package/build/services/storage/index.js +31 -0
  349. package/build/services/storage/local.d.ts +26 -0
  350. package/build/services/storage/local.js +129 -0
  351. package/build/services/storage/s3.d.ts +31 -0
  352. package/build/services/storage/s3.js +180 -0
  353. package/build/services/storage/types.d.ts +41 -0
  354. package/build/services/storage/types.js +2 -0
  355. package/build/services/task/crud.d.ts +21 -0
  356. package/build/services/task/crud.js +123 -0
  357. package/build/services/task/index.d.ts +4 -0
  358. package/build/services/task/index.js +20 -0
  359. package/build/services/task/process.d.ts +14 -0
  360. package/build/services/task/process.js +98 -0
  361. package/build/services/task/resolve.d.ts +12 -0
  362. package/build/services/task/resolve.js +49 -0
  363. package/build/services/task/sql.d.ts +19 -0
  364. package/build/services/task/sql.js +92 -0
  365. package/build/services/task/types.d.ts +56 -0
  366. package/build/services/task/types.js +9 -0
  367. package/build/services/telemetry/honeycomb.d.ts +53 -0
  368. package/build/services/telemetry/honeycomb.js +79 -0
  369. package/build/services/telemetry/index.d.ts +46 -0
  370. package/build/services/telemetry/index.js +68 -0
  371. package/build/services/user/auth.d.ts +7 -0
  372. package/build/services/user/auth.js +26 -0
  373. package/build/services/user/crud.d.ts +19 -0
  374. package/build/services/user/crud.js +151 -0
  375. package/build/services/user/index.d.ts +5 -0
  376. package/build/services/user/index.js +26 -0
  377. package/build/services/user/rbac.d.ts +15 -0
  378. package/build/services/user/rbac.js +32 -0
  379. package/build/services/user/roles.d.ts +7 -0
  380. package/build/services/user/roles.js +42 -0
  381. package/build/services/user/sql.d.ts +22 -0
  382. package/build/services/user/sql.js +45 -0
  383. package/build/services/user/types.d.ts +23 -0
  384. package/build/services/user/types.js +4 -0
  385. package/build/services/workers/registry.d.ts +10 -0
  386. package/build/services/workers/registry.js +26 -0
  387. package/build/services/workflow-invocation.d.ts +46 -0
  388. package/build/services/workflow-invocation.js +184 -0
  389. package/build/services/yaml-workflow/db-utils.d.ts +25 -0
  390. package/build/services/yaml-workflow/db-utils.js +93 -0
  391. package/build/services/yaml-workflow/db.d.ts +27 -0
  392. package/build/services/yaml-workflow/db.js +196 -0
  393. package/build/services/yaml-workflow/deployer-helpers.d.ts +13 -0
  394. package/build/services/yaml-workflow/deployer-helpers.js +133 -0
  395. package/build/services/yaml-workflow/deployer.d.ts +54 -0
  396. package/build/services/yaml-workflow/deployer.js +203 -0
  397. package/build/services/yaml-workflow/generator.d.ts +21 -0
  398. package/build/services/yaml-workflow/generator.js +117 -0
  399. package/build/services/yaml-workflow/index.d.ts +4 -0
  400. package/build/services/yaml-workflow/index.js +20 -0
  401. package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +48 -0
  402. package/build/services/yaml-workflow/input-analyzer-helpers.js +183 -0
  403. package/build/services/yaml-workflow/input-analyzer.d.ts +30 -0
  404. package/build/services/yaml-workflow/input-analyzer.js +109 -0
  405. package/build/services/yaml-workflow/pattern-detector/array-source.d.ts +22 -0
  406. package/build/services/yaml-workflow/pattern-detector/array-source.js +120 -0
  407. package/build/services/yaml-workflow/pattern-detector/collapse.d.ts +27 -0
  408. package/build/services/yaml-workflow/pattern-detector/collapse.js +92 -0
  409. package/build/services/yaml-workflow/pattern-detector/index.d.ts +18 -0
  410. package/build/services/yaml-workflow/pattern-detector/index.js +22 -0
  411. package/build/services/yaml-workflow/pattern-detector/run-detection.d.ts +28 -0
  412. package/build/services/yaml-workflow/pattern-detector/run-detection.js +81 -0
  413. package/build/services/yaml-workflow/pattern-detector/types.d.ts +29 -0
  414. package/build/services/yaml-workflow/pattern-detector/types.js +8 -0
  415. package/build/services/yaml-workflow/pipeline/analyze.d.ts +11 -0
  416. package/build/services/yaml-workflow/pipeline/analyze.js +64 -0
  417. package/build/services/yaml-workflow/pipeline/build/dag.d.ts +25 -0
  418. package/build/services/yaml-workflow/pipeline/build/dag.js +254 -0
  419. package/build/services/yaml-workflow/pipeline/build/index.d.ts +20 -0
  420. package/build/services/yaml-workflow/pipeline/build/index.js +115 -0
  421. package/build/services/yaml-workflow/pipeline/build/iteration.d.ts +25 -0
  422. package/build/services/yaml-workflow/pipeline/build/iteration.js +231 -0
  423. package/build/services/yaml-workflow/pipeline/build/metadata.d.ts +15 -0
  424. package/build/services/yaml-workflow/pipeline/build/metadata.js +126 -0
  425. package/build/services/yaml-workflow/pipeline/build/transform.d.ts +17 -0
  426. package/build/services/yaml-workflow/pipeline/build/transform.js +94 -0
  427. package/build/services/yaml-workflow/pipeline/build/utils.d.ts +22 -0
  428. package/build/services/yaml-workflow/pipeline/build/utils.js +129 -0
  429. package/build/services/yaml-workflow/pipeline/build/wiring.d.ts +9 -0
  430. package/build/services/yaml-workflow/pipeline/build/wiring.js +148 -0
  431. package/build/services/yaml-workflow/pipeline/compile/index.d.ts +17 -0
  432. package/build/services/yaml-workflow/pipeline/compile/index.js +64 -0
  433. package/build/services/yaml-workflow/pipeline/compile/llm-call.d.ts +14 -0
  434. package/build/services/yaml-workflow/pipeline/compile/llm-call.js +153 -0
  435. package/build/services/yaml-workflow/pipeline/compile/parse-plan.d.ts +12 -0
  436. package/build/services/yaml-workflow/pipeline/compile/parse-plan.js +88 -0
  437. package/build/services/yaml-workflow/pipeline/compile/summarize.d.ts +39 -0
  438. package/build/services/yaml-workflow/pipeline/compile/summarize.js +174 -0
  439. package/build/services/yaml-workflow/pipeline/extract-helpers.d.ts +42 -0
  440. package/build/services/yaml-workflow/pipeline/extract-helpers.js +88 -0
  441. package/build/services/yaml-workflow/pipeline/extract.d.ts +24 -0
  442. package/build/services/yaml-workflow/pipeline/extract.js +235 -0
  443. package/build/services/yaml-workflow/pipeline/prompts.d.ts +15 -0
  444. package/build/services/yaml-workflow/pipeline/prompts.js +254 -0
  445. package/build/services/yaml-workflow/pipeline/validate.d.ts +12 -0
  446. package/build/services/yaml-workflow/pipeline/validate.js +111 -0
  447. package/build/services/yaml-workflow/sql.d.ts +19 -0
  448. package/build/services/yaml-workflow/sql.js +83 -0
  449. package/build/services/yaml-workflow/types.d.ts +223 -0
  450. package/build/services/yaml-workflow/types.js +8 -0
  451. package/build/services/yaml-workflow/workers/callbacks.d.ts +17 -0
  452. package/build/services/yaml-workflow/workers/callbacks.js +194 -0
  453. package/build/services/yaml-workflow/workers/events.d.ts +7 -0
  454. package/build/services/yaml-workflow/workers/events.js +49 -0
  455. package/build/services/yaml-workflow/workers/index.d.ts +4 -0
  456. package/build/services/yaml-workflow/workers/index.js +15 -0
  457. package/build/services/yaml-workflow/workers/register.d.ts +15 -0
  458. package/build/services/yaml-workflow/workers/register.js +233 -0
  459. package/build/services/yaml-workflow/workers/scope.d.ts +13 -0
  460. package/build/services/yaml-workflow/workers/scope.js +37 -0
  461. package/build/start/adapters.d.ts +6 -0
  462. package/build/start/adapters.js +80 -0
  463. package/build/start/config.d.ts +10 -0
  464. package/build/start/config.js +88 -0
  465. package/build/start/index.d.ts +21 -0
  466. package/build/start/index.js +87 -0
  467. package/build/start/server.d.ts +6 -0
  468. package/build/start/server.js +46 -0
  469. package/build/start/workers.d.ts +32 -0
  470. package/build/start/workers.js +144 -0
  471. package/build/system/activities/claude-code.d.ts +56 -0
  472. package/build/system/activities/claude-code.js +258 -0
  473. package/build/system/activities/file-storage.d.ts +31 -0
  474. package/build/system/activities/file-storage.js +71 -0
  475. package/build/system/activities/http.d.ts +27 -0
  476. package/build/system/activities/http.js +56 -0
  477. package/build/system/activities/oauth.d.ts +39 -0
  478. package/build/system/activities/oauth.js +33 -0
  479. package/build/system/activities/triage/cache.d.ts +7 -0
  480. package/build/system/activities/triage/cache.js +10 -0
  481. package/build/system/activities/triage/context.d.ts +21 -0
  482. package/build/system/activities/triage/context.js +92 -0
  483. package/build/system/activities/triage/discovery.d.ts +25 -0
  484. package/build/system/activities/triage/discovery.js +170 -0
  485. package/build/system/activities/triage/index.d.ts +5 -0
  486. package/build/system/activities/triage/index.js +22 -0
  487. package/build/system/activities/triage/llm.d.ts +9 -0
  488. package/build/system/activities/triage/llm.js +34 -0
  489. package/build/system/activities/triage/tools.d.ts +24 -0
  490. package/build/system/activities/triage/tools.js +178 -0
  491. package/build/system/index.d.ts +16 -0
  492. package/build/system/index.js +100 -0
  493. package/build/system/mcp-servers/claude-code.d.ts +17 -0
  494. package/build/system/mcp-servers/claude-code.js +110 -0
  495. package/build/system/mcp-servers/db-query/index.d.ts +25 -0
  496. package/build/system/mcp-servers/db-query/index.js +49 -0
  497. package/build/system/mcp-servers/db-query/schemas.d.ts +52 -0
  498. package/build/system/mcp-servers/db-query/schemas.js +34 -0
  499. package/build/system/mcp-servers/db-query/tools.d.ts +5 -0
  500. package/build/system/mcp-servers/db-query/tools.js +224 -0
  501. package/build/system/mcp-servers/document-vision.d.ts +15 -0
  502. package/build/system/mcp-servers/document-vision.js +228 -0
  503. package/build/system/mcp-servers/file-storage.d.ts +4 -0
  504. package/build/system/mcp-servers/file-storage.js +101 -0
  505. package/build/system/mcp-servers/http-fetch.d.ts +4 -0
  506. package/build/system/mcp-servers/http-fetch.js +100 -0
  507. package/build/system/mcp-servers/human-queue.d.ts +26 -0
  508. package/build/system/mcp-servers/human-queue.js +287 -0
  509. package/build/system/mcp-servers/oauth.d.ts +11 -0
  510. package/build/system/mcp-servers/oauth.js +100 -0
  511. package/build/system/mcp-servers/playwright/browser-lifecycle.d.ts +26 -0
  512. package/build/system/mcp-servers/playwright/browser-lifecycle.js +125 -0
  513. package/build/system/mcp-servers/playwright/index.d.ts +25 -0
  514. package/build/system/mcp-servers/playwright/index.js +42 -0
  515. package/build/system/mcp-servers/playwright/schemas.d.ts +383 -0
  516. package/build/system/mcp-servers/playwright/schemas.js +87 -0
  517. package/build/system/mcp-servers/playwright/tools-atomic.d.ts +2 -0
  518. package/build/system/mcp-servers/playwright/tools-atomic.js +9 -0
  519. package/build/system/mcp-servers/playwright/tools-navigation.d.ts +2 -0
  520. package/build/system/mcp-servers/playwright/tools-navigation.js +140 -0
  521. package/build/system/mcp-servers/playwright/tools-page-interaction.d.ts +2 -0
  522. package/build/system/mcp-servers/playwright/tools-page-interaction.js +162 -0
  523. package/build/system/mcp-servers/playwright/tools-run-script.d.ts +2 -0
  524. package/build/system/mcp-servers/playwright/tools-run-script.js +190 -0
  525. package/build/system/mcp-servers/playwright/types.d.ts +8 -0
  526. package/build/system/mcp-servers/playwright/types.js +30 -0
  527. package/build/system/mcp-servers/playwright-cli/helpers.d.ts +11 -0
  528. package/build/system/mcp-servers/playwright-cli/helpers.js +20 -0
  529. package/build/system/mcp-servers/playwright-cli/index.d.ts +4 -0
  530. package/build/system/mcp-servers/playwright-cli/index.js +15 -0
  531. package/build/system/mcp-servers/playwright-cli/schemas.d.ts +219 -0
  532. package/build/system/mcp-servers/playwright-cli/schemas.js +75 -0
  533. package/build/system/mcp-servers/playwright-cli/tools-auth.d.ts +2 -0
  534. package/build/system/mcp-servers/playwright-cli/tools-auth.js +183 -0
  535. package/build/system/mcp-servers/playwright-cli/tools-capture.d.ts +2 -0
  536. package/build/system/mcp-servers/playwright-cli/tools-capture.js +267 -0
  537. package/build/system/mcp-servers/prompts.d.ts +4 -0
  538. package/build/system/mcp-servers/prompts.js +10 -0
  539. package/build/system/mcp-servers/workflow-compiler.d.ts +15 -0
  540. package/build/system/mcp-servers/workflow-compiler.js +230 -0
  541. package/build/system/mcp-servers/workflow.d.ts +24 -0
  542. package/build/system/mcp-servers/workflow.js +231 -0
  543. package/build/system/seed/index.d.ts +7 -0
  544. package/build/system/seed/index.js +36 -0
  545. package/build/system/seed/server-definitions.d.ts +1460 -0
  546. package/build/system/seed/server-definitions.js +160 -0
  547. package/build/system/seed/tool-manifests-browser.d.ts +577 -0
  548. package/build/system/seed/tool-manifests-browser.js +158 -0
  549. package/build/system/seed/tool-manifests-data.d.ts +322 -0
  550. package/build/system/seed/tool-manifests-data.js +173 -0
  551. package/build/system/seed/tool-manifests-escalation.d.ts +173 -0
  552. package/build/system/seed/tool-manifests-escalation.js +76 -0
  553. package/build/system/seed/tool-manifests-workflows.d.ts +211 -0
  554. package/build/system/seed/tool-manifests-workflows.js +136 -0
  555. package/build/system/workflows/mcp-deterministic/activities.d.ts +6 -0
  556. package/build/system/workflows/mcp-deterministic/activities.js +56 -0
  557. package/build/system/workflows/mcp-deterministic/index.d.ts +9 -0
  558. package/build/system/workflows/mcp-deterministic/index.js +72 -0
  559. package/build/system/workflows/mcp-query/activities/caches.d.ts +7 -0
  560. package/build/system/workflows/mcp-query/activities/caches.js +10 -0
  561. package/build/system/workflows/mcp-query/activities/discovery.d.ts +31 -0
  562. package/build/system/workflows/mcp-query/activities/discovery.js +172 -0
  563. package/build/system/workflows/mcp-query/activities/index.d.ts +4 -0
  564. package/build/system/workflows/mcp-query/activities/index.js +13 -0
  565. package/build/system/workflows/mcp-query/activities/llm.d.ts +8 -0
  566. package/build/system/workflows/mcp-query/activities/llm.js +33 -0
  567. package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +5 -0
  568. package/build/system/workflows/mcp-query/activities/tool-executor.js +112 -0
  569. package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +14 -0
  570. package/build/system/workflows/mcp-query/activities/tool-loader.js +93 -0
  571. package/build/system/workflows/mcp-query/index.d.ts +14 -0
  572. package/build/system/workflows/mcp-query/index.js +227 -0
  573. package/build/system/workflows/mcp-query/prompts.d.ts +4 -0
  574. package/build/system/workflows/mcp-query/prompts.js +101 -0
  575. package/build/system/workflows/mcp-query/strategy-advisors.d.ts +14 -0
  576. package/build/system/workflows/mcp-query/strategy-advisors.js +109 -0
  577. package/build/system/workflows/mcp-query/types.d.ts +10 -0
  578. package/build/system/workflows/mcp-query/types.js +3 -0
  579. package/build/system/workflows/mcp-query-router/activities.d.ts +6 -0
  580. package/build/system/workflows/mcp-query-router/activities.js +12 -0
  581. package/build/system/workflows/mcp-query-router/index.d.ts +13 -0
  582. package/build/system/workflows/mcp-query-router/index.js +107 -0
  583. package/build/system/workflows/mcp-query-router/prompts.d.ts +1 -0
  584. package/build/system/workflows/mcp-query-router/prompts.js +8 -0
  585. package/build/system/workflows/mcp-triage/index.d.ts +31 -0
  586. package/build/system/workflows/mcp-triage/index.js +222 -0
  587. package/build/system/workflows/mcp-triage/prompts.d.ts +7 -0
  588. package/build/system/workflows/mcp-triage/prompts.js +159 -0
  589. package/build/system/workflows/mcp-triage/response-builders.d.ts +17 -0
  590. package/build/system/workflows/mcp-triage/response-builders.js +96 -0
  591. package/build/system/workflows/mcp-triage/response.d.ts +8 -0
  592. package/build/system/workflows/mcp-triage/response.js +157 -0
  593. package/build/system/workflows/mcp-triage/types.d.ts +20 -0
  594. package/build/system/workflows/mcp-triage/types.js +3 -0
  595. package/build/system/workflows/mcp-triage-deterministic/activities.d.ts +4 -0
  596. package/build/system/workflows/mcp-triage-deterministic/activities.js +8 -0
  597. package/build/system/workflows/mcp-triage-deterministic/index.d.ts +12 -0
  598. package/build/system/workflows/mcp-triage-deterministic/index.js +83 -0
  599. package/build/system/workflows/mcp-triage-router/activities.d.ts +9 -0
  600. package/build/system/workflows/mcp-triage-router/activities.js +15 -0
  601. package/build/system/workflows/mcp-triage-router/index.d.ts +13 -0
  602. package/build/system/workflows/mcp-triage-router/index.js +122 -0
  603. package/build/tsconfig.tsbuildinfo +1 -0
  604. package/build/types/auth.d.ts +34 -0
  605. package/build/types/auth.js +2 -0
  606. package/build/types/config.d.ts +48 -0
  607. package/build/types/config.js +2 -0
  608. package/build/types/delegation.d.ts +41 -0
  609. package/build/types/delegation.js +2 -0
  610. package/build/types/discovery.d.ts +12 -0
  611. package/build/types/discovery.js +3 -0
  612. package/build/types/envelope.d.ts +53 -0
  613. package/build/types/envelope.js +2 -0
  614. package/build/types/escalation-strategy.d.ts +37 -0
  615. package/build/types/escalation-strategy.js +2 -0
  616. package/build/types/escalation.d.ts +39 -0
  617. package/build/types/escalation.js +21 -0
  618. package/build/types/events.d.ts +65 -0
  619. package/build/types/events.js +2 -0
  620. package/build/types/export.d.ts +78 -0
  621. package/build/types/export.js +11 -0
  622. package/build/types/index.d.ts +21 -0
  623. package/build/types/index.js +6 -0
  624. package/build/types/logger.d.ts +26 -0
  625. package/build/types/logger.js +2 -0
  626. package/build/types/maintenance.d.ts +24 -0
  627. package/build/types/maintenance.js +2 -0
  628. package/build/types/mcp.d.ts +80 -0
  629. package/build/types/mcp.js +2 -0
  630. package/build/types/oauth.d.ts +74 -0
  631. package/build/types/oauth.js +2 -0
  632. package/build/types/startup.d.ts +110 -0
  633. package/build/types/startup.js +2 -0
  634. package/build/types/task.d.ts +39 -0
  635. package/build/types/task.js +2 -0
  636. package/build/types/telemetry.d.ts +32 -0
  637. package/build/types/telemetry.js +2 -0
  638. package/build/types/tool-context.d.ts +68 -0
  639. package/build/types/tool-context.js +14 -0
  640. package/build/types/user.d.ts +18 -0
  641. package/build/types/user.js +2 -0
  642. package/build/types/workflow.d.ts +35 -0
  643. package/build/types/workflow.js +2 -0
  644. package/build/types/yaml-workflow.d.ts +101 -0
  645. package/build/types/yaml-workflow.js +5 -0
  646. package/build/vitest.config.d.ts +2 -0
  647. package/build/vitest.config.js +32 -0
  648. package/build/vitest.integration.config.d.ts +2 -0
  649. package/build/vitest.integration.config.js +25 -0
  650. package/build/workers/index.d.ts +6 -0
  651. package/build/workers/index.js +20 -0
  652. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +2 -0
  653. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +1 -0
  654. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +2 -0
  655. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +1 -0
  656. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +2 -0
  657. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js.map +1 -0
  658. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +2 -0
  659. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js.map +1 -0
  660. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +2 -0
  661. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js.map +1 -0
  662. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +2 -0
  663. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js.map +1 -0
  664. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +2 -0
  665. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js.map +1 -0
  666. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +2 -0
  667. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js.map +1 -0
  668. package/dashboard/dist/assets/DataTable-BDn1WBHS.js +2 -0
  669. package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +1 -0
  670. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +2 -0
  671. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js.map +1 -0
  672. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +2 -0
  673. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js.map +1 -0
  674. package/dashboard/dist/assets/EventTable-B01oJf6Y.js +2 -0
  675. package/dashboard/dist/assets/EventTable-B01oJf6Y.js.map +1 -0
  676. package/dashboard/dist/assets/Field-DuFBAYhu.js +2 -0
  677. package/dashboard/dist/assets/Field-DuFBAYhu.js.map +1 -0
  678. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
  679. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js.map +1 -0
  680. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +2 -0
  681. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js.map +1 -0
  682. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +2 -0
  683. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +1 -0
  684. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +2 -0
  685. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +1 -0
  686. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +2 -0
  687. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +1 -0
  688. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +2 -0
  689. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +1 -0
  690. package/dashboard/dist/assets/Modal-B4rbIVAn.js +2 -0
  691. package/dashboard/dist/assets/Modal-B4rbIVAn.js.map +1 -0
  692. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +2 -0
  693. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +1 -0
  694. package/dashboard/dist/assets/PageHeader-CpWFly5S.js +2 -0
  695. package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +1 -0
  696. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
  697. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js.map +1 -0
  698. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +2 -0
  699. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +1 -0
  700. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +2 -0
  701. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +1 -0
  702. package/dashboard/dist/assets/RolePill-BTPa8L-P.js +2 -0
  703. package/dashboard/dist/assets/RolePill-BTPa8L-P.js.map +1 -0
  704. package/dashboard/dist/assets/RolesPage-9grZW7yR.js +2 -0
  705. package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +1 -0
  706. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
  707. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js.map +1 -0
  708. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +4 -0
  709. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +1 -0
  710. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
  711. package/dashboard/dist/assets/StatCard-DlgF0CJC.js.map +1 -0
  712. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +2 -0
  713. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +1 -0
  714. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +2 -0
  715. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js.map +1 -0
  716. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +2 -0
  717. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +1 -0
  718. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +2 -0
  719. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +1 -0
  720. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +2 -0
  721. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js.map +1 -0
  722. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +2 -0
  723. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js.map +1 -0
  724. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +2 -0
  725. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +1 -0
  726. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +2 -0
  727. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +1 -0
  728. package/dashboard/dist/assets/UserName-DaP4YAKr.js +2 -0
  729. package/dashboard/dist/assets/UserName-DaP4YAKr.js.map +1 -0
  730. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +5 -0
  731. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +1 -0
  732. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +2 -0
  733. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +1 -0
  734. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +2 -0
  735. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +1 -0
  736. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +2 -0
  737. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +1 -0
  738. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +2 -0
  739. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js.map +1 -0
  740. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +3 -0
  741. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +1 -0
  742. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +2 -0
  743. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +1 -0
  744. package/dashboard/dist/assets/bots-BkKVMbUW.js +2 -0
  745. package/dashboard/dist/assets/bots-BkKVMbUW.js.map +1 -0
  746. package/dashboard/dist/assets/constants-CgaZfe5d.js +2 -0
  747. package/dashboard/dist/assets/constants-CgaZfe5d.js.map +1 -0
  748. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +2 -0
  749. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js.map +1 -0
  750. package/dashboard/dist/assets/escalation-qalymbKB.js +2 -0
  751. package/dashboard/dist/assets/escalation-qalymbKB.js.map +1 -0
  752. package/dashboard/dist/assets/format-gXZXQ-HJ.js +2 -0
  753. package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +1 -0
  754. package/dashboard/dist/assets/helpers-0gSleuzT.js +2 -0
  755. package/dashboard/dist/assets/helpers-0gSleuzT.js.map +1 -0
  756. package/dashboard/dist/assets/index-BWvMHed7.js +6 -0
  757. package/dashboard/dist/assets/index-BWvMHed7.js.map +1 -0
  758. package/dashboard/dist/assets/index-BaszoPO_.css +1 -0
  759. package/dashboard/dist/assets/index-Cn2jyj9A.js +2 -0
  760. package/dashboard/dist/assets/index-Cn2jyj9A.js.map +1 -0
  761. package/dashboard/dist/assets/index-D8VH6K8B.js +54 -0
  762. package/dashboard/dist/assets/index-D8VH6K8B.js.map +1 -0
  763. package/dashboard/dist/assets/index-D9SYwJsi.js +3 -0
  764. package/dashboard/dist/assets/index-D9SYwJsi.js.map +1 -0
  765. package/dashboard/dist/assets/index-DTPzZr_X.js +2 -0
  766. package/dashboard/dist/assets/index-DTPzZr_X.js.map +1 -0
  767. package/dashboard/dist/assets/index-D_6AB5BE.js +2 -0
  768. package/dashboard/dist/assets/index-D_6AB5BE.js.map +1 -0
  769. package/dashboard/dist/assets/index-S9Ks2Lj2.js +2 -0
  770. package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +1 -0
  771. package/dashboard/dist/assets/index-X85K5bHC.js +17 -0
  772. package/dashboard/dist/assets/index-X85K5bHC.js.map +1 -0
  773. package/dashboard/dist/assets/index-rjmgHlSH.js +2 -0
  774. package/dashboard/dist/assets/index-rjmgHlSH.js.map +1 -0
  775. package/dashboard/dist/assets/mcp-blCW6IL7.js +2 -0
  776. package/dashboard/dist/assets/mcp-blCW6IL7.js.map +1 -0
  777. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +2 -0
  778. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +1 -0
  779. package/dashboard/dist/assets/mcp-runs-ChPbpvXK.js +2 -0
  780. package/dashboard/dist/assets/mcp-runs-ChPbpvXK.js.map +1 -0
  781. package/dashboard/dist/assets/namespaces-BgbaC3ow.js +2 -0
  782. package/dashboard/dist/assets/namespaces-BgbaC3ow.js.map +1 -0
  783. package/dashboard/dist/assets/roles-ZNrqqnQl.js +2 -0
  784. package/dashboard/dist/assets/roles-ZNrqqnQl.js.map +1 -0
  785. package/dashboard/dist/assets/settings-eBRSE0mQ.js +2 -0
  786. package/dashboard/dist/assets/settings-eBRSE0mQ.js.map +1 -0
  787. package/dashboard/dist/assets/tasks-tRqClPns.js +2 -0
  788. package/dashboard/dist/assets/tasks-tRqClPns.js.map +1 -0
  789. package/dashboard/dist/assets/useFilterParams-BaXUAkYK.js +2 -0
  790. package/dashboard/dist/assets/useFilterParams-BaXUAkYK.js.map +1 -0
  791. package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js +2 -0
  792. package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js.map +1 -0
  793. package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js +2 -0
  794. package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js.map +1 -0
  795. package/dashboard/dist/assets/users-tMvNyOo8.js +2 -0
  796. package/dashboard/dist/assets/users-tMvNyOo8.js.map +1 -0
  797. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js +292 -0
  798. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +1 -0
  799. package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
  800. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
  801. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +22 -0
  802. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +1 -0
  803. package/dashboard/dist/assets/workflows-Cc4VHcrp.js +2 -0
  804. package/dashboard/dist/assets/workflows-Cc4VHcrp.js.map +1 -0
  805. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +2 -0
  806. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +1 -0
  807. package/dashboard/dist/index.html +20 -0
  808. package/dashboard/dist/logo512.png +0 -0
  809. package/package.json +96 -0
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upsertOAuthToken = upsertOAuthToken;
4
+ exports.getOAuthToken = getOAuthToken;
5
+ exports.getFreshAccessToken = getFreshAccessToken;
6
+ exports.listOAuthConnections = listOAuthConnections;
7
+ exports.deleteOAuthConnection = deleteOAuthConnection;
8
+ exports.getUserByOAuthProvider = getUserByOAuthProvider;
9
+ const db_1 = require("../db");
10
+ const crypto_1 = require("./crypto");
11
+ const providers_1 = require("./providers");
12
+ const crud_1 = require("../user/crud");
13
+ // ── SQL ──────────────────────────────────────────────────────────────────────
14
+ const UPSERT_TOKEN = `
15
+ INSERT INTO lt_oauth_tokens
16
+ (user_id, provider, label, access_token_enc, refresh_token_enc, token_type, scopes,
17
+ expires_at, provider_user_id, provider_email, metadata)
18
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)
19
+ ON CONFLICT (user_id, provider, label) DO UPDATE SET
20
+ access_token_enc = EXCLUDED.access_token_enc,
21
+ refresh_token_enc = COALESCE(EXCLUDED.refresh_token_enc, lt_oauth_tokens.refresh_token_enc),
22
+ token_type = EXCLUDED.token_type,
23
+ scopes = EXCLUDED.scopes,
24
+ expires_at = EXCLUDED.expires_at,
25
+ provider_user_id = EXCLUDED.provider_user_id,
26
+ provider_email = COALESCE(EXCLUDED.provider_email, lt_oauth_tokens.provider_email),
27
+ metadata = COALESCE(EXCLUDED.metadata, lt_oauth_tokens.metadata)
28
+ RETURNING id`;
29
+ const GET_TOKEN = `
30
+ SELECT * FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = $3`;
31
+ const GET_TOKEN_DEFAULT = `
32
+ SELECT * FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = 'default'`;
33
+ const LIST_CONNECTIONS = `
34
+ SELECT provider, label, provider_email, scopes, expires_at, metadata
35
+ FROM lt_oauth_tokens WHERE user_id = $1 ORDER BY provider, label`;
36
+ const DELETE_TOKEN = `
37
+ DELETE FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = $3`;
38
+ const DELETE_TOKEN_DEFAULT = `
39
+ DELETE FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = 'default'`;
40
+ const GET_USER_BY_OAUTH = `
41
+ SELECT * FROM lt_users WHERE oauth_provider = $1 AND oauth_provider_id = $2`;
42
+ // ── Database operations ──────────────────────────────────────────────────────
43
+ async function upsertOAuthToken(userId, provider, tokens, scopes, providerUserId, providerEmail, metadata, label = 'default') {
44
+ const pool = await (0, db_1.getPool)();
45
+ const result = await pool.query(UPSERT_TOKEN, [
46
+ userId,
47
+ provider,
48
+ label,
49
+ (0, crypto_1.encrypt)(tokens.accessToken),
50
+ tokens.refreshToken ? (0, crypto_1.encrypt)(tokens.refreshToken) : null,
51
+ 'bearer',
52
+ scopes,
53
+ tokens.accessTokenExpiresAt,
54
+ providerUserId,
55
+ providerEmail,
56
+ metadata ? JSON.stringify(metadata) : null,
57
+ ]);
58
+ return result.rows[0].id;
59
+ }
60
+ async function getOAuthToken(userId, provider, label) {
61
+ const pool = await (0, db_1.getPool)();
62
+ const { rows } = label
63
+ ? await pool.query(GET_TOKEN, [userId, provider, label])
64
+ : await pool.query(GET_TOKEN_DEFAULT, [userId, provider]);
65
+ if (rows.length === 0)
66
+ return null;
67
+ const row = rows[0];
68
+ return {
69
+ accessToken: (0, crypto_1.decrypt)(row.access_token_enc),
70
+ refreshToken: row.refresh_token_enc ? (0, crypto_1.decrypt)(row.refresh_token_enc) : null,
71
+ expiresAt: row.expires_at ? new Date(row.expires_at) : null,
72
+ scopes: row.scopes || [],
73
+ provider: row.provider,
74
+ label: row.label,
75
+ };
76
+ }
77
+ /**
78
+ * Get a fresh access token, refreshing if expired.
79
+ * Returns the access token string ready for use in API calls.
80
+ */
81
+ async function getFreshAccessToken(userId, provider, label) {
82
+ const token = await getOAuthToken(userId, provider, label);
83
+ if (!token) {
84
+ const suffix = label && label !== 'default' ? ` (label: "${label}")` : '';
85
+ throw new Error(`No OAuth connection for provider "${provider}"${suffix} and user "${userId}"`);
86
+ }
87
+ // If not expired (with 60s buffer), return as-is
88
+ if (token.expiresAt && token.expiresAt.getTime() > Date.now() + 60_000) {
89
+ return token;
90
+ }
91
+ // If no expiry set (e.g., GitHub, Anthropic API keys), return as-is
92
+ if (!token.expiresAt) {
93
+ return token;
94
+ }
95
+ // Refresh the token
96
+ if (!token.refreshToken) {
97
+ throw new Error(`Token expired for provider "${provider}" and no refresh token available`);
98
+ }
99
+ const handler = (0, providers_1.getProvider)(provider);
100
+ if (!handler) {
101
+ throw new Error(`OAuth provider "${provider}" not configured`);
102
+ }
103
+ const refreshed = await handler.refreshAccessToken(token.refreshToken);
104
+ await upsertOAuthToken(userId, provider, refreshed, token.scopes, '', // providerUserId unchanged (ON CONFLICT UPDATE keeps existing)
105
+ null, undefined, token.label);
106
+ return {
107
+ accessToken: refreshed.accessToken,
108
+ refreshToken: refreshed.refreshToken,
109
+ expiresAt: refreshed.accessTokenExpiresAt,
110
+ scopes: token.scopes,
111
+ provider,
112
+ label: token.label,
113
+ };
114
+ }
115
+ async function listOAuthConnections(userId) {
116
+ const pool = await (0, db_1.getPool)();
117
+ const { rows } = await pool.query(LIST_CONNECTIONS, [userId]);
118
+ return rows.map((r) => ({
119
+ provider: r.provider,
120
+ label: r.label,
121
+ email: r.provider_email,
122
+ scopes: r.scopes || [],
123
+ expires_at: r.expires_at ? new Date(r.expires_at).toISOString() : null,
124
+ credential_type: r.metadata?.credential_type ?? null,
125
+ }));
126
+ }
127
+ async function deleteOAuthConnection(userId, provider, label) {
128
+ const pool = await (0, db_1.getPool)();
129
+ const result = label
130
+ ? await pool.query(DELETE_TOKEN, [userId, provider, label])
131
+ : await pool.query(DELETE_TOKEN_DEFAULT, [userId, provider]);
132
+ return (result.rowCount ?? 0) > 0;
133
+ }
134
+ async function getUserByOAuthProvider(provider, providerUserId) {
135
+ const pool = await (0, db_1.getPool)();
136
+ const { rows } = await pool.query(GET_USER_BY_OAUTH, [provider, providerUserId]);
137
+ if (!rows[0])
138
+ return null;
139
+ return (0, crud_1.attachRoles)(rows[0]);
140
+ }
@@ -0,0 +1,12 @@
1
+ import type { LTOAuthStartConfig } from '../../types/oauth';
2
+ export { encrypt, decrypt, getEncryptionKey, setEncryptionKey } from './crypto';
3
+ export { createOAuthState, consumeOAuthState } from './state';
4
+ export { registerProvider, getProvider, listProviders } from './providers';
5
+ export type { ProviderHandler, OAuthTokens } from './providers';
6
+ export { upsertOAuthToken, getOAuthToken, getFreshAccessToken, listOAuthConnections, deleteOAuthConnection, getUserByOAuthProvider, } from './db';
7
+ /**
8
+ * Initialize the OAuth service.
9
+ * Called from start.ts when auth.oauth is configured.
10
+ * Also scans environment variables for provider credentials.
11
+ */
12
+ export declare function initializeOAuth(config?: LTOAuthStartConfig): void;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUserByOAuthProvider = exports.deleteOAuthConnection = exports.listOAuthConnections = exports.getFreshAccessToken = exports.getOAuthToken = exports.upsertOAuthToken = exports.listProviders = exports.getProvider = exports.registerProvider = exports.consumeOAuthState = exports.createOAuthState = exports.setEncryptionKey = exports.getEncryptionKey = exports.decrypt = exports.encrypt = void 0;
4
+ exports.initializeOAuth = initializeOAuth;
5
+ const crypto_1 = require("./crypto");
6
+ const providers_1 = require("./providers");
7
+ const logger_1 = require("../logger");
8
+ var crypto_2 = require("./crypto");
9
+ Object.defineProperty(exports, "encrypt", { enumerable: true, get: function () { return crypto_2.encrypt; } });
10
+ Object.defineProperty(exports, "decrypt", { enumerable: true, get: function () { return crypto_2.decrypt; } });
11
+ Object.defineProperty(exports, "getEncryptionKey", { enumerable: true, get: function () { return crypto_2.getEncryptionKey; } });
12
+ Object.defineProperty(exports, "setEncryptionKey", { enumerable: true, get: function () { return crypto_2.setEncryptionKey; } });
13
+ var state_1 = require("./state");
14
+ Object.defineProperty(exports, "createOAuthState", { enumerable: true, get: function () { return state_1.createOAuthState; } });
15
+ Object.defineProperty(exports, "consumeOAuthState", { enumerable: true, get: function () { return state_1.consumeOAuthState; } });
16
+ var providers_2 = require("./providers");
17
+ Object.defineProperty(exports, "registerProvider", { enumerable: true, get: function () { return providers_2.registerProvider; } });
18
+ Object.defineProperty(exports, "getProvider", { enumerable: true, get: function () { return providers_2.getProvider; } });
19
+ Object.defineProperty(exports, "listProviders", { enumerable: true, get: function () { return providers_2.listProviders; } });
20
+ var db_1 = require("./db");
21
+ Object.defineProperty(exports, "upsertOAuthToken", { enumerable: true, get: function () { return db_1.upsertOAuthToken; } });
22
+ Object.defineProperty(exports, "getOAuthToken", { enumerable: true, get: function () { return db_1.getOAuthToken; } });
23
+ Object.defineProperty(exports, "getFreshAccessToken", { enumerable: true, get: function () { return db_1.getFreshAccessToken; } });
24
+ Object.defineProperty(exports, "listOAuthConnections", { enumerable: true, get: function () { return db_1.listOAuthConnections; } });
25
+ Object.defineProperty(exports, "deleteOAuthConnection", { enumerable: true, get: function () { return db_1.deleteOAuthConnection; } });
26
+ Object.defineProperty(exports, "getUserByOAuthProvider", { enumerable: true, get: function () { return db_1.getUserByOAuthProvider; } });
27
+ /** Well-known env var patterns for auto-detecting OAuth providers. */
28
+ const ENV_PROVIDERS = [
29
+ { provider: 'google', idVar: 'OAUTH_GOOGLE_CLIENT_ID', secretVar: 'OAUTH_GOOGLE_CLIENT_SECRET' },
30
+ { provider: 'github', idVar: 'OAUTH_GITHUB_CLIENT_ID', secretVar: 'OAUTH_GITHUB_CLIENT_SECRET' },
31
+ { provider: 'microsoft', idVar: 'OAUTH_MICROSOFT_CLIENT_ID', secretVar: 'OAUTH_MICROSOFT_CLIENT_SECRET' },
32
+ { provider: 'mock', idVar: 'OAUTH_MOCK_CLIENT_ID', secretVar: 'OAUTH_MOCK_CLIENT_SECRET' },
33
+ ];
34
+ /**
35
+ * Credential-only providers that register unconditionally.
36
+ * These don't use real OAuth (no clientId/clientSecret needed) —
37
+ * they store user-provided API keys via a dashboard form.
38
+ */
39
+ const CREDENTIAL_PROVIDERS = [
40
+ { provider: 'anthropic', clientId: 'credential-flow', clientSecret: 'n/a', scopes: [] },
41
+ ];
42
+ /**
43
+ * Initialize the OAuth service.
44
+ * Called from start.ts when auth.oauth is configured.
45
+ * Also scans environment variables for provider credentials.
46
+ */
47
+ function initializeOAuth(config) {
48
+ // Set encryption key
49
+ const encKey = config?.encryptionKey || process.env.OAUTH_ENCRYPTION_KEY;
50
+ if (encKey) {
51
+ (0, crypto_1.setEncryptionKey)(encKey);
52
+ }
53
+ // Register providers from startup config
54
+ if (config?.providers) {
55
+ for (const p of config.providers) {
56
+ (0, providers_1.registerProvider)(p);
57
+ }
58
+ }
59
+ // Auto-detect providers from environment variables
60
+ for (const { provider, idVar, secretVar } of ENV_PROVIDERS) {
61
+ const clientId = process.env[idVar];
62
+ const clientSecret = process.env[secretVar];
63
+ if (clientId && clientSecret && !(0, providers_1.getProvider)(provider)) {
64
+ (0, providers_1.registerProvider)({ provider, clientId, clientSecret, scopes: [] });
65
+ }
66
+ }
67
+ // Register built-in credential providers (API key paste flow, no real OAuth)
68
+ for (const cfg of CREDENTIAL_PROVIDERS) {
69
+ if (!(0, providers_1.getProvider)(cfg.provider)) {
70
+ (0, providers_1.registerProvider)(cfg);
71
+ }
72
+ }
73
+ const registered = (0, providers_1.listProviders)();
74
+ if (registered.length > 0) {
75
+ logger_1.loggerRegistry.info(`[oauth] initialized with ${registered.length} provider(s): ${registered.map((p) => p.provider).join(', ')}`);
76
+ }
77
+ }
@@ -0,0 +1,3 @@
1
+ import type { LTOAuthProviderConfig } from '../../../types/oauth';
2
+ import type { ProviderHandler } from './types';
3
+ export declare function createAnthropicHandler(cfg: LTOAuthProviderConfig): ProviderHandler;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createAnthropicHandler = createAnthropicHandler;
37
+ // Anthropic does not expose a standard OAuth2 authorization server.
38
+ // Instead, users provide a credential via the Long Tail dashboard:
39
+ //
40
+ // - OAuth token (sk-ant-oat01-...) from `claude setup-token`
41
+ // -> Uses their Claude subscription (Pro/Max/Teams) at flat rate
42
+ // -> Passed to subprocess as CLAUDE_CODE_OAUTH_TOKEN
43
+ //
44
+ // - API key (sk-ant-api03-...) from console.anthropic.com
45
+ // -> Billed per-token against their API account
46
+ // -> Passed to subprocess as ANTHROPIC_API_KEY
47
+ //
48
+ // Flow:
49
+ // 1. createAuthorizationURL -> redirects to /connect/anthropic (dashboard form)
50
+ // 2. User pastes credential -> form redirects to callback with it as "code"
51
+ // 3. validateAuthorizationCode -> validates against Anthropic API
52
+ // 4. fetchUserInfo -> derives identity from the credential
53
+ // 5. Credential stored encrypted as access_token in lt_oauth_tokens
54
+ function createAnthropicHandler(cfg) {
55
+ const handler = {
56
+ config: { ...cfg, displayName: cfg.displayName || 'Anthropic' },
57
+ createAuthorizationURL(state, _codeVerifier) {
58
+ const baseUrl = handler.config.redirectUri?.replace(`/api/auth/oauth/anthropic/callback`, '') || '';
59
+ const url = new URL(`${baseUrl}/connect/anthropic`);
60
+ url.searchParams.set('state', state);
61
+ return url;
62
+ },
63
+ async validateAuthorizationCode(credential, _codeVerifier) {
64
+ const isOAuthToken = credential.startsWith('sk-ant-oat');
65
+ // Validate the credential by calling the Anthropic API.
66
+ // OAuth tokens use Authorization: Bearer; API keys use x-api-key.
67
+ const headers = {
68
+ 'anthropic-version': '2023-06-01',
69
+ };
70
+ if (isOAuthToken) {
71
+ headers['Authorization'] = `Bearer ${credential}`;
72
+ }
73
+ else {
74
+ headers['x-api-key'] = credential;
75
+ }
76
+ const res = await fetch('https://api.anthropic.com/v1/models', { headers });
77
+ if (!res.ok) {
78
+ const body = await res.text().catch(() => '');
79
+ const kind = isOAuthToken ? 'OAuth token' : 'API key';
80
+ throw new Error(`Invalid Anthropic ${kind}: ${res.status} ${body}`);
81
+ }
82
+ return {
83
+ accessToken: credential,
84
+ refreshToken: null,
85
+ accessTokenExpiresAt: null,
86
+ };
87
+ },
88
+ async refreshAccessToken(_refreshToken) {
89
+ throw new Error('Anthropic credentials do not support refresh');
90
+ },
91
+ async fetchUserInfo(credential) {
92
+ const { createHash } = await Promise.resolve().then(() => __importStar(require('crypto')));
93
+ const keyHash = createHash('sha256').update(credential).digest('hex').slice(0, 16);
94
+ const isOAuthToken = credential.startsWith('sk-ant-oat');
95
+ const prefix = credential.slice(0, 14);
96
+ return {
97
+ provider: 'anthropic',
98
+ providerUserId: `anthropic-${keyHash}`,
99
+ email: null,
100
+ displayName: isOAuthToken
101
+ ? `Claude Subscription (${prefix}...)`
102
+ : `Anthropic API Key (${prefix}...)`,
103
+ raw: {
104
+ credential_type: isOAuthToken ? 'oauth_token' : 'api_key',
105
+ prefix,
106
+ },
107
+ };
108
+ },
109
+ };
110
+ return handler;
111
+ }
@@ -0,0 +1,3 @@
1
+ import type { LTOAuthProviderConfig } from '../../../types/oauth';
2
+ import type { ProviderHandler } from './types';
3
+ export declare function createGitHubHandler(cfg: LTOAuthProviderConfig): ProviderHandler;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGitHubHandler = createGitHubHandler;
4
+ const arctic_1 = require("arctic");
5
+ function createGitHubHandler(cfg) {
6
+ const redirectUri = cfg.redirectUri || null;
7
+ const github = new arctic_1.GitHub(cfg.clientId, cfg.clientSecret, redirectUri);
8
+ return {
9
+ config: cfg,
10
+ createAuthorizationURL(state, _codeVerifier) {
11
+ const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['read:user', 'user:email'];
12
+ return github.createAuthorizationURL(state, scopes);
13
+ },
14
+ async validateAuthorizationCode(code, _codeVerifier) {
15
+ const tokens = await github.validateAuthorizationCode(code);
16
+ return {
17
+ accessToken: tokens.accessToken(),
18
+ refreshToken: null, // GitHub doesn't use refresh tokens for OAuth apps
19
+ accessTokenExpiresAt: null,
20
+ };
21
+ },
22
+ async refreshAccessToken(_refreshToken) {
23
+ throw new Error('GitHub OAuth apps do not support token refresh');
24
+ },
25
+ async fetchUserInfo(accessToken) {
26
+ const [userRes, emailRes] = await Promise.all([
27
+ fetch('https://api.github.com/user', {
28
+ headers: { Authorization: `Bearer ${accessToken}`, Accept: 'application/json' },
29
+ }),
30
+ fetch('https://api.github.com/user/emails', {
31
+ headers: { Authorization: `Bearer ${accessToken}`, Accept: 'application/json' },
32
+ }),
33
+ ]);
34
+ const user = await userRes.json();
35
+ const emails = await emailRes.json().catch(() => []);
36
+ const primary = emails.find((e) => e.primary)?.email || emails[0]?.email || null;
37
+ return {
38
+ provider: 'github',
39
+ providerUserId: String(user.id),
40
+ email: primary,
41
+ displayName: user.name || user.login || null,
42
+ raw: user,
43
+ };
44
+ },
45
+ };
46
+ }
@@ -0,0 +1,3 @@
1
+ import type { LTOAuthProviderConfig } from '../../../types/oauth';
2
+ import type { ProviderHandler } from './types';
3
+ export declare function createGoogleHandler(cfg: LTOAuthProviderConfig): ProviderHandler;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGoogleHandler = createGoogleHandler;
4
+ const arctic_1 = require("arctic");
5
+ function createGoogleHandler(cfg) {
6
+ const redirectUri = cfg.redirectUri || '';
7
+ const google = new arctic_1.Google(cfg.clientId, cfg.clientSecret, redirectUri);
8
+ return {
9
+ config: cfg,
10
+ createAuthorizationURL(state, codeVerifier) {
11
+ const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['openid', 'email', 'profile'];
12
+ return google.createAuthorizationURL(state, codeVerifier, scopes);
13
+ },
14
+ async validateAuthorizationCode(code, codeVerifier) {
15
+ const tokens = await google.validateAuthorizationCode(code, codeVerifier);
16
+ return {
17
+ accessToken: tokens.accessToken(),
18
+ refreshToken: tokens.hasRefreshToken() ? tokens.refreshToken() : null,
19
+ accessTokenExpiresAt: tokens.accessTokenExpiresAt(),
20
+ };
21
+ },
22
+ async refreshAccessToken(refreshToken) {
23
+ const tokens = await google.refreshAccessToken(refreshToken);
24
+ return {
25
+ accessToken: tokens.accessToken(),
26
+ refreshToken: tokens.hasRefreshToken() ? tokens.refreshToken() : refreshToken,
27
+ accessTokenExpiresAt: tokens.accessTokenExpiresAt(),
28
+ };
29
+ },
30
+ async fetchUserInfo(accessToken) {
31
+ const res = await fetch('https://www.googleapis.com/oauth2/v2/userinfo', {
32
+ headers: { Authorization: `Bearer ${accessToken}` },
33
+ });
34
+ const data = await res.json();
35
+ return {
36
+ provider: 'google',
37
+ providerUserId: data.id,
38
+ email: data.email || null,
39
+ displayName: data.name || null,
40
+ raw: data,
41
+ };
42
+ },
43
+ };
44
+ }
@@ -0,0 +1,2 @@
1
+ export { registerProvider, getProvider, listProviders } from './registry';
2
+ export type { OAuthTokens, ProviderHandler } from './types';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listProviders = exports.getProvider = exports.registerProvider = void 0;
4
+ var registry_1 = require("./registry");
5
+ Object.defineProperty(exports, "registerProvider", { enumerable: true, get: function () { return registry_1.registerProvider; } });
6
+ Object.defineProperty(exports, "getProvider", { enumerable: true, get: function () { return registry_1.getProvider; } });
7
+ Object.defineProperty(exports, "listProviders", { enumerable: true, get: function () { return registry_1.listProviders; } });
@@ -0,0 +1,3 @@
1
+ import type { LTOAuthProviderConfig } from '../../../types/oauth';
2
+ import type { ProviderHandler } from './types';
3
+ export declare function createMicrosoftHandler(cfg: LTOAuthProviderConfig): ProviderHandler;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMicrosoftHandler = createMicrosoftHandler;
4
+ const arctic_1 = require("arctic");
5
+ function createMicrosoftHandler(cfg) {
6
+ const redirectUri = cfg.redirectUri || '';
7
+ const tenantId = process.env.OAUTH_MICROSOFT_TENANT_ID || 'common';
8
+ const ms = new arctic_1.MicrosoftEntraId(tenantId, cfg.clientId, cfg.clientSecret, redirectUri);
9
+ return {
10
+ config: cfg,
11
+ createAuthorizationURL(state, codeVerifier) {
12
+ const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['openid', 'email', 'profile'];
13
+ return ms.createAuthorizationURL(state, codeVerifier, scopes);
14
+ },
15
+ async validateAuthorizationCode(code, codeVerifier) {
16
+ const tokens = await ms.validateAuthorizationCode(code, codeVerifier);
17
+ return {
18
+ accessToken: tokens.accessToken(),
19
+ refreshToken: tokens.hasRefreshToken() ? tokens.refreshToken() : null,
20
+ accessTokenExpiresAt: tokens.accessTokenExpiresAt(),
21
+ };
22
+ },
23
+ async refreshAccessToken(refreshToken) {
24
+ const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['openid', 'email', 'profile'];
25
+ const tokens = await ms.refreshAccessToken(refreshToken, scopes);
26
+ return {
27
+ accessToken: tokens.accessToken(),
28
+ refreshToken: tokens.hasRefreshToken() ? tokens.refreshToken() : refreshToken,
29
+ accessTokenExpiresAt: tokens.accessTokenExpiresAt(),
30
+ };
31
+ },
32
+ async fetchUserInfo(accessToken) {
33
+ const res = await fetch('https://graph.microsoft.com/v1.0/me', {
34
+ headers: { Authorization: `Bearer ${accessToken}` },
35
+ });
36
+ const data = await res.json();
37
+ return {
38
+ provider: 'microsoft',
39
+ providerUserId: data.id,
40
+ email: data.mail || data.userPrincipalName || null,
41
+ displayName: data.displayName || null,
42
+ raw: data,
43
+ };
44
+ },
45
+ };
46
+ }
@@ -0,0 +1,3 @@
1
+ import type { LTOAuthProviderConfig } from '../../../types/oauth';
2
+ import type { ProviderHandler } from './types';
3
+ export declare function createMockHandler(cfg: LTOAuthProviderConfig): ProviderHandler;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMockHandler = createMockHandler;
4
+ function createMockHandler(cfg) {
5
+ // Browser-facing URL (user's browser redirects here — must be localhost, not Docker hostname)
6
+ const browserAuthUrl = process.env.MOCK_OAUTH_BROWSER_AUTH_URL || 'http://localhost:9080/authorize';
7
+ // Server-facing URLs (app container calls these — Docker-internal hostnames work)
8
+ const tokenUrl = process.env.MOCK_OAUTH_TOKEN_URL || 'http://localhost:9080/token';
9
+ const userinfoUrl = process.env.MOCK_OAUTH_USERINFO_URL || 'http://localhost:9080/userinfo';
10
+ const handler = {
11
+ config: { ...cfg, displayName: cfg.displayName || 'Mock (Test)' },
12
+ createAuthorizationURL(state, _codeVerifier) {
13
+ const url = new URL(browserAuthUrl);
14
+ url.searchParams.set('client_id', cfg.clientId);
15
+ url.searchParams.set('redirect_uri', handler.config.redirectUri || '');
16
+ url.searchParams.set('state', state);
17
+ url.searchParams.set('response_type', 'code');
18
+ url.searchParams.set('scope', cfg.scopes.join(' '));
19
+ return url;
20
+ },
21
+ async validateAuthorizationCode(code, _codeVerifier) {
22
+ const res = await fetch(tokenUrl, {
23
+ method: 'POST',
24
+ headers: { 'Content-Type': 'application/json' },
25
+ body: JSON.stringify({
26
+ code,
27
+ client_id: cfg.clientId,
28
+ client_secret: cfg.clientSecret,
29
+ redirect_uri: handler.config.redirectUri || '',
30
+ }),
31
+ });
32
+ const data = await res.json();
33
+ return {
34
+ accessToken: data.access_token,
35
+ refreshToken: data.refresh_token || null,
36
+ accessTokenExpiresAt: data.expires_in
37
+ ? new Date(Date.now() + data.expires_in * 1000)
38
+ : null,
39
+ };
40
+ },
41
+ async refreshAccessToken(refreshToken) {
42
+ const res = await fetch(tokenUrl, {
43
+ method: 'POST',
44
+ headers: { 'Content-Type': 'application/json' },
45
+ body: JSON.stringify({
46
+ grant_type: 'refresh_token',
47
+ refresh_token: refreshToken,
48
+ client_id: cfg.clientId,
49
+ client_secret: cfg.clientSecret,
50
+ }),
51
+ });
52
+ const data = await res.json();
53
+ return {
54
+ accessToken: data.access_token,
55
+ refreshToken: data.refresh_token || refreshToken,
56
+ accessTokenExpiresAt: data.expires_in
57
+ ? new Date(Date.now() + data.expires_in * 1000)
58
+ : null,
59
+ };
60
+ },
61
+ async fetchUserInfo(accessToken) {
62
+ const res = await fetch(userinfoUrl, {
63
+ headers: { Authorization: `Bearer ${accessToken}` },
64
+ });
65
+ const data = await res.json();
66
+ return {
67
+ provider: 'mock',
68
+ providerUserId: data.sub || data.id || 'mock-user',
69
+ email: data.email || null,
70
+ displayName: data.name || null,
71
+ raw: data,
72
+ };
73
+ },
74
+ };
75
+ return handler;
76
+ }
@@ -0,0 +1,8 @@
1
+ import type { LTOAuthProviderConfig } from '../../../types/oauth';
2
+ import type { ProviderHandler } from './types';
3
+ export declare function registerProvider(cfg: LTOAuthProviderConfig): void;
4
+ export declare function getProvider(name: string): ProviderHandler | null;
5
+ export declare function listProviders(): Array<{
6
+ provider: string;
7
+ name: string;
8
+ }>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerProvider = registerProvider;
4
+ exports.getProvider = getProvider;
5
+ exports.listProviders = listProviders;
6
+ const logger_1 = require("../../logger");
7
+ const anthropic_1 = require("./anthropic");
8
+ const github_1 = require("./github");
9
+ const google_1 = require("./google");
10
+ const microsoft_1 = require("./microsoft");
11
+ const mock_1 = require("./mock");
12
+ const providers = new Map();
13
+ function registerProvider(cfg) {
14
+ const handler = createHandler(cfg);
15
+ providers.set(cfg.provider, handler);
16
+ logger_1.loggerRegistry.info(`[oauth] registered provider: ${cfg.provider}`);
17
+ }
18
+ function getProvider(name) {
19
+ return providers.get(name) ?? null;
20
+ }
21
+ function listProviders() {
22
+ return Array.from(providers.values()).map((h) => ({
23
+ provider: h.config.provider,
24
+ name: h.config.displayName || capitalize(h.config.provider),
25
+ }));
26
+ }
27
+ function createHandler(cfg) {
28
+ const { provider } = cfg;
29
+ switch (provider) {
30
+ case 'google':
31
+ return (0, google_1.createGoogleHandler)(cfg);
32
+ case 'github':
33
+ return (0, github_1.createGitHubHandler)(cfg);
34
+ case 'microsoft':
35
+ return (0, microsoft_1.createMicrosoftHandler)(cfg);
36
+ case 'mock':
37
+ return (0, mock_1.createMockHandler)(cfg);
38
+ case 'anthropic':
39
+ return (0, anthropic_1.createAnthropicHandler)(cfg);
40
+ default:
41
+ throw new Error(`Unsupported OAuth provider: ${provider}. Supported: google, github, microsoft, anthropic, mock`);
42
+ }
43
+ }
44
+ function capitalize(s) {
45
+ return s.charAt(0).toUpperCase() + s.slice(1);
46
+ }