c64bridge 0.9.2 → 0.9.3
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/AGENTS.md +5 -0
- package/README.md +81 -13
- package/data/basic/rom-routines.md +269 -0
- package/data/context/bootstrap.md +1 -1
- package/data/io/cia-spec.md +2 -2
- package/data/{memory/kernal-memory-map.md → kernal/rom-routines.md} +3 -2
- package/data/memory/low-memory-map.md +1 -0
- package/data/memory/memory-map.md +13 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/c64Client.js +0 -7
- package/dist/config.js +22 -0
- package/dist/mcp-server.js +17 -5
- package/dist/rag/knowledgeIndex.js +54 -9
- package/dist/rag/resourceUris.js +2 -0
- package/doc/developer.md +3 -2
- package/mcp/resources.json +60 -7
- package/mcp/server.json +1 -1
- package/mcp.json +8 -4
- package/package.json +11 -7
- package/scripts/update-readme.ts +1 -0
- package/server.json +3 -3
package/dist/c64Client.js
CHANGED
|
@@ -59,7 +59,6 @@ export class C64Client {
|
|
|
59
59
|
}).then((sel) => sel.facade);
|
|
60
60
|
this.allFacades.set("c64u", this.facadePromise);
|
|
61
61
|
this.initPromise = Promise.resolve();
|
|
62
|
-
void this.primeGreetingDd00Cache(["c64u"]);
|
|
63
62
|
return;
|
|
64
63
|
}
|
|
65
64
|
const allFacadesPromise = createAllFacades(undefined, {
|
|
@@ -76,12 +75,6 @@ export class C64Client {
|
|
|
76
75
|
this.allFacades.set(secondaryType, Promise.resolve(secondary));
|
|
77
76
|
}
|
|
78
77
|
});
|
|
79
|
-
void this.initPromise.then(async () => {
|
|
80
|
-
if (this.allFacades.has("vice")) {
|
|
81
|
-
await this.prewarmBackends(["vice"]);
|
|
82
|
-
}
|
|
83
|
-
void this.primeGreetingDd00Cache();
|
|
84
|
-
}).catch(() => { });
|
|
85
78
|
}
|
|
86
79
|
async requireViceBackend() {
|
|
87
80
|
const facade = await this.facadePromise;
|
package/dist/config.js
CHANGED
|
@@ -7,6 +7,7 @@ const DEFAULT_CONFIG = {
|
|
|
7
7
|
c64_host: DEFAULT_HOST,
|
|
8
8
|
baseUrl: buildBaseUrl(DEFAULT_HOST, DEFAULT_PORT),
|
|
9
9
|
c64_port: DEFAULT_PORT,
|
|
10
|
+
vicePrewarm: false,
|
|
10
11
|
};
|
|
11
12
|
let cachedConfig = null;
|
|
12
13
|
export function loadConfig() {
|
|
@@ -35,6 +36,7 @@ export function loadConfig() {
|
|
|
35
36
|
rawConfig ?? (rawConfig = {});
|
|
36
37
|
// New schema: prefer c64u.{host,port,baseUrl}; keep legacy fields as fallback
|
|
37
38
|
const c64u = rawConfig?.c64u;
|
|
39
|
+
const vice = rawConfig?.vice;
|
|
38
40
|
const parsedC64uHost = parseEndpoint(configuredString(c64u?.host));
|
|
39
41
|
const parsedC64uHostname = parseEndpoint(configuredString(c64u?.hostname));
|
|
40
42
|
const parsedLegacyHost = parseEndpoint(configuredString(rawConfig?.c64_host));
|
|
@@ -73,6 +75,7 @@ export function loadConfig() {
|
|
|
73
75
|
baseUrl,
|
|
74
76
|
c64_port: port,
|
|
75
77
|
networkPassword: firstDefined(configuredString(process.env.C64U_PASSWORD), configuredString(c64u?.networkPassword), configuredString(rawConfig?.networkPassword)),
|
|
78
|
+
vicePrewarm: firstDefined(configuredBoolean(process.env.VICE_PREWARM), configuredBoolean(vice?.prewarm), configuredBoolean(rawConfig?.vicePrewarm)) ?? false,
|
|
76
79
|
};
|
|
77
80
|
cachedConfig = config;
|
|
78
81
|
return config;
|
|
@@ -92,6 +95,25 @@ function configuredPort(value) {
|
|
|
92
95
|
}
|
|
93
96
|
return undefined;
|
|
94
97
|
}
|
|
98
|
+
function configuredBoolean(value) {
|
|
99
|
+
if (typeof value === "boolean") {
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
102
|
+
if (typeof value === "number") {
|
|
103
|
+
if (value === 1)
|
|
104
|
+
return true;
|
|
105
|
+
if (value === 0)
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
if (typeof value === "string") {
|
|
109
|
+
const normalized = value.trim().toLowerCase();
|
|
110
|
+
if (["1", "true", "yes", "on"].includes(normalized))
|
|
111
|
+
return true;
|
|
112
|
+
if (["0", "false", "no", "off"].includes(normalized))
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
95
117
|
function normaliseBaseUrl(value) {
|
|
96
118
|
const input = configuredString(value);
|
|
97
119
|
if (!input)
|
package/dist/mcp-server.js
CHANGED
|
@@ -60,6 +60,7 @@ async function main() {
|
|
|
60
60
|
writeDiagnosticEvent("config_loaded", {
|
|
61
61
|
baseUrl,
|
|
62
62
|
hasNetworkPassword: Boolean(config.networkPassword),
|
|
63
|
+
vicePrewarm: config.vicePrewarm,
|
|
63
64
|
});
|
|
64
65
|
// Initialize C64 client (reuse existing)
|
|
65
66
|
const client = await withDiagnosticSpan("startup", "create_client", { baseUrl }, async () => new C64Client(baseUrl, {
|
|
@@ -69,11 +70,22 @@ async function main() {
|
|
|
69
70
|
const initialBackendType = await withDiagnosticSpan("startup", "resolve_active_backend", {}, () => client.getActiveBackendType());
|
|
70
71
|
setPlatform(initialBackendType);
|
|
71
72
|
writeDiagnosticEvent("platform_initialised", { platform: initialBackendType });
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
if (config.vicePrewarm) {
|
|
74
|
+
const availableBackends = client.getAvailableBackends();
|
|
75
|
+
if (availableBackends.includes("vice")) {
|
|
76
|
+
writeDiagnosticEvent("vice_prewarm_start");
|
|
77
|
+
void client.prewarmBackends(["vice"])
|
|
78
|
+
.then((result) => {
|
|
79
|
+
writeDiagnosticEvent("vice_prewarm_complete", { result });
|
|
80
|
+
})
|
|
81
|
+
.catch((error) => {
|
|
82
|
+
writeDiagnosticEvent("vice_prewarm_failed", { error });
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
writeDiagnosticEvent("vice_prewarm_skipped", { reason: "vice_not_configured" });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
77
89
|
const rag = createLazyRagRetriever(() => initRag(), {
|
|
78
90
|
onInitStart() {
|
|
79
91
|
writeDiagnosticEvent("rag_init_start");
|
|
@@ -286,7 +286,14 @@ const KNOWLEDGE_BUNDLES = [
|
|
|
286
286
|
summary: "Page-by-page breakdown of the 64 KB address space with hardware, ROM, and RAM regions.",
|
|
287
287
|
prompts: ["memory-debug", "assembly-program"],
|
|
288
288
|
tools: ["read", "write", "verify_and_write_memory"],
|
|
289
|
-
relatedResources: [
|
|
289
|
+
relatedResources: [
|
|
290
|
+
RESOURCE_URIS.memory.zeroPageAndWorkspace,
|
|
291
|
+
RESOURCE_URIS.basic.romRoutines,
|
|
292
|
+
RESOURCE_URIS.kernal.romRoutines,
|
|
293
|
+
RESOURCE_URIS.io.spec,
|
|
294
|
+
RESOURCE_URIS.io.cia.spec,
|
|
295
|
+
RESOURCE_URIS.assembly.spec6510,
|
|
296
|
+
],
|
|
290
297
|
tags: ["memory", "hardware"],
|
|
291
298
|
},
|
|
292
299
|
{
|
|
@@ -298,19 +305,48 @@ const KNOWLEDGE_BUNDLES = [
|
|
|
298
305
|
summary: "Documents zero-page variables, BASIC pointers, and KERNAL workspace addresses.",
|
|
299
306
|
prompts: ["memory-debug", "assembly-program"],
|
|
300
307
|
tools: ["read", "write", "verify_and_write_memory"],
|
|
301
|
-
relatedResources: [
|
|
308
|
+
relatedResources: [
|
|
309
|
+
RESOURCE_URIS.memory.map,
|
|
310
|
+
RESOURCE_URIS.basic.romRoutines,
|
|
311
|
+
RESOURCE_URIS.kernal.romRoutines,
|
|
312
|
+
RESOURCE_URIS.assembly.spec6510,
|
|
313
|
+
],
|
|
302
314
|
tags: ["memory", "zero-page"],
|
|
303
315
|
},
|
|
316
|
+
{
|
|
317
|
+
uri: RESOURCE_URIS.basic.romRoutines,
|
|
318
|
+
name: "BASIC ROM Routines Memory Map",
|
|
319
|
+
description: "Memory-map-style breakdown of BASIC ROM routines, tables, parser helpers, and entry points.",
|
|
320
|
+
relativePath: "data/basic/rom-routines.md",
|
|
321
|
+
priority: "reference",
|
|
322
|
+
summary: "Maps BASIC ROM landmarks, reusable interpreter routines, numeric helpers, string helpers, and C64-specific BASIC continuation entries.",
|
|
323
|
+
prompts: ["memory-debug", "assembly-program", "basic-program"],
|
|
324
|
+
tools: ["read", "verify_and_write_memory"],
|
|
325
|
+
relatedResources: [
|
|
326
|
+
RESOURCE_URIS.memory.map,
|
|
327
|
+
RESOURCE_URIS.memory.zeroPageAndWorkspace,
|
|
328
|
+
RESOURCE_URIS.kernal.romRoutines,
|
|
329
|
+
RESOURCE_URIS.basic.spec,
|
|
330
|
+
RESOURCE_URIS.assembly.spec6510,
|
|
331
|
+
],
|
|
332
|
+
tags: ["memory", "basic", "rom"],
|
|
333
|
+
},
|
|
304
334
|
{
|
|
305
335
|
uri: RESOURCE_URIS.kernal.romRoutines,
|
|
306
|
-
name: "KERNAL Memory Map",
|
|
307
|
-
description: "
|
|
308
|
-
relativePath: "data/
|
|
336
|
+
name: "KERNAL ROM Routines Memory Map",
|
|
337
|
+
description: "Memory-map-style breakdown of KERNAL ROM routines, vectors, tables, and entry points.",
|
|
338
|
+
relativePath: "data/kernal/rom-routines.md",
|
|
309
339
|
priority: "reference",
|
|
310
|
-
summary: "
|
|
340
|
+
summary: "Maps KERNAL ROM vectors, jump table entries, internal routines, serial/tape/screen services, and reset handlers.",
|
|
311
341
|
prompts: ["memory-debug", "assembly-program"],
|
|
312
342
|
tools: ["read", "verify_and_write_memory"],
|
|
313
|
-
relatedResources: [
|
|
343
|
+
relatedResources: [
|
|
344
|
+
RESOURCE_URIS.memory.map,
|
|
345
|
+
RESOURCE_URIS.memory.zeroPageAndWorkspace,
|
|
346
|
+
RESOURCE_URIS.basic.romRoutines,
|
|
347
|
+
RESOURCE_URIS.io.spec,
|
|
348
|
+
RESOURCE_URIS.assembly.spec6510,
|
|
349
|
+
],
|
|
314
350
|
tags: ["memory", "kernal"],
|
|
315
351
|
},
|
|
316
352
|
{
|
|
@@ -322,7 +358,12 @@ const KNOWLEDGE_BUNDLES = [
|
|
|
322
358
|
summary: "Covers VIC-II, SID, CIA, and system control registers with address ranges and usage notes.",
|
|
323
359
|
prompts: ["memory-debug", "assembly-program"],
|
|
324
360
|
tools: ["read", "write", "verify_and_write_memory", "debugreg_read", "debugreg_write"],
|
|
325
|
-
relatedResources: [
|
|
361
|
+
relatedResources: [
|
|
362
|
+
RESOURCE_URIS.memory.map,
|
|
363
|
+
RESOURCE_URIS.memory.zeroPageAndWorkspace,
|
|
364
|
+
RESOURCE_URIS.io.cia.spec,
|
|
365
|
+
RESOURCE_URIS.assembly.spec6510,
|
|
366
|
+
],
|
|
326
367
|
tags: ["io", "hardware"],
|
|
327
368
|
},
|
|
328
369
|
{
|
|
@@ -334,7 +375,11 @@ const KNOWLEDGE_BUNDLES = [
|
|
|
334
375
|
summary: "Details CIA 1/2 registers, timers, interrupts, and keyboard matrix layout.",
|
|
335
376
|
prompts: ["memory-debug", "assembly-program"],
|
|
336
377
|
tools: ["read", "write", "verify_and_write_memory", "debugreg_read"],
|
|
337
|
-
relatedResources: [
|
|
378
|
+
relatedResources: [
|
|
379
|
+
RESOURCE_URIS.io.spec,
|
|
380
|
+
RESOURCE_URIS.memory.map,
|
|
381
|
+
RESOURCE_URIS.memory.zeroPageAndWorkspace,
|
|
382
|
+
],
|
|
338
383
|
tags: ["io", "hardware"],
|
|
339
384
|
},
|
|
340
385
|
],
|
package/dist/rag/resourceUris.js
CHANGED
|
@@ -10,6 +10,7 @@ export const RESOURCE_URIS = {
|
|
|
10
10
|
basic: {
|
|
11
11
|
spec: "c64://basic/spec",
|
|
12
12
|
pitfalls: "c64://basic/pitfalls",
|
|
13
|
+
romRoutines: "c64://basic/rom-routines",
|
|
13
14
|
},
|
|
14
15
|
assembly: {
|
|
15
16
|
spec6510: "c64://assembly/6510-spec",
|
|
@@ -80,6 +81,7 @@ export const CANONICAL_KNOWLEDGE_RESOURCE_URIS = Object.freeze([
|
|
|
80
81
|
RESOURCE_URIS.graphics.spriteCharset.bestPractices,
|
|
81
82
|
RESOURCE_URIS.memory.map,
|
|
82
83
|
RESOURCE_URIS.memory.zeroPageAndWorkspace,
|
|
84
|
+
RESOURCE_URIS.basic.romRoutines,
|
|
83
85
|
RESOURCE_URIS.kernal.romRoutines,
|
|
84
86
|
RESOURCE_URIS.io.spec,
|
|
85
87
|
RESOURCE_URIS.io.cia.spec,
|
package/doc/developer.md
CHANGED
|
@@ -124,9 +124,10 @@ Environment knobs: `RAG_EMBEDDINGS_DIR`, `RAG_BUILD_ON_START`, `RAG_REINDEX_INTE
|
|
|
124
124
|
|
|
125
125
|
Tagging a release through the GitHub release UI triggers [`.github/workflows/release.yaml`](../.github/workflows/release.yaml), which publishes the npm package and then publishes the same version to the MCP Registry.
|
|
126
126
|
|
|
127
|
-
-
|
|
127
|
+
- npm publication now uses trusted publishing over GitHub OIDC rather than an `NPM_TOKEN` secret
|
|
128
|
+
- One-time npm setup is required in the package settings for `c64bridge`: provider `GitHub Actions`, repository `chrisgleissner/c64bridge`, workflow `.github/workflows/release.yaml`, and allowed action `npm publish`
|
|
128
129
|
- No dedicated MCP Registry secret is required for the GitHub-driven flow; the workflow uses `mcp-publisher login github-oidc`
|
|
129
|
-
- The release workflow must grant `id-token: write` so GitHub Actions can mint the short-lived OIDC
|
|
130
|
+
- The release workflow must grant `id-token: write` so GitHub Actions can mint the short-lived OIDC tokens used by both npm trusted publishing and `mcp-publisher`
|
|
130
131
|
- Keep [`package.json`](../package.json) `mcpName` aligned with [`server.json`](../server.json) `name`
|
|
131
132
|
- The root [`server.json`](../server.json) is the MCP Registry manifest; [`mcp/server.json`](../mcp/server.json) remains generated MCP interface output
|
|
132
133
|
|
package/mcp/resources.json
CHANGED
|
@@ -522,6 +522,11 @@
|
|
|
522
522
|
},
|
|
523
523
|
"order": 0,
|
|
524
524
|
"relatedResources": [
|
|
525
|
+
"c64://memory/zero-page-and-workspace",
|
|
526
|
+
"c64://basic/rom-routines",
|
|
527
|
+
"c64://kernal/rom-routines",
|
|
528
|
+
"c64://io/spec",
|
|
529
|
+
"c64://io/cia/spec",
|
|
525
530
|
"c64://assembly/6510-spec"
|
|
526
531
|
]
|
|
527
532
|
}
|
|
@@ -557,19 +562,60 @@
|
|
|
557
562
|
"order": 1,
|
|
558
563
|
"relatedResources": [
|
|
559
564
|
"c64://memory/map",
|
|
565
|
+
"c64://basic/rom-routines",
|
|
566
|
+
"c64://kernal/rom-routines",
|
|
560
567
|
"c64://assembly/6510-spec"
|
|
561
568
|
]
|
|
562
569
|
}
|
|
563
570
|
},
|
|
564
571
|
{
|
|
565
|
-
"name": "
|
|
572
|
+
"name": "BASIC ROM Routines Memory Map",
|
|
573
|
+
"uri": "c64://basic/rom-routines",
|
|
574
|
+
"description": "Memory-map-style breakdown of BASIC ROM routines, tables, parser helpers, and entry points.",
|
|
575
|
+
"mimeType": "text/markdown",
|
|
576
|
+
"_meta": {
|
|
577
|
+
"domain": "memory",
|
|
578
|
+
"priority": "reference",
|
|
579
|
+
"summary": "Maps BASIC ROM landmarks, reusable interpreter routines, numeric helpers, string helpers, and C64-specific BASIC continuation entries.",
|
|
580
|
+
"prompts": [
|
|
581
|
+
"memory-debug",
|
|
582
|
+
"assembly-program",
|
|
583
|
+
"basic-program"
|
|
584
|
+
],
|
|
585
|
+
"tools": [
|
|
586
|
+
"read",
|
|
587
|
+
"verify_and_write_memory"
|
|
588
|
+
],
|
|
589
|
+
"tags": [
|
|
590
|
+
"memory",
|
|
591
|
+
"basic",
|
|
592
|
+
"rom"
|
|
593
|
+
],
|
|
594
|
+
"bundle": {
|
|
595
|
+
"id": "memory",
|
|
596
|
+
"title": "Memory & I/O Reference",
|
|
597
|
+
"summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
|
|
598
|
+
"order": 5
|
|
599
|
+
},
|
|
600
|
+
"order": 2,
|
|
601
|
+
"relatedResources": [
|
|
602
|
+
"c64://memory/map",
|
|
603
|
+
"c64://memory/zero-page-and-workspace",
|
|
604
|
+
"c64://kernal/rom-routines",
|
|
605
|
+
"c64://basic/spec",
|
|
606
|
+
"c64://assembly/6510-spec"
|
|
607
|
+
]
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"name": "KERNAL ROM Routines Memory Map",
|
|
566
612
|
"uri": "c64://kernal/rom-routines",
|
|
567
|
-
"description": "
|
|
613
|
+
"description": "Memory-map-style breakdown of KERNAL ROM routines, vectors, tables, and entry points.",
|
|
568
614
|
"mimeType": "text/markdown",
|
|
569
615
|
"_meta": {
|
|
570
616
|
"domain": "memory",
|
|
571
617
|
"priority": "reference",
|
|
572
|
-
"summary": "
|
|
618
|
+
"summary": "Maps KERNAL ROM vectors, jump table entries, internal routines, serial/tape/screen services, and reset handlers.",
|
|
573
619
|
"prompts": [
|
|
574
620
|
"memory-debug",
|
|
575
621
|
"assembly-program"
|
|
@@ -588,9 +634,12 @@
|
|
|
588
634
|
"summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
|
|
589
635
|
"order": 5
|
|
590
636
|
},
|
|
591
|
-
"order":
|
|
637
|
+
"order": 3,
|
|
592
638
|
"relatedResources": [
|
|
593
639
|
"c64://memory/map",
|
|
640
|
+
"c64://memory/zero-page-and-workspace",
|
|
641
|
+
"c64://basic/rom-routines",
|
|
642
|
+
"c64://io/spec",
|
|
594
643
|
"c64://assembly/6510-spec"
|
|
595
644
|
]
|
|
596
645
|
}
|
|
@@ -625,9 +674,11 @@
|
|
|
625
674
|
"summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
|
|
626
675
|
"order": 5
|
|
627
676
|
},
|
|
628
|
-
"order":
|
|
677
|
+
"order": 4,
|
|
629
678
|
"relatedResources": [
|
|
630
679
|
"c64://memory/map",
|
|
680
|
+
"c64://memory/zero-page-and-workspace",
|
|
681
|
+
"c64://io/cia/spec",
|
|
631
682
|
"c64://assembly/6510-spec"
|
|
632
683
|
]
|
|
633
684
|
}
|
|
@@ -661,10 +712,11 @@
|
|
|
661
712
|
"summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
|
|
662
713
|
"order": 5
|
|
663
714
|
},
|
|
664
|
-
"order":
|
|
715
|
+
"order": 5,
|
|
665
716
|
"relatedResources": [
|
|
666
717
|
"c64://io/spec",
|
|
667
|
-
"c64://memory/map"
|
|
718
|
+
"c64://memory/map",
|
|
719
|
+
"c64://memory/zero-page-and-workspace"
|
|
668
720
|
]
|
|
669
721
|
}
|
|
670
722
|
},
|
|
@@ -919,6 +971,7 @@
|
|
|
919
971
|
"c64://graphics/sprite-charset/best-practices",
|
|
920
972
|
"c64://memory/map",
|
|
921
973
|
"c64://memory/zero-page-and-workspace",
|
|
974
|
+
"c64://basic/rom-routines",
|
|
922
975
|
"c64://kernal/rom-routines",
|
|
923
976
|
"c64://io/spec",
|
|
924
977
|
"c64://io/cia/spec",
|
package/mcp/server.json
CHANGED
package/mcp.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "c64bridge",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "Stdio-based Model Context Protocol (MCP) server that bridges Commodore 64 Ultimate hardware with AI agents.",
|
|
5
5
|
"entry": "dist/index.js",
|
|
6
6
|
"type": "stdio",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"default": "6502"
|
|
130
130
|
},
|
|
131
131
|
"VICE_VISIBLE": {
|
|
132
|
-
"description": "Launch VICE
|
|
132
|
+
"description": "Launch VICE as a desktop window when true; use headless/Xvfb managed launch when false",
|
|
133
133
|
"default": "true"
|
|
134
134
|
},
|
|
135
135
|
"VICE_WARP": {
|
|
@@ -137,15 +137,19 @@
|
|
|
137
137
|
"default": "false when visible, true when headless"
|
|
138
138
|
},
|
|
139
139
|
"VICE_ARGS": {
|
|
140
|
-
"description": "Extra command-line arguments forwarded to managed VICE launches",
|
|
140
|
+
"description": "Extra command-line arguments forwarded to managed VICE launches, such as -minimized for a visible window that starts iconified",
|
|
141
141
|
"default": ""
|
|
142
142
|
},
|
|
143
|
+
"VICE_PREWARM": {
|
|
144
|
+
"description": "Set to 1 to start/connect VICE in the background during MCP startup; disabled by default so VICE starts lazily on first use",
|
|
145
|
+
"default": "0"
|
|
146
|
+
},
|
|
143
147
|
"VICE_RUN_TIMEOUT_MS": {
|
|
144
148
|
"description": "Timeout for headless VICE runs in milliseconds",
|
|
145
149
|
"default": "10000"
|
|
146
150
|
},
|
|
147
151
|
"FORCE_XVFB": {
|
|
148
|
-
"description": "Set to 1 to force managed VICE launches to
|
|
152
|
+
"description": "Set to 1 to force managed VICE launches to use Xvfb even when a graphical session is detected",
|
|
149
153
|
"default": "0"
|
|
150
154
|
},
|
|
151
155
|
"DISABLE_XVFB": {
|
package/package.json
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "c64bridge",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"mcpName": "io.github.chrisgleissner/c64bridge",
|
|
5
5
|
"description": "C64 Bridge MCP server for Commodore 64 Ultimate hardware and VICE emulator control",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/chrisgleissner/c64bridge.git"
|
|
9
|
+
},
|
|
6
10
|
"type": "module",
|
|
7
11
|
"main": "dist/index.js",
|
|
8
12
|
"packageManager": "bun@1.3.1",
|
|
@@ -63,22 +67,22 @@
|
|
|
63
67
|
},
|
|
64
68
|
"dependencies": {
|
|
65
69
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
66
|
-
"axios": "^1.
|
|
67
|
-
"date-fns": "^4.
|
|
68
|
-
"fastify": "^5.
|
|
70
|
+
"axios": "^1.18.1",
|
|
71
|
+
"date-fns": "^4.4.0",
|
|
72
|
+
"fastify": "^5.10.0",
|
|
69
73
|
"jimp": "^1.6.1",
|
|
70
74
|
"meyda": "^5.6.3",
|
|
71
75
|
"octokit": "^5.0.5",
|
|
72
76
|
"pitchfinder": "^2.3.4",
|
|
73
77
|
"reflect-metadata": "^0.2.2",
|
|
74
|
-
"yaml": "^2.
|
|
78
|
+
"yaml": "^2.9.0"
|
|
75
79
|
},
|
|
76
80
|
"optionalDependencies": {
|
|
77
81
|
"naudiodon": "^2.3.6"
|
|
78
82
|
},
|
|
79
83
|
"devDependencies": {
|
|
80
|
-
"@types/node": "^25.
|
|
81
|
-
"tsx": "^4.
|
|
84
|
+
"@types/node": "^25.9.5",
|
|
85
|
+
"tsx": "^4.23.0",
|
|
82
86
|
"typescript": "^6.0.3"
|
|
83
87
|
},
|
|
84
88
|
"files": [
|
package/scripts/update-readme.ts
CHANGED
package/server.json
CHANGED
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
"title": "C64 Bridge",
|
|
5
5
|
"description": "MCP server for Commodore 64 Ultimate hardware and VICE emulator control.",
|
|
6
6
|
"repository": {
|
|
7
|
-
"url": "https://github.com/chrisgleissner/c64bridge",
|
|
7
|
+
"url": "git+https://github.com/chrisgleissner/c64bridge.git",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
10
|
"websiteUrl": "https://github.com/chrisgleissner/c64bridge",
|
|
11
|
-
"version": "0.9.
|
|
11
|
+
"version": "0.9.3",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "c64bridge",
|
|
16
|
-
"version": "0.9.
|
|
16
|
+
"version": "0.9.3",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
},
|