@henols/vice-mcp 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/anno-cli.ts +156 -158
- package/anno-confidence.ts +2 -2
- package/anno-derive.ts +6 -6
- package/anno-details.ts +4 -4
- package/anno-export-asm.ts +100 -101
- package/anno-graphics.ts +16 -16
- package/anno-hazard-report.ts +2 -2
- package/anno-import.ts +15 -15
- package/anno-index.ts +8 -8
- package/anno-join.ts +35 -35
- package/anno-memmap-render.ts +22 -21
- package/anno-provenance-ledger.ts +4 -4
- package/anno-regbits-gen.ts +13 -13
- package/anno-store-export.ts +11 -11
- package/anno-store.ts +139 -144
- package/anno-symbols.ts +7 -7
- package/anno-types.ts +55 -55
- package/package.json +1 -1
- package/resources/broker-control.mjs +85 -92
- package/resources/broker-epoch.mjs +6 -7
- package/resources/broker-kill.mjs +29 -30
- package/resources/broker-launch.mjs +352 -370
- package/resources/broker-state.mjs +9 -10
- package/resources/host-tool.mjs +636 -664
- package/resources/vice-broker.mjs +189 -191
- package/vice-broker-client.ts +98 -100
package/anno-confidence.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// anno-confidence.ts -- the ONE authoritative place in this repo for
|
|
2
|
+
// anno-confidence.ts -- the ONE authoritative place in this repo for the
|
|
3
3
|
// confidence-grade convention: a machine-readable bracket-token prefix inside
|
|
4
4
|
// an anno line comment (e.g. `[confirmed-code] observed executing at $0810`).
|
|
5
5
|
//
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// "reachable via a JSR, never run" -- that distinction is
|
|
11
11
|
// `memory-map.template.md`'s most deliberate feature, and its own text
|
|
12
12
|
// forbids promoting a row by editing its grade (re-verify and restate the
|
|
13
|
-
// evidence instead). Measured
|
|
13
|
+
// evidence instead). Measured: anno line comments persist through
|
|
14
14
|
// save/reload (`user_line_comments`), and both `anno_get_comments` and
|
|
15
15
|
// `anno_search_disassembly` (which searches comments by default) can filter
|
|
16
16
|
// on a leading token -- so "show me everything still [unknown]" is a real
|
package/anno-derive.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
// ON-DISK TRUTH that can disagree with the range table it came from".
|
|
22
22
|
// * `anno-types.ts`'s `XrefRow` type doc: "Only NON-DERIVABLE references live
|
|
23
23
|
// here".
|
|
24
|
-
// *
|
|
24
|
+
// * the derived-from-bytes byte-coverage census, whose whole
|
|
25
25
|
// discipline is that coverage is computed from bytes rather than recorded
|
|
26
26
|
// beside them.
|
|
27
27
|
//
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
// no index file, no memoised store column, no snapshot. That means: no SQL
|
|
58
58
|
// write statement, no `node:fs` write call, and no naming of the
|
|
59
59
|
// persistence builtin `node:sqlite` -- the store is reached ONLY through
|
|
60
|
-
// `anno-store.ts`'s own read entry points
|
|
60
|
+
// `anno-store.ts`'s own read entry points.
|
|
61
61
|
// - Never import `hostpath.ts`, `containerpath.ts` or `container-guard.mts`.
|
|
62
62
|
// This module is proxy-local; a host/container-translated path would point
|
|
63
63
|
// the derivation at bytes on the wrong side of the container boundary
|
|
64
|
-
// (
|
|
64
|
+
// (`hostpath-consumers.test.ts` names this module as forbidden).
|
|
65
65
|
// - Never add a second address parser, a second range validator or a second
|
|
66
66
|
// data-type vocabulary. `parseStoreAddress`, `assertRangeShape` and
|
|
67
67
|
// `assertDataType` are imported from `anno-types.ts` for exactly that
|
|
@@ -189,7 +189,7 @@ function currentCorpusByteCap(): number {
|
|
|
189
189
|
function assertImage(image: unknown): Uint8Array {
|
|
190
190
|
if (!(image instanceof Uint8Array)) {
|
|
191
191
|
throw new AnnoDeriveArgumentError(
|
|
192
|
-
'the program "image" must be a Uint8Array of the bytes to derive from -- the store holds NO program image
|
|
192
|
+
'the program "image" must be a Uint8Array of the bytes to derive from -- the store holds NO program image, so every ' +
|
|
193
193
|
"derived answer is computed from bytes the caller names.",
|
|
194
194
|
{ argument: "image", value: typeof image },
|
|
195
195
|
);
|
|
@@ -281,7 +281,7 @@ function referencedAddress(instruction: Instruction): number | undefined {
|
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
// ---------------------------------------------------------------------------
|
|
284
|
-
// Derived cross-references
|
|
284
|
+
// Derived cross-references
|
|
285
285
|
// ---------------------------------------------------------------------------
|
|
286
286
|
|
|
287
287
|
/** What `crossReferencesTo()` returns: the target, every address that reaches
|
|
@@ -363,7 +363,7 @@ export function crossReferencesTo(
|
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
// ---------------------------------------------------------------------------
|
|
366
|
-
// Search
|
|
366
|
+
// Search
|
|
367
367
|
// ---------------------------------------------------------------------------
|
|
368
368
|
|
|
369
369
|
/** The three corpora this surface has. Frozen and derived from, never
|
package/anno-details.ts
CHANGED
|
@@ -32,15 +32,15 @@
|
|
|
32
32
|
// - Never scan for the containing range with a start/end bracket comparison
|
|
33
33
|
// loop. `resolveAt()` over `paintIndexOf()` is the single arbiter --
|
|
34
34
|
// narrowest range wins, and among equally short ones the later-inserted one
|
|
35
|
-
// --
|
|
35
|
+
// -- cross-validated at all 65,536 addresses against an
|
|
36
36
|
// independently written implementation. A second lookup rule here would be
|
|
37
37
|
// a second answer, and the disagreement would be invisible because both
|
|
38
38
|
// look authoritative.
|
|
39
39
|
// - Never write anything. This module is on a read path and is held to
|
|
40
40
|
// `anno-derive.ts`'s never-cache rule by the same structural control: no
|
|
41
41
|
// SQL write verb, no filesystem write call, no persistence binding.
|
|
42
|
-
// - Never import `hostpath.ts`, `containerpath.ts` or `container-guard.mts`
|
|
43
|
-
//
|
|
42
|
+
// - Never import `hostpath.ts`, `containerpath.ts` or `container-guard.mts` --
|
|
43
|
+
// this composition is proxy-local.
|
|
44
44
|
// - Never return an empty array for something that could not be answered. A
|
|
45
45
|
// component with no answer comes back as `{available:false, reason}`, so an
|
|
46
46
|
// address that genuinely has no comments is distinguishable from a question
|
|
@@ -135,7 +135,7 @@ export function composeAddressDetails(
|
|
|
135
135
|
available: false,
|
|
136
136
|
reason:
|
|
137
137
|
`cross-references to ${hex4(at)} are DERIVED from program bytes on every query and no bytes were supplied: the store ` +
|
|
138
|
-
"holds no program image
|
|
138
|
+
"holds no program image, so this component is answerable only when the caller names the image it wants derived " +
|
|
139
139
|
"from. The stored non-derivable rows alone are readable through anno-store.ts's listXrefs.",
|
|
140
140
|
}
|
|
141
141
|
: { available: true, value: crossReferencesTo(handle, image, origin, at) };
|