@dotobokuri/fleet-console 1.38.0 → 1.40.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 (67) hide show
  1. package/dist/cli.mjs +43 -1090
  2. package/dist/client/assets/{_baseUniq-DjwZK6Tv.js → _baseUniq-Bao5GOIa.js} +1 -1
  3. package/dist/client/assets/{arc-CsNVntqy.js → arc-DnhHMLy9.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-Q4EWVU46-Bi8y-wkL.js → architectureDiagram-Q4EWVU46-DAbURr0a.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-DXYQGD6D-BB2SFu76.js → blockDiagram-DXYQGD6D-DE1raZQ6.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AHTNJAMY-BBxhzDJZ.js → c4Diagram-AHTNJAMY-beLZlUB3.js} +1 -1
  7. package/dist/client/assets/channel-Bn1wyUhs.js +1 -0
  8. package/dist/client/assets/{chunk-4BX2VUAB-CHPrg3nb.js → chunk-4BX2VUAB-DEqdunZS.js} +1 -1
  9. package/dist/client/assets/{chunk-4TB4RGXK-DLvawyNq.js → chunk-4TB4RGXK-D8i5nx4L.js} +1 -1
  10. package/dist/client/assets/{chunk-55IACEB6-CLptp70m.js → chunk-55IACEB6-eM3-fH_e.js} +1 -1
  11. package/dist/client/assets/{chunk-EDXVE4YY-DS0cHoGJ.js → chunk-EDXVE4YY-nQoyt_Pd.js} +1 -1
  12. package/dist/client/assets/{chunk-FMBD7UC4-DHhgFtRl.js → chunk-FMBD7UC4-D8Wq8CYj.js} +1 -1
  13. package/dist/client/assets/{chunk-OYMX7WX6-CK20Lrh5.js → chunk-OYMX7WX6-Cx4Wr2ZT.js} +1 -1
  14. package/dist/client/assets/{chunk-QZHKN3VN-BWu1gka4.js → chunk-QZHKN3VN-BM2v7Krr.js} +1 -1
  15. package/dist/client/assets/{chunk-YZCP3GAM-Ce_uXK7W.js → chunk-YZCP3GAM-zTniPxm7.js} +1 -1
  16. package/dist/client/assets/classDiagram-6PBFFD2Q-DBE3Ix3c.js +1 -0
  17. package/dist/client/assets/classDiagram-v2-HSJHXN6E-DBE3Ix3c.js +1 -0
  18. package/dist/client/assets/clone-COL47Wy_.js +1 -0
  19. package/dist/client/assets/{cose-bilkent-S5V4N54A-lmqr4Zox.js → cose-bilkent-S5V4N54A-B5pl2A_p.js} +1 -1
  20. package/dist/client/assets/{dagre-KV5264BT-Cqf_UZn0.js → dagre-KV5264BT-KHPgW9C2.js} +1 -1
  21. package/dist/client/assets/{diagram-5BDNPKRD-B0F2kqdZ.js → diagram-5BDNPKRD-DCv28c7S.js} +1 -1
  22. package/dist/client/assets/{diagram-G4DWMVQ6-Y5Zcbc98.js → diagram-G4DWMVQ6-mT5WQ415.js} +1 -1
  23. package/dist/client/assets/{diagram-MMDJMWI5-B-vHgBZG.js → diagram-MMDJMWI5-iKYfjiRC.js} +1 -1
  24. package/dist/client/assets/{diagram-TYMM5635-BfBWDsiG.js → diagram-TYMM5635-_uqBP7vH.js} +1 -1
  25. package/dist/client/assets/{erDiagram-SMLLAGMA-CB6H1ShS.js → erDiagram-SMLLAGMA-DxNN1WhN.js} +1 -1
  26. package/dist/client/assets/{flowDiagram-DWJPFMVM-BX9hx0Y6.js → flowDiagram-DWJPFMVM-DGTsrBvM.js} +1 -1
  27. package/dist/client/assets/{ganttDiagram-T4ZO3ILL-CHQBgJ4X.js → ganttDiagram-T4ZO3ILL-C17hg4lr.js} +1 -1
  28. package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-kbhc2fZE.js → gitGraphDiagram-UUTBAWPF-CeJ25hAd.js} +1 -1
  29. package/dist/client/assets/{graph-yw0uXaMX.js → graph-BQvb-BfT.js} +1 -1
  30. package/dist/client/assets/index-Ca6HkGPQ.css +1 -0
  31. package/dist/client/assets/index-Cr3Xq85X.js +452 -0
  32. package/dist/client/assets/{infoDiagram-42DDH7IO-BunmSTvD.js → infoDiagram-42DDH7IO-BctsofOZ.js} +1 -1
  33. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-pI7F4-Qw.js → ishikawaDiagram-UXIWVN3A-PiPmxcg9.js} +1 -1
  34. package/dist/client/assets/{journeyDiagram-VCZTEJTY-CncxtERF.js → journeyDiagram-VCZTEJTY-BwkjYq3n.js} +1 -1
  35. package/dist/client/assets/{kanban-definition-6JOO6SKY-CuD4mvBd.js → kanban-definition-6JOO6SKY-CSV4dYfF.js} +1 -1
  36. package/dist/client/assets/{layout-DGY5fGik.js → layout-DdReLJnP.js} +1 -1
  37. package/dist/client/assets/{linear-BYUWMe2Y.js → linear-B54euy_k.js} +1 -1
  38. package/dist/client/assets/{mermaid.core-Drc--ixx.js → mermaid.core-CF92I5mT.js} +4 -4
  39. package/dist/client/assets/{min-CJlVQqXb.js → min-BcETQ2qJ.js} +1 -1
  40. package/dist/client/assets/{mindmap-definition-QFDTVHPH-BAzsMkbE.js → mindmap-definition-QFDTVHPH-CrmVPycO.js} +1 -1
  41. package/dist/client/assets/{pieDiagram-DEJITSTG-DHoVF7we.js → pieDiagram-DEJITSTG-B5d4jR0H.js} +1 -1
  42. package/dist/client/assets/{quadrantDiagram-34T5L4WZ-DGVM0S1B.js → quadrantDiagram-34T5L4WZ-DlgCNExa.js} +1 -1
  43. package/dist/client/assets/{requirementDiagram-MS252O5E-Djmc_jRD.js → requirementDiagram-MS252O5E-CeuVib_X.js} +1 -1
  44. package/dist/client/assets/{sankeyDiagram-XADWPNL6-B09zCkQb.js → sankeyDiagram-XADWPNL6-Bzxv73ik.js} +1 -1
  45. package/dist/client/assets/{sequenceDiagram-FGHM5R23-BrFxwAwj.js → sequenceDiagram-FGHM5R23-B0Ondg0u.js} +1 -1
  46. package/dist/client/assets/{stateDiagram-FHFEXIEX-xzpsyAQ4.js → stateDiagram-FHFEXIEX-CuNHg5DJ.js} +1 -1
  47. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-BVPbUfrG.js +1 -0
  48. package/dist/client/assets/{timeline-definition-GMOUNBTQ-Kl-ES34i.js → timeline-definition-GMOUNBTQ-DXcye6z7.js} +1 -1
  49. package/dist/client/assets/{vennDiagram-DHZGUBPP-w_yD8Rg6.js → vennDiagram-DHZGUBPP-CL4rbpzL.js} +1 -1
  50. package/dist/client/assets/{wardley-RL74JXVD-CaZiB9zS.js → wardley-RL74JXVD-rVZBTA_R.js} +1 -1
  51. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-CjUg4N9u.js → wardleyDiagram-NUSXRM2D-Cb8Arj1F.js} +1 -1
  52. package/dist/client/assets/{xychartDiagram-5P7HB3ND-DsY1zkO5.js → xychartDiagram-5P7HB3ND-C-qp4Say.js} +1 -1
  53. package/dist/client/index.html +2 -2
  54. package/dist/client/theme-boot.js +5 -4
  55. package/dist/fleet-plugins/ledger/routes.mjs +0 -33
  56. package/dist/fleet-plugins/quota/routes.mjs +672 -0
  57. package/dist/fleet-plugins/scuttlebutt/routes.mjs +1 -351
  58. package/dist/fleet-plugins/skills/routes.mjs +0 -33
  59. package/dist/fleet-plugins/terminal/routes.mjs +462 -2017
  60. package/package.json +1 -1
  61. package/dist/client/assets/channel-Ddn4Rope.js +0 -1
  62. package/dist/client/assets/classDiagram-6PBFFD2Q-qu46c_rd.js +0 -1
  63. package/dist/client/assets/classDiagram-v2-HSJHXN6E-qu46c_rd.js +0 -1
  64. package/dist/client/assets/clone-DDNlSib4.js +0 -1
  65. package/dist/client/assets/index-B1Ew8y-o.css +0 -1
  66. package/dist/client/assets/index-CWK41DSi.js +0 -452
  67. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-CxkWw9en.js +0 -1
