@kortix/sdk 0.9.98

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 (618) hide show
  1. package/README.md +313 -0
  2. package/dist/files/client.d.ts +96 -0
  3. package/dist/files/client.d.ts.map +1 -0
  4. package/dist/files/client.js +346 -0
  5. package/dist/files/client.js.map +1 -0
  6. package/dist/files/types.d.ts +82 -0
  7. package/dist/files/types.d.ts.map +1 -0
  8. package/dist/files/types.js +6 -0
  9. package/dist/files/types.js.map +1 -0
  10. package/dist/index.d.ts +119 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +93 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/kortix.d.ts +897 -0
  15. package/dist/kortix.d.ts.map +1 -0
  16. package/dist/kortix.js +772 -0
  17. package/dist/kortix.js.map +1 -0
  18. package/dist/opencode/client.d.ts +89 -0
  19. package/dist/opencode/client.d.ts.map +1 -0
  20. package/dist/opencode/client.js +191 -0
  21. package/dist/opencode/client.js.map +1 -0
  22. package/dist/opencode/env.d.ts +13 -0
  23. package/dist/opencode/env.d.ts.map +1 -0
  24. package/dist/opencode/env.js +63 -0
  25. package/dist/opencode/env.js.map +1 -0
  26. package/dist/opencode/kortix-master.d.ts +487 -0
  27. package/dist/opencode/kortix-master.d.ts.map +1 -0
  28. package/dist/opencode/kortix-master.js +313 -0
  29. package/dist/opencode/kortix-master.js.map +1 -0
  30. package/dist/opencode/triggers.d.ts +6 -0
  31. package/dist/opencode/triggers.d.ts.map +1 -0
  32. package/dist/opencode/triggers.js +34 -0
  33. package/dist/opencode/triggers.js.map +1 -0
  34. package/dist/platform/api/errors.d.ts +106 -0
  35. package/dist/platform/api/errors.d.ts.map +1 -0
  36. package/dist/platform/api/errors.js +137 -0
  37. package/dist/platform/api/errors.js.map +1 -0
  38. package/dist/platform/api-client.d.ts +35 -0
  39. package/dist/platform/api-client.d.ts.map +1 -0
  40. package/dist/platform/api-client.js +279 -0
  41. package/dist/platform/api-client.js.map +1 -0
  42. package/dist/platform/auth-core.d.ts +60 -0
  43. package/dist/platform/auth-core.d.ts.map +1 -0
  44. package/dist/platform/auth-core.js +104 -0
  45. package/dist/platform/auth-core.js.map +1 -0
  46. package/dist/platform/auth.d.ts +88 -0
  47. package/dist/platform/auth.d.ts.map +1 -0
  48. package/dist/platform/auth.js +161 -0
  49. package/dist/platform/auth.js.map +1 -0
  50. package/dist/platform/config-node.d.ts +33 -0
  51. package/dist/platform/config-node.d.ts.map +1 -0
  52. package/dist/platform/config-node.js +63 -0
  53. package/dist/platform/config-node.js.map +1 -0
  54. package/dist/platform/config.d.ts +77 -0
  55. package/dist/platform/config.d.ts.map +1 -0
  56. package/dist/platform/config.js +62 -0
  57. package/dist/platform/config.js.map +1 -0
  58. package/dist/platform/feature-flags.d.ts +25 -0
  59. package/dist/platform/feature-flags.d.ts.map +1 -0
  60. package/dist/platform/feature-flags.js +114 -0
  61. package/dist/platform/feature-flags.js.map +1 -0
  62. package/dist/platform/fresh-sessions.d.ts +4 -0
  63. package/dist/platform/fresh-sessions.d.ts.map +1 -0
  64. package/dist/platform/fresh-sessions.js +22 -0
  65. package/dist/platform/fresh-sessions.js.map +1 -0
  66. package/dist/platform/instance-routes.d.ts +17 -0
  67. package/dist/platform/instance-routes.d.ts.map +1 -0
  68. package/dist/platform/instance-routes.js +105 -0
  69. package/dist/platform/instance-routes.js.map +1 -0
  70. package/dist/platform/logger.d.ts +20 -0
  71. package/dist/platform/logger.d.ts.map +1 -0
  72. package/dist/platform/logger.js +44 -0
  73. package/dist/platform/logger.js.map +1 -0
  74. package/dist/platform/opencode-errors.d.ts +20 -0
  75. package/dist/platform/opencode-errors.d.ts.map +1 -0
  76. package/dist/platform/opencode-errors.js +71 -0
  77. package/dist/platform/opencode-errors.js.map +1 -0
  78. package/dist/platform/platform-client/backups.d.ts +22 -0
  79. package/dist/platform/platform-client/backups.d.ts.map +1 -0
  80. package/dist/platform/platform-client/backups.js +16 -0
  81. package/dist/platform/platform-client/backups.js.map +1 -0
  82. package/dist/platform/platform-client/index.d.ts +21 -0
  83. package/dist/platform/platform-client/index.d.ts.map +1 -0
  84. package/dist/platform/platform-client/index.js +21 -0
  85. package/dist/platform/platform-client/index.js.map +1 -0
  86. package/dist/platform/platform-client/instance-admin.d.ts +67 -0
  87. package/dist/platform/platform-client/instance-admin.d.ts.map +1 -0
  88. package/dist/platform/platform-client/instance-admin.js +59 -0
  89. package/dist/platform/platform-client/instance-admin.js.map +1 -0
  90. package/dist/platform/platform-client/invites.d.ts +35 -0
  91. package/dist/platform/platform-client/invites.d.ts.map +1 -0
  92. package/dist/platform/platform-client/invites.js +25 -0
  93. package/dist/platform/platform-client/invites.js.map +1 -0
  94. package/dist/platform/platform-client/lifecycle.d.ts +78 -0
  95. package/dist/platform/platform-client/lifecycle.d.ts.map +1 -0
  96. package/dist/platform/platform-client/lifecycle.js +151 -0
  97. package/dist/platform/platform-client/lifecycle.js.map +1 -0
  98. package/dist/platform/platform-client/members.d.ts +81 -0
  99. package/dist/platform/platform-client/members.d.ts.map +1 -0
  100. package/dist/platform/platform-client/members.js +59 -0
  101. package/dist/platform/platform-client/members.js.map +1 -0
  102. package/dist/platform/platform-client/shared.d.ts +44 -0
  103. package/dist/platform/platform-client/shared.d.ts.map +1 -0
  104. package/dist/platform/platform-client/shared.js +177 -0
  105. package/dist/platform/platform-client/shared.js.map +1 -0
  106. package/dist/platform/platform-client/ssh.d.ts +29 -0
  107. package/dist/platform/platform-client/ssh.d.ts.map +1 -0
  108. package/dist/platform/platform-client/ssh.js +14 -0
  109. package/dist/platform/platform-client/ssh.js.map +1 -0
  110. package/dist/platform/platform-client/types.d.ts +56 -0
  111. package/dist/platform/platform-client/types.d.ts.map +1 -0
  112. package/dist/platform/platform-client/types.js +19 -0
  113. package/dist/platform/platform-client/types.js.map +1 -0
  114. package/dist/platform/platform-client/updates.d.ts +117 -0
  115. package/dist/platform/platform-client/updates.d.ts.map +1 -0
  116. package/dist/platform/platform-client/updates.js +97 -0
  117. package/dist/platform/platform-client/updates.js.map +1 -0
  118. package/dist/platform/platform-client/urls.d.ts +18 -0
  119. package/dist/platform/platform-client/urls.d.ts.map +1 -0
  120. package/dist/platform/platform-client/urls.js +31 -0
  121. package/dist/platform/platform-client/urls.js.map +1 -0
  122. package/dist/platform/projects-client/access.d.ts +273 -0
  123. package/dist/platform/projects-client/access.d.ts.map +1 -0
  124. package/dist/platform/projects-client/access.js +89 -0
  125. package/dist/platform/projects-client/access.js.map +1 -0
  126. package/dist/platform/projects-client/accounts.d.ts +184 -0
  127. package/dist/platform/projects-client/accounts.d.ts.map +1 -0
  128. package/dist/platform/projects-client/accounts.js +78 -0
  129. package/dist/platform/projects-client/accounts.js.map +1 -0
  130. package/dist/platform/projects-client/agent-config.d.ts +58 -0
  131. package/dist/platform/projects-client/agent-config.d.ts.map +1 -0
  132. package/dist/platform/projects-client/agent-config.js +9 -0
  133. package/dist/platform/projects-client/agent-config.js.map +1 -0
  134. package/dist/platform/projects-client/agent-scope.d.ts +12 -0
  135. package/dist/platform/projects-client/agent-scope.d.ts.map +1 -0
  136. package/dist/platform/projects-client/agent-scope.js +6 -0
  137. package/dist/platform/projects-client/agent-scope.js.map +1 -0
  138. package/dist/platform/projects-client/apps.d.ts +98 -0
  139. package/dist/platform/projects-client/apps.d.ts.map +1 -0
  140. package/dist/platform/projects-client/apps.js +29 -0
  141. package/dist/platform/projects-client/apps.js.map +1 -0
  142. package/dist/platform/projects-client/audit.d.ts +85 -0
  143. package/dist/platform/projects-client/audit.d.ts.map +1 -0
  144. package/dist/platform/projects-client/audit.js +51 -0
  145. package/dist/platform/projects-client/audit.js.map +1 -0
  146. package/dist/platform/projects-client/billing.d.ts +336 -0
  147. package/dist/platform/projects-client/billing.d.ts.map +1 -0
  148. package/dist/platform/projects-client/billing.js +260 -0
  149. package/dist/platform/projects-client/billing.js.map +1 -0
  150. package/dist/platform/projects-client/change-requests.d.ts +119 -0
  151. package/dist/platform/projects-client/change-requests.d.ts.map +1 -0
  152. package/dist/platform/projects-client/change-requests.js +56 -0
  153. package/dist/platform/projects-client/change-requests.js.map +1 -0
  154. package/dist/platform/projects-client/channels.d.ts +135 -0
  155. package/dist/platform/projects-client/channels.d.ts.map +1 -0
  156. package/dist/platform/projects-client/channels.js +103 -0
  157. package/dist/platform/projects-client/channels.js.map +1 -0
  158. package/dist/platform/projects-client/connectors.d.ts +148 -0
  159. package/dist/platform/projects-client/connectors.d.ts.map +1 -0
  160. package/dist/platform/projects-client/connectors.js +66 -0
  161. package/dist/platform/projects-client/connectors.js.map +1 -0
  162. package/dist/platform/projects-client/files.d.ts +37 -0
  163. package/dist/platform/projects-client/files.d.ts.map +1 -0
  164. package/dist/platform/projects-client/files.js +58 -0
  165. package/dist/platform/projects-client/files.js.map +1 -0
  166. package/dist/platform/projects-client/gateway.d.ts +177 -0
  167. package/dist/platform/projects-client/gateway.d.ts.map +1 -0
  168. package/dist/platform/projects-client/gateway.js +59 -0
  169. package/dist/platform/projects-client/gateway.js.map +1 -0
  170. package/dist/platform/projects-client/git-history.d.ts +74 -0
  171. package/dist/platform/projects-client/git-history.d.ts.map +1 -0
  172. package/dist/platform/projects-client/git-history.js +40 -0
  173. package/dist/platform/projects-client/git-history.js.map +1 -0
  174. package/dist/platform/projects-client/github.d.ts +62 -0
  175. package/dist/platform/projects-client/github.d.ts.map +1 -0
  176. package/dist/platform/projects-client/github.js +30 -0
  177. package/dist/platform/projects-client/github.js.map +1 -0
  178. package/dist/platform/projects-client/index.d.ts +32 -0
  179. package/dist/platform/projects-client/index.d.ts.map +1 -0
  180. package/dist/platform/projects-client/index.js +34 -0
  181. package/dist/platform/projects-client/index.js.map +1 -0
  182. package/dist/platform/projects-client/marketplace-catalog.d.ts +76 -0
  183. package/dist/platform/projects-client/marketplace-catalog.d.ts.map +1 -0
  184. package/dist/platform/projects-client/marketplace-catalog.js +48 -0
  185. package/dist/platform/projects-client/marketplace-catalog.js.map +1 -0
  186. package/dist/platform/projects-client/marketplace.d.ts +80 -0
  187. package/dist/platform/projects-client/marketplace.d.ts.map +1 -0
  188. package/dist/platform/projects-client/marketplace.js +52 -0
  189. package/dist/platform/projects-client/marketplace.js.map +1 -0
  190. package/dist/platform/projects-client/model-defaults.d.ts +36 -0
  191. package/dist/platform/projects-client/model-defaults.d.ts.map +1 -0
  192. package/dist/platform/projects-client/model-defaults.js +16 -0
  193. package/dist/platform/projects-client/model-defaults.js.map +1 -0
  194. package/dist/platform/projects-client/policies.d.ts +21 -0
  195. package/dist/platform/projects-client/policies.d.ts.map +1 -0
  196. package/dist/platform/projects-client/policies.js +10 -0
  197. package/dist/platform/projects-client/policies.js.map +1 -0
  198. package/dist/platform/projects-client/projects.d.ts +235 -0
  199. package/dist/platform/projects-client/projects.d.ts.map +1 -0
  200. package/dist/platform/projects-client/projects.js +161 -0
  201. package/dist/platform/projects-client/projects.js.map +1 -0
  202. package/dist/platform/projects-client/public-session-shares.d.ts +52 -0
  203. package/dist/platform/projects-client/public-session-shares.d.ts.map +1 -0
  204. package/dist/platform/projects-client/public-session-shares.js +54 -0
  205. package/dist/platform/projects-client/public-session-shares.js.map +1 -0
  206. package/dist/platform/projects-client/review.d.ts +57 -0
  207. package/dist/platform/projects-client/review.d.ts.map +1 -0
  208. package/dist/platform/projects-client/review.js +28 -0
  209. package/dist/platform/projects-client/review.js.map +1 -0
  210. package/dist/platform/projects-client/sandbox-shares.d.ts +25 -0
  211. package/dist/platform/projects-client/sandbox-shares.d.ts.map +1 -0
  212. package/dist/platform/projects-client/sandbox-shares.js +29 -0
  213. package/dist/platform/projects-client/sandbox-shares.js.map +1 -0
  214. package/dist/platform/projects-client/sandbox.d.ts +123 -0
  215. package/dist/platform/projects-client/sandbox.d.ts.map +1 -0
  216. package/dist/platform/projects-client/sandbox.js +45 -0
  217. package/dist/platform/projects-client/sandbox.js.map +1 -0
  218. package/dist/platform/projects-client/secrets.d.ts +122 -0
  219. package/dist/platform/projects-client/secrets.d.ts.map +1 -0
  220. package/dist/platform/projects-client/secrets.js +34 -0
  221. package/dist/platform/projects-client/secrets.js.map +1 -0
  222. package/dist/platform/projects-client/session-sandbox.d.ts +61 -0
  223. package/dist/platform/projects-client/session-sandbox.d.ts.map +1 -0
  224. package/dist/platform/projects-client/session-sandbox.js +82 -0
  225. package/dist/platform/projects-client/session-sandbox.js.map +1 -0
  226. package/dist/platform/projects-client/sessions.d.ts +216 -0
  227. package/dist/platform/projects-client/sessions.d.ts.map +1 -0
  228. package/dist/platform/projects-client/sessions.js +74 -0
  229. package/dist/platform/projects-client/sessions.js.map +1 -0
  230. package/dist/platform/projects-client/setup-links.d.ts +35 -0
  231. package/dist/platform/projects-client/setup-links.d.ts.map +1 -0
  232. package/dist/platform/projects-client/setup-links.js +24 -0
  233. package/dist/platform/projects-client/setup-links.js.map +1 -0
  234. package/dist/platform/projects-client/shared.d.ts +66 -0
  235. package/dist/platform/projects-client/shared.d.ts.map +1 -0
  236. package/dist/platform/projects-client/shared.js +44 -0
  237. package/dist/platform/projects-client/shared.js.map +1 -0
  238. package/dist/platform/projects-client/tokens.d.ts +77 -0
  239. package/dist/platform/projects-client/tokens.d.ts.map +1 -0
  240. package/dist/platform/projects-client/tokens.js +43 -0
  241. package/dist/platform/projects-client/tokens.js.map +1 -0
  242. package/dist/platform/projects-client/transcription.d.ts +5 -0
  243. package/dist/platform/projects-client/transcription.d.ts.map +1 -0
  244. package/dist/platform/projects-client/transcription.js +14 -0
  245. package/dist/platform/projects-client/transcription.js.map +1 -0
  246. package/dist/platform/projects-client/triggers.d.ts +102 -0
  247. package/dist/platform/projects-client/triggers.d.ts.map +1 -0
  248. package/dist/platform/projects-client/triggers.js +27 -0
  249. package/dist/platform/projects-client/triggers.js.map +1 -0
  250. package/dist/platform/session-id.d.ts +9 -0
  251. package/dist/platform/session-id.d.ts.map +1 -0
  252. package/dist/platform/session-id.js +23 -0
  253. package/dist/platform/session-id.js.map +1 -0
  254. package/dist/platform/storage/managed-storage.d.ts +97 -0
  255. package/dist/platform/storage/managed-storage.d.ts.map +1 -0
  256. package/dist/platform/storage/managed-storage.js +271 -0
  257. package/dist/platform/storage/managed-storage.js.map +1 -0
  258. package/dist/platform/strings.d.ts +12 -0
  259. package/dist/platform/strings.d.ts.map +1 -0
  260. package/dist/platform/strings.js +17 -0
  261. package/dist/platform/strings.js.map +1 -0
  262. package/dist/platform/ui.d.ts +11 -0
  263. package/dist/platform/ui.d.ts.map +1 -0
  264. package/dist/platform/ui.js +22 -0
  265. package/dist/platform/ui.js.map +1 -0
  266. package/dist/react/chat/index.d.ts +3 -0
  267. package/dist/react/chat/index.d.ts.map +1 -0
  268. package/dist/react/chat/index.js +7 -0
  269. package/dist/react/chat/index.js.map +1 -0
  270. package/dist/react/chat/render-parts.d.ts +39 -0
  271. package/dist/react/chat/render-parts.d.ts.map +1 -0
  272. package/dist/react/chat/render-parts.js +34 -0
  273. package/dist/react/chat/render-parts.js.map +1 -0
  274. package/dist/react/chat/use-chat-turns.d.ts +19 -0
  275. package/dist/react/chat/use-chat-turns.d.ts.map +1 -0
  276. package/dist/react/chat/use-chat-turns.js +27 -0
  277. package/dist/react/chat/use-chat-turns.js.map +1 -0
  278. package/dist/react/file-keys.d.ts +18 -0
  279. package/dist/react/file-keys.d.ts.map +1 -0
  280. package/dist/react/file-keys.js +18 -0
  281. package/dist/react/file-keys.js.map +1 -0
  282. package/dist/react/index.d.ts +12 -0
  283. package/dist/react/index.d.ts.map +1 -0
  284. package/dist/react/index.js +49 -0
  285. package/dist/react/index.js.map +1 -0
  286. package/dist/react/model-flatten.d.ts +33 -0
  287. package/dist/react/model-flatten.d.ts.map +1 -0
  288. package/dist/react/model-flatten.js +59 -0
  289. package/dist/react/model-flatten.js.map +1 -0
  290. package/dist/react/opencode.d.ts +43 -0
  291. package/dist/react/opencode.d.ts.map +1 -0
  292. package/dist/react/opencode.js +100 -0
  293. package/dist/react/opencode.js.map +1 -0
  294. package/dist/react/prefetch-session-start.d.ts +10 -0
  295. package/dist/react/prefetch-session-start.d.ts.map +1 -0
  296. package/dist/react/prefetch-session-start.js +17 -0
  297. package/dist/react/prefetch-session-start.js.map +1 -0
  298. package/dist/react/provider-refresh.d.ts +7 -0
  299. package/dist/react/provider-refresh.d.ts.map +1 -0
  300. package/dist/react/provider-refresh.js +28 -0
  301. package/dist/react/provider-refresh.js.map +1 -0
  302. package/dist/react/provider-selection.d.ts +31 -0
  303. package/dist/react/provider-selection.d.ts.map +1 -0
  304. package/dist/react/provider-selection.js +135 -0
  305. package/dist/react/provider-selection.js.map +1 -0
  306. package/dist/react/route-project.d.ts +7 -0
  307. package/dist/react/route-project.d.ts.map +1 -0
  308. package/dist/react/route-project.js +19 -0
  309. package/dist/react/route-project.js.map +1 -0
  310. package/dist/react/session-start-stash.d.ts +56 -0
  311. package/dist/react/session-start-stash.d.ts.map +1 -0
  312. package/dist/react/session-start-stash.js +202 -0
  313. package/dist/react/session-start-stash.js.map +1 -0
  314. package/dist/react/use-canonical-opencode-session.d.ts +35 -0
  315. package/dist/react/use-canonical-opencode-session.d.ts.map +1 -0
  316. package/dist/react/use-canonical-opencode-session.js +52 -0
  317. package/dist/react/use-canonical-opencode-session.js.map +1 -0
  318. package/dist/react/use-change-requests.d.ts +321 -0
  319. package/dist/react/use-change-requests.d.ts.map +1 -0
  320. package/dist/react/use-change-requests.js +43 -0
  321. package/dist/react/use-change-requests.js.map +1 -0
  322. package/dist/react/use-current-runtime.d.ts +8 -0
  323. package/dist/react/use-current-runtime.d.ts.map +1 -0
  324. package/dist/react/use-current-runtime.js +12 -0
  325. package/dist/react/use-current-runtime.js.map +1 -0
  326. package/dist/react/use-gateway-catalog-sync.d.ts +2 -0
  327. package/dist/react/use-gateway-catalog-sync.d.ts.map +1 -0
  328. package/dist/react/use-gateway-catalog-sync.js +39 -0
  329. package/dist/react/use-gateway-catalog-sync.js.map +1 -0
  330. package/dist/react/use-kortix-master.d.ts +384 -0
  331. package/dist/react/use-kortix-master.d.ts.map +1 -0
  332. package/dist/react/use-kortix-master.js +958 -0
  333. package/dist/react/use-kortix-master.js.map +1 -0
  334. package/dist/react/use-model-store.d.ts +71 -0
  335. package/dist/react/use-model-store.d.ts.map +1 -0
  336. package/dist/react/use-model-store.js +411 -0
  337. package/dist/react/use-model-store.js.map +1 -0
  338. package/dist/react/use-opencode-config.d.ts +15 -0
  339. package/dist/react/use-opencode-config.d.ts.map +1 -0
  340. package/dist/react/use-opencode-config.js +79 -0
  341. package/dist/react/use-opencode-config.js.map +1 -0
  342. package/dist/react/use-opencode-events/diagnostics.d.ts +11 -0
  343. package/dist/react/use-opencode-events/diagnostics.d.ts.map +1 -0
  344. package/dist/react/use-opencode-events/diagnostics.js +58 -0
  345. package/dist/react/use-opencode-events/diagnostics.js.map +1 -0
  346. package/dist/react/use-opencode-events/handle-event.d.ts +20 -0
  347. package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -0
  348. package/dist/react/use-opencode-events/handle-event.js +450 -0
  349. package/dist/react/use-opencode-events/handle-event.js.map +1 -0
  350. package/dist/react/use-opencode-events/helpers.d.ts +30 -0
  351. package/dist/react/use-opencode-events/helpers.d.ts.map +1 -0
  352. package/dist/react/use-opencode-events/helpers.js +93 -0
  353. package/dist/react/use-opencode-events/helpers.js.map +1 -0
  354. package/dist/react/use-opencode-events/index.d.ts +25 -0
  355. package/dist/react/use-opencode-events/index.d.ts.map +1 -0
  356. package/dist/react/use-opencode-events/index.js +242 -0
  357. package/dist/react/use-opencode-events/index.js.map +1 -0
  358. package/dist/react/use-opencode-events/types.d.ts +10 -0
  359. package/dist/react/use-opencode-events/types.d.ts.map +1 -0
  360. package/dist/react/use-opencode-events/types.js +2 -0
  361. package/dist/react/use-opencode-events/types.js.map +1 -0
  362. package/dist/react/use-opencode-events/use-event-stream-refs.d.ts +22 -0
  363. package/dist/react/use-opencode-events/use-event-stream-refs.d.ts.map +1 -0
  364. package/dist/react/use-opencode-events/use-event-stream-refs.js +158 -0
  365. package/dist/react/use-opencode-events/use-event-stream-refs.js.map +1 -0
  366. package/dist/react/use-opencode-local.d.ts +139 -0
  367. package/dist/react/use-opencode-local.d.ts.map +1 -0
  368. package/dist/react/use-opencode-local.js +484 -0
  369. package/dist/react/use-opencode-local.js.map +1 -0
  370. package/dist/react/use-opencode-mcp.d.ts +34 -0
  371. package/dist/react/use-opencode-mcp.d.ts.map +1 -0
  372. package/dist/react/use-opencode-mcp.js +190 -0
  373. package/dist/react/use-opencode-mcp.js.map +1 -0
  374. package/dist/react/use-opencode-pty.d.ts +30 -0
  375. package/dist/react/use-opencode-pty.d.ts.map +1 -0
  376. package/dist/react/use-opencode-pty.js +126 -0
  377. package/dist/react/use-opencode-pty.js.map +1 -0
  378. package/dist/react/use-opencode-sessions/agents.d.ts +14 -0
  379. package/dist/react/use-opencode-sessions/agents.d.ts.map +1 -0
  380. package/dist/react/use-opencode-sessions/agents.js +82 -0
  381. package/dist/react/use-opencode-sessions/agents.js.map +1 -0
  382. package/dist/react/use-opencode-sessions/commands.d.ts +8 -0
  383. package/dist/react/use-opencode-sessions/commands.d.ts.map +1 -0
  384. package/dist/react/use-opencode-sessions/commands.js +46 -0
  385. package/dist/react/use-opencode-sessions/commands.js.map +1 -0
  386. package/dist/react/use-opencode-sessions/files.d.ts +2 -0
  387. package/dist/react/use-opencode-sessions/files.d.ts.map +1 -0
  388. package/dist/react/use-opencode-sessions/files.js +181 -0
  389. package/dist/react/use-opencode-sessions/files.js.map +1 -0
  390. package/dist/react/use-opencode-sessions/index.d.ts +15 -0
  391. package/dist/react/use-opencode-sessions/index.d.ts.map +1 -0
  392. package/dist/react/use-opencode-sessions/index.js +21 -0
  393. package/dist/react/use-opencode-sessions/index.js.map +1 -0
  394. package/dist/react/use-opencode-sessions/keys.d.ts +94 -0
  395. package/dist/react/use-opencode-sessions/keys.d.ts.map +1 -0
  396. package/dist/react/use-opencode-sessions/keys.js +39 -0
  397. package/dist/react/use-opencode-sessions/keys.js.map +1 -0
  398. package/dist/react/use-opencode-sessions/mcp.d.ts +3 -0
  399. package/dist/react/use-opencode-sessions/mcp.d.ts.map +1 -0
  400. package/dist/react/use-opencode-sessions/mcp.js +23 -0
  401. package/dist/react/use-opencode-sessions/mcp.js.map +1 -0
  402. package/dist/react/use-opencode-sessions/messages.d.ts +75 -0
  403. package/dist/react/use-opencode-sessions/messages.d.ts.map +1 -0
  404. package/dist/react/use-opencode-sessions/messages.js +319 -0
  405. package/dist/react/use-opencode-sessions/messages.js.map +1 -0
  406. package/dist/react/use-opencode-sessions/parts.d.ts +23 -0
  407. package/dist/react/use-opencode-sessions/parts.d.ts.map +1 -0
  408. package/dist/react/use-opencode-sessions/parts.js +49 -0
  409. package/dist/react/use-opencode-sessions/parts.js.map +1 -0
  410. package/dist/react/use-opencode-sessions/permissions.d.ts +17 -0
  411. package/dist/react/use-opencode-sessions/permissions.d.ts.map +1 -0
  412. package/dist/react/use-opencode-sessions/permissions.js +66 -0
  413. package/dist/react/use-opencode-sessions/permissions.js.map +1 -0
  414. package/dist/react/use-opencode-sessions/projects.d.ts +5 -0
  415. package/dist/react/use-opencode-sessions/projects.d.ts.map +1 -0
  416. package/dist/react/use-opencode-sessions/projects.js +54 -0
  417. package/dist/react/use-opencode-sessions/projects.js.map +1 -0
  418. package/dist/react/use-opencode-sessions/providers.d.ts +10 -0
  419. package/dist/react/use-opencode-sessions/providers.d.ts.map +1 -0
  420. package/dist/react/use-opencode-sessions/providers.js +98 -0
  421. package/dist/react/use-opencode-sessions/providers.js.map +1 -0
  422. package/dist/react/use-opencode-sessions/sessions.d.ts +35 -0
  423. package/dist/react/use-opencode-sessions/sessions.d.ts.map +1 -0
  424. package/dist/react/use-opencode-sessions/sessions.js +380 -0
  425. package/dist/react/use-opencode-sessions/sessions.js.map +1 -0
  426. package/dist/react/use-opencode-sessions/shared.d.ts +43 -0
  427. package/dist/react/use-opencode-sessions/shared.d.ts.map +1 -0
  428. package/dist/react/use-opencode-sessions/shared.js +109 -0
  429. package/dist/react/use-opencode-sessions/shared.js.map +1 -0
  430. package/dist/react/use-opencode-sessions/sharing.d.ts +4 -0
  431. package/dist/react/use-opencode-sessions/sharing.d.ts.map +1 -0
  432. package/dist/react/use-opencode-sessions/sharing.js +57 -0
  433. package/dist/react/use-opencode-sessions/sharing.js.map +1 -0
  434. package/dist/react/use-opencode-sessions/tools.d.ts +5 -0
  435. package/dist/react/use-opencode-sessions/tools.d.ts.map +1 -0
  436. package/dist/react/use-opencode-sessions/tools.js +54 -0
  437. package/dist/react/use-opencode-sessions/tools.js.map +1 -0
  438. package/dist/react/use-permission-self-heal.d.ts +45 -0
  439. package/dist/react/use-permission-self-heal.d.ts.map +1 -0
  440. package/dist/react/use-permission-self-heal.js +144 -0
  441. package/dist/react/use-permission-self-heal.js.map +1 -0
  442. package/dist/react/use-project-config.d.ts +11 -0
  443. package/dist/react/use-project-config.d.ts.map +1 -0
  444. package/dist/react/use-project-config.js +22 -0
  445. package/dist/react/use-project-config.js.map +1 -0
  446. package/dist/react/use-project-models.d.ts +11 -0
  447. package/dist/react/use-project-models.d.ts.map +1 -0
  448. package/dist/react/use-project-models.js +25 -0
  449. package/dist/react/use-project-models.js.map +1 -0
  450. package/dist/react/use-project-secrets.d.ts +265 -0
  451. package/dist/react/use-project-secrets.d.ts.map +1 -0
  452. package/dist/react/use-project-secrets.js +41 -0
  453. package/dist/react/use-project-secrets.js.map +1 -0
  454. package/dist/react/use-project-triggers.d.ts +228 -0
  455. package/dist/react/use-project-triggers.d.ts.map +1 -0
  456. package/dist/react/use-project-triggers.js +42 -0
  457. package/dist/react/use-project-triggers.js.map +1 -0
  458. package/dist/react/use-question-self-heal.d.ts +36 -0
  459. package/dist/react/use-question-self-heal.d.ts.map +1 -0
  460. package/dist/react/use-question-self-heal.js +95 -0
  461. package/dist/react/use-question-self-heal.js.map +1 -0
  462. package/dist/react/use-runtime-phase.d.ts +9 -0
  463. package/dist/react/use-runtime-phase.d.ts.map +1 -0
  464. package/dist/react/use-runtime-phase.js +20 -0
  465. package/dist/react/use-runtime-phase.js.map +1 -0
  466. package/dist/react/use-runtime-reconnect.d.ts +90 -0
  467. package/dist/react/use-runtime-reconnect.d.ts.map +1 -0
  468. package/dist/react/use-runtime-reconnect.js +234 -0
  469. package/dist/react/use-runtime-reconnect.js.map +1 -0
  470. package/dist/react/use-session-picks.d.ts +17 -0
  471. package/dist/react/use-session-picks.d.ts.map +1 -0
  472. package/dist/react/use-session-picks.js +36 -0
  473. package/dist/react/use-session-picks.js.map +1 -0
  474. package/dist/react/use-session-prefetch.d.ts +18 -0
  475. package/dist/react/use-session-prefetch.d.ts.map +1 -0
  476. package/dist/react/use-session-prefetch.js +84 -0
  477. package/dist/react/use-session-prefetch.js.map +1 -0
  478. package/dist/react/use-session-send.d.ts +183 -0
  479. package/dist/react/use-session-send.d.ts.map +1 -0
  480. package/dist/react/use-session-send.js +287 -0
  481. package/dist/react/use-session-send.js.map +1 -0
  482. package/dist/react/use-session-sync.d.ts +24 -0
  483. package/dist/react/use-session-sync.d.ts.map +1 -0
  484. package/dist/react/use-session-sync.js +375 -0
  485. package/dist/react/use-session-sync.js.map +1 -0
  486. package/dist/react/use-session.d.ts +171 -0
  487. package/dist/react/use-session.d.ts.map +1 -0
  488. package/dist/react/use-session.js +396 -0
  489. package/dist/react/use-session.js.map +1 -0
  490. package/dist/react/use-visible-agents.d.ts +22 -0
  491. package/dist/react/use-visible-agents.d.ts.map +1 -0
  492. package/dist/react/use-visible-agents.js +45 -0
  493. package/dist/react/use-visible-agents.js.map +1 -0
  494. package/dist/server.d.ts +55 -0
  495. package/dist/server.d.ts.map +1 -0
  496. package/dist/server.js +122 -0
  497. package/dist/server.js.map +1 -0
  498. package/dist/session/health.d.ts +49 -0
  499. package/dist/session/health.d.ts.map +1 -0
  500. package/dist/session/health.js +57 -0
  501. package/dist/session/health.js.map +1 -0
  502. package/dist/session/index.d.ts +19 -0
  503. package/dist/session/index.d.ts.map +1 -0
  504. package/dist/session/index.js +19 -0
  505. package/dist/session/index.js.map +1 -0
  506. package/dist/session/preview.d.ts +24 -0
  507. package/dist/session/preview.d.ts.map +1 -0
  508. package/dist/session/preview.js +85 -0
  509. package/dist/session/preview.js.map +1 -0
  510. package/dist/session/url.d.ts +160 -0
  511. package/dist/session/url.d.ts.map +1 -0
  512. package/dist/session/url.js +522 -0
  513. package/dist/session/url.js.map +1 -0
  514. package/dist/state/chat-events.d.ts +141 -0
  515. package/dist/state/chat-events.d.ts.map +1 -0
  516. package/dist/state/chat-events.js +135 -0
  517. package/dist/state/chat-events.js.map +1 -0
  518. package/dist/state/current-runtime.d.ts +44 -0
  519. package/dist/state/current-runtime.d.ts.map +1 -0
  520. package/dist/state/current-runtime.js +44 -0
  521. package/dist/state/current-runtime.js.map +1 -0
  522. package/dist/state/diagnostics-store.d.ts +114 -0
  523. package/dist/state/diagnostics-store.d.ts.map +1 -0
  524. package/dist/state/diagnostics-store.js +319 -0
  525. package/dist/state/diagnostics-store.js.map +1 -0
  526. package/dist/state/event-stream.d.ts +134 -0
  527. package/dist/state/event-stream.d.ts.map +1 -0
  528. package/dist/state/event-stream.js +424 -0
  529. package/dist/state/event-stream.js.map +1 -0
  530. package/dist/state/idb-sync-cache.d.ts +18 -0
  531. package/dist/state/idb-sync-cache.d.ts.map +1 -0
  532. package/dist/state/idb-sync-cache.js +209 -0
  533. package/dist/state/idb-sync-cache.js.map +1 -0
  534. package/dist/state/opencode-compaction-store.d.ts +10 -0
  535. package/dist/state/opencode-compaction-store.d.ts.map +1 -0
  536. package/dist/state/opencode-compaction-store.js +32 -0
  537. package/dist/state/opencode-compaction-store.js.map +1 -0
  538. package/dist/state/opencode-pending-store.d.ts +19 -0
  539. package/dist/state/opencode-pending-store.d.ts.map +1 -0
  540. package/dist/state/opencode-pending-store.js +76 -0
  541. package/dist/state/opencode-pending-store.js.map +1 -0
  542. package/dist/state/sandbox-connection-store.d.ts +62 -0
  543. package/dist/state/sandbox-connection-store.d.ts.map +1 -0
  544. package/dist/state/sandbox-connection-store.js +290 -0
  545. package/dist/state/sandbox-connection-store.js.map +1 -0
  546. package/dist/state/server-store/active.d.ts +49 -0
  547. package/dist/state/server-store/active.d.ts.map +1 -0
  548. package/dist/state/server-store/active.js +76 -0
  549. package/dist/state/server-store/active.js.map +1 -0
  550. package/dist/state/server-store/types.d.ts +12 -0
  551. package/dist/state/server-store/types.d.ts.map +1 -0
  552. package/dist/state/server-store/types.js +2 -0
  553. package/dist/state/server-store/types.js.map +1 -0
  554. package/dist/state/server-store/url-helpers.d.ts +33 -0
  555. package/dist/state/server-store/url-helpers.d.ts.map +1 -0
  556. package/dist/state/server-store/url-helpers.js +55 -0
  557. package/dist/state/server-store/url-helpers.js.map +1 -0
  558. package/dist/state/server-store.d.ts +18 -0
  559. package/dist/state/server-store.d.ts.map +1 -0
  560. package/dist/state/server-store.js +23 -0
  561. package/dist/state/server-store.js.map +1 -0
  562. package/dist/state/session-runtime-registry.d.ts +49 -0
  563. package/dist/state/session-runtime-registry.d.ts.map +1 -0
  564. package/dist/state/session-runtime-registry.js +85 -0
  565. package/dist/state/session-runtime-registry.js.map +1 -0
  566. package/dist/state/sync-store/ascending-id.d.ts +2 -0
  567. package/dist/state/sync-store/ascending-id.d.ts.map +1 -0
  568. package/dist/state/sync-store/ascending-id.js +21 -0
  569. package/dist/state/sync-store/ascending-id.js.map +1 -0
  570. package/dist/state/sync-store/binary.d.ts +7 -0
  571. package/dist/state/sync-store/binary.d.ts.map +1 -0
  572. package/dist/state/sync-store/binary.js +21 -0
  573. package/dist/state/sync-store/binary.js.map +1 -0
  574. package/dist/state/sync-store/stream-cache.d.ts +2 -0
  575. package/dist/state/sync-store/stream-cache.d.ts.map +1 -0
  576. package/dist/state/sync-store/stream-cache.js +29 -0
  577. package/dist/state/sync-store/stream-cache.js.map +1 -0
  578. package/dist/state/sync-store/types.d.ts +29 -0
  579. package/dist/state/sync-store/types.d.ts.map +1 -0
  580. package/dist/state/sync-store/types.js +2 -0
  581. package/dist/state/sync-store/types.js.map +1 -0
  582. package/dist/state/sync-store.d.ts +39 -0
  583. package/dist/state/sync-store.d.ts.map +1 -0
  584. package/dist/state/sync-store.js +692 -0
  585. package/dist/state/sync-store.js.map +1 -0
  586. package/dist/state/tab-store.d.ts +91 -0
  587. package/dist/state/tab-store.d.ts.map +1 -0
  588. package/dist/state/tab-store.js +369 -0
  589. package/dist/state/tab-store.js.map +1 -0
  590. package/dist/transcript.d.ts +40 -0
  591. package/dist/transcript.d.ts.map +1 -0
  592. package/dist/transcript.js +126 -0
  593. package/dist/transcript.js.map +1 -0
  594. package/dist/turns/classify.d.ts +166 -0
  595. package/dist/turns/classify.d.ts.map +1 -0
  596. package/dist/turns/classify.js +259 -0
  597. package/dist/turns/classify.js.map +1 -0
  598. package/dist/turns/errors.d.ts +11 -0
  599. package/dist/turns/errors.d.ts.map +1 -0
  600. package/dist/turns/errors.js +85 -0
  601. package/dist/turns/errors.js.map +1 -0
  602. package/dist/turns/index.d.ts +264 -0
  603. package/dist/turns/index.d.ts.map +1 -0
  604. package/dist/turns/index.js +1243 -0
  605. package/dist/turns/index.js.map +1 -0
  606. package/dist/turns/tool-registry.d.ts +33 -0
  607. package/dist/turns/tool-registry.d.ts.map +1 -0
  608. package/dist/turns/tool-registry.js +108 -0
  609. package/dist/turns/tool-registry.js.map +1 -0
  610. package/dist/turns/types.d.ts +125 -0
  611. package/dist/turns/types.d.ts.map +1 -0
  612. package/dist/turns/types.js +12 -0
  613. package/dist/turns/types.js.map +1 -0
  614. package/dist/turns/view-model.d.ts +127 -0
  615. package/dist/turns/view-model.d.ts.map +1 -0
  616. package/dist/turns/view-model.js +401 -0
  617. package/dist/turns/view-model.js.map +1 -0
  618. package/package.json +155 -0
