denchclaw 2.5.2 → 2.5.4

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 (592) hide show
  1. package/README.md +8 -0
  2. package/apps/web/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  3. package/apps/web/.next/standalone/apps/web/.next/app-build-manifest.json +160 -167
  4. package/apps/web/.next/standalone/apps/web/.next/app-path-routes-manifest.json +33 -34
  5. package/apps/web/.next/standalone/apps/web/.next/build-manifest.json +2 -2
  6. package/apps/web/.next/standalone/apps/web/.next/cache/config.json +3 -3
  7. package/apps/web/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  8. package/apps/web/.next/standalone/apps/web/.next/required-server-files.json +1 -1
  9. package/apps/web/.next/standalone/apps/web/.next/routes-manifest.json +1 -1
  10. package/apps/web/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/cron/route_client-reference-manifest.js +1 -1
  12. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/proxy/route_client-reference-manifest.js +1 -1
  13. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/route_client-reference-manifest.js +1 -1
  14. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/serve/[...path]/route_client-reference-manifest.js +1 -1
  15. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/store/route_client-reference-manifest.js +1 -1
  16. package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/webhooks/[...path]/route_client-reference-manifest.js +1 -1
  17. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/active/route.js.nft.json +1 -1
  18. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/active/route_client-reference-manifest.js +1 -1
  19. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/route.js +1 -1
  20. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/route.js.nft.json +1 -1
  21. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
  22. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/runs/route.js.nft.json +1 -1
  23. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/runs/route_client-reference-manifest.js +1 -1
  24. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stop/route.js +1 -1
  25. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stop/route.js.nft.json +1 -1
  26. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stop/route_client-reference-manifest.js +1 -1
  27. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stream/route.js.nft.json +1 -1
  28. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stream/route_client-reference-manifest.js +1 -1
  29. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/subagents/route.js.nft.json +1 -1
  30. package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/subagents/route_client-reference-manifest.js +1 -1
  31. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/callback/route.js +8 -8
  32. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/callback/route.js.nft.json +1 -1
  33. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/callback/route_client-reference-manifest.js +1 -1
  34. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/connect/route_client-reference-manifest.js +1 -1
  35. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/connections/route.js +1 -1
  36. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/connections/route.js.nft.json +1 -1
  37. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/connections/route_client-reference-manifest.js +1 -1
  38. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/disconnect/route.js +1 -1
  39. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/disconnect/route.js.nft.json +1 -1
  40. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/disconnect/route_client-reference-manifest.js +1 -1
  41. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/status/route.js +7 -1
  42. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/status/route.js.nft.json +1 -1
  43. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/status/route_client-reference-manifest.js +1 -1
  44. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/toolkits/route_client-reference-manifest.js +1 -1
  45. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/jobs/[jobId]/runs/route_client-reference-manifest.js +1 -1
  46. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/jobs/route_client-reference-manifest.js +1 -1
  47. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/runs/[sessionId]/route_client-reference-manifest.js +1 -1
  48. package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/runs/search-transcript/route_client-reference-manifest.js +1 -1
  49. package/apps/web/.next/standalone/apps/web/.next/server/app/api/feedback/route.js +1 -1
  50. package/apps/web/.next/standalone/apps/web/.next/server/app/api/feedback/route_client-reference-manifest.js +1 -1
  51. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/channels/route_client-reference-manifest.js +1 -1
  52. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/route.js.nft.json +1 -1
  53. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/route_client-reference-manifest.js +1 -1
  54. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/stream/route.js.nft.json +1 -1
  55. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/stream/route_client-reference-manifest.js +1 -1
  56. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/sessions/[id]/route_client-reference-manifest.js +1 -1
  57. package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/sessions/route_client-reference-manifest.js +1 -1
  58. package/apps/web/.next/standalone/apps/web/.next/server/app/api/integrations/[id]/toggle/route.js.nft.json +1 -1
  59. package/apps/web/.next/standalone/apps/web/.next/server/app/api/integrations/[id]/toggle/route_client-reference-manifest.js +1 -1
  60. package/apps/web/.next/standalone/apps/web/.next/server/app/api/integrations/repair/route.js.nft.json +1 -1
  61. package/apps/web/.next/standalone/apps/web/.next/server/app/api/integrations/repair/route_client-reference-manifest.js +1 -1
  62. package/apps/web/.next/standalone/apps/web/.next/server/app/api/integrations/route.js.nft.json +1 -1
  63. package/apps/web/.next/standalone/apps/web/.next/server/app/api/integrations/route_client-reference-manifest.js +1 -1
  64. package/apps/web/.next/standalone/apps/web/.next/server/app/api/memories/route_client-reference-manifest.js +1 -1
  65. package/apps/web/.next/standalone/apps/web/.next/server/app/api/profiles/route_client-reference-manifest.js +1 -1
  66. package/apps/web/.next/standalone/apps/web/.next/server/app/api/profiles/switch/route_client-reference-manifest.js +1 -1
  67. package/apps/web/.next/standalone/apps/web/.next/server/app/api/sessions/[sessionId]/route_client-reference-manifest.js +1 -1
  68. package/apps/web/.next/standalone/apps/web/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  69. package/apps/web/.next/standalone/apps/web/.next/server/app/api/settings/cloud/route.js +1 -1
  70. package/apps/web/.next/standalone/apps/web/.next/server/app/api/settings/cloud/route.js.nft.json +1 -1
  71. package/apps/web/.next/standalone/apps/web/.next/server/app/api/settings/cloud/route_client-reference-manifest.js +1 -1
  72. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/[slug]/content/route_client-reference-manifest.js +1 -1
  73. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/[slug]/route.js +1 -1
  74. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/[slug]/route_client-reference-manifest.js +1 -1
  75. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/browse/route_client-reference-manifest.js +1 -1
  76. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
  77. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/route.js +1 -1
  78. package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  79. package/apps/web/.next/standalone/apps/web/.next/server/app/api/terminal/port/route_client-reference-manifest.js +1 -1
  80. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/speech/route.js +1 -1
  81. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/speech/route.js.nft.json +1 -1
  82. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/speech/route_client-reference-manifest.js +1 -1
  83. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/transcribe/route.js +1 -1
  84. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/transcribe/route.js.nft.json +1 -1
  85. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/transcribe/route_client-reference-manifest.js +1 -1
  86. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/voices/route.js +1 -1
  87. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/voices/route.js.nft.json +1 -1
  88. package/apps/web/.next/standalone/apps/web/.next/server/app/api/voice/voices/route_client-reference-manifest.js +1 -1
  89. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/[id]/messages/route_client-reference-manifest.js +1 -1
  90. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/[id]/route.js.nft.json +1 -1
  91. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/[id]/route_client-reference-manifest.js +1 -1
  92. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/route.js +1 -1
  93. package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/route_client-reference-manifest.js +1 -1
  94. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/assets/[...path]/route_client-reference-manifest.js +1 -1
  95. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/browse/route_client-reference-manifest.js +1 -1
  96. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/browse-file/route_client-reference-manifest.js +1 -1
  97. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/context/route_client-reference-manifest.js +1 -1
  98. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/copy/route_client-reference-manifest.js +1 -1
  99. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/db/introspect/route_client-reference-manifest.js +1 -1
  100. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/db/query/route_client-reference-manifest.js +1 -1
  101. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/delete/route.js +1 -1
  102. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/delete/route_client-reference-manifest.js +1 -1
  103. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/execute/route_client-reference-manifest.js +1 -1
  104. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/file/route_client-reference-manifest.js +1 -1
  105. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/init/route.js +1 -1
  106. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/init/route_client-reference-manifest.js +1 -1
  107. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/link-preview/route_client-reference-manifest.js +1 -1
  108. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/list/route_client-reference-manifest.js +1 -1
  109. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/mkdir/route_client-reference-manifest.js +1 -1
  110. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/move/route_client-reference-manifest.js +1 -1
  111. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/route_client-reference-manifest.js +1 -1
  112. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/runs/route_client-reference-manifest.js +1 -1
  113. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/display-field/route_client-reference-manifest.js +1 -1
  114. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/content/route_client-reference-manifest.js +1 -1
  115. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/route_client-reference-manifest.js +1 -1
  116. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/bulk-delete/route_client-reference-manifest.js +1 -1
  117. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/options/route_client-reference-manifest.js +1 -1
  118. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/route.js +1 -1
  119. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/route_client-reference-manifest.js +1 -1
  120. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route_client-reference-manifest.js +1 -1
  121. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/route_client-reference-manifest.js +1 -1
  122. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/reorder/route_client-reference-manifest.js +1 -1
  123. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/route_client-reference-manifest.js +1 -1
  124. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/route_client-reference-manifest.js +1 -1
  125. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/views/route_client-reference-manifest.js +1 -1
  126. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/open-file/route_client-reference-manifest.js +1 -1
  127. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/path-info/route_client-reference-manifest.js +1 -1
  128. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/query/route_client-reference-manifest.js +1 -1
  129. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/raw-file/route_client-reference-manifest.js +1 -1
  130. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/rename/route_client-reference-manifest.js +1 -1
  131. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/reports/execute/route.js +1 -1
  132. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/reports/execute/route_client-reference-manifest.js +1 -1
  133. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/search-index/route_client-reference-manifest.js +1 -1
  134. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/suggest-files/route_client-reference-manifest.js +1 -1
  135. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/switch/route.js +1 -1
  136. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/switch/route_client-reference-manifest.js +1 -1
  137. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/thumbnail/route_client-reference-manifest.js +1 -1
  138. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/tree/route_client-reference-manifest.js +1 -1
  139. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/upload/route.js +1 -1
  140. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/upload/route_client-reference-manifest.js +1 -1
  141. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/virtual-file/route_client-reference-manifest.js +1 -1
  142. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/watch/route_client-reference-manifest.js +1 -1
  143. package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/write-binary/route_client-reference-manifest.js +1 -1
  144. package/apps/web/.next/standalone/apps/web/.next/server/app/page.js +9 -8
  145. package/apps/web/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  146. package/apps/web/.next/standalone/apps/web/.next/server/app/workspace/page.js +1 -1
  147. package/apps/web/.next/standalone/apps/web/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
  148. package/apps/web/.next/standalone/apps/web/.next/server/app-paths-manifest.json +33 -34
  149. package/apps/web/.next/standalone/apps/web/.next/server/chunks/6426.js +3 -3
  150. package/apps/web/.next/standalone/apps/web/.next/server/chunks/6787.js +1 -1
  151. package/apps/web/.next/standalone/apps/web/.next/server/chunks/687.js +4 -4
  152. package/apps/web/.next/standalone/apps/web/.next/server/chunks/7488.js +1 -1
  153. package/apps/web/.next/standalone/apps/web/.next/server/chunks/7515.js +1 -0
  154. package/apps/web/.next/standalone/apps/web/.next/server/chunks/8306.js +1 -1
  155. package/apps/web/.next/standalone/apps/web/.next/server/functions-config-manifest.json +18 -19
  156. package/apps/web/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  157. package/apps/web/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  158. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/cron/{route-982235d988e17f31.js → route-3f5324f861724fe4.js} +1 -1
  159. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/proxy/{route-982235d988e17f31.js → route-3f5324f861724fe4.js} +1 -1
  160. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/{route-982235d988e17f31.js → route-3f5324f861724fe4.js} +1 -1
  161. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/{route-982235d988e17f31.js → route-3f5324f861724fe4.js} +1 -1
  162. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/store/route-3f5324f861724fe4.js +1 -0
  163. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-3f5324f861724fe4.js +1 -0
  164. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/active/route-3f5324f861724fe4.js +1 -0
  165. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/route-3f5324f861724fe4.js +1 -0
  166. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/runs/route-3f5324f861724fe4.js +1 -0
  167. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stop/route-3f5324f861724fe4.js +1 -0
  168. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stream/route-3f5324f861724fe4.js +1 -0
  169. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/subagents/route-3f5324f861724fe4.js +1 -0
  170. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/callback/route-3f5324f861724fe4.js +1 -0
  171. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/connect/route-3f5324f861724fe4.js +1 -0
  172. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/connections/route-3f5324f861724fe4.js +1 -0
  173. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/disconnect/route-3f5324f861724fe4.js +1 -0
  174. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/status/route-3f5324f861724fe4.js +1 -0
  175. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/toolkits/route-3f5324f861724fe4.js +1 -0
  176. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-3f5324f861724fe4.js +1 -0
  177. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/route-3f5324f861724fe4.js +1 -0
  178. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-3f5324f861724fe4.js +1 -0
  179. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-3f5324f861724fe4.js +1 -0
  180. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/feedback/route-3f5324f861724fe4.js +1 -0
  181. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/channels/route-3f5324f861724fe4.js +1 -0
  182. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/route-3f5324f861724fe4.js +1 -0
  183. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-3f5324f861724fe4.js +1 -0
  184. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-3f5324f861724fe4.js +1 -0
  185. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/route-3f5324f861724fe4.js +1 -0
  186. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/[id]/toggle/route-3f5324f861724fe4.js +1 -0
  187. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/repair/route-3f5324f861724fe4.js +1 -0
  188. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/route-3f5324f861724fe4.js +1 -0
  189. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/memories/route-3f5324f861724fe4.js +1 -0
  190. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/route-3f5324f861724fe4.js +1 -0
  191. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/switch/route-3f5324f861724fe4.js +1 -0
  192. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-3f5324f861724fe4.js +1 -0
  193. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/route-3f5324f861724fe4.js +1 -0
  194. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/settings/cloud/route-3f5324f861724fe4.js +1 -0
  195. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/[slug]/content/route-3f5324f861724fe4.js +1 -0
  196. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/[slug]/route-3f5324f861724fe4.js +1 -0
  197. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/browse/route-3f5324f861724fe4.js +1 -0
  198. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/install/route-3f5324f861724fe4.js +1 -0
  199. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/route-3f5324f861724fe4.js +1 -0
  200. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/terminal/port/route-3f5324f861724fe4.js +1 -0
  201. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/voice/speech/route-3f5324f861724fe4.js +1 -0
  202. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/voice/transcribe/route-3f5324f861724fe4.js +1 -0
  203. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/voice/voices/route-3f5324f861724fe4.js +1 -0
  204. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-3f5324f861724fe4.js +1 -0
  205. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-3f5324f861724fe4.js +1 -0
  206. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/route-3f5324f861724fe4.js +1 -0
  207. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-3f5324f861724fe4.js +1 -0
  208. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse/route-3f5324f861724fe4.js +1 -0
  209. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-3f5324f861724fe4.js +1 -0
  210. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/context/route-3f5324f861724fe4.js +1 -0
  211. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/copy/route-3f5324f861724fe4.js +1 -0
  212. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-3f5324f861724fe4.js +1 -0
  213. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/query/route-3f5324f861724fe4.js +1 -0
  214. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/delete/route-3f5324f861724fe4.js +1 -0
  215. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/execute/route-3f5324f861724fe4.js +1 -0
  216. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/file/route-3f5324f861724fe4.js +1 -0
  217. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/init/route-3f5324f861724fe4.js +1 -0
  218. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-3f5324f861724fe4.js +1 -0
  219. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/list/route-3f5324f861724fe4.js +1 -0
  220. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-3f5324f861724fe4.js +1 -0
  221. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/move/route-3f5324f861724fe4.js +1 -0
  222. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-3f5324f861724fe4.js +1 -0
  223. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-3f5324f861724fe4.js +1 -0
  224. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-3f5324f861724fe4.js +1 -0
  225. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-3f5324f861724fe4.js +1 -0
  226. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-3f5324f861724fe4.js +1 -0
  227. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-3f5324f861724fe4.js +1 -0
  228. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-3f5324f861724fe4.js +1 -0
  229. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-3f5324f861724fe4.js +1 -0
  230. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-3f5324f861724fe4.js +1 -0
  231. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-3f5324f861724fe4.js +1 -0
  232. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-3f5324f861724fe4.js +1 -0
  233. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-3f5324f861724fe4.js +1 -0
  234. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-3f5324f861724fe4.js +1 -0
  235. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-3f5324f861724fe4.js +1 -0
  236. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/open-file/route-3f5324f861724fe4.js +1 -0
  237. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/path-info/route-3f5324f861724fe4.js +1 -0
  238. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/query/route-3f5324f861724fe4.js +1 -0
  239. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-3f5324f861724fe4.js +1 -0
  240. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/rename/route-3f5324f861724fe4.js +1 -0
  241. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-3f5324f861724fe4.js +1 -0
  242. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/search-index/route-3f5324f861724fe4.js +1 -0
  243. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-3f5324f861724fe4.js +1 -0
  244. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/switch/route-3f5324f861724fe4.js +1 -0
  245. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-3f5324f861724fe4.js +1 -0
  246. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/tree/route-3f5324f861724fe4.js +1 -0
  247. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/upload/route-3f5324f861724fe4.js +1 -0
  248. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-3f5324f861724fe4.js +1 -0
  249. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/watch/route-3f5324f861724fe4.js +1 -0
  250. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-3f5324f861724fe4.js +1 -0
  251. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/{layout-4e33b3503af94c5b.js → layout-f3680ff738cac0bb.js} +1 -1
  252. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/page-9d91562ada53b3ef.js +1 -0
  253. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/workspace/page-449a49cbf2cfee70.js +1 -0
  254. package/apps/web/.next/standalone/apps/web/.next/static/css/74b1299abb24af0e.css +1 -0
  255. package/apps/web/.next/standalone/apps/web/.next/static/oj1WoDEuGOF0TNojiymK5/_buildManifest.js +1 -0
  256. package/apps/web/.next/standalone/apps/web/app/components/__fixtures__/composio-empty-final-reply.jsonl +4 -0
  257. package/apps/web/.next/standalone/apps/web/public/dench-integrations-icon.png +0 -0
  258. package/apps/web/.next/standalone/apps/web/server.js +1 -1
  259. package/apps/web/.next/standalone/extensions/apollo-enrichment/index.ts +4 -26
  260. package/apps/web/.next/standalone/extensions/dench-ai-gateway/composio-bridge.ts +152 -426
  261. package/apps/web/.next/standalone/extensions/dench-ai-gateway/config-patch.ts +7 -4
  262. package/apps/web/.next/standalone/extensions/dench-ai-gateway/index.test.ts +280 -220
  263. package/apps/web/.next/standalone/extensions/dench-ai-gateway/index.ts +2 -2
  264. package/apps/web/.next/standalone/extensions/dench-identity/composio-cheat-sheet.test.ts +19 -111
  265. package/apps/web/.next/standalone/extensions/dench-identity/composio-cheat-sheet.ts +63 -108
  266. package/apps/web/.next/standalone/extensions/dench-identity/composio-tool-search.ts +322 -0
  267. package/apps/web/.next/standalone/extensions/dench-identity/index.test.ts +461 -55
  268. package/apps/web/.next/standalone/extensions/dench-identity/index.ts +1316 -200
  269. package/apps/web/.next/standalone/extensions/exa-search/index.ts +4 -27
  270. package/apps/web/.next/standalone/extensions/posthog-analytics/lib/build-env.js +1 -1
  271. package/apps/web/.next/standalone/extensions/shared/composio-search-context.ts +134 -0
  272. package/apps/web/.next/standalone/extensions/shared/dench-auth.ts +47 -0
  273. package/apps/web/.next/standalone/package.json +1 -1
  274. package/apps/web/.next/static/chunks/app/api/apps/cron/route-3f5324f861724fe4.js +1 -0
  275. package/apps/web/.next/static/chunks/app/api/apps/proxy/route-3f5324f861724fe4.js +1 -0
  276. package/apps/web/.next/static/chunks/app/api/apps/route-3f5324f861724fe4.js +1 -0
  277. package/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-3f5324f861724fe4.js +1 -0
  278. package/apps/web/.next/static/chunks/app/api/apps/store/route-3f5324f861724fe4.js +1 -0
  279. package/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-3f5324f861724fe4.js +1 -0
  280. package/apps/web/.next/static/chunks/app/api/chat/active/route-3f5324f861724fe4.js +1 -0
  281. package/apps/web/.next/static/chunks/app/api/chat/route-3f5324f861724fe4.js +1 -0
  282. package/apps/web/.next/static/chunks/app/api/chat/runs/route-3f5324f861724fe4.js +1 -0
  283. package/apps/web/.next/static/chunks/app/api/chat/stop/route-3f5324f861724fe4.js +1 -0
  284. package/apps/web/.next/static/chunks/app/api/chat/stream/route-3f5324f861724fe4.js +1 -0
  285. package/apps/web/.next/static/chunks/app/api/chat/subagents/route-3f5324f861724fe4.js +1 -0
  286. package/apps/web/.next/static/chunks/app/api/composio/callback/route-3f5324f861724fe4.js +1 -0
  287. package/apps/web/.next/static/chunks/app/api/composio/connect/route-3f5324f861724fe4.js +1 -0
  288. package/apps/web/.next/static/chunks/app/api/composio/connections/route-3f5324f861724fe4.js +1 -0
  289. package/apps/web/.next/static/chunks/app/api/composio/disconnect/route-3f5324f861724fe4.js +1 -0
  290. package/apps/web/.next/static/chunks/app/api/composio/status/route-3f5324f861724fe4.js +1 -0
  291. package/apps/web/.next/static/chunks/app/api/composio/toolkits/route-3f5324f861724fe4.js +1 -0
  292. package/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-3f5324f861724fe4.js +1 -0
  293. package/apps/web/.next/static/chunks/app/api/cron/jobs/route-3f5324f861724fe4.js +1 -0
  294. package/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-3f5324f861724fe4.js +1 -0
  295. package/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-3f5324f861724fe4.js +1 -0
  296. package/apps/web/.next/static/chunks/app/api/feedback/route-3f5324f861724fe4.js +1 -0
  297. package/apps/web/.next/static/chunks/app/api/gateway/channels/route-3f5324f861724fe4.js +1 -0
  298. package/apps/web/.next/static/chunks/app/api/gateway/chat/route-3f5324f861724fe4.js +1 -0
  299. package/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-3f5324f861724fe4.js +1 -0
  300. package/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-3f5324f861724fe4.js +1 -0
  301. package/apps/web/.next/static/chunks/app/api/gateway/sessions/route-3f5324f861724fe4.js +1 -0
  302. package/apps/web/.next/static/chunks/app/api/integrations/[id]/toggle/route-3f5324f861724fe4.js +1 -0
  303. package/apps/web/.next/static/chunks/app/api/integrations/repair/route-3f5324f861724fe4.js +1 -0
  304. package/apps/web/.next/static/chunks/app/api/integrations/route-3f5324f861724fe4.js +1 -0
  305. package/apps/web/.next/static/chunks/app/api/memories/route-3f5324f861724fe4.js +1 -0
  306. package/apps/web/.next/static/chunks/app/api/profiles/route-3f5324f861724fe4.js +1 -0
  307. package/apps/web/.next/static/chunks/app/api/profiles/switch/route-3f5324f861724fe4.js +1 -0
  308. package/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-3f5324f861724fe4.js +1 -0
  309. package/apps/web/.next/static/chunks/app/api/sessions/route-3f5324f861724fe4.js +1 -0
  310. package/apps/web/.next/static/chunks/app/api/settings/cloud/route-3f5324f861724fe4.js +1 -0
  311. package/apps/web/.next/static/chunks/app/api/skills/[slug]/content/route-3f5324f861724fe4.js +1 -0
  312. package/apps/web/.next/static/chunks/app/api/skills/[slug]/route-3f5324f861724fe4.js +1 -0
  313. package/apps/web/.next/static/chunks/app/api/skills/browse/route-3f5324f861724fe4.js +1 -0
  314. package/apps/web/.next/static/chunks/app/api/skills/install/route-3f5324f861724fe4.js +1 -0
  315. package/apps/web/.next/static/chunks/app/api/skills/route-3f5324f861724fe4.js +1 -0
  316. package/apps/web/.next/static/chunks/app/api/terminal/port/route-3f5324f861724fe4.js +1 -0
  317. package/apps/web/.next/static/chunks/app/api/voice/speech/route-3f5324f861724fe4.js +1 -0
  318. package/apps/web/.next/static/chunks/app/api/voice/transcribe/route-3f5324f861724fe4.js +1 -0
  319. package/apps/web/.next/static/chunks/app/api/voice/voices/route-3f5324f861724fe4.js +1 -0
  320. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-3f5324f861724fe4.js +1 -0
  321. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-3f5324f861724fe4.js +1 -0
  322. package/apps/web/.next/static/chunks/app/api/web-sessions/route-3f5324f861724fe4.js +1 -0
  323. package/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-3f5324f861724fe4.js +1 -0
  324. package/apps/web/.next/static/chunks/app/api/workspace/browse/route-3f5324f861724fe4.js +1 -0
  325. package/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-3f5324f861724fe4.js +1 -0
  326. package/apps/web/.next/static/chunks/app/api/workspace/context/route-3f5324f861724fe4.js +1 -0
  327. package/apps/web/.next/static/chunks/app/api/workspace/copy/route-3f5324f861724fe4.js +1 -0
  328. package/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-3f5324f861724fe4.js +1 -0
  329. package/apps/web/.next/static/chunks/app/api/workspace/db/query/route-3f5324f861724fe4.js +1 -0
  330. package/apps/web/.next/static/chunks/app/api/workspace/delete/route-3f5324f861724fe4.js +1 -0
  331. package/apps/web/.next/static/chunks/app/api/workspace/execute/route-3f5324f861724fe4.js +1 -0
  332. package/apps/web/.next/static/chunks/app/api/workspace/file/route-3f5324f861724fe4.js +1 -0
  333. package/apps/web/.next/static/chunks/app/api/workspace/init/route-3f5324f861724fe4.js +1 -0
  334. package/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-3f5324f861724fe4.js +1 -0
  335. package/apps/web/.next/static/chunks/app/api/workspace/list/route-3f5324f861724fe4.js +1 -0
  336. package/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-3f5324f861724fe4.js +1 -0
  337. package/apps/web/.next/static/chunks/app/api/workspace/move/route-3f5324f861724fe4.js +1 -0
  338. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-3f5324f861724fe4.js +1 -0
  339. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-3f5324f861724fe4.js +1 -0
  340. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-3f5324f861724fe4.js +1 -0
  341. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-3f5324f861724fe4.js +1 -0
  342. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-3f5324f861724fe4.js +1 -0
  343. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-3f5324f861724fe4.js +1 -0
  344. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-3f5324f861724fe4.js +1 -0
  345. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-3f5324f861724fe4.js +1 -0
  346. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-3f5324f861724fe4.js +1 -0
  347. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-3f5324f861724fe4.js +1 -0
  348. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-3f5324f861724fe4.js +1 -0
  349. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-3f5324f861724fe4.js +1 -0
  350. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-3f5324f861724fe4.js +1 -0
  351. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-3f5324f861724fe4.js +1 -0
  352. package/apps/web/.next/static/chunks/app/api/workspace/open-file/route-3f5324f861724fe4.js +1 -0
  353. package/apps/web/.next/static/chunks/app/api/workspace/path-info/route-3f5324f861724fe4.js +1 -0
  354. package/apps/web/.next/static/chunks/app/api/workspace/query/route-3f5324f861724fe4.js +1 -0
  355. package/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-3f5324f861724fe4.js +1 -0
  356. package/apps/web/.next/static/chunks/app/api/workspace/rename/route-3f5324f861724fe4.js +1 -0
  357. package/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-3f5324f861724fe4.js +1 -0
  358. package/apps/web/.next/static/chunks/app/api/workspace/search-index/route-3f5324f861724fe4.js +1 -0
  359. package/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-3f5324f861724fe4.js +1 -0
  360. package/apps/web/.next/static/chunks/app/api/workspace/switch/route-3f5324f861724fe4.js +1 -0
  361. package/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-3f5324f861724fe4.js +1 -0
  362. package/apps/web/.next/static/chunks/app/api/workspace/tree/route-3f5324f861724fe4.js +1 -0
  363. package/apps/web/.next/static/chunks/app/api/workspace/upload/route-3f5324f861724fe4.js +1 -0
  364. package/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-3f5324f861724fe4.js +1 -0
  365. package/apps/web/.next/static/chunks/app/api/workspace/watch/route-3f5324f861724fe4.js +1 -0
  366. package/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-3f5324f861724fe4.js +1 -0
  367. package/apps/web/.next/static/chunks/app/{layout-4e33b3503af94c5b.js → layout-f3680ff738cac0bb.js} +1 -1
  368. package/apps/web/.next/static/chunks/app/page-9d91562ada53b3ef.js +1 -0
  369. package/apps/web/.next/static/chunks/app/workspace/page-449a49cbf2cfee70.js +1 -0
  370. package/apps/web/.next/static/css/74b1299abb24af0e.css +1 -0
  371. package/apps/web/.next/static/oj1WoDEuGOF0TNojiymK5/_buildManifest.js +1 -0
  372. package/apps/web/public/dench-integrations-icon.png +0 -0
  373. package/dist/{cli-name-CoW7mNz-.js → cli-name-Sz-5E3q2.js} +1 -1
  374. package/dist/entry.js +9 -2
  375. package/dist/{program-C4ijUMvC.js → program-CtW4fcfa.js} +265 -70
  376. package/dist/{run-main-tu5KGaV-.js → run-main-CPnN1zoG.js} +3 -3
  377. package/dist/{telemetry-DguRjCZq.js → telemetry-C_b18hhq.js} +1 -1
  378. package/extensions/apollo-enrichment/index.ts +4 -26
  379. package/extensions/dench-ai-gateway/composio-bridge.ts +152 -426
  380. package/extensions/dench-ai-gateway/config-patch.ts +7 -4
  381. package/extensions/dench-ai-gateway/index.test.ts +280 -220
  382. package/extensions/dench-ai-gateway/index.ts +2 -2
  383. package/extensions/dench-identity/composio-cheat-sheet.test.ts +19 -111
  384. package/extensions/dench-identity/composio-cheat-sheet.ts +63 -108
  385. package/extensions/dench-identity/composio-tool-search.ts +322 -0
  386. package/extensions/dench-identity/index.test.ts +461 -55
  387. package/extensions/dench-identity/index.ts +1316 -200
  388. package/extensions/exa-search/index.ts +4 -27
  389. package/extensions/posthog-analytics/lib/build-env.js +1 -1
  390. package/extensions/shared/composio-search-context.ts +134 -0
  391. package/extensions/shared/dench-auth.ts +47 -0
  392. package/package.json +1 -1
  393. package/skills/composio-apps/SKILL.md +27 -9
  394. package/skills/dench-integrations/SKILL.md +189 -0
  395. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/tool-index/route.js +0 -1
  396. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/tool-index/route.js.nft.json +0 -1
  397. package/apps/web/.next/standalone/apps/web/.next/server/app/api/composio/tool-index/route_client-reference-manifest.js +0 -1
  398. package/apps/web/.next/standalone/apps/web/.next/server/chunks/8650.js +0 -1
  399. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/store/route-982235d988e17f31.js +0 -1
  400. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-982235d988e17f31.js +0 -1
  401. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/active/route-982235d988e17f31.js +0 -1
  402. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/route-982235d988e17f31.js +0 -1
  403. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/runs/route-982235d988e17f31.js +0 -1
  404. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stop/route-982235d988e17f31.js +0 -1
  405. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stream/route-982235d988e17f31.js +0 -1
  406. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/subagents/route-982235d988e17f31.js +0 -1
  407. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/callback/route-982235d988e17f31.js +0 -1
  408. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/connect/route-982235d988e17f31.js +0 -1
  409. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/connections/route-982235d988e17f31.js +0 -1
  410. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/disconnect/route-982235d988e17f31.js +0 -1
  411. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/status/route-982235d988e17f31.js +0 -1
  412. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/tool-index/route-982235d988e17f31.js +0 -1
  413. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/composio/toolkits/route-982235d988e17f31.js +0 -1
  414. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-982235d988e17f31.js +0 -1
  415. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/route-982235d988e17f31.js +0 -1
  416. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-982235d988e17f31.js +0 -1
  417. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-982235d988e17f31.js +0 -1
  418. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/feedback/route-982235d988e17f31.js +0 -1
  419. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/channels/route-982235d988e17f31.js +0 -1
  420. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/route-982235d988e17f31.js +0 -1
  421. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-982235d988e17f31.js +0 -1
  422. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-982235d988e17f31.js +0 -1
  423. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/route-982235d988e17f31.js +0 -1
  424. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/[id]/toggle/route-982235d988e17f31.js +0 -1
  425. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/repair/route-982235d988e17f31.js +0 -1
  426. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/route-982235d988e17f31.js +0 -1
  427. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/memories/route-982235d988e17f31.js +0 -1
  428. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/route-982235d988e17f31.js +0 -1
  429. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/switch/route-982235d988e17f31.js +0 -1
  430. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-982235d988e17f31.js +0 -1
  431. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/route-982235d988e17f31.js +0 -1
  432. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/settings/cloud/route-982235d988e17f31.js +0 -1
  433. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/[slug]/content/route-982235d988e17f31.js +0 -1
  434. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/[slug]/route-982235d988e17f31.js +0 -1
  435. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/browse/route-982235d988e17f31.js +0 -1
  436. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/install/route-982235d988e17f31.js +0 -1
  437. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/route-982235d988e17f31.js +0 -1
  438. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/terminal/port/route-982235d988e17f31.js +0 -1
  439. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/voice/speech/route-982235d988e17f31.js +0 -1
  440. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/voice/transcribe/route-982235d988e17f31.js +0 -1
  441. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/voice/voices/route-982235d988e17f31.js +0 -1
  442. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-982235d988e17f31.js +0 -1
  443. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-982235d988e17f31.js +0 -1
  444. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/route-982235d988e17f31.js +0 -1
  445. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-982235d988e17f31.js +0 -1
  446. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse/route-982235d988e17f31.js +0 -1
  447. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-982235d988e17f31.js +0 -1
  448. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/context/route-982235d988e17f31.js +0 -1
  449. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/copy/route-982235d988e17f31.js +0 -1
  450. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-982235d988e17f31.js +0 -1
  451. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/query/route-982235d988e17f31.js +0 -1
  452. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/delete/route-982235d988e17f31.js +0 -1
  453. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/execute/route-982235d988e17f31.js +0 -1
  454. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/file/route-982235d988e17f31.js +0 -1
  455. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/init/route-982235d988e17f31.js +0 -1
  456. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-982235d988e17f31.js +0 -1
  457. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/list/route-982235d988e17f31.js +0 -1
  458. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-982235d988e17f31.js +0 -1
  459. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/move/route-982235d988e17f31.js +0 -1
  460. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-982235d988e17f31.js +0 -1
  461. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-982235d988e17f31.js +0 -1
  462. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-982235d988e17f31.js +0 -1
  463. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-982235d988e17f31.js +0 -1
  464. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-982235d988e17f31.js +0 -1
  465. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-982235d988e17f31.js +0 -1
  466. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-982235d988e17f31.js +0 -1
  467. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-982235d988e17f31.js +0 -1
  468. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-982235d988e17f31.js +0 -1
  469. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-982235d988e17f31.js +0 -1
  470. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-982235d988e17f31.js +0 -1
  471. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-982235d988e17f31.js +0 -1
  472. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-982235d988e17f31.js +0 -1
  473. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-982235d988e17f31.js +0 -1
  474. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/open-file/route-982235d988e17f31.js +0 -1
  475. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/path-info/route-982235d988e17f31.js +0 -1
  476. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/query/route-982235d988e17f31.js +0 -1
  477. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-982235d988e17f31.js +0 -1
  478. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/rename/route-982235d988e17f31.js +0 -1
  479. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-982235d988e17f31.js +0 -1
  480. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/search-index/route-982235d988e17f31.js +0 -1
  481. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-982235d988e17f31.js +0 -1
  482. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/switch/route-982235d988e17f31.js +0 -1
  483. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-982235d988e17f31.js +0 -1
  484. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/tree/route-982235d988e17f31.js +0 -1
  485. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/upload/route-982235d988e17f31.js +0 -1
  486. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-982235d988e17f31.js +0 -1
  487. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/watch/route-982235d988e17f31.js +0 -1
  488. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-982235d988e17f31.js +0 -1
  489. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/page-93ec42bca0d82a2b.js +0 -1
  490. package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/workspace/page-7f60d4efe8904f55.js +0 -1
  491. package/apps/web/.next/standalone/apps/web/.next/static/css/4f71a2dee93c9f97.css +0 -1
  492. package/apps/web/.next/standalone/apps/web/.next/static/hGwOuep2JUMOZ4iiPjKLY/_buildManifest.js +0 -1
  493. package/apps/web/.next/static/chunks/app/api/apps/cron/route-982235d988e17f31.js +0 -1
  494. package/apps/web/.next/static/chunks/app/api/apps/proxy/route-982235d988e17f31.js +0 -1
  495. package/apps/web/.next/static/chunks/app/api/apps/route-982235d988e17f31.js +0 -1
  496. package/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-982235d988e17f31.js +0 -1
  497. package/apps/web/.next/static/chunks/app/api/apps/store/route-982235d988e17f31.js +0 -1
  498. package/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-982235d988e17f31.js +0 -1
  499. package/apps/web/.next/static/chunks/app/api/chat/active/route-982235d988e17f31.js +0 -1
  500. package/apps/web/.next/static/chunks/app/api/chat/route-982235d988e17f31.js +0 -1
  501. package/apps/web/.next/static/chunks/app/api/chat/runs/route-982235d988e17f31.js +0 -1
  502. package/apps/web/.next/static/chunks/app/api/chat/stop/route-982235d988e17f31.js +0 -1
  503. package/apps/web/.next/static/chunks/app/api/chat/stream/route-982235d988e17f31.js +0 -1
  504. package/apps/web/.next/static/chunks/app/api/chat/subagents/route-982235d988e17f31.js +0 -1
  505. package/apps/web/.next/static/chunks/app/api/composio/callback/route-982235d988e17f31.js +0 -1
  506. package/apps/web/.next/static/chunks/app/api/composio/connect/route-982235d988e17f31.js +0 -1
  507. package/apps/web/.next/static/chunks/app/api/composio/connections/route-982235d988e17f31.js +0 -1
  508. package/apps/web/.next/static/chunks/app/api/composio/disconnect/route-982235d988e17f31.js +0 -1
  509. package/apps/web/.next/static/chunks/app/api/composio/status/route-982235d988e17f31.js +0 -1
  510. package/apps/web/.next/static/chunks/app/api/composio/tool-index/route-982235d988e17f31.js +0 -1
  511. package/apps/web/.next/static/chunks/app/api/composio/toolkits/route-982235d988e17f31.js +0 -1
  512. package/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-982235d988e17f31.js +0 -1
  513. package/apps/web/.next/static/chunks/app/api/cron/jobs/route-982235d988e17f31.js +0 -1
  514. package/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-982235d988e17f31.js +0 -1
  515. package/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-982235d988e17f31.js +0 -1
  516. package/apps/web/.next/static/chunks/app/api/feedback/route-982235d988e17f31.js +0 -1
  517. package/apps/web/.next/static/chunks/app/api/gateway/channels/route-982235d988e17f31.js +0 -1
  518. package/apps/web/.next/static/chunks/app/api/gateway/chat/route-982235d988e17f31.js +0 -1
  519. package/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-982235d988e17f31.js +0 -1
  520. package/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-982235d988e17f31.js +0 -1
  521. package/apps/web/.next/static/chunks/app/api/gateway/sessions/route-982235d988e17f31.js +0 -1
  522. package/apps/web/.next/static/chunks/app/api/integrations/[id]/toggle/route-982235d988e17f31.js +0 -1
  523. package/apps/web/.next/static/chunks/app/api/integrations/repair/route-982235d988e17f31.js +0 -1
  524. package/apps/web/.next/static/chunks/app/api/integrations/route-982235d988e17f31.js +0 -1
  525. package/apps/web/.next/static/chunks/app/api/memories/route-982235d988e17f31.js +0 -1
  526. package/apps/web/.next/static/chunks/app/api/profiles/route-982235d988e17f31.js +0 -1
  527. package/apps/web/.next/static/chunks/app/api/profiles/switch/route-982235d988e17f31.js +0 -1
  528. package/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-982235d988e17f31.js +0 -1
  529. package/apps/web/.next/static/chunks/app/api/sessions/route-982235d988e17f31.js +0 -1
  530. package/apps/web/.next/static/chunks/app/api/settings/cloud/route-982235d988e17f31.js +0 -1
  531. package/apps/web/.next/static/chunks/app/api/skills/[slug]/content/route-982235d988e17f31.js +0 -1
  532. package/apps/web/.next/static/chunks/app/api/skills/[slug]/route-982235d988e17f31.js +0 -1
  533. package/apps/web/.next/static/chunks/app/api/skills/browse/route-982235d988e17f31.js +0 -1
  534. package/apps/web/.next/static/chunks/app/api/skills/install/route-982235d988e17f31.js +0 -1
  535. package/apps/web/.next/static/chunks/app/api/skills/route-982235d988e17f31.js +0 -1
  536. package/apps/web/.next/static/chunks/app/api/terminal/port/route-982235d988e17f31.js +0 -1
  537. package/apps/web/.next/static/chunks/app/api/voice/speech/route-982235d988e17f31.js +0 -1
  538. package/apps/web/.next/static/chunks/app/api/voice/transcribe/route-982235d988e17f31.js +0 -1
  539. package/apps/web/.next/static/chunks/app/api/voice/voices/route-982235d988e17f31.js +0 -1
  540. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-982235d988e17f31.js +0 -1
  541. package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-982235d988e17f31.js +0 -1
  542. package/apps/web/.next/static/chunks/app/api/web-sessions/route-982235d988e17f31.js +0 -1
  543. package/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-982235d988e17f31.js +0 -1
  544. package/apps/web/.next/static/chunks/app/api/workspace/browse/route-982235d988e17f31.js +0 -1
  545. package/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-982235d988e17f31.js +0 -1
  546. package/apps/web/.next/static/chunks/app/api/workspace/context/route-982235d988e17f31.js +0 -1
  547. package/apps/web/.next/static/chunks/app/api/workspace/copy/route-982235d988e17f31.js +0 -1
  548. package/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-982235d988e17f31.js +0 -1
  549. package/apps/web/.next/static/chunks/app/api/workspace/db/query/route-982235d988e17f31.js +0 -1
  550. package/apps/web/.next/static/chunks/app/api/workspace/delete/route-982235d988e17f31.js +0 -1
  551. package/apps/web/.next/static/chunks/app/api/workspace/execute/route-982235d988e17f31.js +0 -1
  552. package/apps/web/.next/static/chunks/app/api/workspace/file/route-982235d988e17f31.js +0 -1
  553. package/apps/web/.next/static/chunks/app/api/workspace/init/route-982235d988e17f31.js +0 -1
  554. package/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-982235d988e17f31.js +0 -1
  555. package/apps/web/.next/static/chunks/app/api/workspace/list/route-982235d988e17f31.js +0 -1
  556. package/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-982235d988e17f31.js +0 -1
  557. package/apps/web/.next/static/chunks/app/api/workspace/move/route-982235d988e17f31.js +0 -1
  558. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-982235d988e17f31.js +0 -1
  559. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-982235d988e17f31.js +0 -1
  560. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-982235d988e17f31.js +0 -1
  561. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-982235d988e17f31.js +0 -1
  562. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-982235d988e17f31.js +0 -1
  563. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-982235d988e17f31.js +0 -1
  564. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-982235d988e17f31.js +0 -1
  565. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-982235d988e17f31.js +0 -1
  566. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-982235d988e17f31.js +0 -1
  567. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-982235d988e17f31.js +0 -1
  568. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-982235d988e17f31.js +0 -1
  569. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-982235d988e17f31.js +0 -1
  570. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-982235d988e17f31.js +0 -1
  571. package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-982235d988e17f31.js +0 -1
  572. package/apps/web/.next/static/chunks/app/api/workspace/open-file/route-982235d988e17f31.js +0 -1
  573. package/apps/web/.next/static/chunks/app/api/workspace/path-info/route-982235d988e17f31.js +0 -1
  574. package/apps/web/.next/static/chunks/app/api/workspace/query/route-982235d988e17f31.js +0 -1
  575. package/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-982235d988e17f31.js +0 -1
  576. package/apps/web/.next/static/chunks/app/api/workspace/rename/route-982235d988e17f31.js +0 -1
  577. package/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-982235d988e17f31.js +0 -1
  578. package/apps/web/.next/static/chunks/app/api/workspace/search-index/route-982235d988e17f31.js +0 -1
  579. package/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-982235d988e17f31.js +0 -1
  580. package/apps/web/.next/static/chunks/app/api/workspace/switch/route-982235d988e17f31.js +0 -1
  581. package/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-982235d988e17f31.js +0 -1
  582. package/apps/web/.next/static/chunks/app/api/workspace/tree/route-982235d988e17f31.js +0 -1
  583. package/apps/web/.next/static/chunks/app/api/workspace/upload/route-982235d988e17f31.js +0 -1
  584. package/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-982235d988e17f31.js +0 -1
  585. package/apps/web/.next/static/chunks/app/api/workspace/watch/route-982235d988e17f31.js +0 -1
  586. package/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-982235d988e17f31.js +0 -1
  587. package/apps/web/.next/static/chunks/app/page-93ec42bca0d82a2b.js +0 -1
  588. package/apps/web/.next/static/chunks/app/workspace/page-7f60d4efe8904f55.js +0 -1
  589. package/apps/web/.next/static/css/4f71a2dee93c9f97.css +0 -1
  590. package/apps/web/.next/static/hGwOuep2JUMOZ4iiPjKLY/_buildManifest.js +0 -1
  591. /package/apps/web/.next/standalone/apps/web/.next/static/{hGwOuep2JUMOZ4iiPjKLY → oj1WoDEuGOF0TNojiymK5}/_ssgManifest.js +0 -0
  592. /package/apps/web/.next/static/{hGwOuep2JUMOZ4iiPjKLY → oj1WoDEuGOF0TNojiymK5}/_ssgManifest.js +0 -0
