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.
Files changed (48) hide show
  1. package/AGENTS.md +19 -3
  2. package/README.md +190 -148
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/c64Client.js +127 -5
  5. package/dist/config.js +12 -8
  6. package/dist/device.js +75 -45
  7. package/dist/mcp-server.js +11 -3
  8. package/dist/platform.js +13 -2
  9. package/dist/tools/audio.js +1 -1
  10. package/dist/tools/developer.js +6 -6
  11. package/dist/tools/graphics.js +4 -4
  12. package/dist/tools/input.js +129 -12
  13. package/dist/tools/machineControl.js +85 -6
  14. package/dist/tools/memory.js +1 -1
  15. package/dist/tools/meta/index.js +1 -1
  16. package/dist/tools/programRunners.js +5 -5
  17. package/dist/tools/rag.js +1 -1
  18. package/dist/tools/registry/batch.js +1 -1
  19. package/dist/tools/registry/config.js +5 -5
  20. package/dist/tools/registry/disk.js +2 -2
  21. package/dist/tools/registry/drive.js +2 -2
  22. package/dist/tools/registry/graphics.js +2 -2
  23. package/dist/tools/registry/memory.js +2 -2
  24. package/dist/tools/registry/platform.js +7 -5
  25. package/dist/tools/registry/program.js +5 -5
  26. package/dist/tools/registry/rag.js +1 -1
  27. package/dist/tools/registry/sound.js +4 -4
  28. package/dist/tools/registry/system.js +13 -3
  29. package/dist/tools/storage.js +1 -1
  30. package/doc/c64u/c64-openapi.yaml +1130 -774
  31. package/doc/u2/u2-openapi.yaml +1192 -0
  32. package/generated/c64/index.js +142 -9
  33. package/generated/openapi/c64u/index.js +1117 -0
  34. package/generated/openapi/u2/index.js +929 -0
  35. package/mcp/schemas/c64_graphics.schema.json +3 -3
  36. package/mcp/schemas/c64_input.schema.json +247 -6
  37. package/mcp/schemas/c64_memory.schema.json +3 -3
  38. package/mcp/schemas/c64_program.schema.json +3 -3
  39. package/mcp/schemas/c64_select_backend.schema.json +2 -0
  40. package/mcp/schemas/c64_system.schema.json +41 -1
  41. package/mcp/server.json +1 -1
  42. package/mcp/tools.json +382 -41
  43. package/mcp.json +14 -2
  44. package/package.json +4 -2
  45. package/scripts/mockC64Server.mjs +40 -0
  46. package/scripts/prepare-release.mjs +13 -2
  47. package/scripts/update-readme.ts +18 -30
  48. 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",
@@ -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"],