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,761 @@
1
+ // src/tracing/signal/segment.ts
2
+ import { randomBytes } from "node:crypto";
3
+ function freshId(byteLength) {
4
+ return randomBytes(byteLength).toString("hex");
5
+ }
6
+ function freshTraceId() {
7
+ return freshId(16);
8
+ }
9
+ function freshSegmentId() {
10
+ return freshId(8);
11
+ }
12
+ function openSegment(input) {
13
+ const attributes = Object.freeze({ ...input.attributes ?? {} });
14
+ const segment = {
15
+ id: input.id ?? freshSegmentId(),
16
+ traceId: input.traceId ?? freshTraceId(),
17
+ parentId: input.parentId ?? null,
18
+ kind: input.kind,
19
+ name: input.name,
20
+ startedAt: input.startedAt ?? Date.now(),
21
+ endedAt: null,
22
+ status: "open",
23
+ attributes
24
+ };
25
+ return Object.freeze(segment);
26
+ }
27
+ function withAttributes(segment, patch) {
28
+ const attributes = Object.freeze({ ...segment.attributes, ...patch });
29
+ return Object.freeze({ ...segment, attributes });
30
+ }
31
+ function closeSegment(segment, status, options) {
32
+ const error = options?.error ?? segment.error;
33
+ const record = {
34
+ ...segment,
35
+ endedAt: options?.endedAt ?? Date.now(),
36
+ status,
37
+ ...status === "error" && error ? { error } : {}
38
+ };
39
+ return Object.freeze(record);
40
+ }
41
+
42
+ // src/tracing/signal/handle.ts
43
+ function toSegmentError(error) {
44
+ if (error instanceof Error) return { message: error.message };
45
+ if (typeof error === "string") return { message: error };
46
+ try {
47
+ return { message: String(error) };
48
+ } catch {
49
+ return { message: "unknown error" };
50
+ }
51
+ }
52
+ function openHandle(input, sink) {
53
+ let segment = openSegment({
54
+ kind: input.kind,
55
+ name: input.name,
56
+ traceId: input.traceId,
57
+ parentId: input.parentId ?? null,
58
+ attributes: input.attributes
59
+ });
60
+ let pendingError;
61
+ let done = false;
62
+ sink({ type: "open", segment });
63
+ const handle = {
64
+ traceId: segment.traceId,
65
+ id: segment.id,
66
+ active: true,
67
+ note(attributes) {
68
+ if (done) return;
69
+ segment = withAttributes(segment, attributes);
70
+ sink({ type: "update", id: segment.id, attributes });
71
+ },
72
+ child(kind, name) {
73
+ if (done) return NOOP_HANDLE;
74
+ return openHandle(
75
+ { kind, name, traceId: segment.traceId, parentId: segment.id },
76
+ sink
77
+ );
78
+ },
79
+ fail(error) {
80
+ if (done) return;
81
+ pendingError = toSegmentError(error);
82
+ },
83
+ close(status) {
84
+ if (done) return;
85
+ done = true;
86
+ const finalStatus = status ?? (pendingError ? "error" : "ok");
87
+ const record = closeSegment(segment, finalStatus, {
88
+ error: pendingError
89
+ });
90
+ sink({ type: "close", record });
91
+ }
92
+ };
93
+ return handle;
94
+ }
95
+ var NOOP_HANDLE = Object.freeze({
96
+ traceId: "",
97
+ id: "",
98
+ active: false,
99
+ note() {
100
+ },
101
+ child() {
102
+ return NOOP_HANDLE;
103
+ },
104
+ fail() {
105
+ },
106
+ close() {
107
+ }
108
+ });
109
+
110
+ // src/tracing/channel/signal.ts
111
+ var SignalChannel = class {
112
+ /** Buffered signals awaiting a consumer, oldest first. */
113
+ buffer = [];
114
+ /** A parked consumer's resolver, set while a pull awaits the next signal. */
115
+ waiting = null;
116
+ /** Once true, no further signals are accepted and pulls drain then end. */
117
+ closed = false;
118
+ /** Upper bound on the unread buffer; `Infinity` means unbounded. */
119
+ bound;
120
+ constructor(options) {
121
+ this.bound = options?.bound !== void 0 && options.bound > 0 ? options.bound : Number.POSITIVE_INFINITY;
122
+ }
123
+ /**
124
+ * Publish a signal onto the stream.
125
+ *
126
+ * If a consumer is parked, the signal is handed to it directly; otherwise it
127
+ * is buffered (dropping the oldest entry past `bound`). A no-op once closed.
128
+ */
129
+ emit(signal) {
130
+ if (this.closed) return;
131
+ if (this.waiting) {
132
+ const resolve = this.waiting;
133
+ this.waiting = null;
134
+ resolve({ value: signal, done: false });
135
+ return;
136
+ }
137
+ this.buffer.push(signal);
138
+ if (this.buffer.length > this.bound) {
139
+ this.buffer.shift();
140
+ }
141
+ }
142
+ /**
143
+ * End the stream.
144
+ *
145
+ * A parked consumer is completed immediately; a consumer that later pulls
146
+ * receives any still-buffered signals before the terminal `done`. Idempotent.
147
+ */
148
+ close() {
149
+ if (this.closed) return;
150
+ this.closed = true;
151
+ if (this.waiting) {
152
+ const resolve = this.waiting;
153
+ this.waiting = null;
154
+ resolve({ value: void 0, done: true });
155
+ }
156
+ }
157
+ /** Whether {@link close} has been called. */
158
+ get isClosed() {
159
+ return this.closed;
160
+ }
161
+ /** Count of signals buffered but not yet consumed. */
162
+ get pending() {
163
+ return this.buffer.length;
164
+ }
165
+ /**
166
+ * The async-iteration entrypoint.
167
+ *
168
+ * Yields buffered signals immediately, then parks awaiting the next `emit`,
169
+ * and returns `{ done: true }` once the channel is closed and drained.
170
+ */
171
+ [Symbol.asyncIterator]() {
172
+ const next = () => {
173
+ if (this.buffer.length > 0) {
174
+ const value = this.buffer.shift();
175
+ return Promise.resolve({ value, done: false });
176
+ }
177
+ if (this.closed) {
178
+ return Promise.resolve({ value: void 0, done: true });
179
+ }
180
+ return new Promise((resolve) => {
181
+ this.waiting = resolve;
182
+ });
183
+ };
184
+ const ret = () => {
185
+ this.close();
186
+ return Promise.resolve({ value: void 0, done: true });
187
+ };
188
+ return {
189
+ next,
190
+ return: ret
191
+ };
192
+ }
193
+ };
194
+
195
+ // src/tracing/redaction/secret-scrubber.ts
196
+ var REDACTION_TOKEN = "\u2039redacted\u203A";
197
+ var DEFAULT_SECRET_PATTERNS = Object.freeze([
198
+ // Key-name rules ----------------------------------------------------------
199
+ {
200
+ label: "credential-key-name",
201
+ // …secret / …password / passwd / passphrase / …token / api[_-]?key / apikey
202
+ key: /(?:secret|password|passwd|passphrase|token|api[_-]?key|apikey)/i
203
+ },
204
+ {
205
+ label: "authorization-header-name",
206
+ // authorization, proxy-authorization, x-…-key, x-…-token, cookie, set-cookie
207
+ key: /^(?:proxy-)?authorization$|^x-[\w-]*?(?:key|token|secret)$|^set-cookie$|^cookie$/i
208
+ },
209
+ {
210
+ label: "private-key-or-access-name",
211
+ // private_key, signing_key, client_secret, access_key, refresh_token, session_id
212
+ key: /(?:private[_-]?key|signing[_-]?key|client[_-]?secret|access[_-]?key|refresh[_-]?token|session[_-]?id)/i
213
+ },
214
+ // Value-shape rules -------------------------------------------------------
215
+ {
216
+ label: "bearer-token-value",
217
+ // an HTTP-style scheme prefix followed by an opaque blob
218
+ value: /\b(?:bearer|basic|token)\s+[A-Za-z0-9._~+/-]{8,}=*\b/i
219
+ },
220
+ {
221
+ label: "vendor-key-prefix-value",
222
+ // provider-style prefixed keys: sk-…, pk-…, rk-…, xoxb-…, ghp_…, AKIA…
223
+ value: /\b(?:sk|pk|rk|api|key)[-_][A-Za-z0-9]{12,}\b|\bxox[baprs]-[A-Za-z0-9-]{10,}\b|\bgh[pousr]_[A-Za-z0-9]{20,}\b|\bAKIA[0-9A-Z]{12,}\b/
224
+ },
225
+ {
226
+ label: "json-web-token-value",
227
+ // three base64url segments separated by dots (a JWT)
228
+ value: /\beyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}\b/
229
+ },
230
+ {
231
+ label: "private-key-block-value",
232
+ // a PEM-armoured private key body
233
+ value: /-----BEGIN(?:[A-Z ]+)?PRIVATE KEY-----/
234
+ },
235
+ // -----------------------------------------------------------------------
236
+ // MCP / Zoho MCP additions.
237
+ // -----------------------------------------------------------------------
238
+ {
239
+ label: "mcp-url-key-name",
240
+ // mcp_url, mcpUrl, mcp_url_secret, MCP_URL, ZOHO_MCP_URL, ZOHO_MCP_TOKEN, etc.
241
+ key: /(?:mcp[_-]?url|zoho[_-]?mcp|mcp[_-]?token)/i
242
+ },
243
+ {
244
+ label: "pkce-verifier-key-name",
245
+ // code_verifier, codeVerifier, pkce_verifier, etc.
246
+ key: /(?:code[_-]?verifier|pkce[_-]?verifier)/i
247
+ },
248
+ {
249
+ label: "mcp-server-url-value",
250
+ // Zoho MCP URLs — the host is enough to make the URL sensitive.
251
+ value: /\bhttps?:\/\/(?:[A-Za-z0-9-]+\.)*mcp\.zoho\.(?:com|in|eu|net|com\.au|jp)\b[^\s"'<>]*/i
252
+ },
253
+ // -----------------------------------------------------------------------
254
+ // Sarvam MCP additions.
255
+ // -----------------------------------------------------------------------
256
+ {
257
+ label: "sarvam-api-key-key-name",
258
+ // SARVAM_API_KEY, sarvamApiKey, sarvam_api_key
259
+ key: /sarvam[_-]?api[_-]?key/i
260
+ },
261
+ {
262
+ label: "sarvam-api-key-value",
263
+ // dashboard-issued key shape if Sarvam ever uses a prefix; fallback so
264
+ // SARVAM_API_KEY=<anything> gets redacted even if no key pattern matched.
265
+ value: /SARVAM_API_KEY\s*=\s*[^\s"'<>]+/i
266
+ },
267
+ {
268
+ label: "api-subscription-key-header",
269
+ // Sarvam's REST auth header name.
270
+ value: /\bapi-subscription-key\s*[:=]\s*[A-Za-z0-9._~+/-]{8,}=*\b/i
271
+ }
272
+ ]);
273
+ function isContainer(value) {
274
+ return typeof value === "object" && value !== null;
275
+ }
276
+ var SecretScrubber = class {
277
+ patterns;
278
+ token;
279
+ /** Pre-split views so the hot loop never re-checks which rules have a key/value side. */
280
+ keyRules;
281
+ valueRules;
282
+ constructor(options = {}) {
283
+ this.patterns = options.patterns ?? DEFAULT_SECRET_PATTERNS;
284
+ this.token = options.token ?? REDACTION_TOKEN;
285
+ this.keyRules = this.patterns.filter((p) => p.key !== void 0);
286
+ this.valueRules = this.patterns.filter((p) => p.value !== void 0);
287
+ }
288
+ /** True when a field name matches any key-shaped rule. */
289
+ keyIsSecret(key) {
290
+ for (const rule of this.keyRules) {
291
+ if (rule.key.test(key)) return true;
292
+ }
293
+ return false;
294
+ }
295
+ /** True when a string leaf matches any value-shaped rule. */
296
+ valueIsSecret(value) {
297
+ for (const rule of this.valueRules) {
298
+ if (rule.value.test(value)) return true;
299
+ }
300
+ return false;
301
+ }
302
+ /**
303
+ * Decide a leaf's sanitized form given the key that points at it.
304
+ *
305
+ * Redacts when the key looks secret, or when a string value looks secret.
306
+ * Non-string leaves under an innocuous key pass through untouched.
307
+ */
308
+ sanitizeLeaf(key, value) {
309
+ if (this.keyIsSecret(key)) return this.token;
310
+ if (typeof value === "string" && this.valueIsSecret(value)) return this.token;
311
+ return value;
312
+ }
313
+ /**
314
+ * Return a deep copy of `attributes` with secret-looking keys and values
315
+ * replaced by the redaction token.
316
+ *
317
+ * Walks the structure with a single explicit stack (no recursion). Containers
318
+ * are cloned shallowly up front and their children enqueued; leaves are
319
+ * resolved through {@link sanitizeLeaf}. The input — including nested objects
320
+ * and arrays — is never mutated. A key whose name is itself secret short-
321
+ * circuits the descent: the whole subtree under it collapses to the token,
322
+ * so credentials nested inside (e.g. `auth: { token: … }`) cannot leak.
323
+ */
324
+ scrub(attributes) {
325
+ const root = {};
326
+ const stack = [{ node: attributes, clone: root }];
327
+ while (stack.length > 0) {
328
+ const { node, clone } = stack.pop();
329
+ if (Array.isArray(node)) {
330
+ const out2 = clone;
331
+ for (let i = 0; i < node.length; i++) {
332
+ const key = String(i);
333
+ const value = node[i];
334
+ if (isContainer(value) && !this.keyIsSecret(key)) {
335
+ const childClone = Array.isArray(value) ? [] : {};
336
+ out2[i] = childClone;
337
+ stack.push({ node: value, clone: childClone });
338
+ } else {
339
+ out2[i] = this.sanitizeLeaf(key, value);
340
+ }
341
+ }
342
+ continue;
343
+ }
344
+ const out = clone;
345
+ for (const key of Object.keys(node)) {
346
+ const value = node[key];
347
+ if (isContainer(value) && !this.keyIsSecret(key)) {
348
+ const childClone = Array.isArray(value) ? [] : {};
349
+ out[key] = childClone;
350
+ stack.push({ node: value, clone: childClone });
351
+ } else {
352
+ out[key] = this.sanitizeLeaf(key, value);
353
+ }
354
+ }
355
+ }
356
+ return root;
357
+ }
358
+ };
359
+
360
+ // src/tracing/sinks/console.ts
361
+ var STATUS_GLYPH = {
362
+ ok: "\u2713",
363
+ error: "\u2717"
364
+ };
365
+ function padEnd(value, width) {
366
+ return value.length >= width ? value : value + " ".repeat(width - value.length);
367
+ }
368
+ function padStart(value, width) {
369
+ return value.length >= width ? value : " ".repeat(width - value.length) + value;
370
+ }
371
+ var ConsoleSink = class {
372
+ log;
373
+ constructor(options) {
374
+ this.log = options?.log ?? ((line) => console.log(line));
375
+ }
376
+ /** Render the one-line summary for a closed segment. */
377
+ format(record) {
378
+ const glyph = STATUS_GLYPH[record.status] ?? "?";
379
+ const duration = `${record.endedAt - record.startedAt}ms`;
380
+ const tag = `[${record.traceId.slice(0, 8)}/${record.id}]`;
381
+ const head = `${glyph} ${padEnd(record.kind, 10)} ${padEnd(record.name, 24)} ${padStart(duration, 8)} ${tag}`;
382
+ return record.status === "error" && record.error ? `${head} \u2014 ${record.error.message}` : head;
383
+ }
384
+ /** Drain `channel`, printing a line for every `close` signal. */
385
+ async drain(channel) {
386
+ for await (const signal of channel) {
387
+ if (signal.type === "close") {
388
+ this.log(this.format(signal.record));
389
+ }
390
+ }
391
+ }
392
+ };
393
+
394
+ // src/tracing/sinks/file.ts
395
+ import { appendFile } from "node:fs/promises";
396
+ var FileSink = class {
397
+ path;
398
+ flushEvery;
399
+ /** Serialized records awaiting their append, oldest first. */
400
+ pending = [];
401
+ constructor(path, options) {
402
+ this.path = path;
403
+ this.flushEvery = options?.flushEvery !== void 0 && options.flushEvery > 0 ? options.flushEvery : 1;
404
+ }
405
+ /** Drain `channel`, buffering each closed record and flushing on threshold/end. */
406
+ async drain(channel) {
407
+ for await (const signal of channel) {
408
+ if (signal.type !== "close") continue;
409
+ this.pending.push(JSON.stringify(signal.record));
410
+ if (this.pending.length >= this.flushEvery) {
411
+ await this.flush();
412
+ }
413
+ }
414
+ await this.flush();
415
+ }
416
+ /** Append all pending records to the file as NDJSON lines, then clear them. */
417
+ async flush() {
418
+ if (this.pending.length === 0) return;
419
+ const batch = this.pending;
420
+ this.pending = [];
421
+ await appendFile(this.path, batch.join("\n") + "\n", "utf8");
422
+ }
423
+ /** Flush any remaining records. Idempotent; the sink holds no OS handle. */
424
+ async close() {
425
+ await this.flush();
426
+ }
427
+ };
428
+
429
+ // src/tracing/sinks/stream.ts
430
+ var StreamSink = class {
431
+ stream;
432
+ endOnClose;
433
+ constructor(stream, options) {
434
+ this.stream = stream;
435
+ this.endOnClose = options?.endOnClose ?? false;
436
+ }
437
+ /** Write `line`, resolving once it is accepted or once backpressure clears. */
438
+ writeLine(line) {
439
+ return new Promise((resolve, reject) => {
440
+ const onError = (error) => reject(error);
441
+ this.stream.once("error", onError);
442
+ const flushed = this.stream.write(line, "utf8", () => {
443
+ this.stream.removeListener("error", onError);
444
+ });
445
+ if (flushed) {
446
+ resolve();
447
+ } else {
448
+ this.stream.once("drain", () => resolve());
449
+ }
450
+ });
451
+ }
452
+ /** Drain `channel`, writing a JSON line per closed record (with backpressure). */
453
+ async drain(channel) {
454
+ for await (const signal of channel) {
455
+ if (signal.type !== "close") continue;
456
+ const line = JSON.stringify(signal.record) + "\n";
457
+ await this.writeLine(line);
458
+ }
459
+ }
460
+ /** No-op: bytes are not buffered by this sink. Present for interface symmetry. */
461
+ async flush() {
462
+ }
463
+ /** End the underlying stream when this sink owns it (`endOnClose`); else no-op. */
464
+ async close() {
465
+ if (!this.endOnClose) return;
466
+ await new Promise((resolve, reject) => {
467
+ this.stream.end(
468
+ (error) => error ? reject(error) : resolve()
469
+ );
470
+ });
471
+ }
472
+ };
473
+
474
+ // src/tracing/recorder/sampling.ts
475
+ function isRatioStrategy(strategy) {
476
+ return typeof strategy === "object" && strategy !== null && "ratio" in strategy;
477
+ }
478
+ var FNV_OFFSET_BASIS = 2166136261;
479
+ var FNV_PRIME = 16777619;
480
+ var TWO_POW_32 = 4294967296;
481
+ function unitHash(traceId) {
482
+ let hash = FNV_OFFSET_BASIS;
483
+ for (let i = 0; i < traceId.length; i++) {
484
+ hash ^= traceId.charCodeAt(i);
485
+ hash = Math.imul(hash, FNV_PRIME);
486
+ }
487
+ return (hash >>> 0) / TWO_POW_32;
488
+ }
489
+ function clampRatio(ratio) {
490
+ if (Number.isNaN(ratio)) return 0;
491
+ if (ratio <= 0) return 0;
492
+ if (ratio >= 1) return 1;
493
+ return ratio;
494
+ }
495
+ var SampleGate = class {
496
+ strategy;
497
+ /** Pre-clamped admission threshold for the ratio strategy; unused otherwise. */
498
+ threshold;
499
+ constructor(strategy = "always") {
500
+ this.strategy = strategy;
501
+ this.threshold = isRatioStrategy(strategy) ? clampRatio(strategy.ratio) : 0;
502
+ }
503
+ /**
504
+ * Decide whether the trace identified by `traceId` is admitted.
505
+ *
506
+ * - `"always"` → always `true`.
507
+ * - `"never"` → always `false`.
508
+ * - `{ ratio }` → `unitHash(traceId) < ratio` (clamped): deterministic, so the
509
+ * same id always yields the same answer. Ratio `0` admits nothing and ratio
510
+ * `1` admits everything regardless of the hash.
511
+ */
512
+ decide(traceId) {
513
+ if (this.strategy === "always") return true;
514
+ if (this.strategy === "never") return false;
515
+ if (this.threshold <= 0) return false;
516
+ if (this.threshold >= 1) return true;
517
+ return unitHash(traceId) < this.threshold;
518
+ }
519
+ };
520
+
521
+ // src/tracing/recorder/recorder.ts
522
+ var SERVICE_NAME_KEY = "service.name";
523
+ function toGate(sampling) {
524
+ if (sampling instanceof SampleGate) return sampling;
525
+ return new SampleGate(sampling ?? "always");
526
+ }
527
+ var Recorder = class {
528
+ /** Logical service/agent name stamped onto admitted root traces. */
529
+ serviceName;
530
+ gate;
531
+ signalChannel;
532
+ constructor(options) {
533
+ this.serviceName = options.serviceName;
534
+ this.gate = toGate(options.sampling);
535
+ this.signalChannel = options.channel ?? new SignalChannel();
536
+ }
537
+ /**
538
+ * Open a segment, subject to sampling.
539
+ *
540
+ * Resolves the trace id (a supplied `opts.traceId` joins an existing trace; a
541
+ * root mints a fresh one), then consults the {@link SampleGate}. Sampled out →
542
+ * the frozen {@link NOOP_HANDLE} (nothing is emitted). Sampled in → a live
543
+ * {@link SegmentHandle} from {@link openHandle}, whose `open` signal — and all
544
+ * subsequent `update`/`close` signals — land on this recorder's channel. A
545
+ * root open also folds `serviceName` into the segment's attributes.
546
+ */
547
+ open(kind, name, opts) {
548
+ const isRoot = opts?.traceId === void 0;
549
+ const traceId = opts?.traceId ?? freshTraceId();
550
+ if (!this.gate.decide(traceId)) return NOOP_HANDLE;
551
+ const attributes = isRoot ? { [SERVICE_NAME_KEY]: this.serviceName, ...opts?.attributes ?? {} } : opts?.attributes;
552
+ return openHandle(
553
+ {
554
+ kind,
555
+ name,
556
+ traceId,
557
+ parentId: opts?.parentId ?? null,
558
+ attributes
559
+ },
560
+ (signal) => this.signalChannel.emit(signal)
561
+ );
562
+ }
563
+ /**
564
+ * The recorder's signal stream.
565
+ *
566
+ * Sinks drain this with `for await … of recorder.channel()`. It is the same
567
+ * underlying {@link SignalChannel} every {@link open}ed handle emits onto.
568
+ */
569
+ channel() {
570
+ return this.signalChannel;
571
+ }
572
+ };
573
+
574
+ // src/tracing/registry/hub.ts
575
+ var DEFAULT_RECORDER_NAME = "default";
576
+ var TelemetryHub = class {
577
+ recorders = /* @__PURE__ */ new Map();
578
+ /** Name of the recorder returned by {@link recorder} with no argument. */
579
+ defaultName = null;
580
+ /**
581
+ * Register a recorder under `name`, returning the constructed instance.
582
+ *
583
+ * Re-registering a name replaces the prior recorder. If no default has been
584
+ * chosen yet, the first registration becomes the default; registering under
585
+ * the reserved `"default"` name always (re)designates the default.
586
+ */
587
+ register(name, options) {
588
+ const recorder = new Recorder(options);
589
+ this.recorders.set(name, recorder);
590
+ if (this.defaultName === null || name === DEFAULT_RECORDER_NAME) {
591
+ this.defaultName = name;
592
+ }
593
+ return recorder;
594
+ }
595
+ /**
596
+ * Look up a recorder by `name`, or the default when `name` is omitted.
597
+ *
598
+ * Throws if the requested (or default) recorder is not registered, so a
599
+ * missing recorder fails loudly rather than silently dropping traces.
600
+ */
601
+ recorder(name) {
602
+ const key = name ?? this.defaultName;
603
+ const found = key !== null && key !== void 0 ? this.recorders.get(key) : void 0;
604
+ if (!found) {
605
+ const which = name ?? "(default)";
606
+ throw new Error(`TelemetryHub: no recorder registered as "${which}"`);
607
+ }
608
+ return found;
609
+ }
610
+ /** The default recorder, or `undefined` if none has been registered. */
611
+ getDefault() {
612
+ if (this.defaultName === null) return void 0;
613
+ return this.recorders.get(this.defaultName);
614
+ }
615
+ /** Whether a recorder is registered under `name`. */
616
+ has(name) {
617
+ return this.recorders.has(name);
618
+ }
619
+ };
620
+ var processHub = null;
621
+ function getDefaultHub() {
622
+ if (processHub === null) processHub = new TelemetryHub();
623
+ return processHub;
624
+ }
625
+ function setDefaultHub(hub) {
626
+ processHub = hub;
627
+ }
628
+
629
+ // src/tracing/adapter/runtime-trace.ts
630
+ function traceAgentRun(recorder, subscribe) {
631
+ let runHandle = null;
632
+ let inferenceHandle = null;
633
+ const actions = /* @__PURE__ */ new Map();
634
+ let textDeltas = 0;
635
+ let thinkingDeltas = 0;
636
+ let lastPhase;
637
+ function closeInference(status = "ok") {
638
+ if (inferenceHandle) {
639
+ if (textDeltas > 0 || thinkingDeltas > 0) {
640
+ inferenceHandle.note({
641
+ "stream.text_deltas": textDeltas,
642
+ "stream.thinking_deltas": thinkingDeltas
643
+ });
644
+ }
645
+ inferenceHandle.close(status);
646
+ inferenceHandle = null;
647
+ }
648
+ textDeltas = 0;
649
+ thinkingDeltas = 0;
650
+ }
651
+ function closeAllActions(status = "ok") {
652
+ for (const handle of actions.values()) handle.close(status);
653
+ actions.clear();
654
+ }
655
+ function ensureRun(runId) {
656
+ if (!runHandle) {
657
+ runHandle = recorder.open("run", runId ? `run ${runId}` : "run", {
658
+ attributes: runId ? { "run.id": runId } : void 0
659
+ });
660
+ }
661
+ return runHandle;
662
+ }
663
+ function closeRun(status) {
664
+ closeAllActions(status);
665
+ closeInference(status);
666
+ if (runHandle) {
667
+ runHandle.close(status);
668
+ runHandle = null;
669
+ }
670
+ lastPhase = void 0;
671
+ }
672
+ function onPhase(phase, run) {
673
+ if (phase === lastPhase) return;
674
+ if (phase === "invoking") {
675
+ closeInference("ok");
676
+ inferenceHandle = run.child("inference", "model turn");
677
+ } else if (phase === "dispatching" || phase === "compacting" || phase === "idle") {
678
+ closeInference("ok");
679
+ }
680
+ lastPhase = phase;
681
+ }
682
+ const unsubscribe = subscribe((event) => {
683
+ switch (event.kind) {
684
+ case "snapshot": {
685
+ const run = ensureRun(event.snapshot.runId);
686
+ onPhase(event.snapshot.phase, run);
687
+ break;
688
+ }
689
+ case "text_delta": {
690
+ if (inferenceHandle) textDeltas += 1;
691
+ break;
692
+ }
693
+ case "thinking_delta": {
694
+ if (inferenceHandle) thinkingDeltas += 1;
695
+ break;
696
+ }
697
+ case "tool_started": {
698
+ const run = ensureRun();
699
+ const handle = run.child("action", event.name);
700
+ handle.note({ "tool.id": event.id, "tool.name": event.name });
701
+ actions.set(event.id, handle);
702
+ break;
703
+ }
704
+ case "tool_finished": {
705
+ const handle = actions.get(event.id);
706
+ if (handle) {
707
+ handle.note({ "tool.is_error": event.outcome.isError });
708
+ handle.close(event.outcome.isError ? "error" : "ok");
709
+ actions.delete(event.id);
710
+ }
711
+ break;
712
+ }
713
+ case "settled": {
714
+ ensureRun(event.snapshot.runId);
715
+ closeRun("ok");
716
+ break;
717
+ }
718
+ case "faulted": {
719
+ const run = ensureRun(event.snapshot.runId);
720
+ if (event.error) run.fail(event.error);
721
+ closeRun("error");
722
+ break;
723
+ }
724
+ default: {
725
+ break;
726
+ }
727
+ }
728
+ });
729
+ return () => {
730
+ unsubscribe();
731
+ closeAllActions("ok");
732
+ closeInference("ok");
733
+ if (runHandle) {
734
+ runHandle.close("ok");
735
+ runHandle = null;
736
+ }
737
+ };
738
+ }
739
+ export {
740
+ ConsoleSink,
741
+ DEFAULT_SECRET_PATTERNS,
742
+ FileSink,
743
+ NOOP_HANDLE,
744
+ REDACTION_TOKEN,
745
+ Recorder,
746
+ SampleGate,
747
+ SecretScrubber,
748
+ SignalChannel,
749
+ StreamSink,
750
+ TelemetryHub,
751
+ closeSegment,
752
+ freshId,
753
+ freshSegmentId,
754
+ freshTraceId,
755
+ getDefaultHub,
756
+ openHandle,
757
+ openSegment,
758
+ setDefaultHub,
759
+ traceAgentRun,
760
+ withAttributes
761
+ };