@rasensio/aidlc 1.24.0 → 1.25.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/doctor/migrations/index.d.ts.map +1 -1
- package/dist/doctor/migrations/index.js +7 -0
- package/dist/doctor/migrations/index.js.map +1 -1
- package/dist/doctor/migrations/knowledge-stale-sources.d.ts +45 -0
- package/dist/doctor/migrations/knowledge-stale-sources.d.ts.map +1 -0
- package/dist/doctor/migrations/knowledge-stale-sources.js +87 -0
- package/dist/doctor/migrations/knowledge-stale-sources.js.map +1 -0
- package/dist/knowledge/engine.d.ts +9 -2
- package/dist/knowledge/engine.d.ts.map +1 -1
- package/dist/knowledge/engine.js +9 -2
- package/dist/knowledge/engine.js.map +1 -1
- package/dist/knowledge/index/sqlite-index.js +2 -2
- package/dist/knowledge/index/sqlite-index.js.map +1 -1
- package/dist/knowledge/seed.js +2 -2
- package/dist/knowledge/seed.js.map +1 -1
- package/dist/knowledge/source-resolution.d.ts +104 -0
- package/dist/knowledge/source-resolution.d.ts.map +1 -0
- package/dist/knowledge/source-resolution.js +141 -0
- package/dist/knowledge/source-resolution.js.map +1 -0
- package/dist/knowledge/types.d.ts +26 -0
- package/dist/knowledge/types.d.ts.map +1 -1
- package/dist/knowledge/types.js +27 -0
- package/dist/knowledge/types.js.map +1 -1
- package/dist/knowledge/writer.d.ts.map +1 -1
- package/dist/knowledge/writer.js +2 -2
- package/dist/knowledge/writer.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA6B7C,eAAO,MAAM,UAAU,EAAE,SAAS,EA0DjC,CAAC"}
|
|
@@ -25,6 +25,7 @@ import { roadmapLayout } from './roadmap-layout.js';
|
|
|
25
25
|
import { roadmapItemTitles } from './roadmap-item-titles.js';
|
|
26
26
|
import { instanceCompletion } from './instance-completion.js';
|
|
27
27
|
import { roadmapSyncGhMissing } from './roadmap-sync-gh-missing.js';
|
|
28
|
+
import { knowledgeStaleSources } from './knowledge-stale-sources.js';
|
|
28
29
|
import { complianceLayerUnowned, complianceNoticeMissing, compliancePackMissingLayer, compliancePackUnregistered, } from './compliance-pack-drift.js';
|
|
29
30
|
export const MIGRATIONS = [
|
|
30
31
|
costGitignore,
|
|
@@ -78,5 +79,11 @@ export const MIGRATIONS = [
|
|
|
78
79
|
// Report tier: no legitimate remedy exists, so it states the condition and never
|
|
79
80
|
// gates doctor's exit code (compliance-packs/AC-91).
|
|
80
81
|
complianceNoticeMissing,
|
|
82
|
+
// Report tier, ordered last: the only migration that reads the whole knowledge graph,
|
|
83
|
+
// so putting the one parse-bound check at the end leaves every cheap repair already
|
|
84
|
+
// reported by the time it runs. It depends on nothing above it — `knowledge-gitignore`
|
|
85
|
+
// touches only `.aidlc/knowledge/.gitignore`, never a source file — so the position is
|
|
86
|
+
// about reading order, not correctness (stale-graph-entries/AC-10).
|
|
87
|
+
knowledgeStaleSources,
|
|
81
88
|
];
|
|
82
89
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,eAAe;IACf,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,cAAc;IACd,aAAa;IACb,0EAA0E;IAC1E,qEAAqE;IACrE,+EAA+E;IAC/E,0EAA0E;IAC1E,mDAAmD;IACnD,iBAAiB;IACjB,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,kBAAkB;IAClB,qFAAqF;IACrF,uFAAuF;IACvF,8EAA8E;IAC9E,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,eAAe;IACf,eAAe;IACf,gFAAgF;IAChF,iEAAiE;IACjE,iBAAiB;IACjB,yEAAyE;IACzE,0EAA0E;IAC1E,eAAe;IACf,oFAAoF;IACpF,oFAAoF;IACpF,qFAAqF;IACrF,sCAAsC;IACtC,0BAA0B;IAC1B,0BAA0B;IAC1B,sBAAsB;IACtB,iFAAiF;IACjF,qDAAqD;IACrD,uBAAuB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,eAAe;IACf,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,cAAc;IACd,aAAa;IACb,0EAA0E;IAC1E,qEAAqE;IACrE,+EAA+E;IAC/E,0EAA0E;IAC1E,mDAAmD;IACnD,iBAAiB;IACjB,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,kBAAkB;IAClB,qFAAqF;IACrF,uFAAuF;IACvF,8EAA8E;IAC9E,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,eAAe;IACf,eAAe;IACf,gFAAgF;IAChF,iEAAiE;IACjE,iBAAiB;IACjB,yEAAyE;IACzE,0EAA0E;IAC1E,eAAe;IACf,oFAAoF;IACpF,oFAAoF;IACpF,qFAAqF;IACrF,sCAAsC;IACtC,0BAA0B;IAC1B,0BAA0B;IAC1B,sBAAsB;IACtB,iFAAiF;IACjF,qDAAqD;IACrD,uBAAuB;IACvB,sFAAsF;IACtF,oFAAoF;IACpF,uFAAuF;IACvF,uFAAuF;IACvF,oEAAoE;IACpE,qBAAqB;CACtB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `knowledge-stale-sources` (report tier): the knowledge graph describes something
|
|
3
|
+
* that is not there.
|
|
4
|
+
*
|
|
5
|
+
* Two conditions, one read: an entity whose `source` names a path that does not
|
|
6
|
+
* resolve, and an edge whose `from`/`to` names no entity. See
|
|
7
|
+
* `knowledge/source-resolution.ts` for why `staleness.ts`'s two existing signals
|
|
8
|
+
* cannot see either — in short, a deleted directory stops appearing in `git diff`,
|
|
9
|
+
* so the change signal goes quiet precisely when the entry becomes wrong.
|
|
10
|
+
*
|
|
11
|
+
* **Why `report` and not `confirm`.** The remedy is a decision, and doctor may not
|
|
12
|
+
* make it. Of the 15 entities this found on its first run, 12 wanted deleting and 3
|
|
13
|
+
* wanted their path corrected to a different manifest — indistinguishable from the
|
|
14
|
+
* data alone. A `confirm`-tier remover applies unprompted under `--yes`, so the
|
|
15
|
+
* first unattended `aidlc doctor --yes` would have deleted three entities whose real
|
|
16
|
+
* fix was a one-line edit, and deleting knowledge is the loss this graph exists to
|
|
17
|
+
* prevent. Precedent: `roadmap-sync-gh-missing` and two of the four
|
|
18
|
+
* `compliance-pack-drift` conditions use `report` for exactly this shape. Nothing
|
|
19
|
+
* here writes anything, under any tier or flag, and it never gates doctor's exit
|
|
20
|
+
* code.
|
|
21
|
+
*
|
|
22
|
+
* **`ctx.projectRoot`, not the primary checkout.** The opposite of
|
|
23
|
+
* `roadmap-sync-gh-missing`, deliberately: `.aidlc/knowledge/*.yaml` is committed, so
|
|
24
|
+
* the graph is per-branch and the copy that matters is the one in the tree being
|
|
25
|
+
* checked. Roadmap items live in the primary checkout because an inbox stranded on a
|
|
26
|
+
* feature branch is indistinguishable from a lost one; a graph is the reverse — a
|
|
27
|
+
* branch that deletes a package and its entries should read clean on that branch.
|
|
28
|
+
*
|
|
29
|
+
* **No subprocess and no index.** `YamlSourceStore` plus `existsSync`, nothing else.
|
|
30
|
+
* The constant it needs came from `engine.ts`, which imports `SqliteIndex`; that
|
|
31
|
+
* import would have put `node:sqlite`'s experimental warning on the default path of
|
|
32
|
+
* `aidlc doctor`, so `KNOWLEDGE_DIR` moved to `types.ts` instead. An import-graph
|
|
33
|
+
* test pins this, because a behavioural test would keep passing until somebody
|
|
34
|
+
* happened to exercise the new path.
|
|
35
|
+
*
|
|
36
|
+
* Requirements: stale-graph-entries/AC-10 … stale-graph-entries/AC-19
|
|
37
|
+
*/
|
|
38
|
+
import type { CheckResult, DoctorContext, Migration } from '../types.js';
|
|
39
|
+
/**
|
|
40
|
+
* The single source of pending-ness (`../types.ts`), so a dry run and a real run
|
|
41
|
+
* cannot disagree. Exported for the tests, which drive it against fixture roots.
|
|
42
|
+
*/
|
|
43
|
+
export declare function staleSourcesCheck(ctx: DoctorContext): CheckResult;
|
|
44
|
+
export declare const knowledgeStaleSources: Migration;
|
|
45
|
+
//# sourceMappingURL=knowledge-stale-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-stale-sources.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/knowledge-stale-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAWH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,CA0CjE;AAED,eAAO,MAAM,qBAAqB,EAAE,SAInC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `knowledge-stale-sources` (report tier): the knowledge graph describes something
|
|
3
|
+
* that is not there.
|
|
4
|
+
*
|
|
5
|
+
* Two conditions, one read: an entity whose `source` names a path that does not
|
|
6
|
+
* resolve, and an edge whose `from`/`to` names no entity. See
|
|
7
|
+
* `knowledge/source-resolution.ts` for why `staleness.ts`'s two existing signals
|
|
8
|
+
* cannot see either — in short, a deleted directory stops appearing in `git diff`,
|
|
9
|
+
* so the change signal goes quiet precisely when the entry becomes wrong.
|
|
10
|
+
*
|
|
11
|
+
* **Why `report` and not `confirm`.** The remedy is a decision, and doctor may not
|
|
12
|
+
* make it. Of the 15 entities this found on its first run, 12 wanted deleting and 3
|
|
13
|
+
* wanted their path corrected to a different manifest — indistinguishable from the
|
|
14
|
+
* data alone. A `confirm`-tier remover applies unprompted under `--yes`, so the
|
|
15
|
+
* first unattended `aidlc doctor --yes` would have deleted three entities whose real
|
|
16
|
+
* fix was a one-line edit, and deleting knowledge is the loss this graph exists to
|
|
17
|
+
* prevent. Precedent: `roadmap-sync-gh-missing` and two of the four
|
|
18
|
+
* `compliance-pack-drift` conditions use `report` for exactly this shape. Nothing
|
|
19
|
+
* here writes anything, under any tier or flag, and it never gates doctor's exit
|
|
20
|
+
* code.
|
|
21
|
+
*
|
|
22
|
+
* **`ctx.projectRoot`, not the primary checkout.** The opposite of
|
|
23
|
+
* `roadmap-sync-gh-missing`, deliberately: `.aidlc/knowledge/*.yaml` is committed, so
|
|
24
|
+
* the graph is per-branch and the copy that matters is the one in the tree being
|
|
25
|
+
* checked. Roadmap items live in the primary checkout because an inbox stranded on a
|
|
26
|
+
* feature branch is indistinguishable from a lost one; a graph is the reverse — a
|
|
27
|
+
* branch that deletes a package and its entries should read clean on that branch.
|
|
28
|
+
*
|
|
29
|
+
* **No subprocess and no index.** `YamlSourceStore` plus `existsSync`, nothing else.
|
|
30
|
+
* The constant it needs came from `engine.ts`, which imports `SqliteIndex`; that
|
|
31
|
+
* import would have put `node:sqlite`'s experimental warning on the default path of
|
|
32
|
+
* `aidlc doctor`, so `KNOWLEDGE_DIR` moved to `types.ts` instead. An import-graph
|
|
33
|
+
* test pins this, because a behavioural test would keep passing until somebody
|
|
34
|
+
* happened to exercise the new path.
|
|
35
|
+
*
|
|
36
|
+
* Requirements: stale-graph-entries/AC-10 … stale-graph-entries/AC-19
|
|
37
|
+
*/
|
|
38
|
+
import { join } from 'node:path';
|
|
39
|
+
import { describeResolution, isResolved, resolveGraphAgainstDisk, } from '../../knowledge/source-resolution.js';
|
|
40
|
+
import { KNOWLEDGE_DIR } from '../../knowledge/types.js';
|
|
41
|
+
import { YamlSourceStore } from '../../knowledge/yaml-source.js';
|
|
42
|
+
/**
|
|
43
|
+
* The single source of pending-ness (`../types.ts`), so a dry run and a real run
|
|
44
|
+
* cannot disagree. Exported for the tests, which drive it against fixture roots.
|
|
45
|
+
*/
|
|
46
|
+
export function staleSourcesCheck(ctx) {
|
|
47
|
+
const store = new YamlSourceStore(join(ctx.projectRoot, KNOWLEDGE_DIR));
|
|
48
|
+
// A project that never ran `aidlc discover` has no graph to be wrong about, and
|
|
49
|
+
// pays no parse for the check (AC-16).
|
|
50
|
+
if (!store.exists()) {
|
|
51
|
+
return { applicable: false, reason: 'no knowledge graph in .aidlc/knowledge/' };
|
|
52
|
+
}
|
|
53
|
+
// `loadAll` collects unreadable and unparseable files as warnings rather than
|
|
54
|
+
// throwing (AC-18). A corrupt file is a different defect with a better message
|
|
55
|
+
// elsewhere — `aidlc knowledge` prints the parser's own error where it matters —
|
|
56
|
+
// so it is named here and the run continues on the documents that did parse.
|
|
57
|
+
const graph = store.loadAll();
|
|
58
|
+
const result = resolveGraphAgainstDisk(graph, ctx.projectRoot);
|
|
59
|
+
if (isResolved(result)) {
|
|
60
|
+
// Deliberately not pending even when `loadAll` produced warnings: an
|
|
61
|
+
// unparseable file is not evidence that the graph is stale, and reporting it
|
|
62
|
+
// here would give one condition two voices.
|
|
63
|
+
return { applicable: true, pending: false };
|
|
64
|
+
}
|
|
65
|
+
// Named as a hand edit because it is one. There is no `aidlc knowledge remove`,
|
|
66
|
+
// and `aidlc knowledge update` takes --description/--confidence/--tags/--name
|
|
67
|
+
// and not --source, so pointing at either would be this very defect — an
|
|
68
|
+
// instruction to run something that is not there.
|
|
69
|
+
const parseNote = graph.warnings.length > 0
|
|
70
|
+
? ` ${graph.warnings.length} source file(s) could not be read in full, so this is a ` +
|
|
71
|
+
`partial view: ${graph.warnings.join('; ')}.`
|
|
72
|
+
: '';
|
|
73
|
+
return {
|
|
74
|
+
applicable: true,
|
|
75
|
+
pending: true,
|
|
76
|
+
description: `${describeResolution(result)}. ` +
|
|
77
|
+
'Two remedies, and doctor applies neither: delete the entity document from ' +
|
|
78
|
+
`${KNOWLEDGE_DIR} if the code is gone, or edit its \`source\` if the code moved. ` +
|
|
79
|
+
`Paths were resolved against ${ctx.projectRoot}.${parseNote}`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export const knowledgeStaleSources = {
|
|
83
|
+
id: 'knowledge-stale-sources',
|
|
84
|
+
tier: 'report',
|
|
85
|
+
check: staleSourcesCheck,
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=knowledge-stale-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-stale-sources.js","sourceRoot":"","sources":["../../../src/doctor/migrations/knowledge-stale-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAkB;IAClD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAExE,gFAAgF;IAChF,uCAAuC;IACvC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC;IAClF,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,iFAAiF;IACjF,6EAA6E;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAE/D,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,qEAAqE;QACrE,6EAA6E;QAC7E,4CAA4C;QAC5C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,gFAAgF;IAChF,8EAA8E;IAC9E,yEAAyE;IACzE,kDAAkD;IAClD,MAAM,SAAS,GACb,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,0DAA0D;YACnF,iBAAiB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC/C,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI;YACjC,4EAA4E;YAC5E,GAAG,aAAa,kEAAkE;YAClF,+BAA+B,GAAG,CAAC,WAAW,IAAI,SAAS,EAAE;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAc;IAC9C,EAAE,EAAE,yBAAyB;IAC7B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,iBAAiB;CACzB,CAAC"}
|
|
@@ -16,8 +16,15 @@ import { KnowledgeWriter } from './writer.js';
|
|
|
16
16
|
import { KnowledgeReader } from './reader.js';
|
|
17
17
|
import { ContextGenerator } from './context-generator.js';
|
|
18
18
|
import { StalenessDetector } from './staleness.js';
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
import { KNOWLEDGE_DIR } from './types.js';
|
|
20
|
+
/**
|
|
21
|
+
* Relative path of the knowledge directory within a project.
|
|
22
|
+
*
|
|
23
|
+
* Re-exported for the importers that already reach for it here; the declaration
|
|
24
|
+
* moved to `types.ts` so a reader that must not pull `SqliteIndex` into its
|
|
25
|
+
* import graph can have the constant without it (stale-graph-entries/AC-17).
|
|
26
|
+
*/
|
|
27
|
+
export { KNOWLEDGE_DIR };
|
|
21
28
|
export interface KnowledgeEngine {
|
|
22
29
|
source: YamlSourceStore;
|
|
23
30
|
index: SqliteIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/knowledge/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAiB,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/knowledge/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAiB,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAgDlE;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE5D"}
|
package/dist/knowledge/engine.js
CHANGED
|
@@ -19,8 +19,15 @@ import { KnowledgeWriter } from './writer.js';
|
|
|
19
19
|
import { KnowledgeReader } from './reader.js';
|
|
20
20
|
import { ContextGenerator } from './context-generator.js';
|
|
21
21
|
import { StalenessDetector } from './staleness.js';
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
import { KNOWLEDGE_DIR } from './types.js';
|
|
23
|
+
/**
|
|
24
|
+
* Relative path of the knowledge directory within a project.
|
|
25
|
+
*
|
|
26
|
+
* Re-exported for the importers that already reach for it here; the declaration
|
|
27
|
+
* moved to `types.ts` so a reader that must not pull `SqliteIndex` into its
|
|
28
|
+
* import graph can have the constant without it (stale-graph-entries/AC-17).
|
|
29
|
+
*/
|
|
30
|
+
export { KNOWLEDGE_DIR };
|
|
24
31
|
/**
|
|
25
32
|
* Open the knowledge engine for a project.
|
|
26
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/knowledge/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/knowledge/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { DatabaseSync } from 'node:sqlite';
|
|
15
15
|
import { join } from 'node:path';
|
|
16
16
|
import { mkdirSync } from 'node:fs';
|
|
17
|
-
import { KNOWLEDGE_SCHEMA_VERSION } from '../types.js';
|
|
17
|
+
import { AGENT_INFERRED_SOURCE, KNOWLEDGE_SCHEMA_VERSION } from '../types.js';
|
|
18
18
|
import { IndexOutdatedError } from './knowledge-index.js';
|
|
19
19
|
/** Filename of the index database inside the knowledge directory. */
|
|
20
20
|
export const INDEX_DB_FILE = 'index.db';
|
|
@@ -308,7 +308,7 @@ export class SqliteIndex {
|
|
|
308
308
|
}
|
|
309
309
|
syncFileMapping(entity) {
|
|
310
310
|
this.db.prepare('DELETE FROM file_mappings WHERE entity_id = ?').run(entity.id);
|
|
311
|
-
if (entity.source && entity.source !==
|
|
311
|
+
if (entity.source && entity.source !== AGENT_INFERRED_SOURCE) {
|
|
312
312
|
this.db
|
|
313
313
|
.prepare('INSERT OR REPLACE INTO file_mappings (file_path, entity_id) VALUES (?, ?)')
|
|
314
314
|
.run(entity.source, entity.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-index.js","sourceRoot":"","sources":["../../../src/knowledge/index/sqlite-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-index.js","sourceRoot":"","sources":["../../../src/knowledge/index/sqlite-index.ts"],"names":[],"mappings":"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"}
|
package/dist/knowledge/seed.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { readFileSync, readdirSync, existsSync, statSync } from 'node:fs';
|
|
17
17
|
import { join } from 'node:path';
|
|
18
|
-
import { DISCOVERY_CONFIDENCE } from './types.js';
|
|
18
|
+
import { AGENT_INFERRED_SOURCE, DISCOVERY_CONFIDENCE } from './types.js';
|
|
19
19
|
import { detectWorkspacePackages } from '../discover/workspaces.js';
|
|
20
20
|
const AUTO_AUTHOR = 'auto-discovery';
|
|
21
21
|
/** Route definitions recognized in source files (best-effort, design risk 4). */
|
|
@@ -144,7 +144,7 @@ export function seedFromScan(projectRoot, scan) {
|
|
|
144
144
|
name,
|
|
145
145
|
description: value,
|
|
146
146
|
confidence: DISCOVERY_CONFIDENCE,
|
|
147
|
-
source:
|
|
147
|
+
source: AGENT_INFERRED_SOURCE,
|
|
148
148
|
author: AUTO_AUTHOR,
|
|
149
149
|
tags: ['auto-discovered', 'style'],
|
|
150
150
|
lastVerified: now,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/knowledge/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/knowledge/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC,iFAAiF;AACjF,MAAM,QAAQ,GAAG,oGAAoG,CAAC;AAEtH,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAO/B;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,IAAgB;IAChE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,MAAM,aAAa,GAA+B,EAAE,CAAC;IAErD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACtD,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;IAEhE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElC,2DAA2D;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,UAAU,OAAO,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,wBAAwB,GAAG,CAAC,OAAO,IAAI,GAAG,GAAG;gBAC1D,UAAU,EAAE,oBAAoB;gBAChC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,cAAc;gBACpE,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;gBAC9C,YAAY,EAAE,GAAG;aAClB,CAAC,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7F,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;YACxF,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;gBAC/D,WAAW,EAAE,aAAa,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3E,UAAU,EAAE,oBAAoB;gBAChC,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,CAAC,iBAAiB,CAAC;gBACzB,YAAY,EAAE,GAAG;aAClB,CAAC,CAAC;YACH,IAAI,YAAY,EAAE,CAAC;gBACjB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,wBAAwB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;oBAC9D,UAAU,EAAE,oBAAoB;oBAChC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,cAAc;oBACpE,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;oBACrC,YAAY,EAAE,GAAG;oBACjB,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;iBACnC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,YAAY,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC/C,QAAQ,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACzD,WAAW,EAAE,oBAAoB,QAAQ,CAAC,IAAI,EAAE;oBAChD,UAAU,EAAE,oBAAoB;oBAChC,MAAM,EAAE,QAAQ,CAAC,IAAI;oBACrB,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,CAAC,iBAAiB,CAAC;oBACzB,YAAY,EAAE,GAAG;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,wEAAwE;YACxE,wEAAwE;YACxE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACxC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,iBAAiB,GAAoC,EAAE,CAAC;IAC9D,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,iBAAiB,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1C,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,iBAAiB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,cAAc,GAAG,EAAE;YACvB,IAAI,EAAE,YAAY;YAClB,IAAI;YACJ,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,oBAAoB;YAChC,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC;YAClC,YAAY,EAAE,GAAG;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC;AAWD,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EACN,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC/C,CAAC,CAAC,CAAC;IACR,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAOD,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAEnD,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAQD,SAAS,eAAe,CAAC,WAAmB,EAAE,WAAmB;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC;QACV,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE;gBACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE;gBACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,KAAa;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,IAAI,CAAC,OAAe;QAC3B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;YAAE,OAAO;QAClC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;gBAAE,OAAO;YAClC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,SAAS;YAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Does the graph still describe code that is there?
|
|
3
|
+
*
|
|
4
|
+
* `staleness.ts` has two signals and neither is existence. `byAge` flags anything
|
|
5
|
+
* not verified in 30 days, which on a real graph is most of it, correct entries
|
|
6
|
+
* included. `degradeChanged` intersects entity `source` paths with
|
|
7
|
+
* `git diff --name-only` — so a *deleted* directory goes quiet exactly when its
|
|
8
|
+
* entries become wrong, because a path that no longer exists stops appearing in
|
|
9
|
+
* diffs. That is how eight `@rasensio/aidlc-web` module entries and seven `dep-*`
|
|
10
|
+
* entries survived 17 days past the cutover that deleted `packages/web/`, and why
|
|
11
|
+
* `aidlc knowledge query "web"` answered with the deleted package first.
|
|
12
|
+
*
|
|
13
|
+
* Two classes, one read, because they are one defect at two levels: an entity whose
|
|
14
|
+
* `source` names nothing, and an edge whose endpoint names no entity. The second
|
|
15
|
+
* measured 0 across 195 edges before this instance, which makes it the guard on the
|
|
16
|
+
* fix itself — deleting 15 entities and forgetting their 16 edges would trade one
|
|
17
|
+
* class for the other.
|
|
18
|
+
*
|
|
19
|
+
* Pure over a `LoadedGraph` and one injectable existence predicate: no index, no
|
|
20
|
+
* subprocess, no network (stale-graph-entries/AC-17). `doctor` calls it, so anything
|
|
21
|
+
* it reaches is on the default path of a command people run casually.
|
|
22
|
+
*
|
|
23
|
+
* Requirements: stale-graph-entries/AC-11, AC-12, AC-14, AC-15
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import type { LoadedGraph } from './yaml-source.js';
|
|
28
|
+
/**
|
|
29
|
+
* What a `source` string is, before anything touches the filesystem.
|
|
30
|
+
*
|
|
31
|
+
* `not-repo-relative` exists so that classification, not `existsSync`, is what
|
|
32
|
+
* decides whether a path is safe to probe. `source` arrives from a tracked YAML
|
|
33
|
+
* file — tracked is not the same as trusted, and `secure-defaults.md` asks for
|
|
34
|
+
* `..` rejection at the boundary rather than downstream. An absolute
|
|
35
|
+
* `/etc/passwd` or a `../../` escape is reported as a defect in the entry and is
|
|
36
|
+
* never handed to a filesystem call, so a graph file cannot make `aidlc doctor`
|
|
37
|
+
* probe paths outside the repo it is run in (AC-14).
|
|
38
|
+
*/
|
|
39
|
+
export type SourceKind = {
|
|
40
|
+
kind: 'sentinel';
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'empty';
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'not-repo-relative';
|
|
45
|
+
reason: 'absolute' | 'escapes-root';
|
|
46
|
+
} | {
|
|
47
|
+
kind: 'repo-relative';
|
|
48
|
+
relative: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Classify a `source` without touching the disk.
|
|
52
|
+
*
|
|
53
|
+
* Containment is decided on the *resolved* path rather than by looking for `..`
|
|
54
|
+
* segments: `packages/web/../website` contains `..` and stays inside the root,
|
|
55
|
+
* while `a/../../b` does not, and only resolution tells them apart.
|
|
56
|
+
*/
|
|
57
|
+
export declare function classifySource(source: string, projectRoot: string): SourceKind;
|
|
58
|
+
/** One entity whose `source` does not describe something on disk. */
|
|
59
|
+
export interface UnresolvedSource {
|
|
60
|
+
entityId: string;
|
|
61
|
+
entityName: string;
|
|
62
|
+
source: string;
|
|
63
|
+
/**
|
|
64
|
+
* `missing` — a repo-relative path that resolves nowhere.
|
|
65
|
+
* `absolute` / `escapes-root` — rejected at classification; never probed.
|
|
66
|
+
*/
|
|
67
|
+
reason: 'missing' | 'absolute' | 'escapes-root';
|
|
68
|
+
}
|
|
69
|
+
/** One edge whose `from` or `to` names an entity the graph does not hold. */
|
|
70
|
+
export interface DanglingRelationship {
|
|
71
|
+
from: string;
|
|
72
|
+
to: string;
|
|
73
|
+
type: string;
|
|
74
|
+
/** Which endpoint(s) name nothing — both, when an edge lost both ends. */
|
|
75
|
+
missing: string[];
|
|
76
|
+
}
|
|
77
|
+
export interface GraphResolution {
|
|
78
|
+
unresolvedSources: UnresolvedSource[];
|
|
79
|
+
danglingRelationships: DanglingRelationship[];
|
|
80
|
+
/** How many entities carried a repo-relative `source` and were therefore probed. */
|
|
81
|
+
checkedSources: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolve every `source` against the disk and every edge endpoint against the
|
|
85
|
+
* entity set.
|
|
86
|
+
*
|
|
87
|
+
* @param graph - Output of `YamlSourceStore.loadAll()`.
|
|
88
|
+
* @param projectRoot - Working tree the relative paths are resolved against.
|
|
89
|
+
* @param exists - Injected for tests, which assert that no path outside the
|
|
90
|
+
* fixture root ever reaches it (AC-23). Production passes `existsSync`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function resolveGraphAgainstDisk(graph: LoadedGraph, projectRoot: string, exists?: (absolutePath: string) => boolean): GraphResolution;
|
|
93
|
+
/** True when the graph describes nothing that is not there. */
|
|
94
|
+
export declare function isResolved(result: GraphResolution): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* One-line-per-class summary, longest-lived detail first.
|
|
97
|
+
*
|
|
98
|
+
* Capped at `maxItems` per class with an explicit "and N more", because the
|
|
99
|
+
* failure this reports is plural by nature — the first run against a graph that
|
|
100
|
+
* has never been checked found 15 — and a doctor line that scrolls is a doctor
|
|
101
|
+
* line nobody reads.
|
|
102
|
+
*/
|
|
103
|
+
export declare function describeResolution(result: GraphResolution, maxItems?: number): string;
|
|
104
|
+
//# sourceMappingURL=source-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-resolution.d.ts","sourceRoot":"","sources":["../../src/knowledge/source-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAoB9E;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;CACjD;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,oFAAoF;IACpF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAoB,GACrD,eAAe,CAsCjB;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,SAAI,GAAG,MAAM,CA8BhF"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Does the graph still describe code that is there?
|
|
3
|
+
*
|
|
4
|
+
* `staleness.ts` has two signals and neither is existence. `byAge` flags anything
|
|
5
|
+
* not verified in 30 days, which on a real graph is most of it, correct entries
|
|
6
|
+
* included. `degradeChanged` intersects entity `source` paths with
|
|
7
|
+
* `git diff --name-only` — so a *deleted* directory goes quiet exactly when its
|
|
8
|
+
* entries become wrong, because a path that no longer exists stops appearing in
|
|
9
|
+
* diffs. That is how eight `@rasensio/aidlc-web` module entries and seven `dep-*`
|
|
10
|
+
* entries survived 17 days past the cutover that deleted `packages/web/`, and why
|
|
11
|
+
* `aidlc knowledge query "web"` answered with the deleted package first.
|
|
12
|
+
*
|
|
13
|
+
* Two classes, one read, because they are one defect at two levels: an entity whose
|
|
14
|
+
* `source` names nothing, and an edge whose endpoint names no entity. The second
|
|
15
|
+
* measured 0 across 195 edges before this instance, which makes it the guard on the
|
|
16
|
+
* fix itself — deleting 15 entities and forgetting their 16 edges would trade one
|
|
17
|
+
* class for the other.
|
|
18
|
+
*
|
|
19
|
+
* Pure over a `LoadedGraph` and one injectable existence predicate: no index, no
|
|
20
|
+
* subprocess, no network (stale-graph-entries/AC-17). `doctor` calls it, so anything
|
|
21
|
+
* it reaches is on the default path of a command people run casually.
|
|
22
|
+
*
|
|
23
|
+
* Requirements: stale-graph-entries/AC-11, AC-12, AC-14, AC-15
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import { existsSync } from 'node:fs';
|
|
28
|
+
import { isAbsolute, resolve, sep } from 'node:path';
|
|
29
|
+
import { AGENT_INFERRED_SOURCE } from './types.js';
|
|
30
|
+
/**
|
|
31
|
+
* Classify a `source` without touching the disk.
|
|
32
|
+
*
|
|
33
|
+
* Containment is decided on the *resolved* path rather than by looking for `..`
|
|
34
|
+
* segments: `packages/web/../website` contains `..` and stays inside the root,
|
|
35
|
+
* while `a/../../b` does not, and only resolution tells them apart.
|
|
36
|
+
*/
|
|
37
|
+
export function classifySource(source, projectRoot) {
|
|
38
|
+
const trimmed = source.trim();
|
|
39
|
+
if (trimmed === '')
|
|
40
|
+
return { kind: 'empty' };
|
|
41
|
+
if (trimmed === AGENT_INFERRED_SOURCE)
|
|
42
|
+
return { kind: 'sentinel' };
|
|
43
|
+
// Windows drive letters and UNC paths are absolute on win32 only, so `isAbsolute`
|
|
44
|
+
// is platform-correct where a leading-slash test would not be. A leading slash is
|
|
45
|
+
// rejected everywhere regardless, since it is absolute on posix and root-relative
|
|
46
|
+
// on win32 — neither is a repo-relative path.
|
|
47
|
+
if (isAbsolute(trimmed) || trimmed.startsWith('/') || trimmed.startsWith('\\')) {
|
|
48
|
+
return { kind: 'not-repo-relative', reason: 'absolute' };
|
|
49
|
+
}
|
|
50
|
+
const root = resolve(projectRoot);
|
|
51
|
+
const target = resolve(root, trimmed);
|
|
52
|
+
// `startsWith(root + sep)` and not `startsWith(root)`: a sibling directory named
|
|
53
|
+
// `<root>-backup` starts with the root string and is not inside it.
|
|
54
|
+
if (target !== root && !target.startsWith(root + sep)) {
|
|
55
|
+
return { kind: 'not-repo-relative', reason: 'escapes-root' };
|
|
56
|
+
}
|
|
57
|
+
return { kind: 'repo-relative', relative: trimmed };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolve every `source` against the disk and every edge endpoint against the
|
|
61
|
+
* entity set.
|
|
62
|
+
*
|
|
63
|
+
* @param graph - Output of `YamlSourceStore.loadAll()`.
|
|
64
|
+
* @param projectRoot - Working tree the relative paths are resolved against.
|
|
65
|
+
* @param exists - Injected for tests, which assert that no path outside the
|
|
66
|
+
* fixture root ever reaches it (AC-23). Production passes `existsSync`.
|
|
67
|
+
*/
|
|
68
|
+
export function resolveGraphAgainstDisk(graph, projectRoot, exists = existsSync) {
|
|
69
|
+
const root = resolve(projectRoot);
|
|
70
|
+
const unresolvedSources = [];
|
|
71
|
+
let checkedSources = 0;
|
|
72
|
+
for (const entity of graph.entities) {
|
|
73
|
+
const classified = classifySource(entity.source ?? '', root);
|
|
74
|
+
if (classified.kind === 'sentinel' || classified.kind === 'empty')
|
|
75
|
+
continue;
|
|
76
|
+
if (classified.kind === 'not-repo-relative') {
|
|
77
|
+
unresolvedSources.push({
|
|
78
|
+
entityId: entity.id,
|
|
79
|
+
entityName: entity.name,
|
|
80
|
+
source: entity.source,
|
|
81
|
+
reason: classified.reason,
|
|
82
|
+
});
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
checkedSources++;
|
|
86
|
+
if (!exists(resolve(root, classified.relative))) {
|
|
87
|
+
unresolvedSources.push({
|
|
88
|
+
entityId: entity.id,
|
|
89
|
+
entityName: entity.name,
|
|
90
|
+
source: entity.source,
|
|
91
|
+
reason: 'missing',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const ids = new Set(graph.entities.map((e) => e.id));
|
|
96
|
+
const danglingRelationships = [];
|
|
97
|
+
for (const rel of graph.relationships) {
|
|
98
|
+
const missing = [rel.from, rel.to].filter((endpoint) => !ids.has(endpoint));
|
|
99
|
+
if (missing.length > 0) {
|
|
100
|
+
danglingRelationships.push({ from: rel.from, to: rel.to, type: rel.type, missing });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return { unresolvedSources, danglingRelationships, checkedSources };
|
|
104
|
+
}
|
|
105
|
+
/** True when the graph describes nothing that is not there. */
|
|
106
|
+
export function isResolved(result) {
|
|
107
|
+
return result.unresolvedSources.length === 0 && result.danglingRelationships.length === 0;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* One-line-per-class summary, longest-lived detail first.
|
|
111
|
+
*
|
|
112
|
+
* Capped at `maxItems` per class with an explicit "and N more", because the
|
|
113
|
+
* failure this reports is plural by nature — the first run against a graph that
|
|
114
|
+
* has never been checked found 15 — and a doctor line that scrolls is a doctor
|
|
115
|
+
* line nobody reads.
|
|
116
|
+
*/
|
|
117
|
+
export function describeResolution(result, maxItems = 8) {
|
|
118
|
+
const parts = [];
|
|
119
|
+
if (result.unresolvedSources.length > 0) {
|
|
120
|
+
const listed = result.unresolvedSources
|
|
121
|
+
.slice(0, maxItems)
|
|
122
|
+
.map((u) => `${u.entityId} -> ${u.source}${u.reason === 'missing' ? '' : ` (${u.reason})`}`);
|
|
123
|
+
const more = result.unresolvedSources.length - listed.length;
|
|
124
|
+
const one = result.unresolvedSources.length === 1;
|
|
125
|
+
parts.push(`${result.unresolvedSources.length} ${one ? 'entity names' : 'entities name'} ` +
|
|
126
|
+
`a source path that does not resolve: ${listed.join(', ')}` +
|
|
127
|
+
(more > 0 ? `, and ${more} more` : ''));
|
|
128
|
+
}
|
|
129
|
+
if (result.danglingRelationships.length > 0) {
|
|
130
|
+
const listed = result.danglingRelationships
|
|
131
|
+
.slice(0, maxItems)
|
|
132
|
+
.map((d) => `${d.from} --${d.type}-> ${d.to} (missing: ${d.missing.join(', ')})`);
|
|
133
|
+
const more = result.danglingRelationships.length - listed.length;
|
|
134
|
+
const one = result.danglingRelationships.length === 1;
|
|
135
|
+
parts.push(`${result.danglingRelationships.length} ${one ? 'relationship names' : 'relationships name'} ` +
|
|
136
|
+
`an entity the graph does not hold: ${listed.join(', ')}` +
|
|
137
|
+
(more > 0 ? `, and ${more} more` : ''));
|
|
138
|
+
}
|
|
139
|
+
return parts.join('. ');
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=source-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-resolution.js","sourceRoot":"","sources":["../../src/knowledge/source-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,32 @@ export declare const DISCOVERY_CONFIDENCE = 0.6;
|
|
|
26
26
|
export declare const AGENT_CONFIDENCE = 0.9;
|
|
27
27
|
/** Entities below this confidence are excluded from context output (KG Req 7.5). */
|
|
28
28
|
export declare const STALE_CONFIDENCE_FLOOR = 0.3;
|
|
29
|
+
/**
|
|
30
|
+
* The `source` value meaning "this fact came from an agent, not from a file".
|
|
31
|
+
*
|
|
32
|
+
* The single declaration site for the sentinel (stale-graph-entries/AC-13). It was a
|
|
33
|
+
* bare literal in three places — the writer's default, the seeder, and the index's
|
|
34
|
+
* file-mapping predicate — and this instance added a fourth reader that resolves every
|
|
35
|
+
* *non*-sentinel `source` against the disk. A check whose skip list is its own copy of
|
|
36
|
+
* the literal is a check that starts reporting all 89 agent-inferred entities the day
|
|
37
|
+
* one of the copies is respelled.
|
|
38
|
+
*
|
|
39
|
+
* One occurrence is deliberately left alone: the `DEFAULT 'agent-inferred'` in the
|
|
40
|
+
* index's `CREATE TABLE` text. That is schema, not a comparison — interpolating a
|
|
41
|
+
* constant into DDL buys nothing and makes the schema string depend on a value a
|
|
42
|
+
* future edit could change without a migration.
|
|
43
|
+
*/
|
|
44
|
+
export declare const AGENT_INFERRED_SOURCE = "agent-inferred";
|
|
45
|
+
/**
|
|
46
|
+
* Relative path of the knowledge directory within a project.
|
|
47
|
+
*
|
|
48
|
+
* Declared here rather than in `engine.ts`, which is where it used to live and
|
|
49
|
+
* still re-exports it. `engine.ts` imports `SqliteIndex`, so a `doctor` migration
|
|
50
|
+
* that reached for the constant would have pulled the whole index — and
|
|
51
|
+
* `node:sqlite`'s experimental warning — onto the default path of
|
|
52
|
+
* `aidlc doctor` for the sake of one string (stale-graph-entries/AC-17).
|
|
53
|
+
*/
|
|
54
|
+
export declare const KNOWLEDGE_DIR: string;
|
|
29
55
|
/** A node in the knowledge graph (KG Req 1.2, 12.1). */
|
|
30
56
|
export interface Entity {
|
|
31
57
|
/** Unique lowercase slug, e.g. "payment-service". */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/knowledge/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/knowledge/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,0CAA0C;AAC1C,eAAO,MAAM,YAAY,uHAUf,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,UAAU,MAAM,EAAE,CAAC;AAEhE,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,iIAWrB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,UAAU,MAAM,EAAE,CAAC;AAE5E,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAEtD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,QAA8B,CAAC;AAMzD,wDAAwD;AACxD,MAAM,WAAW,MAAM;IACrB,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,gEAAgE;AAChE,eAAO,MAAM,YAAY,QAAyB,CAAC;AAEnD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAatD;AAED,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,uBAAuB,CAAC"}
|
package/dist/knowledge/types.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
|
+
import { join } from 'node:path';
|
|
13
14
|
// ---------------------------------------------------------------------------
|
|
14
15
|
// Type constants
|
|
15
16
|
// ---------------------------------------------------------------------------
|
|
@@ -46,6 +47,32 @@ export const DISCOVERY_CONFIDENCE = 0.6;
|
|
|
46
47
|
export const AGENT_CONFIDENCE = 0.9;
|
|
47
48
|
/** Entities below this confidence are excluded from context output (KG Req 7.5). */
|
|
48
49
|
export const STALE_CONFIDENCE_FLOOR = 0.3;
|
|
50
|
+
/**
|
|
51
|
+
* The `source` value meaning "this fact came from an agent, not from a file".
|
|
52
|
+
*
|
|
53
|
+
* The single declaration site for the sentinel (stale-graph-entries/AC-13). It was a
|
|
54
|
+
* bare literal in three places — the writer's default, the seeder, and the index's
|
|
55
|
+
* file-mapping predicate — and this instance added a fourth reader that resolves every
|
|
56
|
+
* *non*-sentinel `source` against the disk. A check whose skip list is its own copy of
|
|
57
|
+
* the literal is a check that starts reporting all 89 agent-inferred entities the day
|
|
58
|
+
* one of the copies is respelled.
|
|
59
|
+
*
|
|
60
|
+
* One occurrence is deliberately left alone: the `DEFAULT 'agent-inferred'` in the
|
|
61
|
+
* index's `CREATE TABLE` text. That is schema, not a comparison — interpolating a
|
|
62
|
+
* constant into DDL buys nothing and makes the schema string depend on a value a
|
|
63
|
+
* future edit could change without a migration.
|
|
64
|
+
*/
|
|
65
|
+
export const AGENT_INFERRED_SOURCE = 'agent-inferred';
|
|
66
|
+
/**
|
|
67
|
+
* Relative path of the knowledge directory within a project.
|
|
68
|
+
*
|
|
69
|
+
* Declared here rather than in `engine.ts`, which is where it used to live and
|
|
70
|
+
* still re-exports it. `engine.ts` imports `SqliteIndex`, so a `doctor` migration
|
|
71
|
+
* that reached for the constant would have pulled the whole index — and
|
|
72
|
+
* `node:sqlite`'s experimental warning — onto the default path of
|
|
73
|
+
* `aidlc doctor` for the sake of one string (stale-graph-entries/AC-17).
|
|
74
|
+
*/
|
|
75
|
+
export const KNOWLEDGE_DIR = join('.aidlc', 'knowledge');
|
|
49
76
|
// ---------------------------------------------------------------------------
|
|
50
77
|
// Validation helpers
|
|
51
78
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/knowledge/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,SAAS;IACT,eAAe;IACf,YAAY;IACZ,UAAU;IACV,MAAM;IACN,YAAY;IACZ,UAAU;IACV,QAAQ;CACA,CAAC;AAKX,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,MAAM;IACN,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU;IACV,UAAU;IACV,gBAAgB;CACR,CAAC;AAKX,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/knowledge/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,SAAS;IACT,eAAe;IACf,YAAY;IACZ,UAAU;IACV,MAAM;IACN,YAAY;IACZ,UAAU;IACV,QAAQ;CACA,CAAC;AAKX,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,MAAM;IACN,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU;IACV,UAAU;IACV,gBAAgB;CACR,CAAC;AAKX,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAqEzD,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAEnD,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,CACJ,YAAkC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClD,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,CACJ,kBAAwC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxD,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE,sBAAsB;QACvC,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,gBAAgB;QAC1B,MAAM,EAAE,sBAAsB;KAC/B,CAAC;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC;AACpC,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/knowledge/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/knowledge/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAWjE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAclD;AAED,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,cAAc;IAGxC;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IA+B3F,wEAAwE;IACxE,eAAe,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,YAAY;IA0BpH,wDAAwD;IACxD,YAAY,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,GACrG,WAAW;IAoBd,yFAAyF;IACzF,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GAAG,YAAY;IA6B9M,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,gBAAgB;CAYzB;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUxE"}
|
package/dist/knowledge/writer.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
13
|
import { execSync } from 'node:child_process';
|
|
14
|
-
import { ENTITY_ID_RE, isValidEntityType, isValidRelationshipType, AGENT_CONFIDENCE, } from './types.js';
|
|
14
|
+
import { ENTITY_ID_RE, isValidEntityType, isValidRelationshipType, AGENT_CONFIDENCE, AGENT_INFERRED_SOURCE, } from './types.js';
|
|
15
15
|
/** Patterns that suggest a credential is being written into the graph (NFR N6). */
|
|
16
16
|
const SECRET_PATTERNS = [
|
|
17
17
|
/-----BEGIN [A-Z ]*PRIVATE KEY-----/,
|
|
@@ -58,7 +58,7 @@ export class KnowledgeWriter {
|
|
|
58
58
|
name: input.name,
|
|
59
59
|
description: input.description ?? '',
|
|
60
60
|
confidence: input.confidence ?? AGENT_CONFIDENCE,
|
|
61
|
-
source: input.source ??
|
|
61
|
+
source: input.source ?? AGENT_INFERRED_SOURCE,
|
|
62
62
|
author: input.author ?? resolveAuthor(),
|
|
63
63
|
tags: input.tags ?? [],
|
|
64
64
|
lastVerified: input.lastVerified ?? new Date().toISOString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/knowledge/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/knowledge/writer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rasensio/aidlc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.0",
|
|
4
4
|
"description": "AI Development Lifecycle Framework — structured lifecycle guidance for AI coding agents across platforms",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"commander": "15.0.0",
|
|
25
25
|
"picomatch": "4.0.5",
|
|
26
26
|
"yaml": "2.9.0",
|
|
27
|
-
"@rasensio/aidlc-content": "1.
|
|
27
|
+
"@rasensio/aidlc-content": "1.25.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "22.15.32",
|