@commandable/mcp 0.0.7 → 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 (217) 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 +124 -33
  107. package/dist/cli/setup.js.map +1 -1
  108. package/dist/config/configApply.js +1 -1
  109. package/dist/config/configApply.js.map +1 -1
  110. package/dist/config/configSchema.d.ts +6 -2
  111. package/dist/config/configSchema.d.ts.map +1 -1
  112. package/dist/config/configSchema.js +2 -1
  113. package/dist/config/configSchema.js.map +1 -1
  114. package/dist/db/client.d.ts +3 -1
  115. package/dist/db/client.d.ts.map +1 -1
  116. package/dist/db/client.js.map +1 -1
  117. package/dist/db/credentialStore.d.ts +2 -0
  118. package/dist/db/credentialStore.d.ts.map +1 -1
  119. package/dist/db/credentialStore.js +15 -16
  120. package/dist/db/credentialStore.js.map +1 -1
  121. package/dist/db/integrationStore.d.ts +7 -0
  122. package/dist/db/integrationStore.d.ts.map +1 -1
  123. package/dist/db/integrationStore.js +61 -31
  124. package/dist/db/integrationStore.js.map +1 -1
  125. package/dist/db/integrationTypeConfigStore.d.ts +6 -0
  126. package/dist/db/integrationTypeConfigStore.d.ts.map +1 -0
  127. package/dist/db/integrationTypeConfigStore.js +94 -0
  128. package/dist/db/integrationTypeConfigStore.js.map +1 -0
  129. package/dist/db/migrate.d.ts.map +1 -1
  130. package/dist/db/migrate.js +8 -109
  131. package/dist/db/migrate.js.map +1 -1
  132. package/dist/db/migrations/pg/0000_initial.sql +74 -0
  133. package/dist/db/migrations/pg/meta/_journal.json +13 -0
  134. package/dist/db/migrations/sqlite/0000_initial.sql +74 -0
  135. package/dist/db/migrations/sqlite/meta/_journal.json +13 -0
  136. package/dist/db/schema.d.ts +961 -153
  137. package/dist/db/schema.d.ts.map +1 -1
  138. package/dist/db/schema.js +55 -3
  139. package/dist/db/schema.js.map +1 -1
  140. package/dist/db/toolDefinitionStore.d.ts +6 -0
  141. package/dist/db/toolDefinitionStore.d.ts.map +1 -0
  142. package/dist/db/toolDefinitionStore.js +95 -0
  143. package/dist/db/toolDefinitionStore.js.map +1 -0
  144. package/dist/index.d.ts +7 -0
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +7 -0
  147. package/dist/index.js.map +1 -1
  148. package/dist/integrations/actionsFactory.d.ts +5 -1
  149. package/dist/integrations/actionsFactory.d.ts.map +1 -1
  150. package/dist/integrations/actionsFactory.js +37 -14
  151. package/dist/integrations/actionsFactory.js.map +1 -1
  152. package/dist/integrations/customToolFactory.d.ts +13 -0
  153. package/dist/integrations/customToolFactory.d.ts.map +1 -0
  154. package/dist/integrations/customToolFactory.js +31 -0
  155. package/dist/integrations/customToolFactory.js.map +1 -0
  156. package/dist/integrations/dataLoader.d.ts +2 -2
  157. package/dist/integrations/dataLoader.d.ts.map +1 -1
  158. package/dist/integrations/dataLoader.js +1 -1
  159. package/dist/integrations/dataLoader.js.map +1 -1
  160. package/dist/integrations/fileIntegrationTypeConfigStore.d.ts +7 -0
  161. package/dist/integrations/fileIntegrationTypeConfigStore.d.ts.map +1 -0
  162. package/dist/integrations/fileIntegrationTypeConfigStore.js +34 -0
  163. package/dist/integrations/fileIntegrationTypeConfigStore.js.map +1 -0
  164. package/dist/integrations/getIntegration.d.ts +4 -1
  165. package/dist/integrations/getIntegration.d.ts.map +1 -1
  166. package/dist/integrations/getIntegration.js +12 -4
  167. package/dist/integrations/getIntegration.js.map +1 -1
  168. package/dist/integrations/health.d.ts +20 -0
  169. package/dist/integrations/health.d.ts.map +1 -0
  170. package/dist/integrations/health.js +43 -0
  171. package/dist/integrations/health.js.map +1 -0
  172. package/dist/integrations/integrationTypeConfigLookup.d.ts +12 -0
  173. package/dist/integrations/integrationTypeConfigLookup.d.ts.map +1 -0
  174. package/dist/integrations/integrationTypeConfigLookup.js +11 -0
  175. package/dist/integrations/integrationTypeConfigLookup.js.map +1 -0
  176. package/dist/integrations/providerRegistry.d.ts.map +1 -1
  177. package/dist/integrations/providerRegistry.js +0 -4
  178. package/dist/integrations/providerRegistry.js.map +1 -1
  179. package/dist/integrations/proxy.d.ts +4 -1
  180. package/dist/integrations/proxy.d.ts.map +1 -1
  181. package/dist/integrations/proxy.js +94 -106
  182. package/dist/integrations/proxy.js.map +1 -1
  183. package/dist/integrations/sandbox.js +11 -1
  184. package/dist/integrations/sandbox.js.map +1 -1
  185. package/dist/mcp/abilityCatalog.d.ts +46 -0
  186. package/dist/mcp/abilityCatalog.d.ts.map +1 -0
  187. package/dist/mcp/abilityCatalog.js +275 -0
  188. package/dist/mcp/abilityCatalog.js.map +1 -0
  189. package/dist/mcp/builder_guide.md +441 -0
  190. package/dist/mcp/commandable_readme.md +29 -0
  191. package/dist/mcp/handlers.d.ts +10 -1
  192. package/dist/mcp/handlers.d.ts.map +1 -1
  193. package/dist/mcp/handlers.js +51 -4
  194. package/dist/mcp/handlers.js.map +1 -1
  195. package/dist/mcp/metaTools.d.ts +77 -0
  196. package/dist/mcp/metaTools.d.ts.map +1 -0
  197. package/dist/mcp/metaTools.js +753 -0
  198. package/dist/mcp/metaTools.js.map +1 -0
  199. package/dist/mcp/server.d.ts +10 -0
  200. package/dist/mcp/server.d.ts.map +1 -1
  201. package/dist/mcp/server.js +2 -2
  202. package/dist/mcp/server.js.map +1 -1
  203. package/dist/mcp/sessionState.d.ts +18 -0
  204. package/dist/mcp/sessionState.d.ts.map +1 -0
  205. package/dist/mcp/sessionState.js +65 -0
  206. package/dist/mcp/sessionState.js.map +1 -0
  207. package/dist/mcp/toolAdapter.d.ts +17 -0
  208. package/dist/mcp/toolAdapter.d.ts.map +1 -1
  209. package/dist/mcp/toolAdapter.js +7 -1
  210. package/dist/mcp/toolAdapter.js.map +1 -1
  211. package/dist/types.d.ts +61 -2
  212. package/dist/types.d.ts.map +1 -1
  213. package/dist/version.d.ts +2 -0
  214. package/dist/version.d.ts.map +1 -0
  215. package/dist/version.js +7 -0
  216. package/dist/version.js.map +1 -0
  217. package/package.json +7 -5
