c64bridge 0.8.1 → 0.9.1

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 (92) hide show
  1. package/.github/prompts/steer.prompt.md +55 -0
  2. package/AGENTS.md +9 -7
  3. package/README.md +192 -154
  4. package/data/embeddings_asm.json +1 -1
  5. package/data/embeddings_basic.json +1 -1
  6. package/data/embeddings_hardware.json +1 -1
  7. package/data/embeddings_mixed.json +1 -1
  8. package/data/embeddings_other.json +1 -1
  9. package/data/graphics/petscii-style-guide.md +4 -4
  10. package/data/graphics/sprite-charset-best-practices.md +9 -9
  11. package/data/vice/vice-binary-monitor-spec.md +938 -0
  12. package/dist/.tsbuildinfo +1 -1
  13. package/dist/c64Client.js +76 -2
  14. package/dist/device.js +129 -13
  15. package/dist/mcp-server.js +1 -1
  16. package/dist/prompts/registry.js +27 -25
  17. package/dist/rag/indexer.js +18 -8
  18. package/dist/rag/knowledgeIndex.js +112 -79
  19. package/dist/rag/resourceUris.js +93 -0
  20. package/dist/sidwaveCompiler.js +1 -1
  21. package/dist/{assemblyConverter.js → tools/assember.js} +10 -1
  22. package/dist/tools/audio.js +11 -11
  23. package/dist/{basicConverter.js → tools/basicTokenizer.js} +1 -1
  24. package/dist/tools/debug.js +159 -6
  25. package/dist/tools/developer.js +13 -13
  26. package/dist/tools/disassembler.js +478 -0
  27. package/dist/tools/graphics.js +10 -10
  28. package/dist/tools/input.js +338 -0
  29. package/dist/tools/machineControl.js +5 -5
  30. package/dist/tools/memory.js +336 -12
  31. package/dist/tools/meta/index.js +1 -1
  32. package/dist/tools/printer.js +11 -12
  33. package/dist/tools/programRunners.js +61 -22
  34. package/dist/tools/rag.js +9 -9
  35. package/dist/tools/registry/batch.js +167 -0
  36. package/dist/tools/registry/config.js +1 -1
  37. package/dist/tools/registry/disk.js +1 -1
  38. package/dist/tools/registry/drive.js +1 -1
  39. package/dist/tools/registry/extract.js +1 -1
  40. package/dist/tools/registry/graphics.js +102 -2
  41. package/dist/tools/registry/index.js +4 -0
  42. package/dist/tools/registry/input.js +2 -0
  43. package/dist/tools/registry/memory.js +62 -2
  44. package/dist/tools/registry/platform.js +1 -1
  45. package/dist/tools/registry/printer.js +1 -1
  46. package/dist/tools/registry/program.js +1 -1
  47. package/dist/tools/registry/rag.js +1 -1
  48. package/dist/tools/registry/sound.js +1 -1
  49. package/dist/tools/registry/stream.js +1 -1
  50. package/dist/tools/registry/system.js +1 -1
  51. package/dist/tools/schema.js +4 -5
  52. package/dist/tools/storage.js +15 -15
  53. package/dist/tools/streaming.js +3 -3
  54. package/dist/tools/symbolRegistry.js +49 -0
  55. package/dist/tools/types.js +56 -4
  56. package/dist/tools/vice.js +2 -5
  57. package/dist/vice/process.js +120 -2
  58. package/dist/vice/readiness.js +35 -0
  59. package/dist/vice/smokeOptions.js +44 -0
  60. package/dist/vice/viceClient.js +5 -1
  61. package/dist/viceRunner.js +2 -0
  62. package/doc/plans/prompts/README.md +7 -7
  63. package/mcp/prompts.json +42 -59
  64. package/mcp/protocol-examples.json +2 -2
  65. package/mcp/resources.json +179 -166
  66. package/mcp/schemas/c64_batch.schema.json +53 -0
  67. package/mcp/schemas/c64_config.schema.json +525 -283
  68. package/mcp/schemas/c64_debug.schema.json +763 -304
  69. package/mcp/schemas/c64_disk.schema.json +499 -243
  70. package/mcp/schemas/c64_drive.schema.json +165 -90
  71. package/mcp/schemas/c64_extract.schema.json +533 -274
  72. package/mcp/schemas/c64_graphics.schema.json +607 -295
  73. package/mcp/schemas/c64_input.schema.json +136 -0
  74. package/mcp/schemas/c64_memory.schema.json +637 -128
  75. package/mcp/schemas/c64_printer.schema.json +393 -196
  76. package/mcp/schemas/c64_program.schema.json +699 -340
  77. package/mcp/schemas/c64_rag.schema.json +100 -54
  78. package/mcp/schemas/c64_select_backend.schema.json +49 -23
  79. package/mcp/schemas/c64_sound.schema.json +1092 -577
  80. package/mcp/schemas/c64_stream.schema.json +89 -47
  81. package/mcp/schemas/c64_system.schema.json +351 -185
  82. package/mcp/schemas/c64_vice.schema.json +85 -47
  83. package/mcp/server.json +1 -1
  84. package/mcp/tools.json +7299 -3346
  85. package/mcp.json +3 -3
  86. package/package.json +17 -14
  87. package/scripts/fetch-external-sources.mjs +1 -2
  88. package/scripts/run-coverage.mjs +33 -1
  89. package/scripts/run-tests.mjs +2 -2
  90. package/scripts/run-tests.ts +275 -52
  91. package/scripts/update-readme.ts +132 -3
  92. package/server.json +2 -2
