indusagi 0.13.7 → 0.13.8

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 (446) hide show
  1. package/dist/agent.js +28713 -0
  2. package/dist/ai.js +19964 -0
  3. package/dist/capabilities.js +2730 -0
  4. package/dist/cli.js +9 -0
  5. package/dist/connectors-saas.js +3355 -0
  6. package/dist/index.js +18211 -0
  7. package/dist/interop.js +3247 -0
  8. package/dist/llmgateway.js +3343 -0
  9. package/dist/mcp.js +2448 -0
  10. package/dist/memory.js +0 -0
  11. package/dist/react-host/index.js +101 -0
  12. package/dist/react-host/ink.js +97 -0
  13. package/dist/react-host/jsx-runtime.js +95 -0
  14. package/dist/react-ink.js +3834 -0
  15. package/dist/runtime.js +4521 -0
  16. package/dist/sarvam-mcp.js +960 -0
  17. package/dist/shell-app.js +12435 -0
  18. package/dist/smithy.js +8133 -0
  19. package/dist/swarm.js +8918 -0
  20. package/dist/tracing.js +761 -0
  21. package/dist/tui.js +2213 -0
  22. package/dist/types/capabilities/backends/index.d.ts +10 -0
  23. package/dist/types/capabilities/backends/node-backends.d.ts +30 -0
  24. package/dist/types/capabilities/capabilities.test.d.ts +14 -0
  25. package/dist/types/capabilities/files/diff.d.ts +49 -0
  26. package/dist/types/capabilities/files/edit.d.ts +21 -0
  27. package/dist/types/capabilities/files/ls.d.ts +16 -0
  28. package/dist/types/capabilities/files/read-state-gate.d.ts +69 -0
  29. package/dist/types/capabilities/files/read-state-gate.test.d.ts +14 -0
  30. package/dist/types/capabilities/files/read.d.ts +15 -0
  31. package/dist/types/capabilities/files/write.d.ts +16 -0
  32. package/dist/types/capabilities/index.d.ts +29 -0
  33. package/dist/types/capabilities/kernel/backends.d.ts +119 -0
  34. package/dist/types/capabilities/kernel/context.d.ts +52 -0
  35. package/dist/types/capabilities/kernel/index.d.ts +24 -0
  36. package/dist/types/capabilities/kernel/output.d.ts +40 -0
  37. package/dist/types/capabilities/kernel/registry.d.ts +61 -0
  38. package/dist/types/capabilities/kernel/spec.d.ts +168 -0
  39. package/dist/types/capabilities/planning/todo.d.ts +62 -0
  40. package/dist/types/capabilities/registry.d.ts +44 -0
  41. package/dist/types/capabilities/search/find.d.ts +33 -0
  42. package/dist/types/capabilities/search/grep.d.ts +30 -0
  43. package/dist/types/capabilities/shell/bash.d.ts +18 -0
  44. package/dist/types/capabilities/shell/process.d.ts +33 -0
  45. package/dist/types/capabilities/web/webfetch.d.ts +25 -0
  46. package/dist/types/capabilities/web/websearch.d.ts +23 -0
  47. package/dist/types/connectors-saas/connectors-saas.test.d.ts +12 -0
  48. package/dist/types/connectors-saas/index.d.ts +16 -0
  49. package/dist/types/connectors-saas/saas/adapter/composio-backend.d.ts +60 -0
  50. package/dist/types/connectors-saas/saas/control/connect.d.ts +114 -0
  51. package/dist/types/connectors-saas/saas/control/tools.d.ts +67 -0
  52. package/dist/types/connectors-saas/saas/core/builder.d.ts +86 -0
  53. package/dist/types/connectors-saas/saas/core/cache.d.ts +53 -0
  54. package/dist/types/connectors-saas/saas/core/index.d.ts +14 -0
  55. package/dist/types/connectors-saas/saas/core/port.d.ts +157 -0
  56. package/dist/types/connectors-saas/saas/core/scope-planner.d.ts +74 -0
  57. package/dist/types/connectors-saas/saas/gateway.d.ts +133 -0
  58. package/dist/types/connectors-saas/saas/render/format.d.ts +54 -0
  59. package/dist/types/connectors-saas/saas/render/index.d.ts +19 -0
  60. package/dist/types/connectors-saas/saas/render/summarizers.d.ts +58 -0
  61. package/dist/types/connectors-sarvam/connect.d.ts +14 -0
  62. package/dist/types/connectors-sarvam/connectors-sarvam.test.d.ts +14 -0
  63. package/dist/types/connectors-sarvam/index.d.ts +14 -0
  64. package/dist/types/connectors-sarvam/toolbox.d.ts +19 -0
  65. package/dist/types/connectors-sarvam/types.d.ts +49 -0
  66. package/dist/types/connectors-zoho/connect.d.ts +22 -0
  67. package/dist/types/connectors-zoho/connectors-zoho.test.d.ts +10 -0
  68. package/dist/types/connectors-zoho/index.d.ts +13 -0
  69. package/dist/types/connectors-zoho/toolbox.d.ts +19 -0
  70. package/dist/types/connectors-zoho/types.d.ts +56 -0
  71. package/dist/types/facade/agent.d.ts +1 -0
  72. package/dist/types/facade/ai.d.ts +1 -0
  73. package/dist/types/facade/bot/actions/bash.d.ts +71 -0
  74. package/dist/types/facade/bot/actions/bash.test.d.ts +1 -0
  75. package/dist/types/facade/bot/actions/checkpoint.d.ts +49 -0
  76. package/dist/types/facade/bot/actions/checkpoint.test.d.ts +1 -0
  77. package/dist/types/facade/bot/actions/composio/accounts.d.ts +22 -0
  78. package/dist/types/facade/bot/actions/composio/client.d.ts +39 -0
  79. package/dist/types/facade/bot/actions/composio/connect.d.ts +19 -0
  80. package/dist/types/facade/bot/actions/composio/enable.d.ts +25 -0
  81. package/dist/types/facade/bot/actions/composio/execute.d.ts +26 -0
  82. package/dist/types/facade/bot/actions/composio/helpers.d.ts +16 -0
  83. package/dist/types/facade/bot/actions/composio/index.d.ts +9 -0
  84. package/dist/types/facade/bot/actions/composio/provider.d.ts +8 -0
  85. package/dist/types/facade/bot/actions/composio/toolkits.d.ts +22 -0
  86. package/dist/types/facade/bot/actions/composio/tools.d.ts +28 -0
  87. package/dist/types/facade/bot/actions/composio/types.d.ts +137 -0
  88. package/dist/types/facade/bot/actions/crew/activity-tracker.d.ts +65 -0
  89. package/dist/types/facade/bot/actions/crew/cleanup.d.ts +50 -0
  90. package/dist/types/facade/bot/actions/crew/fs-lock.d.ts +11 -0
  91. package/dist/types/facade/bot/actions/crew/index.d.ts +11 -0
  92. package/dist/types/facade/bot/actions/crew/mailbox.d.ts +20 -0
  93. package/dist/types/facade/bot/actions/crew/model-policy.d.ts +22 -0
  94. package/dist/types/facade/bot/actions/crew/names.d.ts +27 -0
  95. package/dist/types/facade/bot/actions/crew/protocol.d.ts +74 -0
  96. package/dist/types/facade/bot/actions/crew/task-store.d.ts +88 -0
  97. package/dist/types/facade/bot/actions/crew/team-attach-claim.d.ts +35 -0
  98. package/dist/types/facade/bot/actions/crew/team-config.d.ts +54 -0
  99. package/dist/types/facade/bot/actions/crew/worktree.d.ts +39 -0
  100. package/dist/types/facade/bot/actions/edit-diff.d.ts +66 -0
  101. package/dist/types/facade/bot/actions/edit-utils.d.ts +86 -0
  102. package/dist/types/facade/bot/actions/edit.d.ts +59 -0
  103. package/dist/types/facade/bot/actions/edit.test.d.ts +1 -0
  104. package/dist/types/facade/bot/actions/find.d.ts +27 -0
  105. package/dist/types/facade/bot/actions/find.test.d.ts +1 -0
  106. package/dist/types/facade/bot/actions/grep.d.ts +53 -0
  107. package/dist/types/facade/bot/actions/grep.test.d.ts +1 -0
  108. package/dist/types/facade/bot/actions/index.d.ts +316 -0
  109. package/dist/types/facade/bot/actions/kit/hook-runner.d.ts +12 -0
  110. package/dist/types/facade/bot/actions/kit/image-resize.d.ts +19 -0
  111. package/dist/types/facade/bot/actions/kit/mime.d.ts +1 -0
  112. package/dist/types/facade/bot/actions/kit/shell.d.ts +12 -0
  113. package/dist/types/facade/bot/actions/ls.d.ts +41 -0
  114. package/dist/types/facade/bot/actions/path-utils.d.ts +8 -0
  115. package/dist/types/facade/bot/actions/process-controller.d.ts +14 -0
  116. package/dist/types/facade/bot/actions/process-manager.d.ts +59 -0
  117. package/dist/types/facade/bot/actions/process-types.d.ts +73 -0
  118. package/dist/types/facade/bot/actions/process.d.ts +37 -0
  119. package/dist/types/facade/bot/actions/read-state.d.ts +83 -0
  120. package/dist/types/facade/bot/actions/read-state.test.d.ts +1 -0
  121. package/dist/types/facade/bot/actions/read.d.ts +43 -0
  122. package/dist/types/facade/bot/actions/read.test.d.ts +1 -0
  123. package/dist/types/facade/bot/actions/registry.d.ts +20 -0
  124. package/dist/types/facade/bot/actions/sandbox-backend.d.ts +99 -0
  125. package/dist/types/facade/bot/actions/sandbox-backend.test.d.ts +1 -0
  126. package/dist/types/facade/bot/actions/todo-store.d.ts +76 -0
  127. package/dist/types/facade/bot/actions/todo-types.d.ts +72 -0
  128. package/dist/types/facade/bot/actions/todo.d.ts +76 -0
  129. package/dist/types/facade/bot/actions/truncate.d.ts +78 -0
  130. package/dist/types/facade/bot/actions/webfetch.d.ts +35 -0
  131. package/dist/types/facade/bot/actions/websearch.d.ts +37 -0
  132. package/dist/types/facade/bot/actions/websearch.test.d.ts +1 -0
  133. package/dist/types/facade/bot/actions/write.d.ts +45 -0
  134. package/dist/types/facade/bot/agent-loop.d.ts +30 -0
  135. package/dist/types/facade/bot/agent-loop.test.d.ts +1 -0
  136. package/dist/types/facade/bot/agent.d.ts +140 -0
  137. package/dist/types/facade/bot/error-handler.d.ts +7 -0
  138. package/dist/types/facade/bot/event-bus.d.ts +8 -0
  139. package/dist/types/facade/bot/index.d.ts +7 -0
  140. package/dist/types/facade/bot/messages.d.ts +83 -0
  141. package/dist/types/facade/bot/permission-gate.test.d.ts +1 -0
  142. package/dist/types/facade/bot/proxy.d.ts +70 -0
  143. package/dist/types/facade/bot/session-manager.d.ts +409 -0
  144. package/dist/types/facade/bot/state-manager.d.ts +21 -0
  145. package/dist/types/facade/bot/telemetry.d.ts +6 -0
  146. package/dist/types/facade/bot/types.d.ts +267 -0
  147. package/dist/types/facade/mcp-core/client-pool.d.ts +105 -0
  148. package/dist/types/facade/mcp-core/client.d.ts +245 -0
  149. package/dist/types/facade/mcp-core/client.test.d.ts +18 -0
  150. package/dist/types/facade/mcp-core/config.d.ts +60 -0
  151. package/dist/types/facade/mcp-core/errors.d.ts +103 -0
  152. package/dist/types/facade/mcp-core/index.d.ts +59 -0
  153. package/dist/types/facade/mcp-core/oauth/flow.d.ts +72 -0
  154. package/dist/types/facade/mcp-core/oauth/index.d.ts +18 -0
  155. package/dist/types/facade/mcp-core/oauth/oauth.test.d.ts +8 -0
  156. package/dist/types/facade/mcp-core/oauth/provider.d.ts +51 -0
  157. package/dist/types/facade/mcp-core/oauth/token-store.d.ts +31 -0
  158. package/dist/types/facade/mcp-core/oauth/types.d.ts +96 -0
  159. package/dist/types/facade/mcp-core/schema-converter.d.ts +67 -0
  160. package/dist/types/facade/mcp-core/server.d.ts +110 -0
  161. package/dist/types/facade/mcp-core/tool-factory.d.ts +62 -0
  162. package/dist/types/facade/mcp-core/toolbox-bridge.d.ts +46 -0
  163. package/dist/types/facade/mcp-core/toolbox-bridge.test.d.ts +8 -0
  164. package/dist/types/facade/mcp-core/types.d.ts +298 -0
  165. package/dist/types/facade/mcp.d.ts +1 -0
  166. package/dist/types/facade/memory.d.ts +1 -0
  167. package/dist/types/facade/ml/adapters/amazon-bedrock.d.ts +32 -0
  168. package/dist/types/facade/ml/adapters/anthropic-retry.test.d.ts +1 -0
  169. package/dist/types/facade/ml/adapters/anthropic.d.ts +78 -0
  170. package/dist/types/facade/ml/adapters/azure-openai-responses.d.ts +14 -0
  171. package/dist/types/facade/ml/adapters/google-shared.d.ts +99 -0
  172. package/dist/types/facade/ml/adapters/google-vertex.d.ts +14 -0
  173. package/dist/types/facade/ml/adapters/google.d.ts +15 -0
  174. package/dist/types/facade/ml/adapters/kimi.d.ts +21 -0
  175. package/dist/types/facade/ml/adapters/mock.d.ts +9 -0
  176. package/dist/types/facade/ml/adapters/nvidia.d.ts +12 -0
  177. package/dist/types/facade/ml/adapters/openai-codex-responses.d.ts +8 -0
  178. package/dist/types/facade/ml/adapters/openai-completions.d.ts +24 -0
  179. package/dist/types/facade/ml/adapters/openai-responses-shared.d.ts +25 -0
  180. package/dist/types/facade/ml/adapters/openai-responses.d.ts +12 -0
  181. package/dist/types/facade/ml/adapters/openai-scaffold.d.ts +3 -0
  182. package/dist/types/facade/ml/adapters/register-builtins.d.ts +2 -0
  183. package/dist/types/facade/ml/adapters/simple-options.d.ts +39 -0
  184. package/dist/types/facade/ml/adapters/simple-options.test.d.ts +1 -0
  185. package/dist/types/facade/ml/adapters/transform-messages.d.ts +23 -0
  186. package/dist/types/facade/ml/api-registry.d.ts +49 -0
  187. package/dist/types/facade/ml/cli.d.ts +2 -0
  188. package/dist/types/facade/ml/env-api-keys.d.ts +19 -0
  189. package/dist/types/facade/ml/index.d.ts +27 -0
  190. package/dist/types/facade/ml/kit/auth/anthropic.d.ts +17 -0
  191. package/dist/types/facade/ml/kit/auth/github-copilot.d.ts +22 -0
  192. package/dist/types/facade/ml/kit/auth/index.d.ts +50 -0
  193. package/dist/types/facade/ml/kit/auth/kimi.d.ts +23 -0
  194. package/dist/types/facade/ml/kit/auth/oauth-page.d.ts +2 -0
  195. package/dist/types/facade/ml/kit/auth/openai-codex.d.ts +36 -0
  196. package/dist/types/facade/ml/kit/auth/pkce.d.ts +12 -0
  197. package/dist/types/facade/ml/kit/auth/types.d.ts +67 -0
  198. package/dist/types/facade/ml/kit/base-stream-handler.d.ts +30 -0
  199. package/dist/types/facade/ml/kit/event-stream.d.ts +63 -0
  200. package/dist/types/facade/ml/kit/index.d.ts +14 -0
  201. package/dist/types/facade/ml/kit/json-parse.d.ts +23 -0
  202. package/dist/types/facade/ml/kit/message-transform.d.ts +32 -0
  203. package/dist/types/facade/ml/kit/output-factory.d.ts +8 -0
  204. package/dist/types/facade/ml/kit/overflow.d.ts +9 -0
  205. package/dist/types/facade/ml/kit/provider-adapter.d.ts +56 -0
  206. package/dist/types/facade/ml/kit/provider-client-builder.d.ts +36 -0
  207. package/dist/types/facade/ml/kit/provider-consolidation.d.ts +3 -0
  208. package/dist/types/facade/ml/kit/provider-constants.d.ts +34 -0
  209. package/dist/types/facade/ml/kit/provider-errors.d.ts +52 -0
  210. package/dist/types/facade/ml/kit/sanitize-unicode.d.ts +2 -0
  211. package/dist/types/facade/ml/kit/stream-event-helper.d.ts +38 -0
  212. package/dist/types/facade/ml/kit/stream-handler-types.d.ts +46 -0
  213. package/dist/types/facade/ml/kit/streaming-state-manager.d.ts +42 -0
  214. package/dist/types/facade/ml/kit/tool-converter.d.ts +49 -0
  215. package/dist/types/facade/ml/kit/typebox-helpers.d.ts +24 -0
  216. package/dist/types/facade/ml/kit/validation.d.ts +26 -0
  217. package/dist/types/facade/ml/models.d.ts +41 -0
  218. package/dist/types/facade/ml/models.generated.d.ts +12405 -0
  219. package/dist/types/facade/ml/stream.d.ts +27 -0
  220. package/dist/types/facade/ml/types.d.ts +269 -0
  221. package/dist/types/index.d.ts +18 -0
  222. package/dist/types/interop/index.d.ts +12 -0
  223. package/dist/types/interop/interop.test.d.ts +19 -0
  224. package/dist/types/interop/protocol-bridge/bridge.d.ts +52 -0
  225. package/dist/types/interop/protocol-bridge/contract.d.ts +249 -0
  226. package/dist/types/interop/protocol-bridge/endpoint.d.ts +124 -0
  227. package/dist/types/interop/protocol-bridge/fleet.d.ts +92 -0
  228. package/dist/types/interop/protocol-bridge/host.d.ts +61 -0
  229. package/dist/types/interop/protocol-bridge/index.d.ts +16 -0
  230. package/dist/types/interop/protocol-bridge/schema.d.ts +29 -0
  231. package/dist/types/llmgateway/catalog/cards.d.ts +18 -0
  232. package/dist/types/llmgateway/catalog/cost.d.ts +15 -0
  233. package/dist/types/llmgateway/catalog/index.d.ts +7 -0
  234. package/dist/types/llmgateway/catalog/query.d.ts +40 -0
  235. package/dist/types/llmgateway/connectors/anthropic.d.ts +35 -0
  236. package/dist/types/llmgateway/connectors/azure-openai.d.ts +33 -0
  237. package/dist/types/llmgateway/connectors/bedrock.d.ts +113 -0
  238. package/dist/types/llmgateway/connectors/google-vertex.d.ts +38 -0
  239. package/dist/types/llmgateway/connectors/google.d.ts +40 -0
  240. package/dist/types/llmgateway/connectors/index.d.ts +26 -0
  241. package/dist/types/llmgateway/connectors/kimi.d.ts +28 -0
  242. package/dist/types/llmgateway/connectors/mock.d.ts +37 -0
  243. package/dist/types/llmgateway/connectors/nvidia.d.ts +27 -0
  244. package/dist/types/llmgateway/connectors/ollama.d.ts +45 -0
  245. package/dist/types/llmgateway/connectors/openai-chat.d.ts +25 -0
  246. package/dist/types/llmgateway/connectors/openai-responses.d.ts +49 -0
  247. package/dist/types/llmgateway/contract/connector.d.ts +32 -0
  248. package/dist/types/llmgateway/contract/conversation.d.ts +86 -0
  249. package/dist/types/llmgateway/contract/emission.d.ts +55 -0
  250. package/dist/types/llmgateway/contract/errors.d.ts +27 -0
  251. package/dist/types/llmgateway/contract/index.d.ts +13 -0
  252. package/dist/types/llmgateway/contract/model-card.d.ts +42 -0
  253. package/dist/types/llmgateway/contract/options.d.ts +31 -0
  254. package/dist/types/llmgateway/contract/reply.d.ts +33 -0
  255. package/dist/types/llmgateway/conversion/index.d.ts +10 -0
  256. package/dist/types/llmgateway/conversion/mappers.d.ts +65 -0
  257. package/dist/types/llmgateway/conversion/openai-compatible.d.ts +46 -0
  258. package/dist/types/llmgateway/conversion/reduce.d.ts +20 -0
  259. package/dist/types/llmgateway/credentials/oauth.d.ts +73 -0
  260. package/dist/types/llmgateway/credentials/pkce.d.ts +52 -0
  261. package/dist/types/llmgateway/credentials/secrets.d.ts +76 -0
  262. package/dist/types/llmgateway/gateway.d.ts +34 -0
  263. package/dist/types/llmgateway/gateway.test.d.ts +14 -0
  264. package/dist/types/llmgateway/index.d.ts +11 -0
  265. package/dist/types/llmgateway/streaming/channel.d.ts +24 -0
  266. package/dist/types/llmgateway/streaming/index.d.ts +10 -0
  267. package/dist/types/llmgateway/streaming/ndjson.d.ts +17 -0
  268. package/dist/types/llmgateway/streaming/sse.d.ts +31 -0
  269. package/dist/types/react-host/index.d.ts +9 -0
  270. package/dist/types/react-host/ink.d.ts +5 -0
  271. package/dist/types/react-host/jsx-runtime.d.ts +4 -0
  272. package/dist/types/react-host/loader.d.ts +3 -0
  273. package/dist/types/react-ink/components/ChangelogBlock.d.ts +8 -0
  274. package/dist/types/react-ink/components/DisplayBlockView.d.ts +8 -0
  275. package/dist/types/react-ink/components/Footer.d.ts +11 -0
  276. package/dist/types/react-ink/components/MessageList.d.ts +14 -0
  277. package/dist/types/react-ink/components/MessageRow.d.ts +13 -0
  278. package/dist/types/react-ink/components/StatusLine.d.ts +18 -0
  279. package/dist/types/react-ink/components/TaskPanel.d.ts +11 -0
  280. package/dist/types/react-ink/components/ToolEventBlock.d.ts +48 -0
  281. package/dist/types/react-ink/components/ToolEventBlock.test.d.ts +1 -0
  282. package/dist/types/react-ink/components/dialogs/DialogFrame.d.ts +8 -0
  283. package/dist/types/react-ink/components/dialogs/LoginDialog.d.ts +14 -0
  284. package/dist/types/react-ink/components/dialogs/ModelDialog.d.ts +9 -0
  285. package/dist/types/react-ink/components/dialogs/OAuthDialog.d.ts +9 -0
  286. package/dist/types/react-ink/components/dialogs/ScopedModelsDialog.d.ts +9 -0
  287. package/dist/types/react-ink/components/dialogs/SelectableDialog.d.ts +22 -0
  288. package/dist/types/react-ink/components/dialogs/SessionDialog.d.ts +13 -0
  289. package/dist/types/react-ink/components/dialogs/SettingsDialog.d.ts +14 -0
  290. package/dist/types/react-ink/components/dialogs/StartupSessionPicker.d.ts +9 -0
  291. package/dist/types/react-ink/components/dialogs/ThemeDialog.d.ts +26 -0
  292. package/dist/types/react-ink/components/dialogs/TreeDialog.d.ts +8 -0
  293. package/dist/types/react-ink/components/dialogs/UserMessageDialog.d.ts +8 -0
  294. package/dist/types/react-ink/components/messages/AssistantMessage.d.ts +12 -0
  295. package/dist/types/react-ink/components/messages/BashMessage.d.ts +8 -0
  296. package/dist/types/react-ink/components/messages/BranchSummaryMessage.d.ts +8 -0
  297. package/dist/types/react-ink/components/messages/CompactionMessage.d.ts +8 -0
  298. package/dist/types/react-ink/components/messages/CustomMessage.d.ts +9 -0
  299. package/dist/types/react-ink/components/messages/SkillInvocationMessage.d.ts +7 -0
  300. package/dist/types/react-ink/components/messages/ToolCallMessage.d.ts +8 -0
  301. package/dist/types/react-ink/components/messages/ToolResultBlock.d.ts +12 -0
  302. package/dist/types/react-ink/components/messages/UserMessage.d.ts +9 -0
  303. package/dist/types/react-ink/diff/Diff.d.ts +22 -0
  304. package/dist/types/react-ink/diff/diff.test.d.ts +1 -0
  305. package/dist/types/react-ink/diff/structured.d.ts +41 -0
  306. package/dist/types/react-ink/diff/word-diff.d.ts +27 -0
  307. package/dist/types/react-ink/index.d.ts +42 -0
  308. package/dist/types/react-ink/markdown/Markdown.d.ts +23 -0
  309. package/dist/types/react-ink/markdown/MarkdownTable.d.ts +19 -0
  310. package/dist/types/react-ink/markdown/StreamingMarkdown.d.ts +34 -0
  311. package/dist/types/react-ink/markdown/format-token.d.ts +39 -0
  312. package/dist/types/react-ink/markdown/highlight.d.ts +31 -0
  313. package/dist/types/react-ink/theme-adapter.d.ts +66 -0
  314. package/dist/types/react-ink/types.d.ts +133 -0
  315. package/dist/types/react-ink/utils/message-groups.d.ts +25 -0
  316. package/dist/types/react-ink/utils/selection-dialog.d.ts +2 -0
  317. package/dist/types/react-ink/utils/session-browser.d.ts +27 -0
  318. package/dist/types/react-ink/utils/tool-display.d.ts +37 -0
  319. package/dist/types/runtime/cadence/cadence.test.d.ts +6 -0
  320. package/dist/types/runtime/cadence/fold.d.ts +48 -0
  321. package/dist/types/runtime/cadence/index.d.ts +12 -0
  322. package/dist/types/runtime/cadence/reducer.d.ts +44 -0
  323. package/dist/types/runtime/conductor/agent.d.ts +71 -0
  324. package/dist/types/runtime/conductor/index.d.ts +11 -0
  325. package/dist/types/runtime/contract/config.d.ts +44 -0
  326. package/dist/types/runtime/contract/effect.d.ts +41 -0
  327. package/dist/types/runtime/contract/errors.d.ts +22 -0
  328. package/dist/types/runtime/contract/events.d.ts +63 -0
  329. package/dist/types/runtime/contract/index.d.ts +18 -0
  330. package/dist/types/runtime/contract/run-state.d.ts +57 -0
  331. package/dist/types/runtime/contract/session.d.ts +42 -0
  332. package/dist/types/runtime/contract/signal.d.ts +49 -0
  333. package/dist/types/runtime/contract/tools.d.ts +45 -0
  334. package/dist/types/runtime/dispatch/index.d.ts +9 -0
  335. package/dist/types/runtime/dispatch/scheduler.d.ts +53 -0
  336. package/dist/types/runtime/index.d.ts +22 -0
  337. package/dist/types/runtime/ledger/accumulator.d.ts +44 -0
  338. package/dist/types/runtime/ledger/bus.d.ts +50 -0
  339. package/dist/types/runtime/ledger/index.d.ts +11 -0
  340. package/dist/types/runtime/memory/compactor.d.ts +56 -0
  341. package/dist/types/runtime/memory/estimate.d.ts +21 -0
  342. package/dist/types/runtime/memory/index.d.ts +8 -0
  343. package/dist/types/runtime/runtime.test.d.ts +15 -0
  344. package/dist/types/runtime/store/dag.d.ts +72 -0
  345. package/dist/types/runtime/store/hash.d.ts +18 -0
  346. package/dist/types/runtime/store/index.d.ts +12 -0
  347. package/dist/types/runtime/store/persist.d.ts +49 -0
  348. package/dist/types/runtime/turn/driver.d.ts +32 -0
  349. package/dist/types/runtime/turn/index.d.ts +8 -0
  350. package/dist/types/runtime/wire/index.d.ts +10 -0
  351. package/dist/types/runtime/wire/projectors.d.ts +53 -0
  352. package/dist/types/shell-app/auth-cli/index.d.ts +9 -0
  353. package/dist/types/shell-app/auth-cli/oauth-cli.d.ts +73 -0
  354. package/dist/types/shell-app/boot/context.d.ts +108 -0
  355. package/dist/types/shell-app/boot/index.d.ts +13 -0
  356. package/dist/types/shell-app/boot/pipeline.d.ts +66 -0
  357. package/dist/types/shell-app/boot/stages.d.ts +77 -0
  358. package/dist/types/shell-app/cli.d.ts +75 -0
  359. package/dist/types/shell-app/config/index.d.ts +11 -0
  360. package/dist/types/shell-app/config/locator.d.ts +85 -0
  361. package/dist/types/shell-app/config/settings.d.ts +91 -0
  362. package/dist/types/shell-app/index.d.ts +26 -0
  363. package/dist/types/shell-app/invocation/flags.d.ts +89 -0
  364. package/dist/types/shell-app/invocation/parse.d.ts +89 -0
  365. package/dist/types/shell-app/locate/brand.d.ts +71 -0
  366. package/dist/types/shell-app/locate/index.d.ts +12 -0
  367. package/dist/types/shell-app/locate/locator.d.ts +122 -0
  368. package/dist/types/shell-app/runners/contract.d.ts +116 -0
  369. package/dist/types/shell-app/runners/index.d.ts +15 -0
  370. package/dist/types/shell-app/runners/one-shot.d.ts +21 -0
  371. package/dist/types/shell-app/runners/registry.d.ts +34 -0
  372. package/dist/types/shell-app/runners/repl.d.ts +51 -0
  373. package/dist/types/shell-app/runners/wire.d.ts +34 -0
  374. package/dist/types/shell-app/shell-app.test.d.ts +14 -0
  375. package/dist/types/shell-app/upgrade/index.d.ts +9 -0
  376. package/dist/types/shell-app/upgrade/upgrades.d.ts +62 -0
  377. package/dist/types/smithy/config/flag-reader.d.ts +128 -0
  378. package/dist/types/smithy/config/index.d.ts +9 -0
  379. package/dist/types/smithy/forge.d.ts +135 -0
  380. package/dist/types/smithy/index.d.ts +36 -0
  381. package/dist/types/smithy/knowledge/index.d.ts +10 -0
  382. package/dist/types/smithy/knowledge/loader.d.ts +64 -0
  383. package/dist/types/smithy/persona/blueprint.d.ts +75 -0
  384. package/dist/types/smithy/persona/define-agent.d.ts +51 -0
  385. package/dist/types/smithy/persona/index.d.ts +14 -0
  386. package/dist/types/smithy/persona/profiles.d.ts +44 -0
  387. package/dist/types/smithy/runtime/index.d.ts +9 -0
  388. package/dist/types/smithy/runtime/tool-ledger.d.ts +130 -0
  389. package/dist/types/smithy/smithy.test.d.ts +20 -0
  390. package/dist/types/smithy/ui/index.d.ts +11 -0
  391. package/dist/types/smithy/ui/transcript.d.ts +183 -0
  392. package/dist/types/swarm/coordinator.d.ts +192 -0
  393. package/dist/types/swarm/index.d.ts +33 -0
  394. package/dist/types/swarm/isolation/index.d.ts +14 -0
  395. package/dist/types/swarm/isolation/runner.d.ts +61 -0
  396. package/dist/types/swarm/isolation/worktree.d.ts +142 -0
  397. package/dist/types/swarm/kernel/faults.d.ts +52 -0
  398. package/dist/types/swarm/kernel/ids.d.ts +25 -0
  399. package/dist/types/swarm/kernel/index.d.ts +26 -0
  400. package/dist/types/swarm/kernel/json-cell.d.ts +113 -0
  401. package/dist/types/swarm/kernel/jsonl-log.d.ts +81 -0
  402. package/dist/types/swarm/postbox/channel.d.ts +88 -0
  403. package/dist/types/swarm/postbox/codecs.d.ts +253 -0
  404. package/dist/types/swarm/postbox/index.d.ts +16 -0
  405. package/dist/types/swarm/roster/index.d.ts +16 -0
  406. package/dist/types/swarm/roster/manifest.d.ts +185 -0
  407. package/dist/types/swarm/swarm.test.d.ts +24 -0
  408. package/dist/types/swarm/telemetry/activity.d.ts +143 -0
  409. package/dist/types/swarm/workboard/board.d.ts +174 -0
  410. package/dist/types/swarm/workboard/dep-graph.d.ts +77 -0
  411. package/dist/types/swarm/workboard/index.d.ts +12 -0
  412. package/dist/types/tracing/adapter/index.d.ts +12 -0
  413. package/dist/types/tracing/adapter/runtime-trace.d.ts +54 -0
  414. package/dist/types/tracing/channel/index.d.ts +9 -0
  415. package/dist/types/tracing/channel/signal.d.ts +93 -0
  416. package/dist/types/tracing/index.d.ts +25 -0
  417. package/dist/types/tracing/recorder/index.d.ts +12 -0
  418. package/dist/types/tracing/recorder/recorder.d.ts +75 -0
  419. package/dist/types/tracing/recorder/sampling.d.ts +55 -0
  420. package/dist/types/tracing/redaction/index.d.ts +8 -0
  421. package/dist/types/tracing/redaction/secret-scrubber.d.ts +95 -0
  422. package/dist/types/tracing/registry/hub.d.ts +57 -0
  423. package/dist/types/tracing/registry/index.d.ts +7 -0
  424. package/dist/types/tracing/signal/handle.d.ts +73 -0
  425. package/dist/types/tracing/signal/index.d.ts +12 -0
  426. package/dist/types/tracing/signal/segment.d.ts +124 -0
  427. package/dist/types/tracing/sinks/base.d.ts +51 -0
  428. package/dist/types/tracing/sinks/console.d.ts +44 -0
  429. package/dist/types/tracing/sinks/file.d.ts +47 -0
  430. package/dist/types/tracing/sinks/index.d.ts +16 -0
  431. package/dist/types/tracing/sinks/stream.d.ts +46 -0
  432. package/dist/types/tracing/tracing.test.d.ts +7 -0
  433. package/dist/types/ui/autocomplete.d.ts +59 -0
  434. package/dist/types/ui/contracts.d.ts +38 -0
  435. package/dist/types/ui/editor-component.d.ts +100 -0
  436. package/dist/types/ui/fuzzy.d.ts +29 -0
  437. package/dist/types/ui/index.d.ts +8 -0
  438. package/dist/types/ui/keybindings.d.ts +62 -0
  439. package/dist/types/ui/keys.d.ts +171 -0
  440. package/dist/types/ui/theme-types.d.ts +36 -0
  441. package/dist/types/ui/utils.d.ts +101 -0
  442. package/dist/types/ui-bridge/InteractiveApp.d.ts +38 -0
  443. package/dist/types/ui-bridge/adapter.d.ts +90 -0
  444. package/dist/types/ui-bridge/index.d.ts +37 -0
  445. package/dist/zoho.js +1451 -0
  446. package/package.json +48 -48