@@ -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,CA0EzC,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 }),
@@ -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,SAAS,EAAE;QACT,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,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,WAAgB,EAAE,KAAW,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,EAAE,GAAG,CAAA;YAC1F,OAAO,OAAO;gBACZ,CAAC,CAAC,qCAAqC,OAAO,EAAE;gBAChD,CAAC,CAAC,mCAAmC,CAAA;QACzC,CAAC;QACD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,CAAC,WAAgB,EAAE,KAAW,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,EAAE,GAAG,CAAA;YAC1F,OAAO,OAAO;gBACZ,CAAC,CAAC,2CAA2C,OAAO,EAAE;gBACtD,CAAC,CAAC,yCAAyC,CAAA;QAC/C,CAAC;QACD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;KACpE;CACF,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;AAqCD,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;CAqXlG"}
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,7 +1,7 @@
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
7
  const isGoogle = provider.startsWith('google-');
@@ -37,6 +37,11 @@ function getErrorHint(status, provider, bodyText) {
37
37
  return 'The upstream API returned a server error. This is likely a temporary issue -- retry the request after a short delay.';
38
38
  return '';
39
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
+ }
40
45
  export class IntegrationProxy {
41
46
  opts;
42
47
  constructor(opts = {}) {
@@ -102,69 +107,6 @@ export class IntegrationProxy {
102
107
  return queryPart ? `${joined}?${queryPart}` : joined;
103
108
  }
104
109
  };
105
- if (provider === 'http') {
106
- const cfg = integration.config || {};
107
- const baseUrl = cfg.baseUrl;
108
- if (!baseUrl)
109
- throw new HttpError(400, 'HTTP integration requires a baseUrl in its config.');
110
- const authType = cfg.authType || 'none';
111
- const preparedInit = { ...init };
112
- if (preparedInit.body !== undefined && typeof preparedInit.body !== 'string') {
113
- preparedInit.body = JSON.stringify(preparedInit.body);
114
- preparedInit.headers = {
115
- 'Content-Type': 'application/json',
116
- ...preparedInit.headers,
117
- };
118
- }
119
- const authHeaders = {};
120
- const authQuery = new URLSearchParams();
121
- if (authType === 'api_key_header' && cfg.apiKeyHeaderName && cfg.apiKey) {
122
- authHeaders[cfg.apiKeyHeaderName] = cfg.apiKey;
123
- }
124
- else if (authType === 'api_key_query' && cfg.apiKeyQueryParam && cfg.apiKey) {
125
- authQuery.set(cfg.apiKeyQueryParam, cfg.apiKey);
126
- }
127
- else if (authType === 'basic' && cfg.basicUsername !== undefined && cfg.basicPassword !== undefined) {
128
- const token = Buffer.from(`${cfg.basicUsername}:${cfg.basicPassword}`).toString('base64');
129
- authHeaders.Authorization = `Basic ${token}`;
130
- }
131
- else if (authType === 'custom') {
132
- if (cfg.customHeaders)
133
- Object.assign(authHeaders, cfg.customHeaders);
134
- if (cfg.customQuery) {
135
- for (const [k, v] of Object.entries(cfg.customQuery))
136
- authQuery.set(k, v);
137
- }
138
- }
139
- const authQueryString = authQuery.toString();
140
- let finalUrl = joinWithoutDuplicateSegments(baseUrl, path);
141
- if (authQueryString)
142
- finalUrl = finalUrl + (finalUrl.includes('?') ? '&' : '?') + authQueryString;
143
- const response = await fetch(finalUrl, {
144
- ...preparedInit,
145
- method: preparedInit.method || 'GET',
146
- headers: {
147
- ...preparedInit.headers,
148
- ...authHeaders,
149
- },
150
- });
151
- if (!response.ok) {
152
- const contentType = response.headers.get('content-type') || '';
153
- let bodyText = '';
154
- try {
155
- bodyText = contentType.includes('json') ? JSON.stringify(await response.json()) : await response.text();
156
- }
157
- catch { }
158
- const redactedUrl = cfg.apiKey ? finalUrl.replace(cfg.apiKey, '***') : finalUrl;
159
- throw new HttpError(response.status, 'Failed to proxy request to http integration.', {
160
- status: response.status,
161
- url: redactedUrl,
162
- contentType,
163
- body: bodyText?.slice(0, 4000),
164
- });
165
- }
166
- return response;
167
- }
168
110
  const usesCredentials = integration.connectionMethod === 'credentials';
169
111
  if (usesCredentials) {
170
112
  if (!this.opts.credentialStore)
@@ -175,13 +117,72 @@ export class IntegrationProxy {
175
117
  const credentialId = integration.credentialId;
176
118
  if (!credentialId)
177
119
  throw new HttpError(400, 'credentialId is required for credentials-based integrations.');
178
- const credCfg = loadIntegrationCredentialConfig(provider, integration.credentialVariant);
179
- 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)
180
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}'.`);
181
131
  const creds = await this.opts.credentialStore.getCredentials(spaceId, credentialId);
182
- if (!creds)
183
- throw new HttpError(400, 'No credentials are configured for this integration.');
184
- 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') {
185
186
  const serviceAccountJson = creds.serviceAccountJson;
186
187
  if (!serviceAccountJson)
187
188
  throw new HttpError(400, `Integration '${provider}' requires a 'serviceAccountJson' credential for the service_account variant.`);
@@ -206,43 +207,24 @@ export class IntegrationProxy {
206
207
  const token = await getGoogleAccessToken({ serviceAccountJson, scopes, subject });
207
208
  creds.token = token;
208
209
  }
209
- else if (credCfg.preprocess === 'jira_api_token') {
210
- const email = creds.email;
211
- const apiToken = creds.apiToken;
212
- if (!email || !apiToken)
213
- throw new HttpError(400, `Integration '${provider}' requires 'email' and 'apiToken' credentials for the api_token variant.`);
214
- creds.basicAuth = Buffer.from(`${email}:${apiToken}`).toString('base64');
215
- }
216
- else if (credCfg.preprocess === 'confluence_api_token') {
217
- const email = creds.email;
218
- const apiToken = creds.apiToken;
219
- if (!email || !apiToken)
220
- throw new HttpError(400, `Integration '${provider}' requires 'email' and 'apiToken' credentials for the api_token variant.`);
221
- creds.basicAuth = Buffer.from(`${email}:${apiToken}`).toString('base64');
222
- }
223
- const resolveTemplate = (template) => {
224
- return String(template).replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g, (_m, key) => {
225
- const v = creds[key];
226
- if (v === undefined || v === null)
227
- throw new HttpError(400, `Missing credential field '${key}'.`);
228
- return String(v);
229
- });
230
- };
231
210
  const resolvedHeaders = {};
