@rasensio/aidlc 1.74.0 → 1.76.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/autopilot/driver.d.ts +8 -0
- package/dist/autopilot/driver.d.ts.map +1 -1
- package/dist/autopilot/driver.js +25 -1
- package/dist/autopilot/driver.js.map +1 -1
- package/dist/autopilot/run.d.ts.map +1 -1
- package/dist/autopilot/run.js +20 -2
- package/dist/autopilot/run.js.map +1 -1
- package/dist/commands/init.js +7 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +7 -3
- package/dist/commands/update.js.map +1 -1
- package/dist/compile/knowledge-section.d.ts +27 -5
- package/dist/compile/knowledge-section.d.ts.map +1 -1
- package/dist/compile/knowledge-section.js +89 -20
- package/dist/compile/knowledge-section.js.map +1 -1
- package/dist/knowledge/compact.d.ts.map +1 -1
- package/dist/knowledge/compact.js +3 -0
- package/dist/knowledge/compact.js.map +1 -1
- package/dist/knowledge/gate-criterion.d.ts.map +1 -1
- package/dist/knowledge/gate-criterion.js +9 -2
- package/dist/knowledge/gate-criterion.js.map +1 -1
- package/dist/knowledge/source-fingerprint.d.ts.map +1 -1
- package/dist/knowledge/source-fingerprint.js +3 -1
- package/dist/knowledge/source-fingerprint.js.map +1 -1
- package/dist/knowledge/storable.d.ts +38 -0
- package/dist/knowledge/storable.d.ts.map +1 -0
- package/dist/knowledge/storable.js +87 -0
- package/dist/knowledge/storable.js.map +1 -0
- package/dist/knowledge/sync.d.ts.map +1 -1
- package/dist/knowledge/sync.js +37 -3
- package/dist/knowledge/sync.js.map +1 -1
- package/dist/knowledge/yaml-source.d.ts +12 -1
- package/dist/knowledge/yaml-source.d.ts.map +1 -1
- package/dist/knowledge/yaml-source.js +12 -1
- package/dist/knowledge/yaml-source.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the knowledge index can store — the read-path rule for YAML documents.
|
|
3
|
+
*
|
|
4
|
+
* `loadAll` admits any document with a string `id` and `type`, and the index is the
|
|
5
|
+
* first thing that cares about the rest. A `description:` holding a map used to throw
|
|
6
|
+
* "Provided value cannot be bound to SQLite parameter 4." out of the rebuild, and so
|
|
7
|
+
* out of `aidlc update`, `aidlc init` and `aidlc gate`, naming neither the file nor the
|
|
8
|
+
* field. The rule here lets the read path leave that one document out, and say which
|
|
9
|
+
* one, instead (knowledge-block-vanishes-silently/AC-7, AC-8, AC-14).
|
|
10
|
+
*
|
|
11
|
+
* The rule is what `SqliteIndex.upsertEntity` / `upsertRelationship` / `syncFts`
|
|
12
|
+
* actually refuse — measured by driving the real index with every field and shape —
|
|
13
|
+
* and deliberately not `KnowledgeWriter.validateEntity`, which is stricter (id slug,
|
|
14
|
+
* confidence range, strings only). Applying the write-path rule on read would refuse
|
|
15
|
+
* documents that index today, a numeric `name` or a `confidence: high`; this one can
|
|
16
|
+
* only turn a crash into a named skip (AC-13, design DD3). A field added to
|
|
17
|
+
* `upsertEntity` needs a line here.
|
|
18
|
+
*
|
|
19
|
+
* No import of the index: `yaml-source.ts` uses this, and must not pull `node:sqlite`
|
|
20
|
+
* onto the paths that only read YAML (stale-graph-entries/AC-17).
|
|
21
|
+
*
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Why an entity document cannot be stored, or null when it can.
|
|
26
|
+
*
|
|
27
|
+
* @param doc - A parsed document with a string `id` and `type`.
|
|
28
|
+
* @returns e.g. `'description' is a map`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function unstorableEntityReason(doc: Record<string, unknown>): string | null;
|
|
31
|
+
/**
|
|
32
|
+
* Why a relationship document cannot be stored, or null when it can. `from`, `to`
|
|
33
|
+
* and `type` are already strings — `loadAll` classifies a document by them.
|
|
34
|
+
*
|
|
35
|
+
* @param doc - A parsed document with string `from`, `to` and `type`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function unstorableRelationshipReason(doc: Record<string, unknown>): string | null;
|
|
38
|
+
//# sourceMappingURL=storable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storable.d.ts","sourceRoot":"","sources":["../../src/knowledge/storable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAmCH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CASlF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAGxF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the knowledge index can store — the read-path rule for YAML documents.
|
|
3
|
+
*
|
|
4
|
+
* `loadAll` admits any document with a string `id` and `type`, and the index is the
|
|
5
|
+
* first thing that cares about the rest. A `description:` holding a map used to throw
|
|
6
|
+
* "Provided value cannot be bound to SQLite parameter 4." out of the rebuild, and so
|
|
7
|
+
* out of `aidlc update`, `aidlc init` and `aidlc gate`, naming neither the file nor the
|
|
8
|
+
* field. The rule here lets the read path leave that one document out, and say which
|
|
9
|
+
* one, instead (knowledge-block-vanishes-silently/AC-7, AC-8, AC-14).
|
|
10
|
+
*
|
|
11
|
+
* The rule is what `SqliteIndex.upsertEntity` / `upsertRelationship` / `syncFts`
|
|
12
|
+
* actually refuse — measured by driving the real index with every field and shape —
|
|
13
|
+
* and deliberately not `KnowledgeWriter.validateEntity`, which is stricter (id slug,
|
|
14
|
+
* confidence range, strings only). Applying the write-path rule on read would refuse
|
|
15
|
+
* documents that index today, a numeric `name` or a `confidence: high`; this one can
|
|
16
|
+
* only turn a crash into a named skip (AC-13, design DD3). A field added to
|
|
17
|
+
* `upsertEntity` needs a line here.
|
|
18
|
+
*
|
|
19
|
+
* No import of the index: `yaml-source.ts` uses this, and must not pull `node:sqlite`
|
|
20
|
+
* onto the paths that only read YAML (stale-graph-entries/AC-17).
|
|
21
|
+
*
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* The index binds these as-is. `node:sqlite` binds a string or a number and nothing
|
|
26
|
+
* else a YAML document can hold — `undefined` (a missing key), a boolean, a map and a
|
|
27
|
+
* list all throw.
|
|
28
|
+
*/
|
|
29
|
+
const ENTITY_SCALARS = ['name', 'description', 'confidence', 'source', 'author', 'lastVerified'];
|
|
30
|
+
/**
|
|
31
|
+
* Of those, the columns with no default. `INSERT OR REPLACE` substitutes a column's
|
|
32
|
+
* default for an explicit null, so a null `confidence`, `source` or `author` stores;
|
|
33
|
+
* a null in one of these fails `NOT NULL`.
|
|
34
|
+
*/
|
|
35
|
+
const ENTITY_NO_DEFAULT = new Set(['name', 'description', 'lastVerified']);
|
|
36
|
+
/** The shape of a value, in the words a warning uses. */
|
|
37
|
+
function shapeOf(value) {
|
|
38
|
+
if (value === undefined)
|
|
39
|
+
return 'missing';
|
|
40
|
+
if (value === null)
|
|
41
|
+
return 'null';
|
|
42
|
+
if (Number.isNaN(value))
|
|
43
|
+
return '.nan';
|
|
44
|
+
if (Array.isArray(value))
|
|
45
|
+
return 'a list';
|
|
46
|
+
if (typeof value === 'object')
|
|
47
|
+
return 'a map';
|
|
48
|
+
return `a ${typeof value}`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* YAML's `.nan` is a number, and SQLite stores a NaN double as NULL — so it is null
|
|
52
|
+
* by the time `NOT NULL` is checked, and fails exactly where null does (AC-15).
|
|
53
|
+
*/
|
|
54
|
+
function bindable(value, nullable) {
|
|
55
|
+
if (value === null || Number.isNaN(value))
|
|
56
|
+
return nullable;
|
|
57
|
+
return typeof value === 'string' || typeof value === 'number';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Why an entity document cannot be stored, or null when it can.
|
|
61
|
+
*
|
|
62
|
+
* @param doc - A parsed document with a string `id` and `type`.
|
|
63
|
+
* @returns e.g. `'description' is a map`.
|
|
64
|
+
*/
|
|
65
|
+
export function unstorableEntityReason(doc) {
|
|
66
|
+
for (const field of ENTITY_SCALARS) {
|
|
67
|
+
if (!bindable(doc[field], !ENTITY_NO_DEFAULT.has(field))) {
|
|
68
|
+
return `'${field}' is ${shapeOf(doc[field])}`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// `syncFts` joins it; anything but a list throws there, after the row is bound.
|
|
72
|
+
if (!Array.isArray(doc.tags))
|
|
73
|
+
return `'tags' is ${shapeOf(doc.tags)}, not a list`;
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Why a relationship document cannot be stored, or null when it can. `from`, `to`
|
|
78
|
+
* and `type` are already strings — `loadAll` classifies a document by them.
|
|
79
|
+
*
|
|
80
|
+
* @param doc - A parsed document with string `from`, `to` and `type`.
|
|
81
|
+
*/
|
|
82
|
+
export function unstorableRelationshipReason(doc) {
|
|
83
|
+
if (!bindable(doc.lastVerified, false))
|
|
84
|
+
return `'lastVerified' is ${shapeOf(doc.lastVerified)}`;
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=storable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storable.js","sourceRoot":"","sources":["../../src/knowledge/storable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAU,CAAC;AAE1G;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AAEnF,yDAAyD;AACzD,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC9C,OAAO,KAAK,OAAO,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAiB;IACjD,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAA4B;IACjE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO,IAAI,KAAK,QAAQ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IACD,gFAAgF;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,GAA4B;IACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,qBAAqB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;IAChG,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/knowledge/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/knowledge/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,wBAAwB,GAAG,qBAAqB,GAAG,eAAe,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAKD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,cAAc,EACrB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC9B,UAAU,CA0EZ;AAqCD,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBxD"}
|
package/dist/knowledge/sync.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
13
14
|
import { fingerprintSources } from './source-fingerprint.js';
|
|
14
15
|
/** Description change ratio above which a merge is reported as suspicious. */
|
|
15
16
|
const DIVERGENCE_THRESHOLD = 0.5;
|
|
@@ -29,10 +30,12 @@ export function syncKnowledge(source, index, priorEntities) {
|
|
|
29
30
|
// `sync` cannot call that helper — it needs the parsed graph in hand to compare
|
|
30
31
|
// against the pre-sync index before anything is replaced — so it repeats the two
|
|
31
32
|
// steps of it that matter, in the same order
|
|
32
|
-
// (knowledge-index-misses-merged-yaml/AC-7, AC-8)
|
|
33
|
+
// (knowledge-index-misses-merged-yaml/AC-7, AC-8) — and reads the way it reads, so
|
|
34
|
+
// `sync` is not the one path still throwing on a document the others skip
|
|
35
|
+
// (knowledge-block-vanishes-silently/AC-7).
|
|
33
36
|
const fingerprint = fingerprintSources(source);
|
|
34
37
|
const before = new Map((priorEntities ?? index.getAllEntities()).map((e) => [e.id, e]));
|
|
35
|
-
const { entities, relationships, warnings: parseWarnings } = source.loadAll();
|
|
38
|
+
const { entities, relationships, warnings: parseWarnings } = source.loadAll({ forIndex: true });
|
|
36
39
|
const warnings = parseWarnings.map((message) => ({
|
|
37
40
|
entityId: '',
|
|
38
41
|
type: 'parse-warning',
|
|
@@ -95,8 +98,39 @@ export function syncKnowledge(source, index, priorEntities) {
|
|
|
95
98
|
warnings,
|
|
96
99
|
};
|
|
97
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* The fields the index stores besides `id` and `metadata`. A `Record` over `keyof Entity`
|
|
103
|
+
* rather than a list of names, so a field added to `Entity` fails to compile until it is
|
|
104
|
+
* listed here — a comparison that silently skips a field hides real merge damage
|
|
105
|
+
* (knowledge-sync-overcounts-updated/AC-4).
|
|
106
|
+
*/
|
|
107
|
+
const INDEXED_FIELDS = {
|
|
108
|
+
type: true,
|
|
109
|
+
name: true,
|
|
110
|
+
description: true,
|
|
111
|
+
confidence: true,
|
|
112
|
+
source: true,
|
|
113
|
+
author: true,
|
|
114
|
+
tags: true,
|
|
115
|
+
lastVerified: true,
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Same content as far as the index can tell. One side comes out of SQLite, where
|
|
119
|
+
* `rowToEntity` always sets `metadata: {}` and fixes the key order; the other is the
|
|
120
|
+
* YAML as parsed, in the file's order and with whatever keys the file has. Comparing
|
|
121
|
+
* their serializations counted 229 of 264 unchanged entities as updated.
|
|
122
|
+
*
|
|
123
|
+
* Field by field, so key order and keys the index never stores are not differences
|
|
124
|
+
* (AC-3, AC-5). `isDeepStrictEqual` ignores object key order and keeps array order, so
|
|
125
|
+
* reordered tags still count (AC-6). An absent `metadata` is `{}`: the index stores
|
|
126
|
+
* `metadata ?? {}`, and after one rebuild the two cannot be told apart (AC-2).
|
|
127
|
+
*/
|
|
98
128
|
function entitiesEqual(a, b) {
|
|
99
|
-
|
|
129
|
+
for (const field of Object.keys(INDEXED_FIELDS)) {
|
|
130
|
+
if (!isDeepStrictEqual(a[field], b[field]))
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
return isDeepStrictEqual(a.metadata ?? {}, b.metadata ?? {});
|
|
100
134
|
}
|
|
101
135
|
/** Iterative two-row Levenshtein — fine for description-sized strings. */
|
|
102
136
|
export function levenshtein(a, b) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/knowledge/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/knowledge/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,17 @@ export interface LoadedGraph {
|
|
|
45
45
|
/** Parse problems encountered (file → message); corrupted docs are skipped. */
|
|
46
46
|
warnings: string[];
|
|
47
47
|
}
|
|
48
|
+
/** How `loadAll` reads. */
|
|
49
|
+
export interface LoadOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Leave out the documents the index cannot store, with a warning naming each
|
|
52
|
+
* (knowledge-block-vanishes-silently/AC-7, AC-8, AC-14). For the callers that feed
|
|
53
|
+
* `index.rebuild` and nothing else. Never for `compact`, which rewrites the YAML
|
|
54
|
+
* from what it loaded and so would delete the document instead of skipping it
|
|
55
|
+
* (design DD4).
|
|
56
|
+
*/
|
|
57
|
+
forIndex?: boolean;
|
|
58
|
+
}
|
|
48
59
|
/**
|
|
49
60
|
* Message for a write the index believes in and the sources do not — a
|
|
50
61
|
* reverted or hand-edited source file leaves the index ahead, and the repair
|
|
@@ -98,7 +109,7 @@ export declare class YamlSourceStore {
|
|
|
98
109
|
*/
|
|
99
110
|
rewriteFile(filename: string, entityType: string, docs: Array<Entity | Relationship>): void;
|
|
100
111
|
/** Parse every source file into entities and relationships (KG Req 3.2). */
|
|
101
|
-
loadAll(): LoadedGraph;
|
|
112
|
+
loadAll(options?: LoadOptions): LoadedGraph;
|
|
102
113
|
/**
|
|
103
114
|
* List YAML source files relative to the knowledge dir: the legacy per-type
|
|
104
115
|
* files, then `<dir>/<file>` for every record file one level down (AC-4).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-source.d.ts","sourceRoot":"","sources":["../../src/knowledge/yaml-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAUrC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml-source.d.ts","sourceRoot":"","sources":["../../src/knowledge/yaml-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAUrC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AAIvE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,2BAA2B;AAC3B,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMxF;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,MAAM;IAEjD,gDAAgD;IAChD,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,wCAAwC;IACxC,MAAM,IAAI,OAAO;IASjB,oEAAoE;IACpE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoClC;;;;OAIG;IACH,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAI3C;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,GAAE,WAAW,CAAC,MAAM,CAAa,GAAG,MAAM,EAAE;IAalE;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI;IAU3F,4EAA4E;IAC5E,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,WAAW;IA4D/C;;;OAGG;IACH,eAAe,IAAI,MAAM,EAAE;IAsB3B,sFAAsF;IACtF,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,UAAU;CAQnB"}
|
|
@@ -22,6 +22,7 @@ import { join } from 'node:path';
|
|
|
22
22
|
import { parseAllDocuments, stringify } from 'yaml';
|
|
23
23
|
import { KNOWLEDGE_SCHEMA_VERSION, RELATIONSHIPS_DIR, recordDirForType, recordFileName, relationshipFileName, sourceFileForType, } from './types.js';
|
|
24
24
|
import { joinDocuments } from './yaml-documents.js';
|
|
25
|
+
import { unstorableEntityReason, unstorableRelationshipReason } from './storable.js';
|
|
25
26
|
/**
|
|
26
27
|
* Line width every writer in this module serializes at. Preserved documents are
|
|
27
28
|
* re-emitted at the same width, so a write never reflows a document it did not
|
|
@@ -169,7 +170,7 @@ export class YamlSourceStore {
|
|
|
169
170
|
// Reads
|
|
170
171
|
// -------------------------------------------------------------------------
|
|
171
172
|
/** Parse every source file into entities and relationships (KG Req 3.2). */
|
|
172
|
-
loadAll() {
|
|
173
|
+
loadAll(options = {}) {
|
|
173
174
|
const entities = [];
|
|
174
175
|
const relationships = [];
|
|
175
176
|
const warnings = [];
|
|
@@ -207,9 +208,19 @@ export class YamlSourceStore {
|
|
|
207
208
|
continue;
|
|
208
209
|
}
|
|
209
210
|
if (typeof obj.from === 'string' && typeof obj.to === 'string' && typeof obj.type === 'string') {
|
|
211
|
+
const reason = options.forIndex ? unstorableRelationshipReason(obj) : null;
|
|
212
|
+
if (reason) {
|
|
213
|
+
warnings.push(`${file}: skipped relationship '${obj.from}' -> '${obj.to}' (${reason})`);
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
210
216
|
relationships.push(obj);
|
|
211
217
|
}
|
|
212
218
|
else if (typeof obj.id === 'string' && typeof obj.type === 'string') {
|
|
219
|
+
const reason = options.forIndex ? unstorableEntityReason(obj) : null;
|
|
220
|
+
if (reason) {
|
|
221
|
+
warnings.push(`${file}: skipped document '${obj.id}' (${reason})`);
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
213
224
|
entities.push(obj);
|
|
214
225
|
}
|
|
215
226
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-source.js","sourceRoot":"","sources":["../../src/knowledge/yaml-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7G,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGpD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml-source.js","sourceRoot":"","sources":["../../src/knowledge/yaml-source.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.76.0",
|
|
4
4
|
"description": "AI Development Lifecycle Framework — structured lifecycle guidance for AI coding agents across platforms",
|
|
5
5
|
"homepage": "https://aidlc.rodrigoasensio.com",
|
|
6
6
|
"repository": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"commander": "15.0.0",
|
|
32
32
|
"picomatch": "4.0.5",
|
|
33
33
|
"yaml": "2.9.0",
|
|
34
|
-
"@rasensio/aidlc-content": "1.
|
|
34
|
+
"@rasensio/aidlc-content": "1.76.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/node": "22.15.32",
|