opencode-qoder-bridge 0.1.8 → 0.1.9

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 (70) hide show
  1. package/CHANGELOG.md +57 -1
  2. package/README.md +110 -37
  3. package/bin/statusline.mjs +30 -6
  4. package/bin/usage.mjs +6 -5
  5. package/dist/async-utils.d.ts +8 -0
  6. package/dist/async-utils.d.ts.map +1 -0
  7. package/dist/async-utils.js +27 -0
  8. package/dist/async-utils.js.map +1 -0
  9. package/dist/auth.d.ts +2 -1
  10. package/dist/auth.d.ts.map +1 -1
  11. package/dist/auth.js +26 -7
  12. package/dist/auth.js.map +1 -1
  13. package/dist/cost.d.ts +2 -1
  14. package/dist/cost.d.ts.map +1 -1
  15. package/dist/cost.js +163 -63
  16. package/dist/cost.js.map +1 -1
  17. package/dist/errors.d.ts.map +1 -1
  18. package/dist/errors.js +5 -2
  19. package/dist/errors.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +152 -37
  23. package/dist/index.js.map +1 -1
  24. package/dist/language-model.d.ts +22 -0
  25. package/dist/language-model.d.ts.map +1 -1
  26. package/dist/language-model.js +931 -183
  27. package/dist/language-model.js.map +1 -1
  28. package/dist/logger.d.ts +1 -0
  29. package/dist/logger.d.ts.map +1 -1
  30. package/dist/logger.js +35 -5
  31. package/dist/logger.js.map +1 -1
  32. package/dist/mcp-bridge.d.ts.map +1 -1
  33. package/dist/mcp-bridge.js +71 -7
  34. package/dist/mcp-bridge.js.map +1 -1
  35. package/dist/models.d.ts +8 -1
  36. package/dist/models.d.ts.map +1 -1
  37. package/dist/models.js +155 -44
  38. package/dist/models.js.map +1 -1
  39. package/dist/prompt-builder.d.ts.map +1 -1
  40. package/dist/prompt-builder.js +241 -43
  41. package/dist/prompt-builder.js.map +1 -1
  42. package/dist/sdk-auth.d.ts +3 -3
  43. package/dist/sdk-auth.d.ts.map +1 -1
  44. package/dist/sdk-auth.js +13 -9
  45. package/dist/sdk-auth.js.map +1 -1
  46. package/dist/sdk-session.d.ts.map +1 -1
  47. package/dist/sdk-session.js +26 -2
  48. package/dist/sdk-session.js.map +1 -1
  49. package/dist/session-store.d.ts +14 -3
  50. package/dist/session-store.d.ts.map +1 -1
  51. package/dist/session-store.js +451 -46
  52. package/dist/session-store.js.map +1 -1
  53. package/dist/state-dir.d.ts.map +1 -1
  54. package/dist/state-dir.js +2 -1
  55. package/dist/state-dir.js.map +1 -1
  56. package/dist/tool-normalizer.d.ts.map +1 -1
  57. package/dist/tool-normalizer.js +11 -2
  58. package/dist/tool-normalizer.js.map +1 -1
  59. package/dist/tui-register.d.ts.map +1 -1
  60. package/dist/tui-register.js +88 -37
  61. package/dist/tui-register.js.map +1 -1
  62. package/dist/tui.d.ts.map +1 -1
  63. package/dist/tui.js +42 -17
  64. package/dist/tui.js.map +1 -1
  65. package/dist/types.d.ts +14 -4
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/usage.d.ts.map +1 -1
  68. package/dist/usage.js +54 -29
  69. package/dist/usage.js.map +1 -1
  70. package/package.json +12 -4
package/dist/index.js CHANGED
@@ -1,14 +1,27 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { listSessions } from "@qoder-ai/qoder-agent-sdk";
1
3
  import { FALLBACK_MODELS, fetchDynamicModels, getCachedDynamicModels, listModels } from "./models.js";
2
4
  import { hasQoderCredential, QODER_PAT_ENV } from "./sdk-auth.js";
3
5
  import { bridgeMcpServers } from "./mcp-bridge.js";
