opencode-supermemory 0.1.3 → 0.1.5
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.
- package/README.md +1 -1
- package/dist/cli.js +86 -13
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +92 -8
- package/dist/services/compaction.d.ts.map +1 -1
- package/dist/services/jsonc.d.ts +6 -0
- package/dist/services/jsonc.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,79 @@ import { mkdirSync, writeFileSync, readFileSync, existsSync } from "node:fs";
|
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
7
|
import * as readline from "node:readline";
|
|
8
|
+
|
|
9
|
+
// src/services/jsonc.ts
|
|
10
|
+
function stripJsoncComments(content) {
|
|
11
|
+
let result = "";
|
|
12
|
+
let i = 0;
|
|
13
|
+
let inString = false;
|
|
14
|
+
let inSingleLineComment = false;
|
|
15
|
+
let inMultiLineComment = false;
|
|
16
|
+
while (i < content.length) {
|
|
17
|
+
const char = content[i];
|
|
18
|
+
const nextChar = content[i + 1];
|
|
19
|
+
if (!inSingleLineComment && !inMultiLineComment) {
|
|
20
|
+
if (char === '"') {
|
|
21
|
+
let backslashCount = 0;
|
|
22
|
+
let j = i - 1;
|
|
23
|
+
while (j >= 0 && content[j] === "\\") {
|
|
24
|
+
backslashCount++;
|
|
25
|
+
j--;
|
|
26
|
+
}
|
|
27
|
+
if (backslashCount % 2 === 0) {
|
|
28
|
+
inString = !inString;
|
|
29
|
+
}
|
|
30
|
+
result += char;
|
|
31
|
+
i++;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (inString) {
|
|
36
|
+
result += char;
|
|
37
|
+
i++;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (!inSingleLineComment && !inMultiLineComment) {
|
|
41
|
+
if (char === "/" && nextChar === "/") {
|
|
42
|
+
inSingleLineComment = true;
|
|
43
|
+
i += 2;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (char === "/" && nextChar === "*") {
|
|
47
|
+
inMultiLineComment = true;
|
|
48
|
+
i += 2;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (inSingleLineComment) {
|
|
53
|
+
if (char === `
|
|
54
|
+
`) {
|
|
55
|
+
inSingleLineComment = false;
|
|
56
|
+
result += char;
|
|
57
|
+
}
|
|
58
|
+
i++;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (inMultiLineComment) {
|
|
62
|
+
if (char === "*" && nextChar === "/") {
|
|
63
|
+
inMultiLineComment = false;
|
|
64
|
+
i += 2;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (char === `
|
|
68
|
+
`) {
|
|
69
|
+
result += char;
|
|
70
|
+
}
|
|
71
|
+
i++;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
result += char;
|
|
75
|
+
i++;
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// src/cli.ts
|
|
8
81
|
var OPENCODE_CONFIG_DIR = join(homedir(), ".config", "opencode");
|
|
9
82
|
var OPENCODE_COMMAND_DIR = join(OPENCODE_CONFIG_DIR, "command");
|
|
10
83
|
var OH_MY_OPENCODE_CONFIG = join(OPENCODE_CONFIG_DIR, "oh-my-opencode.json");
|
|
@@ -192,7 +265,7 @@ function addPluginToConfig(configPath) {
|
|
|
192
265
|
console.log("✓ Plugin already registered in config");
|
|
193
266
|
return true;
|
|
194
267
|
}
|
|
195
|
-
const jsonContent = content
|
|
268
|
+
const jsonContent = stripJsoncComments(content);
|
|
196
269
|
let config;
|
|
197
270
|
try {
|
|
198
271
|
config = JSON.parse(jsonContent);
|
|
@@ -268,7 +341,7 @@ function isAutoCompactAlreadyDisabled() {
|
|
|
268
341
|
const content = readFileSync(OH_MY_OPENCODE_CONFIG, "utf-8");
|
|
269
342
|
const config = JSON.parse(content);
|
|
270
343
|
const disabledHooks = config.disabled_hooks;
|
|
271
|
-
return disabledHooks?.includes("anthropic-
|
|
344
|
+
return disabledHooks?.includes("anthropic-context-window-limit-recovery") ?? false;
|
|
272
345
|
} catch {
|
|
273
346
|
return false;
|
|
274
347
|
}
|
|
@@ -281,12 +354,12 @@ function disableAutoCompactHook() {
|
|
|
281
354
|
config = JSON.parse(content);
|
|
282
355
|
}
|
|
283
356
|
const disabledHooks = config.disabled_hooks || [];
|
|
284
|
-
if (!disabledHooks.includes("anthropic-
|
|
285
|
-
disabledHooks.push("anthropic-
|
|
357
|
+
if (!disabledHooks.includes("anthropic-context-window-limit-recovery")) {
|
|
358
|
+
disabledHooks.push("anthropic-context-window-limit-recovery");
|
|
286
359
|
}
|
|
287
360
|
config.disabled_hooks = disabledHooks;
|
|
288
361
|
writeFileSync(OH_MY_OPENCODE_CONFIG, JSON.stringify(config, null, 2));
|
|
289
|
-
console.log(`✓ Disabled anthropic-
|
|
362
|
+
console.log(`✓ Disabled anthropic-context-window-limit-recovery hook in oh-my-opencode.json`);
|
|
290
363
|
return true;
|
|
291
364
|
} catch (err) {
|
|
292
365
|
console.error("✗ Failed to update oh-my-opencode.json:", err);
|
|
@@ -339,12 +412,12 @@ Step 2: Create /supermemory-init command`);
|
|
|
339
412
|
console.log(`
|
|
340
413
|
Step 3: Configure Oh My OpenCode`);
|
|
341
414
|
console.log("Detected Oh My OpenCode plugin.");
|
|
342
|
-
console.log("Supermemory handles context compaction, so the built-in
|
|
415
|
+
console.log("Supermemory handles context compaction, so the built-in context-window-limit-recovery hook should be disabled.");
|
|
343
416
|
if (isAutoCompactAlreadyDisabled()) {
|
|
344
|
-
console.log("✓ anthropic-
|
|
417
|
+
console.log("✓ anthropic-context-window-limit-recovery hook already disabled");
|
|
345
418
|
} else {
|
|
346
419
|
if (options.tui) {
|
|
347
|
-
const shouldDisable = await confirm(rl, "Disable anthropic-
|
|
420
|
+
const shouldDisable = await confirm(rl, "Disable anthropic-context-window-limit-recovery hook to let Supermemory handle context?");
|
|
348
421
|
if (!shouldDisable) {
|
|
349
422
|
console.log("Skipped.");
|
|
350
423
|
} else {
|
|
@@ -353,7 +426,7 @@ Step 3: Configure Oh My OpenCode`);
|
|
|
353
426
|
} else if (options.disableAutoCompact) {
|
|
354
427
|
disableAutoCompactHook();
|
|
355
428
|
} else {
|
|
356
|
-
console.log("Skipped. Use --disable-
|
|
429
|
+
console.log("Skipped. Use --disable-context-recovery to disable the hook in non-interactive mode.");
|
|
357
430
|
}
|
|
358
431
|
}
|
|
359
432
|
}
|
|
@@ -387,12 +460,12 @@ opencode-supermemory - Persistent memory for OpenCode agents
|
|
|
387
460
|
Commands:
|
|
388
461
|
install Install and configure the plugin
|
|
389
462
|
--no-tui Run in non-interactive mode (for LLM agents)
|
|
390
|
-
--disable-
|
|
463
|
+
--disable-context-recovery Disable Oh My OpenCode's context-window-limit-recovery hook (use with --no-tui)
|
|
391
464
|
|
|
392
465
|
Examples:
|
|
393
466
|
bunx opencode-supermemory@latest install
|
|
394
467
|
bunx opencode-supermemory@latest install --no-tui
|
|
395
|
-
bunx opencode-supermemory@latest install --no-tui --disable-
|
|
468
|
+
bunx opencode-supermemory@latest install --no-tui --disable-context-recovery
|
|
396
469
|
`);
|
|
397
470
|
}
|
|
398
471
|
var args = process.argv.slice(2);
|
|
@@ -402,13 +475,13 @@ if (args.length === 0 || args[0] === "help" || args[0] === "--help" || args[0] =
|
|
|
402
475
|
}
|
|
403
476
|
if (args[0] === "install") {
|
|
404
477
|
const noTui = args.includes("--no-tui");
|
|
405
|
-
const disableAutoCompact = args.includes("--disable-
|
|
478
|
+
const disableAutoCompact = args.includes("--disable-context-recovery");
|
|
406
479
|
install({ tui: !noTui, disableAutoCompact }).then((code) => process.exit(code));
|
|
407
480
|
} else if (args[0] === "setup") {
|
|
408
481
|
console.log(`Note: 'setup' is deprecated. Use 'install' instead.
|
|
409
482
|
`);
|
|
410
483
|
const noTui = args.includes("--no-tui");
|
|
411
|
-
const disableAutoCompact = args.includes("--disable-
|
|
484
|
+
const disableAutoCompact = args.includes("--disable-context-recovery");
|
|
412
485
|
install({ tui: !noTui, disableAutoCompact }).then((code) => process.exit(code));
|
|
413
486
|
} else {
|
|
414
487
|
console.error(`Unknown command: ${args[0]}`);
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAiDA,eAAO,MAAM,mBAAmB,oBAAuD,CAAC;AAExF,eAAO,MAAM,MAAM;;;;;;;;CAQlB,CAAC;AAEF,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
|
package/dist/index.js
CHANGED
|
@@ -13605,6 +13605,79 @@ Supermemory.Connections = Connections;
|
|
|
13605
13605
|
import { existsSync, readFileSync } from "node:fs";
|
|
13606
13606
|
import { join } from "node:path";
|
|
13607
13607
|
import { homedir } from "node:os";
|
|
13608
|
+
|
|
13609
|
+
// src/services/jsonc.ts
|
|
13610
|
+
function stripJsoncComments(content) {
|
|
13611
|
+
let result = "";
|
|
13612
|
+
let i = 0;
|
|
13613
|
+
let inString = false;
|
|
13614
|
+
let inSingleLineComment = false;
|
|
13615
|
+
let inMultiLineComment = false;
|
|
13616
|
+
while (i < content.length) {
|
|
13617
|
+
const char = content[i];
|
|
13618
|
+
const nextChar = content[i + 1];
|
|
13619
|
+
if (!inSingleLineComment && !inMultiLineComment) {
|
|
13620
|
+
if (char === '"') {
|
|
13621
|
+
let backslashCount = 0;
|
|
13622
|
+
let j = i - 1;
|
|
13623
|
+
while (j >= 0 && content[j] === "\\") {
|
|
13624
|
+
backslashCount++;
|
|
13625
|
+
j--;
|
|
13626
|
+
}
|
|
13627
|
+
if (backslashCount % 2 === 0) {
|
|
13628
|
+
inString = !inString;
|
|
13629
|
+
}
|
|
13630
|
+
result += char;
|
|
13631
|
+
i++;
|
|
13632
|
+
continue;
|
|
13633
|
+
}
|
|
13634
|
+
}
|
|
13635
|
+
if (inString) {
|
|
13636
|
+
result += char;
|
|
13637
|
+
i++;
|
|
13638
|
+
continue;
|
|
13639
|
+
}
|
|
13640
|
+
if (!inSingleLineComment && !inMultiLineComment) {
|
|
13641
|
+
if (char === "/" && nextChar === "/") {
|
|
13642
|
+
inSingleLineComment = true;
|
|
13643
|
+
i += 2;
|
|
13644
|
+
continue;
|
|
13645
|
+
}
|
|
13646
|
+
if (char === "/" && nextChar === "*") {
|
|
13647
|
+
inMultiLineComment = true;
|
|
13648
|
+
i += 2;
|
|
13649
|
+
continue;
|
|
13650
|
+
}
|
|
13651
|
+
}
|
|
13652
|
+
if (inSingleLineComment) {
|
|
13653
|
+
if (char === `
|
|
13654
|
+
`) {
|
|
13655
|
+
inSingleLineComment = false;
|
|
13656
|
+
result += char;
|
|
13657
|
+
}
|
|
13658
|
+
i++;
|
|
13659
|
+
continue;
|
|
13660
|
+
}
|
|
13661
|
+
if (inMultiLineComment) {
|
|
13662
|
+
if (char === "*" && nextChar === "/") {
|
|
13663
|
+
inMultiLineComment = false;
|
|
13664
|
+
i += 2;
|
|
13665
|
+
continue;
|
|
13666
|
+
}
|
|
13667
|
+
if (char === `
|
|
13668
|
+
`) {
|
|
13669
|
+
result += char;
|
|
13670
|
+
}
|
|
13671
|
+
i++;
|
|
13672
|
+
continue;
|
|
13673
|
+
}
|
|
13674
|
+
result += char;
|
|
13675
|
+
i++;
|
|
13676
|
+
}
|
|
13677
|
+
return result;
|
|
13678
|
+
}
|
|
13679
|
+
|
|
13680
|
+
// src/config.ts
|
|
13608
13681
|
var CONFIG_DIR = join(homedir(), ".config", "opencode");
|
|
13609
13682
|
var CONFIG_FILES = [
|
|
13610
13683
|
join(CONFIG_DIR, "supermemory.jsonc"),
|
|
@@ -13624,7 +13697,7 @@ function loadConfig() {
|
|
|
13624
13697
|
if (existsSync(path2)) {
|
|
13625
13698
|
try {
|
|
13626
13699
|
const content = readFileSync(path2, "utf-8");
|
|
13627
|
-
const json2 = content
|
|
13700
|
+
const json2 = stripJsoncComments(content);
|
|
13628
13701
|
return JSON.parse(json2);
|
|
13629
13702
|
} catch {}
|
|
13630
13703
|
}
|
|
@@ -14063,7 +14136,7 @@ function createCompactionHook(ctx, tags, options) {
|
|
|
14063
14136
|
const projectMemories = await fetchProjectMemoriesForCompaction();
|
|
14064
14137
|
const prompt = createCompactionPrompt(projectMemories);
|
|
14065
14138
|
const success2 = injectHookMessage(summarizeCtx.sessionID, prompt, {
|
|
14066
|
-
agent:
|
|
14139
|
+
agent: summarizeCtx.agent,
|
|
14067
14140
|
model: { providerID: summarizeCtx.providerID, modelID: summarizeCtx.modelID },
|
|
14068
14141
|
path: { cwd: summarizeCtx.directory }
|
|
14069
14142
|
});
|
|
@@ -14102,8 +14175,18 @@ ${summaryContent}`, tags.project, { type: "conversation" });
|
|
|
14102
14175
|
const tokens = lastAssistant.tokens;
|
|
14103
14176
|
if (!tokens)
|
|
14104
14177
|
return;
|
|
14105
|
-
|
|
14106
|
-
|
|
14178
|
+
let modelID = lastAssistant.modelID ?? "";
|
|
14179
|
+
let providerID = lastAssistant.providerID ?? "";
|
|
14180
|
+
let agent;
|
|
14181
|
+
const messageDir = getMessageDir(sessionID);
|
|
14182
|
+
const storedMessage = messageDir ? findNearestMessageWithFields(messageDir) : null;
|
|
14183
|
+
if (!providerID || !modelID) {
|
|
14184
|
+
if (storedMessage?.model?.providerID)
|
|
14185
|
+
providerID = storedMessage.model.providerID;
|
|
14186
|
+
if (storedMessage?.model?.modelID)
|
|
14187
|
+
modelID = storedMessage.model.modelID;
|
|
14188
|
+
}
|
|
14189
|
+
agent = storedMessage?.agent;
|
|
14107
14190
|
if (!isSupportedModel(modelID)) {
|
|
14108
14191
|
log("[compaction] skipping unsupported model", { modelID });
|
|
14109
14192
|
return;
|
|
@@ -14144,7 +14227,8 @@ ${summaryContent}`, tags.project, { type: "conversation" });
|
|
|
14144
14227
|
providerID,
|
|
14145
14228
|
modelID,
|
|
14146
14229
|
usageRatio,
|
|
14147
|
-
directory: ctx.directory
|
|
14230
|
+
directory: ctx.directory,
|
|
14231
|
+
agent
|
|
14148
14232
|
});
|
|
14149
14233
|
state.summarizedSessions.add(sessionID);
|
|
14150
14234
|
await ctx.client.session.summarize({
|
|
@@ -14163,12 +14247,12 @@ ${summaryContent}`, tags.project, { type: "conversation" });
|
|
|
14163
14247
|
state.compactionInProgress.delete(sessionID);
|
|
14164
14248
|
setTimeout(async () => {
|
|
14165
14249
|
try {
|
|
14166
|
-
const
|
|
14167
|
-
const
|
|
14250
|
+
const messageDir2 = getMessageDir(sessionID);
|
|
14251
|
+
const storedMessage2 = messageDir2 ? findNearestMessageWithFields(messageDir2) : null;
|
|
14168
14252
|
await ctx.client.session.promptAsync({
|
|
14169
14253
|
path: { id: sessionID },
|
|
14170
14254
|
body: {
|
|
14171
|
-
agent:
|
|
14255
|
+
agent: storedMessage2?.agent,
|
|
14172
14256
|
parts: [{ type: "text", text: "Continue" }]
|
|
14173
14257
|
},
|
|
14174
14258
|
query: { directory: ctx.directory }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/services/compaction.ts"],"names":[],"mappings":"AAsBA,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/services/compaction.ts"],"names":[],"mappings":"AAsBA,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgBD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC7E;AAuLD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,SAAS,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,EAAE,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,IAAI,EAAE;oBAAE,UAAU,EAAE,MAAM,CAAC;oBAAC,OAAO,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,KAAK,EAAE;oBAAE,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/I,QAAQ,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,EAAE,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,KAAK,EAAE;oBAAE,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE,KAAK,CAAC;oBAAE,IAAI,EAAE,WAAW,CAAA;iBAAE,CAAC,CAAA;aAAE,CAAC,CAAC;YAC/H,WAAW,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,EAAE,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,IAAI,EAAE;oBAAE,KAAK,CAAC,EAAE,MAAM,CAAC;oBAAC,KAAK,EAAE,KAAK,CAAC;wBAAE,IAAI,EAAE,MAAM,CAAC;wBAAC,IAAI,EAAE,MAAM,CAAA;qBAAE,CAAC,CAAA;iBAAE,CAAC;gBAAC,KAAK,EAAE;oBAAE,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3K,CAAC;QACF,GAAG,EAAE;YACH,SAAS,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAC;oBAAC,OAAO,EAAE,MAAM,CAAC;oBAAC,OAAO,EAAE,MAAM,CAAC;oBAAC,QAAQ,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC1H,CAAC;KACH,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,CAAC,EAAE,iBAAiB;qBAqOF;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE;EAgE3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../../src/services/jsonc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8E1D"}
|