@botiverse/oar 0.46.0 → 0.48.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 (212) hide show
  1. package/README.md +48 -5
  2. package/assets/brands/NOTICE.md +2 -0
  3. package/assets/brands/pi-durable-on-dark.svg +6 -0
  4. package/assets/brands/pi-durable-on-light.svg +6 -0
  5. package/assets/brands/pi-durable.svg +6 -0
  6. package/dist/brands.d.ts +8 -0
  7. package/dist/brands.d.ts.map +1 -1
  8. package/dist/brands.js +2 -1
  9. package/dist/brands.js.map +1 -1
  10. package/dist/browser.d.ts +12 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +10 -0
  13. package/dist/browser.js.map +1 -0
  14. package/dist/contracts/index.d.ts +15 -0
  15. package/dist/contracts/index.d.ts.map +1 -0
  16. package/dist/contracts/index.js +4 -0
  17. package/dist/contracts/index.js.map +1 -0
  18. package/dist/contracts/install.d.ts +96 -0
  19. package/dist/contracts/install.d.ts.map +1 -0
  20. package/dist/contracts/install.js +2 -0
  21. package/dist/contracts/install.js.map +1 -0
  22. package/dist/contracts/records.d.ts +9 -11
  23. package/dist/contracts/records.d.ts.map +1 -1
  24. package/dist/contracts/runtime.d.ts +16 -0
  25. package/dist/contracts/runtime.d.ts.map +1 -1
  26. package/dist/contracts/runtime.js.map +1 -1
  27. package/dist/contracts/tool-output.d.ts +9 -0
  28. package/dist/contracts/tool-output.d.ts.map +1 -1
  29. package/dist/index.d.ts +1 -13
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/observe/agent-status.d.ts +1 -0
  34. package/dist/observe/agent-status.d.ts.map +1 -1
  35. package/dist/observe/agent-status.js +3 -0
  36. package/dist/observe/agent-status.js.map +1 -1
  37. package/dist/observe/conversation.d.ts +2 -2
  38. package/dist/observe/conversation.d.ts.map +1 -1
  39. package/dist/observe/input-delivery.d.ts +1 -1
  40. package/dist/observe/input-delivery.d.ts.map +1 -1
  41. package/dist/observe/session-view-events.d.ts.map +1 -1
  42. package/dist/observe/session-view-events.js +7 -2
  43. package/dist/observe/session-view-events.js.map +1 -1
  44. package/dist/observe/session-view-tools.d.ts +6 -0
  45. package/dist/observe/session-view-tools.d.ts.map +1 -1
  46. package/dist/observe/session-view-tools.js +7 -1
  47. package/dist/observe/session-view-tools.js.map +1 -1
  48. package/dist/observe/session-view.d.ts +1 -1
  49. package/dist/observe/session-view.d.ts.map +1 -1
  50. package/dist/observe/tool-activity.d.ts.map +1 -1
  51. package/dist/observe/tool-activity.js +4 -1
  52. package/dist/observe/tool-activity.js.map +1 -1
  53. package/dist/pi-durable.d.ts +3 -0
  54. package/dist/pi-durable.d.ts.map +1 -0
  55. package/dist/pi-durable.js +3 -0
  56. package/dist/pi-durable.js.map +1 -0
  57. package/dist/runtimes/antigravity/index.d.ts +7 -5
  58. package/dist/runtimes/antigravity/index.d.ts.map +1 -1
  59. package/dist/runtimes/antigravity/index.js +3 -0
  60. package/dist/runtimes/antigravity/index.js.map +1 -1
  61. package/dist/runtimes/antigravity/install.d.ts +10 -0
  62. package/dist/runtimes/antigravity/install.d.ts.map +1 -0
  63. package/dist/runtimes/antigravity/install.js +16 -0
  64. package/dist/runtimes/antigravity/install.js.map +1 -0
  65. package/dist/runtimes/antigravity/installation.d.ts +1 -1
  66. package/dist/runtimes/antigravity/installation.d.ts.map +1 -1
  67. package/dist/runtimes/claude/index.d.ts +11 -9
  68. package/dist/runtimes/claude/index.d.ts.map +1 -1
  69. package/dist/runtimes/claude/index.js +4 -0
  70. package/dist/runtimes/claude/index.js.map +1 -1
  71. package/dist/runtimes/claude/install.d.ts +17 -0
  72. package/dist/runtimes/claude/install.d.ts.map +1 -0
  73. package/dist/runtimes/claude/install.js +29 -0
  74. package/dist/runtimes/claude/install.js.map +1 -0
  75. package/dist/runtimes/claude/installation.d.ts +10 -1
  76. package/dist/runtimes/claude/installation.d.ts.map +1 -1
  77. package/dist/runtimes/claude/installation.js +15 -1
  78. package/dist/runtimes/claude/installation.js.map +1 -1
  79. package/dist/runtimes/codex/index.d.ts +10 -8
  80. package/dist/runtimes/codex/index.d.ts.map +1 -1
  81. package/dist/runtimes/codex/index.js +4 -0
  82. package/dist/runtimes/codex/index.js.map +1 -1
  83. package/dist/runtimes/codex/install.d.ts +18 -0
  84. package/dist/runtimes/codex/install.d.ts.map +1 -0
  85. package/dist/runtimes/codex/install.js +30 -0
  86. package/dist/runtimes/codex/install.js.map +1 -0
  87. package/dist/runtimes/codex/installation.d.ts +12 -1
  88. package/dist/runtimes/codex/installation.d.ts.map +1 -1
  89. package/dist/runtimes/codex/installation.js +28 -13
  90. package/dist/runtimes/codex/installation.js.map +1 -1
  91. package/dist/runtimes/codex/projection.d.ts.map +1 -1
  92. package/dist/runtimes/codex/projection.js +3 -1
  93. package/dist/runtimes/codex/projection.js.map +1 -1
  94. package/dist/runtimes/grok/index.d.ts +9 -7
  95. package/dist/runtimes/grok/index.d.ts.map +1 -1
  96. package/dist/runtimes/grok/index.js +3 -0
  97. package/dist/runtimes/grok/index.js.map +1 -1
  98. package/dist/runtimes/grok/install.d.ts +13 -0
  99. package/dist/runtimes/grok/install.d.ts.map +1 -0
  100. package/dist/runtimes/grok/install.js +25 -0
  101. package/dist/runtimes/grok/install.js.map +1 -0
  102. package/dist/runtimes/grok/installation.d.ts +1 -1
  103. package/dist/runtimes/grok/installation.d.ts.map +1 -1
  104. package/dist/runtimes/grok/session.d.ts.map +1 -1
  105. package/dist/runtimes/grok/session.js +1 -0
  106. package/dist/runtimes/grok/session.js.map +1 -1
  107. package/dist/runtimes/kimi/index.d.ts +9 -7
  108. package/dist/runtimes/kimi/index.d.ts.map +1 -1
  109. package/dist/runtimes/kimi/index.js +3 -0
  110. package/dist/runtimes/kimi/index.js.map +1 -1
  111. package/dist/runtimes/kimi/install.d.ts +16 -0
  112. package/dist/runtimes/kimi/install.d.ts.map +1 -0
  113. package/dist/runtimes/kimi/install.js +28 -0
  114. package/dist/runtimes/kimi/install.js.map +1 -0
  115. package/dist/runtimes/kimi/installation.d.ts +1 -1
  116. package/dist/runtimes/kimi/installation.d.ts.map +1 -1
  117. package/dist/runtimes/kimi/session.d.ts +1 -1
  118. package/dist/runtimes/kimi/session.d.ts.map +1 -1
  119. package/dist/runtimes/opencode/attribution.d.ts +4 -0
  120. package/dist/runtimes/opencode/attribution.d.ts.map +1 -0
  121. package/dist/runtimes/opencode/attribution.js +13 -0
  122. package/dist/runtimes/opencode/attribution.js.map +1 -0
  123. package/dist/runtimes/opencode/index.d.ts +7 -4
  124. package/dist/runtimes/opencode/index.d.ts.map +1 -1
  125. package/dist/runtimes/opencode/index.js +4 -0
  126. package/dist/runtimes/opencode/index.js.map +1 -1
  127. package/dist/runtimes/opencode/install.d.ts +30 -0
  128. package/dist/runtimes/opencode/install.d.ts.map +1 -0
  129. package/dist/runtimes/opencode/install.js +55 -0
  130. package/dist/runtimes/opencode/install.js.map +1 -0
  131. package/dist/runtimes/opencode/installation.d.ts +2 -2
  132. package/dist/runtimes/opencode/installation.d.ts.map +1 -1
  133. package/dist/runtimes/opencode/installation.js +1 -1
  134. package/dist/runtimes/opencode/list-models.d.ts.map +1 -1
  135. package/dist/runtimes/opencode/list-models.js +15 -2
  136. package/dist/runtimes/opencode/list-models.js.map +1 -1
  137. package/dist/runtimes/opencode/session.d.ts +2 -0
  138. package/dist/runtimes/opencode/session.d.ts.map +1 -1
  139. package/dist/runtimes/opencode/session.js +24 -6
  140. package/dist/runtimes/opencode/session.js.map +1 -1
  141. package/dist/runtimes/opencode/version.d.ts +5 -0
  142. package/dist/runtimes/opencode/version.d.ts.map +1 -0
  143. package/dist/runtimes/opencode/version.js +23 -0
  144. package/dist/runtimes/opencode/version.js.map +1 -0
  145. package/dist/runtimes/pi/index.d.ts +6 -6
  146. package/dist/runtimes/pi/list-models.d.ts +3 -35
  147. package/dist/runtimes/pi/list-models.d.ts.map +1 -1
  148. package/dist/runtimes/pi/list-models.js +2 -22
  149. package/dist/runtimes/pi/list-models.js.map +1 -1
  150. package/dist/runtimes/pi/model-projection.d.ts +36 -0
  151. package/dist/runtimes/pi/model-projection.d.ts.map +1 -0
  152. package/dist/runtimes/pi/model-projection.js +23 -0
  153. package/dist/runtimes/pi/model-projection.js.map +1 -0
  154. package/dist/runtimes/pi/projection.d.ts.map +1 -1
  155. package/dist/runtimes/pi/projection.js +1 -0
  156. package/dist/runtimes/pi/projection.js.map +1 -1
  157. package/dist/runtimes/pi-durable/index.d.ts +12 -0
  158. package/dist/runtimes/pi-durable/index.d.ts.map +1 -0
  159. package/dist/runtimes/pi-durable/index.js +25 -0
  160. package/dist/runtimes/pi-durable/index.js.map +1 -0
  161. package/dist/runtimes/pi-durable/messages.d.ts +20 -0
  162. package/dist/runtimes/pi-durable/messages.d.ts.map +1 -0
  163. package/dist/runtimes/pi-durable/messages.js +57 -0
  164. package/dist/runtimes/pi-durable/messages.js.map +1 -0
  165. package/dist/runtimes/pi-durable/options.d.ts +7 -0
  166. package/dist/runtimes/pi-durable/options.d.ts.map +1 -0
  167. package/dist/runtimes/pi-durable/options.js +90 -0
  168. package/dist/runtimes/pi-durable/options.js.map +1 -0
  169. package/dist/runtimes/pi-durable/projection.d.ts +19 -0
  170. package/dist/runtimes/pi-durable/projection.d.ts.map +1 -0
  171. package/dist/runtimes/pi-durable/projection.js +140 -0
  172. package/dist/runtimes/pi-durable/projection.js.map +1 -0
  173. package/dist/runtimes/pi-durable/session.d.ts +5 -0
  174. package/dist/runtimes/pi-durable/session.d.ts.map +1 -0
  175. package/dist/runtimes/pi-durable/session.js +137 -0
  176. package/dist/runtimes/pi-durable/session.js.map +1 -0
  177. package/dist/shared/acp/profile.d.ts +9 -4
  178. package/dist/shared/acp/profile.d.ts.map +1 -1
  179. package/dist/shared/acp/profile.js.map +1 -1
  180. package/dist/shared/acp/records.d.ts +2 -1
  181. package/dist/shared/acp/records.d.ts.map +1 -1
  182. package/dist/shared/acp/records.js +6 -2
  183. package/dist/shared/acp/records.js.map +1 -1
  184. package/dist/shared/acp/session.js +2 -2
  185. package/dist/shared/acp/session.js.map +1 -1
  186. package/dist/shared/acp/turns.d.ts +6 -5
  187. package/dist/shared/acp/turns.d.ts.map +1 -1
  188. package/dist/shared/acp/turns.js +21 -10
  189. package/dist/shared/acp/turns.js.map +1 -1
  190. package/dist/shared/executable/index.d.ts +1 -1
  191. package/dist/shared/executable/index.d.ts.map +1 -1
  192. package/dist/shared/executable/index.js +1 -1
  193. package/dist/shared/executable/index.js.map +1 -1
  194. package/dist/shared/executable/isolated.d.ts +5 -0
  195. package/dist/shared/executable/isolated.d.ts.map +1 -1
  196. package/dist/shared/executable/isolated.js +8 -0
  197. package/dist/shared/executable/isolated.js.map +1 -1
  198. package/dist/shared/install.d.ts +70 -0
  199. package/dist/shared/install.d.ts.map +1 -0
  200. package/dist/shared/install.js +176 -0
  201. package/dist/shared/install.js.map +1 -0
  202. package/dist/shared/seal-session.d.ts.map +1 -1
  203. package/dist/shared/seal-session.js +1 -2
  204. package/dist/shared/seal-session.js.map +1 -1
  205. package/dist/shared/session-kernel.d.ts.map +1 -1
  206. package/dist/shared/session-kernel.js +2 -3
  207. package/dist/shared/session-kernel.js.map +1 -1
  208. package/dist/shared/update.d.ts +1 -1
  209. package/dist/shared/update.d.ts.map +1 -1
  210. package/dist/shared/update.js +4 -8
  211. package/dist/shared/update.js.map +1 -1
  212. package/package.json +22 -4
