ctxr-cli 0.4.1 → 0.5.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/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +55 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/rollup-write.d.ts.map +1 -1
- package/dist/commands/rollup-write.js +8 -0
- package/dist/commands/rollup-write.js.map +1 -1
- package/dist/commands/verify.d.ts +9 -2
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +46 -23
- package/dist/commands/verify.js.map +1 -1
- package/dist/config/defaults.d.ts +18 -2
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +18 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +14 -4
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +45 -9
- package/dist/config/schema.js.map +1 -1
- package/dist/core/agents-doc.d.ts +63 -12
- package/dist/core/agents-doc.d.ts.map +1 -1
- package/dist/core/agents-doc.js +191 -41
- package/dist/core/agents-doc.js.map +1 -1
- package/dist/core/checks/harness-portability-checks.d.ts +12 -0
- package/dist/core/checks/harness-portability-checks.d.ts.map +1 -0
- package/dist/core/checks/harness-portability-checks.js +39 -0
- package/dist/core/checks/harness-portability-checks.js.map +1 -0
- package/dist/core/checks/integrity-checks.d.ts +25 -1
- package/dist/core/checks/integrity-checks.d.ts.map +1 -1
- package/dist/core/checks/integrity-checks.js +136 -3
- package/dist/core/checks/integrity-checks.js.map +1 -1
- package/dist/core/checks/manifest.d.ts.map +1 -1
- package/dist/core/checks/manifest.js +2 -0
- package/dist/core/checks/manifest.js.map +1 -1
- package/dist/core/checks/organize-checks.d.ts +12 -0
- package/dist/core/checks/organize-checks.d.ts.map +1 -1
- package/dist/core/checks/organize-checks.js +51 -1
- package/dist/core/checks/organize-checks.js.map +1 -1
- package/dist/core/convention-doc.d.ts +33 -0
- package/dist/core/convention-doc.d.ts.map +1 -0
- package/dist/core/convention-doc.js +110 -0
- package/dist/core/convention-doc.js.map +1 -0
- package/dist/core/conventions.d.ts +25 -5
- package/dist/core/conventions.d.ts.map +1 -1
- package/dist/core/conventions.js +65 -3
- package/dist/core/conventions.js.map +1 -1
- package/dist/core/fs/fenced-region.d.ts +38 -0
- package/dist/core/fs/fenced-region.d.ts.map +1 -1
- package/dist/core/fs/fenced-region.js +88 -2
- package/dist/core/fs/fenced-region.js.map +1 -1
- package/dist/core/migrations/registry.d.ts.map +1 -1
- package/dist/core/migrations/registry.js +6 -1
- package/dist/core/migrations/registry.js.map +1 -1
- package/dist/core/migrations/rename-conventions-path.d.ts +26 -0
- package/dist/core/migrations/rename-conventions-path.d.ts.map +1 -0
- package/dist/core/migrations/rename-conventions-path.js +86 -0
- package/dist/core/migrations/rename-conventions-path.js.map +1 -0
- package/dist/core/notes/list.js +2 -2
- package/dist/core/notes/list.js.map +1 -1
- package/dist/core/reconcile.d.ts.map +1 -1
- package/dist/core/reconcile.js +31 -4
- package/dist/core/reconcile.js.map +1 -1
- package/dist/core/rollup.d.ts +2 -2
- package/dist/core/rollup.d.ts.map +1 -1
- package/dist/core/rollup.js +24 -3
- package/dist/core/rollup.js.map +1 -1
- package/dist/core/write-lifecycle/path-gate.js +1 -1
- package/dist/core/write-lifecycle/path-gate.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/templates/agents/canonical.md +1 -7
- package/templates/agents/{store-conventions.md → conventions.md} +2 -4
- package/templates/agents/mission.md +5 -0
- package/templates/conventions/baseline-convention.md +60 -0
- package/templates/conventions/custom-convention-seed.md +21 -0
- package/templates/agents/store-conventions-empty.md +0 -7
|
@@ -2,9 +2,10 @@ import { readFile } from 'node:fs/promises';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { configuredAdapters, resolveAdapter } from '../../adapters/registry.js';
|
|
4
4
|
import { StoreConfigSchema, SUPPORTED_SCHEMA_VERSION } from '../../config/schema.js';
|
|
5
|
-
import { agentsMdPath } from '../agents-doc.js';
|
|
5
|
+
import { AGENTS_MD_CONVENTIONS_FENCE, AGENTS_MD_MISSION_FENCE, agentsMdPath, checkAgentsMdDrift, renderConventionsSection, renderMissionSection, } from '../agents-doc.js';
|
|
6
6
|
import { checkCatalogStale } from '../catalog/build.js';
|
|
7
|
-
import {
|
|
7
|
+
import { extractDocMetadata, scanConventions } from '../conventions.js';
|
|
8
|
+
import { readFencedRegion, removeFencedRegion } from '../fs/fenced-region.js';
|
|
8
9
|
import { buildGraphFromNotes, graphBuildOptions } from '../graph/model.js';
|
|
9
10
|
import { harnessEntryFence } from '../markers.js';
|
|
10
11
|
import { defineCheck } from './types.js';
|
|
@@ -157,7 +158,7 @@ function headingsOf(text) {
|
|
|
157
158
|
* copy-pasted into the entry file outside its managed fence — the way an
|
|
158
159
|
* operator reaching for "where do I put a Claude-only note" might otherwise
|
|
159
160
|
* duplicate a whole AGENTS.md section into CLAUDE.md instead of writing a
|
|
160
|
-
* harness-specific extra beneath the import (see the `
|
|
161
|
+
* harness-specific extra beneath the import (see the `conventions`
|
|
161
162
|
* fence's own guidance in `agents-doc.ts`).
|
|
162
163
|
*/
|
|
163
164
|
export const harnessEntryNoDuplicateConventionTextCheck = defineCheck({
|
|
@@ -227,6 +228,136 @@ export const noUnrecognizedConfigKeysCheck = defineCheck({
|
|
|
227
228
|
return { status: findings.length > 0 ? 'fail' : 'pass', findings };
|
|
228
229
|
},
|
|
229
230
|
});
|
|
231
|
+
/**
|
|
232
|
+
* harness-portability spec (inline-conventions-and-mission): "The entry
|
|
233
|
+
* document's inlined content matches its sources" — `AGENTS.md`'s inlined
|
|
234
|
+
* conventions/mission sections are derived content (rendered from
|
|
235
|
+
* `.contexture/conventions/*.md` and the configured mission path), so
|
|
236
|
+
* editing a source directly without regenerating `AGENTS.md` (e.g. bypassing
|
|
237
|
+
* `ctxr update`) leaves it silently stale. Reuses `checkAgentsMdDrift`, the
|
|
238
|
+
* same re-render-and-diff `ctxr verify --portable` uses, so the two commands
|
|
239
|
+
* can never disagree about whether a store is in sync.
|
|
240
|
+
*/
|
|
241
|
+
export const agentsMdInlinedContentCurrentCheck = defineCheck({
|
|
242
|
+
id: 'harness_portability.agents_md_inlined_content_current',
|
|
243
|
+
title: "AGENTS.md's inlined conventions and mission content match their source files",
|
|
244
|
+
severity: 'invariant',
|
|
245
|
+
capability: 'harness-portability',
|
|
246
|
+
scopes: ['store'],
|
|
247
|
+
async run(ctx) {
|
|
248
|
+
const drift = await checkAgentsMdDrift(ctx.storeRoot, ctx.config);
|
|
249
|
+
const findings = [
|
|
250
|
+
...drift.driftedConventions.map((conventionPath) => ({
|
|
251
|
+
code: 'harness_portability.agents_md_convention_drifted',
|
|
252
|
+
severity: 'error',
|
|
253
|
+
message: `AGENTS.md's "Store conventions" section no longer matches "${conventionPath}" — run \`ctxr update\`.`,
|
|
254
|
+
subject: conventionPath,
|
|
255
|
+
})),
|
|
256
|
+
...(drift.driftedMission
|
|
257
|
+
? [
|
|
258
|
+
{
|
|
259
|
+
code: 'harness_portability.agents_md_mission_drifted',
|
|
260
|
+
severity: 'error',
|
|
261
|
+
message: `AGENTS.md's "Mission" section no longer matches "${drift.driftedMission}" — run \`ctxr update\`.`,
|
|
262
|
+
subject: drift.driftedMission,
|
|
263
|
+
},
|
|
264
|
+
]
|
|
265
|
+
: []),
|
|
266
|
+
];
|
|
267
|
+
return { status: findings.length > 0 ? 'fail' : 'pass', findings };
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
/**
|
|
271
|
+
* A path's staged (index) content when it's part of this commit, else its
|
|
272
|
+
* current on-disk content — the pre-commit-hook analogue of
|
|
273
|
+
* `checkAgentsMdDrift`'s working-tree reads, so a staged-but-not-yet-merged
|
|
274
|
+
* edit to a source file is seen even though nothing has been committed yet.
|
|
275
|
+
* `null` means the path doesn't exist in either the staged set or on disk
|
|
276
|
+
* (deleted, or staged as a deletion).
|
|
277
|
+
*/
|
|
278
|
+
async function stagedOrDiskContent(storeRoot, staged, relativePath) {
|
|
279
|
+
const stagedFile = staged.find((f) => f.path === relativePath);
|
|
280
|
+
if (stagedFile)
|
|
281
|
+
return stagedFile.status === 'D' ? null : (stagedFile.content ?? null);
|
|
282
|
+
try {
|
|
283
|
+
return await readFile(path.join(storeRoot, relativePath), 'utf8');
|
|
284
|
+
}
|
|
285
|
+
catch (err) {
|
|
286
|
+
if (err.code === 'ENOENT')
|
|
287
|
+
return null;
|
|
288
|
+
throw err;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* write-lifecycle spec / harness-portability spec (inline-conventions-and-mission):
|
|
293
|
+
* "A commit that would leave the entry document stale is refused." The
|
|
294
|
+
* store-scope drift check above reads the working tree, which is the wrong
|
|
295
|
+
* source of truth for a pre-commit hook — an operator can edit a convention
|
|
296
|
+
* file, forget to run `ctxr update`, and `git add` only the convention file;
|
|
297
|
+
* the working tree would then have a regenerated AGENTS.md sitting right
|
|
298
|
+
* next to it only if they happened to run `ctxr update` first, which is
|
|
299
|
+
* exactly the step this check exists to enforce. So this reads STAGED
|
|
300
|
+
* content for any file this commit touches (falling back to disk for files
|
|
301
|
+
* the commit doesn't touch) and re-renders against that view instead.
|
|
302
|
+
*/
|
|
303
|
+
export const stagedAgentsMdInlinedContentCurrentCheck = defineCheck({
|
|
304
|
+
id: 'staged.agents_md_inlined_content_current',
|
|
305
|
+
title: 'A staged convention or mission change also stages a matching AGENTS.md regeneration',
|
|
306
|
+
severity: 'invariant',
|
|
307
|
+
capability: 'harness-portability',
|
|
308
|
+
scopes: ['staged'],
|
|
309
|
+
async run(ctx) {
|
|
310
|
+
const staged = ctx.staged ?? [];
|
|
311
|
+
const conventionsPrefix = ctx.config.harness.guidance_path.endsWith('/')
|
|
312
|
+
? ctx.config.harness.guidance_path
|
|
313
|
+
: `${ctx.config.harness.guidance_path}/`;
|
|
314
|
+
const missionPath = ctx.config.organize.mission_path;
|
|
315
|
+
const relevantSourceStaged = staged.some((f) => f.path.startsWith(conventionsPrefix) || f.path === missionPath);
|
|
316
|
+
if (!relevantSourceStaged)
|
|
317
|
+
return { status: 'pass', findings: [] };
|
|
318
|
+
const agentsMdStaged = staged.find((f) => f.path === 'AGENTS.md');
|
|
319
|
+
if (!agentsMdStaged || agentsMdStaged.content === undefined) {
|
|
320
|
+
return {
|
|
321
|
+
status: 'fail',
|
|
322
|
+
findings: [
|
|
323
|
+
{
|
|
324
|
+
code: 'staged.agents_md_inlined_content_current.not_staged',
|
|
325
|
+
severity: 'error',
|
|
326
|
+
message: 'This commit stages a change to an operator convention file or the mission document, but not AGENTS.md — run `ctxr update` and stage the result.',
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
const conventions = await scanConventions(ctx.storeRoot, ctx.config);
|
|
332
|
+
const effectiveConventions = await Promise.all(conventions.map(async (doc) => {
|
|
333
|
+
const raw = await stagedOrDiskContent(ctx.storeRoot, staged, doc.path);
|
|
334
|
+
return raw === null ? doc : extractDocMetadata(raw, doc.path);
|
|
335
|
+
}));
|
|
336
|
+
const freshConventions = renderConventionsSection(ctx.config, effectiveConventions).join('\n');
|
|
337
|
+
const stagedConventionsRegion = readFencedRegion(agentsMdStaged.content, AGENTS_MD_CONVENTIONS_FENCE).join('\n');
|
|
338
|
+
const findings = [];
|
|
339
|
+
if (freshConventions !== stagedConventionsRegion) {
|
|
340
|
+
findings.push({
|
|
341
|
+
code: 'staged.agents_md_inlined_content_current.conventions_mismatch',
|
|
342
|
+
severity: 'error',
|
|
343
|
+
message: 'The staged AGENTS.md does not reflect the staged convention file content — run `ctxr update` and re-stage AGENTS.md.',
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
if (missionPath) {
|
|
347
|
+
const missionRaw = await stagedOrDiskContent(ctx.storeRoot, staged, missionPath);
|
|
348
|
+
const freshMission = renderMissionSection(ctx.config, missionRaw).join('\n');
|
|
349
|
+
const stagedMissionRegion = readFencedRegion(agentsMdStaged.content, AGENTS_MD_MISSION_FENCE).join('\n');
|
|
350
|
+
if (freshMission !== stagedMissionRegion) {
|
|
351
|
+
findings.push({
|
|
352
|
+
code: 'staged.agents_md_inlined_content_current.mission_mismatch',
|
|
353
|
+
severity: 'error',
|
|
354
|
+
message: 'The staged AGENTS.md does not reflect the staged mission document content — run `ctxr update` and re-stage AGENTS.md.',
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return { status: findings.length > 0 ? 'fail' : 'pass', findings };
|
|
359
|
+
},
|
|
360
|
+
});
|
|
230
361
|
export const INTEGRITY_CHECKS = [
|
|
231
362
|
derivedArtifactStalenessCheck,
|
|
232
363
|
graphDanglingLinksCheck,
|
|
@@ -234,5 +365,7 @@ export const INTEGRITY_CHECKS = [
|
|
|
234
365
|
adapterCompatibilityCheck,
|
|
235
366
|
harnessEntryNoDuplicateConventionTextCheck,
|
|
236
367
|
noUnrecognizedConfigKeysCheck,
|
|
368
|
+
agentsMdInlinedContentCurrentCheck,
|
|
369
|
+
stagedAgentsMdInlinedContentCurrentCheck,
|
|
237
370
|
];
|
|
238
371
|
//# sourceMappingURL=integrity-checks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrity-checks.js","sourceRoot":"","sources":["../../../src/core/checks/integrity-checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;GASG;AACH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,WAAW,CAAC;IACvD,EAAE,EAAE,yBAAyB;IAC7B,KAAK,EAAE,qEAAqE;IAC5E,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,iBAAiB;IAC7B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1D,MAAM,mBAAmB,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,iCAAiC;gBACvC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,yBAAyB,KAAK,CAAC,OAAO,mDAAmD;gBAChH,OAAO,EAAE,KAAK,CAAC,IAAI;aACpB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACzF,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClE,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,+BAA+B;oBACrC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,0HAA0H;iBACpI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,wFAAwF;AACxF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAC;IACjD,EAAE,EAAE,sBAAsB;IAC1B,KAAK,EAAE,iCAAiC;IACxC,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,mBAAmB;IAC/B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,uDAAuD,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC/G,CAAC;QACD,MAAM,QAAQ,GAAc,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG;YAChH,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SAChD,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;IACpD,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,4CAA4C;IACnD,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,iBAAiB;IAC7B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,wBAAwB,EAAE,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,6BAA6B;oBACnC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,kCAAkC,GAAG,CAAC,MAAM,CAAC,cAAc,kCAAkC,wBAAwB,yBAAyB;oBACvJ,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,wBAAwB,EAAE;iBACrF;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;IACnD,EAAE,EAAE,wBAAwB;IAC5B,KAAK,EAAE,+EAA+E;IACtF,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,KAAK,MAAM,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,cAAc,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,uBAAuB;oBAC7B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACzD,OAAO,EAAE,WAAW,CAAC,EAAE;oBACvB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,WAAW,CAAC;IACpE,EAAE,EAAE,qDAAqD;IACzD,KAAK,EAAE,8EAA8E;IACrF,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,qBAAqB;IACjC,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,eAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,0DAA0D,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAClH,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,YAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,SAAS,CAAC,yCAAyC;gBACzG,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACnF,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,6CAA6C;wBACnD,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,IAAI,OAAO,CAAC,aAAa,6BAA6B,OAAO,gJAAgJ;wBACtN,OAAO,EAAE,OAAO,CAAC,aAAa;wBAC9B,OAAO,EAAE,EAAE,OAAO,EAAE;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,6BAA6B,GAAG,WAAW,CAAC;IACvD,EAAE,EAAE,mCAAmC;IACvC,KAAK,EAAE,gFAAgF;IACvF,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,iBAAiB;IAC7B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpG,MAAM,QAAQ,GAAc,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,+BAA+B;YACrC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,oCAAoC,GAAG,kMAAkM;YAClP,OAAO,EAAE,GAAG;SACb,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,6BAA6B;IAC7B,uBAAuB;IACvB,0BAA0B;IAC1B,yBAAyB;IACzB,0CAA0C;IAC1C,6BAA6B;CAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"integrity-checks.js","sourceRoot":"","sources":["../../../src/core/checks/integrity-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/core/checks/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/core/checks/manifest.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,eAAe,EAS5C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CATALOG_CHECKS } from './catalog-checks.js';
|
|
2
2
|
import { DISCLOSURE_CHECKS } from './disclosure-checks.js';
|
|
3
|
+
import { HARNESS_PORTABILITY_CHECKS } from './harness-portability-checks.js';
|
|
3
4
|
import { INTEGRITY_CHECKS } from './integrity-checks.js';
|
|
4
5
|
import { failClosedVisibilityCheck, failClosedVisibilityInvariantCheck } from '../notes/checks.js';
|
|
5
6
|
import { ORGANIZE_CHECKS } from './organize-checks.js';
|
|
@@ -16,5 +17,6 @@ export const CHECKS = [
|
|
|
16
17
|
...ORGANIZE_CHECKS,
|
|
17
18
|
...DISCLOSURE_CHECKS,
|
|
18
19
|
...INTEGRITY_CHECKS,
|
|
20
|
+
...HARNESS_PORTABILITY_CHECKS,
|
|
19
21
|
];
|
|
20
22
|
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/core/checks/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAA+B;IAChD,yBAAyB;IACzB,kCAAkC;IAClC,GAAG,sBAAsB;IACzB,GAAG,cAAc;IACjB,GAAG,eAAe;IAClB,GAAG,iBAAiB;IACpB,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/core/checks/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAA+B;IAChD,yBAAyB;IACzB,kCAAkC;IAClC,GAAG,sBAAsB;IACzB,GAAG,cAAc;IACjB,GAAG,eAAe;IAClB,GAAG,iBAAiB;IACpB,GAAG,gBAAgB;IACnB,GAAG,0BAA0B;CAC9B,CAAC"}
|
|
@@ -16,5 +16,17 @@ export declare const uningestedInboxCheck: import("./types.js").CheckDefinition;
|
|
|
16
16
|
export declare const catalogGapsLintCheck: import("./types.js").CheckDefinition;
|
|
17
17
|
/** context-organize spec (store-primitives-from-migration-audit D4): a rollup with no timestamp, or one whose backlinks have moved past it, reported not failed. */
|
|
18
18
|
export declare const rollupStaleCheck: import("./types.js").CheckDefinition;
|
|
19
|
+
/**
|
|
20
|
+
* harness-portability spec (inline-conventions-and-mission): "Generated
|
|
21
|
+
* sections render in a fixed order" — hand-written content interrupting the
|
|
22
|
+
* managed fences' contiguity blocks `ctxr update` from reordering them to
|
|
23
|
+
* the fixed layout (`reorderFencedRegions`' own conservative rule: never
|
|
24
|
+
* relocate content it can't be sure sits outside every managed section).
|
|
25
|
+
* Reported here as an observation, not by `doctor`: `doctor` runs only
|
|
26
|
+
* `severity: 'invariant'` checks (`src/commands/doctor.ts`), and a store
|
|
27
|
+
* whose sections are merely out of the preferred order still functions —
|
|
28
|
+
* this is exactly the report-don't-block condition lint exists for.
|
|
29
|
+
*/
|
|
30
|
+
export declare const agentsMdSectionOrderBlockedCheck: import("./types.js").CheckDefinition;
|
|
19
31
|
export declare const ORGANIZE_CHECKS: import("./types.js").CheckDefinition[];
|
|
20
32
|
//# sourceMappingURL=organize-checks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organize-checks.d.ts","sourceRoot":"","sources":["../../../src/core/checks/organize-checks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"organize-checks.d.ts","sourceRoot":"","sources":["../../../src/core/checks/organize-checks.ts"],"names":[],"mappings":"AAYA,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB,sCAiB3B,CAAC;AAEH,oVAAoV;AACpV,eAAO,MAAM,gBAAgB,sCAkB3B,CAAC;AAEH,mGAAmG;AACnG,eAAO,MAAM,oBAAoB,sCAqB/B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,sCAgB/B,CAAC;AAEH,oKAAoK;AACpK,eAAO,MAAM,gBAAgB,sCAqB3B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gCAAgC,sCA2B3C,CAAC;AAEH,eAAO,MAAM,eAAe,wCAO3B,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { AGENTS_MD_SECTION_ORDER, agentsMdPath } from '../agents-doc.js';
|
|
1
3
|
import { checkCatalogCoverage } from '../catalog/build.js';
|
|
4
|
+
import { reorderFencedRegions } from '../fs/fenced-region.js';
|
|
2
5
|
import { orphans } from '../graph/query.js';
|
|
3
6
|
import { hasSourceIdentity } from '../ingest/identity.js';
|
|
4
7
|
import { findStaleRollups } from '../rollup.js';
|
|
@@ -116,5 +119,52 @@ export const rollupStaleCheck = defineCheck({
|
|
|
116
119
|
return { status: findings.length > 0 ? 'fail' : 'pass', findings };
|
|
117
120
|
},
|
|
118
121
|
});
|
|
119
|
-
|
|
122
|
+
/**
|
|
123
|
+
* harness-portability spec (inline-conventions-and-mission): "Generated
|
|
124
|
+
* sections render in a fixed order" — hand-written content interrupting the
|
|
125
|
+
* managed fences' contiguity blocks `ctxr update` from reordering them to
|
|
126
|
+
* the fixed layout (`reorderFencedRegions`' own conservative rule: never
|
|
127
|
+
* relocate content it can't be sure sits outside every managed section).
|
|
128
|
+
* Reported here as an observation, not by `doctor`: `doctor` runs only
|
|
129
|
+
* `severity: 'invariant'` checks (`src/commands/doctor.ts`), and a store
|
|
130
|
+
* whose sections are merely out of the preferred order still functions —
|
|
131
|
+
* this is exactly the report-don't-block condition lint exists for.
|
|
132
|
+
*/
|
|
133
|
+
export const agentsMdSectionOrderBlockedCheck = defineCheck({
|
|
134
|
+
id: 'harness_portability.agents_md_section_order_blocked',
|
|
135
|
+
title: "AGENTS.md's managed sections can be reordered to the standard layout",
|
|
136
|
+
severity: 'observation',
|
|
137
|
+
capability: 'harness-portability',
|
|
138
|
+
scopes: ['store'],
|
|
139
|
+
async run(ctx) {
|
|
140
|
+
let content;
|
|
141
|
+
try {
|
|
142
|
+
content = await readFile(agentsMdPath(ctx.storeRoot), 'utf8');
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
if (err.code !== 'ENOENT')
|
|
146
|
+
throw err;
|
|
147
|
+
return { status: 'skip', skipReason: 'AGENTS.md has not been generated yet — run `ctxr update`', findings: [] };
|
|
148
|
+
}
|
|
149
|
+
const { blocked } = reorderFencedRegions(content, AGENTS_MD_SECTION_ORDER);
|
|
150
|
+
const findings = blocked
|
|
151
|
+
? [
|
|
152
|
+
{
|
|
153
|
+
code: 'harness_portability.agents_md_section_order_blocked',
|
|
154
|
+
severity: 'info',
|
|
155
|
+
message: 'AGENTS.md has hand-written content between two managed sections, so `ctxr update` cannot reorder them to the standard layout. Move the hand-written content outside every managed section, then re-run `ctxr update`.',
|
|
156
|
+
},
|
|
157
|
+
]
|
|
158
|
+
: [];
|
|
159
|
+
return { status: findings.length > 0 ? 'fail' : 'pass', findings };
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
export const ORGANIZE_CHECKS = [
|
|
163
|
+
orphanNotesCheck,
|
|
164
|
+
brokenLinksCheck,
|
|
165
|
+
uningestedInboxCheck,
|
|
166
|
+
catalogGapsLintCheck,
|
|
167
|
+
rollupStaleCheck,
|
|
168
|
+
agentsMdSectionOrderBlockedCheck,
|
|
169
|
+
];
|
|
120
170
|
//# sourceMappingURL=organize-checks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organize-checks.js","sourceRoot":"","sources":["../../../src/core/checks/organize-checks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"organize-checks.js","sourceRoot":"","sources":["../../../src/core/checks/organize-checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,iBAAiB,GAAG,uDAAuD,CAAC;AAElF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;IAC1C,EAAE,EAAE,uBAAuB;IAC3B,KAAK,EAAE,+BAA+B;IACtC,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,kBAAkB;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAc,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI,EAAE,2BAA2B;YAC1C,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,oVAAoV;AACpV,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;IAC1C,EAAE,EAAE,uBAAuB;IAC3B,KAAK,EAAE,+BAA+B;IACtC,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,kBAAkB;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAc,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG;YAChH,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SAChD,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,mGAAmG;AACnG,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC9C,EAAE,EAAE,oCAAoC;IACxC,KAAK,EAAE,iCAAiC;IACxC,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,kBAAkB;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACvD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;YAC9B,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC;QACvC,MAAM,QAAQ,GAAc,KAAK;aAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aAC1E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,IAAI,EAAE,oCAAoC;YAC1C,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,8CAA8C;YACpE,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC,CAAC,CAAC;QACN,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC9C,EAAE,EAAE,uBAAuB;IAC3B,KAAK,EAAE,6BAA6B;IACpC,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,iBAAiB;IAC7B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAc,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,0BAA0B;YAChC,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI,QAAQ,4CAA4C;YACjE,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,oKAAoK;AACpK,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;IAC1C,EAAE,EAAE,uBAAuB;IAC3B,KAAK,EAAE,mEAAmE;IAC1E,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,kBAAkB;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAc,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,MAAM;YAChB,OAAO,EACL,KAAK,CAAC,QAAQ,KAAK,IAAI;gBACrB,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,0DAA0D;gBAC5E,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,0BAA0B,KAAK,CAAC,cAAe,CAAC,IAAI,uCAAuC;YACjH,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;SAC5E,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,WAAW,CAAC;IAC1D,EAAE,EAAE,qDAAqD;IACzD,KAAK,EAAE,sEAAsE;IAC7E,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,qBAAqB;IACjC,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,GAAG,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,0DAA0D,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClH,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAc,OAAO;YACjC,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,qDAAqD;oBAC3D,QAAQ,EAAE,MAAM;oBAChB,OAAO,EACL,uNAAuN;iBAC1N;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gBAAgB;IAChB,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,gCAAgC;CACjC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { StoreConfig } from '../config/schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* compose-store-guidance-documents: the shipped baseline convention,
|
|
4
|
+
* rendered from this store's own configuration — never a shipped profile's
|
|
5
|
+
* or one deployment's names. This is what `syncBaselineConvention` writes;
|
|
6
|
+
* it is never composed with anything else. `AGENTS.md`'s "Store
|
|
7
|
+
* conventions" section (inline-conventions-and-mission's
|
|
8
|
+
* `scanConventions`/`renderConventionsSection`) inlines it as one of
|
|
9
|
+
* however many convention files the guidance directory holds, exactly like
|
|
10
|
+
* any operator-authored one.
|
|
11
|
+
*/
|
|
12
|
+
export declare function renderBaselineConvention(config: StoreConfig): string;
|
|
13
|
+
/**
|
|
14
|
+
* compose-store-guidance-documents: contexture-owned, the same way a
|
|
15
|
+
* shipped skill copy is (`syncShippedSkills` in skills.ts) — written by
|
|
16
|
+
* `ctxr init`, rewritten wholesale by `ctxr update` on drift, never
|
|
17
|
+
* hand-edited. A single file, so this is simpler than the skills sync (no
|
|
18
|
+
* directory scan, no orphan cleanup): read-compare-write, reporting whether
|
|
19
|
+
* it changed.
|
|
20
|
+
*/
|
|
21
|
+
export declare function syncBaselineConvention(root: string, config: StoreConfig): Promise<{
|
|
22
|
+
changed: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* The operator's own convention source, seeded once with heading prompts
|
|
26
|
+
* only — no content contexture would be guessing at — and never touched
|
|
27
|
+
* again once it exists (unlike the baseline file, this one is
|
|
28
|
+
* operator-owned).
|
|
29
|
+
*/
|
|
30
|
+
export declare function seedCustomConventionFile(root: string, config: StoreConfig): Promise<{
|
|
31
|
+
created: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
//# sourceMappingURL=convention-doc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convention-doc.d.ts","sourceRoot":"","sources":["../../src/core/convention-doc.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA4CvD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAYpE;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAa7G;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAW/G"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { mkdir, readFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { DEFAULT_BASELINE_CONVENTION_FILE_NAME, DEFAULT_CUSTOM_CONVENTION_FILE_NAME } from '../config/defaults.js';
|
|
4
|
+
import { writeFileAtomic } from './fs/atomic.js';
|
|
5
|
+
import { packagedTemplate, substituteBlock } from './templates.js';
|
|
6
|
+
function conventionTemplate(name) {
|
|
7
|
+
return packagedTemplate('conventions', name);
|
|
8
|
+
}
|
|
9
|
+
function directoryDefaultsList(config) {
|
|
10
|
+
const entries = Object.entries(config.visibility.directory_defaults);
|
|
11
|
+
if (entries.length === 0) {
|
|
12
|
+
return ['- (none configured — every note without an explicit value resolves to the store default context)'];
|
|
13
|
+
}
|
|
14
|
+
return entries.map(([prefix, value]) => `- \`${prefix}\` → \`${value}\``);
|
|
15
|
+
}
|
|
16
|
+
function hardWallsList(config) {
|
|
17
|
+
const { hard_walls: hardWalls } = config.disclosure;
|
|
18
|
+
if (hardWalls.length === 0)
|
|
19
|
+
return ['- (none configured)'];
|
|
20
|
+
return hardWalls.map((wall) => {
|
|
21
|
+
const scope = wall.note_path_prefix ? `under \`${wall.note_path_prefix}\`` : '(every path)';
|
|
22
|
+
const audience = wall.audience === '*' ? 'every audience' : `\`${wall.audience}\``;
|
|
23
|
+
const except = wall.except && wall.except.length > 0 ? `, except ${wall.except.map((a) => `\`${a}\``).join(', ')}` : '';
|
|
24
|
+
return `- ${audience} ${scope} → **${wall.verdict.toUpperCase()}**${except}`;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function internalAudiencesList(config) {
|
|
28
|
+
const { internal_audiences: internalAudiences } = config.disclosure;
|
|
29
|
+
if (internalAudiences.length === 0)
|
|
30
|
+
return ['- (none configured — every audience is external)'];
|
|
31
|
+
return internalAudiences.map((name) => `- \`${name}\``);
|
|
32
|
+
}
|
|
33
|
+
function relationVocabularyLines(config) {
|
|
34
|
+
const { relations } = config.retrieval;
|
|
35
|
+
if (relations.length === 0) {
|
|
36
|
+
return ['This store declares no relation vocabulary (`retrieval.relations`) — every link is untyped.'];
|
|
37
|
+
}
|
|
38
|
+
const named = relations.map((name) => `**${name}**`).join(', ');
|
|
39
|
+
return [
|
|
40
|
+
`This store's configured relation vocabulary, in link-section order: ${named}. A link under one of these section headings in a note's body is typed accordingly; a link under any other heading is untyped.`,
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* compose-store-guidance-documents: the shipped baseline convention,
|
|
45
|
+
* rendered from this store's own configuration — never a shipped profile's
|
|
46
|
+
* or one deployment's names. This is what `syncBaselineConvention` writes;
|
|
47
|
+
* it is never composed with anything else. `AGENTS.md`'s "Store
|
|
48
|
+
* conventions" section (inline-conventions-and-mission's
|
|
49
|
+
* `scanConventions`/`renderConventionsSection`) inlines it as one of
|
|
50
|
+
* however many convention files the guidance directory holds, exactly like
|
|
51
|
+
* any operator-authored one.
|
|
52
|
+
*/
|
|
53
|
+
export function renderBaselineConvention(config) {
|
|
54
|
+
let text = conventionTemplate('baseline-convention')
|
|
55
|
+
.replaceAll('__VISIBILITY_FIELD__', config.fields.visibility)
|
|
56
|
+
.replaceAll('__DEFAULT_CONTEXT__', config.visibility.default_context)
|
|
57
|
+
.replaceAll('__ARCHIVE_PATH__', config.organize.archive_path)
|
|
58
|
+
.replaceAll('__DEFAULT_BRANCH__', config.git.default_branch)
|
|
59
|
+
.replaceAll('__WORKTREES_PATH__', config.session.worktrees_path);
|
|
60
|
+
text = substituteBlock(text, '__DIRECTORY_DEFAULTS_TABLE__', directoryDefaultsList(config));
|
|
61
|
+
text = substituteBlock(text, '__HARD_WALLS_LIST__', hardWallsList(config));
|
|
62
|
+
text = substituteBlock(text, '__INTERNAL_AUDIENCES_LIST__', internalAudiencesList(config));
|
|
63
|
+
text = substituteBlock(text, '__RELATION_VOCABULARY__', relationVocabularyLines(config));
|
|
64
|
+
return `${text}\n`;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* compose-store-guidance-documents: contexture-owned, the same way a
|
|
68
|
+
* shipped skill copy is (`syncShippedSkills` in skills.ts) — written by
|
|
69
|
+
* `ctxr init`, rewritten wholesale by `ctxr update` on drift, never
|
|
70
|
+
* hand-edited. A single file, so this is simpler than the skills sync (no
|
|
71
|
+
* directory scan, no orphan cleanup): read-compare-write, reporting whether
|
|
72
|
+
* it changed.
|
|
73
|
+
*/
|
|
74
|
+
export async function syncBaselineConvention(root, config) {
|
|
75
|
+
const target = path.join(root, config.harness.guidance_path, DEFAULT_BASELINE_CONVENTION_FILE_NAME);
|
|
76
|
+
const content = renderBaselineConvention(config);
|
|
77
|
+
let existing;
|
|
78
|
+
try {
|
|
79
|
+
existing = await readFile(target, 'utf8');
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
existing = undefined;
|
|
83
|
+
}
|
|
84
|
+
if (existing === content)
|
|
85
|
+
return { changed: false };
|
|
86
|
+
await mkdir(path.dirname(target), { recursive: true });
|
|
87
|
+
await writeFileAtomic(target, content);
|
|
88
|
+
return { changed: true };
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The operator's own convention source, seeded once with heading prompts
|
|
92
|
+
* only — no content contexture would be guessing at — and never touched
|
|
93
|
+
* again once it exists (unlike the baseline file, this one is
|
|
94
|
+
* operator-owned).
|
|
95
|
+
*/
|
|
96
|
+
export async function seedCustomConventionFile(root, config) {
|
|
97
|
+
const target = path.join(root, config.harness.guidance_path, DEFAULT_CUSTOM_CONVENTION_FILE_NAME);
|
|
98
|
+
try {
|
|
99
|
+
await readFile(target, 'utf8');
|
|
100
|
+
return { created: false };
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
if (err.code !== 'ENOENT')
|
|
104
|
+
throw err;
|
|
105
|
+
}
|
|
106
|
+
await mkdir(path.dirname(target), { recursive: true });
|
|
107
|
+
await writeFileAtomic(target, `${conventionTemplate('custom-convention-seed')}\n`);
|
|
108
|
+
return { created: true };
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=convention-doc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convention-doc.js","sourceRoot":"","sources":["../../src/core/convention-doc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,41 @@
|
|
|
1
1
|
import type { StoreConfig } from '../config/schema.js';
|
|
2
2
|
/**
|
|
3
|
-
* harness-portability spec (entry-doc-generation):
|
|
4
|
-
* convention documents and (via scanSkills in skills.ts)
|
|
5
|
-
* files are
|
|
6
|
-
* entire integration. Metadata extraction order: frontmatter title →
|
|
3
|
+
* harness-portability spec (entry-doc-generation, inline-conventions-and-mission):
|
|
4
|
+
* operator-authored convention documents and (via scanSkills in skills.ts)
|
|
5
|
+
* skill files are scanned from what is actually on disk — adding a file is
|
|
6
|
+
* the entire integration. Metadata extraction order: frontmatter title →
|
|
7
7
|
* first `# ` heading → filename stem; description only from frontmatter.
|
|
8
|
+
* `body` is the frontmatter-stripped content, kept alongside the metadata so
|
|
9
|
+
* `inlineDocBody` never has to re-read or re-parse the source file.
|
|
8
10
|
*/
|
|
9
11
|
export interface ScannedDoc {
|
|
10
12
|
/** Path relative to the store root, forward-slash separated. */
|
|
11
13
|
path: string;
|
|
12
14
|
title: string;
|
|
13
15
|
description: string | null;
|
|
16
|
+
/** Frontmatter stripped, otherwise verbatim. */
|
|
17
|
+
body: string;
|
|
14
18
|
}
|
|
15
19
|
/** The skill-layout filename: `<slug>/SKILL.md` — what harnesses with skill auto-discovery read. */
|
|
16
20
|
export declare const SKILL_FILE_NAME = "SKILL.md";
|
|
17
21
|
export declare function extractDocMetadata(raw: string, relativePath: string): ScannedDoc;
|
|
22
|
+
/**
|
|
23
|
+
* inline-conventions-and-mission: renders a scanned doc's body for inlining
|
|
24
|
+
* into a generated `AGENTS.md` section — a leading `# <title>` heading
|
|
25
|
+
* dropped when it duplicates the section heading the caller already
|
|
26
|
+
* provides, every remaining ATX heading demoted by `headingOffset` levels
|
|
27
|
+
* (capped at H6), and any nested `contexture:<region>` fence marker line
|
|
28
|
+
* stripped (its body kept, only the marker comment removed) so a fence
|
|
29
|
+
* copied out of a source file — e.g. mission.md's own rollup fence — never
|
|
30
|
+
* leaves an orphaned marker inside AGENTS.md's fence.
|
|
31
|
+
*/
|
|
32
|
+
export declare function inlineDocBody(doc: ScannedDoc, headingOffset: number): string[];
|
|
18
33
|
export declare function scanDocsDir(root: string, dirRelativePath: string): Promise<ScannedDoc[]>;
|
|
19
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Every convention doc currently at the configured guidance path —
|
|
36
|
+
* contexture's own shipped baseline (see `templates/conventions/baseline-convention.md`,
|
|
37
|
+
* synced by `syncBaselineConvention` in `convention-doc.ts`) alongside
|
|
38
|
+
* whatever the operator has added — minus the mission document.
|
|
39
|
+
*/
|
|
20
40
|
export declare function scanConventions(root: string, config: StoreConfig): Promise<ScannedDoc[]>;
|
|
21
41
|
//# sourceMappingURL=conventions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/core/conventions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/core/conventions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;CACd;AAID,oGAAoG;AACpG,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,CA4BhF;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB9E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAgC9F;AAgBD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAI9F"}
|