@calliopelabs/cli 3.2.1 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/acp.d.ts +11 -3
- package/dist/acp.d.ts.map +1 -1
- package/dist/acp.js +114 -27
- package/dist/acp.js.map +1 -1
- package/dist/attach.d.ts +149 -0
- package/dist/attach.d.ts.map +1 -0
- package/dist/attach.js +450 -0
- package/dist/attach.js.map +1 -0
- package/dist/bin.d.ts +1 -0
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +30 -6
- package/dist/bin.js.map +1 -1
- package/dist/brain/actions.d.ts +1 -1
- package/dist/brain/actions.d.ts.map +1 -1
- package/dist/brain/actions.js.map +1 -1
- package/dist/brain/cli.d.ts +1 -1
- package/dist/brain/cli.d.ts.map +1 -1
- package/dist/brain/cli.js +47 -5
- package/dist/brain/cli.js.map +1 -1
- package/dist/brain/exchange-json.d.ts +4 -0
- package/dist/brain/exchange-json.d.ts.map +1 -0
- package/dist/brain/exchange-json.js +77 -0
- package/dist/brain/exchange-json.js.map +1 -0
- package/dist/brain/exchange.d.ts +26 -0
- package/dist/brain/exchange.d.ts.map +1 -0
- package/dist/brain/exchange.js +86 -0
- package/dist/brain/exchange.js.map +1 -0
- package/dist/brain/index.d.ts +3 -0
- package/dist/brain/index.d.ts.map +1 -1
- package/dist/brain/index.js +3 -0
- package/dist/brain/index.js.map +1 -1
- package/dist/brain/journal.js +3 -3
- package/dist/brain/journal.js.map +1 -1
- package/dist/brain/kg-claims.d.ts +13 -0
- package/dist/brain/kg-claims.d.ts.map +1 -0
- package/dist/brain/kg-claims.js +156 -0
- package/dist/brain/kg-claims.js.map +1 -0
- package/dist/brain/kg-export.d.ts +13 -0
- package/dist/brain/kg-export.d.ts.map +1 -0
- package/dist/brain/kg-export.js +116 -0
- package/dist/brain/kg-export.js.map +1 -0
- package/dist/brain/kg-transfer.d.ts +29 -0
- package/dist/brain/kg-transfer.d.ts.map +1 -0
- package/dist/brain/kg-transfer.js +156 -0
- package/dist/brain/kg-transfer.js.map +1 -0
- package/dist/brain/kg.d.ts.map +1 -1
- package/dist/brain/kg.js +89 -16
- package/dist/brain/kg.js.map +1 -1
- package/dist/brain/presentation.d.ts.map +1 -1
- package/dist/brain/presentation.js +10 -0
- package/dist/brain/presentation.js.map +1 -1
- package/dist/brain/store.d.ts +1 -1
- package/dist/brain/store.d.ts.map +1 -1
- package/dist/brain/store.js +8 -2
- package/dist/brain/store.js.map +1 -1
- package/dist/brain/transfer-report.d.ts +38 -0
- package/dist/brain/transfer-report.d.ts.map +1 -0
- package/dist/brain/transfer-report.js +10 -0
- package/dist/brain/transfer-report.js.map +1 -0
- package/dist/brain/transfer.d.ts +29 -21
- package/dist/brain/transfer.d.ts.map +1 -1
- package/dist/brain/transfer.js +120 -89
- package/dist/brain/transfer.js.map +1 -1
- package/dist/brain/validation.d.ts +1 -0
- package/dist/brain/validation.d.ts.map +1 -1
- package/dist/brain/validation.js +7 -6
- package/dist/brain/validation.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/execution/authority.d.ts.map +1 -1
- package/dist/execution/authority.js +4 -2
- package/dist/execution/authority.js.map +1 -1
- package/dist/execution/files.d.ts.map +1 -1
- package/dist/execution/files.js +9 -6
- package/dist/execution/files.js.map +1 -1
- package/dist/execution/ledger.d.ts.map +1 -1
- package/dist/execution/ledger.js +3 -1
- package/dist/execution/ledger.js.map +1 -1
- package/dist/execution/project-spend.d.ts.map +1 -1
- package/dist/execution/project-spend.js +9 -6
- package/dist/execution/project-spend.js.map +1 -1
- package/dist/execution/writer-recovery.d.ts.map +1 -1
- package/dist/execution/writer-recovery.js +14 -10
- package/dist/execution/writer-recovery.js.map +1 -1
- package/dist/goals/store.d.ts.map +1 -1
- package/dist/goals/store.js +3 -1
- package/dist/goals/store.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/judgment/cli.d.ts +20 -0
- package/dist/judgment/cli.d.ts.map +1 -0
- package/dist/judgment/cli.js +141 -0
- package/dist/judgment/cli.js.map +1 -0
- package/dist/judgment/evaluate.d.ts +47 -0
- package/dist/judgment/evaluate.d.ts.map +1 -0
- package/dist/judgment/evaluate.js +369 -0
- package/dist/judgment/evaluate.js.map +1 -0
- package/dist/judgment/index.d.ts +8 -0
- package/dist/judgment/index.d.ts.map +1 -0
- package/dist/judgment/index.js +5 -0
- package/dist/judgment/index.js.map +1 -0
- package/dist/judgment/policy.d.ts +61 -0
- package/dist/judgment/policy.d.ts.map +1 -0
- package/dist/judgment/policy.js +143 -0
- package/dist/judgment/policy.js.map +1 -0
- package/dist/judgment/types.d.ts +73 -0
- package/dist/judgment/types.d.ts.map +1 -0
- package/dist/judgment/types.js +9 -0
- package/dist/judgment/types.js.map +1 -0
- package/dist/model-detection.d.ts.map +1 -1
- package/dist/model-detection.js +40 -7
- package/dist/model-detection.js.map +1 -1
- package/dist/models/metadata.d.ts +2 -0
- package/dist/models/metadata.d.ts.map +1 -1
- package/dist/models/metadata.js +2 -2
- package/dist/models/metadata.js.map +1 -1
- package/dist/orchestration/execution-store.d.ts.map +1 -1
- package/dist/orchestration/execution-store.js +14 -3
- package/dist/orchestration/execution-store.js.map +1 -1
- package/dist/orchestration/store.d.ts.map +1 -1
- package/dist/orchestration/store.js +3 -1
- package/dist/orchestration/store.js.map +1 -1
- package/dist/policy.d.ts +8 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +74 -5
- package/dist/policy.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +10 -5
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +3 -2
- package/dist/providers/openai.js.map +1 -1
- package/dist/routing/select.d.ts +7 -0
- package/dist/routing/select.d.ts.map +1 -1
- package/dist/routing/select.js +18 -1
- package/dist/routing/select.js.map +1 -1
- package/dist/session-management/files.d.ts.map +1 -1
- package/dist/session-management/files.js +9 -6
- package/dist/session-management/files.js.map +1 -1
- package/dist/sessions/history.d.ts.map +1 -1
- package/dist/sessions/history.js +12 -6
- package/dist/sessions/history.js.map +1 -1
- package/dist/spawning/store.d.ts.map +1 -1
- package/dist/spawning/store.js +10 -8
- package/dist/spawning/store.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +5 -2
- package/dist/tools.js.map +1 -1
- package/dist/types.js +1 -1
- package/dist/ui/agent.d.ts.map +1 -1
- package/dist/ui/agent.js +3 -2
- package/dist/ui/agent.js.map +1 -1
- package/dist/ui/commands.d.ts.map +1 -1
- package/dist/ui/commands.js +20 -12
- package/dist/ui/commands.js.map +1 -1
- package/dist/ui/model-commands.d.ts.map +1 -1
- package/dist/ui/model-commands.js +3 -2
- package/dist/ui/model-commands.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/brain/journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,UAAU,EACV,YAAY,GASb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/brain/journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type PortableKnowledgeGraph, type PortableKgNode, type PortableKgEdge } from './kg.js';
|
|
2
|
+
import type { ExchangeArchive } from './exchange.js';
|
|
3
|
+
import type { TransferLoss } from './transfer-report.js';
|
|
4
|
+
import { type EntityInput, type EdgeInput, type SourceInput } from './types.js';
|
|
5
|
+
export declare function graphOrigin(graph: PortableKnowledgeGraph, archive?: ExchangeArchive, explicit?: string): {
|
|
6
|
+
id: string;
|
|
7
|
+
revision: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const graphNamespace: (origin: string, kind: 'entity' | 'edge', id: string) => string;
|
|
10
|
+
export declare function edgeIdentities(graph: PortableKnowledgeGraph): string[];
|
|
11
|
+
export declare function claimSource(value: unknown, locator: SourceInput['locator'], losses: TransferLoss[]): SourceInput;
|
|
12
|
+
export declare function projectClaim(kind: 'entity' | 'edge', externalId: string, record: PortableKgNode | PortableKgEdge, origin: string, sourceIds: string[], losses: TransferLoss[]): EntityInput | EdgeInput;
|
|
13
|
+
//# sourceMappingURL=kg-claims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg-claims.d.ts","sourceRoot":"","sources":["../../src/brain/kg-claims.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAGpB,wBAAgB,WAAW,CACzB,KAAK,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,eAAe,EACzB,QAAQ,CAAC,EAAE,MAAM;;;EAgClB;AAED,eAAO,MAAM,cAAc,WAAY,MAAM,QAAQ,QAAQ,GAAG,MAAM,MAAM,MAAM,WAChB,CAAC;AAEnE,wBAAgB,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAqBtE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,EAC/B,MAAM,EAAE,YAAY,EAAE,GACrB,WAAW,CA0Bb;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GAAG,cAAc,EACvC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,YAAY,EAAE,GACrB,WAAW,GAAG,SAAS,CAwHzB"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/** Preserve rich foreign claims without extending the closed native journal schema. */
|
|
2
|
+
import { digest } from '../approvals/index.js';
|
|
3
|
+
import { sanitizeBrainValue, hasBrainSecrets } from './access.js';
|
|
4
|
+
import { canonicalExchangeJson } from './exchange-json.js';
|
|
5
|
+
import { knowledgeGraphDigest, } from './kg.js';
|
|
6
|
+
import { BrainError, ENTITY_KINDS, } from './types.js';
|
|
7
|
+
import { obj, text, identifier, entity, edge, source } from './validation.js';
|
|
8
|
+
export function graphOrigin(graph, archive, explicit) {
|
|
9
|
+
const claims = [...graph.nodes, ...graph.edges].map((record) => record.props.origin);
|
|
10
|
+
const embedded = claims.filter((value) => value !== undefined);
|
|
11
|
+
if (embedded.some((value) => !obj(value) || typeof value.id !== 'string' || typeof value.revision !== 'string'))
|
|
12
|
+
throw new BrainError('invalid', 'Graph origin claims require an ID and revision.');
|
|
13
|
+
const ids = new Set(embedded.map((value) => value.id));
|
|
14
|
+
const revisions = new Set(embedded.map((value) => value.revision));
|
|
15
|
+
if (ids.size > 1 || revisions.size > 1)
|
|
16
|
+
throw new BrainError('invalid', 'Graph origin claims disagree.');
|
|
17
|
+
const claimedId = ids.values().next().value;
|
|
18
|
+
const id = archive?.origin.id ?? explicit ?? claimedId;
|
|
19
|
+
if (!id)
|
|
20
|
+
throw new BrainError('invalid', 'A bare graph needs --origin or consistent embedded origin claims.');
|
|
21
|
+
if ((explicit && explicit !== id) || (claimedId && claimedId !== id))
|
|
22
|
+
throw new BrainError('invalid', 'Explicit, archive and graph origin IDs must agree.');
|
|
23
|
+
const claimedRevision = revisions.values().next().value;
|
|
24
|
+
if (archive && claimedRevision && archive.origin.revision !== claimedRevision)
|
|
25
|
+
throw new BrainError('invalid', 'Archive and graph origin revisions disagree.');
|
|
26
|
+
const revision = archive?.origin.revision ?? claimedRevision ?? knowledgeGraphDigest(graph);
|
|
27
|
+
text(id, 512);
|
|
28
|
+
text(revision, 512);
|
|
29
|
+
if (hasBrainSecrets({ id, revision }))
|
|
30
|
+
throw new BrainError('policy-denied', 'Origin identifiers contain secret material.');
|
|
31
|
+
return { id, revision };
|
|
32
|
+
}
|
|
33
|
+
export const graphNamespace = (origin, kind, id) => 'import:kg:' + digest(canonicalExchangeJson([origin, kind, id]));
|
|
34
|
+
export function edgeIdentities(graph) {
|
|
35
|
+
const triples = graph.edges.map((record) => canonicalExchangeJson([record.source, record.type, record.target]));
|
|
36
|
+
const counts = new Map();
|
|
37
|
+
for (const triple of triples)
|
|
38
|
+
counts.set(triple, (counts.get(triple) ?? 0) + 1);
|
|
39
|
+
const ids = graph.edges.map((record, index) => {
|
|
40
|
+
if (Object.hasOwn(record.props, 'id')) {
|
|
41
|
+
text(record.props.id, 512);
|
|
42
|
+
return record.props.id;
|
|
43
|
+
}
|
|
44
|
+
if (counts.get(triples[index]) !== 1)
|
|
45
|
+
throw new BrainError('invalid', 'Parallel relationships require distinct explicit props.id values.');
|
|
46
|
+
return 'derived:' + digest(triples[index]);
|
|
47
|
+
});
|
|
48
|
+
if (new Set(ids).size !== ids.length)
|
|
49
|
+
throw new BrainError('invalid', 'Duplicate relationship IDs.');
|
|
50
|
+
return ids;
|
|
51
|
+
}
|
|
52
|
+
export function claimSource(value, locator, losses) {
|
|
53
|
+
const original = canonicalExchangeJson(value), clean = sanitizeBrainValue(value);
|
|
54
|
+
if (hasBrainSecrets(clean))
|
|
55
|
+
throw new BrainError('policy-denied', 'Transfer metadata contains secret keys that cannot be safely retained.');
|
|
56
|
+
const content = canonicalExchangeJson(clean), originalHash = digest(original), contentHash = digest(content);
|
|
57
|
+
if (content !== original)
|
|
58
|
+
losses.push({
|
|
59
|
+
code: 'redaction',
|
|
60
|
+
message: 'Recognized secrets are redacted from retained source claims.',
|
|
61
|
+
});
|
|
62
|
+
return source({
|
|
63
|
+
id: 'source:kg:' + digest(originalHash + ':' + contentHash),
|
|
64
|
+
kind: 'import',
|
|
65
|
+
name: 'Portable graph source claim',
|
|
66
|
+
content,
|
|
67
|
+
originalHash,
|
|
68
|
+
contentHash,
|
|
69
|
+
redacted: content !== original,
|
|
70
|
+
locator,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
export function projectClaim(kind, externalId, record, origin, sourceIds, losses) {
|
|
74
|
+
const clean = sanitizeBrainValue(record), props = clean.props;
|
|
75
|
+
const loss = (code, message, fields) => losses.push({
|
|
76
|
+
code,
|
|
77
|
+
record: { kind, id: externalId },
|
|
78
|
+
message,
|
|
79
|
+
...(fields ? { fields } : {}),
|
|
80
|
+
});
|
|
81
|
+
if (hasBrainSecrets(externalId))
|
|
82
|
+
throw new BrainError('policy-denied', 'Record identifiers contain secret material.');
|
|
83
|
+
let confidence = props.confidence;
|
|
84
|
+
if (confidence === undefined || confidence === null || confidence === 'unknown') {
|
|
85
|
+
loss('unknown-confidence', 'Native projection uses zero for unknown confidence; the original claim remains in its source.');
|
|
86
|
+
confidence = 0;
|
|
87
|
+
}
|
|
88
|
+
if (typeof confidence !== 'number' || confidence < 0 || confidence > 1)
|
|
89
|
+
throw new BrainError('invalid', 'Confidence must be in [0,1] or explicitly unknown; values are never clamped.');
|
|
90
|
+
const sourceOnly = Object.keys(props).filter((key) => !['summary', 'state', 'confidence', 'attributes', 'id'].includes(key));
|
|
91
|
+
if (sourceOnly.length)
|
|
92
|
+
loss('source-only-metadata', 'Evidence, origin and other metadata remain source claims; native queries do not interpret them.', sourceOnly);
|
|
93
|
+
if (props.state !== undefined && props.state !== 'proposed')
|
|
94
|
+
loss('local-review', 'Imported status remains a source claim; the local projection starts proposed.', ['state']);
|
|
95
|
+
const common = {
|
|
96
|
+
id: graphNamespace(origin, kind, externalId),
|
|
97
|
+
state: 'proposed',
|
|
98
|
+
confidence,
|
|
99
|
+
provenance: sourceIds.map((sourceId) => ({
|
|
100
|
+
sourceId,
|
|
101
|
+
basis: 'inferred',
|
|
102
|
+
})),
|
|
103
|
+
};
|
|
104
|
+
if (kind === 'edge') {
|
|
105
|
+
const relation = clean;
|
|
106
|
+
if (Object.hasOwn(props, 'summary') || Object.hasOwn(props, 'attributes'))
|
|
107
|
+
loss('source-only-edge-properties', 'Relationship summary and attributes remain source claims.', ['summary', 'attributes']);
|
|
108
|
+
if (!identifier(relation.type))
|
|
109
|
+
throw new BrainError('invalid', 'Relationship type cannot be represented by the native identifier grammar.');
|
|
110
|
+
return edge({
|
|
111
|
+
...common,
|
|
112
|
+
from: graphNamespace(origin, 'entity', relation.source),
|
|
113
|
+
to: graphNamespace(origin, 'entity', relation.target),
|
|
114
|
+
type: relation.type,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const node = clean;
|
|
118
|
+
const nativeKind = ENTITY_KINDS.includes(node.type)
|
|
119
|
+
? node.type
|
|
120
|
+
: 'artifact';
|
|
121
|
+
if (nativeKind !== node.type)
|
|
122
|
+
loss('unsupported-kind', 'Native projection uses artifact for this foreign kind; the original kind is retained.');
|
|
123
|
+
const attributes = {
|
|
124
|
+
externalId,
|
|
125
|
+
externalType: node.type,
|
|
126
|
+
};
|
|
127
|
+
if (props.attributes !== undefined && !obj(props.attributes))
|
|
128
|
+
loss('source-only-attributes', 'Non-object attributes remain source claims.', ['attributes']);
|
|
129
|
+
if (obj(props.attributes)) {
|
|
130
|
+
const omitted = [];
|
|
131
|
+
for (const [key, value] of Object.entries(props.attributes)) {
|
|
132
|
+
if (['externalId', 'externalType'].includes(key) ||
|
|
133
|
+
(value !== null && !['string', 'number', 'boolean'].includes(typeof value)))
|
|
134
|
+
omitted.push(key);
|
|
135
|
+
else
|
|
136
|
+
Object.defineProperty(attributes, key, {
|
|
137
|
+
value,
|
|
138
|
+
enumerable: true,
|
|
139
|
+
writable: true,
|
|
140
|
+
configurable: true,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
if (omitted.length)
|
|
144
|
+
loss('source-only-attributes', 'Nested or reserved attributes remain source claims.', omitted);
|
|
145
|
+
}
|
|
146
|
+
if (props.summary !== undefined && typeof props.summary !== 'string')
|
|
147
|
+
loss('source-only-summary', 'Non-text summary remains a source claim; the projection uses the name.', ['summary']);
|
|
148
|
+
return entity({
|
|
149
|
+
...common,
|
|
150
|
+
kind: nativeKind,
|
|
151
|
+
name: node.name,
|
|
152
|
+
summary: typeof props.summary === 'string' ? props.summary : node.name,
|
|
153
|
+
attributes,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=kg-claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg-claims.js","sourceRoot":"","sources":["../../src/brain/kg-claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type BrainTransferOptions } from './exchange.js';
|
|
2
|
+
import { type TransferReport } from './transfer-report.js';
|
|
3
|
+
/** Explicit graph projection, with source snapshots but without journal history. */
|
|
4
|
+
export declare function exportKnowledgeGraphFile(cwd: string, path: string, options?: BrainTransferOptions): Promise<{
|
|
5
|
+
path: string;
|
|
6
|
+
format: "brain-exchange/v2" | "calliope-kg/v1" | "conflict-kg/v1";
|
|
7
|
+
nodes: number;
|
|
8
|
+
edges: number;
|
|
9
|
+
revision: string;
|
|
10
|
+
report: TransferReport;
|
|
11
|
+
preview: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=kg-export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg-export.d.ts","sourceRoot":"","sources":["../../src/brain/kg-export.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI/E,oFAAoF;AACpF,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB;;;;;;;;GAsHnC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import { dirname, basename, join } from 'node:path';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { digest } from '../approvals/index.js';
|
|
5
|
+
import { authorizeSessionAction } from '../session-management/index.js';
|
|
6
|
+
import { throwIfCancelled } from '../cancellation.js';
|
|
7
|
+
import { brainStore, BrainAccess, readBrainFile, projectFile, hasBrainSecrets } from './access.js';
|
|
8
|
+
import { parseExchangeJson, canonicalExchangeJson } from './exchange-json.js';
|
|
9
|
+
import { makeExchange } from './exchange.js';
|
|
10
|
+
import { exportKnowledgeGraph } from './kg.js';
|
|
11
|
+
import { BrainTransferError } from './transfer-report.js';
|
|
12
|
+
import { BrainError } from './types.js';
|
|
13
|
+
import { obj } from './validation.js';
|
|
14
|
+
/** Explicit graph projection, with source snapshots but without journal history. */
|
|
15
|
+
export async function exportKnowledgeGraphFile(cwd, path, options = {}) {
|
|
16
|
+
if (options.manifestPath && !options.exchange)
|
|
17
|
+
throw new BrainError('invalid', 'A manifest requires --exchange so it can be retained in the archive.');
|
|
18
|
+
const store = brainStore(cwd, options), view = store.read(options.signal);
|
|
19
|
+
await new BrainAccess(cwd, view.state.sources, options).all();
|
|
20
|
+
const manifestFile = options.manifestPath
|
|
21
|
+
? await readBrainFile(cwd, options.manifestPath, options)
|
|
22
|
+
: undefined;
|
|
23
|
+
const manifest = manifestFile ? parseExchangeJson(manifestFile.original) : null;
|
|
24
|
+
if (manifest !== null && !obj(manifest))
|
|
25
|
+
throw new BrainError('invalid', 'Manifest must be an object.');
|
|
26
|
+
const graph = exportKnowledgeGraph(view), origin = { id: view.state.header.id, revision: view.state.revision };
|
|
27
|
+
const report = {
|
|
28
|
+
format: 'calliope-brain-transfer-report/v1',
|
|
29
|
+
operation: 'export',
|
|
30
|
+
representation: 'graph-projection',
|
|
31
|
+
origin,
|
|
32
|
+
manifestHash: manifest ? digest(canonicalExchangeJson(manifest)) : null,
|
|
33
|
+
losses: [
|
|
34
|
+
{
|
|
35
|
+
code: 'graph-history',
|
|
36
|
+
message: 'Graph export omits journal events, tombstones, reversals and unreferenced historical sources. Use native brain export to preserve full history.',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
mappings: [],
|
|
40
|
+
conflicts: 0,
|
|
41
|
+
changes: 0,
|
|
42
|
+
};
|
|
43
|
+
const value = options.exchange
|
|
44
|
+
? makeExchange(graph, origin, manifest)
|
|
45
|
+
: graph;
|
|
46
|
+
if (hasBrainSecrets(value))
|
|
47
|
+
throw new BrainError('policy-denied', 'Transfer matches current secret material; preserve it privately and export a reviewed sanitized scope.');
|
|
48
|
+
const content = JSON.stringify(value), target = projectFile(cwd, path);
|
|
49
|
+
const receipt = {
|
|
50
|
+
path: target.file,
|
|
51
|
+
format: value.format,
|
|
52
|
+
nodes: graph.nodes.length,
|
|
53
|
+
edges: graph.edges.length,
|
|
54
|
+
revision: view.state.revision,
|
|
55
|
+
report,
|
|
56
|
+
};
|
|
57
|
+
if (options.preview)
|
|
58
|
+
return { ...receipt, preview: true };
|
|
59
|
+
if (!options.allowLoss)
|
|
60
|
+
throw new BrainTransferError('invalid', 'Review the graph export report and pass --allow-loss to acknowledge its projection limits.', report);
|
|
61
|
+
await authorizeSessionAction(cwd, 'write_file', {
|
|
62
|
+
path: target.file,
|
|
63
|
+
operation: 'brain-kg-export',
|
|
64
|
+
format: value.format,
|
|
65
|
+
digest: digest(content),
|
|
66
|
+
bytes: Buffer.byteLength(content),
|
|
67
|
+
}, { ...options, confirmation: options.confirmation ?? 'mutating' });
|
|
68
|
+
// Re-evaluate retained-source scope after approval; foreign locators are never fetched.
|
|
69
|
+
await new BrainAccess(cwd, view.state.sources, options).all();
|
|
70
|
+
if (manifestFile) {
|
|
71
|
+
await readBrainFile(cwd, options.manifestPath, options);
|
|
72
|
+
manifestFile.assertUnchanged();
|
|
73
|
+
}
|
|
74
|
+
if (hasBrainSecrets(value))
|
|
75
|
+
throw new BrainError('policy-denied', 'Transfer now matches secret material; preview again.');
|
|
76
|
+
target.recheck();
|
|
77
|
+
throwIfCancelled(options.signal);
|
|
78
|
+
const temp = join(dirname(target.file), '.' + basename(target.file) + '-' + randomUUID() + '.tmp');
|
|
79
|
+
let created = false;
|
|
80
|
+
try {
|
|
81
|
+
const fd = fs.openSync(temp, 'wx', 0o600);
|
|
82
|
+
created = true;
|
|
83
|
+
try {
|
|
84
|
+
fs.writeFileSync(fd, content);
|
|
85
|
+
fs.fsyncSync(fd);
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
fs.closeSync(fd);
|
|
89
|
+
}
|
|
90
|
+
target.recheck();
|
|
91
|
+
throwIfCancelled(options.signal);
|
|
92
|
+
fs.linkSync(temp, target.file);
|
|
93
|
+
// POSIX-only: Windows denies FlushFileBuffers on a directory handle opened via 'r' (#382, #384, #388).
|
|
94
|
+
if (process.platform !== 'win32') {
|
|
95
|
+
const parent = fs.openSync(dirname(target.file), 'r');
|
|
96
|
+
try {
|
|
97
|
+
fs.fsyncSync(parent);
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
fs.closeSync(parent);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return { ...receipt, preview: false };
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
if (created)
|
|
107
|
+
try {
|
|
108
|
+
target.recheck();
|
|
109
|
+
fs.unlinkSync(temp);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
/* Preserve replaced directories. */
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=kg-export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg-export.js","sourceRoot":"","sources":["../../src/brain/kg-export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type BrainTransferOptions } from './exchange.js';
|
|
2
|
+
import { type TransferReport } from './transfer-report.js';
|
|
3
|
+
/** Normal journal transaction; a transfer's metadata never authorizes a write. */
|
|
4
|
+
export declare function importKnowledgeGraph(cwd: string, path: string, options?: BrainTransferOptions): Promise<{
|
|
5
|
+
journal: import("./types.js").BrainJournal;
|
|
6
|
+
state: import("./types.js").BrainState;
|
|
7
|
+
index: 'unchanged';
|
|
8
|
+
preview: boolean;
|
|
9
|
+
imported: number;
|
|
10
|
+
unchanged: boolean;
|
|
11
|
+
report: TransferReport;
|
|
12
|
+
} | {
|
|
13
|
+
journal: import("./types.js").BrainJournal;
|
|
14
|
+
state: import("./types.js").BrainState;
|
|
15
|
+
index: 'current';
|
|
16
|
+
preview: boolean;
|
|
17
|
+
imported: number;
|
|
18
|
+
unchanged: boolean;
|
|
19
|
+
report: TransferReport;
|
|
20
|
+
} | {
|
|
21
|
+
journal: import("./types.js").BrainJournal;
|
|
22
|
+
state: import("./types.js").BrainState;
|
|
23
|
+
index: 'rebuild-required';
|
|
24
|
+
preview: boolean;
|
|
25
|
+
imported: number;
|
|
26
|
+
unchanged: boolean;
|
|
27
|
+
report: TransferReport;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=kg-transfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg-transfer.d.ts","sourceRoot":"","sources":["../../src/brain/kg-transfer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsC,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAU9F,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAW/E,kFAAkF;AAClF,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB;;;WAuIvB,WAAW;;;;;;;;;;;;;;;;;;;;;GA6DvB"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { digest } from '../approvals/index.js';
|
|
2
|
+
import { brainStore, BrainAccess, readBrainFile, hasBrainSecrets } from './access.js';
|
|
3
|
+
import { commitBrain } from './actions.js';
|
|
4
|
+
import { parseExchangeJson, canonicalExchangeJson } from './exchange-json.js';
|
|
5
|
+
import { archiveGraph, parseExchangeArchive } from './exchange.js';
|
|
6
|
+
import { parseKnowledgeGraph } from './kg.js';
|
|
7
|
+
import { graphOrigin, edgeIdentities, graphNamespace, claimSource, projectClaim, } from './kg-claims.js';
|
|
8
|
+
import { recordInput } from './journal.js';
|
|
9
|
+
import { BrainTransferError } from './transfer-report.js';
|
|
10
|
+
import { BrainError, BRAIN_LIMITS, } from './types.js';
|
|
11
|
+
import { obj, text } from './validation.js';
|
|
12
|
+
/** Normal journal transaction; a transfer's metadata never authorizes a write. */
|
|
13
|
+
export async function importKnowledgeGraph(cwd, path, options = {}) {
|
|
14
|
+
const input = await readBrainFile(cwd, path, options, BRAIN_LIMITS.journalBytes);
|
|
15
|
+
const parsed = parseExchangeJson(input.original);
|
|
16
|
+
const archive = obj(parsed) && typeof parsed.format === 'string' && parsed.format.startsWith('brain-exchange/')
|
|
17
|
+
? parseExchangeArchive(parsed)
|
|
18
|
+
: undefined;
|
|
19
|
+
const graph = archive ? archiveGraph(archive) : parseKnowledgeGraph(parsed);
|
|
20
|
+
const origin = graphOrigin(graph, archive, options.origin), edgeIds = edgeIdentities(graph);
|
|
21
|
+
const prior = brainStore(cwd, options).read(options.signal);
|
|
22
|
+
const report = {
|
|
23
|
+
format: 'calliope-brain-transfer-report/v1',
|
|
24
|
+
operation: 'import',
|
|
25
|
+
representation: 'graph-projection',
|
|
26
|
+
origin,
|
|
27
|
+
destinationRevision: prior.state.revision,
|
|
28
|
+
manifestHash: archive?.manifest ? digest(canonicalExchangeJson(archive.manifest)) : null,
|
|
29
|
+
losses: [
|
|
30
|
+
{
|
|
31
|
+
code: 'graph-history',
|
|
32
|
+
message: 'A graph snapshot cannot restore journal history, tombstones or reversals. Use a native bundle to preserve history.',
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
mappings: [],
|
|
36
|
+
conflicts: 0,
|
|
37
|
+
changes: 0,
|
|
38
|
+
};
|
|
39
|
+
const locator = {
|
|
40
|
+
projectKey: input.project.projectKey,
|
|
41
|
+
path: input.relative,
|
|
42
|
+
importedFrom: origin.id,
|
|
43
|
+
};
|
|
44
|
+
const envelope = archive?.sourceFormat === 'compiled-brain/v1'
|
|
45
|
+
? Object.fromEntries(Object.entries(archive.payload).filter(([key]) => !['nodes', 'edges'].includes(key)))
|
|
46
|
+
: null;
|
|
47
|
+
const metadata = claimSource({
|
|
48
|
+
format: 'calliope-kg-transfer/v1',
|
|
49
|
+
origin,
|
|
50
|
+
sourceFormat: archive?.sourceFormat === 'compiled-brain/v1' ? archive.sourceFormat : 'conflict-kg/v1',
|
|
51
|
+
manifest: archive?.manifest ?? null,
|
|
52
|
+
envelope,
|
|
53
|
+
}, locator, report.losses);
|
|
54
|
+
report.metadataSourceId = metadata.id;
|
|
55
|
+
const changes = [], retainedIds = new Set(), plannedSources = new Set();
|
|
56
|
+
const records = [];
|
|
57
|
+
const access = new BrainAccess(cwd, prior.state.sources, options);
|
|
58
|
+
const addSource = async (source) => {
|
|
59
|
+
const old = prior.state.sources[source.id];
|
|
60
|
+
if (old) {
|
|
61
|
+
await access.source(old.id);
|
|
62
|
+
retainedIds.add(old.id);
|
|
63
|
+
if (old.content !== source.content || old.originalHash !== source.originalHash)
|
|
64
|
+
throw new BrainError('conflict', 'Retained transfer source differs from its content identity.');
|
|
65
|
+
}
|
|
66
|
+
else if (!plannedSources.has(source.id)) {
|
|
67
|
+
plannedSources.add(source.id);
|
|
68
|
+
if (Object.keys(prior.state.sources).length + plannedSources.size > BRAIN_LIMITS.sources)
|
|
69
|
+
throw new BrainError('limit', 'Import would exceed native source retention; preserve history before continuing.');
|
|
70
|
+
changes.push({ kind: 'source', value: source });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
await addSource(metadata);
|
|
74
|
+
for (const [kind, externalId, record] of [
|
|
75
|
+
...graph.nodes.map((node) => ['entity', node.id, node]),
|
|
76
|
+
...graph.edges.map((edge, index) => ['edge', edgeIds[index], edge]),
|
|
77
|
+
]) {
|
|
78
|
+
text(externalId, 512);
|
|
79
|
+
const source = claimSource({
|
|
80
|
+
format: 'calliope-kg-claim/v1',
|
|
81
|
+
originId: origin.id,
|
|
82
|
+
kind,
|
|
83
|
+
externalId,
|
|
84
|
+
record,
|
|
85
|
+
}, locator, report.losses);
|
|
86
|
+
const value = projectClaim(kind, externalId, record, origin.id, [source.id, metadata.id], report.losses);
|
|
87
|
+
const id = graphNamespace(origin.id, kind, externalId);
|
|
88
|
+
const old = kind === 'entity' ? prior.state.entities[id] : prior.state.edges[id];
|
|
89
|
+
const expected = prior.state.revisions[kind + ':' + id] ?? null;
|
|
90
|
+
if (old) {
|
|
91
|
+
await access.record(old);
|
|
92
|
+
records.push(old);
|
|
93
|
+
}
|
|
94
|
+
const equal = old && canonicalExchangeJson(recordInput(old)) === canonicalExchangeJson(value);
|
|
95
|
+
const status = equal ? 'unchanged' : old ? 'conflict' : expected ? 'deleted' : 'new';
|
|
96
|
+
report.mappings.push({ kind, externalId, localId: id, status });
|
|
97
|
+
if (status === 'conflict' || status === 'deleted')
|
|
98
|
+
report.conflicts++;
|
|
99
|
+
await addSource(source);
|
|
100
|
+
if (!equal)
|
|
101
|
+
changes.push({ kind, id, expected, value });
|
|
102
|
+
}
|
|
103
|
+
report.changes = changes.length;
|
|
104
|
+
if (hasBrainSecrets(report))
|
|
105
|
+
throw new BrainError('policy-denied', 'Transfer report identifiers contain secret material.');
|
|
106
|
+
for (const kind of ['entity', 'edge']) {
|
|
107
|
+
const table = kind === 'entity' ? 'entities' : 'edges';
|
|
108
|
+
const added = report.mappings.filter((mapping) => mapping.kind === kind && ['new', 'deleted'].includes(mapping.status)).length;
|
|
109
|
+
if (Object.keys(prior.state[table]).length + added > BRAIN_LIMITS[table])
|
|
110
|
+
throw new BrainError('limit', 'Import would exceed native graph retention; preserve history before continuing.');
|
|
111
|
+
}
|
|
112
|
+
if (options.preview)
|
|
113
|
+
return {
|
|
114
|
+
...prior,
|
|
115
|
+
index: 'unchanged',
|
|
116
|
+
preview: true,
|
|
117
|
+
imported: 0,
|
|
118
|
+
unchanged: !changes.length,
|
|
119
|
+
report,
|
|
120
|
+
};
|
|
121
|
+
if (options.reconcileRevision !== undefined && options.reconcileRevision !== prior.state.revision)
|
|
122
|
+
throw new BrainTransferError('conflict', 'The reviewed destination revision is stale; preview the transfer again.', report);
|
|
123
|
+
if (report.conflicts && !options.reconcileRevision)
|
|
124
|
+
throw new BrainTransferError('conflict', 'Existing source claims, local corrections or deletions differ; preview and explicitly reconcile the destination revision.', report);
|
|
125
|
+
if (!changes.length)
|
|
126
|
+
return {
|
|
127
|
+
...prior,
|
|
128
|
+
index: 'unchanged',
|
|
129
|
+
preview: false,
|
|
130
|
+
imported: 0,
|
|
131
|
+
unchanged: true,
|
|
132
|
+
report,
|
|
133
|
+
};
|
|
134
|
+
if (report.losses.length && !options.allowLoss)
|
|
135
|
+
throw new BrainTransferError('invalid', 'Review the transfer report and pass --allow-loss to acknowledge the projection limits.', report);
|
|
136
|
+
const result = await commitBrain(cwd, changes, 'import', 'Imported foreign source claims as inferred proposals; metadata grants no authority.', prior, options, async () => {
|
|
137
|
+
// Approval may have waited while source policy, secrets or the input changed.
|
|
138
|
+
const currentAccess = new BrainAccess(cwd, prior.state.sources, options);
|
|
139
|
+
for (const id of retainedIds)
|
|
140
|
+
await currentAccess.source(id);
|
|
141
|
+
for (const record of records)
|
|
142
|
+
await currentAccess.record(record);
|
|
143
|
+
await readBrainFile(cwd, path, options, BRAIN_LIMITS.journalBytes);
|
|
144
|
+
if (hasBrainSecrets(changes))
|
|
145
|
+
throw new BrainError('policy-denied', 'Transfer claims now match secret material; preview again.');
|
|
146
|
+
input.assertUnchanged();
|
|
147
|
+
});
|
|
148
|
+
return {
|
|
149
|
+
...result,
|
|
150
|
+
preview: false,
|
|
151
|
+
imported: changes.length,
|
|
152
|
+
unchanged: false,
|
|
153
|
+
report,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=kg-transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg-transfer.js","sourceRoot":"","sources":["../../src/brain/kg-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAA6B,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAuB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACL,UAAU,EACV,YAAY,GAKb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,IAAY,EACZ,OAAO,GAAyB,EAAE;IAElC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GACX,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC7F,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxD,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAmB;QAC7B,MAAM,EAAE,mCAAmC;QAC3C,SAAS,EAAE,QAAQ;QACnB,cAAc,EAAE,kBAAkB;QAClC,MAAM;QACN,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;QACzC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACxF,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,eAAe;gBACrB,OAAO,EACL,oHAAoH;aACvH;SACF;QACD,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;KACX,CAAC;IACF,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;QACpC,IAAI,EAAE,KAAK,CAAC,QAAQ;QACpB,YAAY,EAAE,MAAM,CAAC,EAAE;KACxB,CAAC;IACF,MAAM,QAAQ,GACZ,OAAO,EAAE,YAAY,KAAK,mBAAmB;QAC3C,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACrF;QACH,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,QAAQ,GAAG,WAAW,CAC1B;QACE,MAAM,EAAE,yBAAyB;QACjC,MAAM;QACN,YAAY,EACV,OAAO,EAAE,YAAY,KAAK,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB;QACzF,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;QACnC,QAAQ;KACT,EACD,OAAO,EACP,MAAM,CAAC,MAAM,CACd,CAAC;IACF,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,EAAE,CAAC;IACtC,MAAM,OAAO,GAAkB,EAAE,EAC/B,WAAW,GAAG,IAAI,GAAG,EAAU,EAC/B,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,KAAK,EAAE,MAAmB,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;gBAC5E,MAAM,IAAI,UAAU,CAClB,UAAU,EACV,6DAA6D,CAC9D,CAAC;QACN,CAAC;aAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1C,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO;gBACtF,MAAM,IAAI,UAAU,CAClB,OAAO,EACP,kFAAkF,CACnF,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;IACF,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI;QACvC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAU,CAAC;QAChE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAE,EAAE,IAAI,CAAU,CAAC;KAC9E,EAAE,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CACxB;YACE,MAAM,EAAE,sBAAsB;YAC9B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,IAAI;YACJ,UAAU;YACV,MAAM;SACP,EACD,OAAO,EACP,MAAM,CAAC,MAAM,CACd,CAAC;QACF,MAAM,KAAK,GAAG,YAAY,CACxB,IAAI,EACJ,UAAU,EACV,MAAM,EACN,MAAM,CAAC,EAAE,EACT,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EACxB,MAAM,CAAC,MAAM,CACd,CAAC;QACF,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;QAChE,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QACrF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACtE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAiB,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAChC,IAAI,eAAe,CAAC,MAAM,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,eAAe,EAAE,sDAAsD,CAAC,CAAC;IAChG,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAU,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAClF,CAAC,MAAM,CAAC;QACT,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YACtE,MAAM,IAAI,UAAU,CAClB,OAAO,EACP,iFAAiF,CAClF,CAAC;IACN,CAAC;IACD,IAAI,OAAO,CAAC,OAAO;QACjB,OAAO;YACL,GAAG,KAAK;YACR,KAAK,EAAE,WAAoB;YAC3B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM;YAC1B,MAAM;SACP,CAAC;IACJ,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ;QAC/F,MAAM,IAAI,kBAAkB,CAC1B,UAAU,EACV,yEAAyE,EACzE,MAAM,CACP,CAAC;IACJ,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,iBAAiB;QAChD,MAAM,IAAI,kBAAkB,CAC1B,UAAU,EACV,2HAA2H,EAC3H,MAAM,CACP,CAAC;IACJ,IAAI,CAAC,OAAO,CAAC,MAAM;QACjB,OAAO;YACL,GAAG,KAAK;YACR,KAAK,EAAE,WAAoB;YAC3B,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,IAAI;YACf,MAAM;SACP,CAAC;IACJ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS;QAC5C,MAAM,IAAI,kBAAkB,CAC1B,SAAS,EACT,wFAAwF,EACxF,MAAM,CACP,CAAC;IACJ,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,OAAO,EACP,QAAQ,EACR,qFAAqF,EACrF,KAAK,EACL,OAAO,EACP,KAAK,IAAI,EAAE;QACT,8EAA8E;QAC9E,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzE,KAAK,MAAM,EAAE,IAAI,WAAW;YAAE,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,eAAe,CAAC,OAAO,CAAC;YAC1B,MAAM,IAAI,UAAU,CAClB,eAAe,EACf,2DAA2D,CAC5D,CAAC;QACJ,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,CACF,CAAC;IACF,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,SAAS,EAAE,KAAK;QAChB,MAAM;KACP,CAAC;AACJ,CAAC"}
|
package/dist/brain/kg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kg.d.ts","sourceRoot":"","sources":["../../src/brain/kg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kg.d.ts","sourceRoot":"","sources":["../../src/brain/kg.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAG9D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AACD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AACD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IAC5C,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,eAAe,EACrB,MAAM,GAAE,sBAAsB,CAAC,QAAQ,CAAoB,GAC1D,sBAAsB,CAgDxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAoD1E;AAED,eAAO,MAAM,oBAAoB,UAAW,sBAAsB,WAM/D,CAAC"}
|