@henols/c64-re-tools 0.2.3 → 0.2.4

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/bin/cli.mjs CHANGED
@@ -30,7 +30,9 @@ const PKG_ROOT = dirname(HERE);
30
30
  const SKILLS_SRC = join(PKG_ROOT, "skills");
31
31
 
32
32
  // The single version-resolution seam this repo maintains is
33
- // `src/mcp/vice/version.ts` (quick-260819-tsz, D-5). This package
33
+ // `src/mcp/vice/version.ts` -- one algorithm for resolving a VERSION
34
+ // template against a published version, kept in exactly one place after
35
+ // this repo once carried several independent copies of it. This package
34
36
  // deliberately does NOT import it: it ships without the seam file (its
35
37
  // `files[]` is `bin/`, `skills/`, `README.md`) and targets node >= 18, which
36
38
  // cannot type-strip the seam's `.ts` the way the vice-mcp package's own
@@ -42,12 +44,13 @@ const SKILLS_SRC = join(PKG_ROOT, "skills");
42
44
  // only ever published with a concrete version already stamped in. That
43
45
  // number is PRODUCED elsewhere: `scripts/version.mjs stamp` writes the
44
46
  // working-tree placeholder, and CI's `npm version` writes the real one at
45
- // publish time. Do not reimplement D-2's template-resolution rules here.
47
+ // publish time. Do not reimplement the seam's own VERSION-template
48
+ // parsing and prefix-resolution rules here.
46
49
  const SELF = readJson(join(PKG_ROOT, "package.json")) ?? {};
47
50
  const SELF_VERSION = typeof SELF.version === "string" ? SELF.version : "0.0.0";
48
51
  const MCP_PKG = "@henols/vice-mcp";
49
52
  // The dev placeholder every derived, publishable version string carries in
50
- // the working tree (R-2, quick-260819-tsz). Defined authoritatively as
53
+ // the working tree outside a stamped release. Defined authoritatively as
51
54
  // `DEV_PLACEHOLDER` in `src/mcp/vice/version.ts` -- repeated here as a
52
55
  // literal, NOT imported, because this package deliberately ships without
53
56
  // that seam file (see the comment above) and targets node >= 18, which
@@ -57,7 +60,7 @@ const MCP_PKG = "@henols/vice-mcp";
57
60
  // so a future edit to the seam's placeholder is not missed.
58
61
  const MCP_DEV_PLACEHOLDER = "0.0.0-dev";
59
62
  // Wire the project to the exact vice-mcp version this installer was built
60
- // against -- EXCEPT when run from an unstamped dev checkout (MED-3):
63
+ // against -- EXCEPT when run from an unstamped dev checkout:
61
64
  // `installer/package.json`'s dependency pin is the permanent working-tree
62
65
  // placeholder outside a CI-stamped publish job, and `@henols/vice-mcp` at
63
66
  // that literal version will never exist on the npm registry. Silently
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@henols/c64-re-tools",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Installer that adds the C64 reverse-engineering skills and the VICE emulator MCP server (@henols/vice-mcp) to a project.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -45,7 +45,7 @@
45
45
  "installer"
46
46
  ],
47
47
  "dependencies": {
48
- "@henols/vice-mcp": "0.2.3"
48
+ "@henols/vice-mcp": "0.2.4"
49
49
  },
50
50
  "scripts": {
51
51
  "sync-skills": "node scripts/sync-skills.mjs",
@@ -89,8 +89,8 @@ line comment. That is the only test; do not guess from the label name.
89
89
  list with `anno_get_cross_references` (a generous `max_results` — this is
90
90
  also the call that fills in "called from" when the entry is written up in
91
91
  Phase 2.2). Every one of these targets is a routine candidate **regardless
92
- of whether it carries any label at all**. `docs/phase45-wave0-
93
- measurements.md`'s own MEASUREMENT A found that a purely dxa/Ghidra-derived
92
+ of whether it carries any label at all**. A real measured derivation run
93
+ (dxa disassemble, then Ghidra import) found that a purely dxa/Ghidra-derived
94
94
  store carries ZERO labels of any shape — derivation writes typed ranges and
95
95
  cross-references, never names — so a queue built only from Candidate source
96
96
  B below finds nothing to do on such a store and silently reports a clean,
@@ -160,7 +160,7 @@ OS variable).
160
160
  per that data type's own schema distinction), OR referenced from a code
161
161
  range while NOT itself sitting inside one. Every one of these is a symbol
162
162
  candidate **regardless of whether it carries any label at all**.
163
- `docs/phase45-wave0-measurements.md`'s own MEASUREMENT A found that a
163
+ The same measured derivation run found that a
164
164
  purely dxa/Ghidra-derived store carries ZERO labels of any shape, so
165
165
  Candidate source B below finds nothing to do on such a store and silently
166
166
  reports a clean, empty queue on a program nothing has been named in yet.
@@ -75,13 +75,15 @@ export class MissingDisagreementInputError extends Error {
75
75
 
76
76
  /**
77
77
  * The frozen survivor prefix set, MIRRORED from
78
- * `src/mcp/vice/anno-cli.ts`'s own frozen set -- see
79
- * docs/phase45-wave0-measurements.md for the MEASURED label population this
80
- * was frozen against. Exported here, separately from the verb's own copy,
81
- * because this script's own tests must be able to assert on the predicate in
82
- * isolation, without a live store or a subprocess -- and because this
83
- * script's own header forbids it from reading a store directly, so it
84
- * cannot import the verb's copy through anything but a duplicate literal.
78
+ * `src/mcp/vice/anno-cli.ts`'s own frozen set -- frozen from a real
79
+ * derivation run (dxa disassemble, then Ghidra import) that measured ZERO
80
+ * labels written by import alone, confirming the eleven prefixes had
81
+ * nothing populated to positively test against rather than contradicting
82
+ * them. Exported here, separately from the verb's own copy, because this
83
+ * script's own tests must be able to assert on the predicate in isolation,
84
+ * without a live store or a subprocess -- and because this script's own
85
+ * header forbids it from reading a store directly, so it cannot import the
86
+ * verb's copy through anything but a duplicate literal.
85
87
  *
86
88
  * WHAT NOT TO DO: if the frozen set in `anno-cli.ts` ever changes, this copy
87
89
  * moves in the SAME commit, or the two renderers silently disagree about