@@ -1,11 +1,5 @@
1
- import { mkdirSync, writeFileSync, rmSync } from "node:fs";
2
- import path from "node:path";
3
- import os from "node:os";
4
- import { describe, expect, it, afterEach } from "vitest";
5
- import {
6
- formatComposioToolCheatSheetFromIndex,
7
- loadComposioToolCheatSheetMarkdown,
8
- } from "./composio-cheat-sheet.js";
1
+ import { describe, expect, it } from "vitest";
2
+ import { formatComposioToolCheatSheetFromIndex } from "./composio-cheat-sheet.js";
9
3
 
10
4
  describe("formatComposioToolCheatSheetFromIndex", () => {
11
5
  it("renders markdown with tool table and gotchas", () => {
@@ -16,6 +10,18 @@ describe("formatComposioToolCheatSheetFromIndex", () => {
16
10
  toolkit_slug: "gmail",
17
11
  toolkit_name: "Gmail",
18
12
  account_count: 2,
13
+ accounts: [
14
+ {
15
+ connected_account_id: "conn_gmail_1",
16
+ account_identity: "gmail:work",
17
+ account_identity_source: "gateway_stable_id",
18
+ identity_confidence: "high",
19
+ display_label: "Work Gmail",
20
+ account_email: "work@example.com",
21
+ related_connection_ids: [],
22
+ is_same_account_reconnect: false,
23
+ },
24
+ ],
19
25
  tools: [
20
26
  {
21
27
  name: "GMAIL_FETCH_EMAILS",
@@ -38,109 +44,11 @@ describe("formatComposioToolCheatSheetFromIndex", () => {
38
44
  expect(md).toContain("GMAIL_FETCH_EMAILS");
39
45
  expect(md).toContain("Read recent emails");
40
46
  expect(md).toContain("label_ids");
41
- expect(md).toContain("Composio MCP");
42
- });
43
- });
44
-
45
- describe("loadComposioToolCheatSheetMarkdown", () => {
46
- let tmp: string;
47
-
48
- afterEach(() => {
49
- if (tmp) {
50
- rmSync(tmp, { recursive: true, force: true });
51
- }
52
- });
53
-
54
- it("reads composio-tool-index.json from workspace dir", () => {
55
- tmp = path.join(
56
- os.tmpdir(),
57
- `dench-composio-index-${Date.now()}-${Math.random().toString(36).slice(2)}`,
58
- );
59
- mkdirSync(tmp, { recursive: true });
60
- writeFileSync(
61
- path.join(tmp, "composio-tool-index.json"),
62
- JSON.stringify({
63
- generated_at: "2025-01-02T00:00:00.000Z",
64
- connected_apps: [
65
- {
66
- toolkit_slug: "slack",
67
- toolkit_name: "Slack",
68
- account_count: 1,
69
- tools: [
70
- {
71
- name: "SLACK_SEND_MESSAGE",
72
- title: "Send",
73
- description_short: "Send a message.",
74
- required_args: ["channel", "text"],
75
- arg_hints: {},
76
- },
77
- ],
78
- recipes: {},
79
- },
80
- ],
81
- }),
82
- "utf-8",
83
- );
84
-
85
- const md = loadComposioToolCheatSheetMarkdown(tmp);
86
- expect(md).toContain("Slack (1 account connected)");
87
- expect(md).toContain("SLACK_SEND_MESSAGE");
88
- expect(md).toContain("composio_resolve_tool");
89
- });
90
-
91
- it("only claims verified MCP availability when the status file says so", () => {
92
- tmp = path.join(
93
- os.tmpdir(),
94
- `dench-composio-status-${Date.now()}-${Math.random().toString(36).slice(2)}`,
95
- );
96
- mkdirSync(tmp, { recursive: true });
97
- writeFileSync(
98
- path.join(tmp, "composio-tool-index.json"),
99
- JSON.stringify({
100
- generated_at: "2025-01-02T00:00:00.000Z",
101
- connected_apps: [
102
- {
103
- toolkit_slug: "gmail",
104
- toolkit_name: "Gmail",
105
- account_count: 1,
106
- tools: [
107
- {
108
- name: "GMAIL_FETCH_EMAILS",
109
- title: "Fetch emails",
110
- description_short: "List inbox messages.",
111
- required_args: [],
112
- arg_hints: {},
113
- default_args: { label_ids: ["INBOX"], max_results: 10 },
114
- },
115
- ],
116
- recipes: { "Read recent emails": "GMAIL_FETCH_EMAILS" },
117
- },
118
- ],
119
- }),
120
- "utf-8",
121
- );
122
- writeFileSync(
123
- path.join(tmp, "composio-mcp-status.json"),
124
- JSON.stringify({
125
- summary: {
126
- verified: false,
127
- message: "Composio MCP is configured and the gateway is reachable, but live agent visibility has not been verified yet.",
128
- },
129
- }),
130
- "utf-8",
131
- );
132
-
133
- const md = loadComposioToolCheatSheetMarkdown(tmp);
47
+ expect(md).toContain("Dench Integrations");
48
+ expect(md).not.toContain("Composio MCP");
49
+ expect(md).toContain("composio_search_tools");
50
+ expect(md).toContain("composio_call_tool");
51
+ expect(md).toContain("Work Gmail");
134
52
  expect(md).toContain("configured integration layer");
135
- expect(md).not.toContain("verified MCP tools available");
136
- });
137
-
138
- it("returns null when file is missing", () => {
139
- tmp = path.join(
140
- os.tmpdir(),
141
- `dench-composio-empty-${Date.now()}-${Math.random().toString(36).slice(2)}`,
142
- );
143
- mkdirSync(tmp, { recursive: true });
144
- expect(loadComposioToolCheatSheetMarkdown(tmp)).toBeNull();
145
53
  });
146
54
  });
@@ -1,94 +1,97 @@
1
- import { existsSync, readFileSync } from "node:fs";
2
- import path from "node:path";
3
-
4
1
  /**
5
- * Shape written by `apps/web/lib/composio-tool-index.ts` to
6
- * `<workspace>/composio-tool-index.json`. Kept in the extension package so the
7
- * agent runtime can format the cheat sheet without importing the Next app.
2
+ * Shared Composio response shapes kept in the extension package so the agent
3
+ * runtime can format human-readable guidance without importing the web app.
8
4
  */
5
+ export type ComposioManagedAccount = {
6
+ connected_account_id: string;
7
+ account_identity: string;
8
+ account_identity_source: "gateway_stable_id" | "legacy_heuristic" | "connection_id";
9
+ identity_confidence: "high" | "low" | "unknown";
10
+ display_label: string;
11
+ account_label?: string | null;
12
+ account_name?: string | null;
13
+ account_email?: string | null;
14
+ external_account_id?: string | null;
15
+ related_connection_ids: string[];
16
+ is_same_account_reconnect: boolean;
17
+ };
18
+
19
+ export type ComposioToolSummary = {
20
+ name: string;
21
+ title: string;
22
+ description_short: string;
23
+ required_args: string[];
24
+ arg_hints: Record<string, string>;
25
+ default_args?: Record<string, unknown>;
26
+ example_args?: Record<string, unknown>;
27
+ example_prompts?: string[];
28
+ input_schema?: Record<string, unknown>;
29
+ };
30
+
9
31
  export type ComposioToolIndexFile = {
10
32
  generated_at: string;
33
+ managed_tools?: string[];
11
34
  connected_apps: Array<{
12
35
  toolkit_slug: string;
13
36
  toolkit_name: string;
14
37
  account_count: number;
15
- tools: Array<{
16
- name: string;
17
- title: string;
18
- description_short: string;
19
- required_args: string[];
20
- arg_hints: Record<string, string>;
21
- default_args?: Record<string, unknown>;
22
- example_args?: Record<string, unknown>;
23
- example_prompts?: string[];
24
- input_schema?: Record<string, unknown>;
25
- }>;
38
+ accounts?: ComposioManagedAccount[];
39
+ tools: ComposioToolSummary[];
26
40
  recipes: Record<string, string>;
27
41
  }>;
28
42
  };
29
43
 
30
- type ComposioMcpStatusFile = {
31
- summary?: {
32
- verified?: boolean;
33
- message?: string;
34
- };
35
- config?: {
36
- status?: "pass" | "fail" | "unknown";
37
- };
38
- gatewayTools?: {
39
- status?: "pass" | "fail" | "unknown";
40
- };
41
- liveAgent?: {
42
- status?: "pass" | "fail" | "unknown";
43
- };
44
+ export type ComposioToolCatalogFile = {
45
+ generated_at: string;
46
+ connected_apps: Array<{
47
+ toolkit_slug: string;
48
+ toolkit_name: string;
49
+ tools: ComposioToolSummary[];
50
+ }>;
44
51
  };
45
52
 
46
- function isComposioToolIndexFile(value: unknown): value is ComposioToolIndexFile {
47
- if (!value || typeof value !== "object" || Array.isArray(value)) {
48
- return false;
49
- }
50
- const rec = value as Record<string, unknown>;
51
- if (typeof rec.generated_at !== "string" || !Array.isArray(rec.connected_apps)) {
52
- return false;
53
- }
54
- return true;
55
- }
56
-
57
53
  /**
58
- * Build markdown for the identity system prompt from a parsed index file.
54
+ * Build markdown from a parsed app/tool summary.
59
55
  */
60
56
  export function formatComposioToolCheatSheetFromIndex(index: ComposioToolIndexFile): string {
61
- return formatComposioToolCheatSheet(index, null);
57
+ return formatComposioToolCheatSheet(index);
62
58
  }
63
59
 
64
- function formatComposioToolCheatSheet(
65
- index: ComposioToolIndexFile,
66
- status: ComposioMcpStatusFile | null,
67
- ): string {
68
- const verified = status?.summary?.verified === true;
69
- const summaryMessage = typeof status?.summary?.message === "string" ? status.summary.message : null;
60
+ function formatComposioToolCheatSheet(index: ComposioToolIndexFile): string {
70
61
  const lines: string[] = [
71
- "## Connected App Tools (via Composio MCP)",
62
+ "## Connected App Tools (Dench Integrations)",
72
63
  "",
73
- verified
74
- ? "You have verified MCP tools available for these connected apps. Call them directly."
75
- : "Composio MCP is the configured integration layer for these connected apps. If the MCP tools are missing in this session, stop and report the Composio MCP repair status instead of bypassing it.",
64
+ "Dench Integrations is the configured integration layer for these connected apps. Always search first, inspect the returned full schemas and plan guidance, then execute the selected tool via `composio_call_tool`.",
76
65
  "",
77
- "- Use `composio_resolve_tool` first when the exact Composio tool name or argument shape is not already obvious.",
78
- "- Never use `gog`, shell CLIs, curl, or raw `/v1/composio/*` HTTP as a fallback for these connected apps.",
79
- "- If a Composio tool fails because of argument shape, fix the JSON arguments and retry once.",
66
+ "- Use `composio_search_tools` first for every connected-app task unless you are intentionally consuming a compatibility response from `composio_resolve_tool`.",
67
+ "- Inspect the returned full `input_schema`, `recommended_plan_steps`, `known_pitfalls`, and any pagination hints before executing anything.",
68
+ "- Use `composio_resolve_tool` only when you specifically want a single best-match compatibility result instead of ranked search results.",
69
+ "- After searching or resolving, execute the returned tool via `composio_call_tool` with the returned `search_context_token`, optional `search_session_id`, and final `arguments` object.",
70
+ "- If the returned tool supports cursor fields like `starting_after`, `next_cursor`, or `page_token`, keep paginating until complete when the user asked for the full result.",
71
+ "- Never use `gog`, shell CLIs, curl, or raw gateway HTTP as a fallback for these connected apps.",
72
+ "- If an integration tool fails because of argument shape, fix the JSON arguments and retry once.",
80
73
  "",
81
74
  ];
82
- if (summaryMessage) {
83
- lines.push(`Current verification status: ${summaryMessage}`, "");
84
- }
85
75
 
86
76
  for (const app of index.connected_apps) {
77
+ const accounts = app.accounts ?? [];
87
78
  const title =
88
79
  app.account_count > 1
89
80
  ? `### ${app.toolkit_name} (${app.account_count} accounts connected)`
90
81
  : `### ${app.toolkit_name} (1 account connected)`;
91
82
  lines.push(title, "");
83
+ if (accounts.length > 0) {
84
+ lines.push("**Connected accounts:**");
85
+ for (const account of accounts.slice(0, 5)) {
86
+ const bits = [
87
+ account.display_label,
88
+ account.account_email ? `email: ${account.account_email}` : null,
89
+ `id: \`${account.connected_account_id}\``,
90
+ ].filter(Boolean);
91
+ lines.push(`- ${bits.join(" · ")}`);
92
+ }
93
+ lines.push("");
94
+ }
92
95
  lines.push("| Intent | Tool | Key args |");
93
96
  lines.push("|--------|------|----------|");
94
97
 
@@ -147,51 +150,3 @@ function formatComposioToolCheatSheet(
147
150
 
148
151
  return lines.join("\n").trimEnd() + "\n";
149
152
  }
150
-
151
- function readComposioToolIndex(workspaceDir: string): ComposioToolIndexFile | null {
152
- const filePath = path.join(workspaceDir, "composio-tool-index.json");
153
- if (!existsSync(filePath)) {
154
- return null;
155
- }
156
- try {
157
- const raw = JSON.parse(readFileSync(filePath, "utf-8")) as unknown;
158
- return isComposioToolIndexFile(raw) ? raw : null;
159
- } catch {
160
- return null;
161
- }
162
- }
163
-
164
- export function readComposioToolIndexFile(workspaceDir: string): ComposioToolIndexFile | null {
165
- return readComposioToolIndex(workspaceDir);
166
- }
167
-
168
- function readComposioMcpStatus(workspaceDir: string): ComposioMcpStatusFile | null {
169
- const filePath = path.join(workspaceDir, "composio-mcp-status.json");
170
- if (!existsSync(filePath)) {
171
- return null;
172
- }
173
- try {
174
- const raw = JSON.parse(readFileSync(filePath, "utf-8")) as unknown;
175
- if (raw && typeof raw === "object" && !Array.isArray(raw)) {
176
- return raw as ComposioMcpStatusFile;
177
- }
178
- return null;
179
- } catch {
180
- return null;
181
- }
182
- }
183
-
184
- export function readComposioMcpStatusFile(workspaceDir: string): ComposioMcpStatusFile | null {
185
- return readComposioMcpStatus(workspaceDir);
186
- }
187
-
188
- /**
189
- * Loads and formats the cheat sheet, or returns null if no index file / invalid JSON.
190
- */
191
- export function loadComposioToolCheatSheetMarkdown(workspaceDir: string): string | null {
192
- const index = readComposioToolIndex(workspaceDir);
193
- if (!index || index.connected_apps.length === 0) {
194
- return null;
195
- }
196
- return formatComposioToolCheatSheet(index, readComposioMcpStatus(workspaceDir));
197
- }
@@ -0,0 +1,322 @@
1
+ import type {
2
+ ComposioToolCatalogFile,
3
+ ComposioToolIndexFile,
4
+ ComposioToolSummary,
5
+ } from "./composio-cheat-sheet.js";
6
+
7
+ export type ComposioToolSearchResult = {
8
+ toolkit_slug: string;
9
+ toolkit_name: string;
10
+ tool: ComposioToolSummary;
11
+ source: "featured" | "catalog" | "recipe";
12
+ recipe_intents: string[];
13
+ score: number;
14
+ why_matched: string[];
15
+ };
16
+
17
+ export type ComposioToolSearchResponse = {
18
+ results: ComposioToolSearchResult[];
19
+ top_confidence: "high" | "medium" | "low";
20
+ };
21
+
22
+ type SearchDocument = {
23
+ toolkit_slug: string;
24
+ toolkit_name: string;
25
+ tool: ComposioToolSummary;
26
+ source: "featured" | "catalog" | "recipe";
27
+ recipe_intents: string[];
28
+ weightedTokens: string[];
29
+ fieldTokens: Record<string, string[]>;
30
+ };
31
+
32
+ const BM25_K1 = 1.2;
33
+ const BM25_B = 0.75;
34
+ const FIELD_WEIGHTS: Record<string, number> = {
35
+ tool_name: 6,
36
+ title: 4,
37
+ recipe: 5,
38
+ example: 3,
39
+ app: 2,
40
+ description: 2,
41
+ required_args: 2,
42
+ arg_hints: 1,
43
+ };
44
+
45
+ function tokenize(value: string): string[] {
46
+ return value
47
+ .toLowerCase()
48
+ .split(/[^a-z0-9]+/u)
49
+ .filter((token) => token.length > 1);
50
+ }
51
+
52
+ function normalizeAppFilter(value: string | undefined): string | null {
53
+ if (typeof value !== "string") {
54
+ return null;
55
+ }
56
+ const trimmed = value.trim().toLowerCase();
57
+ return trimmed.length > 0 ? trimmed : null;
58
+ }
59
+
60
+ function repeatTokens(tokens: string[], weight: number): string[] {
61
+ if (tokens.length === 0 || weight <= 1) {
62
+ return [...tokens];
63
+ }
64
+ const out: string[] = [];
65
+ for (const token of tokens) {
66
+ for (let i = 0; i < weight; i += 1) {
67
+ out.push(token);
68
+ }
69
+ }
70
+ return out;
71
+ }
72
+
73
+ function mergeToolSummary(
74
+ catalogTool: ComposioToolSummary | undefined,
75
+ featuredTool: ComposioToolSummary | undefined,
76
+ ): { tool: ComposioToolSummary; source: "featured" | "catalog" } | null {
77
+ if (!catalogTool && !featuredTool) {
78
+ return null;
79
+ }
80
+ if (catalogTool && featuredTool) {
81
+ return {
82
+ source: "featured",
83
+ tool: {
84
+ ...catalogTool,
85
+ ...featuredTool,
86
+ required_args: featuredTool.required_args.length > 0
87
+ ? featuredTool.required_args
88
+ : catalogTool.required_args,
89
+ arg_hints: Object.keys(featuredTool.arg_hints).length > 0
90
+ ? featuredTool.arg_hints
91
+ : catalogTool.arg_hints,
92
+ default_args: featuredTool.default_args ?? catalogTool.default_args,
93
+ example_args: featuredTool.example_args ?? catalogTool.example_args,
94
+ example_prompts: featuredTool.example_prompts?.length
95
+ ? featuredTool.example_prompts
96
+ : catalogTool.example_prompts,
97
+ input_schema: featuredTool.input_schema ?? catalogTool.input_schema,
98
+ },
99
+ };
100
+ }
101
+ if (featuredTool) {
102
+ return { tool: featuredTool, source: "featured" };
103
+ }
104
+ return { tool: catalogTool as ComposioToolSummary, source: "catalog" };
105
+ }
106
+
107
+ function buildSyntheticRecipeTool(
108
+ toolkitName: string,
109
+ toolName: string,
110
+ recipeIntents: string[],
111
+ ): ComposioToolSummary {
112
+ const primaryIntent = recipeIntents[0] ?? toolName;
113
+ return {
114
+ name: toolName,
115
+ title: primaryIntent,
116
+ description_short: `Recommended ${toolkitName} tool for ${primaryIntent}.`,
117
+ required_args: [],
118
+ arg_hints: {},
119
+ example_prompts: recipeIntents,
120
+ };
121
+ }
122
+
123
+ function buildSearchDocuments(
124
+ index: ComposioToolIndexFile,
125
+ catalog: ComposioToolCatalogFile | null,
126
+ appFilter: string | null,
127
+ ): SearchDocument[] {
128
+ const catalogBySlug = new Map(
129
+ (catalog?.connected_apps ?? []).map((app) => [app.toolkit_slug.toLowerCase(), app]),
130
+ );
131
+ const docs: SearchDocument[] = [];
132
+
133
+ for (const app of index.connected_apps) {
134
+ const normalizedApp = app.toolkit_slug.toLowerCase();
135
+ if (appFilter && normalizedApp !== appFilter && app.toolkit_name.toLowerCase() !== appFilter) {
136
+ continue;
137
+ }
138
+
139
+ const featuredByName = new Map(app.tools.map((tool) => [tool.name, tool]));
140
+ const recipeIntentsByTool = new Map<string, string[]>();
141
+ for (const [intent, toolName] of Object.entries(app.recipes)) {
142
+ const bucket = recipeIntentsByTool.get(toolName);
143
+ if (bucket) {
144
+ bucket.push(intent);
145
+ } else {
146
+ recipeIntentsByTool.set(toolName, [intent]);
147
+ }
148
+ }
149
+
150
+ const catalogApp = catalogBySlug.get(normalizedApp);
151
+ const catalogByName = new Map((catalogApp?.tools ?? []).map((tool) => [tool.name, tool]));
152
+ const allToolNames = new Set([
153
+ ...featuredByName.keys(),
154
+ ...catalogByName.keys(),
155
+ ...recipeIntentsByTool.keys(),
156
+ ]);
157
+
158
+ for (const toolName of allToolNames) {
159
+ const recipeIntents = recipeIntentsByTool.get(toolName) ?? [];
160
+ const merged = mergeToolSummary(catalogByName.get(toolName), featuredByName.get(toolName));
161
+ const source = merged?.source ?? "recipe";
162
+ const tool = merged?.tool ?? buildSyntheticRecipeTool(app.toolkit_name, toolName, recipeIntents);
163
+
164
+ const fieldTokens: Record<string, string[]> = {
165
+ tool_name: tokenize(tool.name),
166
+ title: tokenize(tool.title),
167
+ recipe: tokenize(recipeIntents.join(" ")),
168
+ example: tokenize((tool.example_prompts ?? []).join(" ")),
169
+ app: tokenize(`${app.toolkit_slug} ${app.toolkit_name}`),
170
+ description: tokenize(tool.description_short),
171
+ required_args: tokenize(tool.required_args.join(" ")),
172
+ arg_hints: tokenize([
173
+ ...Object.keys(tool.arg_hints),
174
+ ...Object.values(tool.arg_hints),
175
+ ].join(" ")),
176
+ };
177
+
178
+ const weightedTokens = Object.entries(fieldTokens).flatMap(([field, tokens]) =>
179
+ repeatTokens(tokens, FIELD_WEIGHTS[field] ?? 1)
180
+ );
181
+
182
+ docs.push({
183
+ toolkit_slug: app.toolkit_slug,
184
+ toolkit_name: app.toolkit_name,
185
+ tool,
186
+ source,
187
+ recipe_intents: recipeIntents,
188
+ weightedTokens,
189
+ fieldTokens,
190
+ });
191
+ }
192
+ }
193
+
194
+ return docs;
195
+ }
196
+
197
+ function bm25Score(
198
+ queryTokens: string[],
199
+ documentTokens: string[],
200
+ avgDocLength: number,
201
+ totalDocs: number,
202
+ documentFrequency: Map<string, number>,
203
+ ): number {
204
+ if (queryTokens.length === 0 || documentTokens.length === 0 || totalDocs === 0) {
205
+ return 0;
206
+ }
207
+
208
+ const tf = new Map<string, number>();
209
+ for (const token of documentTokens) {
210
+ tf.set(token, (tf.get(token) ?? 0) + 1);
211
+ }
212
+
213
+ const docLength = documentTokens.length;
214
+ let score = 0;
215
+ for (const token of queryTokens) {
216
+ const frequency = tf.get(token) ?? 0;
217
+ if (frequency === 0) {
218
+ continue;
219
+ }
220
+ const df = documentFrequency.get(token) ?? 0;
221
+ const idf = Math.log(1 + ((totalDocs - df + 0.5) / (df + 0.5)));
222
+ const numerator = frequency * (BM25_K1 + 1);
223
+ const denominator = frequency + BM25_K1 * (1 - BM25_B + BM25_B * (docLength / avgDocLength));
224
+ score += idf * (numerator / denominator);
225
+ }
226
+
227
+ return score;
228
+ }
229
+
230
+ function matchedFields(queryTokens: string[], fieldTokens: Record<string, string[]>): string[] {
231
+ const querySet = new Set(queryTokens);
232
+ const matched = Object.entries(fieldTokens)
233
+ .filter(([, tokens]) => tokens.some((token) => querySet.has(token)))
234
+ .map(([field]) => field.replace(/_/g, " "));
235
+ return matched.length > 0 ? matched : ["catalog"];
236
+ }
237
+
238
+ function topConfidence(scores: number[]): "high" | "medium" | "low" {
239
+ const first = scores[0] ?? 0;
240
+ const second = scores[1] ?? 0;
241
+ if (first <= 0) {
242
+ return "low";
243
+ }
244
+ if (second <= 0) {
245
+ return "high";
246
+ }
247
+ const ratio = first / Math.max(second, 0.0001);
248
+ if (ratio >= 1.5) {
249
+ return "high";
250
+ }
251
+ if (ratio >= 1.15) {
252
+ return "medium";
253
+ }
254
+ return "low";
255
+ }
256
+
257
+ export function searchComposioTools(params: {
258
+ index: ComposioToolIndexFile;
259
+ catalog: ComposioToolCatalogFile | null;
260
+ query: string;
261
+ app?: string;
262
+ topK?: number;
263
+ }): ComposioToolSearchResponse {
264
+ const queryTokens = tokenize(params.query);
265
+ if (queryTokens.length === 0) {
266
+ return { results: [], top_confidence: "low" };
267
+ }
268
+
269
+ const documents = buildSearchDocuments(
270
+ params.index,
271
+ params.catalog,
272
+ normalizeAppFilter(params.app),
273
+ );
274
+ if (documents.length === 0) {
275
+ return { results: [], top_confidence: "low" };
276
+ }
277
+
278
+ const avgDocLength = documents.reduce((sum, doc) => sum + doc.weightedTokens.length, 0)
279
+ / Math.max(documents.length, 1);
280
+ const documentFrequency = new Map<string, number>();
281
+ for (const doc of documents) {
282
+ const seen = new Set(doc.weightedTokens);
283
+ for (const token of seen) {
284
+ documentFrequency.set(token, (documentFrequency.get(token) ?? 0) + 1);
285
+ }
286
+ }
287
+
288
+ const scored = documents
289
+ .map((doc) => ({
290
+ doc,
291
+ score: bm25Score(
292
+ queryTokens,
293
+ doc.weightedTokens,
294
+ avgDocLength || 1,
295
+ documents.length,
296
+ documentFrequency,
297
+ ),
298
+ }))
299
+ .filter((entry) => entry.score > 0)
300
+ .sort((left, right) => {
301
+ if (right.score !== left.score) {
302
+ return right.score - left.score;
303
+ }
304
+ return left.doc.tool.name.localeCompare(right.doc.tool.name);
305
+ });
306
+
307
+ const topK = Math.max(1, Math.min(params.topK ?? 5, 10));
308
+ const results = scored.slice(0, topK).map(({ doc, score }) => ({
309
+ toolkit_slug: doc.toolkit_slug,
310
+ toolkit_name: doc.toolkit_name,
311
+ tool: doc.tool,
312
+ source: doc.source,
313
+ recipe_intents: doc.recipe_intents,
314
+ score,
315
+ why_matched: matchedFields(queryTokens, doc.fieldTokens),
316
+ }));
317
+
318
+ return {
319
+ results,
320
+ top_confidence: topConfidence(scored.slice(0, 2).map((entry) => entry.score)),
321
+ };
322
+ }