4
6
  import { getLiveUsage, formatUsageReport } from "./usage.js";
5
7
  import { summarize, formatCost } from "./cost.js";
6
8
  import { ensureTuiRegistered } from "./tui-register.js";
7
- import { deleteQoderSession } from "./session-store.js";
9
+ import { clearAllSessions, deleteQoderSessionForCwd } from "./session-store.js";
8
10
  import { debug, describeError, isDebugEnabled, warn } from "./logger.js";
9
11
  const PROVIDER_URL = new URL("./provider.js", import.meta.url).href;
10
12
  const UNSAFE_KEYS = new Set(["__proto__", "prototype", "constructor"]);
11
- let configuredSessionKey;
13
+ const MODEL_REFRESH_INTERVAL_MS = 60_000;
14
+ const CONTROL_CHARS = /[\u0000-\u001f\u007f-\u009f]/g;
15
+ let lastModelRefreshAt = 0;
16
+ function isRecord(value) {
17
+ return typeof value === "object" && value !== null && !Array.isArray(value);
18
+ }
19
+ function safeDisplay(value, fallback, maxLength = 512) {
20
+ if (typeof value !== "string" || !value)
21
+ return fallback;
22
+ const clean = value.replace(CONTROL_CHARS, " ").slice(0, maxLength);
23
+ return clean || fallback;
24
+ }
12
25
  function buildFallbackEntry(m) {
13
26
  return {
14
27
  name: m.name,
@@ -42,6 +55,12 @@ function buildDynamicEntry(m) {
42
55
  };
43
56
  }
44
57
  const plugin = async (input) => {
58
+ const workspaceCwd = input && typeof input.directory === "string" && input.directory.trim()
59
+ ? input.directory
60
+ : undefined;
61
+ let configuredSessionKey;
62
+ let configuredSessionId;
63
+ let configuredCwd = workspaceCwd ?? process.cwd();
45
64
  if (input) {
46
65
  if (isDebugEnabled())
47
66
  debug("Plugin initializing");
@@ -58,7 +77,7 @@ const plugin = async (input) => {
58
77
  return {
59
78
  async config(config) {
60
79
  config.provider ??= {};
61
- const existing = (config.provider.qoder ?? {});
80
+ const existing = isRecord(config.provider.qoder) ? config.provider.qoder : {};
62
81
  const builtinModels = {};
63
82
  // Use cached/fallback models immediately. Refresh the catalog in the
64
83
  // background so OpenCode startup never waits on network/auth discovery.
@@ -75,16 +94,27 @@ const plugin = async (input) => {
75
94
  if (!UNSAFE_KEYS.has(m.id) && !builtinModels[m.id])
76
95
  builtinModels[m.id] = buildFallbackEntry(m);
77
96
  }
78
- void fetchDynamicModels(true).catch((error) => {
79
- debug("Background model refresh failed:", describeError(error));
80
- });
81
- const mergedModels = { ...builtinModels, ...(existing.models ?? {}) };
97
+ if (Date.now() - lastModelRefreshAt >= MODEL_REFRESH_INTERVAL_MS) {
98
+ lastModelRefreshAt = Date.now();
99
+ void fetchDynamicModels(true).catch((error) => {
100
+ debug("Background model refresh failed:", describeError(error));
101
+ });
102
+ }
103
+ const existingModels = isRecord(existing.models) ? existing.models : {};
104
+ const mergedModels = { ...builtinModels, ...existingModels };
82
105
  const bridgedMcp = bridgeMcpServers(config.mcp);
83
- const mergedOptions = { ...(existing.options ?? {}) };
106
+ const existingOptions = isRecord(existing.options) ? existing.options : {};
107
+ const mergedOptions = { ...existingOptions };
108
+ if (workspaceCwd && (typeof mergedOptions.cwd !== "string" || !mergedOptions.cwd.trim())) {
109
+ mergedOptions.cwd = workspaceCwd;
110
+ }
111
+ if (typeof mergedOptions.cwd === "string" && mergedOptions.cwd.trim())
112
+ configuredCwd = mergedOptions.cwd;
84
113
  configuredSessionKey = typeof mergedOptions.sessionKey === "string" ? mergedOptions.sessionKey : undefined;
114
+ configuredSessionId = typeof mergedOptions.sessionId === "string" ? mergedOptions.sessionId : undefined;
85
115
  if (Object.keys(bridgedMcp).length > 0) {
86
116
  mergedOptions.mcpServers = {
87
- ...(existing.options?.mcpServers ?? {}),
117
+ ...(isRecord(existingOptions.mcpServers) ? existingOptions.mcpServers : {}),
88
118
  ...bridgedMcp,
89
119
  };
90
120
  }
@@ -117,54 +147,139 @@ const plugin = async (input) => {
117
147
  ],
118
148
  },
119
149
  tool: {
120
- qoder_usage: {
150
+ qoder_usage: tool({
121
151
  description: "Show Qoder account usage and quota (live), plus accumulated session cost and token totals from the local ledger.",
122
152
  args: {},
123
153
  async execute() {
124
- const lines = [];
125
- const live = await getLiveUsage();
126
- lines.push(live ? formatUsageReport(live) : "Live usage unavailable (not logged in or Qoder runtime unavailable).");
127
- const s = summarize();
128
- lines.push("");
129
- lines.push("Local Cost Ledger");
130
- lines.push(` Total cost: ${formatCost(s.totalCostUsd)}`);
131
- lines.push(` Turns: ${s.turnCount}`);
132
- lines.push(` Tokens: ${s.totalInputTokens} in / ${s.totalOutputTokens} out`);
133
- const models = Object.entries(s.byModel);
134
- if (models.length > 0) {
135
- lines.push(" By model:");
136
- for (const [name, b] of models) {
137
- lines.push(` ${name}: ${formatCost(b.costUsd)} (${b.turns} turns)`);
154
+ try {
155
+ const lines = [];
156
+ const live = await getLiveUsage();
157
+ lines.push(live ? formatUsageReport(live) : "Live usage unavailable (not logged in or Qoder runtime unavailable).");
158
+ const s = summarize();
159
+ lines.push("");
160
+ lines.push("Local Cost Ledger");
161
+ lines.push(` Total cost: ${formatCost(s.totalCostUsd)}`);
162
+ lines.push(` Turns: ${s.turnCount}`);
163
+ lines.push(` Tokens: ${s.totalInputTokens} in / ${s.totalOutputTokens} out`);
164
+ const models = Object.entries(s.byModel);
165
+ if (models.length > 0) {
166
+ lines.push(" By model:");
167
+ for (const [name, b] of models) {
168
+ lines.push(` ${name}: ${formatCost(b.costUsd)} (${b.turns} turns)`);
169
+ }
138
170
  }
171
+ return { title: "Qoder Usage", output: lines.join("\n") };
172
+ }
173
+ catch (error) {
174
+ return { title: "Qoder Usage", output: `Failed to load usage: ${describeError(error)}` };
139
175
  }
140
- return { title: "Qoder Usage", output: lines.join("\n") };
141
176
  },
142
- },
143
- qoder_models: {
177
+ }),
178
+ qoder_models: tool({
144
179
  description: "List known Qoder models, capabilities, limits, and price multipliers.",
145
180
  args: {},
146
181
  async execute() {
147
182
  const models = listModels();
148
183
  const lines = ["Qoder Models"];
149
184
  for (const model of models) {
150
- lines.push(` ${model.id}: ${model.name}`);
185
+ lines.push(` ${safeDisplay(model.id, "unknown", 256)}: ${safeDisplay(model.name, "unknown", 512)}`);
151
186
  lines.push(` context ${model.limit.context}, output ${model.limit.output}, price ${model.multiplier}x`);
152
187
  lines.push(` vision ${model.attachment ? "yes" : "no"}, reasoning ${model.reasoning ? "yes" : "no"}`);
153
188
  }
154
189
  return { title: "Qoder Models", output: lines.join("\n") };
155
190
  },
156
- },
157
- qoder_session_reset: {
158
- description: "Forget the persisted Qoder session mapping for the configured session key.",
191
+ }),
192
+ qoder_session_reset: tool({
193
+ description: "Forget the persisted Qoder session mapping for a key, or use 'all' to reset all sessions.",
194
+ args: {
195
+ key: tool.schema.string().optional().describe("Session key to reset, or 'all' to clear all persisted sessions (defaults to configured sessionKey)."),
196
+ },
197
+ async execute(args) {
198
+ try {
199
+ const requested = typeof args.key === "string" ? args.key.trim() : "";
200
+ const target = requested || configuredSessionKey;
201
+ if (!target) {
202
+ return {
203
+ title: "Qoder Session",
204
+ output: "No session key specified and none configured. Provide a key or use 'all' to reset all sessions.",
205
+ };
206
+ }
207
+ if (target.toLowerCase() === "all") {
208
+ await clearAllSessions();
209
+ return { title: "Qoder Session", output: "Reset all persisted Qoder sessions." };
210
+ }
211
+ await deleteQoderSessionForCwd(target, configuredCwd, configuredSessionId || target);
212
+ return { title: "Qoder Session", output: `Reset persisted Qoder session: ${safeDisplay(target, "unknown", 512)}` };
213
+ }
214
+ catch (error) {
215
+ return { title: "Qoder Session", output: `Failed to reset session: ${describeError(error)}` };
216
+ }
217
+ },
218
+ }),
219
+ qoder_sessions: tool({
220
+ description: "List recent Qoder sessions with metadata (session ID, title, branch, last modified).",
221
+ args: {
222
+ dir: tool.schema.string().optional().describe("Working directory / project path to filter sessions (optional)."),
223
+ limit: tool.schema.number().optional().describe("Maximum number of sessions to return (optional, default: 10)."),
224
+ },
225
+ async execute(args) {
226
+ try {
227
+ const limit = typeof args.limit === "number" && args.limit > 0 ? args.limit : 10;
228
+ const dir = typeof args.dir === "string" && args.dir.trim() ? args.dir.trim() : undefined;
229
+ const sessionsResult = await listSessions({ limit: Math.max(1, Math.min(100, Math.floor(limit))), ...(dir ? { dir } : {}) });
230
+ const sessions = Array.isArray(sessionsResult) ? sessionsResult : [];
231
+ if (!sessions || sessions.length === 0) {
232
+ return { title: "Qoder Sessions", output: "No recent Qoder sessions found." };
233
+ }
234
+ const lines = ["Recent Qoder Sessions"];
235
+ for (const s of sessions) {
236
+ const item = isRecord(s) ? s : {};
237
+ const sessionId = safeDisplay(item.sessionId, "unknown", 256);
238
+ const title = typeof item.customTitle === "string" && item.customTitle
239
+ ? safeDisplay(item.customTitle, sessionId, 512)
240
+ : typeof item.summary === "string" && item.summary
241
+ ? safeDisplay(item.summary, sessionId, 512)
242
+ : sessionId;
243
+ const lastModified = item.lastModified;
244
+ const dateValue = typeof lastModified === "string" || typeof lastModified === "number"
245
+ ? new Date(lastModified)
246
+ : null;
247
+ const date = dateValue && !Number.isNaN(dateValue.getTime()) ? dateValue.toLocaleString() : "unknown";
248
+ const branch = safeDisplay(item.gitBranch, "n/a", 256);
249
+ const cwd = safeDisplay(item.cwd, "n/a", 1024);
250
+ lines.push(`• [${sessionId.slice(0, 8)}] ${title}`);
251
+ lines.push(` Updated: ${date} | Branch: ${branch} | Path: ${cwd}`);
252
+ }
253
+ return { title: "Qoder Sessions", output: lines.join("\n") };
254
+ }
255
+ catch (error) {
256
+ debug("listSessions failed:", describeError(error));
257
+ return { title: "Qoder Sessions", output: `Failed to list sessions: ${describeError(error)}` };
258
+ }
259
+ },
260
+ }),
261
+ qoder_plan_mode: tool({
262
+ description: "Explain Qoder Plan Mode status and configuration in OpenCode.",
159
263
  args: {},
160
264
  async execute() {
161
- if (!configuredSessionKey) {
162
- return { title: "Qoder Session", output: "No sessionKey is configured; no persisted session was reset." };
163
- }
164
- await deleteQoderSession(configuredSessionKey);
165
- return { title: "Qoder Session", output: `Reset persisted Qoder session: ${configuredSessionKey}` };
265
+ const lines = [
266
+ "Qoder Plan Mode",
267
+ "Plan Mode instructs Qoder to analyze and plan changes without modifying files or running tool actions.",
268
+ "",
269
+ "Configuration in ~/.config/opencode/opencode.json:",
270
+ " \"provider\": {",
271
+ " \"qoder\": {",
272
+ " \"options\": {",
273
+ " \"planMode\": true",
274
+ " }",
275
+ " }",
276
+ " }",
277
+ "",
278
+ "Plan Mode operates independently from tool permissions, preserving your underlying permission mode.",
279
+ ];
280
+ return { title: "Qoder Plan Mode", output: lines.join("\n") };
166
281
  },
167
- },
282
+ }),
168
283
  },
169
284
  };
170
285
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  import type { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamPart, LanguageModelV3StreamResult } from "@ai-sdk/provider";
2
+ import type { SDKArtifactInfo, SDKPlanModeSnapshot } from "@qoder-ai/qoder-agent-sdk";
2
3
  import type { QoderBridgeOptions } from "./types.js";
3
4
  type StreamController = ReadableStreamDefaultController<LanguageModelV3StreamPart>;
5
+ type OpenBlock = {
6
+ kind: "reasoning" | "text";
7
+ index: number;
8
+ } | {
9
+ kind: "tool";
10
+ index: number;
11
+ id: string;
12
+ providerExecuted: boolean;
13
+ };
4
14
  interface StreamState {
5
15
  controller: StreamController;
6
16
  contextWindow: number;
@@ -12,7 +22,9 @@ interface StreamState {
12
22
  name: string;
13
23
  input: string;
14
24
  providerExecuted: boolean;
25
+ hasInput: boolean;
15
26
  }>;
27
+ openBlocks: OpenBlock[];
16
28
  sawStreamText: boolean;
17
29
  sawStreamTool: boolean;
18
30
  sawStreamReasoning: boolean;
@@ -23,7 +35,17 @@ interface StreamState {
23
35
  }>;
24
36
  lastStopReason: string | null;
25
37
  blockCounter: number;
38
+ outputChars: number;
26
39
  finished: boolean;
40
+ resultReceived: boolean;
41
+ seenToolCallIds?: Set<string>;
42
+ seenMessageIds?: Set<string>;
43
+ failed?: boolean;
44
+ authExpired?: boolean;
45
+ invalidSession?: boolean;
46
+ artifacts: SDKArtifactInfo[];
47
+ planMode?: SDKPlanModeSnapshot;
48
+ skillEvolution?: Record<string, unknown>;
27
49
  }
28
50
  export declare function isProviderExecutedTool(name: string, functionToolNames: ReadonlySet<string>): boolean;
29
51
  export declare class QoderLanguageModel implements LanguageModelV3 {
@@ -1 +1 @@
1
- {"version":3,"file":"language-model.d.ts","sourceRoot":"","sources":["../src/language-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAG1B,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAE5B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMrD,KAAK,gBAAgB,GAAG,+BAA+B,CAAC,yBAAyB,CAAC,CAAC;AAyCnF,UAAU,WAAW;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChG,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAEpG;AAED,qBAAa,kBAAmB,YAAW,eAAe;IACxD,QAAQ,CAAC,oBAAoB,EAAG,IAAI,CAAU;IAC9C,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAEtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,OAAO,EAAE,MAAM,EAAE,aAAa,GAAE,kBAAuB;IAK7D,UAAU,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IA6CvF,QAAQ,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAiHzF,OAAO,CAAC,iBAAiB;CAuC1B;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CASrF"}
1
+ {"version":3,"file":"language-model.d.ts","sourceRoot":"","sources":["../src/language-model.ts"],"names":[],"mappings":"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"}