opencode-qoder-bridge 0.1.7 → 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 (71) hide show
  1. package/CHANGELOG.md +67 -1
  2. package/README.md +111 -38
  3. package/SECURITY.md +3 -2
  4. package/bin/statusline.mjs +30 -6
  5. package/bin/usage.mjs +7 -6
  6. package/dist/async-utils.d.ts +8 -0
  7. package/dist/async-utils.d.ts.map +1 -0
  8. package/dist/async-utils.js +27 -0
  9. package/dist/async-utils.js.map +1 -0
  10. package/dist/auth.d.ts +4 -2
  11. package/dist/auth.d.ts.map +1 -1
  12. package/dist/auth.js +28 -8
  13. package/dist/auth.js.map +1 -1
  14. package/dist/cost.d.ts +2 -1
  15. package/dist/cost.d.ts.map +1 -1
  16. package/dist/cost.js +163 -63
  17. package/dist/cost.js.map +1 -1
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js +6 -3
  20. package/dist/errors.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +156 -46
  24. package/dist/index.js.map +1 -1
  25. package/dist/language-model.d.ts +22 -0
  26. package/dist/language-model.d.ts.map +1 -1
  27. package/dist/language-model.js +934 -186
  28. package/dist/language-model.js.map +1 -1
  29. package/dist/logger.d.ts +1 -0
  30. package/dist/logger.d.ts.map +1 -1
  31. package/dist/logger.js +35 -5
  32. package/dist/logger.js.map +1 -1
  33. package/dist/mcp-bridge.d.ts.map +1 -1
  34. package/dist/mcp-bridge.js +71 -7
  35. package/dist/mcp-bridge.js.map +1 -1
  36. package/dist/models.d.ts +8 -1
  37. package/dist/models.d.ts.map +1 -1
  38. package/dist/models.js +157 -46
  39. package/dist/models.js.map +1 -1
  40. package/dist/prompt-builder.d.ts.map +1 -1
  41. package/dist/prompt-builder.js +241 -43
  42. package/dist/prompt-builder.js.map +1 -1
  43. package/dist/sdk-auth.d.ts +3 -3
  44. package/dist/sdk-auth.d.ts.map +1 -1
  45. package/dist/sdk-auth.js +13 -9
  46. package/dist/sdk-auth.js.map +1 -1
  47. package/dist/sdk-session.d.ts.map +1 -1
  48. package/dist/sdk-session.js +26 -2
  49. package/dist/sdk-session.js.map +1 -1
  50. package/dist/session-store.d.ts +14 -3
  51. package/dist/session-store.d.ts.map +1 -1
  52. package/dist/session-store.js +451 -46
  53. package/dist/session-store.js.map +1 -1
  54. package/dist/state-dir.d.ts.map +1 -1
  55. package/dist/state-dir.js +2 -1
  56. package/dist/state-dir.js.map +1 -1
  57. package/dist/tool-normalizer.d.ts.map +1 -1
  58. package/dist/tool-normalizer.js +11 -2
  59. package/dist/tool-normalizer.js.map +1 -1
  60. package/dist/tui-register.d.ts.map +1 -1
  61. package/dist/tui-register.js +88 -37
  62. package/dist/tui-register.js.map +1 -1
  63. package/dist/tui.d.ts.map +1 -1
  64. package/dist/tui.js +42 -17
  65. package/dist/tui.js.map +1 -1
  66. package/dist/types.d.ts +14 -4
  67. package/dist/types.d.ts.map +1 -1
  68. package/dist/usage.d.ts.map +1 -1
  69. package/dist/usage.js +55 -30
  70. package/dist/usage.js.map +1 -1
  71. package/package.json +12 -4
package/dist/index.js CHANGED
@@ -1,15 +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
- import { findQoderCLI } from "./auth.js";
3
- import { hasQoderCredential, hasQoderPAT, QODER_PAT_ENV } from "./sdk-auth.js";
4
+ import { hasQoderCredential, QODER_PAT_ENV } from "./sdk-auth.js";
4
5
  import { bridgeMcpServers } from "./mcp-bridge.js";
5
6
  import { getLiveUsage, formatUsageReport } from "./usage.js";
6
7
  import { summarize, formatCost } from "./cost.js";
7
8
  import { ensureTuiRegistered } from "./tui-register.js";
8
- import { deleteQoderSession } from "./session-store.js";
9
+ import { clearAllSessions, deleteQoderSessionForCwd } from "./session-store.js";
9
10
  import { debug, describeError, isDebugEnabled, warn } from "./logger.js";
10
11
  const PROVIDER_URL = new URL("./provider.js", import.meta.url).href;
11
12
  const UNSAFE_KEYS = new Set(["__proto__", "prototype", "constructor"]);