232
211
  const resolvedQuery = new URLSearchParams();
233
- for (const [k, v] of Object.entries(credCfg.injection?.headers || {}))
234
- resolvedHeaders[k] = resolveTemplate(v);
235
- for (const [k, v] of Object.entries(credCfg.injection?.query || {}))
236
- resolvedQuery.set(k, resolveTemplate(v));
237
- const providerCfg = PROVIDERS[provider];
238
- if (!providerCfg)
239
- throw new HttpError(501, `Provider '${provider}' is not configured in the server proxy.`);
240
- const baseUrl = credCfg.baseUrlTemplate
241
- ? resolveTemplate(credCfg.baseUrlTemplate)
242
- : (typeof providerCfg.baseUrl === 'function'
243
- ? providerCfg.baseUrl(integration, creds, credCfg)
244
- : providerCfg.baseUrl);
245
- 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);
246
228
  const queryString = resolvedQuery.toString();
247
229
  if (queryString)
248
230
  finalUrl = finalUrl + (finalUrl.includes('?') ? '&' : '?') + queryString;
@@ -279,18 +261,24 @@ export class IntegrationProxy {
279
261
  catch { }
280
262
  const hint = getErrorHint(response.status, provider, bodyText);
281
263
  const hintSuffix = hint ? ` ${hint}` : '';
282
- 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}`, {
283
270
  status: response.status,
284
271
  url: redact(finalUrl),
285
272
  contentType,
286
273
  body: bodyText?.slice(0, 4000),
274
+ ...(response.status === 401 ? { reason: 'invalid_credentials', credential_url: credentialUrl } : {}),
287
275
  });
288
276
  }
289
277
  return response;
290
278
  }
291
279
  // Managed OAuth branch: used by hosted deployments / CI.
292
280
  if (!connectionId)
293
- throw new HttpError(400, 'connectionId is required for non-http providers.');
281
+ throw new HttpError(400, 'connectionId is required.');
294
282
  if (!this.opts.managedOAuthBaseUrl || !this.opts.managedOAuthSecretKey)
295
283
  throw new HttpError(501, 'Managed OAuth is not configured for this server.');
296
284
  let managedConnection;
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAgBhE,SAAS,YAAY,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAgB;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ;YACV,OAAO,4KAA4K,CAAA;QACrL,OAAO,4EAA4E,CAAA;IACrF,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ;YACV,OAAO,0MAA0M,CAAA;QACnN,OAAO,+FAA+F,CAAA;IACxG,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ;YACV,OAAO,yOAAyO,CAAA;QAClP,OAAO,uEAAuE,CAAA;IAChF,CAAC;IACD,IAAI,MAAM,KAAK,GAAG;QAChB,OAAO,uHAAuH,CAAA;IAChI,IAAI,MAAM,KAAK,GAAG;QAChB,OAAO,iGAAiG,CAAA;IAC1G,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzE,OAAO,sEAAsE,CAAA;QAC/E,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC1E,OAAO,8GAA8G,CAAA;QACvH,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/B,OAAO,+EAA+E,CAAA;QACxF,OAAO,mJAAmJ,CAAA;IAC5J,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAClC,OAAO,sHAAsH,CAAA;IAC/H,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,aAAqB;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;IAC/C,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACvE,OAAO,oBAAoB,IAAI,iBAAiB,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAA;AACrF,CAAC;AAED,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,OAAgC,EAAE;QAAlC,SAAI,GAAJ,IAAI,CAA8B;IAAG,CAAC;IAEnE,KAAK,CAAC,IAAI,CAAC,WAA4B,EAAE,IAAY,EAAE,OAAoB,EAAE;QAC3E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,WAAW,CAAA;QAEpD,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;YACpB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAA;QAE7D,MAAM,4BAA4B,GAAG,CAAC,OAAe,EAAE,OAAe,EAAU,EAAE;YAChF,IAAI,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAA;YAC5B,IAAI,SAAS,GAAG,EAAE,CAAA;YAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChB,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACtC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YACtC,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBACzD,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAE7D,IAAI,OAAO,GAAG,CAAC,CAAA;gBACf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;gBACvD,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/B,IAAI,EAAE,GAAG,IAAI,CAAA;oBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;4BAAC,EAAE,GAAG,KAAK,CAAC;4BAAC,MAAK;wBAAC,CAAC;oBAC9E,CAAC;oBACD,IAAI,EAAE,EAAE,CAAC;wBAAC,OAAO,GAAG,CAAC,CAAC;wBAAC,MAAK;oBAAC,CAAC;gBAChC,CAAC;gBAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;gBAChF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;gBAC9B,MAAM,UAAU,GAAG,GAAG,UAAU,GAAG,cAAc,EAAE,CAAA;gBACnD,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAA;YAC9D,CAAC;YACD,MAAM,CAAC;gBACL,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;gBAC/C,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;gBAChE,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBACxD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBACxD,IAAI,OAAO,GAAG,CAAC,CAAA;gBACf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;gBACzD,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/B,IAAI,EAAE,GAAG,IAAI,CAAA;oBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3B,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;4BAAC,EAAE,GAAG,KAAK,CAAC;4BAAC,MAAK;wBAAC,CAAC;oBACjF,CAAC;oBACD,IAAI,EAAE,EAAE,CAAC;wBAAC,OAAO,GAAG,CAAC,CAAC;wBAAC,MAAK;oBAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;gBAC1E,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;YACtD,CAAC;QACH,CAAC,CAAA;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,KAAK,aAAa,CAAA;QACtE,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAC5B,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAA;YAEnE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;YACnC,IAAI,CAAC,OAAO;gBACV,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,yDAAyD,CAAC,CAAA;YAErF,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;YAC7C,IAAI,CAAC,YAAY;gBACf,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,8DAA8D,CAAC,CAAA;YAE1F,0FAA0F;YAC1F,MAAM,WAAW,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAA;YAC7D,MAAM,OAAO,GAAiC,WAAW;mBACpD,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAA;YACnE,IAAI,CAAC,OAAO;gBACV,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,aAAa,QAAQ,gDAAgD,CAAC,CAAA;YAEjG,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAA;YAC1E,MAAM,OAAO,GAA6C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;mBACjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO;gBACV,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,YAAY,UAAU,6BAA6B,QAAQ,IAAI,CAAC,CAAA;YAE3F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YACnF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;gBACxD,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,4DAA4D,aAAa,qBAAqB,EAAE;oBACvH,MAAM,EAAE,qBAAqB;oBAC7B,cAAc,EAAE,aAAa;iBAC9B,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAU,EAAE;gBACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;oBACtF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;oBAC3B,+EAA+E;oBAC/E,0CAA0C;oBAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;oBACrD,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;wBACjC,IAAI,UAAU,KAAK,SAAS;4BAC1B,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,uCAAuC,OAAO,IAAI,CAAC,CAAA;wBAC9E,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;wBAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;4BAChC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;4BACrB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gCAClF,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;4BACvB,MAAM,CAAC,GAAI,KAAa,CAAC,CAAC,CAAC,CAAA;4BAC3B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;gCAC/B,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAA;4BAC9D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;wBAClB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;wBACX,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;oBACjD,CAAC;oBACD,yBAAyB;oBACzB,MAAM,CAAC,GAAI,KAAa,CAAC,OAAO,CAAC,CAAA;oBACjC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;wBAC/B,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,6BAA6B,OAAO,IAAI,CAAC,CAAA;oBACpE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;gBAClB,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YAED,8FAA8F;YAC9F,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;gBACpB,IAAI,OAAO,CAAC,eAAe;oBACzB,OAAO,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;gBACjD,IAAI,OAAO,CAAC,OAAO;oBACjB,OAAO,OAAO,CAAC,OAAO,CAAA;gBACxB,yFAAyF;gBACzF,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;gBACvC,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,OAAO,WAAW,CAAC,OAAO,KAAK,UAAU;wBAC9C,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAc,CAAC;wBACzD,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;gBACzB,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,wCAAwC,QAAQ,IAAI,CAAC,CAAA;YAChF,CAAC,CAAC,EAAE,CAAA;YAEJ,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAA;YAE1F,+EAA+E;YAC/E,IAAI,UAAU,CAAC,UAAU,KAAK,wBAAwB,EAAE,CAAC;gBACvD,MAAM,kBAAkB,GAAI,KAAa,CAAC,kBAAkB,CAAA;gBAC5D,IAAI,CAAC,kBAAkB;oBACrB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,gBAAgB,QAAQ,+EAA+E,CAAC,CAAA;gBAEnI,MAAM,OAAO,GAAG,OAAQ,KAAa,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAa,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;gBAE/F,MAAM,SAAS,GAAI,KAAa,CAAC,MAAM,CAAA;gBACvC,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;oBAC9C,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBACtD,CAAC,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ;wBAC5B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC/D,CAAC,CAAC,EAAE,CAAC,CAAA;gBAEX,MAAM,aAAa,GAA6B;oBAC9C,cAAc,EAAE,CAAC,8CAA8C,CAAC;oBAChE,aAAa,EAAE,CAAC,2CAA2C,EAAE,uCAAuC,CAAC;oBACrG,eAAe,EAAE,CAAC,+CAA+C,EAAE,uCAAuC,CAAC;oBAC3G,iBAAiB,EAAE,CAAC,0CAA0C,CAAC;oBAC/D,cAAc,EAAE,CAAC,uCAAuC,CAAC;oBACzD,cAAc,EAAE,CAAC,0BAA0B,CAAC;iBAC7C,CAAA;gBACD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;gBACzF,IAAI,CAAC,MAAM,CAAC,MAAM;oBAChB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,gDAAgD,QAAQ,IAAI,CAAC,CAAA;gBAExF,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAChF;gBAAC,KAAa,CAAC,KAAK,GAAG,KAAK,CAAA;YAC/B,CAAC;YAED,MAAM,eAAe,GAA2B,EAAE,CAAA;YAClD,MAAM,aAAa,GAAG,IAAI,eAAe,EAAE,CAAA;YAE3C,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAI,KAAa,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAC9D,MAAM,QAAQ,GAAI,KAAa,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAC9D,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACzC,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,8CAA8C,UAAU,CAAC,IAAI,CAAC,aAAa,aAAa,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,CAC1H,CAAA;gBACH,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBACvE,eAAe,CAAC,aAAa,GAAG,SAAS,KAAK,EAAE,CAAA;YAClD,CAAC;iBACI,CAAC;gBACJ,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC;oBAC3E,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAQ,CAAC,CAAA;gBAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;oBACzE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAQ,CAAC,CAAC,CAAA;YACnD,CAAC;YAED,IAAI,QAAQ,GAAG,4BAA4B,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAErE,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAA;YAC5C,IAAI,WAAW;gBACb,QAAQ,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAA;YAE1E,MAAM,YAAY,GAAgB,EAAE,GAAG,IAAI,EAAE,CAAA;YAC7C,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7E,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACrD,YAAY,CAAC,OAAO,GAAG;oBACrB,cAAc,EAAE,kBAAkB;oBAClC,GAAG,YAAY,CAAC,OAAO;iBACxB,CAAA;YACH,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE;gBACnC,IAAI,GAAG,GAAG,CAAC,CAAA;gBACX,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM;wBACvC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACpC,CAAC;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;gBACrC,GAAG,YAAY;gBACf,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,KAAK;gBACpC,OAAO,EAAE;oBACP,GAAG,YAAY,CAAC,OAAO;oBACvB,GAAG,eAAe;iBACnB;aACF,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;gBAC9D,IAAI,QAAQ,GAAG,EAAE,CAAA;gBACjB,IAAI,CAAC;oBACH,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBACzG,CAAC;gBACD,MAAM,CAAC,CAAA,CAAC;gBACR,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBACzC,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;gBACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG;oBACzC,CAAC,CAAC,GAAG,IAAI,SAAS,aAAa,kBAAkB;oBACjD,CAAC,CAAC,IAAI,CAAA;gBACR,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBAC9D,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,8BAA8B,QAAQ,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC9M,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACrB,WAAW;oBACX,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;oBAC9B,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrG,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC,YAAY;YACf,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAA;QACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB;YACpE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kDAAkD,CAAC,CAAA;QAE9E,IAAI,iBAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,eAAe,kBAAkB,CAAC,YAAY,CAAC,wBAAwB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;YACxJ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;gBACnC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;aACxE,CAAC,CAAA;YACF,IAAI,CAAC,IAAI,CAAC,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YAC5E,iBAAiB,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACvC,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gEAAgE,EAAE,KAAK,CAAC,CAAA;YACtF,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,mEAAmE,CAAC,CAAA;QAC/F,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAA;QAC3B,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,WAAW,IAAI,EAAE,CAAA;QACjD,MAAM,eAAe,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAA;QAE9E,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,aAAa,UAAU,0CAA0C,CAAC,CAAA;QAE7F,MAAM,OAAO,GAAG,OAAO,WAAW,CAAC,OAAO,KAAK,UAAU;YACvD,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;YACzC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;QACvB,MAAM,QAAQ,GAAG,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE5D,IAAI,CAAC;YACH,MAAM,YAAY,GAAgB,EAAE,GAAG,IAAI,EAAE,CAAA;YAE7C,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7E,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACrD,YAAY,CAAC,OAAO,GAAG;oBACrB,cAAc,EAAE,kBAAkB;oBAClC,GAAG,YAAY,CAAC,OAAO;iBACxB,CAAA;YACH,CAAC;YAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;oBACzB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAA;gBAE/D,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;oBACtC,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;iBACjE,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAEb,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAA;gBACjF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAA;gBACpG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;oBAC9D,IAAI,QAAQ,GAAG,EAAE,CAAA;oBACjB,IAAI,CAAC;wBACH,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;oBACzG,CAAC;oBACD,MAAM,CAAC,CAAA,CAAC;oBACR,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;oBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;oBACzC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,8BAA8B,UAAU,IAAI,UAAU,EAAE,EAAE;wBAC7F,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,GAAG,EAAE,WAAW;wBAChB,WAAW;wBACX,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;qBAC/B,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,QAAQ,CAAA;YACjB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;gBACrC,GAAG,YAAY;gBACf,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,KAAK;gBACpC,OAAO,EAAE;oBACP,GAAG,YAAY,CAAC,OAAO;oBACvB,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;iBACzC;aACF,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;gBAC9D,IAAI,QAAQ,GAAG,EAAE,CAAA;gBACjB,IAAI,CAAC;oBACH,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBACzG,CAAC;gBACD,MAAM,CAAC,CAAA,CAAC;gBACR,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;gBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBACzC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,8BAA8B,UAAU,IAAI,UAAU,EAAE,EAAE;oBAC7F,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,GAAG,EAAE,QAAQ;oBACb,WAAW;oBACX,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;iBAC/B,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,UAAU,GAAG,EAAE,KAAK,CAAC,CAAA;YAChE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,IAAI,KAAK;gBAC7D,MAAM,KAAK,CAAA;YACb,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,8BAA8B,UAAU,GAAG,EAAG,KAAa,EAAE,OAAO,CAAC,CAAA;QAChG,CAAC;IACH,CAAC;CACF"}
@@ -201,7 +201,17 @@ function withLogging(handler, vmConsole) {
201
201
  }
202
202
  catch (err) {
203
203
  logs.push(err?.stack || String(err));
204
- return { success: false, result: err, logs };
204
+ // Serialize Error objects into plain objects so JSON.stringify captures all fields
205
+ // including message (which is non-enumerable on Error).
206
+ const result = (err && typeof err === 'object')
207
+ ? {
208
+ ...err,
209
+ message: err.message,
210
+ ...(err.statusCode !== undefined ? { statusCode: err.statusCode } : {}),
211
+ ...(err.data !== undefined ? { data: err.data } : {}),
212
+ }
213
+ : err;
214
+ return { success: false, result, logs };
205
215
  }
206
216
  finally {
207
217
  vmConsole.log = originalLog;
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/integrations/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/integrations/sandbox.ts"],"names":[],"mappings":"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"}