@@ -0,0 +1,484 @@
1
+ 'use client';
2
+ /**
3
+ * React port of the SolidJS `context/local.tsx` from the OpenCode reference app.
4
+ *
5
+ * Provides unified agent + model + variant state management with:
6
+ * - Per-agent model selection persisted to localStorage (survives refresh/new tabs)
7
+ * - Fallback chain: persisted selection -> agent.model -> config.model -> recent -> provider default
8
+ * - Agent switching auto-sets model when agent has a configured model
9
+ * - Recent model list persisted via useModelStore
10
+ * - Variant persistence via useModelStore
11
+ */
12
+ import { flattenModels } from './model-flatten.js';
13
+ import { featureFlags } from '../platform/feature-flags.js';
14
+ import { listProjectSecrets } from '../platform/projects-client/index.js';
15
+ import { AUTO_DEFAULT_MODEL_ID, AUTO_MODEL_ID } from '@kortix/llm-catalog';
16
+ import { useQuery } from '@tanstack/react-query';
17
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
18
+ import { useKortixRouteProjectId } from './route-project.js';
19
+ import { connectedGatewayProviderIdsFromSecretNames, normalizeProviderList, } from './provider-selection.js';
20
+ import { useModelStore } from './use-model-store.js';
21
+ // ============================================================================
22
+ // Helpers
23
+ // ============================================================================
24
+ function uniqueBy(arr, key) {
25
+ const seen = new Set();
26
+ const result = [];
27
+ for (const item of arr) {
28
+ const k = key(item);
29
+ if (!seen.has(k)) {
30
+ seen.add(k);
31
+ result.push(item);
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+ /**
37
+ * Normalize a model value into a ModelKey.
38
+ * Handles:
39
+ * - object: { providerID: string; modelID: string }
40
+ * - string: "providerID/modelID"
41
+ * Returns undefined if the input is not a recognizable model.
42
+ */
43
+ export function parseModelKey(model) {
44
+ if (!model)
45
+ return undefined;
46
+ if (typeof model === 'object' && model !== null) {
47
+ const obj = model;
48
+ if (typeof obj.providerID === 'string' && typeof obj.modelID === 'string') {
49
+ return { providerID: obj.providerID, modelID: obj.modelID };
50
+ }
51
+ }
52
+ if (typeof model === 'string') {
53
+ const idx = model.indexOf('/');
54
+ if (idx > 0 && idx < model.length - 1) {
55
+ return { providerID: model.slice(0, idx), modelID: model.slice(idx + 1) };
56
+ }
57
+ }
58
+ return undefined;
59
+ }
60
+ /**
61
+ * Format a ModelKey as OpenCode's string model override. Native OpenCode models
62
+ * are bare ids; provider-prefixed managed/BYOK models keep provider/model form.
63
+ */
64
+ export function formatModelString(model) {
65
+ if (model.providerID === 'opencode')
66
+ return model.modelID;
67
+ return `${model.providerID}/${model.modelID}`;
68
+ }
69
+ /** Identity — a ModelKey is already the shape `session.prompt()`/`command()`
70
+ * expect for a model override. Named separately from `formatModelString` (a
71
+ * STRING for command endpoints) so call sites read as intent, not coincidence. */
72
+ export function formatPromptModel(model) {
73
+ return model;
74
+ }
75
+ /**
76
+ * Substitute the synthetic `auto` pseudo-model when the host has it hidden
77
+ * (`enableAutoModel: false`) — e.g. mid-rollout, or a host that doesn't want to
78
+ * expose "auto" in its picker at all. Falls back to an explicit managed default
79
+ * when one validates, otherwise drops the selection entirely (`undefined`) so
80
+ * callers fall through their own next fallback.
81
+ */
82
+ export function resolveHiddenAutoModel(resolved, { enableAutoModel, isModelValid, }) {
83
+ if (enableAutoModel ||
84
+ resolved?.providerID !== 'kortix' ||
85
+ resolved.modelID !== AUTO_MODEL_ID) {
86
+ return resolved;
87
+ }
88
+ const explicit = { providerID: 'kortix', modelID: AUTO_DEFAULT_MODEL_ID };
89
+ return isModelValid(explicit) ? explicit : undefined;
90
+ }
91
+ export function modelProviderMode(providers) {
92
+ if (!providers)
93
+ return 'native';
94
+ const normalized = normalizeProviderList(providers);
95
+ return normalized.connected?.includes('kortix') ? 'gateway' : 'native';
96
+ }
97
+ export function scopedModelSelectionKey(key, mode) {
98
+ return key ? `${mode}:${key}` : undefined;
99
+ }
100
+ /**
101
+ * Resolve the current agent name with a priority chain:
102
+ * 1. Per-session slot (`sessionAgentName`) — sticky for THIS session once the
103
+ * user (or a replayed stash) has picked one.
104
+ * 2. The server-bound agent for a project session (`boundAgentName`) — so an
105
+ * existing project session never accidentally re-prompts with a different
106
+ * agent than the one it was created with.
107
+ * 3. The global last-used agent — only when there's no session at all (e.g.
108
+ * the dashboard composer), so a fresh session inherits the user's most
109
+ * recent pick.
110
+ */
111
+ export function resolveCurrentAgentName(input) {
112
+ const boundAgentName = input.boundAgentName?.trim() || undefined;
113
+ return (input.sessionAgentName ??
114
+ boundAgentName ??
115
+ (input.sessionId ? undefined : input.lastAgentName));
116
+ }
117
+ // ============================================================================
118
+ // Hook
119
+ // ============================================================================
120
+ export function useOpenCodeLocal({ agents: rawAgents, providers, config, sessionId, boundAgentName, freeTier, resolveServerDefault, }) {
121
+ // ---- Flatten models from providers (shared with the chat input, so the
122
+ // gateway-only allowlist applies here too — native providers never leak in) ----
123
+ const flatModels = useMemo(() => flattenModels(providers), [providers]);
124
+ const projectId = useKortixRouteProjectId();
125
+ const providerMode = useMemo(() => modelProviderMode(providers), [providers]);
126
+ const secretsQuery = useQuery({
127
+ queryKey: ['project-secrets', projectId],
128
+ queryFn: () => listProjectSecrets(projectId),
129
+ enabled: !!projectId && providerMode === 'gateway',
130
+ staleTime: 10_000,
131
+ });
132
+ const connectedProviderIds = useMemo(() => {
133
+ if (providerMode !== 'gateway')
134
+ return undefined;
135
+ const data = secretsQuery.data;
136
+ const items = Array.isArray(data) ? data : (data?.items ?? []);
137
+ return connectedGatewayProviderIdsFromSecretNames(new Set(items.map((secret) => secret.name)));
138
+ }, [providerMode, secretsQuery.data]);
139
+ // ---- Model store (persisted: visibility, recent, variant) ----
140
+ const modelStore = useModelStore(flatModels, {
141
+ connectedProviderIds,
142
+ freeTier: providerMode === 'gateway' && !!freeTier,
143
+ });
144
+ // ---- Model validation: a model is valid only if it's in the flattened list,
145
+ // which is already filtered to connected + gateway-only providers. This keeps
146
+ // default/recent resolution from ever selecting a native (bypass) model. ----
147
+ const isModelValid = useCallback((model) => flatModels.some((m) => m.providerID === model.providerID && m.modelID === model.modelID) &&
148
+ modelStore.isVisible(model), [flatModels, modelStore]);
149
+ // ---- First valid model from a list of fallback sources ----
150
+ const getFirstValidModel = useCallback((...modelFns) => {
151
+ for (const modelFn of modelFns) {
152
+ const model = modelFn();
153
+ if (!model)
154
+ continue;
155
+ if (isModelValid(model))
156
+ return model;
157
+ }
158
+ return undefined;
159
+ }, [isModelValid]);
160
+ // ---- Find FlatModel from ModelKey ----
161
+ const findModel = useCallback((key) => flatModels.find((m) => m.modelID === key.modelID && m.providerID === key.providerID), [flatModels]);
162
+ const isModelDefaultVisible = useCallback((model) => modelStore.isVisible(model), [modelStore]);
163
+ // ---- Agent state — persisted per-session in localStorage so switching tabs preserves selection ----
164
+ // Project-only agents (orchestrator/project-maintainer/worker) are hidden
165
+ // when the project paradigm is off; their bodies reference project
166
+ // tools that aren't registered in default mode.
167
+ const visibleAgents = useMemo(() => {
168
+ // Keep in sync with use-visible-agents.ts:PROJECT_ONLY_AGENTS.
169
+ const projectOnlyAgents = new Set(['project-manager']);
170
+ return (Array.isArray(rawAgents) ? rawAgents : []).filter((a) => !a.hidden && (featureFlags.enableProjects || !projectOnlyAgents.has(a.name)));
171
+ }, [rawAgents]);
172
+ // Resolve the current agent name (see `resolveCurrentAgentName`): per-session
173
+ // slot -> server-bound project agent -> global last-used (dashboard/new chats).
174
+ const sessionAgentName = sessionId ? modelStore.getSessionAgentName(sessionId) : undefined;
175
+ const currentAgentName = resolveCurrentAgentName({
176
+ sessionId,
177
+ sessionAgentName,
178
+ boundAgentName,
179
+ lastAgentName: modelStore.lastAgentName,
180
+ });
181
+ const scopedSessionModelKey = useMemo(() => scopedModelSelectionKey(sessionId, providerMode), [sessionId, providerMode]);
182
+ const setCurrentAgentName = useCallback((name) => {
183
+ if (sessionId) {
184
+ modelStore.setSessionAgentName(sessionId, name);
185
+ }
186
+ // Always update the global "last used" slot so the dashboard and any
187
+ // future sessions pick up the user's most recent choice. Skipped only
188
+ // when clearing (name === undefined) and we're in a session, since
189
+ // clearing a session slot shouldn't wipe the global default.
190
+ if (name !== undefined || !sessionId) {
191
+ modelStore.setLastAgentName(name);
192
+ }
193
+ },
194
+ // eslint-disable-next-line react-hooks/exhaustive-deps
195
+ [sessionId, modelStore.setSessionAgentName, modelStore.setLastAgentName]);
196
+ // Resolve current agent (matching SolidJS: find by name or fall back to first)
197
+ const currentAgent = useMemo(() => {
198
+ if (visibleAgents.length === 0)
199
+ return undefined;
200
+ if (currentAgentName) {
201
+ const found = visibleAgents.find((a) => a.name === currentAgentName);
202
+ if (found)
203
+ return found;
204
+ }
205
+ return visibleAgents[0];
206
+ }, [visibleAgents, currentAgentName]);
207
+ // ---- Per-agent model overrides (persisted to localStorage so selection survives refresh/new tabs) ----
208
+ // ---- Fallback model (matching SolidJS local.tsx:94-126) ----
209
+ const fallbackModel = useMemo(() => {
210
+ // Priority 1: Config model (from opencode.json)
211
+ if (config?.model) {
212
+ const parts = config.model.split('/');
213
+ if (parts.length >= 2) {
214
+ const [providerID, ...rest] = parts;
215
+ const modelID = rest.join('/');
216
+ if (isModelValid({ providerID, modelID })) {
217
+ return { providerID, modelID };
218
+ }
219
+ }
220
+ }
221
+ // Priority 2: Most recent valid model from persisted recent list
222
+ for (const item of modelStore.recent) {
223
+ if (isModelValid(item)) {
224
+ return item;
225
+ }
226
+ }
227
+ // Priority 3: Provider defaults -> first model of first connected provider
228
+ if (providers) {
229
+ const defaults = providers.default || {};
230
+ const all = Array.isArray(providers.all) ? providers.all : [];
231
+ const connectedIds = Array.isArray(providers.connected) ? providers.connected : [];
232
+ const connected = all.filter((p) => connectedIds.includes(p.id));
233
+ for (const p of connected) {
234
+ const configured = defaults[p.id];
235
+ if (configured) {
236
+ const key = { providerID: p.id, modelID: configured };
237
+ if (isModelValid(key) && isModelDefaultVisible(key))
238
+ return key;
239
+ }
240
+ for (const modelID of Object.keys(p.models)) {
241
+ const key = { providerID: p.id, modelID };
242
+ if (isModelValid(key) && isModelDefaultVisible(key))
243
+ return key;
244
+ }
245
+ }
246
+ }
247
+ return undefined;
248
+ }, [config?.model, modelStore.recent, providers, isModelValid, isModelDefaultVisible]);
249
+ // ---- Explicit per-conversation/per-agent picks (highest priority, localStorage) ----
250
+ const explicitModelKey = useMemo(() => getFirstValidModel(
251
+ // Per-session model (user's explicit choice in this session — survives reload)
252
+ () => scopedSessionModelKey ? modelStore.getSessionModel(scopedSessionModelKey) : undefined,
253
+ // Back-compat: the old unscoped slot, only if valid in the current mode.
254
+ () => (sessionId ? modelStore.getSessionModel(sessionId) : undefined),
255
+ // Per-agent model (persisted across sessions for this agent)
256
+ () => currentAgent
257
+ ? modelStore.getSelectedModel(`${providerMode}:${currentAgent.name}`)
258
+ : undefined, () => (currentAgent ? modelStore.getSelectedModel(currentAgent.name) : undefined)), [currentAgent, sessionId, scopedSessionModelKey, providerMode, modelStore, getFirstValidModel]);
259
+ // The gateway-configured default for the current agent (agent -> project ->
260
+ // account -> platform), when the host supplies a resolver. Validated against
261
+ // the catalog. Used for DISPLAY of "on default" and as a resolution step
262
+ // between the explicit pick and the legacy globalDefault cache.
263
+ const serverDefaultKey = useMemo(() => {
264
+ const candidate = resolveServerDefault?.(currentAgent?.name);
265
+ return candidate && isModelValid(candidate) ? candidate : undefined;
266
+ }, [resolveServerDefault, currentAgent?.name, isModelValid]);
267
+ // ---- Current model resolution ----
268
+ // Priority: explicit (session/per-agent) > server default > globalDefault >
269
+ // agent.model > fallback. Model selection must NOT depend on a loaded agent:
270
+ // the session/global/fallback slots resolve fine without one, and the agent
271
+ // roster can be empty (e.g. a project with no configured agents, or
272
+ // `enableProjects` off) — the agent-keyed slots are simply skipped then.
273
+ const currentModelKey = useMemo(() => {
274
+ const resolved = explicitModelKey ??
275
+ getFirstValidModel(() => serverDefaultKey, () => modelStore.globalDefault, () => currentAgent?.model, () => fallbackModel);
276
+ return resolveHiddenAutoModel(resolved, {
277
+ enableAutoModel: featureFlags.enableAutoModel,
278
+ isModelValid,
279
+ });
280
+ }, [
281
+ explicitModelKey,
282
+ serverDefaultKey,
283
+ currentAgent,
284
+ modelStore,
285
+ getFirstValidModel,
286
+ isModelValid,
287
+ fallbackModel,
288
+ ]);
289
+ // True when the user hasn't made an explicit pick — the picker shows the
290
+ // resolved default with a "Default" badge and the client sends `auto`.
291
+ const onDefaultModel = !explicitModelKey;
292
+ // Wire key actually SENT to opencode/the gateway. On default we send `auto`
293
+ // (when the catalog offers it) so the gateway resolves the account/agent
294
+ // default server-side; otherwise the concrete display key.
295
+ const sendModelKey = useMemo(() => {
296
+ if (explicitModelKey)
297
+ return explicitModelKey;
298
+ const auto = { providerID: 'kortix', modelID: AUTO_MODEL_ID };
299
+ return isModelValid(auto) ? auto : currentModelKey;
300
+ }, [explicitModelKey, isModelValid, currentModelKey]);
301
+ const currentModel = useMemo(() => (currentModelKey ? findModel(currentModelKey) : undefined), [currentModelKey, findModel]);
302
+ // ---- Recent models (enriched) ----
303
+ const recentModels = useMemo(() => modelStore.recent.map(findModel).filter(Boolean), [modelStore.recent, findModel]);
304
+ // ---- Model set (persists selection to localStorage) ----
305
+ const setModel = useCallback((model, options) => {
306
+ // When auto-seeding from a message and globalDefault is set, skip —
307
+ // the user's setup wizard choice takes precedence over message-seeded models.
308
+ if (options?.autoSeed && modelStore.globalDefault && isModelValid(modelStore.globalDefault)) {
309
+ return;
310
+ }
311
+ const next = model ?? fallbackModel;
312
+ if (currentAgent && next) {
313
+ modelStore.setSelectedModel(`${providerMode}:${currentAgent.name}`, next);
314
+ }
315
+ // Also persist per-session so the selection survives page reload
316
+ if (scopedSessionModelKey && next) {
317
+ modelStore.setSessionModel(scopedSessionModelKey, next);
318
+ }
319
+ if (model) {
320
+ modelStore.setVisibility(model, true);
321
+ }
322
+ if (options?.recent && model) {
323
+ modelStore.pushRecent(model);
324
+ // Per-session and per-agent overrides already take priority in the
325
+ // resolution chain, so there's no need to clear globalDefault here.
326
+ // The user's onboarding/settings choice should persist as the default
327
+ // for NEW sessions even when they change model in an existing session.
328
+ }
329
+ }, [currentAgent, scopedSessionModelKey, providerMode, fallbackModel, modelStore, isModelValid]);
330
+ // ---- Agent set (matching SolidJS local.tsx:52-63) ----
331
+ const setAgent = useCallback((name) => {
332
+ if (visibleAgents.length === 0) {
333
+ setCurrentAgentName(undefined);
334
+ return;
335
+ }
336
+ if (name && visibleAgents.some((a) => a.name === name)) {
337
+ setCurrentAgentName(name);
338
+ return;
339
+ }
340
+ setCurrentAgentName(visibleAgents[0]?.name);
341
+ }, [visibleAgents, setCurrentAgentName]);
342
+ // ---- Agent move (matching SolidJS local.tsx:64-81) ----
343
+ // Uses a ref to call setModel without creating circular deps
344
+ const setModelRef = useRef(setModel);
345
+ setModelRef.current = setModel;
346
+ const moveAgent = useCallback((direction) => {
347
+ if (visibleAgents.length === 0) {
348
+ setCurrentAgentName(undefined);
349
+ return;
350
+ }
351
+ const currentIdx = visibleAgents.findIndex((a) => a.name === currentAgentName);
352
+ let next = (currentIdx === -1 ? 0 : currentIdx) + direction;
353
+ if (next < 0)
354
+ next = visibleAgents.length - 1;
355
+ if (next >= visibleAgents.length)
356
+ next = 0;
357
+ const value = visibleAgents[next];
358
+ if (!value)
359
+ return;
360
+ setCurrentAgentName(value.name);
361
+ if (value.model) {
362
+ setModelRef.current({
363
+ providerID: value.model.providerID,
364
+ modelID: value.model.modelID,
365
+ });
366
+ }
367
+ }, [visibleAgents, currentAgentName, setCurrentAgentName]);
368
+ // ---- When agent changes externally (via setAgent), auto-set model if agent has one ----
369
+ // Only applies when there's no persisted selection for this agent yet AND no global default.
370
+ const prevAgentRef = useRef(undefined);
371
+ useEffect(() => {
372
+ if (!currentAgent)
373
+ return;
374
+ if (prevAgentRef.current === currentAgent.name)
375
+ return;
376
+ prevAgentRef.current = currentAgent.name;
377
+ // Don't override if user already has a persisted selection for this agent
378
+ const persisted = modelStore.getSelectedModel(currentAgent.name);
379
+ if (persisted && isModelValid(persisted))
380
+ return;
381
+ // Don't override if user set a global default during onboarding setup
382
+ if (modelStore.globalDefault && isModelValid(modelStore.globalDefault))
383
+ return;
384
+ if (currentAgent.model) {
385
+ if (isModelValid(currentAgent.model)) {
386
+ setModel({
387
+ providerID: currentAgent.model.providerID,
388
+ modelID: currentAgent.model.modelID,
389
+ }, { autoSeed: true });
390
+ }
391
+ }
392
+ // Only trigger on agent change — intentionally exclude setModel/modelStore from deps
393
+ // eslint-disable-next-line react-hooks/exhaustive-deps
394
+ }, [currentAgent?.name, isModelValid]);
395
+ // ---- Cycle through recent models (matching SolidJS local.tsx:142-163) ----
396
+ const cycleModel = useCallback((direction) => {
397
+ if (!currentModel || recentModels.length === 0)
398
+ return;
399
+ const index = recentModels.findIndex((x) => x.providerID === currentModel.providerID && x.modelID === currentModel.modelID);
400
+ if (index === -1)
401
+ return;
402
+ let next = index + direction;
403
+ if (next < 0)
404
+ next = recentModels.length - 1;
405
+ if (next >= recentModels.length)
406
+ next = 0;
407
+ const val = recentModels[next];
408
+ if (!val)
409
+ return;
410
+ setModel({ providerID: val.providerID, modelID: val.modelID });
411
+ }, [currentModel, recentModels, setModel]);
412
+ // ---- Variant management (matching SolidJS local.tsx:186-217) ----
413
+ const variantCurrent = useMemo(() => {
414
+ if (!currentModel)
415
+ return undefined;
416
+ return modelStore.getVariant({
417
+ providerID: currentModel.providerID,
418
+ modelID: currentModel.modelID,
419
+ });
420
+ }, [currentModel, modelStore]);
421
+ const variantList = useMemo(() => {
422
+ if (!currentModel?.variants)
423
+ return [];
424
+ return Object.keys(currentModel.variants);
425
+ }, [currentModel]);
426
+ const setVariant = useCallback((value) => {
427
+ if (!currentModel)
428
+ return;
429
+ modelStore.setVariant({ providerID: currentModel.providerID, modelID: currentModel.modelID }, value);
430
+ }, [currentModel, modelStore]);
431
+ const cycleVariant = useCallback(() => {
432
+ if (variantList.length === 0)
433
+ return;
434
+ if (!variantCurrent) {
435
+ setVariant(variantList[0]);
436
+ return;
437
+ }
438
+ const index = variantList.indexOf(variantCurrent);
439
+ if (index === -1 || index === variantList.length - 1) {
440
+ setVariant(undefined); // wrap back to default
441
+ return;
442
+ }
443
+ setVariant(variantList[index + 1]);
444
+ }, [variantList, variantCurrent, setVariant]);
445
+ // ---- Per-session model exists check ----
446
+ const hasSessionModel = useMemo(() => {
447
+ if (!scopedSessionModelKey)
448
+ return false;
449
+ return !!modelStore.getSessionModel(scopedSessionModelKey);
450
+ }, [scopedSessionModelKey, modelStore]);
451
+ // ---- Assemble return value ----
452
+ return {
453
+ agent: {
454
+ current: currentAgent,
455
+ list: visibleAgents,
456
+ set: setAgent,
457
+ move: moveAgent,
458
+ },
459
+ model: {
460
+ current: currentModel,
461
+ currentKey: currentModelKey,
462
+ // The wire model to SEND: `auto` when on the default (gateway resolves it),
463
+ // otherwise the explicit pick. Callers should send this, not currentKey.
464
+ sendKey: sendModelKey,
465
+ // True when no explicit pick is active — the picker shows currentKey as the
466
+ // resolved default and the wire send is `auto`.
467
+ onDefault: onDefaultModel,
468
+ recent: recentModels,
469
+ list: flatModels,
470
+ set: setModel,
471
+ visible: modelStore.isVisible,
472
+ setVisibility: modelStore.setVisibility,
473
+ cycle: cycleModel,
474
+ hasSessionModel,
475
+ variant: {
476
+ current: variantCurrent,
477
+ list: variantList,
478
+ set: setVariant,
479
+ cycle: cycleVariant,
480
+ },
481
+ },
482
+ };
483
+ }
484
+ //# sourceMappingURL=use-opencode-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-opencode-local.js","sourceRoot":"","sources":["../../src/react/use-opencode-local.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { useOpenCodeMcpStatus } from './use-opencode-sessions/index.js';
2
+ import type { McpStatus } from './use-opencode-sessions/index.js';
3
+ export { useOpenCodeMcpStatus };
4
+ export type { McpStatus };
5
+ export interface AddMcpServerParams {
6
+ name: string;
7
+ type: 'local' | 'remote';
8
+ /** For local (stdio) servers: the command + args as an array */
9
+ command?: string[];
10
+ /** For local servers: environment variables */
11
+ env?: Record<string, string>;
12
+ /** For remote (HTTP/SSE) servers: the URL */
13
+ url?: string;
14
+ /** For remote servers: custom headers */
15
+ headers?: Record<string, string>;
16
+ }
17
+ export declare function useAddMcpServer(): import("@tanstack/react-query").UseMutationResult<Record<string, McpStatus>, Error, AddMcpServerParams, unknown>;
18
+ export declare function useConnectMcpServer(): import("@tanstack/react-query").UseMutationResult<boolean, Error, string, {
19
+ prev: Record<string, McpStatus> | undefined;
20
+ }>;
21
+ export declare function useDisconnectMcpServer(): import("@tanstack/react-query").UseMutationResult<boolean, Error, string, {
22
+ prev: Record<string, McpStatus> | undefined;
23
+ }>;
24
+ export declare function useMcpAuthStart(): import("@tanstack/react-query").UseMutationResult<{
25
+ authorizationUrl: string;
26
+ }, Error, string, unknown>;
27
+ export declare function useMcpAuthCallback(): import("@tanstack/react-query").UseMutationResult<McpStatus, Error, {
28
+ name: string;
29
+ code: string;
30
+ }, unknown>;
31
+ export declare function useMcpAuthRemove(): import("@tanstack/react-query").UseMutationResult<{
32
+ success: true;
33
+ }, Error, string, unknown>;
34
+ //# sourceMappingURL=use-opencode-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-opencode-mcp.d.ts","sourceRoot":"","sources":["../../src/react/use-opencode-mcp.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAgB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMzD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,CAAC;AA+B1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,eAAe,qHAqC9B;AAMD,wBAAgB,mBAAmB;;GAgClC;AAMD,wBAAgB,sBAAsB;;GA+BrC;AAMD,wBAAgB,eAAe;sBAKoB,MAAM;2BAGxD;AAMD,wBAAgB,kBAAkB;UAIa,MAAM;UAAQ,MAAM;YAUlE;AAMD,wBAAgB,gBAAgB;;2BAa/B"}