@commandable/mcp 0.0.6 → 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 (224) hide show
  1. package/README.md +28 -31
  2. package/dist/app/nitro.json +15 -0
  3. package/dist/app/public/_fonts/57NSSoFy1VLVs2gqly8Ls9awBnZMFyXGrefpmqvdqmc-zJfbBtpgM4cDmcXBsqZNW79_kFnlpPd62b48glgdydA.woff2 +0 -0
  4. package/dist/app/public/_fonts/8VR2wSMN-3U4NbWAVYXlkRV6hA0jFBXP-0RtL3X7fko-x2gYI4qfmkRdxyQQUPaBZdZdgl1TeVrquF_TxHeM4lM.woff2 +0 -0
  5. package/dist/app/public/_fonts/GsKUclqeNLJ96g5AU593ug6yanivOiwjW_7zESNPChw-jHA4tBeM1bjF7LATGUpfBuSTyomIFrWBTzjF7txVYfg.woff2 +0 -0
  6. package/dist/app/public/_fonts/Ld1FnTo3yTIwDyGfTQ5-Fws9AWsCbKfMvgxduXr7JcY-W25bL8NF1fjpLRSOgJb7RoZPHqGQNwMTM7S9tHVoxx8.woff2 +0 -0
  7. package/dist/app/public/_fonts/NdzqRASp2bovDUhQT1IRE_EMqKJ2KYQdTCfFcBvL8yw-KhwZiS86o3fErOe5GGMExHUemmI_dBfaEFxjISZrBd0.woff2 +0 -0
  8. package/dist/app/public/_fonts/iTkrULNFJJkTvihIg1Vqi5IODRH_9btXCioVF5l98I8-AndUyau2HR2felA_ra8V2mutQgschhasE5FD1dXGJX8.woff2 +0 -0
  9. package/dist/app/public/_nuxt/-tOYwuj2.js +30 -0
  10. package/dist/app/public/_nuxt/BdctKXor.js +1 -0
  11. package/dist/app/public/_nuxt/BlP7Uu-5.js +1 -0
  12. package/dist/app/public/_nuxt/CsbkV5Bd.js +1 -0
  13. package/dist/app/public/_nuxt/D-43HurL.js +59 -0
  14. package/dist/app/public/_nuxt/DU1mG77A.js +1 -0
  15. package/dist/app/public/_nuxt/_id_.BKAjWkoP.css +1 -0
  16. package/dist/app/public/_nuxt/builds/latest.json +1 -0
  17. package/dist/app/public/_nuxt/builds/meta/ceae497c-21d6-4278-8cc9-3c2c80f03dca.json +1 -0
  18. package/dist/app/public/_nuxt/entry.Y3mA4bzA.css +1 -0
  19. package/dist/app/public/_nuxt/error-404.C7fg894-.css +1 -0
  20. package/dist/app/public/_nuxt/error-500.DjUK_N2Y.css +1 -0
  21. package/dist/app/public/_nuxt/uS7FY2am.js +1 -0
  22. package/dist/app/public/favicon.ico +0 -0
  23. package/dist/app/server/chunks/_/error-500.mjs +19 -0
  24. package/dist/app/server/chunks/_/error-500.mjs.map +1 -0
  25. package/dist/app/server/chunks/_/icons.mjs +5933 -0
  26. package/dist/app/server/chunks/_/icons.mjs.map +1 -0
  27. package/dist/app/server/chunks/_/icons2.mjs +11338 -0
  28. package/dist/app/server/chunks/_/icons2.mjs.map +1 -0
  29. package/dist/app/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs +8 -0
  30. package/dist/app/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs.map +1 -0
  31. package/dist/app/server/chunks/build/_id_-DBwSV4AY.mjs +1354 -0
  32. package/dist/app/server/chunks/build/_id_-DBwSV4AY.mjs.map +1 -0
  33. package/dist/app/server/chunks/build/client.precomputed.mjs +4 -0
  34. package/dist/app/server/chunks/build/client.precomputed.mjs.map +1 -0
  35. package/dist/app/server/chunks/build/error-404-D2QibUBT.mjs +121 -0
  36. package/dist/app/server/chunks/build/error-404-D2QibUBT.mjs.map +1 -0
  37. package/dist/app/server/chunks/build/error-404-styles.Bvxdxqjk.mjs +8 -0
  38. package/dist/app/server/chunks/build/error-404-styles.Bvxdxqjk.mjs.map +1 -0
  39. package/dist/app/server/chunks/build/error-500-DYvawybF.mjs +104 -0
  40. package/dist/app/server/chunks/build/error-500-DYvawybF.mjs.map +1 -0
  41. package/dist/app/server/chunks/build/error-500-styles.BnYAAXSg.mjs +8 -0
  42. package/dist/app/server/chunks/build/error-500-styles.BnYAAXSg.mjs.map +1 -0
  43. package/dist/app/server/chunks/build/fetch-ZbqIFhDG.mjs +2851 -0
  44. package/dist/app/server/chunks/build/fetch-ZbqIFhDG.mjs.map +1 -0
  45. package/dist/app/server/chunks/build/index-5H-nmhph.mjs +68 -0
  46. package/dist/app/server/chunks/build/index-5H-nmhph.mjs.map +1 -0
  47. package/dist/app/server/chunks/build/index-C8flTcKI.mjs +720 -0
  48. package/dist/app/server/chunks/build/index-C8flTcKI.mjs.map +1 -0
  49. package/dist/app/server/chunks/build/server.mjs +8736 -0
  50. package/dist/app/server/chunks/build/server.mjs.map +1 -0
  51. package/dist/app/server/chunks/build/styles.mjs +12 -0
  52. package/dist/app/server/chunks/build/styles.mjs.map +1 -0
  53. package/dist/app/server/chunks/nitro/nitro.mjs +9359 -0
  54. package/dist/app/server/chunks/nitro/nitro.mjs.map +1 -0
  55. package/dist/app/server/chunks/routes/api/_commandable/status.get.mjs +59 -0
  56. package/dist/app/server/chunks/routes/api/_commandable/status.get.mjs.map +1 -0
  57. package/dist/app/server/chunks/routes/api/catalog/_type/tools.get.mjs +40 -0
  58. package/dist/app/server/chunks/routes/api/catalog/_type/tools.get.mjs.map +1 -0
  59. package/dist/app/server/chunks/routes/api/catalog/_type/toolsets.get.mjs +41 -0
  60. package/dist/app/server/chunks/routes/api/catalog/_type/toolsets.get.mjs.map +1 -0
  61. package/dist/app/server/chunks/routes/api/catalog.get.mjs +46 -0
  62. package/dist/app/server/chunks/routes/api/catalog.get.mjs.map +1 -0
  63. package/dist/app/server/chunks/routes/api/index.get.mjs +39 -0
  64. package/dist/app/server/chunks/routes/api/index.get.mjs.map +1 -0
  65. package/dist/app/server/chunks/routes/api/index.post.mjs +60 -0
  66. package/dist/app/server/chunks/routes/api/index.post.mjs.map +1 -0
  67. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs +63 -0
  68. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs.map +1 -0
  69. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs +70 -0
  70. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs.map +1 -0
  71. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.delete.mjs +61 -0
  72. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.delete.mjs.map +1 -0
  73. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.post.mjs +94 -0
  74. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.post.mjs.map +1 -0
  75. package/dist/app/server/chunks/routes/api/integrations/_id/permissions.post.mjs +54 -0
  76. package/dist/app/server/chunks/routes/api/integrations/_id/permissions.post.mjs.map +1 -0
  77. package/dist/app/server/chunks/routes/api/integrations/_id/toolsets.post.mjs +53 -0
  78. package/dist/app/server/chunks/routes/api/integrations/_id/toolsets.post.mjs.map +1 -0
  79. package/dist/app/server/chunks/routes/api/integrations/_id_.delete.mjs +44 -0
  80. package/dist/app/server/chunks/routes/api/integrations/_id_.delete.mjs.map +1 -0
  81. package/dist/app/server/chunks/routes/health.get.mjs +37 -0
  82. package/dist/app/server/chunks/routes/health.get.mjs.map +1 -0
  83. package/dist/app/server/chunks/routes/mcp/create.mjs +56 -0
  84. package/dist/app/server/chunks/routes/mcp/create.mjs.map +1 -0
  85. package/dist/app/server/chunks/routes/mcp.mjs +56 -0
  86. package/dist/app/server/chunks/routes/mcp.mjs.map +1 -0
  87. package/dist/app/server/chunks/routes/renderer.mjs +492 -0
  88. package/dist/app/server/chunks/routes/renderer.mjs.map +1 -0
  89. package/dist/app/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  90. package/dist/app/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  91. package/dist/app/server/index.mjs +31 -0
  92. package/dist/app/server/index.mjs.map +1 -0
  93. package/dist/app/server/migrations/pg/0000_initial.sql +74 -0
  94. package/dist/app/server/migrations/pg/meta/_journal.json +13 -0
  95. package/dist/app/server/migrations/sqlite/0000_initial.sql +74 -0
  96. package/dist/app/server/migrations/sqlite/meta/_journal.json +13 -0
  97. package/dist/app/server/package.json +108 -0
  98. package/dist/cli/credentialManager.d.ts.map +1 -1
  99. package/dist/cli/credentialManager.js +5 -4
  100. package/dist/cli/credentialManager.js.map +1 -1
  101. package/dist/cli/index.d.ts +15 -0
  102. package/dist/cli/index.d.ts.map +1 -1
  103. package/dist/cli/index.js +656 -17
  104. package/dist/cli/index.js.map +1 -1
  105. package/dist/cli/setup.d.ts.map +1 -1
  106. package/dist/cli/setup.js +172 -36
  107. package/dist/cli/setup.js.map +1 -1
  108. package/dist/config/configApply.d.ts.map +1 -1
  109. package/dist/config/configApply.js +4 -1
  110. package/dist/config/configApply.js.map +1 -1
  111. package/dist/config/configSchema.d.ts +18 -2
  112. package/dist/config/configSchema.d.ts.map +1 -1
  113. package/dist/config/configSchema.js +7 -1
  114. package/dist/config/configSchema.js.map +1 -1
  115. package/dist/db/client.d.ts +3 -1
  116. package/dist/db/client.d.ts.map +1 -1
  117. package/dist/db/client.js.map +1 -1
  118. package/dist/db/credentialStore.d.ts +2 -0
  119. package/dist/db/credentialStore.d.ts.map +1 -1
  120. package/dist/db/credentialStore.js +15 -16
  121. package/dist/db/credentialStore.js.map +1 -1
  122. package/dist/db/integrationStore.d.ts +7 -0
  123. package/dist/db/integrationStore.d.ts.map +1 -1
  124. package/dist/db/integrationStore.js +64 -21
  125. package/dist/db/integrationStore.js.map +1 -1
  126. package/dist/db/integrationTypeConfigStore.d.ts +6 -0
  127. package/dist/db/integrationTypeConfigStore.d.ts.map +1 -0
  128. package/dist/db/integrationTypeConfigStore.js +94 -0
  129. package/dist/db/integrationTypeConfigStore.js.map +1 -0
  130. package/dist/db/migrate.d.ts.map +1 -1
  131. package/dist/db/migrate.js +8 -87
  132. package/dist/db/migrate.js.map +1 -1
  133. package/dist/db/migrations/pg/0000_initial.sql +74 -0
  134. package/dist/db/migrations/pg/meta/_journal.json +13 -0
  135. package/dist/db/migrations/sqlite/0000_initial.sql +74 -0
  136. package/dist/db/migrations/sqlite/meta/_journal.json +13 -0
  137. package/dist/db/schema.d.ts +1049 -133
  138. package/dist/db/schema.d.ts.map +1 -1
  139. package/dist/db/schema.js +61 -3
  140. package/dist/db/schema.js.map +1 -1
  141. package/dist/db/toolDefinitionStore.d.ts +6 -0
  142. package/dist/db/toolDefinitionStore.d.ts.map +1 -0
  143. package/dist/db/toolDefinitionStore.js +95 -0
  144. package/dist/db/toolDefinitionStore.js.map +1 -0
  145. package/dist/index.d.ts +7 -0
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +7 -0
  148. package/dist/index.js.map +1 -1
  149. package/dist/integrations/actionsFactory.d.ts +5 -1
  150. package/dist/integrations/actionsFactory.d.ts.map +1 -1
  151. package/dist/integrations/actionsFactory.js +46 -16
  152. package/dist/integrations/actionsFactory.js.map +1 -1
  153. package/dist/integrations/customToolFactory.d.ts +13 -0
  154. package/dist/integrations/customToolFactory.d.ts.map +1 -0
  155. package/dist/integrations/customToolFactory.js +31 -0
  156. package/dist/integrations/customToolFactory.js.map +1 -0
  157. package/dist/integrations/dataLoader.d.ts +2 -2
  158. package/dist/integrations/dataLoader.d.ts.map +1 -1
  159. package/dist/integrations/dataLoader.js +1 -1
  160. package/dist/integrations/dataLoader.js.map +1 -1
  161. package/dist/integrations/fileIntegrationTypeConfigStore.d.ts +7 -0
  162. package/dist/integrations/fileIntegrationTypeConfigStore.d.ts.map +1 -0
  163. package/dist/integrations/fileIntegrationTypeConfigStore.js +34 -0
  164. package/dist/integrations/fileIntegrationTypeConfigStore.js.map +1 -0
  165. package/dist/integrations/getIntegration.d.ts +4 -1
  166. package/dist/integrations/getIntegration.d.ts.map +1 -1
  167. package/dist/integrations/getIntegration.js +12 -4
  168. package/dist/integrations/getIntegration.js.map +1 -1
  169. package/dist/integrations/health.d.ts +20 -0
  170. package/dist/integrations/health.d.ts.map +1 -0
  171. package/dist/integrations/health.js +43 -0
  172. package/dist/integrations/health.js.map +1 -0
  173. package/dist/integrations/integrationTypeConfigLookup.d.ts +12 -0
  174. package/dist/integrations/integrationTypeConfigLookup.d.ts.map +1 -0
  175. package/dist/integrations/integrationTypeConfigLookup.js +11 -0
  176. package/dist/integrations/integrationTypeConfigLookup.js.map +1 -0
  177. package/dist/integrations/providerRegistry.d.ts.map +1 -1
  178. package/dist/integrations/providerRegistry.js +22 -8
  179. package/dist/integrations/providerRegistry.js.map +1 -1
  180. package/dist/integrations/proxy.d.ts +4 -1
  181. package/dist/integrations/proxy.d.ts.map +1 -1
  182. package/dist/integrations/proxy.js +109 -94
  183. package/dist/integrations/proxy.js.map +1 -1
  184. package/dist/integrations/sandbox.d.ts +2 -1
  185. package/dist/integrations/sandbox.d.ts.map +1 -1
  186. package/dist/integrations/sandbox.js +13 -2
  187. package/dist/integrations/sandbox.js.map +1 -1
  188. package/dist/integrations/sandboxUtils.d.ts +15 -0
  189. package/dist/integrations/sandboxUtils.d.ts.map +1 -0
  190. package/dist/integrations/sandboxUtils.js +489 -0
  191. package/dist/integrations/sandboxUtils.js.map +1 -0
  192. package/dist/mcp/abilityCatalog.d.ts +46 -0
  193. package/dist/mcp/abilityCatalog.d.ts.map +1 -0
  194. package/dist/mcp/abilityCatalog.js +275 -0
  195. package/dist/mcp/abilityCatalog.js.map +1 -0
  196. package/dist/mcp/builder_guide.md +441 -0
  197. package/dist/mcp/commandable_readme.md +29 -0
  198. package/dist/mcp/handlers.d.ts +10 -1
  199. package/dist/mcp/handlers.d.ts.map +1 -1
  200. package/dist/mcp/handlers.js +51 -4
  201. package/dist/mcp/handlers.js.map +1 -1
  202. package/dist/mcp/metaTools.d.ts +77 -0
  203. package/dist/mcp/metaTools.d.ts.map +1 -0
  204. package/dist/mcp/metaTools.js +753 -0
  205. package/dist/mcp/metaTools.js.map +1 -0
  206. package/dist/mcp/server.d.ts +10 -0
  207. package/dist/mcp/server.d.ts.map +1 -1
  208. package/dist/mcp/server.js +2 -2
  209. package/dist/mcp/server.js.map +1 -1
  210. package/dist/mcp/sessionState.d.ts +18 -0
  211. package/dist/mcp/sessionState.d.ts.map +1 -0
  212. package/dist/mcp/sessionState.js +65 -0
  213. package/dist/mcp/sessionState.js.map +1 -0
  214. package/dist/mcp/toolAdapter.d.ts +17 -0
  215. package/dist/mcp/toolAdapter.d.ts.map +1 -1
  216. package/dist/mcp/toolAdapter.js +7 -1
  217. package/dist/mcp/toolAdapter.js.map +1 -1
  218. package/dist/types.d.ts +66 -2
  219. package/dist/types.d.ts.map +1 -1
  220. package/dist/version.d.ts +2 -0
  221. package/dist/version.d.ts.map +1 -0
  222. package/dist/version.js +7 -0
  223. package/dist/version.js.map +1 -0
  224. package/package.json +13 -9
