@senpi/runtime 3.0.72 → 3.0.74
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/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +6 -5
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/deploy/deadlines.d.ts +61 -1
- package/dist/deploy/deadlines.d.ts.map +1 -1
- package/dist/deploy/deadlines.js +85 -2
- package/dist/deploy/deadlines.js.map +1 -1
- package/dist/deploy/funding.d.ts +38 -0
- package/dist/deploy/funding.d.ts.map +1 -1
- package/dist/deploy/funding.js +39 -0
- package/dist/deploy/funding.js.map +1 -1
- package/dist/deploy/job.d.ts.map +1 -1
- package/dist/deploy/job.js +7 -1
- package/dist/deploy/job.js.map +1 -1
- package/dist/deploy/messages.d.ts +603 -0
- package/dist/deploy/messages.d.ts.map +1 -0
- package/dist/deploy/messages.js +1388 -0
- package/dist/deploy/messages.js.map +1 -0
- package/dist/deploy/orchestrator.d.ts +8 -0
- package/dist/deploy/orchestrator.d.ts.map +1 -1
- package/dist/deploy/orchestrator.js +146 -1211
- package/dist/deploy/orchestrator.js.map +1 -1
- package/dist/deploy/package.d.ts +89 -0
- package/dist/deploy/package.d.ts.map +1 -1
- package/dist/deploy/package.js +213 -25
- package/dist/deploy/package.js.map +1 -1
- package/dist/deploy/proof-gate.d.ts +4 -0
- package/dist/deploy/proof-gate.d.ts.map +1 -1
- package/dist/deploy/proof-gate.js +4 -0
- package/dist/deploy/proof-gate.js.map +1 -1
- package/dist/deploy/recheck-commands.d.ts.map +1 -1
- package/dist/deploy/recheck-commands.js +21 -3
- package/dist/deploy/recheck-commands.js.map +1 -1
- package/dist/deploy/register.d.ts +2 -0
- package/dist/deploy/register.d.ts.map +1 -1
- package/dist/deploy/register.js +23 -6
- package/dist/deploy/register.js.map +1 -1
- package/dist/deploy/taxonomy.d.ts +19 -0
- package/dist/deploy/taxonomy.d.ts.map +1 -1
- package/dist/deploy/taxonomy.js +28 -0
- package/dist/deploy/taxonomy.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +230 -176
- package/dist/index.js.map +1 -1
- package/dist/runtime/env-resolve.d.ts +13 -0
- package/dist/runtime/env-resolve.d.ts.map +1 -1
- package/dist/runtime/env-resolve.js +14 -1
- package/dist/runtime/env-resolve.js.map +1 -1
- package/dist/runtime/runtime-schema.d.ts +100 -100
- package/dist/scanners/external/scaffold/preflight.py +39 -0
- package/dist/telemetry/metrics.d.ts +7 -0
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +7 -0
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/validate/codes.d.ts +10 -0
- package/dist/validate/codes.d.ts.map +1 -1
- package/dist/validate/codes.js +38 -1
- package/dist/validate/codes.js.map +1 -1
- package/dist/validate/live-stage.d.ts +8 -0
- package/dist/validate/live-stage.d.ts.map +1 -1
- package/dist/validate/live-stage.js +87 -18
- package/dist/validate/live-stage.js.map +1 -1
- package/dist/validate/package-gates-stage.d.ts +61 -0
- package/dist/validate/package-gates-stage.d.ts.map +1 -0
- package/dist/validate/package-gates-stage.js +215 -0
- package/dist/validate/package-gates-stage.js.map +1 -0
- package/dist/validate/run.d.ts +24 -1
- package/dist/validate/run.d.ts.map +1 -1
- package/dist/validate/run.js +51 -4
- package/dist/validate/run.js.map +1 -1
- package/dist/validate/taxonomy-finding.d.ts +22 -0
- package/dist/validate/taxonomy-finding.d.ts.map +1 -0
- package/dist/validate/taxonomy-finding.js +25 -0
- package/dist/validate/taxonomy-finding.js.map +1 -0
- package/dist/validate/universe-stage.d.ts.map +1 -1
- package/dist/validate/universe-stage.js +2 -20
- package/dist/validate/universe-stage.js.map +1 -1
- package/dist/validate/wallet-binding-stage.d.ts +44 -0
- package/dist/validate/wallet-binding-stage.d.ts.map +1 -0
- package/dist/validate/wallet-binding-stage.js +92 -0
- package/dist/validate/wallet-binding-stage.js.map +1 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The package-derivable gates `senpi deploy` refuses on, asked at validate's STATIC depth.
|
|
3
|
+
*
|
|
4
|
+
* Deploy's pre-money block decides four things from the package's own bytes: an instance with no
|
|
5
|
+
* DSL exit, a scanner declaring an unsupported `enabled` key, a mixed-case package id, and two
|
|
6
|
+
* instances sharing one recipe directory. None of them can change between a validation and a
|
|
7
|
+
* deploy — unlike the universe check, whose TOCTOU justification is spelled out in `proof-gate.ts`
|
|
8
|
+
* — so validate reporting green on bytes deploy rejects is not a race, it is a divergence. The
|
|
9
|
+
* author would first learn about a package-derivable fault from the money path, which is what
|
|
10
|
+
* `senpi validate` exists to prevent (`wallet-binding-stage.ts` made this move first, for the
|
|
11
|
+
* binding gate; this is the rest of the set).
|
|
12
|
+
*
|
|
13
|
+
* Each refusal these mirror also tells its reader to run `openclaw senpi validate` — so without
|
|
14
|
+
* this module, following a deploy refusal's own instruction returns PASS and disproves the refusal
|
|
15
|
+
* that emitted it.
|
|
16
|
+
*
|
|
17
|
+
* ## Why STATIC depth
|
|
18
|
+
*
|
|
19
|
+
* Every check here reads the package's own bytes and nothing else: no exchange, no gateway, no
|
|
20
|
+
* credentials. That puts them at the shallowest depth, where `depthsUpTo` runs them at every depth
|
|
21
|
+
* above — so an offline CI run with no MCP server reachable still catches them. None of them halts
|
|
22
|
+
* the deeper stages (`NON_HALTING_CODES` in `run.ts`): a package that cannot be funded is still a
|
|
23
|
+
* package whose scanner an author is entitled to import and tick.
|
|
24
|
+
*
|
|
25
|
+
* ## Two checks read the config, two read the package
|
|
26
|
+
*
|
|
27
|
+
* The DSL-exit and scanner-`enabled` faults live in the recipe, so they are asked of the config
|
|
28
|
+
* `collectRecipeFindings` has already parsed. That covers a recipe with no manifest around it yet
|
|
29
|
+
* — the mid-authoring case deploy cannot see at all — and it means neither check can throw on a
|
|
30
|
+
* recipe that does not parse: `config` is `undefined` there, and the YAML-syntax gate already owns
|
|
31
|
+
* that fault and words it properly. The id-case and directory-collision faults live in the
|
|
32
|
+
* manifest, so they need `target.pkg` and are silent without one.
|
|
33
|
+
*
|
|
34
|
+
* ## Scoped to the recipe being validated
|
|
35
|
+
*
|
|
36
|
+
* `target.ts` resolves a package ROOT to a refusal ("pick an instance"), so every run that reaches
|
|
37
|
+
* here is about exactly one recipe. Reporting a sibling instance's fault would be telling the
|
|
38
|
+
* author to edit a file this command did not look at — the rule `wallet-binding-stage.ts` states.
|
|
39
|
+
* The id-case check is the deliberate exception: the id belongs to the package, so it is this
|
|
40
|
+
* recipe's problem too, and its fix is one edit in a file the author already has open.
|
|
41
|
+
*
|
|
42
|
+
* ## An unreadable manifest is silent here, deliberately
|
|
43
|
+
*
|
|
44
|
+
* Same call `wallet-binding-stage.ts` makes, for the same reason. When `target.packageUnreadable`
|
|
45
|
+
* is set, `target.pkg` is absent and the two package-level checks go quiet — but that is not
|
|
46
|
+
* failing open: `target.ts` raises `E_VALIDATE_UNREADABLE_MANIFEST` at the package root, the
|
|
47
|
+
* universe check reports the same unreadable file below it, and no reading of a manifest nobody
|
|
48
|
+
* can read could clear a package for funding. A third voice on one fault is noise.
|
|
49
|
+
*/
|
|
50
|
+
import type { RuntimeConfig } from "../runtime/runtime-schema.js";
|
|
51
|
+
import type { ResolvedTarget } from "./target.js";
|
|
52
|
+
import type { Finding } from "./types.js";
|
|
53
|
+
/**
|
|
54
|
+
* The checks, as findings.
|
|
55
|
+
*
|
|
56
|
+
* `config` is `undefined` when the recipe did not parse or failed the schema; both faults are
|
|
57
|
+
* already reported by the recipe checks, and every question below would be asked of a shape that
|
|
58
|
+
* was never established.
|
|
59
|
+
*/
|
|
60
|
+
export declare function packageGateFindings(target: ResolvedTarget, config: RuntimeConfig | undefined): Finding[];
|
|
61
|
+
//# sourceMappingURL=package-gates-stage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-gates-stage.d.ts","sourceRoot":"","sources":["../../src/validate/package-gates-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAYH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkB1C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,aAAa,GAAG,SAAS,GAChC,OAAO,EAAE,CA8BX"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The package-derivable gates `senpi deploy` refuses on, asked at validate's STATIC depth.
|
|
3
|
+
*
|
|
4
|
+
* Deploy's pre-money block decides four things from the package's own bytes: an instance with no
|
|
5
|
+
* DSL exit, a scanner declaring an unsupported `enabled` key, a mixed-case package id, and two
|
|
6
|
+
* instances sharing one recipe directory. None of them can change between a validation and a
|
|
7
|
+
* deploy — unlike the universe check, whose TOCTOU justification is spelled out in `proof-gate.ts`
|
|
8
|
+
* — so validate reporting green on bytes deploy rejects is not a race, it is a divergence. The
|
|
9
|
+
* author would first learn about a package-derivable fault from the money path, which is what
|
|
10
|
+
* `senpi validate` exists to prevent (`wallet-binding-stage.ts` made this move first, for the
|
|
11
|
+
* binding gate; this is the rest of the set).
|
|
12
|
+
*
|
|
13
|
+
* Each refusal these mirror also tells its reader to run `openclaw senpi validate` — so without
|
|
14
|
+
* this module, following a deploy refusal's own instruction returns PASS and disproves the refusal
|
|
15
|
+
* that emitted it.
|
|
16
|
+
*
|
|
17
|
+
* ## Why STATIC depth
|
|
18
|
+
*
|
|
19
|
+
* Every check here reads the package's own bytes and nothing else: no exchange, no gateway, no
|
|
20
|
+
* credentials. That puts them at the shallowest depth, where `depthsUpTo` runs them at every depth
|
|
21
|
+
* above — so an offline CI run with no MCP server reachable still catches them. None of them halts
|
|
22
|
+
* the deeper stages (`NON_HALTING_CODES` in `run.ts`): a package that cannot be funded is still a
|
|
23
|
+
* package whose scanner an author is entitled to import and tick.
|
|
24
|
+
*
|
|
25
|
+
* ## Two checks read the config, two read the package
|
|
26
|
+
*
|
|
27
|
+
* The DSL-exit and scanner-`enabled` faults live in the recipe, so they are asked of the config
|
|
28
|
+
* `collectRecipeFindings` has already parsed. That covers a recipe with no manifest around it yet
|
|
29
|
+
* — the mid-authoring case deploy cannot see at all — and it means neither check can throw on a
|
|
30
|
+
* recipe that does not parse: `config` is `undefined` there, and the YAML-syntax gate already owns
|
|
31
|
+
* that fault and words it properly. The id-case and directory-collision faults live in the
|
|
32
|
+
* manifest, so they need `target.pkg` and are silent without one.
|
|
33
|
+
*
|
|
34
|
+
* ## Scoped to the recipe being validated
|
|
35
|
+
*
|
|
36
|
+
* `target.ts` resolves a package ROOT to a refusal ("pick an instance"), so every run that reaches
|
|
37
|
+
* here is about exactly one recipe. Reporting a sibling instance's fault would be telling the
|
|
38
|
+
* author to edit a file this command did not look at — the rule `wallet-binding-stage.ts` states.
|
|
39
|
+
* The id-case check is the deliberate exception: the id belongs to the package, so it is this
|
|
40
|
+
* recipe's problem too, and its fix is one edit in a file the author already has open.
|
|
41
|
+
*
|
|
42
|
+
* ## An unreadable manifest is silent here, deliberately
|
|
43
|
+
*
|
|
44
|
+
* Same call `wallet-binding-stage.ts` makes, for the same reason. When `target.packageUnreadable`
|
|
45
|
+
* is set, `target.pkg` is absent and the two package-level checks go quiet — but that is not
|
|
46
|
+
* failing open: `target.ts` raises `E_VALIDATE_UNREADABLE_MANIFEST` at the package root, the
|
|
47
|
+
* universe check reports the same unreadable file below it, and no reading of a manifest nobody
|
|
48
|
+
* can read could clear a package for funding. A third voice on one fault is noise.
|
|
49
|
+
*/
|
|
50
|
+
import { dirname, isAbsolute, join, relative } from "node:path";
|
|
51
|
+
import { hasDslExitBlock, lowercasePackageIdFix, nonLowercasePackageId, renderScannerEnabledLine, scannerEnabledEntries, } from "../deploy/package.js";
|
|
52
|
+
import { collidingInstanceDirs } from "../deploy/proof-gate.js";
|
|
53
|
+
import { VALIDATE_CODE } from "./codes.js";
|
|
54
|
+
import { taxonomyFinding } from "./taxonomy-finding.js";
|
|
55
|
+
/**
|
|
56
|
+
* Package-relative where it sits underneath, absolute only where it genuinely sits outside.
|
|
57
|
+
*
|
|
58
|
+
* `wallet-binding-stage.ts` renders the same way, but with one difference that matters here: there,
|
|
59
|
+
* the target is a recipe FILE and can never equal the package directory, so its `rel === ""` branch
|
|
60
|
+
* is unreachable. Here the collision check passes a DIRECTORY, and on a flat package that directory
|
|
61
|
+
* IS the package root — the canonical collision this gate exists for. Falling through to `absolute`
|
|
62
|
+
* would print a machine-local `/var/folders/…` path into a finding whose sibling lines are all
|
|
63
|
+
* package-relative.
|
|
64
|
+
*/
|
|
65
|
+
function asPath(base, absolute) {
|
|
66
|
+
const rel = relative(base, absolute);
|
|
67
|
+
if (rel === "")
|
|
68
|
+
return ".";
|
|
69
|
+
return rel.startsWith("..") || isAbsolute(rel) ? absolute : rel;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The checks, as findings.
|
|
73
|
+
*
|
|
74
|
+
* `config` is `undefined` when the recipe did not parse or failed the schema; both faults are
|
|
75
|
+
* already reported by the recipe checks, and every question below would be asked of a shape that
|
|
76
|
+
* was never established.
|
|
77
|
+
*/
|
|
78
|
+
export function packageGateFindings(target, config) {
|
|
79
|
+
const findings = [];
|
|
80
|
+
const base = target.pkg?.dir ?? target.baseDir ?? "";
|
|
81
|
+
if (config !== undefined) {
|
|
82
|
+
if (!hasDslExitBlock(config))
|
|
83
|
+
findings.push(noDslExitFinding(target, base, config));
|
|
84
|
+
for (const entry of scannerEnabledEntries(config)) {
|
|
85
|
+
findings.push(scannerEnabledFinding(entry, target, base));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// The one check here that is about the PACKAGE rather than this recipe. It is still this recipe's
|
|
89
|
+
// problem — every wallet the package funds carries the mis-cased stamp — and its fix is one edit
|
|
90
|
+
// in a file the author already has open, so the rule against reporting a sibling's fault does not
|
|
91
|
+
// reach it.
|
|
92
|
+
const pkg = target.pkg;
|
|
93
|
+
if (pkg !== undefined && nonLowercasePackageId(pkg) !== null) {
|
|
94
|
+
findings.push(packageIdCaseFinding(pkg, base));
|
|
95
|
+
}
|
|
96
|
+
// Only the collision this recipe is IN. Two siblings sharing some other directory is a real fault
|
|
97
|
+
// that this run did not look at, and sending an author to fix it here would be reporting on files
|
|
98
|
+
// outside the target.
|
|
99
|
+
if (pkg !== undefined && target.recipePath !== undefined) {
|
|
100
|
+
const dir = dirname(target.recipePath);
|
|
101
|
+
const collision = collidingInstanceDirs(pkg).find((c) => c.dir === dir);
|
|
102
|
+
if (collision !== undefined)
|
|
103
|
+
findings.push(instanceDirCollisionFinding(collision, pkg, base));
|
|
104
|
+
}
|
|
105
|
+
return findings;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Two states, two instructions — because the obvious single wording emits a duplicate YAML key.
|
|
109
|
+
*
|
|
110
|
+
* The predicate is "no DSL exit", not "no `exit:`". A recipe carrying `exit: { engine: sm_flip }`
|
|
111
|
+
* trips this gate with an `exit:` block plainly in the file, and "add an `exit:` block" would have
|
|
112
|
+
* an agent append a second top-level `exit:` — which YAML resolves as a duplicate key, not an
|
|
113
|
+
* override. This module's own test suite already records that hazard about a fixture; a refusal is
|
|
114
|
+
* not allowed to walk into it. The state is knowable from the config in hand, so it is read rather
|
|
115
|
+
* than assumed.
|
|
116
|
+
*/
|
|
117
|
+
function noDslExitFinding(target, base, config) {
|
|
118
|
+
const file = target.recipePath === undefined ? "this recipe" : asPath(base, target.recipePath);
|
|
119
|
+
const exit = config.exit;
|
|
120
|
+
const hasExitBlock = exit !== null && typeof exit === "object" && !Array.isArray(exit);
|
|
121
|
+
return taxonomyFinding(VALIDATE_CODE.noDslExit, {
|
|
122
|
+
where: { file, yaml_path: "exit" },
|
|
123
|
+
what: hasExitBlock
|
|
124
|
+
? "This recipe's `exit:` block names no DSL engine and no preset (`exit.dsl_preset`, or `exit.engine: dsl`)"
|
|
125
|
+
: "This recipe declares no `exit:` block at all",
|
|
126
|
+
why: "Every position it opens would run with nothing to close it: no fixed floor from " +
|
|
127
|
+
"`max_loss_pct`, no trailing floor, and no time-based cut. The strategy trades, reports " +
|
|
128
|
+
"healthy, and rides a position all the way back down. `senpi deploy` refuses to fund a " +
|
|
129
|
+
"package in this state before any money moves, and the skills-side `_pkg.validate` refuses " +
|
|
130
|
+
"to deploy one — this is that same rule, where the fix is still free.",
|
|
131
|
+
fix: (hasExitBlock
|
|
132
|
+
? `Inside the \`exit:\` block already in ${file}, either add a \`dsl_preset:\` map or set ` +
|
|
133
|
+
"`engine: dsl` to run the engine on its defaults. Edit that block — a second top-level " +
|
|
134
|
+
"`exit:` is a duplicate key, not an override."
|
|
135
|
+
: `Add an \`exit:\` block to ${file} — either \`exit.dsl_preset\` with a preset map, or ` +
|
|
136
|
+
"`exit.engine: dsl` to run the engine on its defaults.") +
|
|
137
|
+
" `openclaw senpi guide dsl` prints the preset fields and a known-good starting point.",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* One finding per offending entry, not one per package.
|
|
142
|
+
*
|
|
143
|
+
* `where.yaml_path` points at the exact entry, which is the validate idiom — `duplicateFindings`
|
|
144
|
+
* emits one per duplicate for the same reason. Deploy's single all-offenses refusal is the money
|
|
145
|
+
* path's idiom: it fires once, so it has to carry the whole package's work in one read.
|
|
146
|
+
*/
|
|
147
|
+
function scannerEnabledFinding(entry, target, base) {
|
|
148
|
+
const file = target.recipePath === undefined ? "this recipe" : asPath(base, target.recipePath);
|
|
149
|
+
return taxonomyFinding(VALIDATE_CODE.scannerEnabled, {
|
|
150
|
+
where: { file, yaml_path: `scanners.${entry.index}.enabled` },
|
|
151
|
+
what: `Scanner "${entry.scanner}" declares an \`enabled\` key, which the runtime never reads`,
|
|
152
|
+
why: "The engine derives a scanner's enabled state from the strategy's registration, not from the " +
|
|
153
|
+
"scanner entry: the scanner schema passes `enabled` through untyped and nothing forwards it. " +
|
|
154
|
+
"A scanner written `enabled: false` therefore registers ENABLED and ticks — the package " +
|
|
155
|
+
"would trade while its author believes it is switched off. Every value is reported, not just " +
|
|
156
|
+
"`false`: a `true` is just as unread, and accepting it would teach the next reader that the " +
|
|
157
|
+
"key works.",
|
|
158
|
+
fix: `Delete the line \`${renderScannerEnabledLine(entry.value)}\` from ${file}. To stop a ` +
|
|
159
|
+
"scanner running, remove its entry from `scanners:` entirely; to switch one off after " +
|
|
160
|
+
"install, use the runtime API (`disableScanner`). `senpi deploy` reads the same key and " +
|
|
161
|
+
"refuses to fund the package for the same reason.",
|
|
162
|
+
evidence: { scanner: entry.scanner, value: entry.value, file },
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
function packageIdCaseFinding(pkg, base) {
|
|
166
|
+
const fix = lowercasePackageIdFix(pkg.id, pkg.dir);
|
|
167
|
+
return taxonomyFinding(VALIDATE_CODE.packageIdCase, {
|
|
168
|
+
where: { file: asPath(base, join(pkg.dir, "strategy.yaml")), yaml_path: "id" },
|
|
169
|
+
what: `This package's strategy.yaml declares \`id: ${pkg.id}\`, which is not lowercase`,
|
|
170
|
+
why: "`senpi deploy` writes the id into each wallet's `skillName` attribution stamp VERBATIM at " +
|
|
171
|
+
"create, and the backend stores what it is given case-normalized — so a mixed-case id is " +
|
|
172
|
+
"stamped under one spelling and looked up under another. That is how `close.py` came to " +
|
|
173
|
+
'print "no OPEN strategies to close." over a live, funded, trading wallet.',
|
|
174
|
+
// The instruction comes from the shared producer, which emits the directory rename only when
|
|
175
|
+
// the directory IS this id in another case — lowercasing the id alone would otherwise trade
|
|
176
|
+
// this finding for an `id != package dir` refusal from the skills validator.
|
|
177
|
+
fix: `Lowercase it — ${fix.instruction}. \`senpi deploy\` refuses the same package for the same ` +
|
|
178
|
+
"reason, before any wallet exists to carry the wrong stamp.",
|
|
179
|
+
evidence: { id: pkg.id, expected: pkg.id.toLowerCase(), package_dir: pkg.dir },
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The collision as an END STATE, with no command.
|
|
184
|
+
*
|
|
185
|
+
* `buildInstanceDirCollisionRefusal` establishes why, and the reasoning holds here: the directories
|
|
186
|
+
* the fix describes do not exist yet, so any `openclaw senpi validate` path printed would be one
|
|
187
|
+
* the reader cannot run — and a bare `mv` of a recipe re-points its relative `scanners[].path` at a
|
|
188
|
+
* directory that is not there. Name what has to become true; emit no command whose preconditions
|
|
189
|
+
* this check cannot verify.
|
|
190
|
+
*/
|
|
191
|
+
function instanceDirCollisionFinding(collision, pkg, base) {
|
|
192
|
+
const names = collision.instances.map((inst) => inst.name);
|
|
193
|
+
const rows = collision.instances
|
|
194
|
+
.map((inst) => ` - "${inst.name}" → ${asPath(base, inst.runtimeYamlPath)}`)
|
|
195
|
+
.join("\n");
|
|
196
|
+
return taxonomyFinding(VALIDATE_CODE.instanceDirCollision, {
|
|
197
|
+
where: { file: asPath(base, collision.dir) },
|
|
198
|
+
what: `${names.length} instances keep their recipe in one directory ` +
|
|
199
|
+
`(${asPath(base, collision.dir)}):\n${rows}`,
|
|
200
|
+
why: "A proof lives BESIDE the recipe it is a claim about — one `.senpi-proof.json` per " +
|
|
201
|
+
"directory, naming the one recipe it was recorded for. Two recipes in one directory share a " +
|
|
202
|
+
"single proof file, and whichever validation ran last is the only one it describes. " +
|
|
203
|
+
"`senpi deploy` refuses the package rather than read that as evidence for both: the " +
|
|
204
|
+
"unproven recipe would ride its sibling's pass into funding.",
|
|
205
|
+
fix: "Each instance needs its own directory holding its own recipe, with its `runtime:` in " +
|
|
206
|
+
`${asPath(base, join(pkg.dir, "strategy.yaml"))} pointing there. Moving a recipe is not ` +
|
|
207
|
+
"enough on its own: a relative `scanners[].path` resolves against the directory the RECIPE " +
|
|
208
|
+
"is in, so a recipe that moves alone re-points every one of them at a directory that does " +
|
|
209
|
+
"not exist. Whether the tree it names moves with the recipe, is copied, or is referenced " +
|
|
210
|
+
"from both is a decision about this package — these instances share a directory today, so " +
|
|
211
|
+
"they may be sharing what is in it.",
|
|
212
|
+
evidence: { dir: asPath(base, collision.dir), instances: names },
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=package-gates-stage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-gates-stage.js","sourceRoot":"","sources":["../../src/validate/package-gates-stage.ts"],"names":[],"mappings":"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"}
|
package/dist/validate/run.d.ts
CHANGED
|
@@ -61,11 +61,34 @@ export interface ValidateResult {
|
|
|
61
61
|
proof_recorded?: boolean;
|
|
62
62
|
}
|
|
63
63
|
export declare function isImplemented(depth: Depth): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Static findings that do NOT stop the depths below them.
|
|
66
|
+
*
|
|
67
|
+
* The depth loop halts on error-severity findings because *"the next reads a shape this one could
|
|
68
|
+
* not establish"* — true of a recipe that will not parse or will not satisfy the schema, since
|
|
69
|
+
* every deeper stage starts from a parsed config. It is not true of every error: a package-level
|
|
70
|
+
* fault like a mixed-case id, or a recipe that ships no exit block, leaves the code just as
|
|
71
|
+
* importable and just as tickable as it was.
|
|
72
|
+
*
|
|
73
|
+
* That distinction is load-bearing for the authoring loop rather than cosmetic. `--stage import` is
|
|
74
|
+
* the taught write-time tool (`senpi-strategy-author/SKILL.md`: "Use it while you write, not only
|
|
75
|
+
* at the end"), and the interview it drives settles the exit block LAST — so a static error that
|
|
76
|
+
* halts on a half-written recipe takes the fast-feedback path away exactly when it is being used.
|
|
77
|
+
*
|
|
78
|
+
* A closed list rather than a severity sweep or a stage test, for the reason `install-gate.ts`
|
|
79
|
+
* keeps one: a rule that widens silently as checks are added is one that will one day let
|
|
80
|
+
* something through that nobody decided to let through. Adding a code here is a claim that the
|
|
81
|
+
* import and live stages can still say something true while this fault stands.
|
|
82
|
+
*/
|
|
83
|
+
export declare const NON_HALTING_CODES: ReadonlySet<string>;
|
|
84
|
+
/** True when at least one finding invalidates the depths after this one. */
|
|
85
|
+
export declare function haltsDeeperStages(findings: readonly Finding[]): boolean;
|
|
64
86
|
/**
|
|
65
87
|
* Validate, and report what it means.
|
|
66
88
|
*
|
|
67
89
|
* Stages short-circuit: a depth that produced an error stops the ones after it, because they would
|
|
68
|
-
* be reading a shape that was never established.
|
|
90
|
+
* be reading a shape that was never established — for the errors where that is actually so. See
|
|
91
|
+
* {@link NON_HALTING_CODES}.
|
|
69
92
|
*/
|
|
70
93
|
export declare function runValidation(options: ValidateOptions): Promise<ValidateResult>;
|
|
71
94
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"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"}
|
package/dist/validate/run.js
CHANGED
|
@@ -9,6 +9,8 @@ import { existsSync } from "node:fs";
|
|
|
9
9
|
import { dirname, relative, resolve } from "node:path";
|
|
10
10
|
import { VALIDATE_CODE } from "./codes.js";
|
|
11
11
|
import { universeFindings } from "./universe-stage.js";
|
|
12
|
+
import { packageGateFindings } from "./package-gates-stage.js";
|
|
13
|
+
import { walletBindingFindings } from "./wallet-binding-stage.js";
|
|
12
14
|
import { checkScanner, resolveRoot } from "./import-stage.js";
|
|
13
15
|
import { judgeTick, productionBudgetSeconds, runTick } from "./live-stage.js";
|
|
14
16
|
import { recordValidateRun } from "../telemetry/metrics.js";
|
|
@@ -68,11 +70,48 @@ const IMPLEMENTED = ["static", "import", "live"];
|
|
|
68
70
|
export function isImplemented(depth) {
|
|
69
71
|
return IMPLEMENTED.includes(depth);
|
|
70
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Static findings that do NOT stop the depths below them.
|
|
75
|
+
*
|
|
76
|
+
* The depth loop halts on error-severity findings because *"the next reads a shape this one could
|
|
77
|
+
* not establish"* — true of a recipe that will not parse or will not satisfy the schema, since
|
|
78
|
+
* every deeper stage starts from a parsed config. It is not true of every error: a package-level
|
|
79
|
+
* fault like a mixed-case id, or a recipe that ships no exit block, leaves the code just as
|
|
80
|
+
* importable and just as tickable as it was.
|
|
81
|
+
*
|
|
82
|
+
* That distinction is load-bearing for the authoring loop rather than cosmetic. `--stage import` is
|
|
83
|
+
* the taught write-time tool (`senpi-strategy-author/SKILL.md`: "Use it while you write, not only
|
|
84
|
+
* at the end"), and the interview it drives settles the exit block LAST — so a static error that
|
|
85
|
+
* halts on a half-written recipe takes the fast-feedback path away exactly when it is being used.
|
|
86
|
+
*
|
|
87
|
+
* A closed list rather than a severity sweep or a stage test, for the reason `install-gate.ts`
|
|
88
|
+
* keeps one: a rule that widens silently as checks are added is one that will one day let
|
|
89
|
+
* something through that nobody decided to let through. Adding a code here is a claim that the
|
|
90
|
+
* import and live stages can still say something true while this fault stands.
|
|
91
|
+
*/
|
|
92
|
+
export const NON_HALTING_CODES = new Set([
|
|
93
|
+
// A recipe with no exit block imports and ticks exactly as it would with one. The fault is about
|
|
94
|
+
// what happens to a POSITION, and no deeper stage opens one.
|
|
95
|
+
VALIDATE_CODE.noDslExit,
|
|
96
|
+
// An unread key changes nothing about whether the scanner imports or ticks — and the import
|
|
97
|
+
// stage is where an author finds out their scanner is broken.
|
|
98
|
+
VALIDATE_CODE.scannerEnabled,
|
|
99
|
+
// The id lives in the manifest, and the deeper stages never read it.
|
|
100
|
+
VALIDATE_CODE.packageIdCase,
|
|
101
|
+
// A shared directory is about which proof file speaks for which recipe. Neither the import stage
|
|
102
|
+
// nor the live stage reads a proof.
|
|
103
|
+
VALIDATE_CODE.instanceDirCollision,
|
|
104
|
+
]);
|
|
105
|
+
/** True when at least one finding invalidates the depths after this one. */
|
|
106
|
+
export function haltsDeeperStages(findings) {
|
|
107
|
+
return findings.some((f) => f.severity === "error" && !NON_HALTING_CODES.has(f.code));
|
|
108
|
+
}
|
|
71
109
|
/**
|
|
72
110
|
* Validate, and report what it means.
|
|
73
111
|
*
|
|
74
112
|
* Stages short-circuit: a depth that produced an error stops the ones after it, because they would
|
|
75
|
-
* be reading a shape that was never established.
|
|
113
|
+
* be reading a shape that was never established — for the errors where that is actually so. See
|
|
114
|
+
* {@link NON_HALTING_CODES}.
|
|
76
115
|
*/
|
|
77
116
|
export async function runValidation(options) {
|
|
78
117
|
const startedAt = Date.now();
|
|
@@ -131,8 +170,8 @@ async function runValidationInner(options) {
|
|
|
131
170
|
stagesRun.push(depth);
|
|
132
171
|
findings.push(...produced.findings);
|
|
133
172
|
// A depth that failed invalidates everything after it: the next reads a shape this one could
|
|
134
|
-
// not establish.
|
|
135
|
-
if (produced.findings
|
|
173
|
+
// not establish — but only for the findings that actually do. See `NON_HALTING_CODES`.
|
|
174
|
+
if (haltsDeeperStages(produced.findings))
|
|
136
175
|
break;
|
|
137
176
|
}
|
|
138
177
|
const result = assemble(target, stagesRun, findings, options, wallet, liveExecuted);
|
|
@@ -317,7 +356,15 @@ prior) {
|
|
|
317
356
|
content: target.recipeContent,
|
|
318
357
|
baseDir: target.baseDir,
|
|
319
358
|
});
|
|
320
|
-
|
|
359
|
+
// Package-derivable and needs no I/O, so these belong at the shallowest depth — which
|
|
360
|
+
// `depthsUpTo` then runs at every depth above. Deploy's copies of these gates are pre-money;
|
|
361
|
+
// without one here the author first learns about them from the money path, which is the
|
|
362
|
+
// divergence `senpi validate` exists to prevent.
|
|
363
|
+
const findings = [
|
|
364
|
+
...result.findings,
|
|
365
|
+
...walletBindingFindings(target),
|
|
366
|
+
...packageGateFindings(target, result.config),
|
|
367
|
+
];
|
|
321
368
|
// `--scanner` can only be checked once the recipe names its scanners.
|
|
322
369
|
if (options.scanner !== undefined && result.config !== undefined) {
|
|
323
370
|
const declared = (result.config.scanners ?? []).map((s) => s.name);
|
package/dist/validate/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAqB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAuB,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAA4B,MAAM,YAAY,CAAC;AA6DtF,yFAAyF;AACzF,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,oGAAoG;AACpG,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAE1C,gGAAgG;AAChG,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,SAAS,iBAAiB,CAAC,OAAgB;IACzC,OAAO;QACL,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,aAAa,EAAE;YACb,IAAI,EAAE,uDAAuD;YAC7D,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC7B,YAAY,EAAE,OAAO,CAAC,IAAI;YAC1B,oBAAoB,EAAE,OAAO,CAAC,GAAG;SAClC;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,cAAc,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,YAAY,GAA8D;IAC9E,MAAM,EAAE;QACN,MAAM,EAAE,mDAAmD;QAC3D,YAAY,EAAE,CAAC,6BAA6B,EAAE,wBAAwB,CAAC;KACxE;IACD,MAAM,EAAE;QACN,MAAM,EAAE,oEAAoE;QAC5E,YAAY,EAAE,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;KACjF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,+EAA+E;QACvF,YAAY,EAAE;YACZ,mEAAmE;YACnE,iCAAiC;SAClC;KACF;CACF,CAAC;AAEF,yEAAyE;AACzE,MAAM,WAAW,GAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEnE,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAS;IACpE,iGAAiG;IACjG,6DAA6D;IAC7D,aAAa,CAAC,SAAS;IACvB,4FAA4F;IAC5F,8DAA8D;IAC9D,aAAa,CAAC,cAAc;IAC5B,qEAAqE;IACrE,aAAa,CAAC,aAAa;IAC3B,iGAAiG;IACjG,oCAAoC;IACpC,aAAa,CAAC,oBAAoB;CACnC,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,QAA4B;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjD,4FAA4F;IAC5F,2EAA2E;IAC3E,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAwB;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO,iBAAiB,CAAC;YACvB,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,wCAAwC;YAChE,GAAG,EAAE,wFAAwF;YAC7F,GAAG,EAAE,sGAAsG;YAC3G,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GACd,OAAO,CAAC,OAAO,KAAK,SAAS;QAC3B,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;QACjH,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAE7F,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAEjC,8FAA8F;IAC9F,iGAAiG;IACjG,4FAA4F;IAC5F,iGAAiG;IACjG,qDAAqD;IACrD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,8FAA8F;IAC9F,6CAA6C;IAC7C,IAAI,MAAiC,CAAC;IACtC,IAAI,MAAkC,CAAC;IACvC,IAAI,YAAgC,CAAC;IACrC,IAAI,YAAY,GAAyB,EAAE,CAAC;IAE5C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,MAAM;QACjC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5D,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS;YAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC9E,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS;YAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC9E,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,6FAA6F;QAC7F,uFAAuF;QACvF,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM;IAClD,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAEpF,4FAA4F;IAC5F,8FAA8F;IAC9F,8EAA8E;IAC9E,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChF,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAC9C,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY;YACZ,MAAM;YACN,YAAY;SACb,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzC,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,MAAsB,EACtB,MAAiC,EACjC,IAAwB;IAExB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3E,6FAA6F;QAC7F,gGAAgG;QAChG,2FAA2F;QAC3F,+EAA+E;QAC/E,MAAM,UAAU,GACd,MAAM,CAAC,UAAU;YACjB,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;gBAC/D,CAAC,CAAC,uBAAuB;gBACzB,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;YACpE,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB;YAAE,SAAS;QAClD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,SAAS;QAE1D,MAAM,QAAQ,GAAI,OAA6B,CAAC,IAAI,CAAC;QACrD,MAAM,UAAU,GAAI,OAAmC,CAAC,UAAU,CAAC;QACnE,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS;QAEjE,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,6FAA6F;QAC7F,2CAA2C;QAC3C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QAEjC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,KAAY,EACZ,MAAsB,EACtB,OAAwB,EACxB,MAAiC;AACjC,sEAAsE;AACtE,KAAyB;IAQzB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/E,yFAAyF;QACzF,6DAA6D;QAC7D,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAErE,gGAAgG;QAChG,gGAAgG;QAChG,2FAA2F;QAC3F,2DAA2D;QAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,aAAa,CAAC,kBAAkB;wBACtC,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,OAAO;wBACd,QAAQ,EAAE,aAAa;wBACvB,IAAI,EAAE,gDAAgD;wBACtD,GAAG,EAAE,+IAA+I;wBACpJ,mFAAmF;wBACnF,wFAAwF;wBACxF,mFAAmF;wBACnF,GAAG,EAAE,+GAA+G;qBACrH;oBACD,GAAG,CAAC,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC7C;gBACD,YAAY,EAAE,CAAC;aAChB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC;YAC3B,QAAQ,EAAE,OAAO,CAAC,MAAM;YACxB,UAAU,EAAG,MAAM,EAAE,QAA4C,EAAE,MAAM;YACzE,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;SACnD,CAAC,CAAC;QAEH,+FAA+F;QAC/F,yFAAyF;QACzF,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,aAAa,CAAC,aAAa;wBACjC,QAAQ,EAAE,OAAO;wBACjB,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,SAAS;wBACnB,IAAI,EAAE,oDAAoD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;wBAChI,GAAG,EAAE,uIAAuI;wBAC5I,GAAG,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,qFAAqF;wBACtH,QAAQ,EAAE,EAAE,OAAO,EAAE;qBACtB;iBACF;gBACD,MAAM;aACP,CAAC;QACJ,CAAC;QACD,+FAA+F;QAC/F,6FAA6F;QAC7F,8FAA8F;QAE9F,wFAAwF;QACxF,8EAA8E;QAC9E,MAAM,aAAa,GAAG,KAAK;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;aAC7E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC;QAExB,MAAM,QAAQ,GAAc,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAyB,EAAE,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAEhE,CAAC;YACd,MAAM,eAAe,GAAG,QAAQ,EAAE,eAAqC,CAAC;YACxE,MAAM,eAAe,GAAI,QAAQ,EAAE,gBAAuC,IAAI,EAAE,CAAC;YACjF,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAE5E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;gBAC5B,OAAO;gBACP,MAAM;gBACN,cAAc,EAAE,eAAe;gBAC/B,eAAe;gBACf,4BAA4B,EACzB,QAAQ,EAAE,+BAAsD,IAAI,GAAG;gBAC1E,MAAM,EAAE,QAAQ,EAAE,MAA6C;gBAC/D,gBAAgB,EAAE,QAAQ,EAAE,kBAAyD;gBACrF,oBAAoB,EAAE,QAAQ,EAAE,uBAA6C;aAC9E,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CACX,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE;gBAC7B,aAAa;gBACb,MAAM,EAAE;oBACN,eAAe;oBACf,iBAAiB,EAAE,uBAAuB,CAAC,eAAe,EAAE,eAAe,CAAC;oBAC5E,qFAAqF;oBACrF,oFAAoF;oBACpF,QAAQ,EAAE,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;iBAChF;aACF,CAAC,CACH,CAAC;YACF,YAAY,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;gBAC/B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC;gBACvC,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAEhD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC1E,yFAAyF;QACzF,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QACzC,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IACH,sFAAsF;IACtF,6FAA6F;IAC7F,wFAAwF;IACxF,iDAAiD;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,MAAM,CAAC,QAAQ;QAClB,GAAG,qBAAqB,CAAC,MAAM,CAAC;QAChC,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KAC9C,CAAC;IAEF,sEAAsE;IACtE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,aAAa,CAAC,cAAc;gBAClC,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,0CAA0C,OAAO,CAAC,OAAO,GAAG;gBAClE,GAAG,EAAE,mFAAmF;gBACxF,GAAG,EACD,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,CAAC,8CAA8C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpG,CAAC,CAAC,6DAA6D;gBACnE,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAmB,EACnB,UAAgC,EAAE;IAElC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAEvD,8FAA8F;IAC9F,uFAAuF;IACvF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACjG,IAAI,eAAe;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAEhF,gGAAgG;IAChG,wFAAwF;IACxF,MAAM,YAAY,GAChB,MAAM,GAAG,CAAC;QACV,CAAC,CAAC,MAAM,IAAI,QAAQ,GAAG,CAAC,CAAC;QACzB,QAAQ;aACL,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;aACrC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,YAAY,CAAC,CAAC;IAEzD,IAAI,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACjF,OAAO,OAAO;QACZ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE;QACrD,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ,CACf,MAAsB,EACtB,SAAkB,EAClB,QAAmB,EACnB,OAAwB,EACxB,MAAuB,EACvB,YAAqB;IAErB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAErF,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,2FAA2F;IAC3F,2FAA2F;IAC3F,2FAA2F;IAC3F,gFAAgF;IAChF,oFAAoF;IACpF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC;IACvF,MAAM,MAAM,GACV,OAAO,KAAK,QAAQ,IAAI,QAAQ;QAC9B,CAAC,CAAC;YACE,MAAM,EAAE,uFAAuF;YAC/F,YAAY,EAAE;gBACZ,8DAA8D;gBAC9D,sBAAsB;aACvB;SACF;QACH,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,YAAY,KAAK,CAAC;YAC1C,CAAC,CAAC;gBACE,MAAM,EACJ,0IAA0I;gBAC5I,YAAY,EAAE;oBACZ,oDAAoD;oBACpD,iGAAiG;iBAClG;aACF;YACH,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS;gBAC1C,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;gBACrB,CAAC,CAAC,OAAO;oBACP,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;oBACvB,CAAC,CAAC,SAAS,CAAC;IAEpB,MAAM,KAAK,GAAiB;QAC1B,IAAI,EAAE,MAAM;YACV,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,4CAA4C;QAChD,QAAQ,EAAE;YACR,MAAM;YACN,QAAQ;YACR,UAAU,EAAE,SAAS;YACrB,MAAM;YACN,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/F;QACD,GAAG,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM;YAC9B,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,KAAK,UAAU;YACxB,CAAC,CAAC;gBACE,YAAY,EAAE,mFAAmF;gBACjG,oBAAoB,EAAE,2DAA2D;aAClF;YACH,CAAC,CAAC,OAAO,KAAK,MAAM;gBAClB,CAAC,CAAC;oBACE,YAAY,EAAE,GAAG,MAAM,SAAS,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/J,oBAAoB,EAAE,oDAAoD;iBAC3E;gBACH,CAAC,CAAC,EAAE,CAAC;KACV,CAAC;IAEF,sFAAsF;IACtF,MAAM,cAAc,GAClB,OAAO,KAAK,MAAM;QAClB,OAAO,CAAC,KAAK,KAAK,MAAM;QACxB,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,QAAQ,KAAK,IAAI;QACzB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1B,4FAA4F;QAC5F,4DAA4D;QAC5D,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC;IAElC,OAAO;QACL,OAAO;QACP,SAAS;QACT,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE;QACD,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,KAAK;QACpB,QAAQ;QACR,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAA6C,EAC7C,QAAiB;IAEjB,OAAO,QAAQ,IAAK,QAAQ,EAAE,eAAsC,IAAI,2BAA2B,CAAC;AACtG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACrE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,wFAAwF;IACxF,+FAA+F;IAC/F,kEAAkE;IAClE,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrG,IAAI,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A finding whose class comes from the taxonomy rather than from the call site.
|
|
3
|
+
*
|
|
4
|
+
* `severity`, `stage`, `actor` and `fix_kind` are all read from the table — the same rule
|
|
5
|
+
* `target.ts` follows and for the same reason: a `fix_kind` disagreeing with the table is a finding
|
|
6
|
+
* that routes wrong, and nothing in the suite compares a finding's metadata against the table, so a
|
|
7
|
+
* hand-written copy drifts silently. Here the values are stated once, in `codes.ts`.
|
|
8
|
+
*
|
|
9
|
+
* Extracted from `universe-stage.ts` and `wallet-binding-stage.ts`, which held byte-identical
|
|
10
|
+
* copies of it. A helper whose whole purpose is "do not hand-copy the metadata" should not itself
|
|
11
|
+
* be hand-copied into every new stage.
|
|
12
|
+
*/
|
|
13
|
+
import { type ValidateCode } from "./codes.js";
|
|
14
|
+
import type { Finding } from "./types.js";
|
|
15
|
+
export declare function taxonomyFinding(code: ValidateCode, parts: {
|
|
16
|
+
what: string;
|
|
17
|
+
why: string;
|
|
18
|
+
fix: string;
|
|
19
|
+
where?: Finding["where"];
|
|
20
|
+
evidence?: Record<string, unknown>;
|
|
21
|
+
}): Finding;
|
|
22
|
+
//# sourceMappingURL=taxonomy-finding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy-finding.d.ts","sourceRoot":"","sources":["../../src/validate/taxonomy-finding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,wBAAgB,eAAe,CAC7B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE;IACL,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GACA,OAAO,CAUT"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A finding whose class comes from the taxonomy rather than from the call site.
|
|
3
|
+
*
|
|
4
|
+
* `severity`, `stage`, `actor` and `fix_kind` are all read from the table — the same rule
|
|
5
|
+
* `target.ts` follows and for the same reason: a `fix_kind` disagreeing with the table is a finding
|
|
6
|
+
* that routes wrong, and nothing in the suite compares a finding's metadata against the table, so a
|
|
7
|
+
* hand-written copy drifts silently. Here the values are stated once, in `codes.ts`.
|
|
8
|
+
*
|
|
9
|
+
* Extracted from `universe-stage.ts` and `wallet-binding-stage.ts`, which held byte-identical
|
|
10
|
+
* copies of it. A helper whose whole purpose is "do not hand-copy the metadata" should not itself
|
|
11
|
+
* be hand-copied into every new stage.
|
|
12
|
+
*/
|
|
13
|
+
import { VALIDATE_CODE_META, severityOf } from "./codes.js";
|
|
14
|
+
export function taxonomyFinding(code, parts) {
|
|
15
|
+
const meta = VALIDATE_CODE_META[code];
|
|
16
|
+
return {
|
|
17
|
+
code,
|
|
18
|
+
severity: severityOf(code),
|
|
19
|
+
stage: meta.stage,
|
|
20
|
+
actor: meta.actor,
|
|
21
|
+
fix_kind: meta.fix_kind,
|
|
22
|
+
...parts,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=taxonomy-finding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy-finding.js","sourceRoot":"","sources":["../../src/validate/taxonomy-finding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAG/E,MAAM,UAAU,eAAe,CAC7B,IAAkB,EAClB,KAMC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;QAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,KAAK;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universe-stage.d.ts","sourceRoot":"","sources":["../../src/validate/universe-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAKH,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"universe-stage.d.ts","sourceRoot":"","sources":["../../src/validate/universe-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAKH,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAE7C,kEAAkE;AAClE,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,EAAE,CAAC,CAiDpB"}
|
|
@@ -47,26 +47,8 @@
|
|
|
47
47
|
import { isAbsolute, join, relative } from "node:path";
|
|
48
48
|
import { errorText } from "../deploy/error-text.js";
|
|
49
49
|
import { checkPackageUniverse, checkedTickerForms, } from "../universe/package-universe.js";
|
|
50
|
-
import { VALIDATE_CODE
|
|
51
|
-
|
|
52
|
-
* A finding whose class comes from the taxonomy rather than from this call site.
|
|
53
|
-
*
|
|
54
|
-
* `severity`, `stage`, `actor` and `fix_kind` are all read from the table — the same rule
|
|
55
|
-
* `target.ts` follows and for the same reason: a `fix_kind` disagreeing with the table is a finding
|
|
56
|
-
* that routes wrong, and nothing in the suite compares a finding's metadata against the table, so a
|
|
57
|
-
* hand-written copy drifts silently. Here the values are stated once, in `codes.ts`.
|
|
58
|
-
*/
|
|
59
|
-
function taxonomyFinding(code, parts) {
|
|
60
|
-
const meta = VALIDATE_CODE_META[code];
|
|
61
|
-
return {
|
|
62
|
-
code,
|
|
63
|
-
severity: severityOf(code),
|
|
64
|
-
stage: meta.stage,
|
|
65
|
-
actor: meta.actor,
|
|
66
|
-
fix_kind: meta.fix_kind,
|
|
67
|
-
...parts,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
50
|
+
import { VALIDATE_CODE } from "./codes.js";
|
|
51
|
+
import { taxonomyFinding } from "./taxonomy-finding.js";
|
|
70
52
|
/**
|
|
71
53
|
* The check, as findings. Called from the live depth; never from static or import.
|
|
72
54
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universe-stage.js","sourceRoot":"","sources":["../../src/validate/universe-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAInB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"universe-stage.js","sourceRoot":"","sources":["../../src/validate/universe-stage.ts"],"names":[],"mappings":"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"}
|