@@ -1,67 +1,113 @@
1
1
  {
2
2
  "type": "object",
3
- "description": "RAG operations available via the c64_rag tool.",
4
- "oneOf": [
3
+ "properties": {
4
+ "op": {
5
+ "type": "string",
6
+ "enum": [
7
+ "basic",
8
+ "asm"
9
+ ],
10
+ "description": "Selects the operation."
11
+ },
12
+ "q": {
13
+ "type": "string",
14
+ "description": "Natural-language query describing the desired BASIC or assembly guidance.",
15
+ "minLength": 3
16
+ },
17
+ "k": {
18
+ "type": [
19
+ "integer",
20
+ "null"
21
+ ],
22
+ "description": "Maximum number of references to return (1-12).",
23
+ "minimum": 1,
24
+ "maximum": 12,
25
+ "default": 3
26
+ }
27
+ },
28
+ "required": [
29
+ "op"
30
+ ],
31
+ "description": "RAG operations available via the c64_rag tool.\n\nOperations:\n- basic: Retrieve BASIC references and snippets from the local knowledge base. Required inputs: q. Optional inputs: k.\n- asm: Retrieve 6502/6510 assembly references from the local knowledge base. Required inputs: q. Optional inputs: k.",
32
+ "additionalProperties": false,
33
+ "x-c64bridge-operations": [
5
34
  {
6
- "type": "object",
35
+ "op": "basic",
7
36
  "description": "Retrieve BASIC references and snippets from the local knowledge base.",
8
- "properties": {
9
- "q": {
10
- "type": "string",
11
- "description": "Natural-language query describing the desired BASIC or assembly guidance.",
12
- "minLength": 3
13
- },
14
- "k": {
15
- "type": [
16
- "integer",
17
- "null"
18
- ],
19
- "description": "Maximum number of references to return (1-12).",
20
- "minimum": 1,
21
- "maximum": 12,
22
- "default": 3
23
- },
24
- "op": {
25
- "const": "basic"
26
- }
27
- },
28
37
  "required": [
29
- "q",
30
- "op"
38
+ "q"
31
39
  ],
32
- "additionalProperties": false
40
+ "optional": [
41
+ "k"
42
+ ],
43
+ "inputSchema": {
44
+ "type": "object",
45
+ "description": "Retrieve BASIC references and snippets from the local knowledge base.",
46
+ "properties": {
47
+ "q": {
48
+ "type": "string",
49
+ "description": "Natural-language query describing the desired BASIC or assembly guidance.",
50
+ "minLength": 3
51
+ },
52
+ "k": {
53
+ "type": [
54
+ "integer",
55
+ "null"
56
+ ],
57
+ "description": "Maximum number of references to return (1-12).",
58
+ "minimum": 1,
59
+ "maximum": 12,
60
+ "default": 3
61
+ },
62
+ "op": {
63
+ "const": "basic"
64
+ }
65
+ },
66
+ "required": [
67
+ "q",
68
+ "op"
69
+ ],
70
+ "additionalProperties": false
71
+ }
33
72
  },
34
73
  {
35
- "type": "object",
74
+ "op": "asm",
36
75
  "description": "Retrieve 6502/6510 assembly references from the local knowledge base.",
37
- "properties": {
38
- "q": {
39
- "type": "string",
40
- "description": "Natural-language query describing the desired BASIC or assembly guidance.",
41
- "minLength": 3
42
- },
43
- "k": {
44
- "type": [
45
- "integer",
46
- "null"
47
- ],
48
- "description": "Maximum number of references to return (1-12).",
49
- "minimum": 1,
50
- "maximum": 12,
51
- "default": 3
52
- },
53
- "op": {
54
- "const": "asm"
55
- }
56
- },
57
76
  "required": [
58
- "q",
59
- "op"
77
+ "q"
60
78
  ],
61
- "additionalProperties": false
79
+ "optional": [
80
+ "k"
81
+ ],
82
+ "inputSchema": {
83
+ "type": "object",
84
+ "description": "Retrieve 6502/6510 assembly references from the local knowledge base.",
85
+ "properties": {
86
+ "q": {
87
+ "type": "string",
88
+ "description": "Natural-language query describing the desired BASIC or assembly guidance.",
89
+ "minLength": 3
90
+ },
91
+ "k": {
92
+ "type": [
93
+ "integer",
94
+ "null"
95
+ ],
96
+ "description": "Maximum number of references to return (1-12).",
97
+ "minimum": 1,
98
+ "maximum": 12,
99
+ "default": 3
100
+ },
101
+ "op": {
102
+ "const": "asm"
103
+ }
104
+ },
105
+ "required": [
106
+ "q",
107
+ "op"
108
+ ],
109
+ "additionalProperties": false
110
+ }
62
111
  }
63
- ],
64
- "discriminator": {
65
- "propertyName": "op"
66
- }
112
+ ]
67
113
  }
