c64bridge 0.9.3 → 1.0.0
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 +19 -3
- package/README.md +190 -148
- package/dist/.tsbuildinfo +1 -1
- package/dist/c64Client.js +127 -5
- package/dist/config.js +12 -8
- package/dist/device.js +75 -45
- package/dist/mcp-server.js +11 -3
- package/dist/platform.js +13 -2
- package/dist/tools/audio.js +1 -1
- package/dist/tools/developer.js +6 -6
- package/dist/tools/graphics.js +4 -4
- package/dist/tools/input.js +129 -12
- package/dist/tools/machineControl.js +85 -6
- package/dist/tools/memory.js +1 -1
- package/dist/tools/meta/index.js +1 -1
- package/dist/tools/programRunners.js +5 -5
- package/dist/tools/rag.js +1 -1
- package/dist/tools/registry/batch.js +1 -1
- package/dist/tools/registry/config.js +5 -5
- package/dist/tools/registry/disk.js +2 -2
- package/dist/tools/registry/drive.js +2 -2
- package/dist/tools/registry/graphics.js +2 -2
- package/dist/tools/registry/memory.js +2 -2
- package/dist/tools/registry/platform.js +7 -5
- package/dist/tools/registry/program.js +5 -5
- package/dist/tools/registry/rag.js +1 -1
- package/dist/tools/registry/sound.js +4 -4
- package/dist/tools/registry/system.js +13 -3
- package/dist/tools/storage.js +1 -1
- package/doc/c64u/c64-openapi.yaml +1130 -774
- package/doc/u2/u2-openapi.yaml +1192 -0
- package/generated/c64/index.js +142 -9
- package/generated/openapi/c64u/index.js +1117 -0
- package/generated/openapi/u2/index.js +929 -0
- package/mcp/schemas/c64_graphics.schema.json +3 -3
- package/mcp/schemas/c64_input.schema.json +247 -6
- package/mcp/schemas/c64_memory.schema.json +3 -3
- package/mcp/schemas/c64_program.schema.json +3 -3
- package/mcp/schemas/c64_select_backend.schema.json +2 -0
- package/mcp/schemas/c64_system.schema.json +41 -1
- package/mcp/server.json +1 -1
- package/mcp/tools.json +382 -41
- package/mcp.json +14 -2
- package/package.json +4 -2
- package/scripts/mockC64Server.mjs +40 -0
- package/scripts/prepare-release.mjs +13 -2
- package/scripts/update-readme.ts +18 -30
- package/server.json +3 -3
|
@@ -25,7 +25,7 @@ export const ragModuleGroup = defineToolModule({
|
|
|
25
25
|
"Use BASIC retrieval before synthesising new BASIC code and mention primary resources in responses.",
|
|
26
26
|
"For assembly, note registers or addresses surfaced so the user can inspect them further.",
|
|
27
27
|
],
|
|
28
|
-
supportedPlatforms: ["c64u", "vice"],
|
|
28
|
+
supportedPlatforms: ["c64u", "u2", "vice"],
|
|
29
29
|
tools: [
|
|
30
30
|
{
|
|
31
31
|
name: "c64_rag",
|
|
@@ -139,7 +139,7 @@ const soundOperationHandlers = createOperationHandlers(soundOperations);
|
|
|
139
139
|
export const soundModuleGroup = defineToolModule({
|
|
140
140
|
domain: "audio",
|
|
141
141
|
summary: "Grouped SID control, playback, composition, and analysis operations.",
|
|
142
|
-
supportedPlatforms: ["c64u", "vice"],
|
|
142
|
+
supportedPlatforms: ["c64u", "u2", "vice"],
|
|
143
143
|
resources: ["c64://sound/sid/spec", "c64://sound/sidwave/spec", "c64://sound/sid/file-format"],
|
|
144
144
|
prompts: ["sid-music"],
|
|
145
145
|
defaultTags: ["sid", "audio"],
|
|
@@ -159,9 +159,9 @@ export const soundModuleGroup = defineToolModule({
|
|
|
159
159
|
tags: ["sid", "audio", "grouped"],
|
|
160
160
|
operationPlatforms: {
|
|
161
161
|
capture_samples: ["c64u"],
|
|
162
|
-
play_sid_file: ["c64u"],
|
|
163
|
-
play_mod_file: ["c64u"],
|
|
164
|
-
pipeline: ["c64u"],
|
|
162
|
+
play_sid_file: ["c64u", "u2"],
|
|
163
|
+
play_mod_file: ["c64u", "u2"],
|
|
164
|
+
pipeline: ["c64u", "u2"],
|
|
165
165
|
analyze: ["c64u"],
|
|
166
166
|
record_analyze: ["c64u"],
|
|
167
167
|
},
|
|
@@ -30,11 +30,21 @@ const systemOperations = [
|
|
|
30
30
|
schema: extendSchemaWithOp("poweroff", ensureDescriptor(machineDescriptorIndex, "poweroff").inputSchema, { description: "Request a controlled shutdown via the Ultimate firmware." }),
|
|
31
31
|
handler: async (rawArgs, ctx) => invokeModuleTool(machineControlModule, "poweroff", rawArgs, ctx),
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
op: "power_cycle",
|
|
35
|
+
schema: extendSchemaWithOp("power_cycle", ensureDescriptor(machineDescriptorIndex, "power_cycle").inputSchema, { description: "Return the active backend to a fresh state. C64U/U64 Tool Menu verification requires machine:menu_screen (a C64U firmware version that provides it, or U64 3.15+); U2-family reboots through REST." }),
|
|
36
|
+
handler: async (rawArgs, ctx) => invokeModuleTool(machineControlModule, "power_cycle", rawArgs, ctx),
|
|
37
|
+
},
|
|
33
38
|
{
|
|
34
39
|
op: "menu",
|
|
35
40
|
schema: extendSchemaWithOp("menu", ensureDescriptor(machineDescriptorIndex, "menu_button").inputSchema, { description: "Toggle the Ultimate menu button for navigation." }),
|
|
36
41
|
handler: async (rawArgs, ctx) => invokeModuleTool(machineControlModule, "menu_button", rawArgs, ctx),
|
|
37
42
|
},
|
|
43
|
+
{
|
|
44
|
+
op: "read_menu_screen",
|
|
45
|
+
schema: extendSchemaWithOp("read_menu_screen", ensureDescriptor(machineDescriptorIndex, "read_menu_screen").inputSchema, { description: "Read the active Ultimate menu's raw character and colour matrix through machine:menu_screen (a C64U firmware version that provides it, or U64/U2 3.15+)." }),
|
|
46
|
+
handler: async (rawArgs, ctx) => invokeModuleTool(machineControlModule, "read_menu_screen", rawArgs, ctx),
|
|
47
|
+
},
|
|
38
48
|
{
|
|
39
49
|
op: "start_task",
|
|
40
50
|
schema: extendSchemaWithOp("start_task", ensureDescriptor(metaDescriptorIndex, "start_background_task").inputSchema, { description: "Start a named background task that runs on an interval." }),
|
|
@@ -65,7 +75,7 @@ const systemOperationHandlers = createOperationHandlers(systemOperations);
|
|
|
65
75
|
export const systemModuleGroup = defineToolModule({
|
|
66
76
|
domain: "system",
|
|
67
77
|
summary: "Grouped machine control and background task orchestration.",
|
|
68
|
-
supportedPlatforms: ["c64u", "vice"],
|
|
78
|
+
supportedPlatforms: ["c64u", "u2", "vice"],
|
|
69
79
|
resources: ["c64://guide/bootstrap"],
|
|
70
80
|
prompts: ["memory-debug"],
|
|
71
81
|
defaultTags: ["system", "control"],
|
|
@@ -83,8 +93,8 @@ export const systemModuleGroup = defineToolModule({
|
|
|
83
93
|
variants: systemOperations.map((operation) => operation.schema),
|
|
84
94
|
}),
|
|
85
95
|
tags: ["system", "control", "grouped"],
|
|
86
|
-
operationPlatforms: { pause: ["c64u"], resume: ["c64u"], menu: ["c64u"] },
|
|
87
|
-
operationToolNames: { pause: "pause", resume: "resume", menu: "menu_button" },
|
|
96
|
+
operationPlatforms: { pause: ["c64u", "u2"], resume: ["c64u", "u2"], menu: ["c64u", "u2"], read_menu_screen: ["c64u", "u2"] },
|
|
97
|
+
operationToolNames: { pause: "pause", resume: "resume", menu: "menu_button", read_menu_screen: "read_menu_screen" },
|
|
88
98
|
examples: [
|
|
89
99
|
{
|
|
90
100
|
name: "Soft reset",
|
package/dist/tools/storage.js
CHANGED
|
@@ -143,7 +143,7 @@ const createDnpArgsSchema = objectSchema({
|
|
|
143
143
|
export const storageModule = defineToolModule({
|
|
144
144
|
domain: "storage",
|
|
145
145
|
summary: "Drive management, disk image creation, and file inspection utilities.",
|
|
146
|
-
supportedPlatforms: ["c64u", "vice"],
|
|
146
|
+
supportedPlatforms: ["c64u", "u2", "vice"],
|
|
147
147
|
resources: ["c64://guide/bootstrap"],
|
|
148
148
|
prompts: ["memory-debug"],
|
|
149
149
|
defaultTags: ["drive", "storage"],
|