@@ -0,0 +1,103 @@
1
+ /**
2
+ * MCP Error Types
3
+ *
4
+ * Reference: structured MCP error handling patterns.
5
+ */
6
+ /**
7
+ * Error codes for MCP operations.
8
+ */
9
+ export declare enum MCPErrorCode {
10
+ /** Failed to connect to MCP server */
11
+ CONNECTION_FAILED = "CONNECTION_FAILED",
12
+ /** Request timed out */
13
+ TIMEOUT = "TIMEOUT",
14
+ /** Tool not found on server */
15
+ TOOL_NOT_FOUND = "TOOL_NOT_FOUND",
16
+ /** Invalid parameters for tool call */
17
+ INVALID_PARAMETERS = "INVALID_PARAMETERS",
18
+ /** Server returned an error */
19
+ SERVER_ERROR = "SERVER_ERROR",
20
+ /** Transport layer error */
21
+ TRANSPORT_ERROR = "TRANSPORT_ERROR",
22
+ /** Not connected to server */
23
+ NOT_CONNECTED = "NOT_CONNECTED",
24
+ /** Protocol error */
25
+ PROTOCOL_ERROR = "PROTOCOL_ERROR",
26
+ /** Configuration error */
27
+ CONFIG_ERROR = "CONFIG_ERROR",
28
+ /** Schema conversion error */
29
+ SCHEMA_CONVERSION_ERROR = "SCHEMA_CONVERSION_ERROR",
30
+ /** Resource not found */
31
+ RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND",
32
+ /** Prompt not found */
33
+ PROMPT_NOT_FOUND = "PROMPT_NOT_FOUND",
34
+ /** Session error (requires reconnection) */
35
+ SESSION_ERROR = "SESSION_ERROR"
36
+ }
37
+ /**
38
+ * Error class for MCP operations.
39
+ * Provides structured error information with error codes and details.
40
+ */
41
+ export declare class MCPError extends Error {
42
+ /** Error code */
43
+ readonly code: MCPErrorCode;
44
+ /** Additional error details */
45
+ readonly details?: unknown;
46
+ /** Server name where error occurred */
47
+ readonly serverName?: string;
48
+ /** Tool name if error occurred during tool execution */
49
+ readonly toolName?: string;
50
+ constructor(message: string, code: MCPErrorCode, details?: unknown, options?: {
51
+ serverName?: string;
52
+ toolName?: string;
53
+ cause?: Error;
54
+ });
55
+ /**
56
+ * Convert error to JSON for logging/serialization.
57
+ */
58
+ toJSON(): Record<string, unknown>;
59
+ /**
60
+ * Create a string representation of the error.
61
+ */
62
+ toString(): string;
63
+ }
64
+ /**
65
+ * Type guard to check if an error is an MCPError.
66
+ */
67
+ export declare function isMCPError(error: unknown): error is MCPError;
68
+ /**
69
+ * Check if an error indicates a session problem requiring reconnection.
70
+ */
71
+ export declare function isSessionError(error: unknown): boolean;
72
+ /**
73
+ * Create a connection failed error.
74
+ */
75
+ export declare function createConnectionError(serverName: string, cause?: Error): MCPError;
76
+ /**
77
+ * Create a timeout error.
78
+ */
79
+ export declare function createTimeoutError(operation: string, serverName?: string): MCPError;
80
+ /**
81
+ * Create a tool not found error.
82
+ */
83
+ export declare function createToolNotFoundError(toolName: string, serverName?: string): MCPError;
84
+ /**
85
+ * Create an invalid parameters error.
86
+ */
87
+ export declare function createInvalidParametersError(toolName: string, details: unknown, serverName?: string): MCPError;
88
+ /**
89
+ * Create a server error.
90
+ */
91
+ export declare function createServerError(message: string, serverName?: string, details?: unknown): MCPError;
92
+ /**
93
+ * Create a not connected error.
94
+ */
95
+ export declare function createNotConnectedError(serverName?: string): MCPError;
96
+ /**
97
+ * Create a config error.
98
+ */
99
+ export declare function createConfigError(message: string, details?: unknown): MCPError;
100
+ /**
101
+ * Create a schema conversion error.
102
+ */
103
+ export declare function createSchemaConversionError(toolName: string, details: unknown, serverName?: string): MCPError;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * MCP Module - Public Exports
3
+ *
4
+ * This module provides Model Context Protocol (MCP) support for new_indusvx.
5
+ * It allows connecting to MCP servers and using their tools as AgentTools.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { MCPClient, MCPClientPool, loadMCPConfig } from "new_indusvx/mcp";
10
+ * import { ToolRegistry } from "new_indusvx/agent";
11
+ *
12
+ * // Load config from file
13
+ * const configs = loadMCPConfig(process.cwd());
14
+ *
15
+ * // Create a client pool
16
+ * const pool = new MCPClientPool({ servers: configs });
17
+ * await pool.connectAll();
18
+ *
19
+ * // Register tools
20
+ * const registry = new ToolRegistry();
21
+ * for (const client of pool.getAllClients()) {
22
+ * const tools = await client.listTools();
23
+ * await registerMCPToolsInRegistry(registry, client, tools);
24
+ * }
25
+ * ```
26
+ */
27
+ import { MCPClientPool } from "./client-pool.js";
28
+ export { MCPClient, type MCPClientOptions } from "./client.js";
29
+ export { MCPClientPool, type MCPClientPoolOptions, type MCPServerStatus } from "./client-pool.js";
30
+ export { mcpClientToToolBox } from "./toolbox-bridge.js";
31
+ export type { McpToToolBoxOptions } from "./toolbox-bridge.js";
32
+ export * as oauth from "./oauth/index.js";
33
+ export type { McpOAuthClientProvider } from "./oauth/index.js";
34
+ export { MCPServer, createMCPServer, type MCPServerOptions } from "./server.js";
35
+ export { createMCPAgentToolFactory, registerMCPToolsInRegistry, createMCPToolsMap, createMCPToolsRecord, type MCPToolClient, } from "./tool-factory.js";
36
+ export { jsonSchemaToTypeBox, applyPassthrough, convertMCPInputSchema, convertMCPOutputSchema, } from "./schema-converter.js";
37
+ export { loadMCPConfig, getUserConfigPath, getProjectConfigPath, ensureUserConfigDir, ensureProjectConfigDir, saveConfig, saveUserConfig, saveProjectConfig, createDefaultConfig, EXAMPLE_CONFIG, } from "./config.js";
38
+ export { MCPError, MCPErrorCode, isMCPError, isSessionError, createConnectionError, createTimeoutError, createToolNotFoundError, createInvalidParametersError, createServerError, createNotConnectedError, createConfigError, createSchemaConversionError, } from "./errors.js";
39
+ export type { StdioServerConfig, HttpServerConfig, MCPServerConfig, MCPConnectionOptions, MCPToolDefinition, MCPResource, MCPPrompt, MCPInitializeResult, MCPClientState, MCPToolCallRequest, MCPContentBlock, MCPToolCallResult, MCPServerConfigEntry, MCPConfigFile, MCPLoggingLevel, MCPLogMessage, MCPLogHandler, MCPProgressNotification, MCPProgressHandler, MCPElicitRequest, MCPElicitResult, MCPElicitationHandler, MCPRoot, BaseServerOptions, } from "./types.js";
40
+ /**
41
+ * Convenience function: Initialize MCP and register tools.
42
+ *
43
+ * This is the simplest way to add MCP support to an agent.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * import { initializeMCP } from "new_indusvx/mcp";
48
+ * import { ToolRegistry, Agent } from "new_indusvx/agent";
49
+ *
50
+ * const registry = new ToolRegistry();
51
+ * const { pool, toolCount } = await initializeMCP(registry, process.cwd());
52
+ *
53
+ * console.log(`Connected to ${pool.getAllClients().length} servers with ${toolCount} tools`);
54
+ * ```
55
+ */
56
+ export declare function initializeMCP(registry: import("../bot/actions/registry.js").ToolRegistry, cwd?: string): Promise<{
57
+ pool: MCPClientPool;
58
+ toolCount: number;
59
+ }>;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Local-callback server for MCP OAuth.
3
+ *
4
+ * The MCP SDK OAuth flow for CLIs is:
5
+ * 1. Pre-bind a 127.0.0.1 callback server → known `redirect_uri`
6
+ * 2. Pass that URL as `OAuthClientProvider.redirectUrl`
7
+ * 3. On 401 the SDK opens the browser via `redirectToAuthorization`
8
+ * 4. SDK returns REDIRECT → transport throws UnauthorizedError
9
+ * 5. Caller waits for the browser hit, then `transport.finishAuth(code)`
10
+ * 6. Reconnect
11
+ *
12
+ * This module owns steps 1 and 5's wait half. Browser open lives in
13
+ * {@link openBrowser}; the provider and MCPClient wire the rest.
14
+ */
15
+ /**
16
+ * A pre-bound OAuth callback listener.
17
+ *
18
+ * Bind once before the MCP connect attempt so `redirect_uri` in the authorize
19
+ * request matches a real listening port. Then call {@link OAuthCallbackServer.waitForCode}
20
+ * after the SDK throws UnauthorizedError.
21
+ */
22
+ export interface OAuthCallbackServer {
23
+ /** Absolute redirect URI, e.g. `http://127.0.0.1:54321/callback`. */
24
+ readonly redirectUri: string;
25
+ /** Bound port. */
26
+ readonly port: number;
27
+ /**
28
+ * Wait for the browser to hit the callback with `?code=…`.
29
+ * If `expectedState` is set, a mismatched `state` rejects.
30
+ */
31
+ waitForCode(expectedState?: string): Promise<string>;
32
+ /** Tear down the listener. Idempotent. */
33
+ close(): void;
34
+ }
35
+ /**
36
+ * Bind a one-shot OAuth callback server on 127.0.0.1 (random free port).
37
+ *
38
+ * Important: the 5‑minute wait timer starts only when {@link OAuthCallbackServer.waitForCode}
39
+ * is called (i.e. when the SDK actually needs browser OAuth). If tokens are already
40
+ * on disk and connect succeeds without OAuth, we must NOT arm a timer — otherwise a
41
+ * later orphan rejection crashes the process with:
42
+ * "oauth-callback: timed out after … waiting for browser login"
43
+ */
44
+ export declare function startOAuthCallbackServer(options?: {
45
+ timeoutMs?: number;
46
+ logger?: {
47
+ debug(msg: string): void;
48
+ warn(msg: string): void;
49
+ };
50
+ }): Promise<OAuthCallbackServer>;
51
+ /**
52
+ * Back-compat helper used by older call sites: bind + wait in one shot.
53
+ * Prefer {@link startOAuthCallbackServer} so `redirect_uri` is known before authorize.
54
+ */
55
+ export declare function waitForAuthorizationCode(expectedState: string, options?: {
56
+ timeoutMs?: number;
57
+ logger?: {
58
+ debug(msg: string): void;
59
+ warn(msg: string): void;
60
+ };
61
+ }): Promise<{
62
+ code: string;
63
+ redirectUri: string;
64
+ port: number;
65
+ close(): void;
66
+ }>;
67
+ /**
68
+ * Open the user's browser to the auth URL. Falls back silently if the runtime
69
+ * has no GUI (CI, headless containers). The caller should always log the URL
70
+ * too so the user can open it manually.
71
+ */
72
+ export declare function openBrowser(url: string): Promise<boolean>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Public barrel for the MCP OAuth submodule.
3
+ *
4
+ * The MCP OAuth flow is large (RFC 9728 discovery, RFC 7636 PKCE, RFC 7591
5
+ * dynamic registration, plus a browser redirect handler), but the
6
+ * indus-rebuild package only contributes the pieces the official
7
+ * `@modelcontextprotocol/sdk` cannot provide itself: a persistent token store
8
+ * and a local-callback HTTP server. The orchestrator (`auth()`) and the
9
+ * PKCE / refresh primitives all come from the SDK — re-export them so a
10
+ * power user can call them directly without reaching into the SDK.
11
+ */
12
+ export { createMcpOAuthProvider, type McpOAuthClientProvider, } from "./provider.js";
13
+ export type { McpClientInfo, McpOAuthConfig, McpOAuthState, McpTokenSet } from "./types.js";
14
+ export { readMcpOAuthState, writeMcpOAuthState, clearMcpOAuthState, resolveCredentialsDir, credentialsPath, } from "./token-store.js";
15
+ export { waitForAuthorizationCode, startOAuthCallbackServer, openBrowser, } from "./flow.js";
16
+ export type { OAuthCallbackServer } from "./flow.js";
17
+ export { auth, discoverOAuthServerInfo, startAuthorization, exchangeAuthorization, refreshAuthorization, registerClient, extractWWWAuthenticateParams, } from "@modelcontextprotocol/sdk/client/auth.js";
18
+ export type { OAuthTokens, OAuthClientMetadata, OAuthClientInformationMixed } from "@modelcontextprotocol/sdk/shared/auth.js";
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tests for the MCP OAuth submodule.
3
+ *
4
+ * The tests focus on what *we* add (token-store persistence, provider plumbing,
5
+ * URL parsing) rather than re-validating the SDK. Every test uses a temp dir
6
+ * and never reads or writes the real `~/.config/indusagi/credentials/mcp/`.
7
+ */
8
+ export {};
@@ -0,0 +1,51 @@
1
+ /**
2
+ * An `OAuthClientProvider` implementation that persists every state transition
3
+ * to disk and coordinates a local callback server for the browser redirect.
4
+ *
5
+ * Matches the official SDK CLI pattern (`simpleOAuthClient`):
6
+ * - `redirectToAuthorization` only opens the browser (does NOT wait)
7
+ * - the MCP transport throws `UnauthorizedError` after REDIRECT
8
+ * - the caller awaits {@link McpOAuthClientProvider.waitForAuthorizationCode}
9
+ * - then calls `transport.finishAuth(code)` and reconnects
10
+ *
11
+ * The callback server is pre-bound at provider creation so `redirect_uri` is a
12
+ * real `http://127.0.0.1:<port>/callback` before the authorize request is sent.
13
+ */
14
+ import type { OAuthClientInformationMixed, OAuthClientMetadata, OAuthTokens } from "@modelcontextprotocol/sdk/shared/auth.js";
15
+ import type { McpOAuthConfig } from "./types.js";
16
+ /**
17
+ * The provider object returned by {@link createMcpOAuthProvider}.
18
+ *
19
+ * Implements every required method of the SDK's `OAuthClientProvider`.
20
+ */
21
+ export interface McpOAuthClientProvider {
22
+ readonly id: string;
23
+ readonly credentialsDir: string;
24
+ /** Real callback URL (pre-bound). */
25
+ readonly redirectUrl: string;
26
+ readonly clientMetadata: OAuthClientMetadata;
27
+ state(): string;
28
+ clientInformation(): OAuthClientInformationMixed | undefined;
29
+ saveClientInformation(client: OAuthClientInformationMixed): void;
30
+ tokens(): OAuthTokens | undefined;
31
+ saveTokens(tokens: OAuthTokens): void;
32
+ redirectToAuthorization(authorizationUrl: URL): Promise<void>;
33
+ saveCodeVerifier(codeVerifier: string): void;
34
+ codeVerifier(): string;
35
+ invalidateCredentials(scope: "all" | "client" | "tokens" | "verifier" | "discovery"): void;
36
+ /**
37
+ * Wait for the browser OAuth round to complete after UnauthorizedError.
38
+ * Returns the authorization code for `transport.finishAuth(code)`.
39
+ */
40
+ waitForAuthorizationCode(): Promise<string>;
41
+ /** Tear down the local callback listener. Call after connect succeeds or fails. */
42
+ dispose(): void;
43
+ /** Last authorization URL (for logging / manual open). */
44
+ lastAuthorizationUrl(): string | undefined;
45
+ }
46
+ /**
47
+ * Build a persistent `OAuthClientProvider` for one MCP server.
48
+ *
49
+ * Always async: pre-binds the callback port so `redirectUrl` is real.
50
+ */
51
+ export declare function createMcpOAuthProvider(config: McpOAuthConfig): Promise<McpOAuthClientProvider>;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Persistent token store for MCP OAuth state.
3
+ *
4
+ * One JSON file per server id under `<credentialsDir>/<id>.json`. On POSIX we
5
+ * create the file with mode 0600 so only the owning user can read tokens; on
6
+ * other platforms we fall back to the umask default. Tokens and PKCE verifiers
7
+ * are short-lived material that must never leak to a multi-user host.
8
+ *
9
+ * The store is deliberately synchronous — every method is small and the caller
10
+ * is already in an async context, so wrapping in fs.promises would just add
11
+ * microtask overhead for no benefit.
12
+ */
13
+ import type { McpOAuthState } from "./types.js";
14
+ /** Resolve the credentials directory, honoring the override when supplied. */
15
+ export declare function resolveCredentialsDir(override?: string): string;
16
+ /** File path for a given server id. */
17
+ export declare function credentialsPath(credentialsDir: string, id: string): string;
18
+ /**
19
+ * Read the persisted state for `id`, or `undefined` if nothing was stored yet.
20
+ * Returns `undefined` rather than throwing on missing-file so callers can
21
+ * treat the cold start as "needs authorization".
22
+ */
23
+ export declare function readMcpOAuthState(credentialsDir: string, id: string): McpOAuthState | undefined;
24
+ /**
25
+ * Write state atomically: temp file in the same directory + rename, so a
26
+ * crash mid-write cannot leave a half-formed token file. Creates the parent
27
+ * directory if needed.
28
+ */
29
+ export declare function writeMcpOAuthState(credentialsDir: string, state: McpOAuthState): void;
30
+ /** Remove the state file. Idempotent. */
31
+ export declare function clearMcpOAuthState(credentialsDir: string, id: string): void;
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Types for the MCP OAuth submodule.
3
+ *
4
+ * The MCP spec delegates OAuth to the official SDK (RFC 9728 Protected Resource
5
+ * Metadata discovery, RFC 7636 PKCE, RFC 7591 Dynamic Client Registration).
6
+ * This submodule supplies only the persistent state and the local-redirect
7
+ * capture the SDK cannot do on its own — the rest of the flow (PKCE challenge
8
+ * generation, discovery, token exchange, refresh) is delegated to
9
+ * `@modelcontextprotocol/sdk/client/auth.js`.
10
+ */
11
+ /**
12
+ * The persistent token set we keep on disk across agent invocations.
13
+ *
14
+ * Aligned with the SDK's `OAuthTokens` shape so we can hand it straight back
15
+ * to the SDK without translation. `client_id` / `client_secret` come from
16
+ * RFC 7591 dynamic registration when the server supports it.
17
+ */
18
+ export interface McpTokenSet {
19
+ /** OAuth access token; sent as `Authorization: Bearer <accessToken>`. */
20
+ readonly access_token: string;
21
+ /** Long-lived refresh token; used to mint new access tokens without a browser. */
22
+ readonly refresh_token?: string;
23
+ /** Optional scope string echoed back from the auth server. */
24
+ readonly scope?: string;
25
+ /** Token type; "Bearer" by default. */
26
+ readonly token_type?: string;
27
+ /** Absolute epoch-ms deadline derived from the server's `expires_in`. */
28
+ readonly expires_at?: number;
29
+ }
30
+ /**
31
+ * RFC 7591 client information persisted after dynamic registration. Many MCP
32
+ * servers do not require pre-registration, but when they do we need to reuse
33
+ * the issued client_id on every subsequent connection.
34
+ */
35
+ export interface McpClientInfo {
36
+ readonly client_id: string;
37
+ readonly client_secret?: string;
38
+ readonly client_id_issued_at?: number;
39
+ readonly client_secret_expires_at?: number;
40
+ }
41
+ /**
42
+ * Per-server state persisted to disk. Keyed by stable server id (defaults to
43
+ * the MCP URL host). One file per id keeps isolation and rotation simple.
44
+ */
45
+ export interface McpOAuthState {
46
+ /** Stable id (typically the MCP server URL host). */
47
+ readonly id: string;
48
+ /** When the state was last written, epoch-ms. */
49
+ readonly updatedAt: number;
50
+ /** Tokens from the last successful auth round. */
51
+ tokens?: McpTokenSet;
52
+ /** Client info from RFC 7591 dynamic registration, if performed. */
53
+ client?: McpClientInfo;
54
+ /** RFC 9728 protected resource metadata, cached to skip re-discovery. */
55
+ resourceMetadata?: unknown;
56
+ /** RFC 8414 authorization server metadata, cached to skip re-discovery. */
57
+ authServerMetadata?: unknown;
58
+ /** PKCE code verifier held between `startAuthorization` and the callback. */
59
+ codeVerifier?: string;
60
+ /** OAuth `state` parameter held between start and callback for CSRF check. */
61
+ state?: string;
62
+ }
63
+ /**
64
+ * Configuration passed when wiring up an OAuth-aware MCP client.
65
+ */
66
+ export interface McpOAuthConfig {
67
+ /** Stable id used for the on-disk file name and the SDK's session. */
68
+ readonly id: string;
69
+ /** Override path to the credentials directory. Default: `~/.config/indusagi/credentials/mcp/`. */
70
+ readonly credentialsDir?: string;
71
+ /** Where to listen for the OAuth callback. Default: `http://127.0.0.1:<random>/callback`. */
72
+ readonly redirectUrl?: string;
73
+ /** Client metadata sent to RFC 7591 dynamic registration. */
74
+ readonly clientMetadata?: {
75
+ readonly client_name?: string;
76
+ readonly client_uri?: string;
77
+ readonly logo_uri?: string;
78
+ readonly contacts?: readonly string[];
79
+ readonly tos_uri?: string;
80
+ readonly policy_uri?: string;
81
+ readonly redirect_uris?: readonly string[];
82
+ readonly token_endpoint_auth_method?: "none" | "client_secret_basic" | "client_secret_post";
83
+ readonly grant_types?: readonly string[];
84
+ readonly response_types?: readonly string[];
85
+ readonly scope?: string;
86
+ };
87
+ /** Open the browser for the user to complete the auth round. Default: true in TTY. */
88
+ readonly openBrowser?: boolean;
89
+ /** Skip opening the browser and print the URL instead. */
90
+ readonly logger?: {
91
+ debug(msg: string): void;
92
+ info(msg: string): void;
93
+ warn(msg: string): void;
94
+ error(msg: string, err?: unknown): void;
95
+ };
96
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * JSON Schema to TypeBox Converter
3
+ *
4
+ * Converts MCP tool schemas (JSON Schema) to TypeBox schemas
5
+ * for validation in new_indusvx.
6
+ *
7
+ * Reference: JSON Schema conversion adapted to TypeBox.
8
+ */
9
+ import { type TSchema } from "@sinclair/typebox";
10
+ /**
11
+ * JSON Schema types we support
12
+ */
13
+ interface JSONSchema {
14
+ type?: string | string[];
15
+ description?: string;
16
+ properties?: Record<string, JSONSchema>;
17
+ required?: string[];
18
+ items?: JSONSchema | JSONSchema[];
19
+ enum?: (string | number | boolean | null)[];
20
+ const?: string | number | boolean | null;
21
+ additionalProperties?: boolean | JSONSchema;
22
+ minimum?: number;
23
+ maximum?: number;
24
+ exclusiveMinimum?: number | boolean;
25
+ exclusiveMaximum?: number | boolean;
26
+ minLength?: number;
27
+ maxLength?: number;
28
+ pattern?: string;
29
+ format?: string;
30
+ minItems?: number;
31
+ maxItems?: number;
32
+ multipleOf?: number;
33
+ default?: unknown;
34
+ oneOf?: JSONSchema[];
35
+ anyOf?: JSONSchema[];
36
+ allOf?: JSONSchema[];
37
+ $ref?: string;
38
+ }
39
+ /**
40
+ * Convert JSON Schema to TypeBox schema.
41
+ *
42
+ * Handles:
43
+ * - Primitive types (string, number, boolean, null)
44
+ * - Objects with properties
45
+ * - Arrays with items
46
+ * - Optional fields (not in required array)
47
+ * - Enums
48
+ * - Nested structures
49
+ */
50
+ export declare function jsonSchemaToTypeBox(schema: JSONSchema): TSchema;
51
+ /**
52
+ * Apply passthrough to allow extra properties.
53
+ *
54
+ * MCP servers may return extra fields not in the schema,
55
+ * so we use passthrough to avoid validation errors.
56
+ */
57
+ export declare function applyPassthrough(schema: TSchema): TSchema;
58
+ /**
59
+ * Convert MCP tool inputSchema to TypeBox with passthrough.
60
+ * This is the main entry point for converting MCP tool schemas.
61
+ */
62
+ export declare function convertMCPInputSchema(inputSchema: Record<string, unknown>): TSchema;
63
+ /**
64
+ * Convert MCP tool outputSchema to TypeBox with passthrough.
65
+ */
66
+ export declare function convertMCPOutputSchema(outputSchema: Record<string, unknown> | undefined): TSchema | undefined;
67
+ export {};
@@ -0,0 +1,110 @@
1
+ /**
2
+ * MCP Server
3
+ *
4
+ * Exposes new_indusvx tools as an MCP server.
5
+ * Compatible with Claude Desktop, Cursor, etc.
6
+ *
7
+ * Reference: MCP server implementation patterns.
8
+ */
9
+ import type { AgentTool } from "../bot/types.js";
10
+ /**
11
+ * Options for creating an MCP server.
12
+ */
13
+ export interface MCPServerOptions {
14
+ /** Server name */
15
+ name: string;
16
+ /** Server version */
17
+ version?: string;
18
+ /** Tools to expose */
19
+ tools: AgentTool<any>[];
20
+ /** Optional description */
21
+ description?: string;
22
+ }
23
+ /**
24
+ * Tool converted for MCP protocol.
25
+ */
26
+ interface MCPConvertedTool {
27
+ name: string;
28
+ description?: string;
29
+ inputSchema: Record<string, unknown>;
30
+ outputSchema?: Record<string, unknown>;
31
+ execute: (args: Record<string, unknown>) => Promise<unknown>;
32
+ }
33
+ /**
34
+ * MCP Server - exposes new_indusvx tools via the Model Context Protocol.
35
+ *
36
+ * Supports stdio transport for subprocess communication.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * import { MCPServer } from "new_indusvx/mcp";
41
+ * import { createBashTool } from "new_indusvx/agent/tools";
42
+ *
43
+ * const server = new MCPServer({
44
+ * name: "My Tools Server",
45
+ * version: "1.0.0",
46
+ * tools: [createBashTool()],
47
+ * });
48
+ *
49
+ * await server.startStdio();
50
+ * ```
51
+ */
52
+ export declare class MCPServer {
53
+ private options;
54
+ private tools;
55
+ private buffer;
56
+ private isConnected;
57
+ /** Server name */
58
+ readonly name: string;
59
+ /** Server version */
60
+ readonly version: string;
61
+ constructor(options: MCPServerOptions);
62
+ /**
63
+ * Start the server using stdio transport.
64
+ *
65
+ * This is typically used when running the server as a subprocess
66
+ * that MCP clients (like Claude Desktop) spawn.
67
+ */
68
+ startStdio(): Promise<void>;
69
+ /**
70
+ * Stop the server.
71
+ */
72
+ stop(): Promise<void>;
73
+ /**
74
+ * Add a tool to the server.
75
+ */
76
+ addTool(tool: AgentTool<any>): void;
77
+ /**
78
+ * Remove a tool from the server.
79
+ */
80
+ removeTool(name: string): boolean;
81
+ /**
82
+ * List all available tools.
83
+ */
84
+ listTools(): MCPConvertedTool[];
85
+ private convertTool;
86
+ private typeBoxToJsonSchema;
87
+ private processBuffer;
88
+ private handleMessage;
89
+ private handleRequest;
90
+ private handleInitialize;
91
+ private handleToolsList;
92
+ private handleToolsCall;
93
+ private sendResponse;
94
+ private sendError;
95
+ }
96
+ /**
97
+ * Create an MCP server from tools.
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * const server = createMCPServer({
102
+ * name: "My Tools",
103
+ * tools: [bashTool, readTool, writeTool],
104
+ * });
105
+ *
106
+ * await server.startStdio();
107
+ * ```
108
+ */
109
+ export declare function createMCPServer(options: MCPServerOptions): MCPServer;
110
+ export {};