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/cost.js CHANGED
@@ -1,15 +1,19 @@
1
- import { chmodSync, closeSync, fsyncSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
1
+ import { chmodSync, closeSync, fsyncSync, fstatSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { join } from "node:path";
4
4
  import { resolveStateDir } from "./state-dir.js";
5
5
  import { debug, describeError } from "./logger.js";
6
6
  const STATE_DIR = resolveStateDir();
7
7
  const STATE_FILE = join(STATE_DIR, "usage.json");
8
+ const LOCK_FILE = join(STATE_DIR, "usage.lock");
8
9
  const MAX_STATE_BYTES = 1_000_000;
10
+ const MAX_MODEL_LABEL = 256;
11
+ const LOCK_STALE_MS = 120_000;
12
+ const LOCK_ATTEMPTS = 80;
9
13
  const UNSAFE_KEYS = new Set(["__proto__", "prototype", "constructor"]);
10
14
  const RECENT_LIMIT = 50;
11
15
  function emptyState() {
12
- return { totalCostUsd: 0, totalInputTokens: 0, totalOutputTokens: 0, turnCount: 0, byModel: {}, recent: [] };
16
+ return { totalCostUsd: 0, totalInputTokens: 0, totalOutputTokens: 0, turnCount: 0, byModel: Object.create(null), recent: [] };
13
17
  }
14
18
  function load() {
15
19
  try {
@@ -35,6 +39,11 @@ function load() {
35
39
  function finiteNonNegative(value) {
36
40
  return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : 0;
37
41
  }
42
+ function safeModelLabel(value) {
43
+ if (typeof value !== "string" || !value.trim() || UNSAFE_KEYS.has(value))
44
+ return "unknown";
45
+ return value.replace(/[\u0000-\u001f\u007f]/g, " ").slice(0, MAX_MODEL_LABEL);
46
+ }
38
47
  function sanitizeState(value) {
39
48
  if (typeof value !== "object" || value === null || Array.isArray(value))
40
49
  return emptyState();
@@ -51,7 +60,7 @@ function sanitizeState(value) {
51
60
  if (typeof bucket !== "object" || bucket === null || Array.isArray(bucket))
52
61
  continue;
53
62
  const b = bucket;
54
- clean.byModel[model] = {
63
+ clean.byModel[safeModelLabel(model)] = {
55
64
  costUsd: finiteNonNegative(b.costUsd),
56
65
  inputTokens: finiteNonNegative(b.inputTokens),
57
66
  outputTokens: finiteNonNegative(b.outputTokens),
@@ -67,7 +76,7 @@ function sanitizeState(value) {
67
76
  if (typeof e.model !== "string")
68
77
  return [];
69
78
  return [{
70
- model: e.model,
79
+ model: safeModelLabel(e.model),
71
80
  inputTokens: finiteNonNegative(e.inputTokens),
72
81
  outputTokens: finiteNonNegative(e.outputTokens),
73
82
  cacheReadTokens: finiteNonNegative(e.cacheReadTokens),
@@ -85,42 +94,141 @@ let state = null;
85
94
  let writeTimer = null;
86
95
  let dirty = false;
87
96
  let exitHookInstalled = false;
97
+ let pendingEntries = [];
98
+ let resetRequested = false;
88
99
  function current() {
89
100
  state ??= load();
90
101
  return state;
91
102
  }
92
- function writeStateFile() {
93
- let temporary;
94
- let fd;
103
+ function withLedgerLock(fn) {
95
104
  try {
96
105
  mkdirSync(STATE_DIR, { recursive: true, mode: 0o700 });
97
- chmodSync(STATE_DIR, 0o700);
98
- temporary = join(STATE_DIR, `.usage.${process.pid}.${randomUUID()}.tmp`);
99
- fd = openSync(temporary, "wx", 0o600);
100
- writeFileSync(fd, JSON.stringify(current(), null, 2), "utf8");
101
- fsyncSync(fd);
102
- closeSync(fd);
103
- fd = undefined;
104
- renameSync(temporary, STATE_FILE);
105
- temporary = undefined;
106
106
  }
107
- catch (error) {
108
- debug("Cost ledger persist failed:", describeError(error));
107
+ catch {
108
+ return undefined;
109
109
  }
110
- finally {
111
- if (fd !== undefined) {
110
+ try {
111
+ chmodSync(STATE_DIR, 0o700);
112
+ }
113
+ catch { /* best-effort */ }
114
+ let fd;
115
+ let ownerDevice;
116
+ let ownerInode;
117
+ for (let attempt = 0; attempt < LOCK_ATTEMPTS; attempt++) {
118
+ try {
119
+ fd = openSync(LOCK_FILE, "wx", 0o600);
120
+ break;
121
+ }
122
+ catch (error) {
123
+ if (error?.code !== "EEXIST")
124
+ return undefined;
112
125
  try {
113
- closeSync(fd);
126
+ const info = lstatSync(LOCK_FILE);
127
+ if (info.isSymbolicLink())
128
+ return undefined;
129
+ if (Date.now() - info.mtimeMs > LOCK_STALE_MS)
130
+ unlinkSync(LOCK_FILE);
114
131
  }
115
- catch { /* best-effort */ }
116
- }
117
- if (temporary) {
132
+ catch { /* another writer may be replacing the lock */ }
118
133
  try {
119
- unlinkSync(temporary);
134
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 25);
120
135
  }
121
- catch { /* best-effort */ }
136
+ catch { /* best-effort delay */ }
122
137
  }
123
138
  }
139
+ if (fd === undefined)
140
+ return undefined;
141
+ try {
142
+ const owner = fstatSync(fd);
143
+ ownerDevice = owner.dev;
144
+ ownerInode = owner.ino;
145
+ }
146
+ catch {
147
+ try {
148
+ closeSync(fd);
149
+ }
150
+ catch { /* best-effort */ }
151
+ try {
152
+ unlinkSync(LOCK_FILE);
153
+ }
154
+ catch { /* best-effort */ }
155
+ return undefined;
156
+ }
157
+ try {
158
+ return fn();
159
+ }
160
+ finally {
161
+ try {
162
+ closeSync(fd);
163
+ }
164
+ catch { /* best-effort */ }
165
+ try {
166
+ const currentLock = lstatSync(LOCK_FILE);
167
+ if (currentLock.dev === ownerDevice && currentLock.ino === ownerInode)
168
+ unlinkSync(LOCK_FILE);
169
+ }
170
+ catch { /* best-effort */ }
171
+ }
172
+ }
173
+ function applyEntry(target, entry) {
174
+ target.totalCostUsd = safeAdd(target.totalCostUsd, entry.costUsd);
175
+ target.totalInputTokens = safeAdd(target.totalInputTokens, entry.inputTokens);
176
+ target.totalOutputTokens = safeAdd(target.totalOutputTokens, entry.outputTokens);
177
+ target.turnCount = safeAdd(target.turnCount, 1);
178
+ const bucket = Object.hasOwn(target.byModel, entry.model)
179
+ ? target.byModel[entry.model]
180
+ : (target.byModel[entry.model] = { costUsd: 0, inputTokens: 0, outputTokens: 0, turns: 0 });
181
+ bucket.costUsd = safeAdd(bucket.costUsd, entry.costUsd);
182
+ bucket.inputTokens = safeAdd(bucket.inputTokens, entry.inputTokens);
183
+ bucket.outputTokens = safeAdd(bucket.outputTokens, entry.outputTokens);
184
+ bucket.turns = safeAdd(bucket.turns, entry.turns);
185
+ target.recent.push(entry);
186
+ if (target.recent.length > RECENT_LIMIT)
187
+ target.recent.splice(0, target.recent.length - RECENT_LIMIT);
188
+ }
189
+ function writeStateFile() {
190
+ const written = withLedgerLock(() => {
191
+ let temporary;
192
+ let fd;
193
+ try {
194
+ const merged = resetRequested ? emptyState() : load();
195
+ for (const entry of pendingEntries)
196
+ applyEntry(merged, entry);
197
+ mkdirSync(STATE_DIR, { recursive: true, mode: 0o700 });
198
+ chmodSync(STATE_DIR, 0o700);
199
+ temporary = join(STATE_DIR, `.usage.${process.pid}.${randomUUID()}.tmp`);
200
+ fd = openSync(temporary, "wx", 0o600);
201
+ writeFileSync(fd, JSON.stringify(merged, null, 2), "utf8");
202
+ fsyncSync(fd);
203
+ closeSync(fd);
204
+ fd = undefined;
205
+ renameSync(temporary, STATE_FILE);
206
+ temporary = undefined;
207
+ state = merged;
208
+ pendingEntries = [];
209
+ resetRequested = false;
210
+ return true;
211
+ }
212
+ catch (error) {
213
+ debug("Cost ledger persist failed:", describeError(error));
214
+ return false;
215
+ }
216
+ finally {
217
+ if (fd !== undefined) {
218
+ try {
219
+ closeSync(fd);
220
+ }
221
+ catch { /* best-effort */ }
222
+ }
223
+ if (temporary) {
224
+ try {
225
+ unlinkSync(temporary);
226
+ }
227
+ catch { /* best-effort */ }
228
+ }
229
+ }
230
+ });
231
+ return written === true;
124
232
  }
125
233
  /**
126
234
  * The debounced timer is unref'd, so a fast-exiting host process would drop
@@ -133,23 +241,9 @@ function installExitFlush() {
133
241
  process.on("exit", () => {
134
242
  if (!dirty)
135
243
  return;
136
- dirty = false;
137
- try {
138
- mkdirSync(STATE_DIR, { recursive: true, mode: 0o700 });
139
- const temporary = join(STATE_DIR, `.usage.${process.pid}.${randomUUID()}.exit.tmp`);
140
- const fd = openSync(temporary, "wx", 0o600);
141
- try {
142
- writeFileSync(fd, JSON.stringify(current(), null, 2), "utf8");
143
- fsyncSync(fd);
144
- }
145
- finally {
146
- closeSync(fd);
147
- }
148
- renameSync(temporary, STATE_FILE);
149
- }
150
- catch {
151
- /* nothing left to do during exit */
152
- }
244
+ // Reuse the atomic writer so failed exits do not leave an orphaned temp
245
+ // file and a failed write does not falsely clear the dirty flag.
246
+ writeStateFile();
153
247
  });
154
248
  }
155
249
  function persist() {
@@ -161,39 +255,39 @@ function persist() {
161
255
  writeTimer = null;
162
256
  if (!dirty)
163
257
  return;
164
- dirty = false;
165
- writeStateFile();
258
+ if (writeStateFile())
259
+ dirty = false;
166
260
  }, 250);
167
261
  if (typeof writeTimer.unref === "function")
168
262
  writeTimer.unref();
169
263
  }
264
+ export function flushLedgerSync() {
265
+ if (writeTimer) {
266
+ clearTimeout(writeTimer);
267
+ writeTimer = null;
268
+ }
269
+ if (!dirty)
270
+ return;
271
+ if (writeStateFile())
272
+ dirty = false;
273
+ }
170
274
  /** Record a completed turn into the persistent ledger. */
171
275
  export function recordTurn(input) {
172
276
  const s = current();
173
- const model = UNSAFE_KEYS.has(input.model) ? "unknown" : input.model;
277
+ const model = safeModelLabel(input.model);
174
278
  const entry = {
175
279
  model,
176
- inputTokens: finiteNonNegative(input.usage.input_tokens),
177
- outputTokens: finiteNonNegative(input.usage.output_tokens),
178
- cacheReadTokens: finiteNonNegative(input.usage.cache_read_input_tokens),
179
- cacheWriteTokens: finiteNonNegative(input.usage.cache_creation_input_tokens),
280
+ inputTokens: finiteNonNegative(input.usage?.input_tokens),
281
+ outputTokens: finiteNonNegative(input.usage?.output_tokens),
282
+ cacheReadTokens: finiteNonNegative(input.usage?.cache_read_input_tokens),
283
+ cacheWriteTokens: finiteNonNegative(input.usage?.cache_creation_input_tokens),
180
284
  costUsd: finiteNonNegative(input.costUsd),
181
285
  durationMs: finiteNonNegative(input.durationMs),
182
286
  turns: finiteNonNegative(input.turns),
183
287
  at: Date.now(),
184
288
  };
185
- s.totalCostUsd += entry.costUsd;
186
- s.totalInputTokens += entry.inputTokens;
187
- s.totalOutputTokens += entry.outputTokens;
188
- s.turnCount += 1;
189
- const bucket = (s.byModel[model] ??= { costUsd: 0, inputTokens: 0, outputTokens: 0, turns: 0 });
190
- bucket.costUsd += entry.costUsd;
191
- bucket.inputTokens += entry.inputTokens;
192
- bucket.outputTokens += entry.outputTokens;
193
- bucket.turns += entry.turns;
194
- s.recent.push(entry);
195
- if (s.recent.length > RECENT_LIMIT)
196
- s.recent.splice(0, s.recent.length - RECENT_LIMIT);
289
+ applyEntry(s, entry);
290
+ pendingEntries.push(entry);
197
291
  persist();
198
292
  return entry;
199
293
  }
@@ -210,9 +304,15 @@ export function summarize() {
210
304
  }
211
305
  export function resetLedger() {
212
306
  state = emptyState();
307
+ pendingEntries = [];
308
+ resetRequested = true;
213
309
  persist();
214
310
  }
215
311
  export function formatCost(usd) {
216
- return `$${usd.toFixed(4)}`;
312
+ return `$${finiteNonNegative(usd).toFixed(4)}`;
313
+ }
314
+ function safeAdd(left, right) {
315
+ const value = left + right;
316
+ return Number.isFinite(value) ? value : Number.MAX_SAFE_INTEGER;
217
317
  }
218
318
  //# sourceMappingURL=cost.js.map
package/dist/cost.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,eAAe,GAAG,SAAS,CAAC;AAClC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAuBvE,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,SAAS,UAAU;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC/G,CAAC;AAED,SAAS,IAAI;IACX,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;YAC3E,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACzE,OAAO,UAAU,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC;YAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;QACtF,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,EAAE,IAAI,CAAC;QACpD,IAAI,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,yCAAyC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,EAAE,CAAC;IAC7F,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,KAAK,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjE,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3F,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACrC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,SAAS;YACrF,MAAM,CAAC,GAAG,MAAiC,CAAC;YAC5C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;gBACrB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;gBACrC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC7C,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC/C,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;aAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAc,EAAE;YAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACnF,MAAM,CAAC,GAAG,KAAgC,CAAC;YAC3C,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC;oBACN,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;oBAC7C,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC/C,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC;oBACrD,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC;oBACvD,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;oBACrC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC3C,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;oBACjC,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,IAAI,KAAK,GAA0B,IAAI,CAAC;AACxC,IAAI,UAAU,GAAyC,IAAI,CAAC;AAC5D,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,SAAS,OAAO;IACd,KAAK,KAAK,IAAI,EAAE,CAAC;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,SAA6B,CAAC;IAClC,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5B,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC;QACzE,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9D,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,EAAE,GAAG,SAAS,CAAC;QACf,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClC,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,6BAA6B,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,IAAI,iBAAiB;QAAE,OAAO;IAC9B,iBAAiB,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,KAAK,GAAG,KAAK,CAAC;QACd,IAAI,CAAC;YACH,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,WAAW,CAAC,CAAC;YACpF,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC;gBACH,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC9D,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;YACD,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO;IACd,KAAK,GAAG,IAAI,CAAC;IACb,gBAAgB,EAAE,CAAC;IACnB,IAAI,UAAU;QAAE,OAAO;IACvB,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3B,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,KAAK,GAAG,KAAK,CAAC;QACd,cAAc,EAAE,CAAC;IACnB,CAAC,EAAE,GAAG,CAAC,CAAC;IACR,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU;QAAE,UAAU,CAAC,KAAK,EAAE,CAAC;AACjE,CAAC;AAgBD,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACrE,MAAM,KAAK,GAAa;QACtB,KAAK;QACL,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;QACxD,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;QAC1D,eAAe,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC;QACvE,gBAAgB,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC;QAC5E,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;QACzC,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC/C,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC;QACrC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;KACf,CAAC;IAEF,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC;IAChC,CAAC,CAAC,gBAAgB,IAAI,KAAK,CAAC,WAAW,CAAC;IACxC,CAAC,CAAC,iBAAiB,IAAI,KAAK,CAAC,YAAY,CAAC;IAC1C,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;IAEjB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;IAChC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;IACxC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC;IAC1C,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;IAE5B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY;QAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IAEvF,OAAO,EAAE,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAWD,MAAM,UAAU,SAAS;IACvB,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;QACtC,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,KAAK,GAAG,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,mBAAmB,GACnB,2BAA2B,GAC3B,wBAAwB,GACxB,8BAA8B,CAAC;AAEnC;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAExB,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAMvF;AAED,qBAAa,qBAAsB,SAAQ,gBAAgB;gBAC7C,OAAO,SAA4E,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG/H;AAED,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG3D;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG3D;AAED,qBAAa,mBAAoB,SAAQ,gBAAgB;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAIxE;AAED,qBAAa,0BAA2B,SAAQ,gBAAgB;gBAClD,UAAU,EAAE,MAAM;CAG/B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,mBAAmB,GACnB,2BAA2B,GAC3B,wBAAwB,GACxB,8BAA8B,CAAC;AAEnC;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAExB,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAMvF;AAED,qBAAa,qBAAsB,SAAQ,gBAAgB;gBAC7C,OAAO,SAAyF,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG5I;AAED,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG3D;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG3D;AAED,qBAAa,mBAAoB,SAAQ,gBAAgB;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAMxE;AAED,qBAAa,0BAA2B,SAAQ,gBAAgB;gBAClD,UAAU,EAAE,MAAM;CAG/B"}
package/dist/errors.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { redactSensitiveText } from "./logger.js";
1
2
  /**
2
3
  * Base class for all errors raised by the bridge. Carries a stable `code`
3
4
  * so callers and tests can branch on failure mode without parsing messages.
@@ -13,7 +14,7 @@ export class QoderBridgeError extends Error {
13
14
  }
14
15
  }
15
16
  export class QoderCliNotFoundError extends QoderBridgeError {
16
- constructor(message = "qodercli not found. Install Qoder CLI first: https://docs.qoder.com/cli", options) {
17
+ constructor(message = "Qoder CLI runtime not found. Install Qoder CLI or use the bundled Qoder SDK runtime.", options) {
17
18
  super("QODER_CLI_NOT_FOUND", message, options);
18
19
  }
19
20
  }
@@ -30,8 +31,10 @@ export class QoderSessionError extends QoderBridgeError {
30
31
  export class QoderSdkResultError extends QoderBridgeError {
31
32
  subtype;
32
33
  constructor(subtype, detail = "", options) {
33
- super("QODER_SDK_RESULT_ERROR", `Qoder SDK: ${subtype}${detail ? ` | ${detail}` : ""}`, options);
34
- this.subtype = subtype;
34
+ const safeSubtype = redactSensitiveText(String(subtype)).slice(0, 256);
35
+ const safeDetail = redactSensitiveText(String(detail)).slice(0, 4096);
36
+ super("QODER_SDK_RESULT_ERROR", `Qoder SDK: ${safeSubtype}${safeDetail ? ` | ${safeDetail}` : ""}`, options);
37
+ this.subtype = safeSubtype;
35
38
  }
36
39
  }
37
40
  export class UnsupportedCapabilityError extends QoderBridgeError {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAuB;IAEpC,YAAY,IAA0B,EAAE,OAAe,EAAE,OAA6B;QACpF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;IACzD,YAAY,OAAO,GAAG,yEAAyE,EAAE,OAA6B;QAC5H,KAAK,CAAC,qBAAqB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,2BAA2B,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IAC9C,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,MAAM,GAAG,EAAE,EAAE,OAA6B;QACrE,KAAK,CAAC,wBAAwB,EAAE,cAAc,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACjG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IAC9D,YAAY,UAAkB;QAC5B,KAAK,CAAC,8BAA8B,EAAE,mCAAmC,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AASlD;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAuB;IAEpC,YAAY,IAA0B,EAAE,OAAe,EAAE,OAA6B;QACpF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;IACzD,YAAY,OAAO,GAAG,sFAAsF,EAAE,OAA6B;QACzI,KAAK,CAAC,qBAAqB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,2BAA2B,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IAC9C,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,MAAM,GAAG,EAAE,EAAE,OAA6B;QACrE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtE,KAAK,CAAC,wBAAwB,EAAE,cAAc,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7G,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IAC9D,YAAY,UAAkB;QAC5B,KAAK,CAAC,8BAA8B,EAAE,mCAAmC,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Plugin } from "@opencode-ai/plugin";
1
+ import { type Plugin } from "@opencode-ai/plugin";
2
2
  declare const plugin: Plugin;
3
3
  export default plugin;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAkDjE,QAAA,MAAM,MAAM,EAAE,MA6Ib,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,MAAM,EAAQ,MAAM,qBAAqB,CAAC;AA8DjF,QAAA,MAAM,MAAM,EAAE,MA2Ob,CAAC;AAEF,eAAe,MAAM,CAAC"}