c64bridge 1.0.6 → 1.1.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/.github/skills/assembly-program/SKILL.md +37 -0
- package/.github/skills/basic-program/SKILL.md +40 -0
- package/.github/skills/cross-platform-demo/SKILL.md +32 -0
- package/.github/skills/drive-manager/SKILL.md +33 -0
- package/.github/skills/graphics-demo/SKILL.md +30 -0
- package/.github/skills/hello-world/SKILL.md +36 -0
- package/.github/skills/memory-debug/SKILL.md +32 -0
- package/.github/skills/pr-converge/SKILL.md +33 -0
- package/.github/skills/printer-job/SKILL.md +30 -0
- package/.github/skills/sid-music/SKILL.md +35 -0
- package/.github/skills/software-launch/SKILL.md +31 -0
- package/.github/skills/stream-control/SKILL.md +29 -0
- package/.github/skills/system-control/SKILL.md +32 -0
- package/AGENTS.md +28 -7
- package/README.md +70 -15
- package/data/assembly/assembly-spec.md +2 -0
- package/dist/c64Client.js +238 -60
- package/dist/chargen.js +0 -4
- package/dist/config.js +53 -28
- package/dist/device.js +92 -37
- package/dist/diagnostics.js +66 -5
- package/dist/hostPaths.js +128 -0
- package/dist/logger.js +3 -2
- package/dist/loggingHttpClient.js +71 -2
- package/dist/mcp-server.js +416 -291
- package/dist/numericArg.js +55 -0
- package/dist/petscii.js +13 -6
- package/dist/platform.js +12 -3
- package/dist/prompts/registry.js +6 -1
- package/dist/redact.js +166 -0
- package/dist/tools/access.js +66 -0
- package/dist/tools/debug.js +6 -0
- package/dist/tools/developer.js +77 -36
- package/dist/tools/errors.js +54 -3
- package/dist/tools/input.js +25 -8
- package/dist/tools/machineControl.js +113 -21
- package/dist/tools/memory.js +135 -30
- package/dist/tools/meta/artifacts.js +5 -5
- package/dist/tools/meta/background.js +216 -54
- package/dist/tools/meta/compilation.js +6 -5
- package/dist/tools/meta/config.js +20 -10
- package/dist/tools/meta/configInventory.js +25 -2
- package/dist/tools/meta/diagnostics.js +2 -1
- package/dist/tools/meta/filesystem.js +16 -14
- package/dist/tools/meta/graphics.js +48 -20
- package/dist/tools/meta/memory.js +45 -19
- package/dist/tools/meta/program.js +10 -7
- package/dist/tools/meta/screen.js +116 -25
- package/dist/tools/pauseGuard.js +23 -0
- package/dist/tools/pollValidator.js +53 -8
- package/dist/tools/programRunners.js +62 -18
- package/dist/tools/registry/batch.js +17 -11
- package/dist/tools/registry/config.js +9 -2
- package/dist/tools/registry/disk.js +12 -2
- package/dist/tools/registry/drive.js +3 -0
- package/dist/tools/registry/extract.js +3 -0
- package/dist/tools/registry/graphics.js +59 -6
- package/dist/tools/registry/index.js +17 -1
- package/dist/tools/registry/memory.js +11 -1
- package/dist/tools/registry/platform.js +4 -1
- package/dist/tools/registry/printer.js +2 -1
- package/dist/tools/registry/program.js +5 -1
- package/dist/tools/registry/rag.js +1 -0
- package/dist/tools/registry/sound.js +12 -1
- package/dist/tools/registry/stream.js +2 -1
- package/dist/tools/registry/system.js +8 -1
- package/dist/tools/schema.js +7 -7
- package/dist/tools/streaming.js +34 -4
- package/dist/tools/translation/assembler.js +247 -24
- package/dist/tools/translation/basicDetokenizer.js +80 -0
- package/dist/tools/translation/basicTokenizer.js +8 -3
- package/dist/tools/translation/disassembler.js +14 -0
- package/dist/tools/types.js +258 -7
- package/dist/tools/vice.js +5 -16
- package/dist/vicBitmap.js +1 -1
- package/dist/vice/mockServer.js +3 -0
- package/dist/vice/process.js +19 -0
- package/dist/vice/resourcePolicy.js +36 -0
- package/dist/vice/viceClient.js +22 -5
- package/doc/vice/support-matrix.md +17 -11
- package/mcp/schemas/c64_batch.schema.json +2 -1
- package/mcp/schemas/c64_config.schema.json +33 -466
- package/mcp/schemas/c64_debug.schema.json +3 -602
- package/mcp/schemas/c64_disk.schema.json +17 -344
- package/mcp/schemas/c64_drive.schema.json +2 -157
- package/mcp/schemas/c64_extract.schema.json +10 -364
- package/mcp/schemas/c64_graphics.schema.json +19 -426
- package/mcp/schemas/c64_input.schema.json +5 -318
- package/mcp/schemas/c64_memory.schema.json +23 -491
- package/mcp/schemas/c64_printer.schema.json +3 -258
- package/mcp/schemas/c64_program.schema.json +16 -491
- package/mcp/schemas/c64_rag.schema.json +1 -81
- package/mcp/schemas/c64_select_backend.schema.json +2 -36
- package/mcp/schemas/c64_sound.schema.json +20 -822
- package/mcp/schemas/c64_stream.schema.json +4 -75
- package/mcp/schemas/c64_system.schema.json +28 -348
- package/mcp/schemas/c64_vice.schema.json +2 -71
- package/mcp/server.json +1 -1
- package/mcp/tools.json +1990 -6900
- package/mcp.json +21 -1
- package/package.json +19 -8
- package/scripts/mockC64Server.mjs +44 -0
- package/scripts/run-coverage.mjs +27 -1
- package/scripts/smoke-run.sh +3 -2
- package/scripts/start.mjs +23 -1
- package/server.json +53 -3
- package/dist/.tsbuildinfo +0 -1
- package/doc/agent-state-spec.md +0 -243
- package/doc/plans/bun/baseline-metrics.md +0 -16
- package/doc/plans/bun/migration-checklist.md +0 -55
- package/doc/plans/bun/migration.md +0 -83
- package/doc/plans/improve-knowledge/notes.md +0 -43
- package/doc/plans/improve-knowledge/plan.md +0 -121
- package/doc/plans/improve-knowledge/rollout.md +0 -110
- package/doc/plans/meta-tools/README.md +0 -110
- package/doc/plans/meta-tools/analysis.md +0 -272
- package/doc/plans/meta-tools/catalog.md +0 -435
- package/doc/plans/meta-tools/notes.md +0 -192
- package/doc/plans/meta-tools/rollout.md +0 -368
- package/doc/plans/prompts/README.md +0 -96
- package/doc/plans/prompts/user-prompt-ideas.md +0 -147
- package/doc/plans/tool-consolidation/notes.md +0 -28
- package/doc/plans/tool-consolidation/plan.md +0 -169
- package/doc/plans/tool-consolidation/rollout.md +0 -104
- package/doc/plans/vice-backend-switch/plan.md +0 -486
- package/doc/plans/vice-backend-switch-2/plan.md +0 -48
- package/doc/plans/vice-support/notes.md +0 -63
- package/doc/plans/vice-support/plan.md +0 -88
- package/doc/plans/vice-support/rollout.md +0 -99
- package/doc/reviews/audit.md +0 -143
- package/doc/reviews/hardening/01-fable/prompt-handover.md +0 -125
- package/doc/reviews/hardening/01-fable/prompt.md +0 -98
- package/doc/reviews/hardening/01-fable/review-prompt.md +0 -468
- package/doc/reviews/hardening/01-fable/review.md +0 -1234
- package/doc/reviews/vice-support-review.md +0 -185
- package/scripts/compare-rest/rest-compare-2025-11-01T00-25-21-830Z.json +0 -2513
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# LLM Prompt: C64 Bridge MCP Tool Surface Consolidation
|
|
2
|
-
|
|
3
|
-
You are refactoring the **C64 Bridge MCP server** (TypeScript, using `@modelcontextprotocol/sdk`) to reduce the exposed tool count from ~88 to a clean, discoverable set of **12 grouped multi-operation tools**, while preserving full functionality, LLM discoverability, and TypeScript type safety.
|
|
4
|
-
|
|
5
|
-
This plan incorporates the latest refinements: **splitting storage tools, dissolving meta workflows, adding verification flags, tightening schema discrimination, and renaming all prefixes to `c64.*`**.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 1. Objective
|
|
10
|
-
|
|
11
|
-
Transform all existing tools into **12 grouped multi-operation tools** with the following goals:
|
|
12
|
-
|
|
13
|
-
- Preserve *every* endpoint, parameter, and capability.
|
|
14
|
-
- Make the entire surface fully discoverable by LLMs via discriminated JSON Schema.
|
|
15
|
-
- Maintain compatibility with all MCP clients (VS Code, Cursor, Windsurf, Claude Desktop, Copilot Agents).
|
|
16
|
-
Each grouped tool must:
|
|
17
|
-
|
|
18
|
-
- Define an `op` property (`enum` or `const` in `oneOf` discriminators).
|
|
19
|
-
- Implement one handler dispatching internally based on `args.op`.
|
|
20
|
-
- Keep per-op descriptions concise (≤2 sentences).
|
|
21
|
-
- Include `verify: boolean` for ops where verification was previously separate.
|
|
22
|
-
- Be listed in the documentation generator as a grouped tool with nested operations.
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## 2. Grouped Tool Mapping
|
|
27
|
-
|
|
28
|
-
| Tool | Consolidated Operations | Selector | Notes |
|
|
29
|
-
|------|-------------------------|-----------|--------|
|
|
30
|
-
| **`c64_program`** | `load_prg_file` → `load_prg` • `run_prg_file` → `run_prg` • `run_crt_file` → `run_crt` • `upload_and_run_basic` → `upload_run_basic` • `upload_and_run_asm` → `upload_run_asm` • `batch_run_with_assertions` → `batch_run` • `bundle_run_artifacts` → `bundle_run` | `op` | `upload_run_*` ops gain optional `verify: boolean` |
|
|
31
|
-
| **`c64_memory`** | `read_memory` → `read` • `write_memory` → `write` (`verify: boolean`) • `read_screen` → `read_screen` • `wait_for_screen_text` → `wait_for_text` | `op` | `wait_for_text` covers polling-based screen matching |
|
|
32
|
-
| **`c64_sound`** | `sid_note_on` → `note_on` • `sid_note_off` → `note_off` • `sid_reset` → `reset` • `sid_silence_all` → `silence_all` (`verify: boolean`) • `sid_volume` → `set_volume` • `sidplay_file` → `play_sid_file` • `modplay_file` → `play_mod_file` • `music_compile_and_play` → `compile_play` • `music_generate` → `generate` • `music_compile_play_analyze` → `pipeline` • `analyze_audio` → `analyze` • `record_and_analyze_audio` → `record_analyze` | `op` | Includes the dissolved meta pipeline |
|
|
33
|
-
| **`c64_system`** | `pause` → `pause` • `resume` → `resume` • `reset_c64` → `reset` • `reboot_c64` → `reboot` • `poweroff` → `poweroff` • `menu_button` → `menu` • `start_background_task` → `start_task` • `stop_background_task` → `stop_task` • `stop_all_background_tasks` → `stop_all_tasks` • `list_background_tasks` → `list_tasks` | `op` | Combines system control with background task orchestration |
|
|
34
|
-
| **`c64_graphics`** | `create_petscii_image` → `create_petscii` • `render_petscii_screen` → `render_petscii` • `generate_sprite_prg` → `generate_sprite` • *(planned)* hires bitmap generator → `generate_bitmap` | `op` | PETSCII, sprite, and future bitmap helpers |
|
|
35
|
-
| **`c64_rag`** | `rag_retrieve_basic` → `basic` • `rag_retrieve_asm` → `asm` | `op` | Lightweight retrieval API |
|
|
36
|
-
| **`c64_disk`** | `create_d64/d71/d81/dnp` → `create_image` (`format` param) • `drive_mount`/`drive_mount_and_verify` → `mount` (`verify: boolean`) • `drive_remove` → `unmount` • `drives_list` → `list_drives` • `file_info` → `file_info` • `find_and_run_program_by_name` → `find_and_run` | `op` (`format`) | Consolidates disk image and file workflows |
|
|
37
|
-
| **`c64_drive`** | `drive_load_rom` → `load_rom` • `drive_mode` → `set_mode` • `drive_reset` → `reset` • `drive_on` → `power_on` • `drive_off` → `power_off` | `op` | Physical and virtual drive state |
|
|
38
|
-
| **`c64_printer`** | `define_printer_chars` → `define_chars` • `print_bitmap_commodore` → `print_bitmap` (`printer="commodore"`) • `print_bitmap_epson` → `print_bitmap` (`printer="epson"`) • `print_text` → `print_text` | `op` | `print_bitmap` requires the `printer` selector |
|
|
39
|
-
| **`c64_config`** | `config_get` → `get` • `config_set` → `set` • `config_list` → `list` • `config_batch_update` → `batch_update` • `config_load_from_flash` → `load_flash` • `config_save_to_flash` → `save_flash` • `config_reset_to_default` → `reset_defaults` • `debugreg_read` → `read_debugreg` • `debugreg_write` → `write_debugreg` • `info` → `info` • `version` → `version` • `config_snapshot_and_restore` → `snapshot` / `restore` • `program_shuffle` → `shuffle` | `op` | Configuration, firmware, and snapshot management |
|
|
40
|
-
| **`c64_extract`** | `extract_sprites_from_ram` → `sprites` • `rip_charset_from_ram` → `charset` • `memory_dump_to_file` → `memory_dump` • `filesystem_stats_by_extension` → `fs_stats` • `firmware_info_and_healthcheck` → `firmware_health` | `op` | Diagnostics and asset extraction |
|
|
41
|
-
| **`c64_stream`** | `stream_start` → `start` • `stream_stop` → `stop` | `op` | Streaming and monitoring APIs |
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## 3. Verification Integration
|
|
46
|
-
|
|
47
|
-
Remove separate verification tools. Instead, add `verify?: boolean` parameter to:
|
|
48
|
-
|
|
49
|
-
| Tool | Operation | Previous Tool |
|
|
50
|
-
|------|------------|----------------|
|
|
51
|
-
| `c64_memory` | `write` | `verify_and_write_memory` |
|
|
52
|
-
| `c64_sound` | `silence_all` | `silence_and_verify` |
|
|
53
|
-
| `c64_disk` | `mount` | `drive_mount_and_verify` |
|
|
54
|
-
| `c64_program` | `upload_run_basic`, `upload_run_asm` | `compile_run_verify_cycle` |
|
|
55
|
-
|
|
56
|
-
Each operation should check `args.verify === true` to trigger post-action verification.
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 4. Schema Specification
|
|
61
|
-
|
|
62
|
-
All grouped tools must define discriminated unions using `const` for clarity and LLM reliability.
|
|
63
|
-
|
|
64
|
-
Example:
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
parameters: {
|
|
68
|
-
oneOf: [
|
|
69
|
-
{
|
|
70
|
-
properties: {
|
|
71
|
-
op: { const: "read" },
|
|
72
|
-
address: { type: "integer" },
|
|
73
|
-
length: { type: "integer" }
|
|
74
|
-
},
|
|
75
|
-
required: ["op", "address", "length"]
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
properties: {
|
|
79
|
-
op: { const: "write" },
|
|
80
|
-
address: { type: "integer" },
|
|
81
|
-
data: { type: "string" },
|
|
82
|
-
verify: { type: "boolean", default: false }
|
|
83
|
-
},
|
|
84
|
-
required: ["op", "address", "data"]
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
properties: {
|
|
88
|
-
op: { const: "wait_for_text" },
|
|
89
|
-
pattern: { type: "string" },
|
|
90
|
-
timeout: { type: "integer", default: 2000 }
|
|
91
|
-
},
|
|
92
|
-
required: ["op", "pattern"]
|
|
93
|
-
}
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## 5. Documentation Generation
|
|
101
|
-
|
|
102
|
-
Update `scripts/generate-docs.ts` to:
|
|
103
|
-
|
|
104
|
-
- Detect grouped tools and list sub-operations in nested tables.
|
|
105
|
-
- Present the grouped tool suite in a single consolidated section.
|
|
106
|
-
- Add total summary line:
|
|
107
|
-
> “This MCP server exposes **12 grouped tools** (≈81 operations), **25 resources**, and **7 prompts**.”
|
|
108
|
-
- Show verification-enabled ops with `(verify)` suffix or a column note.
|
|
109
|
-
- Include per-tool schema references (`op` values) in the generated README.
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## 6. Discoverability and LLM Behavior
|
|
114
|
-
|
|
115
|
-
All LLM clients (OpenAI GPT-5, Anthropic Claude, Copilot Agents, MCP servers, etc.) automatically receive each tool’s full JSON schema.
|
|
116
|
-
|
|
117
|
-
- `enum` and `const` values for `op` make all operations **visible** in context.
|
|
118
|
-
- The LLM naturally selects the correct `op` based on intent.
|
|
119
|
-
- Discriminated `oneOf` schemas and `description` fields maximize precision.
|
|
120
|
-
- Verification and optional arguments remain self-documenting in schema.
|
|
121
|
-
|
|
122
|
-
This design conforms to **MCP JSON Schema 2020-12**, ensuring interoperability and zero regression in LLM comprehension.
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## 7. Implementation Checklist
|
|
127
|
-
|
|
128
|
-
- [ ] Add grouped tool definitions to `registry.ts`.
|
|
129
|
-
- [ ] Implement `dispatch` functions per tool based on `args.op`.
|
|
130
|
-
- [ ] Integrate `verify` parameter logic.
|
|
131
|
-
- [ ] Refactor and reuse existing validation code.
|
|
132
|
-
- [ ] Adjust `generate-docs.ts` to support grouped ops.
|
|
133
|
-
- [ ] Update README auto-generation section (`<!-- AUTO-GENERATED:MCP-DOCS-START -->`).
|
|
134
|
-
- [ ] Verify tests cover all grouped operations and shared validators.
|
|
135
|
-
- [ ] Add a changelog entry:
|
|
136
|
-
|
|
137
|
-
```markdown
|
|
138
|
-
## 0.x.x – MCP Tool Consolidation and Refactor
|
|
139
|
-
- Reduced 88 single-purpose tools to 12 grouped multi-operation tools.
|
|
140
|
-
- Dissolved meta category, redistributed operations contextually.
|
|
141
|
-
- Added verification parameters and discriminated JSON schemas.
|
|
142
|
-
- Split storage into c64_disk and c64_drive.
|
|
143
|
-
- Added c64_extract category and integrated background task operations into c64_system.
|
|
144
|
-
- Improved LLM discoverability and documentation generation.
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## 8. Final Tool Summary
|
|
150
|
-
|
|
151
|
-
| Tool | Purpose |
|
|
152
|
-
|------|----------|
|
|
153
|
-
| `c64_program` | Program upload, run, and batch workflows |
|
|
154
|
-
| `c64_memory` | Memory I/O, screen reading, and verification |
|
|
155
|
-
| `c64_sound` | SID synthesis, playback, and analysis |
|
|
156
|
-
| `c64_system` | Reset, reboot, power control, menu button, and background tasks |
|
|
157
|
-
| `c64_graphics` | PETSCII, sprite, and bitmap generation |
|
|
158
|
-
| `c64_rag` | BASIC and assembly reference retrieval |
|
|
159
|
-
| `c64_disk` | Disk and image management |
|
|
160
|
-
| `c64_drive` | Drive configuration and power control |
|
|
161
|
-
| `c64_printer` | Commodore and Epson printer workflows |
|
|
162
|
-
| `c64_config` | Configuration, debug register, firmware info, and snapshots |
|
|
163
|
-
| `c64_extract` | Sprite, charset, memory, and diagnostics extraction |
|
|
164
|
-
| `c64_stream` | Streaming and monitoring APIs |
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
**Deliverable:**
|
|
169
|
-
A fully functioning TypeScript MCP server exposing 12 grouped tools with discriminated schemas, `verify` parameters, and automatic documentation, fully aligned with the Model Context Protocol SDK and discoverable by all LLM-based MCP clients.
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# Tool Consolidation Rollout Plan
|
|
2
|
-
|
|
3
|
-
Purpose: Execute the grouped-tool refactor captured in `doc/tool-consolidation/plan.md`, reducing 88 single-purpose tools to 12 discriminated `c64.*` tools without disrupting the running MCP server. Follow this rollout sequentially; each checkbox item must succeed (code + docs + tests) before moving to the next.
|
|
4
|
-
|
|
5
|
-
## Required Reading (complete before any checkbox work)
|
|
6
|
-
|
|
7
|
-
- `doc/tool-consolidation/plan.md` — Grouped tool mapping, verification strategy, documentation updates.
|
|
8
|
-
- `doc/tool-consolidation/notes.md` — Working assumptions and acceptance criteria summary.
|
|
9
|
-
- `doc/developer.md` — Contribution workflow, test commands, documentation conventions.
|
|
10
|
-
- `scripts/generate-docs.ts` and `src/tools/registry/index.ts` — Current implementation details that will be refactored.
|
|
11
|
-
|
|
12
|
-
## Operator Rules (follow throughout)
|
|
13
|
-
|
|
14
|
-
- Process checklists strictly in order; do not tick an item until all preceding items are completed and green.
|
|
15
|
-
- After every checklist item, run `npm run check`. Proceed only if it passes.
|
|
16
|
-
- If `npm run check` fails:
|
|
17
|
-
- Attempt one focused fix.
|
|
18
|
-
- If still failing, revert the latest change, capture notes in a status log, and halt the rollout.
|
|
19
|
-
- Keep changes minimal and scoped to the current item; avoid opportunistic refactors unless explicitly required.
|
|
20
|
-
- When new behavior is introduced, add or update tests that cover both happy path and at least one error path.
|
|
21
|
-
- Update documentation concurrently with code so README/schemas never lag behind.
|
|
22
|
-
- Preserve MCP uptime: keep legacy tool names available (via shims) until the full consolidation is complete.
|
|
23
|
-
|
|
24
|
-
## Global Implementation Template (apply to every checklist item)
|
|
25
|
-
|
|
26
|
-
1. Review the referenced code paths and confirm prerequisites are in place.
|
|
27
|
-
2. Implement the minimal change set to satisfy the checklist item.
|
|
28
|
-
3. Extend or add tests that cover the updated functionality.
|
|
29
|
-
4. Refresh documentation, schemas, and TypeScript definitions as needed.
|
|
30
|
-
5. Run `npm run check` and ensure success before ticking the checkbox.
|
|
31
|
-
|
|
32
|
-
## Phase 0 — Rollout Initialization
|
|
33
|
-
|
|
34
|
-
- [x] Confirm all documents listed under “Required Reading” are reviewed and capture acceptance criteria in your own log or the shared notes file.
|
|
35
|
-
|
|
36
|
-
## Phase 1 — Foundation (Types, Registry, and Doc Scaffold)
|
|
37
|
-
|
|
38
|
-
- [x] Introduce shared discriminated-union types (`op`, `verify?`) and validation helpers in `src/tools/types.ts` (or adjacent modules); add unit tests covering schema construction.
|
|
39
|
-
- [x] Add grouped tool descriptors to `src/tools/registry/index.ts`, returning shims that still call the existing single-purpose handlers (no behavior change yet).
|
|
40
|
-
- [x] Update `scripts/update-readme.ts` to understand grouped tools and refresh the README so each `c64.*` entry lists its operations in a clear, structured table; add snapshot-style tests guarding the new output.
|
|
41
|
-
|
|
42
|
-
## Phase 2 — High-traffic Tool Migration (Program & Memory)
|
|
43
|
-
|
|
44
|
-
- [x] Implement `c64_program` dispatch logic, migrate legacy program runner handlers, and ensure compatibility stubs continue to export old tool IDs until rollout completion.
|
|
45
|
-
- [x] Implement `c64_memory` dispatch logic, integrating the `verify` option and consolidating screen read/wait operations; update associated tests.
|
|
46
|
-
- [x] Remove direct registration of legacy program/memory tools once grouped variants pass all tests and docs reference the new schema.
|
|
47
|
-
|
|
48
|
-
## Phase 3 — Audio, System, Graphics, Retrieval
|
|
49
|
-
|
|
50
|
-
- [x] Migrate SID/music operations into `c64_sound`, covering pipeline/analysis flows and the `verify` flag on `silence_all`; refresh audio tests. *(2025-10-31)*
|
|
51
|
-
- [x] Expand `c64_system` to include power/menu controls plus background task operations, ensuring pause/resume semantics remain unchanged. *(2025-11-01)*
|
|
52
|
-
- [x] Consolidate PETSCII/sprite helpers into `c64_graphics` (including the forthcoming bitmap generator hook) and move BASIC/ASM retrieval to `c64_rag`; update prompts/tests referencing these tools. *(2025-10-31)*
|
|
53
|
-
|
|
54
|
-
## Phase 4 — Storage & Peripheral Tools
|
|
55
|
-
|
|
56
|
-
- [x] Fold disk image/file workflows into `c64_disk`, unify mount verification, and update drive-mount tests. *(2025-11-02)*
|
|
57
|
-
- [x] Move drive ROM/mode/power handling into `c64_drive` with new dispatch tests ensuring IEC state remains stable. *(2025-11-02)*
|
|
58
|
-
- [x] Group printer helpers into `c64_printer`, validating datapath differences between Commodore and Epson flows. *(2025-11-02)*
|
|
59
|
-
|
|
60
|
-
## Phase 5 — Configuration, Extraction, Streaming
|
|
61
|
-
|
|
62
|
-
- [x] Combine config, debug register, info/version, snapshot, and shuffle operations into `c64_config`; refresh config integration tests. *(2025-10-31)*
|
|
63
|
-
- [x] Implement `c64_extract` for sprites, charset rips, memory dumps, filesystem stats, and firmware health; ensure outputs remain byte-for-byte compatible. *(2025-10-31)*
|
|
64
|
-
- [x] Port streaming operations into `c64_stream` and re-run streaming integration tests (or mocks) to confirm UDP setup remains intact. *(2025-10-31)*
|
|
65
|
-
|
|
66
|
-
## Phase 6 — Documentation, Schema, and Cleanup
|
|
67
|
-
|
|
68
|
-
- [x] Regenerate documentation so README and related markdown list the 12 grouped tools with nested operations and summary counts; verify `scripts/generate-docs.ts` remains idempotent. *(2025-10-31)*
|
|
69
|
-
- [x] Remove temporary compatibility shims and legacy tool exports; confirm MCP `list_tools` shows only the grouped suite. *(2025-10-31)*
|
|
70
|
-
- [x] Perform a manual MCP smoke test (`npm start`, `list_tools`, sample ops) to validate runtime behavior. *(2025-10-31 — executed with `timeout 8 npm start` for auto-shutdown)*
|
|
71
|
-
|
|
72
|
-
## Phase 7 — Release Polish
|
|
73
|
-
|
|
74
|
-
- [x] Add the consolidation changelog entry and update version metadata if required.
|
|
75
|
-
- [x] Run the full verification stack (`npm run check`, targeted e2e flows, documentation generation) and capture results for review.
|
|
76
|
-
- [x] Update any remaining prompts or resource cross-links that reference retired tool names.
|
|
77
|
-
|
|
78
|
-
## Done Definition
|
|
79
|
-
|
|
80
|
-
A checkbox may be ticked only when all of the following hold for that item:
|
|
81
|
-
|
|
82
|
-
- TypeScript builds without new errors.
|
|
83
|
-
- New or updated tests pass locally.
|
|
84
|
-
- `npm run check` has succeeded immediately after the change.
|
|
85
|
-
- Documentation and schemas reflect the change set.
|
|
86
|
-
- No subsequent checklist item has been started.
|
|
87
|
-
|
|
88
|
-
## Notes on Sequencing
|
|
89
|
-
|
|
90
|
-
- If a prerequisite gap is discovered, pause the rollout and document the issue rather than reordering tasks.
|
|
91
|
-
- Within each phase, tasks are ordered by dependency and expected impact; do not parallelize unless explicitly stated.
|
|
92
|
-
|
|
93
|
-
## Status Log
|
|
94
|
-
|
|
95
|
-
- *2025-10-31*: Phase 6 cleanup approved to proceed. Begin with documentation regeneration, then retire legacy shims, running `npm run check` after each focused change.
|
|
96
|
-
- *2025-10-31*: README regeneration rerun via `node scripts/invoke-bun.mjs scripts/update-readme.ts`; no diffs observed, doc automation confirmed idempotent.
|
|
97
|
-
- *2025-10-31*: Manual MCP smoke test completed via `timeout 8 npm start`; connectivity checks passed and timeout exit confirmed non-blocking workflow.
|
|
98
|
-
- *2025-10-31*: Legacy grouped-tool shims removed; registry now delegates via explicit handlers and no longer references legacy tool exports. `npm run test` and `npm run check` must remain green after this change.
|
|
99
|
-
- *2025-10-31*: Phase 7 release polish complete — added v0.7.0 changelog entry, bumped `package.json`/`mcp.json`, reran `npm run check`, rebuilt docs (`node scripts/invoke-bun.mjs scripts/update-readme.ts`), executed `LOGFILE=/tmp/mcp-check-local.log bash scripts/run-mcp-check.sh local 5`, and regenerated embeddings to ensure prompts/resources reference the grouped tool suite only.
|
|
100
|
-
|
|
101
|
-
## Post-Rollout Wrap-Up
|
|
102
|
-
|
|
103
|
-
- Record a short retrospective summarizing lessons learned, risks, and follow-up work (format/location at operator discretion).
|
|
104
|
-
- Share the retrospective with maintainers alongside the final change set to inform future MCP refactors.
|