@rasensio/aidlc 1.27.0 → 1.27.2
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 +334 -54
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +32 -4
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.js +5 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts +35 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +162 -35
- package/dist/commands/update.js.map +1 -1
- package/dist/compile/install-plan.d.ts +45 -0
- package/dist/compile/install-plan.d.ts.map +1 -1
- package/dist/compile/install-plan.js +49 -6
- package/dist/compile/install-plan.js.map +1 -1
- package/dist/compile/loaders.d.ts.map +1 -1
- package/dist/compile/loaders.js +10 -1
- package/dist/compile/loaders.js.map +1 -1
- package/dist/compile/skill-format.d.ts +64 -0
- package/dist/compile/skill-format.d.ts.map +1 -1
- package/dist/compile/skill-format.js +133 -0
- package/dist/compile/skill-format.js.map +1 -1
- package/dist/discover/scanner.d.ts +20 -1
- package/dist/discover/scanner.d.ts.map +1 -1
- package/dist/discover/scanner.js +21 -3
- package/dist/discover/scanner.js.map +1 -1
- package/dist/doctor/git.d.ts +15 -0
- package/dist/doctor/git.d.ts.map +1 -1
- package/dist/doctor/git.js +28 -0
- package/dist/doctor/git.js.map +1 -1
- package/dist/doctor/migrations/artifact-source-drift.d.ts +41 -0
- package/dist/doctor/migrations/artifact-source-drift.d.ts.map +1 -0
- package/dist/doctor/migrations/artifact-source-drift.js +153 -0
- package/dist/doctor/migrations/artifact-source-drift.js.map +1 -0
- package/dist/doctor/migrations/context-doc-stale.d.ts +34 -0
- package/dist/doctor/migrations/context-doc-stale.d.ts.map +1 -0
- package/dist/doctor/migrations/context-doc-stale.js +130 -0
- package/dist/doctor/migrations/context-doc-stale.js.map +1 -0
- package/dist/doctor/migrations/index.d.ts.map +1 -1
- package/dist/doctor/migrations/index.js +14 -0
- package/dist/doctor/migrations/index.js.map +1 -1
- package/dist/operational/discover.d.ts.map +1 -1
- package/dist/operational/discover.js +3 -1
- package/dist/operational/discover.js.map +1 -1
- package/dist/operational/emit.d.ts +11 -0
- package/dist/operational/emit.d.ts.map +1 -1
- package/dist/operational/emit.js +33 -11
- package/dist/operational/emit.js.map +1 -1
- package/package.json +9 -2
|
@@ -44,6 +44,37 @@ function readExisting(absPath) {
|
|
|
44
44
|
}
|
|
45
45
|
return '';
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Lines in a string, counting an empty string as zero rather than one.
|
|
49
|
+
*
|
|
50
|
+
* `''.split('\n')` is `['']`, which would report a created empty file as one line
|
|
51
|
+
* and, worse, report every creation as `-1` because the absent side is `''`.
|
|
52
|
+
*/
|
|
53
|
+
function lineCount(content) {
|
|
54
|
+
if (content === '')
|
|
55
|
+
return 0;
|
|
56
|
+
return content.split('\n').length;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Describe one write, given the two sides both executors already hold.
|
|
60
|
+
*
|
|
61
|
+
* The single source of the per-file record, called by `executePlan` and
|
|
62
|
+
* `dryRunPlan` on the same two strings. That is what makes a dry run and a real
|
|
63
|
+
* run structurally unable to disagree — the property this module's header already
|
|
64
|
+
* claims for the path lists, extended to the counts
|
|
65
|
+
* (update-overwrites-authored-context/AC-2).
|
|
66
|
+
*
|
|
67
|
+
* `existed` is passed in rather than re-stat'ed: an empty existing file and an
|
|
68
|
+
* absent one both read as `''`, so presence cannot be recovered from the content.
|
|
69
|
+
*/
|
|
70
|
+
export function describeChange(path, existed, before, after) {
|
|
71
|
+
return {
|
|
72
|
+
path,
|
|
73
|
+
kind: existed ? 'overwrite' : 'create',
|
|
74
|
+
addedLines: lineCount(after),
|
|
75
|
+
removedLines: lineCount(before),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
47
78
|
// ---------------------------------------------------------------------------
|
|
48
79
|
// Real Executor
|
|
49
80
|
// ---------------------------------------------------------------------------
|
|
@@ -60,11 +91,12 @@ function readExisting(absPath) {
|
|
|
60
91
|
* @returns Report of what was written, skipped, and warnings.
|
|
61
92
|
*/
|
|
62
93
|
export function executePlan(plan, rootDir) {
|
|
63
|
-
const
|
|
94
|
+
const changes = [];
|
|
64
95
|
const filesSkipped = [];
|
|
65
96
|
for (const op of plan.ops) {
|
|
66
97
|
const absPath = join(rootDir, op.path);
|
|
67
98
|
const newContent = resolveContent(op, rootDir);
|
|
99
|
+
const existed = existsSync(absPath);
|
|
68
100
|
const existingContent = readExisting(absPath);
|
|
69
101
|
if (existingContent === newContent) {
|
|
70
102
|
filesSkipped.push(op.path);
|
|
@@ -76,9 +108,14 @@ export function executePlan(plan, rootDir) {
|
|
|
76
108
|
mkdirSync(dir, { recursive: true });
|
|
77
109
|
}
|
|
78
110
|
writeFileSync(absPath, newContent, 'utf8');
|
|
79
|
-
|
|
111
|
+
changes.push(describeChange(op.path, existed, existingContent, newContent));
|
|
80
112
|
}
|
|
81
|
-
return {
|
|
113
|
+
return {
|
|
114
|
+
changes,
|
|
115
|
+
filesWritten: changes.map((c) => c.path),
|
|
116
|
+
filesSkipped,
|
|
117
|
+
warnings: [...plan.warnings],
|
|
118
|
+
};
|
|
82
119
|
}
|
|
83
120
|
// ---------------------------------------------------------------------------
|
|
84
121
|
// Dry-Run Executor
|
|
@@ -94,19 +131,25 @@ export function executePlan(plan, rootDir) {
|
|
|
94
131
|
* @returns Report of what would be written, skipped, and warnings.
|
|
95
132
|
*/
|
|
96
133
|
export function dryRunPlan(plan, rootDir) {
|
|
97
|
-
const
|
|
134
|
+
const changes = [];
|
|
98
135
|
const filesSkipped = [];
|
|
99
136
|
for (const op of plan.ops) {
|
|
100
137
|
const absPath = join(rootDir, op.path);
|
|
101
138
|
const newContent = resolveContent(op, rootDir);
|
|
139
|
+
const existed = existsSync(absPath);
|
|
102
140
|
const existingContent = readExisting(absPath);
|
|
103
141
|
if (existingContent === newContent) {
|
|
104
142
|
filesSkipped.push(op.path);
|
|
105
143
|
}
|
|
106
144
|
else {
|
|
107
|
-
|
|
145
|
+
changes.push(describeChange(op.path, existed, existingContent, newContent));
|
|
108
146
|
}
|
|
109
147
|
}
|
|
110
|
-
return {
|
|
148
|
+
return {
|
|
149
|
+
changes,
|
|
150
|
+
filesWritten: changes.map((c) => c.path),
|
|
151
|
+
filesSkipped,
|
|
152
|
+
warnings: [...plan.warnings],
|
|
153
|
+
};
|
|
111
154
|
}
|
|
112
155
|
//# sourceMappingURL=install-plan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-plan.js","sourceRoot":"","sources":["../../src/compile/install-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"install-plan.js","sourceRoot":"","sources":["../../src/compile/install-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loaders.d.ts","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"loaders.d.ts","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI5D,OAAO,KAAK,EAAE,KAAK,EAAa,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMxE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAe3C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CA0DvE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,CAerD;AAqFD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAuB1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,SAAoB,GACjC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA0B1C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY,EAAE,GACpB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAgB1C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,EAAE,EACf,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GAC/E;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAwBzC;AAkCD,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAuEtE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA8CzF"}
|
package/dist/compile/loaders.js
CHANGED
|
@@ -16,6 +16,8 @@ import { readFileSync, readdirSync, existsSync, statSync } from 'node:fs';
|
|
|
16
16
|
import { join, basename, extname } from 'node:path';
|
|
17
17
|
import { parse as parseYaml } from 'yaml';
|
|
18
18
|
import { toPosixRelative } from '../core/paths.js';
|
|
19
|
+
import { VERSION } from '../core/version.js';
|
|
20
|
+
import { stampBody } from './skill-format.js';
|
|
19
21
|
// ---------------------------------------------------------------------------
|
|
20
22
|
// Constants
|
|
21
23
|
// ---------------------------------------------------------------------------
|
|
@@ -323,7 +325,14 @@ export function resolveSkillBodies(skills, opts) {
|
|
|
323
325
|
for (const w of [...ctxPass.warnings, ...guidancePass.warnings, ...glossaryPass.warnings]) {
|
|
324
326
|
warnings.push(`${skill.meta.name}: ${w}`);
|
|
325
327
|
}
|
|
326
|
-
|
|
328
|
+
// Stamped here, once, rather than in each of the five adapters: this is the
|
|
329
|
+
// single point every platform's output flows through, so no adapter can drift
|
|
330
|
+
// and none needed editing. Both file families that embed the body — the
|
|
331
|
+
// canonical `.aidlc/skills/*.md` copy and copilot's `.github/skills/*/SKILL.md`
|
|
332
|
+
// — inherit it; the claude-code and cursor artifacts are pointer shims that
|
|
333
|
+
// carry no prose, so they carry no marker and nothing is lost
|
|
334
|
+
// (update-overwrites-authored-context/AC-10, AC-11).
|
|
335
|
+
return { ...skill, body: stampBody(glossaryPass.resolved, VERSION) };
|
|
327
336
|
});
|
|
328
337
|
return { skills: resolvedSkills, warnings };
|
|
329
338
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,70 @@
|
|
|
28
28
|
* @module
|
|
29
29
|
*/
|
|
30
30
|
import type { Skill } from '../core/types.js';
|
|
31
|
+
/** What a generated file says about itself, or `null` when it says nothing. */
|
|
32
|
+
export interface GeneratedMarker {
|
|
33
|
+
/** The CLI version that emitted the file. */
|
|
34
|
+
version: string;
|
|
35
|
+
/** The recorded hash of everything below the marker line. */
|
|
36
|
+
sha256: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build the marker block for a body, with the hash already correct.
|
|
40
|
+
*
|
|
41
|
+
* `body` is the text that will follow the marker. The returned string is the
|
|
42
|
+
* marker lines plus a blank line, ready to prepend.
|
|
43
|
+
*/
|
|
44
|
+
export declare function markerFor(version: string, body: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Prepend the marker to a body, replacing any marker already there.
|
|
47
|
+
*
|
|
48
|
+
* Idempotent: re-stamping an already-stamped body yields the same result rather
|
|
49
|
+
* than nesting markers, so it is safe on a body that has been round-tripped.
|
|
50
|
+
*/
|
|
51
|
+
export declare function stampBody(body: string, version: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Read what a generated file claims about itself.
|
|
54
|
+
*
|
|
55
|
+
* Searches the whole file rather than only its first line, because the copilot
|
|
56
|
+
* adapter prepends an activation directive above the body while the canonical copy
|
|
57
|
+
* does not — the marker's position differs by platform, its presence does not.
|
|
58
|
+
*/
|
|
59
|
+
export declare function readMarker(content: string): GeneratedMarker | null;
|
|
60
|
+
/**
|
|
61
|
+
* The content a marker vouches for: everything after the marker block.
|
|
62
|
+
*
|
|
63
|
+
* Returns `null` when there is no marker, which the caller must distinguish from
|
|
64
|
+
* an empty body — one means "not a generated file", the other "generated and
|
|
65
|
+
* empty".
|
|
66
|
+
*/
|
|
67
|
+
export declare function contentBelowMarker(content: string): string | null;
|
|
68
|
+
/** Remove a marker block from a body, leaving the bare prose. */
|
|
69
|
+
export declare function stripMarker(content: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Is this generated file still exactly what the emitter wrote?
|
|
72
|
+
*
|
|
73
|
+
* Three distinguishable answers, which is what makes the doctor report useful
|
|
74
|
+
* rather than merely red (update-overwrites-authored-context/AC-16):
|
|
75
|
+
*
|
|
76
|
+
* - `unmarked` — emitted before markers existed, or hand-created. Not evidence of
|
|
77
|
+
* an edit.
|
|
78
|
+
* - `version-skew` — emitted by a different CLI version. Remedy is `aidlc update`.
|
|
79
|
+
* - `edited` — same version, different content. Somebody changed the artifact.
|
|
80
|
+
* - `clean` — matches.
|
|
81
|
+
*/
|
|
82
|
+
export type MarkerVerdict = {
|
|
83
|
+
state: 'unmarked';
|
|
84
|
+
} | {
|
|
85
|
+
state: 'version-skew';
|
|
86
|
+
emittedBy: string;
|
|
87
|
+
} | {
|
|
88
|
+
state: 'edited';
|
|
89
|
+
emittedBy: string;
|
|
90
|
+
} | {
|
|
91
|
+
state: 'clean';
|
|
92
|
+
emittedBy: string;
|
|
93
|
+
};
|
|
94
|
+
export declare function verifyMarker(content: string, runningVersion: string): MarkerVerdict;
|
|
31
95
|
/**
|
|
32
96
|
* Format a skill as its canonical file content: frontmatter, then body.
|
|
33
97
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-format.d.ts","sourceRoot":"","sources":["../../src/compile/skill-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"skill-format.d.ts","sourceRoot":"","sources":["../../src/compile/skill-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAwC9C,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB;AAcD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ/D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAIlE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBjE;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GACrB;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,aAAa,CAanF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAUzD"}
|
|
@@ -27,6 +27,139 @@
|
|
|
27
27
|
*
|
|
28
28
|
* @module
|
|
29
29
|
*/
|
|
30
|
+
import { createHash } from 'node:crypto';
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Generated marker
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
/**
|
|
35
|
+
* The self-describing marker every generated skill body carries.
|
|
36
|
+
*
|
|
37
|
+
* Two jobs. To a reader it says the file is a build artifact and names what to
|
|
38
|
+
* edit instead — the absence of that sentence is why authors put project prose
|
|
39
|
+
* into these files and lost it to the next `aidlc update`. To `aidlc doctor` it is
|
|
40
|
+
* the whole divergence check: version plus a hash of the body beneath it, so drift
|
|
41
|
+
* is detectable from the artifact alone.
|
|
42
|
+
*
|
|
43
|
+
* **Why a body comment and not a frontmatter key.** `formatCanonicalSkill` below
|
|
44
|
+
* emits a fixed five-field whitelist, so an unknown frontmatter key is silently
|
|
45
|
+
* dropped — the same fact `compile/roadmap-skill.ts` already works around. And no
|
|
46
|
+
* uniform frontmatter field is available: this module's header records that
|
|
47
|
+
* `cursor.ts` validates *no* `name` while `claude-code.ts` validates `name` equals
|
|
48
|
+
* the directory name, so one shared frontmatter shape breaks one validator or the
|
|
49
|
+
* other. A body comment survives every adapter untouched and renders invisibly.
|
|
50
|
+
*
|
|
51
|
+
* **Why the hash is worth having at all.** The obvious divergence check — rebuild
|
|
52
|
+
* the plan and diff it — routes through `renderKnowledgeSection` →
|
|
53
|
+
* `knowledge/engine.js` → `node:sqlite`, which would put Node's experimental
|
|
54
|
+
* warning on the default path of `aidlc doctor`. That hazard is documented in
|
|
55
|
+
* `doctor/migrations/knowledge-stale-sources.ts` and pinned by a test. Hashing
|
|
56
|
+
* makes the check a pure file read instead.
|
|
57
|
+
*
|
|
58
|
+
* Requirements: update-overwrites-authored-context/AC-10, AC-11, AC-14, AC-16
|
|
59
|
+
*/
|
|
60
|
+
const MARKER_PREFIX = '<!-- aidlc:generated';
|
|
61
|
+
/** Matches the machine-readable first line and captures version and hash. */
|
|
62
|
+
const MARKER_RE = /^<!-- aidlc:generated version=(\S+) sha256=([0-9a-f]+) -->$/m;
|
|
63
|
+
/** Characters of hex kept from the digest. Enough to make collision fanciful, short enough to read. */
|
|
64
|
+
const HASH_LENGTH = 12;
|
|
65
|
+
/**
|
|
66
|
+
* Hash the part of a file the marker vouches for: everything after its own line.
|
|
67
|
+
*
|
|
68
|
+
* Excluding the marker line is what makes the hash self-consistent — including it
|
|
69
|
+
* would require knowing the hash before computing it. Content is hashed exactly as
|
|
70
|
+
* the CLI writes it, which is always `\n`-terminated lines, so a CRLF checkout
|
|
71
|
+
* cannot silently flip every hash (update-overwrites-authored-context/R2).
|
|
72
|
+
*/
|
|
73
|
+
function hashBelowMarker(contentBelow) {
|
|
74
|
+
return createHash('sha256').update(contentBelow, 'utf8').digest('hex').slice(0, HASH_LENGTH);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build the marker block for a body, with the hash already correct.
|
|
78
|
+
*
|
|
79
|
+
* `body` is the text that will follow the marker. The returned string is the
|
|
80
|
+
* marker lines plus a blank line, ready to prepend.
|
|
81
|
+
*/
|
|
82
|
+
export function markerFor(version, body) {
|
|
83
|
+
return [
|
|
84
|
+
`${MARKER_PREFIX} version=${version} sha256=${hashBelowMarker(body)} -->`,
|
|
85
|
+
'<!-- Generated file — do not edit; the next `aidlc update` overwrites it.',
|
|
86
|
+
' Framework prose: edit the canonical body in @rasensio/aidlc-content.',
|
|
87
|
+
' Project prose: edit .aidlc/context/*.md — those survive regeneration. -->',
|
|
88
|
+
'',
|
|
89
|
+
].join('\n');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Prepend the marker to a body, replacing any marker already there.
|
|
93
|
+
*
|
|
94
|
+
* Idempotent: re-stamping an already-stamped body yields the same result rather
|
|
95
|
+
* than nesting markers, so it is safe on a body that has been round-tripped.
|
|
96
|
+
*/
|
|
97
|
+
export function stampBody(body, version) {
|
|
98
|
+
const bare = stripMarker(body);
|
|
99
|
+
return `${markerFor(version, bare)}${bare}`;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Read what a generated file claims about itself.
|
|
103
|
+
*
|
|
104
|
+
* Searches the whole file rather than only its first line, because the copilot
|
|
105
|
+
* adapter prepends an activation directive above the body while the canonical copy
|
|
106
|
+
* does not — the marker's position differs by platform, its presence does not.
|
|
107
|
+
*/
|
|
108
|
+
export function readMarker(content) {
|
|
109
|
+
const m = MARKER_RE.exec(content);
|
|
110
|
+
if (!m)
|
|
111
|
+
return null;
|
|
112
|
+
return { version: m[1], sha256: m[2] };
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The content a marker vouches for: everything after the marker block.
|
|
116
|
+
*
|
|
117
|
+
* Returns `null` when there is no marker, which the caller must distinguish from
|
|
118
|
+
* an empty body — one means "not a generated file", the other "generated and
|
|
119
|
+
* empty".
|
|
120
|
+
*/
|
|
121
|
+
export function contentBelowMarker(content) {
|
|
122
|
+
const m = MARKER_RE.exec(content);
|
|
123
|
+
if (!m)
|
|
124
|
+
return null;
|
|
125
|
+
// Everything after the machine line, split so the fixed-shape guidance comment
|
|
126
|
+
// can be consumed line by line. `markerFor` emits exactly one machine line, then
|
|
127
|
+
// a guidance comment closing with `-->`, then one blank line.
|
|
128
|
+
const lines = content.slice(m.index + m[0].length).split('\n');
|
|
129
|
+
let i = 0;
|
|
130
|
+
// `slice` starts mid-line, so index 0 is the remainder of the machine line — the
|
|
131
|
+
// empty string when the marker line ends there, as it always does.
|
|
132
|
+
if (lines[i] === '')
|
|
133
|
+
i++;
|
|
134
|
+
while (i < lines.length && !lines[i].trimEnd().endsWith('-->'))
|
|
135
|
+
i++;
|
|
136
|
+
i++; // past the guidance comment's closing line; the body starts on the next
|
|
137
|
+
// No blank-line skip here on purpose. `markerFor` puts no separator between the
|
|
138
|
+
// guidance comment and the body, so consuming a blank line would silently eat a
|
|
139
|
+
// body that legitimately begins with one — and the hash would then be over
|
|
140
|
+
// different text than the body, failing on files nobody had touched.
|
|
141
|
+
return lines.slice(i).join('\n');
|
|
142
|
+
}
|
|
143
|
+
/** Remove a marker block from a body, leaving the bare prose. */
|
|
144
|
+
export function stripMarker(content) {
|
|
145
|
+
const below = contentBelowMarker(content);
|
|
146
|
+
return below === null ? content : below;
|
|
147
|
+
}
|
|
148
|
+
export function verifyMarker(content, runningVersion) {
|
|
149
|
+
const marker = readMarker(content);
|
|
150
|
+
if (!marker)
|
|
151
|
+
return { state: 'unmarked' };
|
|
152
|
+
if (marker.version !== runningVersion) {
|
|
153
|
+
// Reported as skew without hashing: at a different version the recorded hash
|
|
154
|
+
// is over different framework prose, so a mismatch would say nothing about
|
|
155
|
+
// whether a human touched it.
|
|
156
|
+
return { state: 'version-skew', emittedBy: marker.version };
|
|
157
|
+
}
|
|
158
|
+
const below = contentBelowMarker(content) ?? '';
|
|
159
|
+
return hashBelowMarker(below) === marker.sha256
|
|
160
|
+
? { state: 'clean', emittedBy: marker.version }
|
|
161
|
+
: { state: 'edited', emittedBy: marker.version };
|
|
162
|
+
}
|
|
30
163
|
/**
|
|
31
164
|
* Format a skill as its canonical file content: frontmatter, then body.
|
|
32
165
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-format.js","sourceRoot":"","sources":["../../src/compile/skill-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"skill-format.js","sourceRoot":"","sources":["../../src/compile/skill-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,15 @@ export interface WriteContextDocsResult {
|
|
|
50
50
|
written: string[];
|
|
51
51
|
/** Paths left alone because a human owns them, relative to projectRoot. */
|
|
52
52
|
preserved: string[];
|
|
53
|
+
/**
|
|
54
|
+
* Paths `--force` asked to overwrite and was refused, relative to projectRoot.
|
|
55
|
+
*
|
|
56
|
+
* Separate from `preserved` because the operator asked for the overwrite here.
|
|
57
|
+
* Reporting them together would make a declined `--force` indistinguishable from
|
|
58
|
+
* a run that never tried, which is the same ambiguity that let the original
|
|
59
|
+
* unconditional write go unnoticed.
|
|
60
|
+
*/
|
|
61
|
+
declined: string[];
|
|
53
62
|
}
|
|
54
63
|
/**
|
|
55
64
|
* Write generated Context_Docs to `.aidlc/context/`.
|
|
@@ -72,5 +81,15 @@ export interface WriteContextDocsResult {
|
|
|
72
81
|
*/
|
|
73
82
|
export declare function writeContextDocs(projectRoot: string, result: ScanResult, opts?: {
|
|
74
83
|
force?: boolean;
|
|
75
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Asked once, before any write, when `force` would destroy hand-owned docs.
|
|
86
|
+
*
|
|
87
|
+
* `force` is one flag away from the unrecoverable case: the better text exists
|
|
88
|
+
* nowhere but git history, and nothing re-running produces it again. Declining
|
|
89
|
+
* is recoverable, overwriting is not, so an absent callback under `--force`
|
|
90
|
+
* declines rather than proceeding — the caller must opt in to being asked
|
|
91
|
+
* (update-overwrites-authored-context/AC-13, NFR-3).
|
|
92
|
+
*/
|
|
93
|
+
confirmOverwrite?: (paths: string[]) => Promise<boolean>;
|
|
94
|
+
}): Promise<WriteContextDocsResult>;
|
|
76
95
|
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/discover/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB;AAwqBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAe5D;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA2C3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA6ChE;AA2CD,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/discover/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB;AAwqBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAe5D;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA2C3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA6ChE;AA2CD,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE;IACJ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD,GACL,OAAO,CAAC,sBAAsB,CAAC,CA0CjC"}
|
package/dist/discover/scanner.js
CHANGED
|
@@ -819,26 +819,44 @@ function isMachineOwned(path) {
|
|
|
819
819
|
* @param opts.force - Overwrite even hand-edited docs.
|
|
820
820
|
* @returns Which paths were written and which were preserved.
|
|
821
821
|
*/
|
|
822
|
-
export function writeContextDocs(projectRoot, result, opts = {}) {
|
|
822
|
+
export async function writeContextDocs(projectRoot, result, opts = {}) {
|
|
823
823
|
const contextDir = join(projectRoot, '.aidlc', 'context');
|
|
824
824
|
mkdirSync(contextDir, { recursive: true });
|
|
825
825
|
const docs = [
|
|
826
826
|
{ rel: 'style-guide.md', body: renderStyleGuide(result) },
|
|
827
827
|
{ rel: 'architecture.md', body: renderArchitectureDoc(result) },
|
|
828
828
|
];
|
|
829
|
+
const handOwned = docs
|
|
830
|
+
.filter(({ rel }) => !isMachineOwned(join(contextDir, rel)))
|
|
831
|
+
.map(({ rel }) => `.aidlc/context/${rel}`);
|
|
832
|
+
// Resolved before the loop so the decision covers the whole run: a prompt per
|
|
833
|
+
// file would let someone answer yes to the first and lose the second to
|
|
834
|
+
// momentum.
|
|
835
|
+
let forceHandOwned = false;
|
|
836
|
+
if (opts.force === true && handOwned.length > 0) {
|
|
837
|
+
forceHandOwned = opts.confirmOverwrite ? await opts.confirmOverwrite(handOwned) : false;
|
|
838
|
+
}
|
|
829
839
|
const written = [];
|
|
830
840
|
const preserved = [];
|
|
841
|
+
const declined = [];
|
|
831
842
|
for (const { rel, body } of docs) {
|
|
832
843
|
const abs = join(contextDir, rel);
|
|
833
844
|
const relPath = `.aidlc/context/${rel}`;
|
|
834
|
-
|
|
845
|
+
const machineOwned = isMachineOwned(abs);
|
|
846
|
+
if (machineOwned || forceHandOwned) {
|
|
835
847
|
writeFileSync(abs, body, 'utf8');
|
|
836
848
|
written.push(relPath);
|
|
837
849
|
}
|
|
850
|
+
else if (opts.force === true) {
|
|
851
|
+
// Asked and refused (or nobody could be asked). Distinct from `preserved`:
|
|
852
|
+
// the operator explicitly requested the overwrite, so silence would look
|
|
853
|
+
// like the flag had worked.
|
|
854
|
+
declined.push(relPath);
|
|
855
|
+
}
|
|
838
856
|
else {
|
|
839
857
|
preserved.push(relPath);
|
|
840
858
|
}
|
|
841
859
|
}
|
|
842
|
-
return { written, preserved };
|
|
860
|
+
return { written, preserved, declined };
|
|
843
861
|
}
|
|
844
862
|
//# sourceMappingURL=scanner.js.map
|