@@ -1,12 +1,20 @@
1
+ import { HttpError } from '../errors/httpError.js';
1
2
  export function createGetIntegration(integrations, proxy) {
2
3
  return (refOrId) => {
3
- const integration = integrations?.find(i => i.id === refOrId || i.referenceId === refOrId);
4
+ const list = Array.isArray(integrations) ? integrations : integrations?.current;
5
+ const integration = list?.find(i => i.id === refOrId || i.referenceId === refOrId);
4
6
  if (!integration)
5
7
  throw new Error('Invalid or unauthorized integration reference/id');
6
- const isHttp = integration.type === 'http';
7
8
  const isCredentialsConnected = integration.connectionMethod === 'credentials' && !!integration.credentialId;
8
- if (!isHttp && !integration.connectionId && !isCredentialsConnected)
9
- throw new Error('Integration is not connected');
9
+ if (!integration.connectionId && !isCredentialsConnected) {
10
+ const portRaw = process.env.COMMANDABLE_UI_PORT;
11
+ const port = portRaw && /^\d+$/.test(portRaw) ? Number(portRaw) : 23432;
12
+ const credentialUrl = `http://127.0.0.1:${port}/integrations/${encodeURIComponent(integration.id)}`;
13
+ throw new HttpError(400, `Integration is not connected. Open ${credentialUrl} to configure credentials.`, {
14
+ reason: 'missing_credentials',
15
+ credential_url: credentialUrl,
16
+ });
17
+ }
10
18
  const verbWithBody = (method) => (path, body, init = {}) => proxy.call(integration, path, { ...init, method, body: JSON.stringify(body) });
11
19
  const verbNoBody = (method) => (path, init = {}) => proxy.call(integration, path, { ...init, method });
12
20
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"getIntegration.js","sourceRoot":"","sources":["../../src/integrations/getIntegration.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAClC,YAA2C,EAC3C,KAAuB;IAEvB,OAAO,CAAC,OAAe,EAAE,EAAE;QACzB,MAAM,WAAW,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,IAAK,CAAS,CAAC,WAAW,KAAK,OAAO,CAAC,CAAA;QACnG,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QAErE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,KAAK,MAAM,CAAA;QAC1C,MAAM,sBAAsB,GAAG,WAAW,CAAC,gBAAgB,KAAK,aAAa,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAA;QAC3G,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,sBAAsB;YACjE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAEjD,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,IAAS,EAAE,OAAoB,EAAE,EAAE,EAAE,CAC3F,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEhF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,OAAoB,EAAE,EAAE,EAAE,CAC9E,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAEpD,OAAO;YACL,KAAK,EAAE,CAAC,IAAY,EAAE,IAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;YAChF,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC;YACtB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;YAC1B,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;YACxB,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;SAC7B,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"getIntegration.js","sourceRoot":"","sources":["../../src/integrations/getIntegration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAIlD,MAAM,UAAU,oBAAoB,CAClC,YAAgE,EAChE,KAAuB;IAEvB,OAAO,CAAC,OAAe,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAA;QAC/E,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,IAAK,CAAS,CAAC,WAAW,KAAK,OAAO,CAAC,CAAA;QAC3F,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QAErE,MAAM,sBAAsB,GAAG,WAAW,CAAC,gBAAgB,KAAK,aAAa,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAA;QAC3G,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;YAC/C,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YACvE,MAAM,aAAa,GAAG,oBAAoB,IAAI,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAA;YACnG,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,sCAAsC,aAAa,4BAA4B,EAAE;gBACxG,MAAM,EAAE,qBAAqB;gBAC7B,cAAc,EAAE,aAAa;aAC9B,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,IAAS,EAAE,OAAoB,EAAE,EAAE,EAAE,CAC3F,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEhF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,OAAoB,EAAE,EAAE,EAAE,CAC9E,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAEpD,OAAO;YACL,KAAK,EAAE,CAAC,IAAY,EAAE,IAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;YAChF,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC;YACtB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;YAC1B,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;YACxB,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;SAC7B,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { DbClient } from '../db/client.js';
2
+ import type { IntegrationData } from '../types.js';
3
+ import type { IntegrationProxy } from './proxy.js';
4
+ export type HealthStatus = 'disconnected' | 'connected' | 'invalid_credentials';
5
+ export interface HealthResult {
6
+ status: HealthStatus;
7
+ /**
8
+ * true when the integration type has no healthCheck endpoint defined — no
9
+ * network call was made, so we cannot confirm credential validity.
10
+ */
11
+ skipped?: boolean;
12
+ checkedAt: Date;
13
+ message?: string;
14
+ }
15
+ export declare function checkIntegrationHealth(params: {
16
+ integration: IntegrationData;
17
+ proxy: IntegrationProxy;
18
+ db?: DbClient;
19
+ }): Promise<HealthResult>;
20
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/integrations/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,qBAAqB,CAAA;AAE/E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAA;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,WAAW,EAAE,eAAe,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,EAAE,CAAC,EAAE,QAAQ,CAAA;CACd,GAAG,OAAO,CAAC,YAAY,CAAC,CA6CxB"}
@@ -0,0 +1,43 @@
1
+ import { getIntegrationTypeConfig } from '../db/integrationTypeConfigStore.js';
2
+ import { getBuiltInIntegrationTypeConfig } from './fileIntegrationTypeConfigStore.js';
3
+ export async function checkIntegrationHealth(params) {
4
+ const { integration, proxy, db } = params;
5
+ const checkedAt = new Date();
6
+ // Try file-based lookup first (sync, no DB needed), then fall back to DB for custom integrations.
7
+ const typeCfg = getBuiltInIntegrationTypeConfig(integration.type)
8
+ ?? (db && integration.spaceId
9
+ ? await getIntegrationTypeConfig(db, integration.spaceId, integration.type)
10
+ : null);
11
+ const variantKey = integration.credentialVariant || typeCfg?.defaultVariant || null;
12
+ const variant = variantKey ? typeCfg?.variants[variantKey] : null;
13
+ const path = variant?.healthCheck?.path ?? null;
14
+ const method = variant?.healthCheck?.method ?? 'GET';
15
+ if (!path) {
16
+ return { status: 'connected', skipped: true, checkedAt };
17
+ }
18
+ try {
19
+ await proxy.call(integration, path, { method });
20
+ return { status: 'connected', checkedAt };
21
+ }
22
+ catch (err) {
23
+ // Missing credentials — proxy throws before making the HTTP call
24
+ if (err?.statusCode === 400 && err?.message?.includes('No credentials')) {
25
+ return { status: 'disconnected', checkedAt, message: err.message };
26
+ }
27
+ if (err?.statusCode === 400 && err?.message?.includes('credentialId')) {
28
+ return { status: 'disconnected', checkedAt, message: err.message };
29
+ }
30
+ const statusCode = err?.statusCode ?? null;
31
+ if (statusCode === 401) {
32
+ return { status: 'invalid_credentials', checkedAt, message: err.message };
33
+ }
34
+ // 403 can mean bad creds or missing scopes — treat as invalid to prompt reconfiguration
35
+ if (statusCode === 403) {
36
+ return { status: 'invalid_credentials', checkedAt, message: err.message };
37
+ }
38
+ // Network errors, 5xx, transient failures — don't flip to invalid; skip so we
39
+ // don't wrongly mark a healthy integration as broken due to transient issues.
40
+ return { status: 'connected', skipped: true, checkedAt, message: String(err?.message ?? err) };
41
+ }
42
+ }
43
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/integrations/health.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAerF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAI5C;IACC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,MAAM,CAAA;IACzC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IAE5B,kGAAkG;IAClG,MAAM,OAAO,GAAG,+BAA+B,CAAC,WAAW,CAAC,IAAI,CAAC;WAC5D,CAAC,EAAE,IAAI,WAAW,CAAC,OAAO;YAC3B,CAAC,CAAC,MAAM,wBAAwB,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;YAC3E,CAAC,CAAC,IAAI,CAAC,CAAA;IAEX,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,IAAI,OAAO,EAAE,cAAc,IAAI,IAAI,CAAA;IACnF,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACjE,MAAM,IAAI,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,CAAA;IAC/C,MAAM,MAAM,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,KAAK,CAAA;IAEpD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAC1D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;IAC3C,CAAC;IACD,OAAO,GAAQ,EAAE,CAAC;QAChB,iEAAiE;QACjE,IAAI,GAAG,EAAE,UAAU,KAAK,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;QACpE,CAAC;QACD,IAAI,GAAG,EAAE,UAAU,KAAK,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACtE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;QACpE,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,EAAE,UAAU,IAAI,IAAI,CAAA;QAC1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;QAC3E,CAAC;QACD,wFAAwF;QACxF,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;QAC3E,CAAC;QAED,8EAA8E;QAC9E,8EAA8E;QAC9E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAA;IAChG,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { DbClient } from '../db/client.js';
2
+ import type { IntegrationTypeConfig } from '../types.js';
3
+ /**
4
+ * Find an integration type config from either built-in file data or the DB.
5
+ * Built-in file-backed types win over DB rows with the same slug.
6
+ */
7
+ export declare function findIntegrationTypeConfig(params: {
8
+ db: DbClient;
9
+ spaceId: string;
10
+ typeSlug: string;
11
+ }): Promise<IntegrationTypeConfig | null>;
12
+ //# sourceMappingURL=integrationTypeConfigLookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationTypeConfigLookup.d.ts","sourceRoot":"","sources":["../../src/integrations/integrationTypeConfigLookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAGxD;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,EAAE,EAAE,QAAQ,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAGxC"}
@@ -0,0 +1,11 @@
1
+ import { getIntegrationTypeConfig } from '../db/integrationTypeConfigStore.js';
2
+ import { getBuiltInIntegrationTypeConfig } from './fileIntegrationTypeConfigStore.js';
3
+ /**
4
+ * Find an integration type config from either built-in file data or the DB.
5
+ * Built-in file-backed types win over DB rows with the same slug.
6
+ */
7
+ export async function findIntegrationTypeConfig(params) {
8
+ return getBuiltInIntegrationTypeConfig(params.typeSlug)
9
+ ?? await getIntegrationTypeConfig(params.db, params.spaceId, params.typeSlug);
10
+ }
11
+ //# sourceMappingURL=integrationTypeConfigLookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationTypeConfigLookup.js","sourceRoot":"","sources":["../../src/integrations/integrationTypeConfigLookup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAE9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAErF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAI/C;IACC,OAAO,+BAA+B,CAAC,MAAM,CAAC,QAAQ,CAAC;WAClD,MAAM,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;AACjF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"providerRegistry.d.ts","sourceRoot":"","sources":["../../src/integrations/providerRegistry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAwDzC,CAAA"}
1
+ {"version":3,"file":"providerRegistry.d.ts","sourceRoot":"","sources":["../../src/integrations/providerRegistry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAsEzC,CAAA"}
@@ -1,8 +1,4 @@
1
1
  export const PROVIDERS = {
2
- 'http': {
3
- baseUrl: '',
4
- makeAuth: () => ({}),
5
- },
6
2
  'trello': {
7
3
  baseUrl: 'https://api.trello.com/1',
8
4
  makeAuth: (token, apiKey) => ({ key: apiKey, token }),
@@ -19,6 +15,10 @@ export const PROVIDERS = {
19
15
  baseUrl: 'https://api.github.com',
20
16
  makeAuth: (token) => ({ Authorization: `Bearer ${token}` }),
21
17
  },
18
+ 'hubspot': {
19
+ baseUrl: 'https://api.hubapi.com',
20
+ makeAuth: (token) => ({ Authorization: `Bearer ${token}` }),
21
+ },
22
22
  'notion': {
23
23
  baseUrl: 'https://api.notion.com/v1',
24
24
  makeAuth: (token) => ({
@@ -50,9 +50,23 @@ export const PROVIDERS = {
50
50
  baseUrl: 'https://gmail.googleapis.com/gmail/v1',
51
51
  makeAuth: (token) => ({ Authorization: `Bearer ${token}` }),
52
52
  },
53
- // 'jira': {
54
- // baseUrl: (sub: string) => `https://api.atlassian.com/ex/jira/${sub}`,
55
- // makeAuth: (token: string) => ({ Authorization: `Bearer ${token}` }),
56
- // },
53
+ 'jira': {
54
+ baseUrl: (integration, creds) => {
55
+ const cloudId = creds?.cloudId || integration?.config?.cloudId || integration?.config?.sub;
56
+ return cloudId
57
+ ? `https://api.atlassian.com/ex/jira/${cloudId}`
58
+ : 'https://api.atlassian.com/ex/jira';
59
+ },
60
+ makeAuth: (token) => ({ Authorization: `Bearer ${token}` }),
61
+ },
62
+ 'confluence': {
63
+ baseUrl: (integration, creds) => {
64
+ const cloudId = creds?.cloudId || integration?.config?.cloudId || integration?.config?.sub;
65
+ return cloudId
66
+ ? `https://api.atlassian.com/ex/confluence/${cloudId}`
67
+ : 'https://api.atlassian.com/ex/confluence';
68
+ },
69
+ makeAuth: (token) => ({ Authorization: `Bearer ${token}` }),
70
+ },
57
71
  };
58
72
  //# sourceMappingURL=providerRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providerRegistry.js","sourceRoot":"","sources":["../../src/integrations/providerRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,MAAM,EAAE;QACN,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;KACrB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;KACtE;IACD,aAAa;IACb,sCAAsC;IACtC,yEAAyE;IACzE,KAAK;IACL,UAAU,EAAE;QACV,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,wBAAwB;QACjC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,2BAA2B;QACpC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;YAC5B,eAAe,EAAE,UAAU,KAAK,EAAE;YAClC,gBAAgB,EAAE,YAAY;SAC/B,CAAC;KACH;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,wCAAwC;QACjD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,cAAc,EAAE;QACd,OAAO,EAAE,kCAAkC;QAC3C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,aAAa,EAAE;QACb,OAAO,EAAE,gCAAgC;QACzC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,eAAe,EAAE;QACf,OAAO,EAAE,kCAAkC;QAC3C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,cAAc,EAAE;QACd,OAAO,EAAE,qCAAqC;QAC9C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,cAAc,EAAE;QACd,OAAO,EAAE,uCAAuC;QAChD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,YAAY;IACZ,0EAA0E;IAC1E,yEAAyE;IACzE,KAAK;CACN,CAAA"}
1
+ {"version":3,"file":"providerRegistry.js","sourceRoot":"","sources":["../../src/integrations/providerRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { IntegrationData } from '../types.js';
1
+ import type { IntegrationData, IntegrationTypeConfig } from '../types.js';
2
2
  export interface CredentialStore {
3
3
  getCredentials: (spaceId: string, credentialId: string) => Promise<Record<string, string> | null>;
4
4
  }
@@ -7,6 +7,9 @@ export interface IntegrationProxyOptions {
7
7
  managedOAuthBaseUrl?: string;
8
8
  trelloApiKey?: string;
9
9
  credentialStore?: CredentialStore;
10
+ integrationTypeConfigsRef?: {
11
+ current: IntegrationTypeConfig[];
12
+ };
10
13
  }
11
14
  export declare class IntegrationProxy {
12
15
  private readonly opts;
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/integrations/proxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAKlD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;CAClG;AAED,MAAM,WAAW,uBAAuB;IAEtC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC;AA8BD,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,GAAE,uBAA4B;IAEzD,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAiWlG"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/integrations/proxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgC,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAKvG,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;CAClG;AAED,MAAM,WAAW,uBAAuB;IAEtC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,yBAAyB,CAAC,EAAE;QAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;KAAE,CAAA;CACjE;AA2CD,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,GAAE,uBAA4B;IAEzD,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAmWlG"}
@@ -1,15 +1,22 @@
1
1
  import { Buffer } from 'node:buffer';
2
2
  import { HttpError } from '../errors/httpError.js';
3
3
  import { PROVIDERS } from './providerRegistry.js';
4
- import { loadIntegrationCredentialConfig } from './dataLoader.js';
4
+ import { getBuiltInIntegrationTypeConfig } from './fileIntegrationTypeConfigStore.js';
5
5
  import { getGoogleAccessToken } from './googleServiceAccount.js';
6
6
  function getErrorHint(status, provider, bodyText) {
7
- if (status === 401)
8
- return 'Authentication failed. Check that the credential token is valid and not expired. For service accounts, verify the service account has been granted access to the resource.';
9
- if (status === 403)
10
- return 'Permission denied. The credential does not have sufficient scopes or access to this resource. For Google integrations, ensure the required API scopes are enabled and the service account has been shared access to the resource.';
7
+ const isGoogle = provider.startsWith('google-');
8
+ if (status === 401) {
9
+ if (isGoogle)
10
+ return 'Authentication failed. Check that the credential token is valid and not expired. For service accounts, verify the service account has been granted access to the resource.';
11
+ return 'Authentication failed. Check that the credential is valid and not expired.';
12
+ }
13
+ if (status === 403) {
14
+ if (isGoogle)
15
+ return 'Permission denied. The credential does not have sufficient scopes or access to this resource. Ensure the required API scopes are enabled and the service account has been shared access to the resource.';
16
+ return 'Permission denied. The credential does not have sufficient scopes or access to this resource.';
17
+ }
11
18
  if (status === 404) {
12
- if (provider.startsWith('google-'))
19
+ if (isGoogle)
13
20
  return 'Resource not found. The ID may be invalid or the resource may have been deleted. Use the appropriate list or search tool to find valid IDs. For Google Drive, ensure the service account has been granted access to the file or folder.';
14
21
  return 'Resource not found. Verify the ID is correct and the resource exists.';
15
22
  }
@@ -30,6 +37,11 @@ function getErrorHint(status, provider, bodyText) {
30
37
  return 'The upstream API returned a server error. This is likely a temporary issue -- retry the request after a short delay.';
31
38
  return '';
32
39
  }
40
+ function buildCredentialUrl(integrationId) {
41
+ const portRaw = process.env.COMMANDABLE_UI_PORT;
42
+ const port = portRaw && /^\d+$/.test(portRaw) ? Number(portRaw) : 23432;
43
+ return `http://127.0.0.1:${port}/integrations/${encodeURIComponent(integrationId)}`;
44
+ }
33
45
  export class IntegrationProxy {
34
46
  opts;
35
47
  constructor(opts = {}) {
@@ -95,69 +107,6 @@ export class IntegrationProxy {
95
107
  return queryPart ? `${joined}?${queryPart}` : joined;
96
108
  }
97
109
  };
98
- if (provider === 'http') {
99
- const cfg = integration.config || {};
100
- const baseUrl = cfg.baseUrl;
101
- if (!baseUrl)
102
- throw new HttpError(400, 'HTTP integration requires a baseUrl in its config.');
103
- const authType = cfg.authType || 'none';
104
- const preparedInit = { ...init };
105
- if (preparedInit.body !== undefined && typeof preparedInit.body !== 'string') {
106
- preparedInit.body = JSON.stringify(preparedInit.body);
107
- preparedInit.headers = {
108
- 'Content-Type': 'application/json',
109
- ...preparedInit.headers,
110
- };
111
- }
112
- const authHeaders = {};
113
- const authQuery = new URLSearchParams();
114
- if (authType === 'api_key_header' && cfg.apiKeyHeaderName && cfg.apiKey) {
115
- authHeaders[cfg.apiKeyHeaderName] = cfg.apiKey;
116
- }
117
- else if (authType === 'api_key_query' && cfg.apiKeyQueryParam && cfg.apiKey) {
118
- authQuery.set(cfg.apiKeyQueryParam, cfg.apiKey);
119
- }
120
- else if (authType === 'basic' && cfg.basicUsername !== undefined && cfg.basicPassword !== undefined) {
121
- const token = Buffer.from(`${cfg.basicUsername}:${cfg.basicPassword}`).toString('base64');
122
- authHeaders.Authorization = `Basic ${token}`;
123
- }
124
- else if (authType === 'custom') {
125
- if (cfg.customHeaders)
126
- Object.assign(authHeaders, cfg.customHeaders);
127
- if (cfg.customQuery) {
128
- for (const [k, v] of Object.entries(cfg.customQuery))
129
- authQuery.set(k, v);
130
- }
131
- }
132
- const authQueryString = authQuery.toString();
133
- let finalUrl = joinWithoutDuplicateSegments(baseUrl, path);
134
- if (authQueryString)
135
- finalUrl = finalUrl + (finalUrl.includes('?') ? '&' : '?') + authQueryString;
136
- const response = await fetch(finalUrl, {
137
- ...preparedInit,
138
- method: preparedInit.method || 'GET',
139
- headers: {
140
- ...preparedInit.headers,
141
- ...authHeaders,
142
- },
143
- });
144
- if (!response.ok) {
145
- const contentType = response.headers.get('content-type') || '';
146
- let bodyText = '';
147
- try {
148
- bodyText = contentType.includes('json') ? JSON.stringify(await response.json()) : await response.text();
149
- }
150
- catch { }
151
- const redactedUrl = cfg.apiKey ? finalUrl.replace(cfg.apiKey, '***') : finalUrl;
152
- throw new HttpError(response.status, 'Failed to proxy request to http integration.', {
153
- status: response.status,
154
- url: redactedUrl,
155
- contentType,
156
- body: bodyText?.slice(0, 4000),
157
- });
158
- }
159
- return response;
160
- }
161
110
  const usesCredentials = integration.connectionMethod === 'credentials';
162
111
  if (usesCredentials) {
163
112
  if (!this.opts.credentialStore)
@@ -168,13 +117,72 @@ export class IntegrationProxy {
168
117
  const credentialId = integration.credentialId;
169
118
  if (!credentialId)
170
119
  throw new HttpError(400, 'credentialId is required for credentials-based integrations.');
171
- const credCfg = loadIntegrationCredentialConfig(provider, integration.credentialVariant);
172
- if (!credCfg)
120
+ // Resolve integration type config — file-backed built-ins first, then in-memory DB cache.
121
+ const fileTypeCfg = getBuiltInIntegrationTypeConfig(provider);
122
+ const typeCfg = fileTypeCfg
123
+ ?? (this.opts.integrationTypeConfigsRef?.current.find(c => c.spaceId === spaceId && c.typeSlug === provider) ?? null);
124
+ if (!typeCfg)
173
125
  throw new HttpError(501, `Provider '${provider}' does not support credentials-based auth yet.`);
126
+ const variantKey = integration.credentialVariant || typeCfg.defaultVariant;
127
+ const variant = typeCfg.variants[variantKey]
128
+ ?? typeCfg.variants[typeCfg.defaultVariant];
129
+ if (!variant)
130
+ throw new HttpError(501, `Variant '${variantKey}' not found for provider '${provider}'.`);
174
131
  const creds = await this.opts.credentialStore.getCredentials(spaceId, credentialId);
175
- if (!creds)
176
- throw new HttpError(400, 'No credentials are configured for this integration.');
177
- if (credCfg.preprocess === 'google_service_account') {
132
+ if (!creds) {
133
+ const credentialUrl = buildCredentialUrl(integration.id);
134
+ throw new HttpError(400, `No credentials are configured for this integration. Open ${credentialUrl} to configure them.`, {
135
+ reason: 'missing_credentials',
136
+ credential_url: credentialUrl,
137
+ });
138
+ }
139
+ const resolveTemplate = (template) => {
140
+ return String(template).replace(/\{\{\s*([^}]+?)\s*\}\}/g, (_m, expr) => {
141
+ const trimmed = expr.trim();
142
+ // base64(...) transform: supports field refs and string literals joined with +
143
+ // e.g. {{base64(email + ":" + apiToken)}}
144
+ const base64Match = trimmed.match(/^base64\((.+)\)$/);
145
+ if (base64Match) {
146
+ const base64Expr = base64Match[1];
147
+ if (base64Expr === undefined)
148
+ throw new HttpError(400, `Invalid base64 template expression '${trimmed}'.`);
149
+ const parts = base64Expr.split(/\s*\+\s*/);
150
+ const resolved = parts.map(part => {
151
+ const p = part.trim();
152
+ if ((p.startsWith('"') && p.endsWith('"')) || (p.startsWith("'") && p.endsWith("'")))
153
+ return p.slice(1, -1);
154
+ const v = creds[p];
155
+ if (v === undefined || v === null)
156
+ throw new HttpError(400, `Missing credential field '${p}'.`);
157
+ return String(v);
158
+ }).join('');
159
+ return Buffer.from(resolved).toString('base64');
160
+ }
161
+ // Simple field reference
162
+ const v = creds[trimmed];
163
+ if (v === undefined || v === null)
164
+ throw new HttpError(400, `Missing credential field '${trimmed}'.`);
165
+ return String(v);
166
+ });
167
+ };
168
+ // Resolve base URL: template takes priority over fixed URL, then PROVIDERS registry fallback.
169
+ const baseUrl = (() => {
170
+ if (variant.baseUrlTemplate)
171
+ return resolveTemplate(variant.baseUrlTemplate);
172
+ if (variant.baseUrl)
173
+ return variant.baseUrl;
174
+ // Fallback: PROVIDERS registry (used by built-ins that derive URL from provider config).
175
+ const providerCfg = PROVIDERS[provider];
176
+ if (providerCfg) {
177
+ return typeof providerCfg.baseUrl === 'function'
178
+ ? providerCfg.baseUrl(integration, creds, variant)
179
+ : providerCfg.baseUrl;
180
+ }
181
+ throw new HttpError(501, `No base URL configured for provider '${provider}'.`);
182
+ })();
183
+ const typeConfig = { baseUrl, auth: variant.auth, preprocess: variant.preprocess ?? null };
184
+ // Preprocess steps (e.g. service account token exchange, Basic Auth encoding).
185
+ if (typeConfig.preprocess === 'google_service_account') {
178
186
  const serviceAccountJson = creds.serviceAccountJson;
179
187
  if (!serviceAccountJson)
180
188
  throw new HttpError(400, `Integration '${provider}' requires a 'serviceAccountJson' credential for the service_account variant.`);
@@ -199,25 +207,24 @@ export class IntegrationProxy {
199
207
  const token = await getGoogleAccessToken({ serviceAccountJson, scopes, subject });
200
208
  creds.token = token;
201
209
  }
202
- const resolveTemplate = (template) => {
203
- return String(template).replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g, (_m, key) => {
204
- const v = creds[key];
205
- if (v === undefined || v === null)
206
- throw new HttpError(400, `Missing credential field '${key}'.`);
207
- return String(v);
208
- });
209
- };
210
210
  const resolvedHeaders = {};
211
211
  const resolvedQuery = new URLSearchParams();
212
- for (const [k, v] of Object.entries(credCfg.injection?.headers || {}))
213
- resolvedHeaders[k] = resolveTemplate(v);
214
- for (const [k, v] of Object.entries(credCfg.injection?.query || {}))
215
- resolvedQuery.set(k, resolveTemplate(v));
216
- const providerCfg = PROVIDERS[provider];
217
- if (!providerCfg)
218
- throw new HttpError(501, `Provider '${provider}' is not configured in the server proxy.`);
219
- const baseUrl = typeof providerCfg.baseUrl === 'function' ? providerCfg.baseUrl( /* todo */) : providerCfg.baseUrl;
220
- let finalUrl = joinWithoutDuplicateSegments(baseUrl, path);
212
+ if (typeConfig.auth.kind === 'basic') {
213
+ const username = creds[typeConfig.auth.usernameField];
214
+ const password = creds[typeConfig.auth.passwordField];
215
+ if (username == null || password == null) {
216
+ throw new HttpError(400, `Missing credential fields for basic auth: '${typeConfig.auth.usernameField}' and/or '${typeConfig.auth.passwordField}'.`);
217
+ }
218
+ const token = Buffer.from(`${username}:${password}`).toString('base64');
219
+ resolvedHeaders.Authorization = `Basic ${token}`;
220
+ }
221
+ else {
222
+ for (const [k, v] of Object.entries(typeConfig.auth.injection?.headers || {}))
223
+ resolvedHeaders[k] = resolveTemplate(v);
224
+ for (const [k, v] of Object.entries(typeConfig.auth.injection?.query || {}))
225
+ resolvedQuery.set(k, resolveTemplate(v));
226
+ }
227
+ let finalUrl = joinWithoutDuplicateSegments(typeConfig.baseUrl, path);
221
228
  const queryString = resolvedQuery.toString();
222
229
  if (queryString)
223
230
  finalUrl = finalUrl + (finalUrl.includes('?') ? '&' : '?') + queryString;
@@ -254,18 +261,24 @@ export class IntegrationProxy {
254
261
  catch { }
255
262
  const hint = getErrorHint(response.status, provider, bodyText);
256
263
  const hintSuffix = hint ? ` ${hint}` : '';
257
- throw new HttpError(response.status, `Failed to proxy request to ${provider} (${response.status})${bodyText ? `: ${bodyText.slice(0, 500)}` : ''}.${hintSuffix}`, {
264
+ const credentialUrl = buildCredentialUrl(integration.id);
265
+ const hintWithUrl = response.status === 401
266
+ ? `${hint} Open ${credentialUrl} to reconfigure.`
267
+ : hint;
268
+ const hintWithUrlSuffix = hintWithUrl ? ` ${hintWithUrl}` : '';
269
+ throw new HttpError(response.status, `Failed to proxy request to ${provider} (${response.status})${bodyText ? `: ${bodyText.slice(0, 500)}` : ''}.${response.status === 401 ? hintWithUrlSuffix : hintSuffix}`, {
258
270
  status: response.status,
259
271
  url: redact(finalUrl),
260
272
  contentType,
261
273
  body: bodyText?.slice(0, 4000),
274
+ ...(response.status === 401 ? { reason: 'invalid_credentials', credential_url: credentialUrl } : {}),
262
275
  });
263
276
  }
264
277
  return response;
265
278
  }
266
279
  // Managed OAuth branch: used by hosted deployments / CI.
267
280
  if (!connectionId)
268
- throw new HttpError(400, 'connectionId is required for non-http providers.');
281
+ throw new HttpError(400, 'connectionId is required.');
269
282
  if (!this.opts.managedOAuthBaseUrl || !this.opts.managedOAuthSecretKey)
270
283
  throw new HttpError(501, 'Managed OAuth is not configured for this server.');
271
284
  let managedConnection;
@@ -288,7 +301,9 @@ export class IntegrationProxy {
288
301
  const userAccessToken = creds.access_token || creds.oauth_token || creds.token;
289
302
  if (!providerCfg)
290
303
  throw new HttpError(501, `Provider '${providerId}' is not configured in the server proxy.`);
291
- const baseUrl = typeof providerCfg.baseUrl === 'function' ? providerCfg.baseUrl( /* todo */) : providerCfg.baseUrl;
304
+ const baseUrl = typeof providerCfg.baseUrl === 'function'
305
+ ? providerCfg.baseUrl(integration, creds)
306
+ : providerCfg.baseUrl;
292
307
  const finalUrl = joinWithoutDuplicateSegments(baseUrl, path);
293
308
  try {
294
309
  const preparedInit = { ...init };
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/integrations/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/integrations/proxy.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import type { SandboxUtils } from './sandboxUtils.js';
1
2
  export declare function loadWorkflowModule(source: string, getIntegration?: Function): Promise<any>;
2
- export declare function createSafeHandlerFromString(handlerString: string, getIntegration: Function): (args: any) => Promise<{
3
+ export declare function createSafeHandlerFromString(handlerString: string, getIntegration: Function, utils?: SandboxUtils): (args: any) => Promise<{
3
4
  success: boolean;
4
5
  result: any;
5
6
  logs: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/integrations/sandbox.ts"],"names":[],"mappings":"AAiBA,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAkFhG;AAED,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,QAAQ,GACvB,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAyE3E"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/integrations/sandbox.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAerD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAkFhG;AAED,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,QAAQ,EACxB,KAAK,CAAC,EAAE,YAAY,GACnB,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA0E3E"}