@jini-ai/agent-runtime 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +43 -0
  3. package/dist/acp-model-probe.d.ts +48 -0
  4. package/dist/acp-model-probe.d.ts.map +1 -0
  5. package/dist/acp-model-probe.js +15 -0
  6. package/dist/acp-model-probe.js.map +1 -0
  7. package/dist/agent-protocol/acp/account-failure.d.ts +54 -0
  8. package/dist/agent-protocol/acp/account-failure.d.ts.map +1 -0
  9. package/dist/agent-protocol/acp/account-failure.js +37 -0
  10. package/dist/agent-protocol/acp/account-failure.js.map +1 -0
  11. package/dist/agent-protocol/acp/constants.d.ts +26 -0
  12. package/dist/agent-protocol/acp/constants.d.ts.map +1 -0
  13. package/dist/agent-protocol/acp/constants.js +39 -0
  14. package/dist/agent-protocol/acp/constants.js.map +1 -0
  15. package/dist/agent-protocol/acp/index.d.ts +14 -0
  16. package/dist/agent-protocol/acp/index.d.ts.map +1 -0
  17. package/dist/agent-protocol/acp/index.js +14 -0
  18. package/dist/agent-protocol/acp/index.js.map +1 -0
  19. package/dist/agent-protocol/acp/json.d.ts +82 -0
  20. package/dist/agent-protocol/acp/json.d.ts.map +1 -0
  21. package/dist/agent-protocol/acp/json.js +144 -0
  22. package/dist/agent-protocol/acp/json.js.map +1 -0
  23. package/dist/agent-protocol/acp/models.d.ts +112 -0
  24. package/dist/agent-protocol/acp/models.d.ts.map +1 -0
  25. package/dist/agent-protocol/acp/models.js +293 -0
  26. package/dist/agent-protocol/acp/models.js.map +1 -0
  27. package/dist/agent-protocol/acp/rpc.d.ts +107 -0
  28. package/dist/agent-protocol/acp/rpc.d.ts.map +1 -0
  29. package/dist/agent-protocol/acp/rpc.js +162 -0
  30. package/dist/agent-protocol/acp/rpc.js.map +1 -0
  31. package/dist/agent-protocol/acp/session-params.d.ts +55 -0
  32. package/dist/agent-protocol/acp/session-params.d.ts.map +1 -0
  33. package/dist/agent-protocol/acp/session-params.js +81 -0
  34. package/dist/agent-protocol/acp/session-params.js.map +1 -0
  35. package/dist/agent-protocol/acp/session.d.ts +101 -0
  36. package/dist/agent-protocol/acp/session.d.ts.map +1 -0
  37. package/dist/agent-protocol/acp/session.js +832 -0
  38. package/dist/agent-protocol/acp/session.js.map +1 -0
  39. package/dist/agent-protocol/acp/text-suppression.d.ts +73 -0
  40. package/dist/agent-protocol/acp/text-suppression.d.ts.map +1 -0
  41. package/dist/agent-protocol/acp/text-suppression.js +229 -0
  42. package/dist/agent-protocol/acp/text-suppression.js.map +1 -0
  43. package/dist/agent-protocol/acp/types.d.ts +27 -0
  44. package/dist/agent-protocol/acp/types.d.ts.map +1 -0
  45. package/dist/agent-protocol/acp/types.js +2 -0
  46. package/dist/agent-protocol/acp/types.js.map +1 -0
  47. package/dist/agent-protocol/acp/updates.d.ts +166 -0
  48. package/dist/agent-protocol/acp/updates.d.ts.map +1 -0
  49. package/dist/agent-protocol/acp/updates.js +268 -0
  50. package/dist/agent-protocol/acp/updates.js.map +1 -0
  51. package/dist/agent-protocol/core/index.d.ts +6 -0
  52. package/dist/agent-protocol/core/index.d.ts.map +1 -0
  53. package/dist/agent-protocol/core/index.js +6 -0
  54. package/dist/agent-protocol/core/index.js.map +1 -0
  55. package/dist/agent-protocol/core/json-line-stream.d.ts +42 -0
  56. package/dist/agent-protocol/core/json-line-stream.d.ts.map +1 -0
  57. package/dist/agent-protocol/core/json-line-stream.js +333 -0
  58. package/dist/agent-protocol/core/json-line-stream.js.map +1 -0
  59. package/dist/agent-protocol/index.d.ts +8 -0
  60. package/dist/agent-protocol/index.d.ts.map +1 -0
  61. package/dist/agent-protocol/index.js +8 -0
  62. package/dist/agent-protocol/index.js.map +1 -0
  63. package/dist/agent-protocol/pi-rpc/events.d.ts +26 -0
  64. package/dist/agent-protocol/pi-rpc/events.d.ts.map +1 -0
  65. package/dist/agent-protocol/pi-rpc/events.js +167 -0
  66. package/dist/agent-protocol/pi-rpc/events.js.map +1 -0
  67. package/dist/agent-protocol/pi-rpc/index.d.ts +11 -0
  68. package/dist/agent-protocol/pi-rpc/index.d.ts.map +1 -0
  69. package/dist/agent-protocol/pi-rpc/index.js +11 -0
  70. package/dist/agent-protocol/pi-rpc/index.js.map +1 -0
  71. package/dist/agent-protocol/pi-rpc/internal.d.ts +45 -0
  72. package/dist/agent-protocol/pi-rpc/internal.d.ts.map +1 -0
  73. package/dist/agent-protocol/pi-rpc/internal.js +41 -0
  74. package/dist/agent-protocol/pi-rpc/internal.js.map +1 -0
  75. package/dist/agent-protocol/pi-rpc/models.d.ts +21 -0
  76. package/dist/agent-protocol/pi-rpc/models.d.ts.map +1 -0
  77. package/dist/agent-protocol/pi-rpc/models.js +48 -0
  78. package/dist/agent-protocol/pi-rpc/models.js.map +1 -0
  79. package/dist/agent-protocol/pi-rpc/session.d.ts +106 -0
  80. package/dist/agent-protocol/pi-rpc/session.d.ts.map +1 -0
  81. package/dist/agent-protocol/pi-rpc/session.js +371 -0
  82. package/dist/agent-protocol/pi-rpc/session.js.map +1 -0
  83. package/dist/amr-model-cache.d.ts +40 -0
  84. package/dist/amr-model-cache.d.ts.map +1 -0
  85. package/dist/amr-model-cache.js +79 -0
  86. package/dist/amr-model-cache.js.map +1 -0
  87. package/dist/amr-profile-resolver.d.ts +21 -0
  88. package/dist/amr-profile-resolver.d.ts.map +1 -0
  89. package/dist/amr-profile-resolver.js +4 -0
  90. package/dist/amr-profile-resolver.js.map +1 -0
  91. package/dist/artifact-taxonomy.d.ts +27 -0
  92. package/dist/artifact-taxonomy.d.ts.map +1 -0
  93. package/dist/artifact-taxonomy.js +5 -0
  94. package/dist/artifact-taxonomy.js.map +1 -0
  95. package/dist/auth.d.ts +25 -0
  96. package/dist/auth.d.ts.map +1 -0
  97. package/dist/auth.js +332 -0
  98. package/dist/auth.js.map +1 -0
  99. package/dist/capabilities.d.ts +9 -0
  100. package/dist/capabilities.d.ts.map +1 -0
  101. package/dist/capabilities.js +2 -0
  102. package/dist/capabilities.js.map +1 -0
  103. package/dist/claude-stream.d.ts +37 -0
  104. package/dist/claude-stream.d.ts.map +1 -0
  105. package/dist/claude-stream.js +660 -0
  106. package/dist/claude-stream.js.map +1 -0
  107. package/dist/copilot-stream.d.ts +37 -0
  108. package/dist/copilot-stream.d.ts.map +1 -0
  109. package/dist/copilot-stream.js +136 -0
  110. package/dist/copilot-stream.js.map +1 -0
  111. package/dist/defs/aider.d.ts +13 -0
  112. package/dist/defs/aider.d.ts.map +1 -0
  113. package/dist/defs/aider.js +63 -0
  114. package/dist/defs/aider.js.map +1 -0
  115. package/dist/defs/amp.d.ts +12 -0
  116. package/dist/defs/amp.d.ts.map +1 -0
  117. package/dist/defs/amp.js +56 -0
  118. package/dist/defs/amp.js.map +1 -0
  119. package/dist/defs/amr.d.ts +37 -0
  120. package/dist/defs/amr.d.ts.map +1 -0
  121. package/dist/defs/amr.js +303 -0
  122. package/dist/defs/amr.js.map +1 -0
  123. package/dist/defs/antigravity.d.ts +25 -0
  124. package/dist/defs/antigravity.d.ts.map +1 -0
  125. package/dist/defs/antigravity.js +213 -0
  126. package/dist/defs/antigravity.js.map +1 -0
  127. package/dist/defs/claude.d.ts +30 -0
  128. package/dist/defs/claude.d.ts.map +1 -0
  129. package/dist/defs/claude.js +130 -0
  130. package/dist/defs/claude.js.map +1 -0
  131. package/dist/defs/codebuddy.d.ts +26 -0
  132. package/dist/defs/codebuddy.d.ts.map +1 -0
  133. package/dist/defs/codebuddy.js +124 -0
  134. package/dist/defs/codebuddy.js.map +1 -0
  135. package/dist/defs/codex.d.ts +30 -0
  136. package/dist/defs/codex.d.ts.map +1 -0
  137. package/dist/defs/codex.js +196 -0
  138. package/dist/defs/codex.js.map +1 -0
  139. package/dist/defs/copilot.d.ts +12 -0
  140. package/dist/defs/copilot.d.ts.map +1 -0
  141. package/dist/defs/copilot.js +88 -0
  142. package/dist/defs/copilot.js.map +1 -0
  143. package/dist/defs/cursor-agent.d.ts +27 -0
  144. package/dist/defs/cursor-agent.d.ts.map +1 -0
  145. package/dist/defs/cursor-agent.js +93 -0
  146. package/dist/defs/cursor-agent.js.map +1 -0
  147. package/dist/defs/deepseek.d.ts +12 -0
  148. package/dist/defs/deepseek.d.ts.map +1 -0
  149. package/dist/defs/deepseek.js +53 -0
  150. package/dist/defs/deepseek.js.map +1 -0
  151. package/dist/defs/devin.d.ts +12 -0
  152. package/dist/defs/devin.d.ts.map +1 -0
  153. package/dist/defs/devin.js +45 -0
  154. package/dist/defs/devin.js.map +1 -0
  155. package/dist/defs/grok-build.d.ts +26 -0
  156. package/dist/defs/grok-build.d.ts.map +1 -0
  157. package/dist/defs/grok-build.js +105 -0
  158. package/dist/defs/grok-build.js.map +1 -0
  159. package/dist/defs/hermes.d.ts +13 -0
  160. package/dist/defs/hermes.d.ts.map +1 -0
  161. package/dist/defs/hermes.js +51 -0
  162. package/dist/defs/hermes.js.map +1 -0
  163. package/dist/defs/index.d.ts +33 -0
  164. package/dist/defs/index.d.ts.map +1 -0
  165. package/dist/defs/index.js +33 -0
  166. package/dist/defs/index.js.map +1 -0
  167. package/dist/defs/kilo.d.ts +12 -0
  168. package/dist/defs/kilo.d.ts.map +1 -0
  169. package/dist/defs/kilo.js +20 -0
  170. package/dist/defs/kilo.js.map +1 -0
  171. package/dist/defs/kimi.d.ts +13 -0
  172. package/dist/defs/kimi.d.ts.map +1 -0
  173. package/dist/defs/kimi.js +26 -0
  174. package/dist/defs/kimi.js.map +1 -0
  175. package/dist/defs/kiro.d.ts +12 -0
  176. package/dist/defs/kiro.d.ts.map +1 -0
  177. package/dist/defs/kiro.js +20 -0
  178. package/dist/defs/kiro.js.map +1 -0
  179. package/dist/defs/mimo.d.ts +13 -0
  180. package/dist/defs/mimo.d.ts.map +1 -0
  181. package/dist/defs/mimo.js +26 -0
  182. package/dist/defs/mimo.js.map +1 -0
  183. package/dist/defs/opencode.d.ts +27 -0
  184. package/dist/defs/opencode.d.ts.map +1 -0
  185. package/dist/defs/opencode.js +89 -0
  186. package/dist/defs/opencode.js.map +1 -0
  187. package/dist/defs/pi.d.ts +18 -0
  188. package/dist/defs/pi.d.ts.map +1 -0
  189. package/dist/defs/pi.js +94 -0
  190. package/dist/defs/pi.js.map +1 -0
  191. package/dist/defs/qoder.d.ts +11 -0
  192. package/dist/defs/qoder.d.ts.map +1 -0
  193. package/dist/defs/qoder.js +50 -0
  194. package/dist/defs/qoder.js.map +1 -0
  195. package/dist/defs/qwen.d.ts +11 -0
  196. package/dist/defs/qwen.d.ts.map +1 -0
  197. package/dist/defs/qwen.js +28 -0
  198. package/dist/defs/qwen.js.map +1 -0
  199. package/dist/defs/reasonix.d.ts +20 -0
  200. package/dist/defs/reasonix.d.ts.map +1 -0
  201. package/dist/defs/reasonix.js +60 -0
  202. package/dist/defs/reasonix.js.map +1 -0
  203. package/dist/defs/shared.d.ts +23 -0
  204. package/dist/defs/shared.d.ts.map +1 -0
  205. package/dist/defs/shared.js +58 -0
  206. package/dist/defs/shared.js.map +1 -0
  207. package/dist/defs/trae-cli.d.ts +14 -0
  208. package/dist/defs/trae-cli.d.ts.map +1 -0
  209. package/dist/defs/trae-cli.js +22 -0
  210. package/dist/defs/trae-cli.js.map +1 -0
  211. package/dist/defs/vibe.d.ts +12 -0
  212. package/dist/defs/vibe.d.ts.map +1 -0
  213. package/dist/defs/vibe.js +20 -0
  214. package/dist/defs/vibe.js.map +1 -0
  215. package/dist/detection.d.ts +14 -0
  216. package/dist/detection.d.ts.map +1 -0
  217. package/dist/detection.js +266 -0
  218. package/dist/detection.js.map +1 -0
  219. package/dist/diagnostics.d.ts +8 -0
  220. package/dist/diagnostics.d.ts.map +1 -0
  221. package/dist/diagnostics.js +95 -0
  222. package/dist/diagnostics.js.map +1 -0
  223. package/dist/env.d.ts +19 -0
  224. package/dist/env.d.ts.map +1 -0
  225. package/dist/env.js +95 -0
  226. package/dist/env.js.map +1 -0
  227. package/dist/executables.d.ts +24 -0
  228. package/dist/executables.d.ts.map +1 -0
  229. package/dist/executables.js +349 -0
  230. package/dist/executables.js.map +1 -0
  231. package/dist/index.d.ts +74 -0
  232. package/dist/index.d.ts.map +1 -0
  233. package/dist/index.js +102 -0
  234. package/dist/index.js.map +1 -0
  235. package/dist/invocation.d.ts +6 -0
  236. package/dist/invocation.d.ts.map +1 -0
  237. package/dist/invocation.js +47 -0
  238. package/dist/invocation.js.map +1 -0
  239. package/dist/json-event-stream.d.ts +9 -0
  240. package/dist/json-event-stream.d.ts.map +1 -0
  241. package/dist/json-event-stream.js +856 -0
  242. package/dist/json-event-stream.js.map +1 -0
  243. package/dist/launch.d.ts +12 -0
  244. package/dist/launch.d.ts.map +1 -0
  245. package/dist/launch.js +221 -0
  246. package/dist/launch.js.map +1 -0
  247. package/dist/mcp.d.ts +44 -0
  248. package/dist/mcp.d.ts.map +1 -0
  249. package/dist/mcp.js +12 -0
  250. package/dist/mcp.js.map +1 -0
  251. package/dist/metadata.d.ts +24 -0
  252. package/dist/metadata.d.ts.map +1 -0
  253. package/dist/metadata.js +100 -0
  254. package/dist/metadata.js.map +1 -0
  255. package/dist/mmd-routes.d.ts +12 -0
  256. package/dist/mmd-routes.d.ts.map +1 -0
  257. package/dist/mmd-routes.js +146 -0
  258. package/dist/mmd-routes.js.map +1 -0
  259. package/dist/model-registry.d.ts +120 -0
  260. package/dist/model-registry.d.ts.map +1 -0
  261. package/dist/model-registry.js +77 -0
  262. package/dist/model-registry.js.map +1 -0
  263. package/dist/models.d.ts +16 -0
  264. package/dist/models.d.ts.map +1 -0
  265. package/dist/models.js +93 -0
  266. package/dist/models.js.map +1 -0
  267. package/dist/opencode-log.d.ts +16 -0
  268. package/dist/opencode-log.d.ts.map +1 -0
  269. package/dist/opencode-log.js +163 -0
  270. package/dist/opencode-log.js.map +1 -0
  271. package/dist/paths.d.ts +3 -0
  272. package/dist/paths.d.ts.map +1 -0
  273. package/dist/paths.js +29 -0
  274. package/dist/paths.js.map +1 -0
  275. package/dist/pi-models.d.ts +13 -0
  276. package/dist/pi-models.d.ts.map +1 -0
  277. package/dist/pi-models.js +36 -0
  278. package/dist/pi-models.js.map +1 -0
  279. package/dist/prompt-augmenter.d.ts +60 -0
  280. package/dist/prompt-augmenter.d.ts.map +1 -0
  281. package/dist/prompt-augmenter.js +26 -0
  282. package/dist/prompt-augmenter.js.map +1 -0
  283. package/dist/prompt-budget.d.ts +20 -0
  284. package/dist/prompt-budget.d.ts.map +1 -0
  285. package/dist/prompt-budget.js +226 -0
  286. package/dist/prompt-budget.js.map +1 -0
  287. package/dist/prompt-file.d.ts +7 -0
  288. package/dist/prompt-file.d.ts.map +1 -0
  289. package/dist/prompt-file.js +27 -0
  290. package/dist/prompt-file.js.map +1 -0
  291. package/dist/providers/aihubmix.d.ts +99 -0
  292. package/dist/providers/aihubmix.d.ts.map +1 -0
  293. package/dist/providers/aihubmix.js +239 -0
  294. package/dist/providers/aihubmix.js.map +1 -0
  295. package/dist/providers/anthropic-messages.d.ts +116 -0
  296. package/dist/providers/anthropic-messages.d.ts.map +1 -0
  297. package/dist/providers/anthropic-messages.js +313 -0
  298. package/dist/providers/anthropic-messages.js.map +1 -0
  299. package/dist/providers/azure-chat.d.ts +99 -0
  300. package/dist/providers/azure-chat.d.ts.map +1 -0
  301. package/dist/providers/azure-chat.js +164 -0
  302. package/dist/providers/azure-chat.js.map +1 -0
  303. package/dist/providers/connection-guard.d.ts +67 -0
  304. package/dist/providers/connection-guard.d.ts.map +1 -0
  305. package/dist/providers/connection-guard.js +211 -0
  306. package/dist/providers/connection-guard.js.map +1 -0
  307. package/dist/providers/elevenlabs.d.ts +28 -0
  308. package/dist/providers/elevenlabs.d.ts.map +1 -0
  309. package/dist/providers/elevenlabs.js +138 -0
  310. package/dist/providers/elevenlabs.js.map +1 -0
  311. package/dist/providers/google-messages.d.ts +108 -0
  312. package/dist/providers/google-messages.d.ts.map +1 -0
  313. package/dist/providers/google-messages.js +284 -0
  314. package/dist/providers/google-messages.js.map +1 -0
  315. package/dist/providers/google.d.ts +20 -0
  316. package/dist/providers/google.d.ts.map +1 -0
  317. package/dist/providers/google.js +42 -0
  318. package/dist/providers/google.js.map +1 -0
  319. package/dist/providers/index.d.ts +39 -0
  320. package/dist/providers/index.d.ts.map +1 -0
  321. package/dist/providers/index.js +39 -0
  322. package/dist/providers/index.js.map +1 -0
  323. package/dist/providers/model-catalog.d.ts +32 -0
  324. package/dist/providers/model-catalog.d.ts.map +1 -0
  325. package/dist/providers/model-catalog.js +394 -0
  326. package/dist/providers/model-catalog.js.map +1 -0
  327. package/dist/providers/oauth-callback-server.d.ts +35 -0
  328. package/dist/providers/oauth-callback-server.d.ts.map +1 -0
  329. package/dist/providers/oauth-callback-server.js +217 -0
  330. package/dist/providers/oauth-callback-server.js.map +1 -0
  331. package/dist/providers/oauth-credentials.d.ts +29 -0
  332. package/dist/providers/oauth-credentials.d.ts.map +1 -0
  333. package/dist/providers/oauth-credentials.js +70 -0
  334. package/dist/providers/oauth-credentials.js.map +1 -0
  335. package/dist/providers/oauth-provider.d.ts +95 -0
  336. package/dist/providers/oauth-provider.d.ts.map +1 -0
  337. package/dist/providers/oauth-provider.js +130 -0
  338. package/dist/providers/oauth-provider.js.map +1 -0
  339. package/dist/providers/oauth-tokens.d.ts +35 -0
  340. package/dist/providers/oauth-tokens.d.ts.map +1 -0
  341. package/dist/providers/oauth-tokens.js +136 -0
  342. package/dist/providers/oauth-tokens.js.map +1 -0
  343. package/dist/providers/ollama-chat.d.ts +106 -0
  344. package/dist/providers/ollama-chat.d.ts.map +1 -0
  345. package/dist/providers/ollama-chat.js +292 -0
  346. package/dist/providers/ollama-chat.js.map +1 -0
  347. package/dist/providers/openai-chat.d.ts +147 -0
  348. package/dist/providers/openai-chat.d.ts.map +1 -0
  349. package/dist/providers/openai-chat.js +302 -0
  350. package/dist/providers/openai-chat.js.map +1 -0
  351. package/dist/providers/pkce.d.ts +81 -0
  352. package/dist/providers/pkce.d.ts.map +1 -0
  353. package/dist/providers/pkce.js +176 -0
  354. package/dist/providers/pkce.js.map +1 -0
  355. package/dist/providers/sse-decode.d.ts +47 -0
  356. package/dist/providers/sse-decode.d.ts.map +1 -0
  357. package/dist/providers/sse-decode.js +109 -0
  358. package/dist/providers/sse-decode.js.map +1 -0
  359. package/dist/providers/token-params.d.ts +29 -0
  360. package/dist/providers/token-params.d.ts.map +1 -0
  361. package/dist/providers/token-params.js +41 -0
  362. package/dist/providers/token-params.js.map +1 -0
  363. package/dist/providers/turn-end-guard.d.ts +37 -0
  364. package/dist/providers/turn-end-guard.d.ts.map +1 -0
  365. package/dist/providers/turn-end-guard.js +42 -0
  366. package/dist/providers/turn-end-guard.js.map +1 -0
  367. package/dist/providers/types.d.ts +36 -0
  368. package/dist/providers/types.d.ts.map +1 -0
  369. package/dist/providers/types.js +13 -0
  370. package/dist/providers/types.js.map +1 -0
  371. package/dist/qoder-stream.d.ts +19 -0
  372. package/dist/qoder-stream.d.ts.map +1 -0
  373. package/dist/qoder-stream.js +167 -0
  374. package/dist/qoder-stream.js.map +1 -0
  375. package/dist/registry.d.ts +5 -0
  376. package/dist/registry.d.ts.map +1 -0
  377. package/dist/registry.js +58 -0
  378. package/dist/registry.js.map +1 -0
  379. package/dist/resolution.d.ts +2 -0
  380. package/dist/resolution.d.ts.map +1 -0
  381. package/dist/resolution.js +19 -0
  382. package/dist/resolution.js.map +1 -0
  383. package/dist/role-marker-guard.d.ts +53 -0
  384. package/dist/role-marker-guard.d.ts.map +1 -0
  385. package/dist/role-marker-guard.js +280 -0
  386. package/dist/role-marker-guard.js.map +1 -0
  387. package/dist/telemetry-sink.d.ts +35 -0
  388. package/dist/telemetry-sink.d.ts.map +1 -0
  389. package/dist/telemetry-sink.js +5 -0
  390. package/dist/telemetry-sink.js.map +1 -0
  391. package/dist/terminal-launch.d.ts +11 -0
  392. package/dist/terminal-launch.d.ts.map +1 -0
  393. package/dist/terminal-launch.js +123 -0
  394. package/dist/terminal-launch.js.map +1 -0
  395. package/dist/types.d.ts +185 -0
  396. package/dist/types.d.ts.map +1 -0
  397. package/dist/types.js +2 -0
  398. package/dist/types.js.map +1 -0
  399. package/package.json +47 -0
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Ported from OD's `apps/daemon/src/runtimes/defs/reasonix.ts` with one
3
+ * real strip (not just a comment reword): the origin injected a
4
+ * product-specific system-prompt block via
5
+ * `env.REASONIX_ACP_SYSTEM_APPEND` — a `DESIGN_INSTRUCTIONS` constant that
6
+ * literally named the host product and instructed the model to wrap output
7
+ * in that product's own artifact-tag convention (see `source-map.md` for
8
+ * the exact original text). That is genuine product-specific prompt
9
+ * content baked into what's supposed to be a pure declarative def literal,
10
+ * not the generic ACP-transport config the rest of this file is. It is
11
+ * dropped here; a host that wants an
12
+ * equivalent system-prompt append for reasonix should supply it via
13
+ * `PromptAugmenter.systemOverlay` (see `prompt-augmenter.ts`) and merge it
14
+ * into this def's `env.REASONIX_ACP_SYSTEM_APPEND` itself, since the
15
+ * engine has no generic way to know a given def's env-based system-prompt
16
+ * hook exists. See `source-map.md`.
17
+ */
18
+ import os from 'node:os';
19
+ import path from 'node:path';
20
+ import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
21
+ /** Resolve Reasonix's home directory, respecting REASONIX_HOME if already set. */
22
+ function reasonixHome() {
23
+ if (process.env.REASONIX_HOME)
24
+ return process.env.REASONIX_HOME;
25
+ if (process.platform === 'win32') {
26
+ const appData = process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming');
27
+ return path.join(appData, 'reasonix');
28
+ }
29
+ return path.join(os.homedir(), '.reasonix');
30
+ }
31
+ export const reasonixAgentDef = {
32
+ id: 'reasonix',
33
+ name: 'DeepSeek Reasonix',
34
+ bin: 'reasonix',
35
+ fallbackBins: ['dsnix'],
36
+ versionArgs: ['--version'],
37
+ fetchModels: async (resolvedBin, env) => detectAcpModels({
38
+ bin: resolvedBin,
39
+ args: ['acp'],
40
+ env,
41
+ timeoutMs: 15_000,
42
+ defaultModelOption: DEFAULT_MODEL_OPTION,
43
+ }),
44
+ buildArgs: () => ['acp'],
45
+ streamFormat: 'acp-json-rpc',
46
+ mcpDiscovery: 'mature-acp',
47
+ externalMcpInjection: 'acp-merge',
48
+ acpMcpEnvFormat: 'map',
49
+ env: {
50
+ REASONIX_HOME: reasonixHome(),
51
+ },
52
+ fallbackModels: [
53
+ DEFAULT_MODEL_OPTION,
54
+ { id: 'deepseek-v4-pro', label: 'deepseek-v4-pro' },
55
+ { id: 'deepseek-v4-flash', label: 'deepseek-v4-flash' },
56
+ ],
57
+ installUrl: 'https://github.com/esengine/DeepSeek-Reasonix',
58
+ docsUrl: 'https://esengine.github.io/DeepSeek-Reasonix/',
59
+ };
60
+ //# sourceMappingURL=reasonix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasonix.js","sourceRoot":"","sources":["../../src/defs/reasonix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGpE,kFAAkF;AAClF,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,mBAAmB;IACzB,GAAG,EAAE,UAAU;IACf,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CACtC,eAAe,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,CAAC,KAAK,CAAC;QACb,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,oBAAoB;KACzC,CAAC;IACJ,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC;IACxB,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,YAAY;IAC1B,oBAAoB,EAAE,WAAW;IACjC,eAAe,EAAE,KAAK;IACtB,GAAG,EAAE;QACH,aAAa,EAAE,YAAY,EAAE;KAC9B;IACD,cAAc,EAAE;QACd,oBAAoB;QACpB,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;QACnD,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;KACxD;IACD,UAAU,EAAE,+CAA+C;IAC3D,OAAO,EAAE,+CAA+C;CACjC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module defs/shared
3
+ *
4
+ * Small helpers shared across the per-CLI def literals: re-exports of
5
+ * `execAgentFile`/`DEFAULT_MODEL_OPTION` for convenience, the injected
6
+ * `detectAcpModels`/`parsePiModels` (see `../acp-model-probe.ts` /
7
+ * `../pi-models.ts` for why these are ports, not direct lifts), and two
8
+ * small generic parsers (`clampCodexReasoning`, `parseLineSeparatedModels`).
9
+ *
10
+ * Ported from OD's `apps/daemon/src/runtimes/defs/shared.ts` — the origin
11
+ * imported `detectAcpModels` from `../../acp.js` and `parsePiModels` from
12
+ * `../../pi-rpc.js` directly; here they come from this package's own
13
+ * port/vendor modules instead. See `source-map.md`.
14
+ */
15
+ import { detectAcpModels } from '../acp-model-probe.js';
16
+ import { parsePiModels } from '../pi-models.js';
17
+ import { execAgentFile } from '../invocation.js';
18
+ import { DEFAULT_MODEL_OPTION } from '../models.js';
19
+ import type { RuntimeModelOption } from '../types.js';
20
+ export { detectAcpModels, parsePiModels, execAgentFile, DEFAULT_MODEL_OPTION };
21
+ export declare function clampCodexReasoning(modelId: string | null | undefined, effort: string | null | undefined): string | null | undefined;
22
+ export declare function parseLineSeparatedModels(stdout: string): RuntimeModelOption[];
23
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/defs/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAE/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,6BAiBxG;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAc7E"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @module defs/shared
3
+ *
4
+ * Small helpers shared across the per-CLI def literals: re-exports of
5
+ * `execAgentFile`/`DEFAULT_MODEL_OPTION` for convenience, the injected
6
+ * `detectAcpModels`/`parsePiModels` (see `../acp-model-probe.ts` /
7
+ * `../pi-models.ts` for why these are ports, not direct lifts), and two
8
+ * small generic parsers (`clampCodexReasoning`, `parseLineSeparatedModels`).
9
+ *
10
+ * Ported from OD's `apps/daemon/src/runtimes/defs/shared.ts` — the origin
11
+ * imported `detectAcpModels` from `../../acp.js` and `parsePiModels` from
12
+ * `../../pi-rpc.js` directly; here they come from this package's own
13
+ * port/vendor modules instead. See `source-map.md`.
14
+ */
15
+ import { detectAcpModels } from '../acp-model-probe.js';
16
+ import { parsePiModels } from '../pi-models.js';
17
+ import { execAgentFile } from '../invocation.js';
18
+ import { DEFAULT_MODEL_OPTION } from '../models.js';
19
+ export { detectAcpModels, parsePiModels, execAgentFile, DEFAULT_MODEL_OPTION };
20
+ export function clampCodexReasoning(modelId, effort) {
21
+ if (!effort)
22
+ return effort;
23
+ const raw = String(modelId ?? '').trim();
24
+ const id = raw.includes('/') ? raw.split('/').pop() : raw;
25
+ const isGpt5LateFamily = !id ||
26
+ id === 'default' ||
27
+ id.startsWith('gpt-5.2') ||
28
+ id.startsWith('gpt-5.3') ||
29
+ id.startsWith('gpt-5.4') ||
30
+ id.startsWith('gpt-5.5');
31
+ if (isGpt5LateFamily && effort === 'minimal')
32
+ return 'low';
33
+ if (id === 'gpt-5.1' && effort === 'xhigh')
34
+ return 'high';
35
+ if (id === 'gpt-5.1-codex-mini') {
36
+ return effort === 'high' || effort === 'xhigh' ? 'high' : 'medium';
37
+ }
38
+ return effort;
39
+ }
40
+ // Parse one-id-per-line stdout from `<cli> models` and prepend the synthetic
41
+ // default option. Used by opencode / cursor-agent.
42
+ export function parseLineSeparatedModels(stdout) {
43
+ const ids = String(stdout || '')
44
+ .split('\n')
45
+ .map((line) => line.trim())
46
+ .filter((line) => line.length > 0 && !line.startsWith('#'));
47
+ // De-dupe while preserving order — some CLIs print near-duplicates.
48
+ const seen = new Set();
49
+ const out = [DEFAULT_MODEL_OPTION];
50
+ for (const id of ids) {
51
+ if (seen.has(id))
52
+ continue;
53
+ seen.add(id);
54
+ out.push({ id, label: id });
55
+ }
56
+ return out;
57
+ }
58
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/defs/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAE/E,MAAM,UAAU,mBAAmB,CAAC,OAAkC,EAAE,MAAiC;IACvG,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,MAAM,gBAAgB,GACpB,CAAC,EAAE;QACH,EAAE,KAAK,SAAS;QAChB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACxB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACxB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACxB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,IAAI,gBAAgB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IAC1D,IAAI,EAAE,KAAK,oBAAoB,EAAE,CAAC;QAChC,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,mDAAmD;AACnD,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;SAC7B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAyB,CAAC,oBAAoB,CAAC,CAAC;IACzD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const traeCliAgentDef: {
2
+ id: string;
3
+ name: string;
4
+ bin: string;
5
+ versionArgs: string[];
6
+ versionProbeTimeoutMs: number;
7
+ fetchModels: (resolvedBin: string, env: import("../types.js").RuntimeEnv) => Promise<import("../types.js").RuntimeModelOption[]>;
8
+ fallbackModels: import("../types.js").RuntimeModelOption[];
9
+ buildArgs: () => string[];
10
+ streamFormat: string;
11
+ mcpDiscovery: string;
12
+ externalMcpInjection: "acp-merge";
13
+ };
14
+ //# sourceMappingURL=trae-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trae-cli.d.ts","sourceRoot":"","sources":["../../src/defs/trae-cli.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;;;;;;;CAmBD,CAAC"}
@@ -0,0 +1,22 @@
1
+ /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/trae-cli.ts` (import path adjusted only). See `source-map.md`. */
2
+ import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
3
+ export const traeCliAgentDef = {
4
+ id: 'trae-cli',
5
+ name: 'Trae CLI',
6
+ bin: 'traecli',
7
+ versionArgs: ['--version'],
8
+ versionProbeTimeoutMs: 10_000,
9
+ fetchModels: async (resolvedBin, env) => detectAcpModels({
10
+ bin: resolvedBin,
11
+ args: ['acp', 'serve'],
12
+ env,
13
+ timeoutMs: 15_000,
14
+ defaultModelOption: DEFAULT_MODEL_OPTION,
15
+ }),
16
+ fallbackModels: [DEFAULT_MODEL_OPTION],
17
+ buildArgs: () => ['acp', 'serve', '--yolo'],
18
+ streamFormat: 'acp-json-rpc',
19
+ mcpDiscovery: 'mature-acp',
20
+ externalMcpInjection: 'acp-merge',
21
+ };
22
+ //# sourceMappingURL=trae-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trae-cli.js","sourceRoot":"","sources":["../../src/defs/trae-cli.ts"],"names":[],"mappings":"AAAA,8HAA8H;AAC9H,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGpE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,SAAS;IACd,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,qBAAqB,EAAE,MAAM;IAC7B,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CACtC,eAAe,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;QACtB,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,oBAAoB;KACzC,CAAC;IACJ,cAAc,EAAE,CAAC,oBAAoB,CAAC;IACtC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC3C,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,YAAY;IAC1B,oBAAoB,EAAE,WAAW;CACV,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const vibeAgentDef: {
2
+ id: string;
3
+ name: string;
4
+ bin: string;
5
+ versionArgs: string[];
6
+ fetchModels: (resolvedBin: string, env: import("../types.js").RuntimeEnv) => Promise<import("../types.js").RuntimeModelOption[]>;
7
+ fallbackModels: import("../types.js").RuntimeModelOption[];
8
+ buildArgs: () => never[];
9
+ streamFormat: string;
10
+ externalMcpInjection: "acp-merge";
11
+ };
12
+ //# sourceMappingURL=vibe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe.d.ts","sourceRoot":"","sources":["../../src/defs/vibe.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;;;;;;;CAiBE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/vibe.ts` (import path adjusted only). See `source-map.md`. */
2
+ import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
3
+ export const vibeAgentDef = {
4
+ id: 'vibe',
5
+ name: 'Mistral Vibe CLI',
6
+ bin: 'vibe-acp',
7
+ versionArgs: ['--version'],
8
+ fetchModels: async (resolvedBin, env) => detectAcpModels({
9
+ bin: resolvedBin,
10
+ args: [],
11
+ env,
12
+ timeoutMs: 15_000,
13
+ defaultModelOption: DEFAULT_MODEL_OPTION,
14
+ }),
15
+ fallbackModels: [DEFAULT_MODEL_OPTION],
16
+ buildArgs: () => [],
17
+ streamFormat: 'acp-json-rpc',
18
+ externalMcpInjection: 'acp-merge',
19
+ };
20
+ //# sourceMappingURL=vibe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe.js","sourceRoot":"","sources":["../../src/defs/vibe.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGpE,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CACtC,eAAe,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,EAAE;QACR,GAAG;QACH,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,oBAAoB;KACzC,CAAC;IACJ,cAAc,EAAE,CAAC,oBAAoB,CAAC;IACtC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;IACnB,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,WAAW;CACV,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type AmrProfileResolver } from './amr-profile-resolver.js';
2
+ import type { AgentDiagnostic, DetectedAgent, RuntimeAgentDef, RuntimeModelSource, RuntimeModelOption } from './types.js';
3
+ export declare function detectAgents(configuredEnvByAgent?: Record<string, Record<string, string>>, amrProfileResolver?: AmrProfileResolver): Promise<(Omit<RuntimeAgentDef, "buildArgs" | "listModels" | "fetchModels" | "fallbackModels" | "helpArgs" | "capabilityFlags" | "fallbackBins" | "versionProbeTimeoutMs" | "maxPromptArgBytes" | "env" | "inactivityTimeoutMs" | "authProbe"> & {
4
+ models: RuntimeModelOption[];
5
+ modelsSource: RuntimeModelSource;
6
+ available: boolean;
7
+ authStatus?: "ok" | "missing" | "unknown";
8
+ authMessage?: string;
9
+ path?: string;
10
+ version?: string | null;
11
+ diagnostics?: AgentDiagnostic[];
12
+ })[]>;
13
+ export declare function detectAgentsStream(configuredEnvByAgent?: Record<string, Record<string, string>>, amrProfileResolver?: AmrProfileResolver): AsyncGenerator<DetectedAgent>;
14
+ //# sourceMappingURL=detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../src/detection.ts"],"names":[],"mappings":"AAqBA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAEf,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAiQpB,wBAAsB,YAAY,CAChC,oBAAoB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACjE,kBAAkB,GAAE,kBAA2C;;;;;;;;;MAgBhE;AAQD,wBAAuB,kBAAkB,CACvC,oBAAoB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACjE,kBAAkB,GAAE,kBAA2C,GAC9D,cAAc,CAAC,aAAa,CAAC,CAa/B"}
@@ -0,0 +1,266 @@
1
+ /**
2
+ * @module detection
3
+ *
4
+ * Probes each registered agent def's version/auth/model availability and
5
+ * builds a `DetectedAgent`. Ported from OD's
6
+ * `apps/daemon/src/runtimes/detection/detection.ts` with one change: the
7
+ * origin's `import { resolveAmrProfile } from '../../integrations/vela.js'`
8
+ * — an OD-specific AMR/vela provider adapter — becomes an injected
9
+ * `AmrProfileResolver` port (see `amr-profile-resolver.ts`), defaulting to
10
+ * a no-op. `detectAgents`/`detectAgentsStream` take it as an optional last
11
+ * parameter; every other agent's detection path is unaffected. See
12
+ * `source-map.md`.
13
+ */
14
+ import { execAgentFile } from './invocation.js';
15
+ import { getRememberedLiveModels, rememberLiveModels } from './models.js';
16
+ import { agentCapabilities } from './capabilities.js';
17
+ import { installMetaForAgent } from './metadata.js';
18
+ import { AGENT_DEFS } from './registry.js';
19
+ import { applyAgentLaunchEnv, resolveAgentLaunch } from './launch.js';
20
+ import { spawnEnvForAgent } from './env.js';
21
+ import { probeAgentAuthStatus } from './auth.js';
22
+ import { noopAmrProfileResolver } from './amr-profile-resolver.js';
23
+ import { buildAuthDiagnostic, buildExecutableDiagnostic, buildNotInvocableDiagnostic } from './diagnostics.js';
24
+ function amrModelScopeFromEnv(env, amrProfileResolver) {
25
+ return amrProfileResolver.resolveProfile(env);
26
+ }
27
+ function withRememberedAmrModels(def, env, modelResult, amrProfileResolver) {
28
+ if (def.id !== 'amr' || modelResult.models.length > 0)
29
+ return modelResult;
30
+ const rememberedModels = getRememberedLiveModels(def.id, amrModelScopeFromEnv(env, amrProfileResolver));
31
+ if (rememberedModels.length === 0)
32
+ return modelResult;
33
+ return { models: rememberedModels, source: 'live' };
34
+ }
35
+ async function fetchModels(def, resolvedBin, env) {
36
+ if (typeof def.fetchModels === 'function') {
37
+ try {
38
+ const parsed = await def.fetchModels(resolvedBin, env);
39
+ if (!parsed || parsed.length === 0) {
40
+ return { models: def.fallbackModels, source: 'fallback' };
41
+ }
42
+ return { models: parsed, source: 'live' };
43
+ }
44
+ catch {
45
+ return { models: def.fallbackModels, source: 'fallback' };
46
+ }
47
+ }
48
+ if (!def.listModels) {
49
+ return { models: def.fallbackModels, source: 'fallback' };
50
+ }
51
+ try {
52
+ const { stdout } = await execAgentFile(resolvedBin, def.listModels.args, {
53
+ env,
54
+ timeout: def.listModels.timeoutMs,
55
+ // Models lists from popular CLIs (e.g. opencode) easily exceed the
56
+ // default 1MB buffer once you include every openrouter model. Bump
57
+ // it so we don't truncate the listing.
58
+ maxBuffer: 8 * 1024 * 1024,
59
+ });
60
+ const parsed = def.listModels.parse(String(stdout));
61
+ // Empty / null parse result means the CLI didn't actually return a
62
+ // usable list (e.g. cursor-agent's "No models available"); fall back
63
+ // to the static hint so the picker isn't stuck on Default-only.
64
+ if (!parsed || parsed.length === 0) {
65
+ return { models: def.fallbackModels, source: 'fallback' };
66
+ }
67
+ return { models: parsed, source: 'live' };
68
+ }
69
+ catch {
70
+ return { models: def.fallbackModels, source: 'fallback' };
71
+ }
72
+ }
73
+ /**
74
+ * Run the agent's `--version` probe and classify the result. The probe
75
+ * has two distinct failure modes the catch arm has to discriminate:
76
+ *
77
+ * - **Not invocable.** The OS rejected the spawn outright, OR the
78
+ * wrapper script spawned but its underlying interpreter / target
79
+ * failed. We split permission failures (EACCES / exit 126) from
80
+ * missing-target failures (ENOENT / ENOTDIR / exit 127) so a settings
81
+ * UI can offer permission-specific copy instead of treating every
82
+ * failure as a broken shim. We still mark the agent unavailable so
83
+ * the UI does not advertise a ghost entry.
84
+ *
85
+ * - **Spawned but `--version` was unhappy.** The binary itself ran
86
+ * (any other rejection: timeout, generic non-zero exit, stderr
87
+ * noise) so the CLI is invocable; we just can't read a version
88
+ * string. Adapters whose `--version` flag is unsupported land
89
+ * here and must keep working with `version: null`.
90
+ *
91
+ * `child_process.execFile` reports OS-level rejections with a string
92
+ * `err.code` (`'ENOENT'`, `'EACCES'`, `'ENOTDIR'`) and non-zero exit codes
93
+ * with a *numeric* `err.code` equal to the exit status, so the two arms
94
+ * below are unambiguous.
95
+ */
96
+ async function probeVersionAtPath(def, resolved, env) {
97
+ try {
98
+ const { stdout } = await execAgentFile(resolved, def.versionArgs, {
99
+ env,
100
+ timeout: def.versionProbeTimeoutMs ?? 3000,
101
+ });
102
+ // `String.split()` on a non-empty string always returns at least one
103
+ // element, so `[0]` is never `undefined` here — the assertion just
104
+ // satisfies `noUncheckedIndexedAccess`.
105
+ const version = String(stdout).trim().split('\n')[0];
106
+ return { kind: 'spawned', version };
107
+ }
108
+ catch (err) {
109
+ const code = err?.code;
110
+ if (typeof code === 'string') {
111
+ if (code === 'EACCES')
112
+ return { kind: 'not-invocable', cause: 'not-executable' };
113
+ if (code === 'ENOENT' || code === 'ENOTDIR')
114
+ return { kind: 'not-invocable', cause: 'missing-target' };
115
+ }
116
+ else if (typeof code === 'number' && (code === 126 || code === 127)) {
117
+ return { kind: 'not-invocable', cause: code === 126 ? 'not-executable' : 'missing-target' };
118
+ }
119
+ return { kind: 'spawned', version: null };
120
+ }
121
+ }
122
+ function unavailableAgent(def, diagnostics = []) {
123
+ return {
124
+ ...stripFns(def),
125
+ // `fallbackModels` is a required field on `RuntimeAgentDef`, never
126
+ // `undefined` for a well-typed def.
127
+ models: def.fallbackModels,
128
+ modelsSource: 'fallback',
129
+ available: false,
130
+ ...(diagnostics.length > 0 ? { diagnostics } : {}),
131
+ ...installMetaForAgent(def.id),
132
+ };
133
+ }
134
+ // Probe the agent's `--help` once and record which advertised flags the
135
+ // installed CLI supports, so buildArgs can consult the cache. Extracted
136
+ // from the main probe so it can run concurrently with model + auth probing
137
+ // instead of blocking them. Returns the capability map (or null when the
138
+ // agent declares no help/capability metadata or the probe failed).
139
+ async function probeCapabilities(def, launchPath, env) {
140
+ if (!def.helpArgs || !def.capabilityFlags)
141
+ return null;
142
+ try {
143
+ const { stdout } = await execAgentFile(launchPath, def.helpArgs, { env, timeout: 5000, maxBuffer: 4 * 1024 * 1024 });
144
+ const caps = {};
145
+ for (const [flag, key] of Object.entries(def.capabilityFlags)) {
146
+ caps[key] = String(stdout).includes(flag);
147
+ }
148
+ return caps;
149
+ }
150
+ catch {
151
+ // If --help fails, leave caps empty so buildArgs falls back to the
152
+ // safe baseline (no optional flags).
153
+ return {};
154
+ }
155
+ }
156
+ async function probe(def, configuredEnv = {}, amrProfileResolver) {
157
+ // Detection must probe the exact path the runtime will spawn, not just
158
+ // the PATH-visible shim. This is load-bearing under nvm/fnm/mise: the
159
+ // discovered entry is often a `#!/usr/bin/env node` wrapper that is not
160
+ // invocable from a GUI-launched app's stripped PATH, while the launch
161
+ // resolver can still upgrade it to a packaged native binary. If
162
+ // detection probes the shim but chat/run spawns the native binary, the
163
+ // UI incorrectly reports "not installed" until the user pins the bin
164
+ // override by hand even though the real launch path is healthy.
165
+ const launch = resolveAgentLaunch(def, configuredEnv);
166
+ if (!launch.selectedPath || !launch.launchPath) {
167
+ return unavailableAgent(def, [buildExecutableDiagnostic(def, configuredEnv)]);
168
+ }
169
+ const probeEnv = applyAgentLaunchEnv(spawnEnvForAgent(def.id, { ...process.env, ...(def.env || {}) }, configuredEnv, undefined, {}), launch);
170
+ const outcome = await probeVersionAtPath(def, launch.launchPath, probeEnv);
171
+ if (outcome.kind === 'not-invocable') {
172
+ return unavailableAgent(def, [buildNotInvocableDiagnostic(def, launch, outcome.cause)]);
173
+ }
174
+ // The version probe must finish first (it gates availability), but the
175
+ // three post-version probes are independent reads — run them
176
+ // concurrently so a single agent's detection wall is
177
+ // max(help, models, auth) instead of the sum. `--help` capabilities are
178
+ // cached on `agentCapabilities` for buildArgs to consult.
179
+ const [caps, modelResult, auth] = await Promise.all([
180
+ probeCapabilities(def, launch.launchPath, probeEnv),
181
+ fetchModels(def, launch.launchPath, probeEnv),
182
+ probeAgentAuthStatus(def, launch.launchPath, probeEnv),
183
+ ]);
184
+ const surfacedModelResult = withRememberedAmrModels(def, probeEnv, modelResult, amrProfileResolver);
185
+ if (caps) {
186
+ agentCapabilities.set(def.id, caps);
187
+ }
188
+ const authDiagnostic = auth ? buildAuthDiagnostic(def, auth) : null;
189
+ return {
190
+ ...stripFns(def),
191
+ models: surfacedModelResult.models,
192
+ modelsSource: surfacedModelResult.source,
193
+ available: true,
194
+ path: launch.selectedPath,
195
+ version: outcome.version,
196
+ ...(auth ? { authStatus: auth.status, ...(auth.message ? { authMessage: auth.message } : {}) } : {}),
197
+ ...(authDiagnostic ? { diagnostics: [authDiagnostic] } : {}),
198
+ ...installMetaForAgent(def.id),
199
+ };
200
+ }
201
+ function stripFns(def) {
202
+ // Drop the buildArgs / listModels closures but keep declarative metadata
203
+ // (reasoningOptions, streamFormat, name, bin, etc.). `models` is
204
+ // populated separately by `fetchModels`, so we strip the static
205
+ // `fallbackModels` slot here too. `helpArgs` / `capabilityFlags` /
206
+ // `fallbackBins` / `maxPromptArgBytes` / `env` are probe-or-spawn-only
207
+ // metadata and shouldn't bleed into an API response either.
208
+ // `inactivityTimeoutMs` is a spawn-time hint for a chat-run watchdog and
209
+ // is not part of a public AgentInfo contract — strip it here so the
210
+ // runtime registry stays the only consumer.
211
+ const { buildArgs: _buildArgs, listModels: _listModels, fetchModels: _fetchModels, fallbackModels: _fallbackModels, helpArgs: _helpArgs, capabilityFlags: _capabilityFlags, fallbackBins: _fallbackBins, versionProbeTimeoutMs: _versionProbeTimeoutMs, maxPromptArgBytes: _maxPromptArgBytes, env: _env, inactivityTimeoutMs: _inactivityTimeoutMs, authProbe: _authProbe, ...rest } = def;
212
+ return rest;
213
+ }
214
+ async function safeProbe(def, configuredEnv = {}, amrProfileResolver) {
215
+ try {
216
+ return await probe(def, configuredEnv, amrProfileResolver);
217
+ }
218
+ catch {
219
+ // Fault isolation: one adapter's probe blowing up — e.g. a
220
+ // synchronous filesystem throw during PATH walking on a packaged
221
+ // Windows host, or an async rejection from one of the post-launch
222
+ // probes — must not collapse the whole agent picker.
223
+ return unavailableAgent(def);
224
+ }
225
+ }
226
+ function rememberDetectedLiveModels(def, configuredEnv, agent, amrProfileResolver) {
227
+ if (def.id === 'amr' && agent.models.length === 0)
228
+ return;
229
+ const scope = def.id === 'amr'
230
+ ? amrModelScopeFromEnv({ ...process.env, ...(def.env || {}), ...configuredEnv }, amrProfileResolver)
231
+ : null;
232
+ rememberLiveModels(agent.id, agent.models, scope);
233
+ }
234
+ export async function detectAgents(configuredEnvByAgent = {}, amrProfileResolver = noopAmrProfileResolver) {
235
+ const results = await Promise.all(AGENT_DEFS.map((def) => safeProbe(def, configuredEnvByAgent?.[def.id] ?? {}, amrProfileResolver)));
236
+ // Refresh the validation cache from whatever we just surfaced to the UI
237
+ // so a chat endpoint can accept any model the user could have just
238
+ // picked, including ones that only showed up after a CLI re-auth.
239
+ for (const [index, agent] of results.entries()) {
240
+ // `results` is `AGENT_DEFS.map(...)`, so every index in `results.entries()`
241
+ // is in-bounds for `AGENT_DEFS` too — the assertion just satisfies
242
+ // `noUncheckedIndexedAccess`.
243
+ const def = AGENT_DEFS[index];
244
+ rememberDetectedLiveModels(def, configuredEnvByAgent?.[def.id] ?? {}, agent, amrProfileResolver);
245
+ }
246
+ return results;
247
+ }
248
+ // Streaming variant: yields each agent the moment its probe settles, in
249
+ // completion order rather than registry order, so the UI can paint a card
250
+ // as soon as it resolves instead of waiting for the slowest CLI. The model
251
+ // validation cache is refreshed per-agent (same effect as the batch path,
252
+ // just incrementally). `detectAgents` keeps the array contract for callers
253
+ // that don't care about incremental delivery.
254
+ export async function* detectAgentsStream(configuredEnvByAgent = {}, amrProfileResolver = noopAmrProfileResolver) {
255
+ const tagged = AGENT_DEFS.map((def, index) => safeProbe(def, configuredEnvByAgent?.[def.id] ?? {}, amrProfileResolver).then((agent) => {
256
+ rememberDetectedLiveModels(def, configuredEnvByAgent?.[def.id] ?? {}, agent, amrProfileResolver);
257
+ return { index, agent };
258
+ }));
259
+ const pending = new Set(tagged.keys());
260
+ while (pending.size > 0) {
261
+ const { index, agent } = await Promise.race(tagged.filter((_, i) => pending.has(i)));
262
+ pending.delete(index);
263
+ yield agent;
264
+ }
265
+ }
266
+ //# sourceMappingURL=detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection.js","sourceRoot":"","sources":["../src/detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { AgentLaunchResolution } from './launch.js';
2
+ import type { AgentAuthProbeResult } from './auth.js';
3
+ import type { AgentDiagnostic, RuntimeAgentDef } from './types.js';
4
+ export declare function buildExecutableDiagnostic(def: Pick<RuntimeAgentDef, 'id' | 'name' | 'bin'>, configuredEnv?: Record<string, string>): AgentDiagnostic;
5
+ export type NotInvocableCause = 'not-executable' | 'missing-target';
6
+ export declare function buildNotInvocableDiagnostic(def: Pick<RuntimeAgentDef, 'id' | 'name'>, launch: Pick<AgentLaunchResolution, 'selectedPath' | 'launchPath'>, cause: NotInvocableCause): AgentDiagnostic;
7
+ export declare function buildAuthDiagnostic(def: Pick<RuntimeAgentDef, 'id' | 'name'>, auth: AgentAuthProbeResult): AgentDiagnostic | null;
8
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAiBnF,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,EACjD,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACzC,eAAe,CAmBjB;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAMpE,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,EACzC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,cAAc,GAAG,YAAY,CAAC,EAClE,KAAK,EAAE,iBAAiB,GACvB,eAAe,CAiBjB;AAOD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,EACzC,IAAI,EAAE,oBAAoB,GACzB,eAAe,GAAG,IAAI,CAmBxB"}