@@ -1,32 +1,58 @@
1
1
  {
2
2
  "type": "object",
3
- "description": "Runtime backend selection operations.",
4
- "oneOf": [
3
+ "properties": {
4
+ "op": {
5
+ "type": "string",
6
+ "enum": [
7
+ "select"
8
+ ],
9
+ "description": "Selects the operation."
10
+ },
11
+ "backend": {
12
+ "type": "string",
13
+ "enum": [
14
+ "c64u",
15
+ "vice"
16
+ ],
17
+ "description": "Backend to activate for subsequent tool calls."
18
+ }
19
+ },
20
+ "required": [
21
+ "op"
22
+ ],
23
+ "description": "Runtime backend selection operations.\n\nOperations:\n- select: Switch the active runtime backend without restarting the MCP server. Required inputs: backend.",
24
+ "additionalProperties": false,
25
+ "x-c64bridge-operations": [
5
26
  {
6
- "type": "object",
27
+ "op": "select",
7
28
  "description": "Switch the active runtime backend without restarting the MCP server.",
8
- "properties": {
9
- "op": {
10
- "const": "select",
11
- "description": "Selects the select operation."
12
- },
13
- "backend": {
14
- "type": "string",
15
- "enum": [
16
- "c64u",
17
- "vice"
18
- ],
19
- "description": "Backend to activate for subsequent tool calls."
20
- }
21
- },
22
29
  "required": [
23
- "op",
24
30
  "backend"
25
31
  ],
26
- "additionalProperties": false
32
+ "optional": [],
33
+ "inputSchema": {
34
+ "type": "object",
35
+ "description": "Switch the active runtime backend without restarting the MCP server.",
36
+ "properties": {
37
+ "op": {
38
+ "const": "select",
39
+ "description": "Selects the select operation."
40
+ },
41
+ "backend": {
42
+ "type": "string",
43
+ "enum": [
44
+ "c64u",
45
+ "vice"
46
+ ],
47
+ "description": "Backend to activate for subsequent tool calls."
48
+ }
49
+ },
50
+ "required": [
51
+ "op",
52
+ "backend"
53
+ ],
54
+ "additionalProperties": false
55
+ }
27
56
  }
28
- ],
29
- "discriminator": {
30
- "propertyName": "op"
31
- }
57
+ ]
32
58
  }