@x12i/memorix-service 3.0.6 → 3.2.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/README.md +8 -1
- package/dist/ai-services/associate-prep.d.ts +37 -0
- package/dist/ai-services/associate-prep.d.ts.map +1 -0
- package/dist/ai-services/associate-prep.js +208 -0
- package/dist/ai-services/associate-prep.js.map +1 -0
- package/dist/ai-services/chunk-markdown.d.ts +22 -0
- package/dist/ai-services/chunk-markdown.d.ts.map +1 -0
- package/dist/ai-services/chunk-markdown.js +159 -0
- package/dist/ai-services/chunk-markdown.js.map +1 -0
- package/dist/ai-services/client.d.ts +31 -0
- package/dist/ai-services/client.d.ts.map +1 -0
- package/dist/ai-services/client.js +104 -0
- package/dist/ai-services/client.js.map +1 -0
- package/dist/ai-services/config.d.ts +17 -0
- package/dist/ai-services/config.d.ts.map +1 -0
- package/dist/ai-services/config.js +44 -0
- package/dist/ai-services/config.js.map +1 -0
- package/dist/ai-services/normalize-output.d.ts +29 -0
- package/dist/ai-services/normalize-output.d.ts.map +1 -0
- package/dist/ai-services/normalize-output.js +428 -0
- package/dist/ai-services/normalize-output.js.map +1 -0
- package/dist/ai-services/skill-execution.d.ts +24 -0
- package/dist/ai-services/skill-execution.d.ts.map +1 -0
- package/dist/ai-services/skill-execution.js +74 -0
- package/dist/ai-services/skill-execution.js.map +1 -0
- package/dist/ai-services/types.d.ts +62 -0
- package/dist/ai-services/types.d.ts.map +1 -0
- package/dist/ai-services/types.js +3 -0
- package/dist/ai-services/types.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +41 -6
- package/dist/app.js.map +1 -1
- package/dist/assist/ask.d.ts +35 -0
- package/dist/assist/ask.d.ts.map +1 -0
- package/dist/assist/ask.js +346 -0
- package/dist/assist/ask.js.map +1 -0
- package/dist/assist/facts.d.ts +5 -0
- package/dist/assist/facts.d.ts.map +1 -0
- package/dist/assist/facts.js +237 -0
- package/dist/assist/facts.js.map +1 -0
- package/dist/assist/merge-ask-proposal.d.ts +9 -0
- package/dist/assist/merge-ask-proposal.d.ts.map +1 -0
- package/dist/assist/merge-ask-proposal.js +57 -0
- package/dist/assist/merge-ask-proposal.js.map +1 -0
- package/dist/assist/types.d.ts +60 -0
- package/dist/assist/types.d.ts.map +1 -0
- package/dist/assist/types.js +57 -0
- package/dist/assist/types.js.map +1 -0
- package/dist/assist/validate.d.ts +4 -0
- package/dist/assist/validate.d.ts.map +1 -0
- package/dist/assist/validate.js +319 -0
- package/dist/assist/validate.js.map +1 -0
- package/dist/cli.js +29 -6
- package/dist/cli.js.map +1 -1
- package/dist/connector-catalog.d.ts +68 -0
- package/dist/connector-catalog.d.ts.map +1 -0
- package/dist/connector-catalog.js +258 -0
- package/dist/connector-catalog.js.map +1 -0
- package/dist/connector-role.d.ts +22 -0
- package/dist/connector-role.d.ts.map +1 -0
- package/dist/connector-role.js +71 -0
- package/dist/connector-role.js.map +1 -0
- package/dist/destination-runtime.d.ts +8 -0
- package/dist/destination-runtime.d.ts.map +1 -0
- package/dist/destination-runtime.js +11 -0
- package/dist/destination-runtime.js.map +1 -0
- package/dist/execution-target.d.ts +141 -0
- package/dist/execution-target.d.ts.map +1 -0
- package/dist/execution-target.js +853 -0
- package/dist/execution-target.js.map +1 -0
- package/dist/generic-connectors.d.ts +41 -0
- package/dist/generic-connectors.d.ts.map +1 -0
- package/dist/generic-connectors.js +158 -0
- package/dist/generic-connectors.js.map +1 -0
- package/dist/isolation.d.ts +1 -1
- package/dist/isolation.d.ts.map +1 -1
- package/dist/jobs-scope.d.ts +21 -0
- package/dist/jobs-scope.d.ts.map +1 -0
- package/dist/jobs-scope.js +83 -0
- package/dist/jobs-scope.js.map +1 -0
- package/dist/journey/collect.js +2 -2
- package/dist/journey/collect.js.map +1 -1
- package/dist/journey/coverage.js +3 -3
- package/dist/journey/coverage.js.map +1 -1
- package/dist/known-packs.d.ts +1 -1
- package/dist/known-packs.d.ts.map +1 -1
- package/dist/known-packs.js +1 -1
- package/dist/known-packs.js.map +1 -1
- package/dist/live.d.ts +13 -1
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +866 -2
- package/dist/live.js.map +1 -1
- package/dist/magit/magit-pack-service.d.ts +112 -0
- package/dist/magit/magit-pack-service.d.ts.map +1 -1
- package/dist/magit/magit-pack-service.js +494 -12
- package/dist/magit/magit-pack-service.js.map +1 -1
- package/dist/magit/pack-to-patchset.d.ts +20 -1
- package/dist/magit/pack-to-patchset.d.ts.map +1 -1
- package/dist/magit/pack-to-patchset.js +82 -9
- package/dist/magit/pack-to-patchset.js.map +1 -1
- package/dist/magit/package-catalog-bridge.d.ts +58 -0
- package/dist/magit/package-catalog-bridge.d.ts.map +1 -0
- package/dist/magit/package-catalog-bridge.js +220 -0
- package/dist/magit/package-catalog-bridge.js.map +1 -0
- package/dist/magit/proposal-to-pack.d.ts +22 -0
- package/dist/magit/proposal-to-pack.d.ts.map +1 -0
- package/dist/magit/proposal-to-pack.js +68 -0
- package/dist/magit/proposal-to-pack.js.map +1 -0
- package/dist/mongo-metadata-store.d.ts.map +1 -1
- package/dist/mongo-metadata-store.js +9 -3
- package/dist/mongo-metadata-store.js.map +1 -1
- package/dist/openapi/openapi.json +6262 -3139
- package/dist/org-sources.d.ts +14 -0
- package/dist/org-sources.d.ts.map +1 -0
- package/dist/org-sources.js +31 -0
- package/dist/org-sources.js.map +1 -0
- package/dist/pipeline-compile.d.ts +67 -1
- package/dist/pipeline-compile.d.ts.map +1 -1
- package/dist/pipeline-compile.js +455 -29
- package/dist/pipeline-compile.js.map +1 -1
- package/dist/pipeline-invoke.d.ts +63 -0
- package/dist/pipeline-invoke.d.ts.map +1 -0
- package/dist/pipeline-invoke.js +114 -0
- package/dist/pipeline-invoke.js.map +1 -0
- package/dist/pipeline-ports.d.ts +13 -0
- package/dist/pipeline-ports.d.ts.map +1 -0
- package/dist/pipeline-ports.js +104 -0
- package/dist/pipeline-ports.js.map +1 -0
- package/dist/platform.d.ts +47 -3
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +309 -26
- package/dist/platform.js.map +1 -1
- package/dist/routes/ai-services.d.ts +4 -0
- package/dist/routes/ai-services.d.ts.map +1 -0
- package/dist/routes/ai-services.js +239 -0
- package/dist/routes/ai-services.js.map +1 -0
- package/dist/routes/assist.d.ts +4 -0
- package/dist/routes/assist.d.ts.map +1 -0
- package/dist/routes/assist.js +75 -0
- package/dist/routes/assist.js.map +1 -0
- package/dist/routes/connector-invocations.d.ts.map +1 -1
- package/dist/routes/connector-invocations.js +18 -21
- package/dist/routes/connector-invocations.js.map +1 -1
- package/dist/routes/data-journey.js +11 -11
- package/dist/routes/data-journey.js.map +1 -1
- package/dist/routes/intelligence.d.ts.map +1 -1
- package/dist/routes/intelligence.js +19 -1
- package/dist/routes/intelligence.js.map +1 -1
- package/dist/routes/jobs.d.ts +4 -0
- package/dist/routes/jobs.d.ts.map +1 -0
- package/dist/routes/jobs.js +888 -0
- package/dist/routes/jobs.js.map +1 -0
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +278 -80
- package/dist/routes/memory.js.map +1 -1
- package/dist/routes/metadata.d.ts.map +1 -1
- package/dist/routes/metadata.js +770 -21
- package/dist/routes/metadata.js.map +1 -1
- package/dist/routes/pipelines.d.ts.map +1 -1
- package/dist/routes/pipelines.js +98 -22
- package/dist/routes/pipelines.js.map +1 -1
- package/dist/routes/relationships.d.ts.map +1 -1
- package/dist/routes/relationships.js +109 -2
- package/dist/routes/relationships.js.map +1 -1
- package/dist/routes/simulation.d.ts +7 -0
- package/dist/routes/simulation.d.ts.map +1 -0
- package/dist/routes/simulation.js +22 -0
- package/dist/routes/simulation.js.map +1 -0
- package/dist/runx/client.d.ts +18 -0
- package/dist/runx/client.d.ts.map +1 -0
- package/dist/runx/client.js +59 -0
- package/dist/runx/client.js.map +1 -0
- package/dist/simulation.d.ts +26 -0
- package/dist/simulation.d.ts.map +1 -0
- package/dist/simulation.js +46 -0
- package/dist/simulation.js.map +1 -0
- package/openapi/openapi.json +6262 -3139
- package/package.json +18 -8
|
@@ -10,14 +10,33 @@ export type PackDefinitionRecord = {
|
|
|
10
10
|
};
|
|
11
11
|
export declare function packToDefinitionRecords(pack: MetadataPack): PackDefinitionRecord[];
|
|
12
12
|
export declare function recordIdForDefinition(agentId: string, kind: string, id: string): string;
|
|
13
|
-
export declare function saveVersionIdempotencyKey(agentId: string, checksum: string, message: string): string;
|
|
13
|
+
export declare function saveVersionIdempotencyKey(agentId: string, checksum: string, message: string, baseCommit?: string): string;
|
|
14
14
|
export declare function parseSaveVersionIdempotencyKey(key: string): {
|
|
15
15
|
agentId: string;
|
|
16
16
|
checksum: string;
|
|
17
17
|
} | null;
|
|
18
|
+
/** Parse Magit transform record id `{agentId}/{kind}/{id}`. */
|
|
19
|
+
export declare function parseRecordId(recordId: string): {
|
|
20
|
+
agentId: string;
|
|
21
|
+
kind: string;
|
|
22
|
+
id: string;
|
|
23
|
+
} | null;
|
|
24
|
+
export declare function emptyMetadataPack(agentId: string): MetadataPack;
|
|
25
|
+
/**
|
|
26
|
+
* Rebuild a MetadataPack from Magit transform records for one agentId.
|
|
27
|
+
* Accepts put-shaped records: `{ kind, id, agentId, definition }` or raw definition bodies.
|
|
28
|
+
*/
|
|
29
|
+
export declare function recordsToPack(agentId: string, records: Array<{
|
|
30
|
+
id: string;
|
|
31
|
+
record?: unknown;
|
|
32
|
+
after?: unknown;
|
|
33
|
+
}>): MetadataPack;
|
|
18
34
|
export declare function packToPatchset(pack: MetadataPack, opts: {
|
|
19
35
|
message: string;
|
|
20
36
|
actor?: string;
|
|
37
|
+
baseCommit?: string;
|
|
38
|
+
/** Record ids to delete (e.g. historical org folder sources). */
|
|
39
|
+
deleteRecordIds?: string[];
|
|
21
40
|
}): {
|
|
22
41
|
patchset: MetagitPatchsetV1;
|
|
23
42
|
checksum: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-to-patchset.d.ts","sourceRoot":"","sources":["../../src/magit/pack-to-patchset.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAI1E,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"pack-to-patchset.d.ts","sourceRoot":"","sources":["../../src/magit/pack-to-patchset.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAI1E,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAiBpD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,oBAAoB,EAAE,CAkClF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAMR;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,GACV;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAU9C;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQtD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAmB/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAChE,YAAY,CA2Bd;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GACA;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAgDnD;AAED,eAAO,MAAM,uBAAuB,4BAAoB,CAAC"}
|
|
@@ -11,7 +11,6 @@ const PACK_FIELDS = [
|
|
|
11
11
|
{ kind: "agents", field: "agents" },
|
|
12
12
|
{ kind: "object-types", field: "objectTypes" },
|
|
13
13
|
{ kind: "abstract-types", field: "abstractTypes" },
|
|
14
|
-
{ kind: "abstract-bindings", field: "abstractBindings" },
|
|
15
14
|
{ kind: "relationship-definitions", field: "relationshipDefinitions" },
|
|
16
15
|
{ kind: "mappings", field: "mappings" },
|
|
17
16
|
{ kind: "views", field: "views" },
|
|
@@ -66,13 +65,17 @@ export function packToDefinitionRecords(pack) {
|
|
|
66
65
|
export function recordIdForDefinition(agentId, kind, id) {
|
|
67
66
|
return `${agentId}/${kind}/${id}`;
|
|
68
67
|
}
|
|
69
|
-
export function saveVersionIdempotencyKey(agentId, checksum, message) {
|
|
68
|
+
export function saveVersionIdempotencyKey(agentId, checksum, message, baseCommit) {
|
|
70
69
|
const msgKey = createHash("sha256").update(message).digest("hex").slice(0, 16);
|
|
71
|
-
|
|
70
|
+
const baseKey = baseCommit?.trim()
|
|
71
|
+
? createHash("sha256").update(baseCommit.trim()).digest("hex").slice(0, 12)
|
|
72
|
+
: "nobase";
|
|
73
|
+
return `memorix-save/v1/${agentId}/${checksum}/${msgKey}/${baseKey}`;
|
|
72
74
|
}
|
|
73
75
|
export function parseSaveVersionIdempotencyKey(key) {
|
|
74
76
|
const parts = key.split("/");
|
|
75
|
-
|
|
77
|
+
// memorix-save/v1/{agentId}/{checksum}/{msgKey}[/{baseKey}]
|
|
78
|
+
if (parts.length < 5 || parts[0] !== "memorix-save" || parts[1] !== "v1") {
|
|
76
79
|
return null;
|
|
77
80
|
}
|
|
78
81
|
const agentId = parts[2];
|
|
@@ -81,16 +84,86 @@ export function parseSaveVersionIdempotencyKey(key) {
|
|
|
81
84
|
return null;
|
|
82
85
|
return { agentId, checksum };
|
|
83
86
|
}
|
|
87
|
+
/** Parse Magit transform record id `{agentId}/{kind}/{id}`. */
|
|
88
|
+
export function parseRecordId(recordId) {
|
|
89
|
+
const parts = recordId.split("/");
|
|
90
|
+
if (parts.length < 3)
|
|
91
|
+
return null;
|
|
92
|
+
const agentId = parts[0];
|
|
93
|
+
const kind = parts[1];
|
|
94
|
+
const id = parts.slice(2).join("/");
|
|
95
|
+
if (!agentId || !kind || !id)
|
|
96
|
+
return null;
|
|
97
|
+
return { agentId, kind, id };
|
|
98
|
+
}
|
|
99
|
+
export function emptyMetadataPack(agentId) {
|
|
100
|
+
return {
|
|
101
|
+
format: "memorix-metadata/1",
|
|
102
|
+
agentId,
|
|
103
|
+
agents: [],
|
|
104
|
+
objectTypes: [],
|
|
105
|
+
abstractTypes: [],
|
|
106
|
+
abstractBindings: [],
|
|
107
|
+
relationshipDefinitions: [],
|
|
108
|
+
mappings: [],
|
|
109
|
+
views: [],
|
|
110
|
+
writes: [],
|
|
111
|
+
sources: [],
|
|
112
|
+
services: [],
|
|
113
|
+
pipelines: [],
|
|
114
|
+
schedules: [],
|
|
115
|
+
kindDeclarations: [],
|
|
116
|
+
extensions: {},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Rebuild a MetadataPack from Magit transform records for one agentId.
|
|
121
|
+
* Accepts put-shaped records: `{ kind, id, agentId, definition }` or raw definition bodies.
|
|
122
|
+
*/
|
|
123
|
+
export function recordsToPack(agentId, records) {
|
|
124
|
+
const pack = emptyMetadataPack(agentId);
|
|
125
|
+
for (const row of records) {
|
|
126
|
+
const parsed = parseRecordId(row.id);
|
|
127
|
+
if (!parsed || parsed.agentId !== agentId)
|
|
128
|
+
continue;
|
|
129
|
+
if (parsed.agentId === MAGIT_SEED_AGENT_ID)
|
|
130
|
+
continue;
|
|
131
|
+
const body = (row.after ?? row.record);
|
|
132
|
+
if (!body || typeof body !== "object")
|
|
133
|
+
continue;
|
|
134
|
+
const definition = body.definition && typeof body.definition === "object"
|
|
135
|
+
? { ...body.definition }
|
|
136
|
+
: { ...body };
|
|
137
|
+
if (typeof definition.id !== "string")
|
|
138
|
+
definition.id = parsed.id;
|
|
139
|
+
const kind = typeof body.kind === "string" ? body.kind : parsed.kind;
|
|
140
|
+
const field = PACK_FIELDS.find((p) => p.kind === kind)?.field;
|
|
141
|
+
if (field) {
|
|
142
|
+
pack[field].push(definition);
|
|
143
|
+
}
|
|
144
|
+
else if (isValidCustomKindId(kind)) {
|
|
145
|
+
if (!pack.extensions)
|
|
146
|
+
pack.extensions = {};
|
|
147
|
+
if (!pack.extensions[kind])
|
|
148
|
+
pack.extensions[kind] = [];
|
|
149
|
+
pack.extensions[kind].push(definition);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return pack;
|
|
153
|
+
}
|
|
84
154
|
export function packToPatchset(pack, opts) {
|
|
85
155
|
const checksum = checksumMetadataPack(pack);
|
|
86
156
|
const records = packToDefinitionRecords(pack);
|
|
157
|
+
const deleteIds = [...new Set(opts.deleteRecordIds ?? [])].filter(Boolean);
|
|
158
|
+
const putIds = new Set(records.map((r) => recordIdForDefinition(r.agentId, r.kind, r.id)));
|
|
87
159
|
const ops = [
|
|
88
|
-
|
|
89
|
-
|
|
160
|
+
...deleteIds
|
|
161
|
+
.filter((id) => !putIds.has(id))
|
|
162
|
+
.map((id) => ({
|
|
90
163
|
op: "delete",
|
|
91
164
|
collection: AGENTS_COLLECTION,
|
|
92
|
-
id
|
|
93
|
-
},
|
|
165
|
+
id,
|
|
166
|
+
})),
|
|
94
167
|
...records.map((r) => ({
|
|
95
168
|
op: "put",
|
|
96
169
|
collection: AGENTS_COLLECTION,
|
|
@@ -107,7 +180,7 @@ export function packToPatchset(pack, opts) {
|
|
|
107
180
|
schemaVersion: "metagit.patchset.v1",
|
|
108
181
|
base: "HEAD",
|
|
109
182
|
message: opts.message,
|
|
110
|
-
idempotencyKey: saveVersionIdempotencyKey(pack.agentId, checksum, opts.message),
|
|
183
|
+
idempotencyKey: saveVersionIdempotencyKey(pack.agentId, checksum, opts.message, opts.baseCommit),
|
|
111
184
|
provenance: {
|
|
112
185
|
actor: opts.actor ?? "memorix-service",
|
|
113
186
|
reason: opts.message,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-to-patchset.js","sourceRoot":"","sources":["../../src/magit/pack-to-patchset.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,mBAAmB,GAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAEpD,MAAM,WAAW,GAA+D;IAC9E,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;IAClD,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"pack-to-patchset.js","sourceRoot":"","sources":["../../src/magit/pack-to-patchset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interim package catalog helpers (FR-CPS).
|
|
3
|
+
* Pack identity is kind+id; Magit history is stored under a fixed catalog tenant
|
|
4
|
+
* until Magit ships org-free central storage.
|
|
5
|
+
*/
|
|
6
|
+
import type { MetadataPack } from "@x12i/memorix-metadata";
|
|
7
|
+
/** Magit repo tenant for package catalog (not a runtime org). */
|
|
8
|
+
export declare const PACKAGE_CATALOG_ORG = "memorix-package-catalog";
|
|
9
|
+
export type PackageKind = "agent" | "connector" | "service";
|
|
10
|
+
/** Magit agentId slice for connector/service packages (avoids clobbering agent packs). */
|
|
11
|
+
export declare function catalogAgentId(kind: PackageKind, id: string, ownerAgentId?: string): string;
|
|
12
|
+
export declare function parseCatalogAgentId(agentId: string): {
|
|
13
|
+
kind: PackageKind;
|
|
14
|
+
id: string;
|
|
15
|
+
ownerAgentId?: string;
|
|
16
|
+
} | null;
|
|
17
|
+
export type PackageMode = "narrow" | "full";
|
|
18
|
+
export type PackageAssociations = {
|
|
19
|
+
connectorIds: string[];
|
|
20
|
+
serviceIds: string[];
|
|
21
|
+
};
|
|
22
|
+
export type PackageCatalogEntry = {
|
|
23
|
+
kind: PackageKind;
|
|
24
|
+
id: string;
|
|
25
|
+
agentId: string;
|
|
26
|
+
label?: string;
|
|
27
|
+
};
|
|
28
|
+
/** Discover associations from a live agent pack. */
|
|
29
|
+
export declare function associationsFromPack(pack: MetadataPack): PackageAssociations;
|
|
30
|
+
/**
|
|
31
|
+
* Build pack payload for Pack action.
|
|
32
|
+
* - agent: full live agent pack (must stay valid). narrow vs full is association/bundle
|
|
33
|
+
* metadata — not stripping sources/services (pipelines/mappings keep refs).
|
|
34
|
+
* - connector: sources using that connectorRef (+ agent shell)
|
|
35
|
+
* - service: single service definition
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildPackagePayload(live: MetadataPack, opts: {
|
|
38
|
+
kind: PackageKind;
|
|
39
|
+
id: string;
|
|
40
|
+
mode?: PackageMode;
|
|
41
|
+
includeConnectorIds?: string[];
|
|
42
|
+
includeServiceIds?: string[];
|
|
43
|
+
}): MetadataPack;
|
|
44
|
+
/** Associations recorded on an agent pack release (narrow = none claimed). */
|
|
45
|
+
export declare function releaseAssociations(live: MetadataPack, mode: PackageMode, includeConnectorIds?: string[], includeServiceIds?: string[]): PackageAssociations;
|
|
46
|
+
/** Prefix Magit message so connector/service versions are filterable in interim history. */
|
|
47
|
+
export declare function packageVersionMessage(kind: PackageKind, id: string, message: string, mode?: PackageMode): string;
|
|
48
|
+
export declare function parsePackageMessage(message: string | null | undefined): {
|
|
49
|
+
kind?: PackageKind;
|
|
50
|
+
id?: string;
|
|
51
|
+
mode?: PackageMode;
|
|
52
|
+
message: string;
|
|
53
|
+
};
|
|
54
|
+
/** List connector/service catalog entries from installed agent packs. */
|
|
55
|
+
export declare function discoverPackageCatalog(packs: Record<string, MetadataPack | undefined>): PackageCatalogEntry[];
|
|
56
|
+
/** Resolve which agent pack owns a connector/service for packing. */
|
|
57
|
+
export declare function resolveOwnerAgent(packs: Record<string, MetadataPack | undefined>, kind: PackageKind, id: string, preferredAgentId?: string): string;
|
|
58
|
+
//# sourceMappingURL=package-catalog-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-catalog-bridge.d.ts","sourceRoot":"","sources":["../../src/magit/package-catalog-bridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE5D,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3F;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASjE;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAYF,oDAAoD;AACpD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,mBAAmB,CAc5E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IACJ,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,GACA,YAAY,CAmFd;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,WAAW,EACjB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAC9B,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC3B,mBAAmB,CAarB;AAED,4FAA4F;AAC5F,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IACvE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAYA;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,GAC9C,mBAAmB,EAAE,CAsCvB;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,EAC/C,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,MAAM,EACV,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAYR"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { emptyMetadataPack } from "./pack-to-patchset.js";
|
|
2
|
+
/** Magit repo tenant for package catalog (not a runtime org). */
|
|
3
|
+
export const PACKAGE_CATALOG_ORG = "memorix-package-catalog";
|
|
4
|
+
/** Magit agentId slice for connector/service packages (avoids clobbering agent packs). */
|
|
5
|
+
export function catalogAgentId(kind, id, ownerAgentId) {
|
|
6
|
+
if (kind === "agent")
|
|
7
|
+
return id;
|
|
8
|
+
if (kind === "connector")
|
|
9
|
+
return `pkg:connector:${id}`;
|
|
10
|
+
return `pkg:service:${ownerAgentId ?? "_"}:${id}`;
|
|
11
|
+
}
|
|
12
|
+
export function parseCatalogAgentId(agentId) {
|
|
13
|
+
if (agentId.startsWith("pkg:connector:")) {
|
|
14
|
+
return { kind: "connector", id: agentId.slice("pkg:connector:".length) };
|
|
15
|
+
}
|
|
16
|
+
const svc = /^pkg:service:([^:]+):(.+)$/.exec(agentId);
|
|
17
|
+
if (svc) {
|
|
18
|
+
return { kind: "service", id: svc[2], ownerAgentId: svc[1] };
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
function asRecord(v) {
|
|
23
|
+
return v && typeof v === "object" && !Array.isArray(v)
|
|
24
|
+
? v
|
|
25
|
+
: null;
|
|
26
|
+
}
|
|
27
|
+
function idOf(def) {
|
|
28
|
+
return typeof def.id === "string" ? def.id.trim() : "";
|
|
29
|
+
}
|
|
30
|
+
/** Discover associations from a live agent pack. */
|
|
31
|
+
export function associationsFromPack(pack) {
|
|
32
|
+
const connectorIds = new Set();
|
|
33
|
+
for (const src of pack.sources ?? []) {
|
|
34
|
+
const row = asRecord(src);
|
|
35
|
+
const ref = row && typeof row.connectorRef === "string" ? row.connectorRef.trim() : "";
|
|
36
|
+
if (ref)
|
|
37
|
+
connectorIds.add(ref);
|
|
38
|
+
}
|
|
39
|
+
const serviceIds = (pack.services ?? [])
|
|
40
|
+
.map((s) => idOf(asRecord(s) ?? {}))
|
|
41
|
+
.filter(Boolean);
|
|
42
|
+
return {
|
|
43
|
+
connectorIds: [...connectorIds].sort(),
|
|
44
|
+
serviceIds: [...new Set(serviceIds)].sort(),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Build pack payload for Pack action.
|
|
49
|
+
* - agent: full live agent pack (must stay valid). narrow vs full is association/bundle
|
|
50
|
+
* metadata — not stripping sources/services (pipelines/mappings keep refs).
|
|
51
|
+
* - connector: sources using that connectorRef (+ agent shell)
|
|
52
|
+
* - service: single service definition
|
|
53
|
+
*/
|
|
54
|
+
export function buildPackagePayload(live, opts) {
|
|
55
|
+
const agentId = live.agentId;
|
|
56
|
+
const base = emptyMetadataPack(agentId);
|
|
57
|
+
const kind = opts.kind;
|
|
58
|
+
const id = opts.id.trim();
|
|
59
|
+
if (kind === "connector") {
|
|
60
|
+
const sliceId = catalogAgentId("connector", id);
|
|
61
|
+
const sources = (live.sources ?? []).filter((s) => {
|
|
62
|
+
const row = asRecord(s);
|
|
63
|
+
return row && String(row.connectorRef ?? "").trim() === id;
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
...base,
|
|
67
|
+
format: "memorix-metadata/1",
|
|
68
|
+
agentId: sliceId,
|
|
69
|
+
version: live.version,
|
|
70
|
+
agents: [
|
|
71
|
+
{
|
|
72
|
+
id: sliceId,
|
|
73
|
+
name: `Connector package ${id}`,
|
|
74
|
+
parentIds: [],
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
sources: sources,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (kind === "service") {
|
|
81
|
+
const sliceId = catalogAgentId("service", id, agentId);
|
|
82
|
+
const services = (live.services ?? []).filter((s) => idOf(asRecord(s) ?? {}) === id);
|
|
83
|
+
const neededAbstracts = new Set();
|
|
84
|
+
for (const svc of services) {
|
|
85
|
+
const row = asRecord(svc) ?? {};
|
|
86
|
+
for (const port of [
|
|
87
|
+
...(row.inputs ?? []),
|
|
88
|
+
...(row.outputs ?? []),
|
|
89
|
+
]) {
|
|
90
|
+
const abstractType = String((asRecord(port) ?? {}).abstractType ?? "").trim();
|
|
91
|
+
if (abstractType)
|
|
92
|
+
neededAbstracts.add(abstractType);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const abstractTypes = (live.abstractTypes ?? []).filter((a) => neededAbstracts.has(String((asRecord(a) ?? {}).id ?? "")));
|
|
96
|
+
const neededObjectTypes = new Set();
|
|
97
|
+
for (const abs of abstractTypes) {
|
|
98
|
+
const members = (asRecord(abs) ?? {}).members ?? [];
|
|
99
|
+
for (const member of members) {
|
|
100
|
+
const objectType = String((asRecord(member) ?? {}).objectType ?? "").trim();
|
|
101
|
+
if (objectType)
|
|
102
|
+
neededObjectTypes.add(objectType);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const objectTypes = (live.objectTypes ?? []).filter((o) => neededObjectTypes.has(String((asRecord(o) ?? {}).id ?? "")));
|
|
106
|
+
return {
|
|
107
|
+
...base,
|
|
108
|
+
format: "memorix-metadata/1",
|
|
109
|
+
agentId: sliceId,
|
|
110
|
+
version: live.version,
|
|
111
|
+
agents: [
|
|
112
|
+
{
|
|
113
|
+
id: sliceId,
|
|
114
|
+
name: `Service package ${id}`,
|
|
115
|
+
parentIds: [],
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
objectTypes: objectTypes,
|
|
119
|
+
abstractTypes: abstractTypes,
|
|
120
|
+
services: services,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// agent — always the installable live pack; mode only affects associations on the release
|
|
124
|
+
void opts.mode;
|
|
125
|
+
void opts.includeConnectorIds;
|
|
126
|
+
void opts.includeServiceIds;
|
|
127
|
+
return {
|
|
128
|
+
...live,
|
|
129
|
+
format: "memorix-metadata/1",
|
|
130
|
+
agentId,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/** Associations recorded on an agent pack release (narrow = none claimed). */
|
|
134
|
+
export function releaseAssociations(live, mode, includeConnectorIds, includeServiceIds) {
|
|
135
|
+
if (mode === "narrow") {
|
|
136
|
+
return { connectorIds: [], serviceIds: [] };
|
|
137
|
+
}
|
|
138
|
+
const discovered = associationsFromPack(live);
|
|
139
|
+
return {
|
|
140
|
+
connectorIds: (includeConnectorIds ?? discovered.connectorIds)
|
|
141
|
+
.map((c) => c.trim())
|
|
142
|
+
.filter(Boolean),
|
|
143
|
+
serviceIds: (includeServiceIds ?? discovered.serviceIds)
|
|
144
|
+
.map((s) => s.trim())
|
|
145
|
+
.filter(Boolean),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Prefix Magit message so connector/service versions are filterable in interim history. */
|
|
149
|
+
export function packageVersionMessage(kind, id, message, mode) {
|
|
150
|
+
const modeTag = kind === "agent" && mode ? ` mode=${mode}` : "";
|
|
151
|
+
return `[package kind=${kind} id=${id}${modeTag}] ${message.trim()}`;
|
|
152
|
+
}
|
|
153
|
+
export function parsePackageMessage(message) {
|
|
154
|
+
const raw = message ?? "";
|
|
155
|
+
const m = /^\[package kind=(agent|connector|service) id=([^\s\]]+)(?: mode=(narrow|full))?\]\s*(.*)$/s.exec(raw);
|
|
156
|
+
if (!m)
|
|
157
|
+
return { message: raw };
|
|
158
|
+
return {
|
|
159
|
+
kind: m[1],
|
|
160
|
+
id: m[2],
|
|
161
|
+
mode: m[3],
|
|
162
|
+
message: m[4] ?? "",
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/** List connector/service catalog entries from installed agent packs. */
|
|
166
|
+
export function discoverPackageCatalog(packs) {
|
|
167
|
+
const agents = [];
|
|
168
|
+
const connectors = new Map();
|
|
169
|
+
const services = new Map();
|
|
170
|
+
for (const [agentId, pack] of Object.entries(packs)) {
|
|
171
|
+
if (!pack)
|
|
172
|
+
continue;
|
|
173
|
+
agents.push({ kind: "agent", id: agentId, agentId });
|
|
174
|
+
const assoc = associationsFromPack(pack);
|
|
175
|
+
for (const connectorId of assoc.connectorIds) {
|
|
176
|
+
if (!connectors.has(connectorId)) {
|
|
177
|
+
connectors.set(connectorId, {
|
|
178
|
+
kind: "connector",
|
|
179
|
+
id: connectorId,
|
|
180
|
+
agentId,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
for (const serviceId of assoc.serviceIds) {
|
|
185
|
+
const key = `${agentId}/${serviceId}`;
|
|
186
|
+
if (!services.has(key)) {
|
|
187
|
+
services.set(key, {
|
|
188
|
+
kind: "service",
|
|
189
|
+
id: serviceId,
|
|
190
|
+
agentId,
|
|
191
|
+
label: `${agentId}/${serviceId}`,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return [
|
|
197
|
+
...agents.sort((a, b) => a.id.localeCompare(b.id)),
|
|
198
|
+
...[...connectors.values()].sort((a, b) => a.id.localeCompare(b.id)),
|
|
199
|
+
...[...services.values()].sort((a, b) => (a.label ?? a.id).localeCompare(b.label ?? b.id)),
|
|
200
|
+
];
|
|
201
|
+
}
|
|
202
|
+
/** Resolve which agent pack owns a connector/service for packing. */
|
|
203
|
+
export function resolveOwnerAgent(packs, kind, id, preferredAgentId) {
|
|
204
|
+
if (kind === "agent")
|
|
205
|
+
return id;
|
|
206
|
+
if (preferredAgentId?.trim() && packs[preferredAgentId.trim()]) {
|
|
207
|
+
return preferredAgentId.trim();
|
|
208
|
+
}
|
|
209
|
+
for (const [agentId, pack] of Object.entries(packs)) {
|
|
210
|
+
if (!pack)
|
|
211
|
+
continue;
|
|
212
|
+
const assoc = associationsFromPack(pack);
|
|
213
|
+
if (kind === "connector" && assoc.connectorIds.includes(id))
|
|
214
|
+
return agentId;
|
|
215
|
+
if (kind === "service" && assoc.serviceIds.includes(id))
|
|
216
|
+
return agentId;
|
|
217
|
+
}
|
|
218
|
+
throw new Error(`No installed agent pack owns ${kind} "${id}"`);
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=package-catalog-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-catalog-bridge.js","sourceRoot":"","sources":["../../src/magit/package-catalog-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merge an intelligence proposal draft into a MetadataPack (upsert by id).
|
|
3
|
+
* Stage never installs — callers saveVersion / install explicitly.
|
|
4
|
+
*/
|
|
5
|
+
import type { MetadataPack } from "@x12i/memorix-metadata";
|
|
6
|
+
export type ProposalLike = {
|
|
7
|
+
proposalId: string;
|
|
8
|
+
metadataKind: string;
|
|
9
|
+
metadataId: string;
|
|
10
|
+
draft: unknown;
|
|
11
|
+
scope?: {
|
|
12
|
+
agentIds?: string[];
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
type PackArrayField = "objectTypes" | "abstractTypes" | "relationshipDefinitions" | "mappings" | "views" | "pipelines" | "sources" | "services" | "schedules" | "writes" | "kindDeclarations" | "agents";
|
|
16
|
+
export declare function packFieldForProposalKind(metadataKind: string): PackArrayField | null;
|
|
17
|
+
/**
|
|
18
|
+
* Deep-clone base pack (or empty) and upsert proposal.draft into the mapped kind array.
|
|
19
|
+
*/
|
|
20
|
+
export declare function mergeProposalIntoPack(base: MetadataPack | null | undefined, proposal: ProposalLike, agentId: string): MetadataPack;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=proposal-to-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-to-pack.d.ts","sourceRoot":"","sources":["../../src/magit/proposal-to-pack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjC,CAAC;AAEF,KAAK,cAAc,GACf,aAAa,GACb,eAAe,GACf,yBAAyB,GACzB,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,WAAW,GACX,QAAQ,GACR,kBAAkB,GAClB,QAAQ,CAAC;AAgCb,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEpF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EACrC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,GACd,YAAY,CAiCd"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { emptyMetadataPack } from "./pack-to-patchset.js";
|
|
2
|
+
const KIND_TO_FIELD = {
|
|
3
|
+
"object-type": "objectTypes",
|
|
4
|
+
"object-types": "objectTypes",
|
|
5
|
+
"abstract-type": "abstractTypes",
|
|
6
|
+
"abstract-types": "abstractTypes",
|
|
7
|
+
"abstract-binding": "abstractTypes",
|
|
8
|
+
"abstract-bindings": "abstractTypes",
|
|
9
|
+
"relationship-definition": "relationshipDefinitions",
|
|
10
|
+
"relationship-definitions": "relationshipDefinitions",
|
|
11
|
+
"source-mapping": "mappings",
|
|
12
|
+
transform: "mappings",
|
|
13
|
+
mappings: "mappings",
|
|
14
|
+
view: "views",
|
|
15
|
+
views: "views",
|
|
16
|
+
pipeline: "pipelines",
|
|
17
|
+
pipelines: "pipelines",
|
|
18
|
+
source: "sources",
|
|
19
|
+
sources: "sources",
|
|
20
|
+
service: "services",
|
|
21
|
+
services: "services",
|
|
22
|
+
schedule: "schedules",
|
|
23
|
+
schedules: "schedules",
|
|
24
|
+
write: "writes",
|
|
25
|
+
writes: "writes",
|
|
26
|
+
agent: "agents",
|
|
27
|
+
agents: "agents",
|
|
28
|
+
"kind-declaration": "kindDeclarations",
|
|
29
|
+
"kind-declarations": "kindDeclarations",
|
|
30
|
+
};
|
|
31
|
+
export function packFieldForProposalKind(metadataKind) {
|
|
32
|
+
return KIND_TO_FIELD[metadataKind] ?? null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Deep-clone base pack (or empty) and upsert proposal.draft into the mapped kind array.
|
|
36
|
+
*/
|
|
37
|
+
export function mergeProposalIntoPack(base, proposal, agentId) {
|
|
38
|
+
const field = packFieldForProposalKind(proposal.metadataKind);
|
|
39
|
+
if (!field) {
|
|
40
|
+
throw new Error(`unsupported proposal metadataKind for pack staging: ${proposal.metadataKind}`);
|
|
41
|
+
}
|
|
42
|
+
if (!proposal.draft || typeof proposal.draft !== "object" || Array.isArray(proposal.draft)) {
|
|
43
|
+
throw new Error("proposal draft must be a non-null object");
|
|
44
|
+
}
|
|
45
|
+
const draft = { ...proposal.draft };
|
|
46
|
+
const id = (typeof draft.id === "string" && draft.id) ||
|
|
47
|
+
proposal.metadataId?.trim() ||
|
|
48
|
+
"";
|
|
49
|
+
if (!id) {
|
|
50
|
+
throw new Error("proposal draft requires id (or metadataId)");
|
|
51
|
+
}
|
|
52
|
+
draft.id = id;
|
|
53
|
+
const pack = base
|
|
54
|
+
? JSON.parse(JSON.stringify(base))
|
|
55
|
+
: emptyMetadataPack(agentId);
|
|
56
|
+
pack.agentId = agentId;
|
|
57
|
+
pack.format = pack.format || "memorix-metadata/1";
|
|
58
|
+
const arr = pack[field] ?? [];
|
|
59
|
+
const next = [...arr];
|
|
60
|
+
const idx = next.findIndex((row) => row && typeof row === "object" && row.id === id);
|
|
61
|
+
if (idx >= 0)
|
|
62
|
+
next[idx] = draft;
|
|
63
|
+
else
|
|
64
|
+
next.push(draft);
|
|
65
|
+
pack[field] = next;
|
|
66
|
+
return pack;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=proposal-to-pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-to-pack.js","sourceRoot":"","sources":["../../src/magit/proposal-to-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-metadata-store.d.ts","sourceRoot":"","sources":["../src/mongo-metadata-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mongo-metadata-store.d.ts","sourceRoot":"","sources":["../src/mongo-metadata-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAGV,aAAa,EAEd,MAAM,gCAAgC,CAAC;AAkBxC,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,EAAE,GAAG,oBAAoB,CAgGrE"}
|
|
@@ -16,6 +16,8 @@ export function createMongoMetadataStore(db) {
|
|
|
16
16
|
agentId,
|
|
17
17
|
checksum: pack.checksum,
|
|
18
18
|
definitions: pack.definitions,
|
|
19
|
+
magitCommit: pack.magitCommit ?? null,
|
|
20
|
+
magitRelease: pack.magitRelease ?? null,
|
|
19
21
|
};
|
|
20
22
|
}));
|
|
21
23
|
}
|
|
@@ -37,8 +39,8 @@ export function createMongoMetadataStore(db) {
|
|
|
37
39
|
getAgentPack(agentId) {
|
|
38
40
|
return memory.getAgentPack(agentId);
|
|
39
41
|
},
|
|
40
|
-
replaceAgentPack(agentId, checksum, definitions, installedAt) {
|
|
41
|
-
memory.replaceAgentPack(agentId, checksum, definitions, installedAt);
|
|
42
|
+
replaceAgentPack(agentId, checksum, definitions, installedAt, lineage) {
|
|
43
|
+
memory.replaceAgentPack(agentId, checksum, definitions, installedAt, lineage);
|
|
42
44
|
enqueueFlush();
|
|
43
45
|
},
|
|
44
46
|
getLedger() {
|
|
@@ -65,7 +67,11 @@ export function createMongoMetadataStore(db) {
|
|
|
65
67
|
const scratch = createInMemoryMetadataStore();
|
|
66
68
|
for (const doc of agentDocs) {
|
|
67
69
|
const agentId = doc.agentId || doc._id;
|
|
68
|
-
|
|
70
|
+
const lineage = {
|
|
71
|
+
magitCommit: doc.magitCommit ?? null,
|
|
72
|
+
magitRelease: doc.magitRelease ?? null,
|
|
73
|
+
};
|
|
74
|
+
scratch.replaceAgentPack(agentId, doc.checksum, doc.definitions, new Date(0).toISOString(), lineage);
|
|
69
75
|
}
|
|
70
76
|
for (const entry of ledgerDocs) {
|
|
71
77
|
const { _id: _omit, ...rest } = entry;
|