aontu 0.52.1 → 0.54.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/README.md +88 -0
- package/bin/aontu-mcp.js +4 -0
- package/dist/agentsmd.d.ts +16 -0
- package/dist/agentsmd.js +107 -0
- package/dist/agentsmd.js.map +1 -0
- package/dist/aontu.d.ts +15 -3
- package/dist/aontu.js +126 -5
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +45 -1
- package/dist/cli.js +2845 -69
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +18 -0
- package/dist/ctx.js +44 -0
- package/dist/ctx.js.map +1 -1
- package/dist/diff.d.ts +22 -0
- package/dist/diff.js +141 -0
- package/dist/diff.js.map +1 -0
- package/dist/err.d.ts +3 -1
- package/dist/err.js +45 -8
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +13 -0
- package/dist/graph.js +110 -0
- package/dist/graph.js.map +1 -0
- package/dist/hcanon.d.ts +3 -0
- package/dist/hcanon.js +145 -0
- package/dist/hcanon.js.map +1 -0
- package/dist/hints.js +235 -8
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.d.ts +20 -0
- package/dist/jsonschema.js +425 -0
- package/dist/jsonschema.js.map +1 -0
- package/dist/lang.js +955 -110
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +9 -2
- package/dist/lsp.js +343 -48
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.d.ts +20 -0
- package/dist/mcp-server.js +147 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +42 -0
- package/dist/mcp.js +941 -0
- package/dist/mcp.js.map +1 -0
- package/dist/mod-tool.d.ts +58 -0
- package/dist/mod-tool.js +532 -0
- package/dist/mod-tool.js.map +1 -0
- package/dist/mod.d.ts +35 -0
- package/dist/mod.js +345 -0
- package/dist/mod.js.map +1 -0
- package/dist/patch.d.ts +49 -0
- package/dist/patch.js +506 -0
- package/dist/patch.js.map +1 -0
- package/dist/provenance.d.ts +41 -0
- package/dist/provenance.js +336 -0
- package/dist/provenance.js.map +1 -0
- package/dist/query.d.ts +27 -0
- package/dist/query.js +294 -0
- package/dist/query.js.map +1 -0
- package/dist/reach.d.ts +15 -0
- package/dist/reach.js +168 -0
- package/dist/reach.js.map +1 -0
- package/dist/relation.d.ts +23 -0
- package/dist/relation.js +230 -0
- package/dist/relation.js.map +1 -0
- package/dist/report-sarif.d.ts +14 -0
- package/dist/report-sarif.js +102 -0
- package/dist/report-sarif.js.map +1 -0
- package/dist/sig.d.ts +25 -0
- package/dist/sig.js +277 -0
- package/dist/sig.js.map +1 -0
- package/dist/sigdecl.d.ts +2 -0
- package/dist/sigdecl.js +11 -0
- package/dist/sigdecl.js.map +1 -0
- package/dist/siggate.d.ts +4 -0
- package/dist/siggate.js +90 -0
- package/dist/siggate.js.map +1 -0
- package/dist/site.d.ts +4 -0
- package/dist/site.js +31 -0
- package/dist/site.js.map +1 -1
- package/dist/std.d.ts +1 -0
- package/dist/std.js +129 -0
- package/dist/std.js.map +1 -0
- package/dist/subsume.d.ts +39 -0
- package/dist/subsume.js +573 -0
- package/dist/subsume.js.map +1 -0
- package/dist/trim.d.ts +19 -0
- package/dist/trim.js +155 -0
- package/dist/trim.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +17 -1
- package/dist/type.js.map +1 -1
- package/dist/unify.d.ts +2 -1
- package/dist/unify.js +234 -38
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +8 -1
- package/dist/utility.js +68 -1
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +44 -0
- package/dist/val/AggFuncVal.js +364 -0
- package/dist/val/AggFuncVal.js.map +1 -0
- package/dist/val/ArithFuncVal.d.ts +31 -0
- package/dist/val/ArithFuncVal.js +62 -0
- package/dist/val/ArithFuncVal.js.map +1 -0
- package/dist/val/BagVal.d.ts +7 -0
- package/dist/val/BagVal.js +150 -11
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/CloseFuncVal.js +9 -1
- package/dist/val/CloseFuncVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +19 -0
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/ConstraintVal.d.ts +7 -1
- package/dist/val/ConstraintVal.js +523 -45
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/ContainerKindVal.d.ts +35 -0
- package/dist/val/ContainerKindVal.js +99 -0
- package/dist/val/ContainerKindVal.js.map +1 -0
- package/dist/val/CopyFuncVal.d.ts +1 -2
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/Decimal.d.ts +1 -0
- package/dist/val/Decimal.js +13 -0
- package/dist/val/Decimal.js.map +1 -1
- package/dist/val/DeprecateFuncVal.d.ts +11 -0
- package/dist/val/DeprecateFuncVal.js +47 -0
- package/dist/val/DeprecateFuncVal.js.map +1 -0
- package/dist/val/DisjunctVal.d.ts +1 -2
- package/dist/val/DisjunctVal.js +269 -53
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/EachFuncVal.d.ts +15 -0
- package/dist/val/EachFuncVal.js +75 -0
- package/dist/val/EachFuncVal.js.map +1 -0
- package/dist/val/ExpectVal.js +62 -4
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FeatureVal.js +1 -1
- package/dist/val/FeatureVal.js.map +1 -1
- package/dist/val/FilterFuncVal.d.ts +15 -0
- package/dist/val/FilterFuncVal.js +91 -0
- package/dist/val/FilterFuncVal.js.map +1 -0
- package/dist/val/FuncBaseVal.d.ts +7 -1
- package/dist/val/FuncBaseVal.js +183 -2
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/GraphAtomVal.d.ts +39 -0
- package/dist/val/GraphAtomVal.js +184 -0
- package/dist/val/GraphAtomVal.js.map +1 -0
- package/dist/val/HideFuncVal.js.map +1 -1
- package/dist/val/JunctionVal.js +24 -1
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.d.ts +1 -1
- package/dist/val/KeyFuncVal.js +38 -30
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.js +94 -14
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +1 -0
- package/dist/val/MapVal.js +146 -14
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.d.ts +15 -0
- package/dist/val/MatchFuncVal.js +107 -0
- package/dist/val/MatchFuncVal.js.map +1 -0
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +24 -0
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/OpBaseVal.d.ts +1 -1
- package/dist/val/OpBaseVal.js +19 -1
- package/dist/val/OpBaseVal.js.map +1 -1
- package/dist/val/OpenFuncVal.js +4 -1
- package/dist/val/OpenFuncVal.js.map +1 -1
- package/dist/val/PackFuncVal.d.ts +15 -0
- package/dist/val/PackFuncVal.js +108 -0
- package/dist/val/PackFuncVal.js.map +1 -0
- package/dist/val/PathFuncVal.d.ts +2 -2
- package/dist/val/PathFuncVal.js +75 -16
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PathVal.d.ts +25 -0
- package/dist/val/PathVal.js +150 -0
- package/dist/val/PathVal.js.map +1 -0
- package/dist/val/PlaceVal.d.ts +13 -0
- package/dist/val/PlaceVal.js +131 -0
- package/dist/val/PlaceVal.js.map +1 -0
- package/dist/val/PlusOpVal.d.ts +2 -1
- package/dist/val/PlusOpVal.js +61 -37
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +4 -2
- package/dist/val/PrefVal.js +223 -41
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RecurseVal.d.ts +19 -0
- package/dist/val/RecurseVal.js +217 -0
- package/dist/val/RecurseVal.js.map +1 -0
- package/dist/val/RefVal.d.ts +3 -2
- package/dist/val/RefVal.js +181 -66
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +59 -0
- package/dist/val/ReferFuncVal.js +604 -0
- package/dist/val/ReferFuncVal.js.map +1 -0
- package/dist/val/ScalarKindVal.d.ts +4 -3
- package/dist/val/ScalarKindVal.js +12 -12
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/SuperFuncVal.d.ts +4 -2
- package/dist/val/SuperFuncVal.js +118 -14
- package/dist/val/SuperFuncVal.js.map +1 -1
- package/dist/val/TopVal.d.ts +1 -1
- package/dist/val/TopVal.js.map +1 -1
- package/dist/val/TypeFuncVal.js.map +1 -1
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/Val.d.ts +7 -1
- package/dist/val/Val.js +170 -2
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/arith.d.ts +6 -0
- package/dist/val/arith.js +173 -0
- package/dist/val/arith.js.map +1 -0
- package/dist/vet.d.ts +45 -0
- package/dist/vet.js +802 -0
- package/dist/vet.js.map +1 -0
- package/dist/view.d.ts +85 -0
- package/dist/view.js +1948 -0
- package/dist/view.js.map +1 -0
- package/dist/walk.d.ts +2 -0
- package/dist/walk.js +91 -0
- package/dist/walk.js.map +1 -0
- package/grammar/aontu.gbnf +138 -0
- package/grammar/aontu.lark +118 -0
- package/grammar/aontu.tmLanguage.json +184 -0
- package/package.json +30 -8
- package/skill/SKILL.md +37 -0
- package/skill/error-codes.md +62 -0
- package/skill/examples.md +99 -0
- package/skill/grammar-card.md +56 -0
- package/src/agentsmd.ts +135 -0
- package/src/aontu.ts +166 -5
- package/src/cli.ts +3324 -72
- package/src/ctx.ts +93 -1
- package/src/diff.ts +198 -0
- package/src/err.ts +50 -8
- package/src/graph.ts +185 -0
- package/src/hcanon.ts +167 -0
- package/src/hints.ts +291 -8
- package/src/jsonschema.ts +552 -0
- package/src/lang.ts +1049 -110
- package/src/lsp.ts +351 -49
- package/src/mcp-server.ts +187 -0
- package/src/mcp.ts +1130 -0
- package/src/mod-tool.ts +718 -0
- package/src/mod.ts +453 -0
- package/src/patch.ts +628 -0
- package/src/provenance.ts +437 -0
- package/src/query.ts +381 -0
- package/src/reach.ts +213 -0
- package/src/relation.ts +298 -0
- package/src/report-sarif.ts +137 -0
- package/src/sig.ts +345 -0
- package/src/sigdecl.ts +11 -0
- package/src/siggate.ts +144 -0
- package/src/site.ts +36 -1
- package/src/std.ts +131 -0
- package/src/subsume.ts +739 -0
- package/src/trim.ts +195 -0
- package/src/tsconfig.json +10 -4
- package/src/type.ts +51 -2
- package/src/unify.ts +253 -38
- package/src/utility.ts +79 -1
- package/src/val/AggFuncVal.ts +546 -0
- package/src/val/ArithFuncVal.ts +108 -0
- package/src/val/BagVal.ts +158 -12
- package/src/val/CloseFuncVal.ts +9 -1
- package/src/val/ConjunctVal.ts +20 -0
- package/src/val/ConstraintVal.ts +576 -48
- package/src/val/ContainerKindVal.ts +158 -0
- package/src/val/CopyFuncVal.ts +0 -1
- package/src/val/Decimal.ts +15 -0
- package/src/val/DeprecateFuncVal.ts +84 -0
- package/src/val/DisjunctVal.ts +282 -59
- package/src/val/EachFuncVal.ts +133 -0
- package/src/val/ExpectVal.ts +65 -8
- package/src/val/FeatureVal.ts +1 -1
- package/src/val/FilterFuncVal.ts +154 -0
- package/src/val/FuncBaseVal.ts +206 -2
- package/src/val/GraphAtomVal.ts +264 -0
- package/src/val/HideFuncVal.ts +0 -2
- package/src/val/JunctionVal.ts +24 -1
- package/src/val/KeyFuncVal.ts +39 -35
- package/src/val/ListVal.ts +101 -15
- package/src/val/LowerFuncVal.ts +0 -1
- package/src/val/MapVal.ts +153 -14
- package/src/val/MatchFuncVal.ts +176 -0
- package/src/val/MoveFuncVal.ts +0 -2
- package/src/val/NilVal.ts +25 -0
- package/src/val/OpBaseVal.ts +20 -1
- package/src/val/OpenFuncVal.ts +4 -2
- package/src/val/PackFuncVal.ts +175 -0
- package/src/val/PathFuncVal.ts +107 -20
- package/src/val/PathVal.ts +221 -0
- package/src/val/PlaceVal.ts +193 -0
- package/src/val/PlusOpVal.ts +67 -39
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +251 -60
- package/src/val/RecurseVal.ts +285 -0
- package/src/val/RefVal.ts +183 -78
- package/src/val/ReferFuncVal.ts +732 -0
- package/src/val/ScalarKindVal.ts +12 -13
- package/src/val/SuperFuncVal.ts +137 -13
- package/src/val/TopVal.ts +1 -2
- package/src/val/TypeFuncVal.ts +0 -2
- package/src/val/UpperFuncVal.ts +0 -1
- package/src/val/Val.ts +216 -4
- package/src/val/VarVal.ts +0 -1
- package/src/val/arith.ts +319 -0
- package/src/vet.ts +1025 -0
- package/src/view.ts +2563 -0
- package/src/walk.ts +99 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod-tool.js","sourceRoot":"","sources":["../src/mod-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/mod.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type ModuleRef = {
|
|
2
|
+
path: string;
|
|
3
|
+
major: number;
|
|
4
|
+
hash?: string;
|
|
5
|
+
};
|
|
6
|
+
export type ModuleFs = {
|
|
7
|
+
existsSync: (p: string) => boolean;
|
|
8
|
+
readFileSync: (p: string, enc: string) => string;
|
|
9
|
+
};
|
|
10
|
+
export declare function parseModuleRef(spec: string): ModuleRef | undefined;
|
|
11
|
+
export declare const MODULE_MAX_PATH = 512;
|
|
12
|
+
export declare const MODULE_MAX_ELEMS = 32;
|
|
13
|
+
export declare function validateModulePath(path: string): string | undefined;
|
|
14
|
+
export declare function moduleDir(store: string, ref: ModuleRef): string;
|
|
15
|
+
export declare function projectRoots(from: string, fs: ModuleFs): string[];
|
|
16
|
+
export declare function lockJson(text: string): string;
|
|
17
|
+
export declare function modCacheDir(): string | undefined;
|
|
18
|
+
export declare function modCacheDirFor(platform: string, env: Record<string, string | undefined>): string | undefined;
|
|
19
|
+
export declare function lockHash(root: string, ref: ModuleRef, fs: ModuleFs): string | undefined;
|
|
20
|
+
export type ModuleEval = (src: string, path: string) => {
|
|
21
|
+
gen: any;
|
|
22
|
+
hash: string;
|
|
23
|
+
};
|
|
24
|
+
export declare const MODULE_MAX_DEPTH = 16;
|
|
25
|
+
export type ModuleOptions = {
|
|
26
|
+
cache?: string;
|
|
27
|
+
eval: ModuleEval;
|
|
28
|
+
depth?: number;
|
|
29
|
+
};
|
|
30
|
+
export type ModuleFound = {
|
|
31
|
+
full: string;
|
|
32
|
+
src: string;
|
|
33
|
+
};
|
|
34
|
+
export declare const MODULE_REFUSAL_CODES: ReadonlySet<string>;
|
|
35
|
+
export declare function resolveModule(ref: ModuleRef, fromDir: string, fs: ModuleFs, options: ModuleOptions): ModuleFound;
|
package/dist/mod.js
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.MODULE_REFUSAL_CODES = exports.MODULE_MAX_DEPTH = exports.MODULE_MAX_ELEMS = exports.MODULE_MAX_PATH = void 0;
|
|
5
|
+
exports.parseModuleRef = parseModuleRef;
|
|
6
|
+
exports.validateModulePath = validateModulePath;
|
|
7
|
+
exports.moduleDir = moduleDir;
|
|
8
|
+
exports.projectRoots = projectRoots;
|
|
9
|
+
exports.lockJson = lockJson;
|
|
10
|
+
exports.modCacheDir = modCacheDir;
|
|
11
|
+
exports.modCacheDirFor = modCacheDirFor;
|
|
12
|
+
exports.lockHash = lockHash;
|
|
13
|
+
exports.resolveModule = resolveModule;
|
|
14
|
+
// MODULE IDENTITY AND LOCAL RESOLUTION (G6 phase 2,
|
|
15
|
+
// docs/capability-review/g6-distribution.md).
|
|
16
|
+
//
|
|
17
|
+
// An import is still just `@"…"`; the string's SHAPE routes it, so the
|
|
18
|
+
// grammar is untouched and every existing include keeps its exact
|
|
19
|
+
// behaviour:
|
|
20
|
+
//
|
|
21
|
+
// service: @"corp.example/schemas/service@1"
|
|
22
|
+
// frozen: @"corp.example/schemas/service@1#aon1-4vJemVYtWFR2mQeN…"
|
|
23
|
+
// local: @"./fragment.aon" <- unchanged, not a module
|
|
24
|
+
//
|
|
25
|
+
// EVALUATION NEVER TOUCHES THE NETWORK. Resolution reads local stores
|
|
26
|
+
// only: `aon_vendor/` beside the project's `mod.aon`, then a
|
|
27
|
+
// content-addressed user cache keyed by canon-hash. Fetching is a
|
|
28
|
+
// separate, explicit tool step, and a module that is in neither store
|
|
29
|
+
// is an evaluation error that says so.
|
|
30
|
+
//
|
|
31
|
+
// TWO PINS, TWO ROLES. The lockfile's `oci` digest certifies that these
|
|
32
|
+
// are the bytes the registry served; the `canon` hash certifies that
|
|
33
|
+
// this is the MEANING that was reviewed. Only the second can be checked
|
|
34
|
+
// locally without the registry, and it is the one this file checks: the
|
|
35
|
+
// module is unified standalone and its canon-hash compared with the
|
|
36
|
+
// pin. An inline `#aon1-…` fragment is the same check without a
|
|
37
|
+
// lockfile — the degenerate mode for single-file and agent-sandbox use.
|
|
38
|
+
const node_path_1 = require("node:path");
|
|
39
|
+
// A module path is DOMAIN-SHAPED — the first segment carries a dot,
|
|
40
|
+
// which is what tells it apart from `./local.aon`, `pkg-name` and every
|
|
41
|
+
// other spelling already in use — and carries the major version in the
|
|
42
|
+
// path, CUE/Go-style, so two majors are two modules.
|
|
43
|
+
//
|
|
44
|
+
// The pattern is deliberately narrow: anything it does not match falls
|
|
45
|
+
// through to the existing resolver chain unchanged, so no document that
|
|
46
|
+
// worked before this phase can be routed somewhere new by it.
|
|
47
|
+
const MODULE_RE = /^([a-z0-9][a-z0-9-]*(?:\.[a-z0-9][a-z0-9-]*)+(?:\/[A-Za-z0-9._-]+)*)@(\d+)(?:#(aon1-[A-Za-z0-9_-]+))?$/;
|
|
48
|
+
function parseModuleRef(spec) {
|
|
49
|
+
const m = MODULE_RE.exec(spec);
|
|
50
|
+
if (null == m) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
path: m[1],
|
|
55
|
+
major: +m[2],
|
|
56
|
+
...(null == m[3] ? {} : { hash: m[3] }),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// SHAPE IS NOT VALIDITY, and the gap between them was a hole. MODULE_RE
|
|
60
|
+
// answers "does this string route to the module resolver" -- a
|
|
61
|
+
// ROUTING predicate, and it must stay one, because anything it rejects
|
|
62
|
+
// falls through to the file leg and a stricter pattern would silently
|
|
63
|
+
// re-route documents that work today. But its element class
|
|
64
|
+
// `[A-Za-z0-9._-]` admits `..`, and `moduleDir` joins elements with
|
|
65
|
+
// pathJoin, which CLEANS `..` rather than refusing it:
|
|
66
|
+
//
|
|
67
|
+
// moduleDir('/store/aon_vendor', 'corp.example/../../etc/passwd@1')
|
|
68
|
+
// -> /store/etc/passwd@1
|
|
69
|
+
//
|
|
70
|
+
// `mod vendor` then copied a tree THERE, outside the project entirely,
|
|
71
|
+
// and reported `verdict: ok`. So validity is a separate question asked
|
|
72
|
+
// separately, after the shape matched, and asked at every site that
|
|
73
|
+
// turns a module path into a directory.
|
|
74
|
+
//
|
|
75
|
+
// The rules are Go's (golang.org/x/mod/module.CheckPath), for the
|
|
76
|
+
// reason Go has them: a module path becomes a real directory on every
|
|
77
|
+
// platform the toolchain runs on, so it must be a legal one everywhere.
|
|
78
|
+
exports.MODULE_MAX_PATH = 512;
|
|
79
|
+
exports.MODULE_MAX_ELEMS = 32;
|
|
80
|
+
// Windows refuses these as file names whatever the extension, so a
|
|
81
|
+
// module path containing one cannot be materialised there at all. The
|
|
82
|
+
// check is on the element up to its first dot, which is where Windows
|
|
83
|
+
// stops looking too.
|
|
84
|
+
const RESERVED_ELEMS = new Set([
|
|
85
|
+
'con', 'prn', 'aux', 'nul',
|
|
86
|
+
'com1', 'com2', 'com3', 'com4', 'com5', 'com6', 'com7', 'com8', 'com9',
|
|
87
|
+
'lpt1', 'lpt2', 'lpt3', 'lpt4', 'lpt5', 'lpt6', 'lpt7', 'lpt8', 'lpt9',
|
|
88
|
+
]);
|
|
89
|
+
// Why a module path may not be used as a directory, or undefined when
|
|
90
|
+
// it may. The reason is user-facing: it goes in the refusal, because a
|
|
91
|
+
// path refused without saying which rule it broke is a puzzle.
|
|
92
|
+
function validateModulePath(path) {
|
|
93
|
+
if (exports.MODULE_MAX_PATH < path.length) {
|
|
94
|
+
return 'longer than ' + exports.MODULE_MAX_PATH + ' characters';
|
|
95
|
+
}
|
|
96
|
+
const elems = path.split('/');
|
|
97
|
+
if (exports.MODULE_MAX_ELEMS < elems.length) {
|
|
98
|
+
return 'more than ' + exports.MODULE_MAX_ELEMS + ' elements';
|
|
99
|
+
}
|
|
100
|
+
for (const elem of elems) {
|
|
101
|
+
if ('' === elem) {
|
|
102
|
+
return 'an element is empty';
|
|
103
|
+
}
|
|
104
|
+
// This one rule kills `.` and `..` -- the traversal -- along with
|
|
105
|
+
// `.hidden` and `trailing.`, exactly as Go's does. Stating it as
|
|
106
|
+
// the rule rather than as "no `..`" is deliberate: a check that
|
|
107
|
+
// named the two dangerous spellings would miss the next one.
|
|
108
|
+
if (elem.startsWith('.') || elem.endsWith('.')) {
|
|
109
|
+
return 'an element begins or ends with "."';
|
|
110
|
+
}
|
|
111
|
+
if (RESERVED_ELEMS.has(elem.split('.')[0].toLowerCase())) {
|
|
112
|
+
return 'an element is a reserved device name';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
// An element as it is spelled ON DISK. Uppercase is escaped to
|
|
118
|
+
// `!`+lowercase, Go's rule (go.dev/ref/mod, module proxy protocol) and
|
|
119
|
+
// for Go's reason: `github.com/Alice/Widgets` and
|
|
120
|
+
// `github.com/alice/widgets` are two module identities and, on macOS
|
|
121
|
+
// and Windows, ONE directory -- so without this the second module
|
|
122
|
+
// fetched silently clobbers the first, and an unpinned import resolves
|
|
123
|
+
// to whichever won.
|
|
124
|
+
//
|
|
125
|
+
// The WRITTEN path stays the identity; only the directory is escaped.
|
|
126
|
+
function escapeElem(elem) {
|
|
127
|
+
return elem.replace(/[A-Z]/g, (c) => '!' + c.toLowerCase());
|
|
128
|
+
}
|
|
129
|
+
// The directory a module's files live in, under a store root.
|
|
130
|
+
//
|
|
131
|
+
// Callers must have validated the path (validateModulePath); this
|
|
132
|
+
// function cannot refuse, because it answers a location rather than a
|
|
133
|
+
// question, and every caller has a refusal shape of its own.
|
|
134
|
+
function moduleDir(store, ref) {
|
|
135
|
+
return (0, node_path_1.join)(store, ...ref.path.split('/').map(escapeElem)) + '@' + ref.major;
|
|
136
|
+
}
|
|
137
|
+
// EVERY project root at or above `from`, innermost first — a project
|
|
138
|
+
// root being a directory holding a `mod.aon`. This used to answer with
|
|
139
|
+
// the NEAREST one alone, and the plural is the fix, because a
|
|
140
|
+
// VENDORED MODULE IS A PROJECT INSIDE A PROJECT. A module in
|
|
141
|
+
// `aon_vendor/` carries its own `mod.aon`, which stopped the upward
|
|
142
|
+
// walk there, so a nested import resolved against the vendored
|
|
143
|
+
// module's own directory: a tree with no `aon_vendor/` of its own, and
|
|
144
|
+
// therefore a `module not fetched` for a dependency sitting flat
|
|
145
|
+
// beside it in the CONSUMER's vendor tree — the only layout `mod
|
|
146
|
+
// vendor` produces (use-cases/BUGS.md §31).
|
|
147
|
+
//
|
|
148
|
+
// The consumer's stores are searched after the module's own, so a
|
|
149
|
+
// module that vendors its dependencies nested still wins for its own
|
|
150
|
+
// tree, and one that does not falls through to the consumer that
|
|
151
|
+
// vendored it. The last element is `from` itself when nothing above it
|
|
152
|
+
// declares a module, which is the single-file inline-pin mode.
|
|
153
|
+
function projectRoots(from, fs) {
|
|
154
|
+
const roots = [];
|
|
155
|
+
let dir = from;
|
|
156
|
+
for (;;) {
|
|
157
|
+
if (fs.existsSync((0, node_path_1.join)(dir, 'mod.aon'))) {
|
|
158
|
+
roots.push(dir);
|
|
159
|
+
}
|
|
160
|
+
const up = (0, node_path_1.dirname)(dir);
|
|
161
|
+
if (up === dir) {
|
|
162
|
+
return 0 < roots.length ? roots : [from];
|
|
163
|
+
}
|
|
164
|
+
dir = up;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// The lockfile's pin for one import, or undefined.
|
|
168
|
+
//
|
|
169
|
+
// `mod-lock.aon` is machine-written CANONICAL Aontu, and canonical
|
|
170
|
+
// Aontu whose leaves are scalars IS JSON — which is why reading it here
|
|
171
|
+
// needs no evaluator, and why a hand-edited lockfile that is no longer
|
|
172
|
+
// canonical simply does not parse. It is generated; the file says so.
|
|
173
|
+
// The lockfile's JSON: its canonical line, with the generated-file
|
|
174
|
+
// header stripped. The file is AONTU, so it may carry `#` comments —
|
|
175
|
+
// and the header `aontu mod tidy` writes says not to edit it, which is
|
|
176
|
+
// worth more than the two lines it costs to skip. Everything below the
|
|
177
|
+
// comments is the canonical map, and canonical Aontu whose leaves are
|
|
178
|
+
// scalars is JSON.
|
|
179
|
+
function lockJson(text) {
|
|
180
|
+
return text
|
|
181
|
+
.split('\n')
|
|
182
|
+
.filter((line) => !line.trimStart().startsWith('#'))
|
|
183
|
+
.join('\n');
|
|
184
|
+
}
|
|
185
|
+
// The user cache: `$XDG_CACHE_HOME/aontu/mod` unless the host names
|
|
186
|
+
// another, else the platform's own cache location. A host with nowhere
|
|
187
|
+
// to put one has no cache, which is a miss rather than a failure. One
|
|
188
|
+
// rule, in one place: the resolver reads this cache during evaluation
|
|
189
|
+
// and `aontu mod` writes into it, and two spellings of "where the cache
|
|
190
|
+
// is" is one bug.
|
|
191
|
+
function modCacheDir() {
|
|
192
|
+
return modCacheDirFor(process.platform, process.env);
|
|
193
|
+
}
|
|
194
|
+
// That rule with the platform and the environment PASSED IN, so the
|
|
195
|
+
// Windows arm can be exercised off Windows — the only way a rule about
|
|
196
|
+
// a platform nobody here runs gets tested at all. The Go port splits
|
|
197
|
+
// the same way (modCacheDirFor, go/aontu.go).
|
|
198
|
+
//
|
|
199
|
+
// THE ORDER IS EXPLICIT BEFORE IMPLICIT, and LOCALAPPDATA is LAST.
|
|
200
|
+
// XDG_CACHE_HOME is the override and wins everywhere, Windows included:
|
|
201
|
+
// a caller who names a cache directory means it. HOME comes next and is
|
|
202
|
+
// also honoured on Windows, where it is not standard but IS set by Git
|
|
203
|
+
// Bash and by most development shells — a user who has one expects
|
|
204
|
+
// their tools to agree about where home is.
|
|
205
|
+
//
|
|
206
|
+
// LOCALAPPDATA is the PLATFORM DEFAULT beneath both, which is the whole
|
|
207
|
+
// addition: Windows sets neither XDG_CACHE_HOME nor HOME by default —
|
|
208
|
+
// it supplies USERPROFILE and LOCALAPPDATA, and LOCALAPPDATA is what a
|
|
209
|
+
// cache directory means there — so a rule that knew only the first two
|
|
210
|
+
// left every Windows user with NO cache. Putting it ABOVE HOME was the
|
|
211
|
+
// first attempt and was wrong: it made an explicitly set HOME
|
|
212
|
+
// unreachable on Windows, which broke the existing fallback test the
|
|
213
|
+
// moment CI ran it. A platform default that overrides what the
|
|
214
|
+
// environment was told is not a default.
|
|
215
|
+
function modCacheDirFor(platform, env) {
|
|
216
|
+
const xdg = env.XDG_CACHE_HOME;
|
|
217
|
+
if ('string' === typeof xdg && '' !== xdg) {
|
|
218
|
+
return (0, node_path_1.join)(xdg, 'aontu', 'mod');
|
|
219
|
+
}
|
|
220
|
+
const home = env.HOME;
|
|
221
|
+
if ('string' === typeof home && '' !== home) {
|
|
222
|
+
return (0, node_path_1.join)(home, '.cache', 'aontu', 'mod');
|
|
223
|
+
}
|
|
224
|
+
if ('win32' === platform) {
|
|
225
|
+
const local = env.LOCALAPPDATA;
|
|
226
|
+
if ('string' === typeof local && '' !== local) {
|
|
227
|
+
return (0, node_path_1.join)(local, 'aontu', 'mod');
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
function lockHash(root, ref, fs) {
|
|
233
|
+
const file = (0, node_path_1.join)(root, 'mod-lock.aon');
|
|
234
|
+
if (!fs.existsSync(file)) {
|
|
235
|
+
return undefined;
|
|
236
|
+
}
|
|
237
|
+
let lock;
|
|
238
|
+
try {
|
|
239
|
+
lock = JSON.parse(lockJson(fs.readFileSync(file, 'utf8')));
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
244
|
+
const entry = lock?.lock?.[ref.path + '@' + ref.major];
|
|
245
|
+
return 'string' === typeof entry?.canon ? entry.canon : undefined;
|
|
246
|
+
}
|
|
247
|
+
// How deep module verification may nest before it is refused. A module
|
|
248
|
+
// is verified by EVALUATING it, and that evaluation resolves the
|
|
249
|
+
// module's own imports -- so a vendor tree that leads back to itself
|
|
250
|
+
// (a symlink is enough) would recurse until the host's stack gave out,
|
|
251
|
+
// and a verdict that depends on the host's stack size is exactly what
|
|
252
|
+
// the determinism clause forbids (docs/trust.md, and the same argument
|
|
253
|
+
// unify_cycle rests on). Sixteen is far above any real vendor nesting.
|
|
254
|
+
exports.MODULE_MAX_DEPTH = 16;
|
|
255
|
+
// EVERY code `resolveModule` can refuse with. The list lives HERE,
|
|
256
|
+
// beside the refusals themselves, because the parse layer has to
|
|
257
|
+
// recognise them to turn the throw into a parse-stage nil
|
|
258
|
+
// (ts/src/lang.ts) -- and when that list was written out longhand
|
|
259
|
+
// there, adding a fourth code left it unhandled and the refusal
|
|
260
|
+
// surfaced as `unexpected error` instead of the message it carries.
|
|
261
|
+
// The Go port has no such list (recordModErr takes any code), which is
|
|
262
|
+
// why only this side could drift.
|
|
263
|
+
exports.MODULE_REFUSAL_CODES = new Set([
|
|
264
|
+
'module_path', 'module_missing', 'module_integrity', 'module_depth',
|
|
265
|
+
]);
|
|
266
|
+
// A refusal that carries its code to the parse layer, exactly as a
|
|
267
|
+
// denied include does (makeModelResolver's `deny`): the resolver
|
|
268
|
+
// THROWS, so a bare-member module import cannot vanish in the merge and
|
|
269
|
+
// leave a plausible, silently-partial document.
|
|
270
|
+
function refuse(code, message) {
|
|
271
|
+
const err = new Error(message);
|
|
272
|
+
err.code = code;
|
|
273
|
+
throw err;
|
|
274
|
+
}
|
|
275
|
+
// Resolve one module import against the local stores.
|
|
276
|
+
function resolveModule(ref, fromDir, fs, options) {
|
|
277
|
+
// THE PATH IS CHECKED BEFORE ANYTHING IS BUILT FROM IT. This is
|
|
278
|
+
// first because it is a question about the REQUEST, not about the
|
|
279
|
+
// state of the machine: a path that cannot legally be a directory is
|
|
280
|
+
// refused identically whether or not the module is present, and
|
|
281
|
+
// whether or not the depth bound is near.
|
|
282
|
+
const badpath = validateModulePath(ref.path);
|
|
283
|
+
if (undefined !== badpath) {
|
|
284
|
+
refuse('module_path', 'module path: ' + ref.path + '@' + ref.major + ' (' + badpath + ')');
|
|
285
|
+
}
|
|
286
|
+
if (exports.MODULE_MAX_DEPTH <= (options.depth ?? 0)) {
|
|
287
|
+
refuse('module_depth', 'module depth: ' + ref.path + '@' + ref.major +
|
|
288
|
+
' (verification nested past ' + exports.MODULE_MAX_DEPTH + ')');
|
|
289
|
+
}
|
|
290
|
+
// EVERY enclosing project, innermost first (see projectRoots): a
|
|
291
|
+
// vendored module is a project inside a project, and its nested
|
|
292
|
+
// imports have to reach the tree the consumer vendored them into.
|
|
293
|
+
const roots = projectRoots(fromDir, fs);
|
|
294
|
+
// The PIN comes from the first lockfile that names this import. A
|
|
295
|
+
// vendored module usually ships none, so that is the consumer's --
|
|
296
|
+
// which is right: the consumer's lock is what its build is pinned to.
|
|
297
|
+
const expect = ref.hash ??
|
|
298
|
+
roots.map((r) => lockHash(r, ref, fs)).find((h) => null != h);
|
|
299
|
+
const stores = roots.map((r) => moduleDir((0, node_path_1.join)(r, 'aon_vendor'), ref));
|
|
300
|
+
if (null != options.cache && null != expect) {
|
|
301
|
+
// Content-addressed: the cache is keyed by the hash, so a cache hit
|
|
302
|
+
// is already the right MEANING before anything is read from it.
|
|
303
|
+
stores.push((0, node_path_1.join)(options.cache, expect));
|
|
304
|
+
}
|
|
305
|
+
const dir = stores.find((d) => fs.existsSync((0, node_path_1.join)(d, 'mod.aon')));
|
|
306
|
+
if (undefined === dir) {
|
|
307
|
+
// The wording is the contract (docs/capability-review/
|
|
308
|
+
// g6-distribution.md): it names the module AND the step that fixes
|
|
309
|
+
// it, because an agent reading this error is the audience.
|
|
310
|
+
refuse('module_missing', 'module not fetched: ' + ref.path + '@' + ref.major +
|
|
311
|
+
' (run: aontu mod get)');
|
|
312
|
+
}
|
|
313
|
+
// The module's own `mod.aon` names its entry file. Read with the
|
|
314
|
+
// evaluator rather than a regexp: a module file is ordinary Aontu,
|
|
315
|
+
// and the language reading its own metadata is the point.
|
|
316
|
+
const main = moduleMain((0, node_path_1.join)(dir, 'mod.aon'), fs, options);
|
|
317
|
+
const full = (0, node_path_1.join)(dir, main);
|
|
318
|
+
if (!fs.existsSync(full)) {
|
|
319
|
+
refuse('module_missing', 'module not fetched: ' + ref.path + '@' + ref.major +
|
|
320
|
+
' (run: aontu mod get)');
|
|
321
|
+
}
|
|
322
|
+
const src = fs.readFileSync(full, 'utf8');
|
|
323
|
+
if (null != expect) {
|
|
324
|
+
// VERIFICATION IS ALWAYS LOCAL. The registry's annotation is
|
|
325
|
+
// advisory; what decides is the hash of the module as it is on this
|
|
326
|
+
// machine, recomputed now.
|
|
327
|
+
const got = options.eval(src, full).hash;
|
|
328
|
+
if (got !== expect) {
|
|
329
|
+
refuse('module_integrity', 'module integrity: ' + ref.path + '@' + ref.major +
|
|
330
|
+
' expected ' + expect + ' got ' + got);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return { full, src };
|
|
334
|
+
}
|
|
335
|
+
// The `mod.main` a module file declares, or the default entry name.
|
|
336
|
+
// The module file is ORDINARY AONTU, read by the language itself — the
|
|
337
|
+
// toolchain dogfooding its own evaluator rather than pattern-matching
|
|
338
|
+
// its own syntax with a regexp.
|
|
339
|
+
function moduleMain(file, fs, options) {
|
|
340
|
+
const gen = options.eval(fs.readFileSync(file, 'utf8'), file).gen;
|
|
341
|
+
const main = gen?.mod?.main;
|
|
342
|
+
return 'string' === typeof main && '' !== main ? main : DEFAULT_MAIN;
|
|
343
|
+
}
|
|
344
|
+
const DEFAULT_MAIN = 'main.aon';
|
|
345
|
+
//# sourceMappingURL=mod.js.map
|
package/dist/mod.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
|
package/dist/patch.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { TrustOptions } from './type';
|
|
2
|
+
import type { VetFinding, VetVerdict } from './vet';
|
|
3
|
+
import type { WhyConjunct } from './provenance';
|
|
4
|
+
export type PatchOptions = {
|
|
5
|
+
entryPath?: string;
|
|
6
|
+
overlayPath?: string;
|
|
7
|
+
inPlace?: boolean;
|
|
8
|
+
trust?: TrustOptions;
|
|
9
|
+
};
|
|
10
|
+
export type PatchReplacement = {
|
|
11
|
+
col: number;
|
|
12
|
+
file: string;
|
|
13
|
+
from: string;
|
|
14
|
+
path: string;
|
|
15
|
+
row: number;
|
|
16
|
+
to: string;
|
|
17
|
+
};
|
|
18
|
+
export type PatchReport = {
|
|
19
|
+
overlay: string;
|
|
20
|
+
appended: string[];
|
|
21
|
+
replaced: PatchReplacement[];
|
|
22
|
+
verdict: VetVerdict;
|
|
23
|
+
findings: VetFinding[];
|
|
24
|
+
};
|
|
25
|
+
export declare function parseAssignment(text: string): {
|
|
26
|
+
path: string;
|
|
27
|
+
value: string;
|
|
28
|
+
} | undefined;
|
|
29
|
+
export declare function overlayLine(path: string, value: string): string;
|
|
30
|
+
export declare function offsetAt(src: string, row: number, col: number): number;
|
|
31
|
+
export declare function spanAt(src: string, site: {
|
|
32
|
+
row: number;
|
|
33
|
+
col: number;
|
|
34
|
+
len: number;
|
|
35
|
+
}): string | undefined;
|
|
36
|
+
export declare function spanHolds(src: string, site: {
|
|
37
|
+
row: number;
|
|
38
|
+
col: number;
|
|
39
|
+
len: number;
|
|
40
|
+
}, expect: string): boolean;
|
|
41
|
+
export declare function verifiedSite(overlaySrc: string, path: string, one: WhyConjunct): {
|
|
42
|
+
site: PatchReplacement | undefined;
|
|
43
|
+
finding: VetFinding | undefined;
|
|
44
|
+
};
|
|
45
|
+
export declare function spanValue(src: string): {
|
|
46
|
+
canon: string;
|
|
47
|
+
concrete: boolean;
|
|
48
|
+
} | undefined;
|
|
49
|
+
export declare function patch(entrySrc: string, overlaySrc: string, assignments: string[], opts?: PatchOptions): PatchReport;
|