@@ -2,6 +2,7 @@ import { runtimeBrands } from "../../brands.js";
2
2
  import { defineRuntime } from "../../contracts/runtime.js";
3
3
  import { kimiAccountUsage } from "./account-usage.js";
4
4
  import { kimiInstallation } from "./installation.js";
5
+ import { kimiInstall, kimiInstallPlan } from "./install.js";
5
6
  import { kimiListModels } from "./list-models.js";
6
7
  import { kimiCheckUpdate, kimiUpgrade } from "./update.js";
7
8
  import { kimiRefusedSessionOptions, kimiSession } from "./session.js";
@@ -9,6 +10,8 @@ export const kimiRuntime = defineRuntime({
9
10
  id: "kimi",
10
11
  brand: runtimeBrands.kimi,
11
12
  installation: kimiInstallation,
13
+ installPlan: kimiInstallPlan,
14
+ install: kimiInstall,
12
15
  accountUsage: kimiAccountUsage,
13
16
  listModels: kimiListModels,
14
17
  checkUpdate: kimiCheckUpdate,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;IACvC,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,aAAa,CAAC,IAAI;IACzB,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,qBAAqB,EAAE,yBAAyB;CACjD,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;IACvC,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,aAAa,CAAC,IAAI;IACzB,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,qBAAqB,EAAE,yBAAyB;CACjD,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type ScriptInstallMethod } from "../../shared/install.js";
2
+ /**
3
+ * Moonshot's native installer, documented at
4
+ * https://github.com/MoonshotAI/kimi-code#install. It installs the release
5
+ * `code.kimi.com/kimi-code/latest` names as `$KIMI_INSTALL_DIR/bin/kimi`
6
+ * (default `~/.kimi-code/bin/kimi`), the native copy `kimi upgrade` stages
7
+ * updates for, and records region `mainland-cn` (the `code.kimi.com` source
8
+ * `checkUpdate` then reads; the region only seeds the first login). It never
9
+ * prompts; it adds its folder to the shell profile and renames an older
10
+ * Python `kimi-cli` shim it finds first on PATH to `kimi-legacy`, where this
11
+ * user can write.
12
+ */
13
+ export declare const kimiInstallMethod: ScriptInstallMethod;
14
+ export declare const kimiInstallPlan: import("../../browser.js").InstallPlanner;
15
+ export declare const kimiInstall: import("../../browser.js").Installer;
16
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGjH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,mBAS/B,CAAC;AAEF,eAAO,MAAM,eAAe,2CAAuC,CAAC;AAEpE,eAAO,MAAM,WAAW,sCAAmD,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { homedir } from "node:os";
2
+ import path from "node:path";
3
+ import { installDir, planInstaller, scriptInstallPlan } from "../../shared/install.js";
4
+ import { kimiInstallation } from "./installation.js";
5
+ /**
6
+ * Moonshot's native installer, documented at
7
+ * https://github.com/MoonshotAI/kimi-code#install. It installs the release
8
+ * `code.kimi.com/kimi-code/latest` names as `$KIMI_INSTALL_DIR/bin/kimi`
9
+ * (default `~/.kimi-code/bin/kimi`), the native copy `kimi upgrade` stages
10
+ * updates for, and records region `mainland-cn` (the `code.kimi.com` source
11
+ * `checkUpdate` then reads; the region only seeds the first login). It never
12
+ * prompts; it adds its folder to the shell profile and renames an older
13
+ * Python `kimi-cli` shim it finds first on PATH to `kimi-legacy`, where this
14
+ * user can write.
15
+ */
16
+ export const kimiInstallMethod = {
17
+ source: "https://github.com/MoonshotAI/kimi-code#install",
18
+ line: "curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash",
19
+ tools: ["curl", "bash"],
20
+ writes: () => {
21
+ const home = path.join(homedir(), ".kimi-code");
22
+ return [installDir(process.env.KIMI_INSTALL_DIR, home), installDir(process.env.KIMI_CODE_HOME, home)];
23
+ },
24
+ windows: "Moonshot documents, in PowerShell: irm https://code.kimi.com/kimi-code/install.ps1 | iex",
25
+ };
26
+ export const kimiInstallPlan = scriptInstallPlan(kimiInstallMethod);
27
+ export const kimiInstall = planInstaller(kimiInstallation, kimiInstallPlan);
28
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAA4B,MAAM,yBAAyB,CAAC;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IACpD,MAAM,EAAE,iDAAiD;IACzD,IAAI,EAAE,8DAA8D;IACpE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,GAAG,EAAE;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QAChD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,EAAE,0FAA0F;CACpG,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  /** Official native-installer layouts that can be invisible to GUI-process PATH. */
2
2
  export declare function kimiInstalledExecutableCandidates(platform?: NodeJS.Platform, home?: string, env?: Readonly<NodeJS.ProcessEnv>): readonly string[];
3
- export declare const kimiInstallation: import("../../index.js").InstallationProbe;
3
+ export declare const kimiInstallation: import("../../browser.js").InstallationProbe;
4
4
  //# sourceMappingURL=installation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/installation.ts"],"names":[],"mappings":"AAIA,mFAAmF;AACnF,wBAAgB,iCAAiC,CAC/C,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAkB,EACxB,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAe,GAC7C,SAAS,MAAM,EAAE,CAWnB;AAED,eAAO,MAAM,gBAAgB,4CAM5B,CAAC"}
1
+ {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/installation.ts"],"names":[],"mappings":"AAIA,mFAAmF;AACnF,wBAAgB,iCAAiC,CAC/C,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAkB,EACxB,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAe,GAC7C,SAAS,MAAM,EAAE,CAWnB;AAED,eAAO,MAAM,gBAAgB,8CAM5B,CAAC"}
@@ -5,5 +5,5 @@ export declare function selectKimiAuthMethod(initialized: JsonRecord): string |
5
5
  export declare function supportsKimiYolo(response: JsonRecord): boolean;
6
6
  export declare const kimiRefusedSessionOptions: RefusedSessionOptions;
7
7
  export declare const kimiAcpProfile: AcpSessionProfile;
8
- export declare const kimiSession: import("../../index.js").StartSession;
8
+ export declare const kimiSession: import("../../browser.js").StartSession;
9
9
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGjE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAOhF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAU9D;AAED,eAAO,MAAM,yBAAyB,EAAE,qBAKvC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBA4B5B,CAAC;AAEF,eAAO,MAAM,WAAW,uCAA6B,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGjE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAOhF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAU9D;AAED,eAAO,MAAM,yBAAyB,EAAE,qBAKvC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBA4B5B,CAAC;AAEF,eAAO,MAAM,WAAW,yCAA6B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AcpSessionProfile } from "../../shared/acp/profile.js";
2
+ /** v2 forwards child updates on the root envelope; native metadata owns the identity. */
3
+ export declare const opencodeChildAttribution: NonNullable<AcpSessionProfile["attributeUpdate"]>;
4
+ //# sourceMappingURL=attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/attribution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAStF,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { asRecord } from "../../shared/json.js";
2
+ /** v2 forwards child updates on the root envelope; native metadata owns the identity. */
3
+ export const opencodeChildAttribution = (notification) => {
4
+ const envelope = asRecord(notification);
5
+ const update = asRecord(envelope?.update);
6
+ // oxlint-disable-next-line eslint/no-underscore-dangle -- Native ACP extension field.
7
+ const child = asRecord(asRecord(update?._meta)?.["opencode/child-session"]) ?? asRecord(asRecord(envelope?._meta)?.["opencode/child-session"]);
8
+ if (update === null || typeof child?.id !== "string" || child.id === "" || typeof child.parentID !== "string" || child.parentID === "" || child.id === child.parentID) {
9
+ return null;
10
+ }
11
+ return { sessionId: child.id, parent: child.parentID };
12
+ };
13
+ //# sourceMappingURL=attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/attribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,yFAAyF;AACzF,MAAM,CAAC,MAAM,wBAAwB,GAAsD,CAAC,YAAY,EAAE,EAAE;IAC1G,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,sFAAsF;IACtF,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/I,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtK,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzD,CAAC,CAAC"}
@@ -9,10 +9,13 @@ export declare const opencodeRuntime: {
9
9
  };
10
10
  };