12
- 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
+ }
13
25
  function buildFallbackEntry(m) {
14
26
  return {
15
27
  name: m.name,
@@ -43,6 +55,12 @@ function buildDynamicEntry(m) {
43
55
  };
44
56
  }
45
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();
46
64
  if (input) {
47
65
  if (isDebugEnabled())
48
66
  debug("Plugin initializing");
@@ -59,7 +77,7 @@ const plugin = async (input) => {
59
77
  return {
60
78
  async config(config) {
61
79
  config.provider ??= {};
62
- const existing = (config.provider.qoder ?? {});
80
+ const existing = isRecord(config.provider.qoder) ? config.provider.qoder : {};
63
81
  const builtinModels = {};
64
82
  // Use cached/fallback models immediately. Refresh the catalog in the
65
83
  // background so OpenCode startup never waits on network/auth discovery.
@@ -76,16 +94,27 @@ const plugin = async (input) => {
76
94
  if (!UNSAFE_KEYS.has(m.id) && !builtinModels[m.id])
77
95
  builtinModels[m.id] = buildFallbackEntry(m);
78
96
  }
79
- void fetchDynamicModels(true).catch((error) => {
80
- debug("Background model refresh failed:", describeError(error));
81
- });
82
- 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 };
83
105
  const bridgedMcp = bridgeMcpServers(config.mcp);
84
- 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;
85
113
  configuredSessionKey = typeof mergedOptions.sessionKey === "string" ? mergedOptions.sessionKey : undefined;
114
+ configuredSessionId = typeof mergedOptions.sessionId === "string" ? mergedOptions.sessionId : undefined;
86
115
  if (Object.keys(bridgedMcp).length > 0) {
87
116
  mergedOptions.mcpServers = {
88
- ...(existing.options?.mcpServers ?? {}),
117
+ ...(isRecord(existingOptions.mcpServers) ? existingOptions.mcpServers : {}),
89
118
  ...bridgedMcp,
90
119
  };
91
120
  }
@@ -108,68 +137,149 @@ const plugin = async (input) => {
108
137
  label: `Use ${QODER_PAT_ENV} or run qoder login in your terminal`,
109
138
  prompts: [],
110
139
  async authorize() {
111
- if (!findQoderCLI() && !hasQoderPAT()) {
112
- warn("Authorize failed: qodercli not found on PATH and no", `${QODER_PAT_ENV} is set. Install the CLI (https://docs.qoder.com/cli)`, "or export a personal access token, then retry.");
140
+ if (!hasQoderCredential()) {
141
+ warn("Authorize failed: no usable Qoder credential found.", `Run qoder login or set ${QODER_PAT_ENV}, then retry.`);
113
142
  return { type: "failed" };
114
143
  }
115
- if (hasQoderCredential()) {
116
- return { type: "success", key: "qoder-cli-auth" };
117
- }
118
- warn("Authorize failed: no usable Qoder credential found.");
119
- return { type: "failed" };
144
+ return { type: "success", key: "qoder-cli-auth" };
120
145
  },
121
146
  },
122
147
  ],
123
148
  },
124
149
  tool: {
125
- qoder_usage: {
150
+ qoder_usage: tool({
126
151
  description: "Show Qoder account usage and quota (live), plus accumulated session cost and token totals from the local ledger.",
127
152
  args: {},
128
153
  async execute() {
129
- const lines = [];
130
- const live = await getLiveUsage();
131
- lines.push(live ? formatUsageReport(live) : "Live usage unavailable (not logged in or CLI missing).");
132
- const s = summarize();
133
- lines.push("");
134
- lines.push("Local Cost Ledger");
135
- lines.push(` Total cost: ${formatCost(s.totalCostUsd)}`);
136
- lines.push(` Turns: ${s.turnCount}`);
137
- lines.push(` Tokens: ${s.totalInputTokens} in / ${s.totalOutputTokens} out`);
138
- const models = Object.entries(s.byModel);
139
- if (models.length > 0) {
140
- lines.push(" By model:");
141
- for (const [name, b] of models) {
142
- 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
+ }
143
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)}` };
144
175
  }
145
- return { title: "Qoder Usage", output: lines.join("\n") };
146
176
  },
147
- },
148
- qoder_models: {
177
+ }),
178
+ qoder_models: tool({
149
179
  description: "List known Qoder models, capabilities, limits, and price multipliers.",
150
180
  args: {},
151
181
  async execute() {
152
182
  const models = listModels();
153
183
  const lines = ["Qoder Models"];
154
184
  for (const model of models) {
155
- lines.push(` ${model.id}: ${model.name}`);
185
+ lines.push(` ${safeDisplay(model.id, "unknown", 256)}: ${safeDisplay(model.name, "unknown", 512)}`);
156
186
  lines.push(` context ${model.limit.context}, output ${model.limit.output}, price ${model.multiplier}x`);
157
187
  lines.push(` vision ${model.attachment ? "yes" : "no"}, reasoning ${model.reasoning ? "yes" : "no"}`);
158
188
  }
159
189
  return { title: "Qoder Models", output: lines.join("\n") };
160
190
  },
161
- },
162
- qoder_session_reset: {
163
- 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.",
164
263
  args: {},
165
264
  async execute() {
166
- if (!configuredSessionKey) {
167
- return { title: "Qoder Session", output: "No sessionKey is configured; no persisted session was reset." };
168
- }
169
- await deleteQoderSession(configuredSessionKey);
170
- 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") };
171
281
  },
172
- },
282
+ }),
173
283
  },
174
284
  };
175
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;IA+GzF,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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"}