@@ -19409,23 +19409,6 @@ var models_default = {
19409
19409
  { modelId: "gpt-5.5-fast", name: "GPT-5.5 Fast", providerModelId: "gpt-5.5", serviceTier: "priority", effort: { supported: true, levels: ["low", "medium", "high", "xhigh"], default: "high" } }
19410
19410
  ]
19411
19411
  },
19412
- "opencode-go": {
19413
- name: "OpenCode Go",
19414
- defaultModel: "opencode-go/deepseek-v4-flash",
19415
- models: [
19416
- { modelId: "opencode-go/deepseek-v4-flash", name: "DeepSeek V4 Flash", effort: { supported: false } },
19417
- { modelId: "opencode-go/deepseek-v4-pro", name: "DeepSeek V4 Pro", effort: { supported: false } },
19418
- { modelId: "opencode-go/glm-5.2", name: "GLM-5.2", effort: { supported: false } },
19419
- { modelId: "opencode-go/grok-4.5", name: "Grok 4.5", effort: { supported: false } },
19420
- { modelId: "opencode-go/kimi-k3", name: "Kimi K3", effort: { supported: false } },
19421
- { modelId: "opencode-go/kimi-k2.7-code", name: "Kimi K2.7 Code", effort: { supported: false } },
19422
- { modelId: "opencode-go/mimo-v2.5", name: "MiMo V2.5", effort: { supported: false } },
19423
- { modelId: "opencode-go/mimo-v2.5-pro", name: "MiMo V2.5 Pro", effort: { supported: false } },
19424
- { modelId: "opencode-go/minimax-m3", name: "MiniMax M3", effort: { supported: false } },
19425
- { modelId: "opencode-go/qwen3.7-max", name: "Qwen3.7 Max", effort: { supported: false } },
19426
- { modelId: "opencode-go/qwen3.7-plus", name: "Qwen3.7 Plus", effort: { supported: false } }
19427
- ]
19428
- },
19429
19412
  cursor: {
19430
19413
  name: "Cursor Agent",
19431
19414
  defaultModel: "auto",
@@ -19683,22 +19666,6 @@ var CLI_BACKENDS = {
19683
19666
  usesNpxBridge: false,
19684
19667
  defaultMaxTokens: 1e5
19685
19668
  },
19686
- "opencode-go": {
19687
- id: "opencode-go",
19688
- cliCommand: "opencode",
19689
- protocol: "acp",
19690
- authRequired: false,
19691
- acpArgs: ["acp"],
19692
- modes: [
19693
- { id: "build", label: "Build" },
19694
- { id: "plan", label: "Plan" }
19695
- ],
19696
- supportsSessionClose: true,
19697
- supportsSessionLoad: true,
19698
- requiresModelAtSpawn: true,
19699
- usesNpxBridge: false,
19700
- defaultMaxTokens: 128e3
19701
- },
19702
19669
  cursor: {
19703
19670
  id: "cursor",
19704
19671
  cliCommand: "cursor-agent",
@@ -19760,8 +19727,6 @@ function getYoloModeId(cli) {
19760
19727
  case "claude":
19761
19728
  case "claude-kimi":
19762
19729
  return "bypassPermissions";
19763
- case "opencode-go":
19764
- return "build";
19765
19730
  case "cursor":
19766
19731
  return "agent";
19767
19732
  case "codex":
@@ -22161,319 +22126,6 @@ var UnifiedCursorAgentClient = class extends EventEmitter {
22161
22126
  return patterns.some((pattern) => pattern.test(text));
22162
22127
  }
22163
22128
  };
22164
- var UnifiedOpenCodeAgentClient = class _UnifiedOpenCodeAgentClient extends EventEmitter {
22165
- providerId;
22166
- connection = null;
22167
- sessionId = null;
22168
- sessionCwd = null;
22169
- currentSystemPrompt = null;
22170
- /** 첫 프롬프트 전송 시 systemPrompt를 텍스트 블록으로 앞에 붙이기 위한 플래그 */
22171
- firstPromptPending = null;
22172
- detector = new CliDetector();
22173
- constructor(providerId) {
22174
- super();
22175
- this.providerId = providerId;
22176
- }
22177
- on(event, listener) {
22178
- return super.on(event, listener);
22179
- }
22180
- once(event, listener) {
22181
- return super.once(event, listener);
22182
- }
22183
- off(event, listener) {
22184
- return super.off(event, listener);
22185
- }
22186
- emitTyped(event, ...args) {
22187
- return super.emit(event, ...args);
22188
- }
22189
- async connect(options) {
22190
- await this.disconnect();
22191
- if (options.cli && options.cli !== this.providerId) {
22192
- throw new Error(`UnifiedOpenCodeAgentClient\uB294 ${this.providerId} CLI\uB9CC \uC9C0\uC6D0\uD569\uB2C8\uB2E4.`);
22193
- }
22194
- const acpMcpServers = this.resolveMcpServers(options.mcpServers);
22195
- const spawnConfig = createSpawnConfig(this.providerId, options);
22196
- const cleanEnv = cleanEnvironment(process.env, options.env);
22197
- cleanEnv.OPENCODE_CONFIG_CONTENT = JSON.stringify({
22198
- agent: {
22199
- explore: { disable: true },
22200
- plan: { disable: true },
22201
- general: { disable: true }
22202
- }
22203
- });
22204
- const connection = new AcpConnection({
22205
- command: spawnConfig.command,
22206
- args: spawnConfig.args,
22207
- cliType: this.providerId,
22208
- cwd: options.cwd,
22209
- env: cleanEnv,
22210
- requestTimeout: options.timeout,
22211
- initTimeout: options.timeout,
22212
- promptIdleTimeout: options.promptIdleTimeout,
22213
- clientInfo: options.clientInfo,
22214
- autoApprove: options.autoApprove,
22215
- fsAccess: options.fsAccess
22216
- });
22217
- this.connection = connection;
22218
- this.setupEventForwarding();
22219
- const recentLogs = [];
22220
- const collectLog = (message) => {
22221
- recentLogs.push(message);
22222
- if (recentLogs.length > 30) {
22223
- recentLogs.shift();
22224
- }
22225
- };
22226
- connection.on("log", collectLog);
22227
- let session;
22228
- try {
22229
- session = await connection.connect(
22230
- options.cwd,
22231
- options.sessionId,
22232
- acpMcpServers,
22233
- void 0
22234
- );
22235
- } catch (error51) {
22236
- const connectionError = this.buildConnectionError(error51, recentLogs);
22237
- await this.cleanupFailedConnection();
22238
- throw connectionError;
22239
- } finally {
22240
- connection.off("log", collectLog);
22241
- }
22242
- return this.finalizeConnect(options, session);
22243
- }
22244
- async disconnect() {
22245
- if (!this.connection) {
22246
- this.clearSessionState();
22247
- return;
22248
- }
22249
- const conn = this.connection;
22250
- await conn.disconnect();
22251
- conn.removeAllListeners();
22252
- this.connection = null;
22253
- this.clearSessionState();
22254
- }
22255
- async endSession() {
22256
- if (!this.connection || !this.sessionId) {
22257
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22258
- }
22259
- await this.connection.endSession(this.sessionId);
22260
- this.sessionId = null;
22261
- }
22262
- getConnectionInfo() {
22263
- return {
22264
- cli: this.connection ? this.providerId : null,
22265
- protocol: this.connection ? "acp" : null,
22266
- sessionId: this.sessionId,
22267
- state: this.connection ? this.connection.connectionState : "disconnected"
22268
- };
22269
- }
22270
- async detectClis() {
22271
- return this.detector.detectAll(true);
22272
- }
22273
- async sendMessage(content) {
22274
- if (!this.connection || !this.sessionId) {
22275
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22276
- }
22277
- const systemPrompt = this.firstPromptPending;
22278
- if (!systemPrompt) {
22279
- return this.connection.sendPrompt(this.sessionId, content);
22280
- }
22281
- const userBlocks = typeof content === "string" ? [{ type: "text", text: content }] : content;
22282
- const response = await this.connection.sendPrompt(this.sessionId, [
22283
- { type: "text", text: systemPrompt },
22284
- ...userBlocks
22285
- ]);
22286
- this.firstPromptPending = null;
22287
- return response;
22288
- }
22289
- async cancelPrompt() {
22290
- if (!this.connection || !this.sessionId) {
22291
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22292
- }
22293
- await this.connection.cancelSession(this.sessionId);
22294
- }
22295
- async setModel(model) {
22296
- if (!this.connection || !this.sessionId) {
22297
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22298
- }
22299
- await this.connection.setModel(this.sessionId, model);
22300
- }
22301
- async setConfigOption(configId, value) {
22302
- if (!this.connection || !this.sessionId) {
22303
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22304
- }
22305
- await this.connection.setConfigOption(this.sessionId, configId, value);
22306
- }
22307
- async setMode(mode) {
22308
- if (!this.connection || !this.sessionId) {
22309
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22310
- }
22311
- await this.connection.setMode(this.sessionId, mode);
22312
- }
22313
- async setYoloMode(enabled) {
22314
- return this.setMode(enabled ? getYoloModeId(this.providerId) : "plan");
22315
- }
22316
- getAvailableModes() {
22317
- return getBackendConfig(this.providerId).modes ?? [];
22318
- }
22319
- getAvailableModels() {
22320
- return getProviderModels(this.providerId);
22321
- }
22322
- getCurrentSystemPrompt() {
22323
- return this.currentSystemPrompt;
22324
- }
22325
- async loadSession(sessionId, mcpServers) {
22326
- if (!this.connection) {
22327
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22328
- }
22329
- await this.connection.loadSession({
22330
- sessionId,
22331
- cwd: this.sessionCwd ?? process.cwd(),
22332
- mcpServers: this.resolveMcpServers(mcpServers)
22333
- });
22334
- this.sessionId = sessionId;
22335
- this.currentSystemPrompt = null;
22336
- this.firstPromptPending = null;
22337
- }
22338
- async resetSession(cwd) {
22339
- if (!this.connection) {
22340
- throw new Error("\uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
22341
- }
22342
- const targetCwd = cwd ?? this.sessionCwd ?? process.cwd();
22343
- await this.disconnect();
22344
- const newClient = new _UnifiedOpenCodeAgentClient(this.providerId);
22345
- const result = await newClient.connect({
22346
- cwd: targetCwd,
22347
- autoApprove: true,
22348
- systemPrompt: this.currentSystemPrompt ?? void 0
22349
- });
22350
- this.connection = newClient.connection;
22351
- this.sessionId = newClient.sessionId;
22352
- this.sessionCwd = newClient.sessionCwd;
22353
- this.currentSystemPrompt = newClient.currentSystemPrompt;
22354
- this.firstPromptPending = newClient.firstPromptPending;
22355
- this.setupEventForwarding();
22356
- newClient.removeAllListeners();
22357
- return {
22358
- cli: this.providerId,
22359
- protocol: "acp",
22360
- session: result.session
22361
- };
22362
- }
22363
- resolveMcpServers(servers) {
22364
- return servers?.length ? mcpServerConfigsToAcp(servers) : [];
22365
- }
22366
- async finalizeConnect(options, session) {
22367
- if (options.yoloMode && session.sessionId) {
22368
- try {
22369
- await this.connection.setMode(session.sessionId, getYoloModeId(this.providerId));
22370
- } catch {
22371
- }
22372
- }
22373
- if (options.model && session.sessionId) {
22374
- try {
22375
- await this.connection.setModel(session.sessionId, options.model);
22376
- } catch {
22377
- }
22378
- }
22379
- this.sessionId = session.sessionId;
22380
- this.sessionCwd = options.cwd;
22381
- this.currentSystemPrompt = options.systemPrompt ?? null;
22382
- this.firstPromptPending = options.sessionId ? null : this.currentSystemPrompt;
22383
- return {
22384
- cli: this.providerId,
22385
- protocol: "acp",
22386
- session
22387
- };
22388
- }
22389
- clearSessionState() {
22390
- this.sessionId = null;
22391
- this.sessionCwd = null;
22392
- this.currentSystemPrompt = null;
22393
- this.firstPromptPending = null;
22394
- }
22395
- setupEventForwarding() {
22396
- if (!this.connection) return;
22397
- this.connection.on("stateChange", (state) => {
22398
- this.emitTyped("stateChange", state);
22399
- });
22400
- this.connection.on("userMessageChunk", (text, sessionId) => {
22401
- this.emitTyped("userMessageChunk", text, sessionId);
22402
- });
22403
- this.connection.on("messageChunk", (text, sessionId) => {
22404
- this.emitTyped("messageChunk", text, sessionId);
22405
- });
22406
- this.connection.on("thoughtChunk", (text, sessionId) => {
22407
- this.emitTyped("thoughtChunk", text, sessionId);
22408
- });
22409
- this.connection.on("toolCall", (title, status, sessionId, data) => {
22410
- this.emitTyped("toolCall", title, status, sessionId, data);
22411
- });
22412
- this.connection.on("toolCallUpdate", (title, status, sessionId, data) => {
22413
- this.emitTyped("toolCallUpdate", title, status, sessionId, data);
22414
- });
22415
- this.connection.on("plan", (plan, sessionId) => {
22416
- this.emitTyped("plan", plan, sessionId);
22417
- });
22418
- this.connection.on("availableCommandsUpdate", (commands, sessionId) => {
22419
- this.emitTyped("availableCommandsUpdate", commands, sessionId);
22420
- });
22421
- this.connection.on("sessionUpdate", (update) => {
22422
- this.emitTyped("sessionUpdate", update);
22423
- });
22424
- this.connection.on("permissionRequest", (params, resolve) => {
22425
- this.emitTyped("permissionRequest", params, resolve);
22426
- });
22427
- this.connection.on("fileRead", (params, resolve) => {
22428
- this.emitTyped("fileRead", params, resolve);
22429
- });
22430
- this.connection.on("fileWrite", (params, resolve) => {
22431
- this.emitTyped("fileWrite", params, resolve);
22432
- });
22433
- this.connection.on("promptComplete", (sessionId) => {
22434
- this.emitTyped("promptComplete", sessionId);
22435
- });
22436
- this.connection.on("error", (err) => {
22437
- this.emitTyped("error", err);
22438
- });
22439
- this.connection.on("exit", (code, signal) => {
22440
- this.emitTyped("exit", code, signal);
22441
- });
22442
- this.connection.on("log", (msg) => {
22443
- this.emitTyped("log", msg);
22444
- });
22445
- this.connection.on("logEntry", (entry) => {
22446
- this.emitTyped("logEntry", entry);
22447
- });
22448
- }
22449
- async cleanupFailedConnection() {
22450
- if (!this.connection) {
22451
- return;
22452
- }
22453
- try {
22454
- await this.connection.disconnect();
22455
- } catch {
22456
- }
22457
- this.connection.removeAllListeners();
22458
- this.connection = null;
22459
- this.clearSessionState();
22460
- }
22461
- buildConnectionError(error51, _recentLogs) {
22462
- if (error51 instanceof Error) {
22463
- return error51;
22464
- }
22465
- if (typeof error51 === "object" && error51 !== null) {
22466
- const obj = error51;
22467
- if (typeof obj.message === "string") {
22468
- const code = typeof obj.code === "number" ? ` (code: ${obj.code})` : "";
22469
- const data = obj.data ? ` \u2014 ${JSON.stringify(obj.data)}` : "";
22470
- return new Error(`${obj.message}${code}${data}`);
22471
- }
22472
- return new Error(JSON.stringify(error51));
22473
- }
22474
- return new Error(String(error51));
22475
- }
22476
- };
22477
22129
 
22478
22130
  // ../../packages/core-unified-agent/src/client/UnifiedAgent.ts
22479
22131
  var UnifiedAgent = {
@@ -22484,8 +22136,6 @@ var UnifiedAgent = {
22484
22136
  return new UnifiedClaudeAgentClient(cli);
22485
22137
  case "codex":
22486
22138
  return new UnifiedCodexAgentClient();
22487
- case "opencode-go":
22488
- return new UnifiedOpenCodeAgentClient("opencode-go");
22489
22139
  case "cursor":
22490
22140
  return new UnifiedCursorAgentClient();
22491
22141
  }
@@ -22500,7 +22150,7 @@ var UnifiedAgent = {
22500
22150
  const preferred = await new CliDetector().getPreferred();
22501
22151
  if (!preferred) {
22502
22152
  throw new Error(
22503
- "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C CLI\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. claude, claude-kimi, codex, opencode-go, cursor \uC911 \uD558\uB098\uB97C \uC124\uCE58\uD574\uC8FC\uC138\uC694."
22153
+ "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C CLI\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. claude, claude-kimi, codex, cursor \uC911 \uD558\uB098\uB97C \uC124\uCE58\uD574\uC8FC\uC138\uC694."
22504
22154
  );
22505
22155
  }
22506
22156
  return this.createClient(preferred.cli);
@@ -16432,23 +16432,6 @@ var models_default = {
16432
16432
  { modelId: "gpt-5.5-fast", name: "GPT-5.5 Fast", providerModelId: "gpt-5.5", serviceTier: "priority", effort: { supported: true, levels: ["low", "medium", "high", "xhigh"], default: "high" } }
16433
16433
  ]
16434
16434
  },
16435
- "opencode-go": {
16436
- name: "OpenCode Go",
16437
- defaultModel: "opencode-go/deepseek-v4-flash",
16438
- models: [
16439
- { modelId: "opencode-go/deepseek-v4-flash", name: "DeepSeek V4 Flash", effort: { supported: false } },
16440
- { modelId: "opencode-go/deepseek-v4-pro", name: "DeepSeek V4 Pro", effort: { supported: false } },
16441
- { modelId: "opencode-go/glm-5.2", name: "GLM-5.2", effort: { supported: false } },
16442
- { modelId: "opencode-go/grok-4.5", name: "Grok 4.5", effort: { supported: false } },
16443
- { modelId: "opencode-go/kimi-k3", name: "Kimi K3", effort: { supported: false } },
16444
- { modelId: "opencode-go/kimi-k2.7-code", name: "Kimi K2.7 Code", effort: { supported: false } },
16445
- { modelId: "opencode-go/mimo-v2.5", name: "MiMo V2.5", effort: { supported: false } },
16446
- { modelId: "opencode-go/mimo-v2.5-pro", name: "MiMo V2.5 Pro", effort: { supported: false } },
16447
- { modelId: "opencode-go/minimax-m3", name: "MiniMax M3", effort: { supported: false } },
16448
- { modelId: "opencode-go/qwen3.7-max", name: "Qwen3.7 Max", effort: { supported: false } },
16449
- { modelId: "opencode-go/qwen3.7-plus", name: "Qwen3.7 Plus", effort: { supported: false } }
16450
- ]
16451
- },
16452
16435
  cursor: {
16453
16436
  name: "Cursor Agent",
16454
16437
  defaultModel: "auto",
@@ -16653,22 +16636,6 @@ var CLI_BACKENDS = {
16653
16636
  usesNpxBridge: false,
16654
16637
  defaultMaxTokens: 1e5
16655
16638
  },
16656
- "opencode-go": {
16657
- id: "opencode-go",
16658
- cliCommand: "opencode",
16659
- protocol: "acp",
16660
- authRequired: false,
16661
- acpArgs: ["acp"],
16662
- modes: [
16663
- { id: "build", label: "Build" },
16664
- { id: "plan", label: "Plan" }
16665
- ],
16666
- supportsSessionClose: true,
16667
- supportsSessionLoad: true,
16668
- requiresModelAtSpawn: true,
16669
- usesNpxBridge: false,
16670
- defaultMaxTokens: 128e3
16671
- },
16672
16639
  cursor: {
16673
16640
  id: "cursor",
16674
16641
  cliCommand: "cursor-agent",