11
11
  readonly refusedSessionOptions: Readonly<Partial<Record<import("../../contracts/runtime.js").RefusableSessionOption, string>>>;
12
- readonly installation: import("../../index.js").InstallationProbe;
13
- readonly session: import("../../index.js").StartSession;
14
- readonly listModels: import("../../index.js").ModelLister;
15
- } & import("../../index.js").RuntimeInventories & {
12
+ readonly installation: import("../../browser.js").InstallationProbe;
13
+ readonly installPlan: import("../../browser.js").InstallPlanner;
14
+ readonly install: import("../../browser.js").Installer;
15
+ readonly installLines: readonly import("../../browser.js").InstallLine[];
16
+ readonly session: import("../../browser.js").StartSession;
17
+ readonly listModels: import("../../browser.js").ModelLister;
18
+ } & import("../../browser.js").RuntimeInventories & {
16
19
  readonly brand: import("../../brands.js").RuntimeBrand;
17
20
  };
18
21
  export { opencodeSession } from "./session.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;CAO1B,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAU1B,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { runtimeBrands } from "../../brands.js";
2
2
  import { defineRuntime } from "../../contracts/runtime.js";
3
3
  import { opencodeInstallation } from "./installation.js";
4
+ import { opencodeInstall, opencodeInstallLines, opencodeInstallPlan } from "./install.js";
4
5
  import { opencodeListModels } from "./list-models.js";
