@uwmd/core 1.7.0 → 1.8.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/dist/agents/bancroft.js +4 -1
- package/dist/agents/bancroft.js.map +1 -1
- package/dist/asset-class.d.ts +98 -0
- package/dist/asset-class.d.ts.map +1 -0
- package/dist/asset-class.js +226 -0
- package/dist/asset-class.js.map +1 -0
- package/dist/browser.d.ts +21 -7
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +22 -4
- package/dist/browser.js.map +1 -1
- package/dist/calc/errors.d.ts +1 -1
- package/dist/calc/errors.d.ts.map +1 -1
- package/dist/calc/errors.js.map +1 -1
- package/dist/calc/evaluator.js +25 -1
- package/dist/calc/evaluator.js.map +1 -1
- package/dist/calc/prng.d.ts +59 -0
- package/dist/calc/prng.d.ts.map +1 -0
- package/dist/calc/prng.js +181 -0
- package/dist/calc/prng.js.map +1 -0
- package/dist/calc/sensitivity.d.ts +76 -0
- package/dist/calc/sensitivity.d.ts.map +1 -0
- package/dist/calc/sensitivity.js +160 -0
- package/dist/calc/sensitivity.js.map +1 -0
- package/dist/calc/stochastic.d.ts +97 -0
- package/dist/calc/stochastic.d.ts.map +1 -0
- package/dist/calc/stochastic.js +265 -0
- package/dist/calc/stochastic.js.map +1 -0
- package/dist/cascade.d.ts.map +1 -1
- package/dist/cascade.js +8 -4
- package/dist/cascade.js.map +1 -1
- package/dist/cli-args.d.ts +37 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +93 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli.js +119 -72
- package/dist/cli.js.map +1 -1
- package/dist/editor.js +25 -6
- package/dist/editor.js.map +1 -1
- package/dist/index.d.ts +22 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -4
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +16 -4
- package/dist/init.js.map +1 -1
- package/dist/integrity-canonical.d.ts.map +1 -1
- package/dist/integrity-canonical.js +10 -2
- package/dist/integrity-canonical.js.map +1 -1
- package/dist/integrity.d.ts +92 -4
- package/dist/integrity.d.ts.map +1 -1
- package/dist/integrity.js +195 -9
- package/dist/integrity.js.map +1 -1
- package/dist/migrate-source-tags.d.ts +34 -0
- package/dist/migrate-source-tags.d.ts.map +1 -0
- package/dist/migrate-source-tags.js +179 -0
- package/dist/migrate-source-tags.js.map +1 -0
- package/dist/module-runtime.d.ts +57 -0
- package/dist/module-runtime.d.ts.map +1 -0
- package/dist/module-runtime.js +167 -0
- package/dist/module-runtime.js.map +1 -0
- package/dist/module-signing.d.ts +85 -0
- package/dist/module-signing.d.ts.map +1 -0
- package/dist/module-signing.js +136 -0
- package/dist/module-signing.js.map +1 -0
- package/dist/modules.d.ts +42 -0
- package/dist/modules.d.ts.map +1 -1
- package/dist/modules.js +124 -1
- package/dist/modules.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +27 -1
- package/dist/parser.js.map +1 -1
- package/dist/protocol.d.ts +191 -21
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +289 -32
- package/dist/protocol.js.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +9 -3
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +118 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +44 -0
- package/dist/types.js.map +1 -1
- package/dist/validator.d.ts +26 -2
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +201 -19
- package/dist/validator.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// Module manifest signatures (protocol §X.1, RFC 0002).
|
|
2
|
+
//
|
|
3
|
+
// A module manifest is executable surface: it declares calculations whose
|
|
4
|
+
// formulas the calc engine evaluates and validations that can flip a deal from
|
|
5
|
+
// blocking to advisory. A host that loads one from npm, a URL, or a colleague's
|
|
6
|
+
// directory has, without this, no way to ask "is this the manifest the author
|
|
7
|
+
// published?"
|
|
8
|
+
//
|
|
9
|
+
// The layering is the same one block signatures use, for the same reason. Core
|
|
10
|
+
// owns the crypto-free half — the canonical bytes a signature covers, the
|
|
11
|
+
// structural checks, and the verdict taxonomy — while the algorithms live in
|
|
12
|
+
// `@uwmd/signing` and arrive through an injected verifier. Reading and loading a
|
|
13
|
+
// module must never require cryptography.
|
|
14
|
+
//
|
|
15
|
+
// Advisory by design: the protocol fixes what "signature valid" *means* so two
|
|
16
|
+
// hosts agree, and leaves what to *do* about an unsigned or invalid module to
|
|
17
|
+
// host policy (§X.1.4).
|
|
18
|
+
import { canonicalizeExact } from './integrity-canonical.js';
|
|
19
|
+
import { UW_SIGNATURE_ALGORITHMS } from './types.js';
|
|
20
|
+
/** The one scheme protocol 1.x implements. See `ModuleSignature.scheme`. */
|
|
21
|
+
export const MODULE_SIGNATURE_SCHEME = 'uwmd-keystore';
|
|
22
|
+
/**
|
|
23
|
+
* The exact bytes a module signature covers: RFC 8785 canonical JSON of the
|
|
24
|
+
* manifest with `signature` removed.
|
|
25
|
+
*
|
|
26
|
+
* Removed rather than nulled, so that signing a manifest and then verifying it
|
|
27
|
+
* produce byte-identical input — the failure mode where a signature verifies
|
|
28
|
+
* before it is attached and not after.
|
|
29
|
+
*/
|
|
30
|
+
export function moduleSigningPayload(manifest) {
|
|
31
|
+
const { signature: _omitted, ...rest } = manifest;
|
|
32
|
+
return canonicalizeExact(rest);
|
|
33
|
+
}
|
|
34
|
+
const CODES = {
|
|
35
|
+
missing: 'PROTO-MOD-068',
|
|
36
|
+
unsupported_scheme: 'PROTO-MOD-069',
|
|
37
|
+
malformed: 'PROTO-MOD-070',
|
|
38
|
+
unknown_key: 'PROTO-MOD-071',
|
|
39
|
+
invalid: 'PROTO-MOD-072',
|
|
40
|
+
};
|
|
41
|
+
const REMEDIATIONS = {
|
|
42
|
+
missing: 'Sign the manifest, or relax the host policy to accept unsigned modules (signatures are advisory at the protocol level).',
|
|
43
|
+
unsupported_scheme: `Re-sign under the '${MODULE_SIGNATURE_SCHEME}' scheme, or use a host that implements the named scheme.`,
|
|
44
|
+
malformed: 'Re-sign the manifest; the signature object is not a well-formed ModuleSignature.',
|
|
45
|
+
unknown_key: 'Add the signing key to the host key store under that kid, or re-sign with a key the host trusts.',
|
|
46
|
+
invalid: 'The manifest changed after it was signed. Restore the published manifest, or re-sign the version you intend to ship.',
|
|
47
|
+
};
|
|
48
|
+
function fail(reason, message) {
|
|
49
|
+
return {
|
|
50
|
+
ok: false,
|
|
51
|
+
reason,
|
|
52
|
+
error: {
|
|
53
|
+
category: 'module',
|
|
54
|
+
code: CODES[reason],
|
|
55
|
+
message,
|
|
56
|
+
pointer: 'signature',
|
|
57
|
+
remediation: REMEDIATIONS[reason],
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Verify a module manifest's signature.
|
|
63
|
+
*
|
|
64
|
+
* The three refusals a host must keep apart are `missing` (nothing was
|
|
65
|
+
* claimed), `unknown_key` (something was claimed and this host cannot check
|
|
66
|
+
* it), and `invalid` (something was claimed and it is false). They call for
|
|
67
|
+
* three different responses — decide a policy, load a key, reject the module —
|
|
68
|
+
* and a verifier that reports them as one verdict makes all three
|
|
69
|
+
* indistinguishable at the point where the host has to act.
|
|
70
|
+
*/
|
|
71
|
+
export async function verifyModuleSignature(manifest, options = {}) {
|
|
72
|
+
const signature = manifest.signature;
|
|
73
|
+
if (signature === undefined) {
|
|
74
|
+
return fail('missing', `Module '${manifest.id}' carries no signature.`);
|
|
75
|
+
}
|
|
76
|
+
const structural = checkSignatureShape(signature);
|
|
77
|
+
if (structural)
|
|
78
|
+
return structural;
|
|
79
|
+
if (!options.verifier) {
|
|
80
|
+
return fail('unknown_key', `Module '${manifest.id}' is signed by key '${signature.kid}', but this host has no signature backend to check it with.`);
|
|
81
|
+
}
|
|
82
|
+
const verdict = await options.verifier.verify(moduleSigningPayload(manifest), signature);
|
|
83
|
+
if (!verdict.ok) {
|
|
84
|
+
if (verdict.reason === 'unknown_kid') {
|
|
85
|
+
return fail('unknown_key', `Module '${manifest.id}' is signed by key '${signature.kid}', which this host's key store does not hold.`);
|
|
86
|
+
}
|
|
87
|
+
return fail('invalid', `Module '${manifest.id}' signature did not verify (${verdict.reason}).`);
|
|
88
|
+
}
|
|
89
|
+
if (options.allowedIdentities) {
|
|
90
|
+
const identity = signature.identity;
|
|
91
|
+
if (identity === undefined || !options.allowedIdentities.includes(identity)) {
|
|
92
|
+
return fail('invalid', `Module '${manifest.id}' is validly signed by '${signature.kid}' but its identity ${identity === undefined ? 'is absent' : `'${identity}' is not`} on this host's allow-list.`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
ok: true,
|
|
97
|
+
kid: signature.kid,
|
|
98
|
+
...(signature.identity !== undefined ? { identity: signature.identity } : {}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Structural checks, run before any cryptography.
|
|
103
|
+
*
|
|
104
|
+
* Separated out because they are the part a host can run with no key store at
|
|
105
|
+
* all, and because a malformed signature deserves its own code: telling an
|
|
106
|
+
* author "this did not verify" when the real problem is a missing `signed_at`
|
|
107
|
+
* sends them looking for tampering that never happened.
|
|
108
|
+
*/
|
|
109
|
+
export function checkSignatureShape(signature) {
|
|
110
|
+
if (typeof signature !== 'object' || signature === null || Array.isArray(signature)) {
|
|
111
|
+
return fail('malformed', 'signature must be an object.');
|
|
112
|
+
}
|
|
113
|
+
const sig = signature;
|
|
114
|
+
if (sig['scheme'] !== MODULE_SIGNATURE_SCHEME) {
|
|
115
|
+
return fail('unsupported_scheme', `signature.scheme must be '${MODULE_SIGNATURE_SCHEME}' (got ${JSON.stringify(sig['scheme'])}).`);
|
|
116
|
+
}
|
|
117
|
+
if (typeof sig['alg'] !== 'string' ||
|
|
118
|
+
!UW_SIGNATURE_ALGORITHMS.includes(sig['alg'])) {
|
|
119
|
+
return fail('malformed', `signature.alg must be one of ${UW_SIGNATURE_ALGORITHMS.join(', ')}.`);
|
|
120
|
+
}
|
|
121
|
+
for (const key of ['kid', 'sig', 'signed_at']) {
|
|
122
|
+
if (typeof sig[key] !== 'string' || sig[key].length === 0) {
|
|
123
|
+
return fail('malformed', `signature.${key} must be a non-empty string.`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (sig['identity'] !== undefined && typeof sig['identity'] !== 'string') {
|
|
127
|
+
return fail('malformed', 'signature.identity, when present, must be a string.');
|
|
128
|
+
}
|
|
129
|
+
for (const key of Object.keys(sig)) {
|
|
130
|
+
if (!['scheme', 'alg', 'kid', 'sig', 'signed_at', 'identity'].includes(key)) {
|
|
131
|
+
return fail('malformed', `signature has unknown key '${key}'.`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=module-signing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-signing.js","sourceRoot":"","sources":["../src/module-signing.ts"],"names":[],"mappings":"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"}
|
package/dist/modules.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ModuleLoadResult, type ModuleManifest, type ProtocolError, type ViewerTier } from './protocol.js';
|
|
2
|
+
import { type ModuleSignatureVerifier } from './module-signing.js';
|
|
2
3
|
export interface ModuleRegistry {
|
|
3
4
|
modules: readonly ModuleManifest[];
|
|
4
5
|
byId: ReadonlyMap<string, ModuleManifest>;
|
|
@@ -11,14 +12,55 @@ export interface LoadModuleOptions {
|
|
|
11
12
|
formatVersion?: string;
|
|
12
13
|
alreadyLoaded?: readonly ModuleManifest[];
|
|
13
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* What a host does about module signatures (§X.1.4, RFC 0002).
|
|
17
|
+
*
|
|
18
|
+
* - `ignore` — do not look. The default, and what every host did before RFC
|
|
19
|
+
* 0002; a signature is carried through untouched.
|
|
20
|
+
* - `verify-if-present` — an unsigned module loads, but a *bad* signature
|
|
21
|
+
* refuses. The pragmatic setting during adoption: it never punishes an
|
|
22
|
+
* author who has not signed yet, and never lets a broken claim through.
|
|
23
|
+
* - `require` — an unsigned module refuses too.
|
|
24
|
+
*
|
|
25
|
+
* `verify-if-present` and `require` both refuse on `unknown_key`, and that is
|
|
26
|
+
* deliberate: a host that cannot check a signature has not established the
|
|
27
|
+
* module is safe, and treating "I have no key for this" as success would make
|
|
28
|
+
* the whole policy decorative.
|
|
29
|
+
*/
|
|
30
|
+
export type ModuleSignaturePolicy = 'ignore' | 'verify-if-present' | 'require';
|
|
31
|
+
export interface LoadModuleAsyncOptions extends LoadModuleOptions {
|
|
32
|
+
/** Defaults to `ignore`. */
|
|
33
|
+
signaturePolicy?: ModuleSignaturePolicy;
|
|
34
|
+
/** Supplied by `@uwmd/signing`. Absent under a checking policy means every signed module refuses. */
|
|
35
|
+
signatureVerifier?: ModuleSignatureVerifier;
|
|
36
|
+
/** Optional identity allow-list; see `VerifyModuleSignatureOptions`. */
|
|
37
|
+
allowedIdentities?: readonly string[];
|
|
38
|
+
}
|
|
14
39
|
export interface CreateModuleRegistryOptions extends LoadModuleOptions {
|
|
15
40
|
modules: readonly ModuleManifest[];
|
|
16
41
|
}
|
|
42
|
+
export interface CreateModuleRegistryAsyncOptions extends LoadModuleAsyncOptions {
|
|
43
|
+
modules: readonly ModuleManifest[];
|
|
44
|
+
}
|
|
17
45
|
export declare class ModuleRegistryError extends Error {
|
|
18
46
|
readonly errors: readonly ProtocolError[];
|
|
19
47
|
constructor(errors: readonly ProtocolError[]);
|
|
20
48
|
}
|
|
21
49
|
export declare function loadModuleManifest(candidate: unknown, opts?: LoadModuleOptions): ModuleLoadResult;
|
|
50
|
+
/**
|
|
51
|
+
* `loadModuleManifest` plus a signature-policy gate.
|
|
52
|
+
*
|
|
53
|
+
* Separate and async for the same reason `applyEditAsync` is: verification
|
|
54
|
+
* needs Web Crypto, which is async, and the synchronous loader is on a path
|
|
55
|
+
* plenty of hosts call where signatures are none of their business. A host that
|
|
56
|
+
* does not check signatures keeps the sync function and pays nothing.
|
|
57
|
+
*
|
|
58
|
+
* Structural validation runs first regardless of policy — a manifest that is
|
|
59
|
+
* not a valid manifest should say so, not report a signature problem.
|
|
60
|
+
*/
|
|
61
|
+
export declare function loadModuleManifestAsync(candidate: unknown, opts?: LoadModuleAsyncOptions): Promise<ModuleLoadResult>;
|
|
62
|
+
/** `createModuleRegistry` with the same signature-policy gate. */
|
|
63
|
+
export declare function createModuleRegistryAsync(opts: CreateModuleRegistryAsyncOptions): Promise<ModuleRegistry>;
|
|
22
64
|
export declare function createModuleRegistry(opts: CreateModuleRegistryOptions): ModuleRegistry;
|
|
23
65
|
export declare function getModuleCalculationsForAssetClass(registry: ModuleRegistry, asset_class: string): import("./protocol.js").ModuleCalcDecl[];
|
|
24
66
|
//# sourceMappingURL=modules.d.ts.map
|
package/dist/modules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAiE7B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC,CAAC;IAC7D,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACjE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,4BAA4B;IAC5B,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,gCAAiC,SAAQ,sBAAsB;IAC9E,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CACpC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;gBAE9B,MAAM,EAAE,SAAS,aAAa,EAAE;CAK7C;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,EAClB,IAAI,GAAE,iBAAsB,GAC3B,gBAAgB,CAMlB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,OAAO,EAClB,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED,kEAAkE;AAClE,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,GAAG,cAAc,CAoDtF;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,4CAKpB"}
|
package/dist/modules.js
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
import { parseExpression } from './calc/parser.js';
|
|
9
9
|
import { MAX_ROUND_TO } from './calc/quantize.js';
|
|
10
10
|
import { FORMAT_VERSION, PROTOCOL_VERSION, } from './protocol.js';
|
|
11
|
+
import { parseAssetClass } from './asset-class.js';
|
|
12
|
+
import { checkSignatureShape, verifyModuleSignature, } from './module-signing.js';
|
|
11
13
|
import { ASSET_CLASSES } from './types.js';
|
|
12
14
|
const TIERS = [
|
|
13
15
|
'tier-1-reader',
|
|
@@ -43,7 +45,8 @@ const MANIFEST_KEYS = [
|
|
|
43
45
|
'manifest_version', 'id', 'name', 'version', 'description', 'authors', 'license',
|
|
44
46
|
'requires_protocol', 'requires_format', 'requires_tier', 'asset_classes',
|
|
45
47
|
'deal_stages', 'sections', 'calculations', 'validations', 'thresholds',
|
|
46
|
-
'view_models', 'ui', 'agent_layers', 'depends_on',
|
|
48
|
+
'view_models', 'ui', 'agent_layers', 'depends_on', 'signature',
|
|
49
|
+
'declares_asset_classes',
|
|
47
50
|
];
|
|
48
51
|
const SECTION_KEYS = ['id', 'display_name', 'schema', 'required'];
|
|
49
52
|
const CALC_KEYS = ['id', 'label', 'formula', 'unit', 'round_to', 'deterministic'];
|
|
@@ -78,6 +81,48 @@ export function loadModuleManifest(candidate, opts = {}) {
|
|
|
78
81
|
? { ok: false, errors }
|
|
79
82
|
: { ok: true, manifest: freezeManifest(manifest), errors: [] };
|
|
80
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* `loadModuleManifest` plus a signature-policy gate.
|
|
86
|
+
*
|
|
87
|
+
* Separate and async for the same reason `applyEditAsync` is: verification
|
|
88
|
+
* needs Web Crypto, which is async, and the synchronous loader is on a path
|
|
89
|
+
* plenty of hosts call where signatures are none of their business. A host that
|
|
90
|
+
* does not check signatures keeps the sync function and pays nothing.
|
|
91
|
+
*
|
|
92
|
+
* Structural validation runs first regardless of policy — a manifest that is
|
|
93
|
+
* not a valid manifest should say so, not report a signature problem.
|
|
94
|
+
*/
|
|
95
|
+
export async function loadModuleManifestAsync(candidate, opts = {}) {
|
|
96
|
+
const base = loadModuleManifest(candidate, opts);
|
|
97
|
+
if (!base.ok || !base.manifest)
|
|
98
|
+
return base;
|
|
99
|
+
const policy = opts.signaturePolicy ?? 'ignore';
|
|
100
|
+
if (policy === 'ignore')
|
|
101
|
+
return base;
|
|
102
|
+
const manifest = base.manifest;
|
|
103
|
+
if (manifest.signature === undefined && policy === 'verify-if-present')
|
|
104
|
+
return base;
|
|
105
|
+
const verdict = await verifyModuleSignature(manifest, {
|
|
106
|
+
...(opts.signatureVerifier ? { verifier: opts.signatureVerifier } : {}),
|
|
107
|
+
...(opts.allowedIdentities ? { allowedIdentities: opts.allowedIdentities } : {}),
|
|
108
|
+
});
|
|
109
|
+
return verdict.ok ? base : { ok: false, errors: [verdict.error] };
|
|
110
|
+
}
|
|
111
|
+
/** `createModuleRegistry` with the same signature-policy gate. */
|
|
112
|
+
export async function createModuleRegistryAsync(opts) {
|
|
113
|
+
const errors = [];
|
|
114
|
+
for (const candidate of opts.modules) {
|
|
115
|
+
const result = await loadModuleManifestAsync(candidate, opts);
|
|
116
|
+
if (!result.ok)
|
|
117
|
+
errors.push(...result.errors);
|
|
118
|
+
}
|
|
119
|
+
// Refuse before building anything. A registry assembled from a set that
|
|
120
|
+
// included a module the policy rejects would be a registry the host was told
|
|
121
|
+
// not to have, whatever it did with the error list afterwards.
|
|
122
|
+
if (errors.length > 0)
|
|
123
|
+
throw new ModuleRegistryError(errors);
|
|
124
|
+
return createModuleRegistry(opts);
|
|
125
|
+
}
|
|
81
126
|
export function createModuleRegistry(opts) {
|
|
82
127
|
const loaded = [];
|
|
83
128
|
const errors = [];
|
|
@@ -152,6 +197,15 @@ function validateModuleManifest(manifest, opts) {
|
|
|
152
197
|
if (!Array.isArray(manifest.authors) || manifest.authors.length === 0 || !manifest.authors.every((a) => typeof a === 'string' && a.length > 0)) {
|
|
153
198
|
errors.push(moduleError('PROTO-MOD-005', 'Module authors must be a non-empty string array.', 'authors'));
|
|
154
199
|
}
|
|
200
|
+
// Shape-check `signature` regardless of policy. A host that ignores
|
|
201
|
+
// signatures still must not accept a manifest carrying a malformed one:
|
|
202
|
+
// "ignore" is a decision not to *verify*, not a licence to admit nonsense
|
|
203
|
+
// into a frozen manifest other code will read.
|
|
204
|
+
if (manifest.signature !== undefined) {
|
|
205
|
+
const shape = checkSignatureShape(manifest.signature);
|
|
206
|
+
if (shape)
|
|
207
|
+
errors.push(shape.error);
|
|
208
|
+
}
|
|
155
209
|
if (!TIERS.includes(manifest.requires_tier)) {
|
|
156
210
|
errors.push(moduleError('PROTO-MOD-006', 'Module requires_tier is not a valid viewer tier.', 'requires_tier'));
|
|
157
211
|
}
|
|
@@ -174,6 +228,7 @@ function validateModuleManifest(manifest, opts) {
|
|
|
174
228
|
}
|
|
175
229
|
}
|
|
176
230
|
}
|
|
231
|
+
validateDeclaredAssetClasses(errors, manifest);
|
|
177
232
|
if (manifest.deal_stages !== undefined) {
|
|
178
233
|
if (!Array.isArray(manifest.deal_stages)) {
|
|
179
234
|
errors.push(moduleError('PROTO-MOD-010', 'deal_stages must be an array.', 'deal_stages'));
|
|
@@ -564,6 +619,71 @@ function boundLength(errors, value, key, min, max) {
|
|
|
564
619
|
errors.push(moduleError('PROTO-MOD-065', `${key} must be between ${min} and ${max} characters (got ${value.length}).`, key));
|
|
565
620
|
}
|
|
566
621
|
}
|
|
622
|
+
const ASSET_CLASS_DECL_KEYS = [
|
|
623
|
+
'id', 'display_name', 'fallback', 'required_sections', 'optional_sections',
|
|
624
|
+
];
|
|
625
|
+
/**
|
|
626
|
+
* Validate `declares_asset_classes` (§X.2, RFC 0003).
|
|
627
|
+
*
|
|
628
|
+
* The identifier grammar is enforced here rather than only at document-parse
|
|
629
|
+
* time, so a module that would introduce an unusable class is refused at load
|
|
630
|
+
* — before any file references it and produces a confusing failure two layers
|
|
631
|
+
* away from the cause.
|
|
632
|
+
*/
|
|
633
|
+
function validateDeclaredAssetClasses(errors, manifest) {
|
|
634
|
+
const declarations = manifest.declares_asset_classes;
|
|
635
|
+
if (declarations === undefined)
|
|
636
|
+
return;
|
|
637
|
+
if (!Array.isArray(declarations)) {
|
|
638
|
+
errors.push(moduleError('PROTO-MOD-073', 'declares_asset_classes must be an array.', 'declares_asset_classes'));
|
|
639
|
+
return;
|
|
640
|
+
}
|
|
641
|
+
const seen = new Set();
|
|
642
|
+
for (const [idx, raw] of declarations.entries()) {
|
|
643
|
+
const pointer = `declares_asset_classes[${idx}]`;
|
|
644
|
+
if (!isRecord(raw)) {
|
|
645
|
+
errors.push(moduleError('PROTO-MOD-073', 'Each declaration must be an object.', pointer));
|
|
646
|
+
continue;
|
|
647
|
+
}
|
|
648
|
+
rejectUnknownKeys(errors, raw, ASSET_CLASS_DECL_KEYS, pointer);
|
|
649
|
+
const id = raw['id'];
|
|
650
|
+
if (typeof id !== 'string') {
|
|
651
|
+
errors.push(moduleError('PROTO-MOD-074', 'declaration id must be a string.', `${pointer}.id`));
|
|
652
|
+
}
|
|
653
|
+
else {
|
|
654
|
+
const identity = parseAssetClass(id);
|
|
655
|
+
if (!identity.ok) {
|
|
656
|
+
errors.push(moduleError('PROTO-MOD-074', identity.error.message, `${pointer}.id`));
|
|
657
|
+
}
|
|
658
|
+
else if (identity.kind === 'builtin') {
|
|
659
|
+
// Declaring a builtin is not an extension, it is a redefinition. The
|
|
660
|
+
// `asset_classes` field is how a module *enhances* one.
|
|
661
|
+
errors.push(moduleError('PROTO-MOD-074', `'${id}' is a builtin asset class; use asset_classes to enhance it rather than declares_asset_classes to redefine it.`, `${pointer}.id`));
|
|
662
|
+
}
|
|
663
|
+
else if (seen.has(id)) {
|
|
664
|
+
errors.push(moduleError('PROTO-MOD-075', `Asset class '${id}' is declared more than once by this module.`, `${pointer}.id`));
|
|
665
|
+
}
|
|
666
|
+
else {
|
|
667
|
+
seen.add(id);
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
if (typeof raw['display_name'] !== 'string' || raw['display_name'].length === 0) {
|
|
671
|
+
errors.push(moduleError('PROTO-MOD-076', 'declaration display_name must be a non-empty string.', `${pointer}.display_name`));
|
|
672
|
+
}
|
|
673
|
+
const fallback = raw['fallback'];
|
|
674
|
+
if (fallback !== undefined && !ASSET_CLASSES.includes(fallback)) {
|
|
675
|
+
errors.push(moduleError('PROTO-MOD-077', `declaration fallback must be a builtin asset class (got ${JSON.stringify(fallback)}).`, `${pointer}.fallback`));
|
|
676
|
+
}
|
|
677
|
+
for (const key of ['required_sections', 'optional_sections']) {
|
|
678
|
+
const value = raw[key];
|
|
679
|
+
if (value === undefined)
|
|
680
|
+
continue;
|
|
681
|
+
if (!Array.isArray(value) || !value.every((v) => typeof v === 'string' && v.length > 0)) {
|
|
682
|
+
errors.push(moduleError('PROTO-MOD-078', `${key} must be an array of non-empty section ids.`, `${pointer}.${key}`));
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
}
|
|
567
687
|
function freezeManifest(manifest) {
|
|
568
688
|
return Object.freeze({
|
|
569
689
|
...manifest,
|
|
@@ -576,6 +696,9 @@ function freezeManifest(manifest) {
|
|
|
576
696
|
view_models: manifest.view_models ? Object.freeze([...manifest.view_models]) : undefined,
|
|
577
697
|
agent_layers: manifest.agent_layers ? Object.freeze([...manifest.agent_layers]) : undefined,
|
|
578
698
|
depends_on: manifest.depends_on ? Object.freeze([...manifest.depends_on]) : undefined,
|
|
699
|
+
declares_asset_classes: manifest.declares_asset_classes
|
|
700
|
+
? Object.freeze([...manifest.declares_asset_classes])
|
|
701
|
+
: undefined,
|
|
579
702
|
});
|
|
580
703
|
}
|
|
581
704
|
function isRecord(value) {
|
package/dist/modules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAIP,YAAY,EAEZ,YAAY,EAEb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAIP,YAAY,EAEZ,YAAY,EAEb,MAAM,YAAY,CAAC;AAuDpB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAO1F;AAwJD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,YAAY,CAqHrF;AAoID,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAKlF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,GAAG,IAAI,CAIhB;AAUD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKzE;AAMD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ3D"}
|
package/dist/parser.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// .uw.md parser — extracts frontmatter, section blocks, prose, and pipeline log
|
|
2
2
|
// Spec: UW_FORMAT_SPEC_v1.md §2.4 (annotation syntax), §2.7 (update semantics), §2.8 (multi-variant)
|
|
3
|
+
import { SOURCE_TAGS } from './types.js';
|
|
3
4
|
// ─── Regex patterns ───────────────────────────────────────────────────────────
|
|
4
5
|
// Opening fence: ```json uw:section=<id> [key=value ...]
|
|
5
6
|
const FENCE_OPEN_RE = /^```json\s+uw:section=(\S+)(.*)?$/;
|
|
@@ -302,7 +303,7 @@ export function parseUWFile(content, options = {}) {
|
|
|
302
303
|
}
|
|
303
304
|
parsed = { _parse_error: String(err), _raw: rawJson };
|
|
304
305
|
}
|
|
305
|
-
const meta = parsed['_meta'] ?? {};
|
|
306
|
+
const meta = interpretMetaSource(parsed['_meta'] ?? {});
|
|
306
307
|
const block = {
|
|
307
308
|
annotation,
|
|
308
309
|
meta,
|
|
@@ -316,6 +317,31 @@ export function parseUWFile(content, options = {}) {
|
|
|
316
317
|
}
|
|
317
318
|
return result;
|
|
318
319
|
}
|
|
320
|
+
// ─── §2.6 read-time source interpretation (RFC 0031) ─────────────────────────
|
|
321
|
+
/** Every canonical tag except `manual`, which is a legal actor in its own
|
|
322
|
+
* right and never reinterpreted. */
|
|
323
|
+
const LEGACY_RESOLUTION_TAGS = new Set(SOURCE_TAGS.filter((t) => t !== 'manual'));
|
|
324
|
+
/**
|
|
325
|
+
* A canonical `SOURCE_TAGS` value found in `_meta.source` is a resolution
|
|
326
|
+
* method in the actor field (the pre-RFC-0031 spelling). Readers MUST
|
|
327
|
+
* interpret it as `resolution` and MUST NOT invent an actor from it — so the
|
|
328
|
+
* parsed view gains `resolution` while `source` keeps the raw spelling for
|
|
329
|
+
* diagnostics (`SRC-02` warns on it, and authority classification treats it
|
|
330
|
+
* as no actor class at all).
|
|
331
|
+
*
|
|
332
|
+
* Returns a **clone** when it rewrites: `content._meta` is bytes-derived and
|
|
333
|
+
* feeds canonicalization/digests, so the interpreted view must never mutate
|
|
334
|
+
* it. A producer that already stamped its own `resolution` wins — the legacy
|
|
335
|
+
* spelling is then merely wrong, not information.
|
|
336
|
+
*/
|
|
337
|
+
function interpretMetaSource(meta) {
|
|
338
|
+
const src = meta.source;
|
|
339
|
+
if (typeof src !== 'string' || !LEGACY_RESOLUTION_TAGS.has(src))
|
|
340
|
+
return meta;
|
|
341
|
+
if (meta.resolution !== undefined)
|
|
342
|
+
return meta;
|
|
343
|
+
return { ...meta, resolution: src };
|
|
344
|
+
}
|
|
319
345
|
// ─── Block routing ────────────────────────────────────────────────────────────
|
|
320
346
|
function routeBlock(result, block, sectionId, annotation, prose) {
|
|
321
347
|
// Pipeline log — always append
|