@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`
|
|
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
|
|
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
|
|
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
|
|
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
|
+
"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.
|
|
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**.
|
|
93
|
-
|
|
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
|
-
|
|
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 --
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* script's own
|
|
84
|
-
*
|
|
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
|