5
6
  import { opencodeRefusedSessionOptions, opencodeSession } from "./session.js";
6
7
  export const opencodeRuntime = defineRuntime({
@@ -8,6 +9,9 @@ export const opencodeRuntime = defineRuntime({
8
9
  brand: runtimeBrands.opencode,
9
10
  refusedSessionOptions: opencodeRefusedSessionOptions,
10
11
  installation: opencodeInstallation,
12
+ installPlan: opencodeInstallPlan,
13
+ install: opencodeInstall,
14
+ installLines: opencodeInstallLines,
11
15
  session: opencodeSession,
12
16
  listModels: opencodeListModels,
13
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC;IAC3C,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,aAAa,CAAC,QAAQ;IAC7B,qBAAqB,EAAE,6BAA6B;IACpD,YAAY,EAAE,oBAAoB;IAClC,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,kBAAkB;CAC/B,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC;IAC3C,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,aAAa,CAAC,QAAQ;IAC7B,qBAAqB,EAAE,6BAA6B;IACpD,YAAY,EAAE,oBAAoB;IAClC,WAAW,EAAE,mBAAmB;IAChC,OAAO,EAAE,eAAe;IACxB,YAAY,EAAE,oBAAoB;IAClC,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,kBAAkB;CAC/B,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { AvailableInstallation } from "../../contracts/installation.js";
2
+ import type { InstallLine } from "../../contracts/install.js";
3
+ import { type ScriptInstallMethod } from "../../shared/install.js";
4
+ /**
5
+ * OpenCode ships two major lines of the same `opencode` command in parallel:
6
+ * OpenCode 1 (npm `opencode-ai`, 1.x) and OpenCode 2 (npm `@opencode/cli`,
7
+ * 2.x, a rewrite with a new plugin and server API). They do not install side
8
+ * by side: both install scripts write `~/.opencode/bin/opencode`; the 2
9
+ * installer replaces a 1 binary (https://opencode.ai/v2/docs/migrate-v1),
10
+ * and the 1 script silently replaces a 2 binary with 1
11
+ * (https://github.com/anomalyco/opencode/issues/54084).
12
+ * So oar never chooses a line for the person, and an install never runs over
13
+ * a copy of either line: the probe finds it first (`already_installed`).
14
+ */
15
+ export declare const opencodeInstallLines: readonly InstallLine[];
16
+ /**
17
+ * Each line's install script as OpenCode documents it first, downloading
18
+ * that line's latest release to `~/.opencode/bin/opencode`, never prompting,
19
+ * and adding the folder to the shell profile when one exists (it creates
20
+ * none). Chosen because each line's own `opencode upgrade` takes that path as
21
+ * its `curl` method (v1: packages/opencode/src/installation/index.ts) and
22
+ * stays on the line: in the sandbox both answered "Using method: curl".
23
+ * OpenCode documents no script for Windows.
24
+ */
25
+ export declare const opencodeInstallMethods: Readonly<Record<string, ScriptInstallMethod>>;
26
+ /** `opencode --version`: `1.18.35` on line 1, `opencode v2.0.26` on line 2. */
27
+ export declare function opencodeLineOf(installation: AvailableInstallation): string | undefined;
28
+ export declare const opencodeInstallPlan: import("../../contracts/install.js").InstallPlanner;
29
+ export declare const opencodeInstall: import("../../contracts/install.js").Installer;
30
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAmC,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAIpG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,WAAW,EAGtD,CAAC;AAIF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAehF,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,YAAY,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAItF;AAED,eAAO,MAAM,mBAAmB,qDAAqF,CAAC;AAEtH,eAAO,MAAM,eAAe,gDAA2E,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { homedir } from "node:os";
2
+ import path from "node:path";
3
+ import { linedInstallPlan, planInstaller } from "../../shared/install.js";
4
+ import { releaseVersion } from "../../shared/update.js";
5
+ import { opencodeInstallation } from "./installation.js";
6
+ /**
7
+ * OpenCode ships two major lines of the same `opencode` command in parallel:
8
+ * OpenCode 1 (npm `opencode-ai`, 1.x) and OpenCode 2 (npm `@opencode/cli`,
9
+ * 2.x, a rewrite with a new plugin and server API). They do not install side
10
+ * by side: both install scripts write `~/.opencode/bin/opencode`; the 2
11
+ * installer replaces a 1 binary (https://opencode.ai/v2/docs/migrate-v1),
12
+ * and the 1 script silently replaces a 2 binary with 1
13
+ * (https://github.com/anomalyco/opencode/issues/54084).
14
+ * So oar never chooses a line for the person, and an install never runs over
15
+ * a copy of either line: the probe finds it first (`already_installed`).
16
+ */
17
+ export const opencodeInstallLines = [
18
+ { line: "v1", description: "OpenCode 1: the opencode-ai 1.x releases" },
19
+ { line: "v2", description: "OpenCode 2: the @opencode/cli 2.x releases, with a new plugin and server API" },
20
+ ];
21
+ const writes = () => [path.join(homedir(), ".opencode", "bin")];
22
+ /**
23
+ * Each line's install script as OpenCode documents it first, downloading
24
+ * that line's latest release to `~/.opencode/bin/opencode`, never prompting,
25
+ * and adding the folder to the shell profile when one exists (it creates
26
+ * none). Chosen because each line's own `opencode upgrade` takes that path as
27
+ * its `curl` method (v1: packages/opencode/src/installation/index.ts) and
28
+ * stays on the line: in the sandbox both answered "Using method: curl".
29
+ * OpenCode documents no script for Windows.
30
+ */
31
+ export const opencodeInstallMethods = {
32
+ v1: {
33
+ source: "https://opencode.ai/docs/#install",
34
+ line: "curl -fsSL https://opencode.ai/install | bash",
35
+ tools: ["curl", "bash"],
36
+ writes,
37
+ windows: "OpenCode recommends WSL, or npm install -g opencode-ai, Scoop or Chocolatey",
38
+ },
39
+ v2: {
40
+ source: "https://opencode.ai/v2/docs/",
41
+ line: "curl -fsSL https://opencode.ai/v2/install | bash",
42
+ tools: ["curl", "bash"],
43
+ writes,
44
+ windows: "OpenCode documents no script for OpenCode 2 there; its packages (npm install -g @opencode/cli) are on https://opencode.ai/v2/docs/",
45
+ },
46
+ };
47
+ /** `opencode --version`: `1.18.35` on line 1, `opencode v2.0.26` on line 2. */
48
+ export function opencodeLineOf(installation) {
49
+ const version = installation.via === "executable" && installation.version !== undefined ? releaseVersion(installation.version) : undefined;
50
+ const major = version?.split(".")[0];
51
+ return major === undefined ? undefined : opencodeInstallLines.find((entry) => entry.line === `v${major}`)?.line;
52
+ }
53
+ export const opencodeInstallPlan = linedInstallPlan({ lines: opencodeInstallLines, methods: opencodeInstallMethods });
54
+ export const opencodeInstall = planInstaller(opencodeInstallation, opencodeInstallPlan, opencodeLineOf);
55
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C,EAAE;IACvE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,8EAA8E,EAAE;CAC5G,CAAC;AAEF,MAAM,MAAM,GAAG,GAAsB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkD;IACnF,EAAE,EAAE;QACF,MAAM,EAAE,mCAAmC;QAC3C,IAAI,EAAE,+CAA+C;QACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACvB,MAAM;QACN,OAAO,EAAE,6EAA6E;KACvF;IACD,EAAE,EAAE;QACF,MAAM,EAAE,8BAA8B;QACtC,IAAI,EAAE,kDAAkD;QACxD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACvB,MAAM;QACN,OAAO,EAAE,oIAAoI;KAC9I;CACF,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,YAAmC;IAChE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,KAAK,YAAY,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3I,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;AAClH,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAEtH,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC"}
@@ -3,6 +3,6 @@
3
3
  * PATH can miss. npm (`opencode-ai`), Homebrew and Scoop copies are on PATH.
4
4
  */
5
5
  export declare function opencodeInstalledExecutableCandidates(platform?: NodeJS.Platform, home?: string): readonly string[];
6
- /** `opencode --version` (1.18.30) prints the bare release and takes about 2 s to start. */
7
- export declare const opencodeInstallation: import("../../index.js").InstallationProbe;
6
+ /** `opencode --version` is retained verbatim: v1 prints 1.x; v2 prints "opencode v2.x". */
7
+ export declare const opencodeInstallation: import("../../browser.js").InstallationProbe;
8
8
  //# sourceMappingURL=installation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/installation.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAkB,GACvB,SAAS,MAAM,EAAE,CAGnB;AAED,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,4CAMhC,CAAC"}
1
+ {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/installation.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAkB,GACvB,SAAS,MAAM,EAAE,CAGnB;AAED,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,8CAMhC,CAAC"}
@@ -9,6 +9,6 @@ export function opencodeInstalledExecutableCandidates(platform = process.platfor
9
9
  const paths = platform === "win32" ? path.win32 : path.posix;
10
10
  return [paths.join(home, ".opencode", "bin", platform === "win32" ? "opencode.exe" : "opencode")];
11
11
  }
12
- /** `opencode --version` (1.18.30) prints the bare release and takes about 2 s to start. */
12
+ /** `opencode --version` is retained verbatim: v1 prints 1.x; v2 prints "opencode v2.x". */
13
13
  export const opencodeInstallation = executableInstallation("OAR_OPENCODE_BIN", "opencode", opencodeInstalledExecutableCandidates, undefined, { versionTimeoutMs: 15_000 });
14
14
  //# sourceMappingURL=installation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAa9E;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CA6BlE;AAED,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,EAAE,WAWhC,CAAC"}
1
+ {"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAc9E;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CA6BlE;AAED,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,EAAE,WAqBhC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { runExecutable } from "../../shared/executable/index.js";
2
2
  import { processFailure, stderrTail } from "../../shared/executable/diagnostics.js";
3
3
  import { asRecord, parseJson } from "../../shared/json.js";
4
+ import { opencodeMajor } from "./version.js";
4
5
  function text(value) {
5
6
  if (typeof value !== "string") {
6
7
  return undefined;
@@ -53,12 +54,24 @@ export const opencodeListModels = async (installation, options = {}) => {
53
54
  if (installation.via !== "executable") {
54
55
  return { kind: "unsupported", reason: "opencode model listing requires the opencode executable" };
55
56
  }
56
- const result = await runExecutable(installation.command, ["models", "--verbose"], { timeoutMs: options.timeoutMs ?? 30_000 });
57
+ const major = await opencodeMajor(installation);
58
+ // v2's default command connects to a persistent daemon. Listing must not leave one behind.
59
+ const result = await runExecutable(installation.command, ["models", major === 2 ? "--standalone" : "--verbose"], { timeoutMs: options.timeoutMs ?? 30_000 });
57
60
  if (!result.ok) {
58
61
  throw processFailure("Failed to list opencode models", result.diagnostics ?? {
59
62
  exitCode: result.exitCode, signal: null, stderr: stderrTail(result.stderr),
60
63
  });
61
64
  }
62
- return { kind: "ok", models: projectOpencodeModels(result.stdout) };
65
+ if (major === 1) {
66
+ return { kind: "ok", models: projectOpencodeModels(result.stdout) };
67
+ }
68
+ const ids = result.stdout.split(/\r?\n/u).map((line) => line.trim()).filter(Boolean);
69
+ if (ids.length === 0) {
70
+ return { kind: "unsupported", reason: "opencode 2.0.26 models --standalone exits before the cold catalog finishes loading; an empty response does not establish that no models exist (https://github.com/anomalyco/opencode/issues/53724)" };
71
+ }
72
+ if (ids.some((id) => !/^\S+\/\S+$/u.test(id))) {
73
+ throw new Error("opencode models --standalone returned an unrecognized model listing");
74
+ }
75
+ return { kind: "ok", models: ids.map((id) => ({ id })) };
63
76
  };
64
77
  //# sourceMappingURL=list-models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/list-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/list-models.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,7 @@ import { type AcpSessionProfile } from "../../shared/acp/session.js";
8
8
  */
9
9
  export declare const opencodeRefusedSessionOptions: RefusedSessionOptions;
10
10
  export declare const opencodeAcpProfile: AcpSessionProfile;
11
+ export declare const opencodeV2RefusedSessionOptions: RefusedSessionOptions;
12
+ export declare const opencodeV2AcpProfile: AcpSessionProfile;
11
13
  export declare const opencodeSession: StartSession;
12
14
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAIjF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,qBAG3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,iBAwBhC,CAAC;AAgCF,eAAO,MAAM,eAAe,EAAE,YA8B7B,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAIjF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,qBAG3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,iBAwBhC,CAAC;AAIF,eAAO,MAAM,+BAA+B,EAAE,qBAI7C,CAAC;AACF,eAAO,MAAM,oBAAoB,EAAE,iBAKlC,CAAC;AA+BF,eAAO,MAAM,eAAe,EAAE,YA+B7B,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { opencodeMajor } from "./version.js";
2
+ import { opencodeChildAttribution } from "./attribution.js";
1
3
  import { refuseSessionOptions } from "../../shared/session-options.js";
2
4
  import { acpSession } from "../../shared/acp/session.js";
3
5
  import { checkMcpServerNames } from "../../shared/mcp-servers.js";
@@ -37,6 +39,19 @@ export const opencodeAcpProfile = {
37
39
  resumeKeepsSessionCwd: true,
38
40
  };
39
41
  const directSession = acpSession(opencodeAcpProfile);
42
+ const { steerParams: _v1SteerParams, ...commonProfile } = opencodeAcpProfile;
43
+ export const opencodeV2RefusedSessionOptions = {
44
+ ...opencodeRefusedSessionOptions,
45
+ appendSystemPrompt: "opencode v2 does not load the instructions configuration used for session-local appended prompts; ACP exposes no equivalent transient instruction channel",
46
+ systemPrompt: "opencode v2 uses agents.<id>.system, but ACP exposes no per-session replacement and OAR cannot yet safely resolve and override the selected agent across new sessions and resume",
47
+ };
48
+ export const opencodeV2AcpProfile = {
49
+ ...commonProfile,
50
+ capabilities: { queue: { durable: false }, attribution: "nested" },
51
+ attributeUpdate: opencodeChildAttribution,
52
+ validateOptions: (options) => { refuseSessionOptions(opencodeV2RefusedSessionOptions, options); },
53
+ };
54
+ const directV2Session = acpSession(opencodeV2AcpProfile);
40
55
  function withPromptCleanup(session, cleanup) {
41
56
  let unsubscribe = undefined;
42
57
  const observeCleanup = async () => {
@@ -70,17 +85,20 @@ function withPromptCleanup(session, cleanup) {
70
85
  }
71
86
  export const opencodeSession = async (installation, options) => {
72
87
  refuseSessionOptions(opencodeRefusedSessionOptions, options);
88
+ // Invalid MCP entries fail before even the release-line helper can start.
89
+ checkMcpServerNames(options.mcpServers ?? []);
90
+ if (installation.via !== "executable") {
91
+ throw new Error("opencode requires an executable installation");
92
+ }
93
+ if (await opencodeMajor(installation, options) === 2) {
94
+ return directV2Session(installation, options);
95
+ }
73
96
  if (options.systemPrompt === undefined && options.appendSystemPrompt === undefined) {
74
97
  return directSession(installation, options);
75
98
  }
76
99
  // The prompts travel in OPENCODE_CONFIG_CONTENT, the session's MCP servers
77
- // in the ACP open as on the direct path; a list no runtime can attach fails
78
- // before the prompts are prepared.
79
- checkMcpServerNames(options.mcpServers ?? []);
100
+ // in the ACP open as on the direct path, after validation above.
80
101
  validateOpenCodePrompts(options);
81
- if (installation.via !== "executable") {
82
- throw new Error("opencode requires an executable installation");
83
- }
84
102
  const prepared = await prepareOpenCodePrompts(installation.command, options);
85
103
  try {
86
104
  const session = await acpSession({
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ExecutableInstallation } from "../../contracts/installation.js";
2
+ import type { SessionOptions } from "../../contracts/session.js";
3
+ /** The two independently maintained native lines share one command name. */
4
+ export declare function opencodeMajor(installation: ExecutableInstallation, options?: Pick<SessionOptions, "cwd" | "env">): Promise<1 | 2>;
5
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/runtimes/opencode/version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKjE,4EAA4E;AAC5E,wBAAsB,aAAa,CAAC,YAAY,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAevI"}
@@ -0,0 +1,23 @@
1
+ import { processFailure } from "../../shared/executable/diagnostics.js";
2
+ import { runExecutable } from "../../shared/executable/run.js";
3
+ import { sessionEnvironment } from "../../shared/environment.js";
4
+ /** The two independently maintained native lines share one command name. */
5
+ export async function opencodeMajor(installation, options) {
6
+ let version = installation.version;
7
+ if (version === undefined) {
8
+ const result = await runExecutable(installation.command, ["--version"], {
9
+ timeoutMs: 15_000,
10
+ ...(options === undefined ? {} : { cwd: options.cwd, env: sessionEnvironment(options.env) }),
11
+ });
12
+ if (!result.ok) {
13
+ throw processFailure("Failed to identify the opencode release line", result.diagnostics ?? { exitCode: result.exitCode, signal: null, stderr: result.stderr });
14
+ }
15
+ version = result.stdout.trim();
16
+ }
17
+ const major = /^(?:opencode\s+)?v?([12])\.\d+\.\d+(?:\S*)$/u.exec(version.trim())?.[1];
18
+ if (major === "1" || major === "2") {
19
+ return major === "1" ? 1 : 2;
20
+ }
21
+ throw new Error(`Unrecognized opencode release line: ${JSON.stringify(version)}`);
22
+ }
23
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/runtimes/opencode/version.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,YAAoC,EAAE,OAA6C;IACrH,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE;YACtE,SAAS,EAAE,MAAM;YACjB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;SAC7F,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,cAAc,CAAC,8CAA8C,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjK,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAAC,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACrE,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC"}
@@ -14,12 +14,12 @@ export declare const piRuntime: {
14
14
  };
15
15
  };
16
16
  readonly refusedSessionOptions: Readonly<Partial<Record<import("../../contracts/runtime.js").RefusableSessionOption, string>>>;
17
- readonly skills: import("../../index.js").InventoryReader<import("../../index.js").SkillEntry>;
18
- readonly tools: import("../../index.js").InventoryReader<import("../../index.js").ToolEntry>;
19
- readonly installation: import("../../index.js").InstallationProbe;
20
- readonly listModels: import("../../index.js").ModelLister;
21
- readonly session: import("../../index.js").StartSession;
22
- } & import("../../index.js").RuntimeInventories & {
17
+ readonly skills: import("../../browser.js").InventoryReader<import("../../browser.js").SkillEntry>;
18
+ readonly tools: import("../../browser.js").InventoryReader<import("../../browser.js").ToolEntry>;
19
+ readonly installation: import("../../browser.js").InstallationProbe;
20
+ readonly listModels: import("../../browser.js").ModelLister;
21
+ readonly session: import("../../browser.js").StartSession;
22
+ } & import("../../browser.js").RuntimeInventories & {
23
23
  readonly brand: import("../../brands.js").RuntimeBrand;
24
24
  };
25
25
  export { piListModels, projectPiModels } from "./list-models.js";
@@ -1,38 +1,6 @@
1
- import type { ModelEntry, ModelLister } from "../../contracts/list-models.js";
2
- /** The subset of Pi's `Model` the projection reads; kept structural for tests. */
3
- export interface PiListedModel {
4
- readonly id: string;
5
- readonly provider: string;
6
- readonly name?: string;
7
- /** Pi's reasoning flag: a model without it runs only the `off` thinking level. */
8
- readonly reasoning?: boolean;
9
- }
10
- /**
11
- * The slice of Pi's `ModelRuntime` the lister depends on. `getAvailable()`
12
- * runs the per-provider availability check (credentials present, OAuth token
13
- * usable) and returns the usable-now list; it is what `pi --list-models`
14
- * itself awaits.
15
- */
16
- export interface PiAvailabilitySource<Model extends PiListedModel = PiListedModel> {
17
- getAvailable(providerId?: string, options?: {
18
- readonly signal?: AbortSignal;
19
- }): Promise<readonly Model[]>;
20
- }
21
- /** Pi's own thinking-level menu for one model (pi-ai `getSupportedThinkingLevels`), injected so the projection stays pure. */
22
- export type PiThinkingLevelsOf<Model extends PiListedModel> = (model: Model) => readonly string[];
23
- /**
24
- * Pi model ids are only unique per provider, so the session-facing id is
25
- * `provider/model`, the same spelling Pi's own `--model` flag accepts.
26
- *
27
- * `effortLevels` is pi's thinking-level menu for a reasoning model, exactly
28
- * as pi derives it (`thinkingLevelMap` drops levels mapped to null and adds
29
- * `xhigh`/`max` only where mapped; `off` is one of pi's levels and stays
30
- * where pi offers it), the levels `SessionOptions.effort` accepts on pi. A
31
- * model without `reasoning` runs only `off` and lists no menu. No
32
- * `defaultEffort`: pi's default is a settings value clamped per model at
33
- * session creation, and the session's `effort()` reports it.
34
- */
35
- export declare function projectPiModels<Model extends PiListedModel>(models: readonly Model[], thinkingLevelsOf?: PiThinkingLevelsOf<Model>): ModelEntry[];
1
+ import type { ModelLister } from "../../contracts/list-models.js";
2
+ import { type PiListedModel, type PiAvailabilitySource, type PiThinkingLevelsOf } from "./model-projection.js";
3
+ export { projectPiModels } from "./model-projection.js";
36
4
  /**
37
5
  * In-process through the bundled SDK, built the way `pi --list-models` builds
38
6
  * its own runtime: `createAgentSessionServices` loads the extensions under the
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG9E,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB,CAAC,KAAK,SAAS,aAAa,GAAG,aAAa;IAC/E,YAAY,CACV,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1C,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;CAC9B;AAED,8HAA8H;AAC9H,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,aAAa,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,MAAM,EAAE,CAAC;AAElG;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,SAAS,aAAa,EACzD,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAC3C,UAAU,EAAE,CASd;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,aAAa,EAC5D,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAC5E,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAC1D,WAAW,CAeb;AAED,eAAO,MAAM,YAAY,EAAE,WA0BzB,CAAC"}
1
+ {"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,EAAmB,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhI,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,aAAa,EAC5D,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAC5E,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAC1D,WAAW,CAeb;AAED,eAAO,MAAM,YAAY,EAAE,WA0BzB,CAAC"}