@x12i/memorix-service 3.2.1 → 3.4.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.
Files changed (164) hide show
  1. package/README.md +61 -3
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +8 -0
  4. package/dist/app.js.map +1 -1
  5. package/dist/blob-store/config.d.ts +31 -0
  6. package/dist/blob-store/config.d.ts.map +1 -0
  7. package/dist/blob-store/config.js +68 -0
  8. package/dist/blob-store/config.js.map +1 -0
  9. package/dist/blob-store/disk.d.ts +10 -0
  10. package/dist/blob-store/disk.d.ts.map +1 -0
  11. package/dist/blob-store/disk.js +104 -0
  12. package/dist/blob-store/disk.js.map +1 -0
  13. package/dist/blob-store/index.d.ts +6 -0
  14. package/dist/blob-store/index.d.ts.map +1 -0
  15. package/dist/blob-store/index.js +6 -0
  16. package/dist/blob-store/index.js.map +1 -0
  17. package/dist/blob-store/memory.d.ts +4 -0
  18. package/dist/blob-store/memory.d.ts.map +1 -0
  19. package/dist/blob-store/memory.js +47 -0
  20. package/dist/blob-store/memory.js.map +1 -0
  21. package/dist/blob-store/s3.d.ts +52 -0
  22. package/dist/blob-store/s3.d.ts.map +1 -0
  23. package/dist/blob-store/s3.js +151 -0
  24. package/dist/blob-store/s3.js.map +1 -0
  25. package/dist/blob-store/types.d.ts +30 -0
  26. package/dist/blob-store/types.d.ts.map +1 -0
  27. package/dist/blob-store/types.js +38 -0
  28. package/dist/blob-store/types.js.map +1 -0
  29. package/dist/catalog/catalog-service.d.ts +48 -0
  30. package/dist/catalog/catalog-service.d.ts.map +1 -0
  31. package/dist/catalog/catalog-service.js +397 -0
  32. package/dist/catalog/catalog-service.js.map +1 -0
  33. package/dist/catalog/package-list-source.d.ts +35 -0
  34. package/dist/catalog/package-list-source.d.ts.map +1 -0
  35. package/dist/catalog/package-list-source.js +47 -0
  36. package/dist/catalog/package-list-source.js.map +1 -0
  37. package/dist/catalog/types.d.ts +65 -0
  38. package/dist/catalog/types.d.ts.map +1 -0
  39. package/dist/catalog/types.js +16 -0
  40. package/dist/catalog/types.js.map +1 -0
  41. package/dist/catalog-store-cli.d.ts +20 -0
  42. package/dist/catalog-store-cli.d.ts.map +1 -0
  43. package/dist/catalog-store-cli.js +237 -0
  44. package/dist/catalog-store-cli.js.map +1 -0
  45. package/dist/cli.d.ts +3 -1
  46. package/dist/cli.d.ts.map +1 -1
  47. package/dist/cli.js +48 -18
  48. package/dist/cli.js.map +1 -1
  49. package/dist/connector-ops/attempt-store.d.ts +5 -0
  50. package/dist/connector-ops/attempt-store.d.ts.map +1 -0
  51. package/dist/connector-ops/attempt-store.js +186 -0
  52. package/dist/connector-ops/attempt-store.js.map +1 -0
  53. package/dist/connector-ops/index.d.ts +5 -0
  54. package/dist/connector-ops/index.d.ts.map +1 -0
  55. package/dist/connector-ops/index.js +5 -0
  56. package/dist/connector-ops/index.js.map +1 -0
  57. package/dist/connector-ops/override-store.d.ts +7 -0
  58. package/dist/connector-ops/override-store.d.ts.map +1 -0
  59. package/dist/connector-ops/override-store.js +123 -0
  60. package/dist/connector-ops/override-store.js.map +1 -0
  61. package/dist/connector-ops/sanitize.d.ts +16 -0
  62. package/dist/connector-ops/sanitize.d.ts.map +1 -0
  63. package/dist/connector-ops/sanitize.js +48 -0
  64. package/dist/connector-ops/sanitize.js.map +1 -0
  65. package/dist/connector-ops/types.d.ts +76 -0
  66. package/dist/connector-ops/types.d.ts.map +1 -0
  67. package/dist/connector-ops/types.js +12 -0
  68. package/dist/connector-ops/types.js.map +1 -0
  69. package/dist/effective-listing.d.ts +11 -0
  70. package/dist/effective-listing.d.ts.map +1 -0
  71. package/dist/effective-listing.js +41 -0
  72. package/dist/effective-listing.js.map +1 -0
  73. package/dist/errors.d.ts +5 -1
  74. package/dist/errors.d.ts.map +1 -1
  75. package/dist/errors.js +10 -3
  76. package/dist/errors.js.map +1 -1
  77. package/dist/execution-target.d.ts +16 -0
  78. package/dist/execution-target.d.ts.map +1 -1
  79. package/dist/execution-target.js +54 -0
  80. package/dist/execution-target.js.map +1 -1
  81. package/dist/index.d.ts +6 -1
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +6 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/integrations/index.d.ts +3 -0
  86. package/dist/integrations/index.d.ts.map +1 -0
  87. package/dist/integrations/index.js +3 -0
  88. package/dist/integrations/index.js.map +1 -0
  89. package/dist/integrations/instance-store.d.ts +5 -0
  90. package/dist/integrations/instance-store.d.ts.map +1 -0
  91. package/dist/integrations/instance-store.js +327 -0
  92. package/dist/integrations/instance-store.js.map +1 -0
  93. package/dist/integrations/types.d.ts +92 -0
  94. package/dist/integrations/types.d.ts.map +1 -0
  95. package/dist/integrations/types.js +40 -0
  96. package/dist/integrations/types.js.map +1 -0
  97. package/dist/magit/magit-pack-service.d.ts +436 -70
  98. package/dist/magit/magit-pack-service.d.ts.map +1 -1
  99. package/dist/magit/magit-pack-service.js +949 -202
  100. package/dist/magit/magit-pack-service.js.map +1 -1
  101. package/dist/magit/pack-to-patchset.d.ts +21 -0
  102. package/dist/magit/pack-to-patchset.d.ts.map +1 -1
  103. package/dist/magit/pack-to-patchset.js +29 -0
  104. package/dist/magit/pack-to-patchset.js.map +1 -1
  105. package/dist/magit/package-catalog-bridge.d.ts +4 -14
  106. package/dist/magit/package-catalog-bridge.d.ts.map +1 -1
  107. package/dist/magit/package-catalog-bridge.js +2 -21
  108. package/dist/magit/package-catalog-bridge.js.map +1 -1
  109. package/dist/mgc-packages.d.ts +4 -3
  110. package/dist/mgc-packages.d.ts.map +1 -1
  111. package/dist/mgc-packages.js +4 -3
  112. package/dist/mgc-packages.js.map +1 -1
  113. package/dist/openapi/openapi.json +3060 -135
  114. package/dist/optional-companion-url.d.ts +72 -0
  115. package/dist/optional-companion-url.d.ts.map +1 -0
  116. package/dist/optional-companion-url.js +148 -0
  117. package/dist/optional-companion-url.js.map +1 -0
  118. package/dist/platform.d.ts +29 -0
  119. package/dist/platform.d.ts.map +1 -1
  120. package/dist/platform.js +138 -2
  121. package/dist/platform.js.map +1 -1
  122. package/dist/restricted-store/crypto.d.ts +10 -0
  123. package/dist/restricted-store/crypto.d.ts.map +1 -0
  124. package/dist/restricted-store/crypto.js +43 -0
  125. package/dist/restricted-store/crypto.js.map +1 -0
  126. package/dist/restricted-store/index.d.ts +4 -0
  127. package/dist/restricted-store/index.d.ts.map +1 -0
  128. package/dist/restricted-store/index.js +4 -0
  129. package/dist/restricted-store/index.js.map +1 -0
  130. package/dist/restricted-store/object-store.d.ts +12 -0
  131. package/dist/restricted-store/object-store.d.ts.map +1 -0
  132. package/dist/restricted-store/object-store.js +233 -0
  133. package/dist/restricted-store/object-store.js.map +1 -0
  134. package/dist/restricted-store/types.d.ts +78 -0
  135. package/dist/restricted-store/types.d.ts.map +1 -0
  136. package/dist/restricted-store/types.js +12 -0
  137. package/dist/restricted-store/types.js.map +1 -0
  138. package/dist/routes/catalog.d.ts +4 -0
  139. package/dist/routes/catalog.d.ts.map +1 -0
  140. package/dist/routes/catalog.js +103 -0
  141. package/dist/routes/catalog.js.map +1 -0
  142. package/dist/routes/connector-ops.d.ts +12 -0
  143. package/dist/routes/connector-ops.d.ts.map +1 -0
  144. package/dist/routes/connector-ops.js +160 -0
  145. package/dist/routes/connector-ops.js.map +1 -0
  146. package/dist/routes/integrations.d.ts +5 -0
  147. package/dist/routes/integrations.d.ts.map +1 -0
  148. package/dist/routes/integrations.js +126 -0
  149. package/dist/routes/integrations.js.map +1 -0
  150. package/dist/routes/memory.d.ts.map +1 -1
  151. package/dist/routes/memory.js +9 -2
  152. package/dist/routes/memory.js.map +1 -1
  153. package/dist/routes/metadata.d.ts.map +1 -1
  154. package/dist/routes/metadata.js +459 -186
  155. package/dist/routes/metadata.js.map +1 -1
  156. package/dist/routes/pipelines.d.ts.map +1 -1
  157. package/dist/routes/pipelines.js +3 -2
  158. package/dist/routes/pipelines.js.map +1 -1
  159. package/dist/routes/restricted-store.d.ts +5 -0
  160. package/dist/routes/restricted-store.d.ts.map +1 -0
  161. package/dist/routes/restricted-store.js +117 -0
  162. package/dist/routes/restricted-store.js.map +1 -0
  163. package/openapi/openapi.json +3060 -135
  164. package/package.json +31 -7
@@ -0,0 +1,397 @@
1
+ import { resolveConfiguredAiServiceOrigins, resolveAiServiceOriginUrl, } from "../ai-services/config.js";
2
+ import { listUnifiedConnectors } from "../connector-catalog.js";
3
+ import { loadGenericConnectorsConfig } from "../generic-connectors.js";
4
+ import { resolveMagitTypedStoreConfig, } from "../magit/magit-pack-service.js";
5
+ import { ServiceError } from "../errors.js";
6
+ import { isCatalogComponentKind, isMagitCatalogKind, MAGIT_CATALOG_KINDS, } from "./types.js";
7
+ function packageTypeId() {
8
+ try {
9
+ return resolveMagitTypedStoreConfig()?.packageTypeId ?? null;
10
+ }
11
+ catch {
12
+ return process.env.MAGIT_PACKAGE_TYPE_ID?.trim() || null;
13
+ }
14
+ }
15
+ function storeConfigSafe() {
16
+ try {
17
+ return resolveMagitTypedStoreConfig();
18
+ }
19
+ catch {
20
+ return null;
21
+ }
22
+ }
23
+ function toPublisher(p) {
24
+ if (!p?.id)
25
+ return null;
26
+ return {
27
+ id: p.id,
28
+ appId: p.appId,
29
+ workspaceId: p.workspaceId,
30
+ displayName: p.displayName,
31
+ };
32
+ }
33
+ function latestByCreatedAt(rows) {
34
+ if (rows.length === 0)
35
+ return null;
36
+ return [...rows].sort((a, b) => (b.createdAt || "").localeCompare(a.createdAt || ""))[0];
37
+ }
38
+ function releaseSummary(row) {
39
+ return {
40
+ version: row.version,
41
+ checksum: row.checksum,
42
+ message: row.message,
43
+ createdAt: row.createdAt,
44
+ mode: row.mode,
45
+ };
46
+ }
47
+ function groupMagitRows(items, packageTypeIdValue) {
48
+ const byKey = new Map();
49
+ for (const item of items) {
50
+ if (!isMagitCatalogKind(item.kind))
51
+ continue;
52
+ const key = `${item.kind}::${item.id}`;
53
+ const list = byKey.get(key) ?? [];
54
+ list.push(item);
55
+ byKey.set(key, list);
56
+ }
57
+ const components = [];
58
+ for (const [, rows] of byKey) {
59
+ const latest = latestByCreatedAt(rows);
60
+ const kind = latest.kind;
61
+ const associations = [];
62
+ if (latest.associations?.connectorIds) {
63
+ for (const id of latest.associations.connectorIds) {
64
+ associations.push({ kind: "connector", id });
65
+ }
66
+ }
67
+ if (latest.associations?.serviceIds) {
68
+ for (const id of latest.associations.serviceIds) {
69
+ associations.push({ kind: "service", id });
70
+ }
71
+ }
72
+ components.push({
73
+ schema: "memorix-catalog/v1",
74
+ packageTypeId: packageTypeIdValue,
75
+ publisher: toPublisher(latest.publisher),
76
+ kind,
77
+ id: latest.id,
78
+ associations: associations.length ? associations : undefined,
79
+ latestRelease: releaseSummary(latest),
80
+ });
81
+ }
82
+ return components.sort((a, b) => `${a.kind}:${a.id}`.localeCompare(`${b.kind}:${b.id}`));
83
+ }
84
+ function matchQ(c, q) {
85
+ if (!q?.trim())
86
+ return true;
87
+ const needle = q.trim().toLowerCase();
88
+ return (c.id.toLowerCase().includes(needle) ||
89
+ (c.name?.toLowerCase().includes(needle) ?? false) ||
90
+ (c.publisher?.id.toLowerCase().includes(needle) ?? false));
91
+ }
92
+ async function mapPool(items, concurrency, fn) {
93
+ const out = new Array(items.length);
94
+ let next = 0;
95
+ async function worker() {
96
+ for (;;) {
97
+ const i = next++;
98
+ if (i >= items.length)
99
+ return;
100
+ out[i] = await fn(items[i]);
101
+ }
102
+ }
103
+ const n = Math.min(concurrency, Math.max(items.length, 1));
104
+ await Promise.all(Array.from({ length: n }, () => worker()));
105
+ return out;
106
+ }
107
+ export function createCatalogService(deps) {
108
+ async function listMagitKind(kind, opts) {
109
+ return deps.magit.listPackages({
110
+ kind,
111
+ id: opts.id,
112
+ publisher: opts.publisher,
113
+ maxCount: 500,
114
+ });
115
+ }
116
+ async function listMagitComponents(kinds, opts) {
117
+ const pt = packageTypeId();
118
+ const allItems = [];
119
+ for (const kind of kinds) {
120
+ const items = await listMagitKind(kind, opts);
121
+ allItems.push(...items);
122
+ }
123
+ return groupMagitRows(allItems, pt);
124
+ }
125
+ function listPipelineComponents(agentIds) {
126
+ const pt = packageTypeId();
127
+ const effective = deps.metadata.resolveEffective(agentIds);
128
+ const entries = (effective.effective ?? []).filter((e) => e.kind === "pipelines");
129
+ return entries.map((e) => {
130
+ const d = e.definition;
131
+ const id = String(d.id ?? d.pipelineId ?? e.id).trim();
132
+ const name = typeof d.name === "string" ? d.name : id;
133
+ return {
134
+ schema: "memorix-catalog/v1",
135
+ packageTypeId: pt,
136
+ publisher: null,
137
+ kind: "pipeline",
138
+ id,
139
+ name,
140
+ };
141
+ });
142
+ }
143
+ function listRuntimeServiceComponents() {
144
+ const pt = packageTypeId();
145
+ return resolveConfiguredAiServiceOrigins().map((o) => {
146
+ const url = o.url;
147
+ return {
148
+ schema: "memorix-catalog/v1",
149
+ packageTypeId: pt,
150
+ publisher: null,
151
+ kind: "runtime-service",
152
+ id: o.aiServiceType,
153
+ name: `${o.aiServiceType} origin`,
154
+ latestRelease: undefined,
155
+ };
156
+ });
157
+ }
158
+ async function deploymentsFor(component, orgId, agentIds) {
159
+ if (!orgId?.trim())
160
+ return undefined;
161
+ const org = orgId.trim();
162
+ if (component.kind === "agent") {
163
+ const ledger = deps.metadata.getLedger();
164
+ const latest = [...ledger]
165
+ .reverse()
166
+ .find((e) => e.agentId === component.id);
167
+ const raw = deps.metadata.getRaw(component.id);
168
+ const installed = Boolean(raw.pack);
169
+ if (!installed && !latest) {
170
+ return [{ orgId: org, status: "missing" }];
171
+ }
172
+ return [
173
+ {
174
+ orgId: org,
175
+ status: "installed",
176
+ installedVersion: latest?.magitCommit ??
177
+ latest?.magitRelease ??
178
+ component.latestRelease?.version,
179
+ lastSeen: latest?.installedAt,
180
+ notes: latest
181
+ ? `source=${latest.source ?? "install"}`
182
+ : "installed without ledger row",
183
+ },
184
+ ];
185
+ }
186
+ if (component.kind === "service") {
187
+ const effective = deps.metadata.resolveEffective(agentIds.length ? agentIds : [component.id]);
188
+ const found = (effective.effective ?? []).some((e) => e.kind === "services" &&
189
+ (e.id === component.id ||
190
+ String(e.definition.id ?? "") === component.id));
191
+ return [
192
+ {
193
+ orgId: org,
194
+ status: found ? "installed" : "missing",
195
+ },
196
+ ];
197
+ }
198
+ if (component.kind === "connector") {
199
+ const unified = await listUnifiedConnectors({
200
+ connectorRegistry: deps.connectorRegistry,
201
+ genericConnectors: deps.genericConnectors ?? loadGenericConnectorsConfig(),
202
+ });
203
+ const hit = unified.find((c) => c.id === component.id);
204
+ if (!hit)
205
+ return [{ orgId: org, status: "missing" }];
206
+ return [
207
+ {
208
+ orgId: org,
209
+ status: "configured",
210
+ endpoint: hit.hostBaseUrl,
211
+ health: hit.unavailableReason ? "down" : "up",
212
+ notes: hit.unavailableReason ?? undefined,
213
+ },
214
+ ];
215
+ }
216
+ if (component.kind === "pipeline") {
217
+ const effective = deps.metadata.resolveEffective(agentIds);
218
+ const found = (effective.effective ?? []).some((e) => e.kind === "pipelines" &&
219
+ (e.id === component.id ||
220
+ String(e.definition.id ?? e.definition.pipelineId ?? "") ===
221
+ component.id));
222
+ return [{ orgId: org, status: found ? "installed" : "missing" }];
223
+ }
224
+ if (component.kind === "runtime-service") {
225
+ const url = resolveAiServiceOriginUrl(component.id);
226
+ if (!url) {
227
+ return [{ orgId: org, status: "missing", health: "unknown" }];
228
+ }
229
+ return [
230
+ {
231
+ orgId: org,
232
+ status: "reachable",
233
+ endpoint: url,
234
+ health: "unknown",
235
+ notes: "URL configured (not probed)",
236
+ },
237
+ ];
238
+ }
239
+ return undefined;
240
+ }
241
+ async function attachExtras(components, opts) {
242
+ let out = components;
243
+ if (opts.includeReleases) {
244
+ const max = opts.maxReleasesPerComponent ?? 20;
245
+ out = await mapPool(out, 4, async (c) => {
246
+ if (!isMagitCatalogKind(c.kind))
247
+ return c;
248
+ try {
249
+ const versions = await deps.magit.listPackages({
250
+ kind: c.kind,
251
+ id: c.id,
252
+ maxCount: max,
253
+ publisher: opts.publisher,
254
+ });
255
+ const sorted = [...versions].sort((a, b) => (b.createdAt || "").localeCompare(a.createdAt || ""));
256
+ const latest = sorted[0];
257
+ return {
258
+ ...c,
259
+ latestRelease: latest ? releaseSummary(latest) : c.latestRelease,
260
+ };
261
+ }
262
+ catch {
263
+ return c;
264
+ }
265
+ });
266
+ }
267
+ if (opts.includeDeployments && opts.orgId?.trim()) {
268
+ const agentIds = opts.agentIds ?? [];
269
+ out = await mapPool(out, 6, async (c) => {
270
+ try {
271
+ const deployments = await deploymentsFor(c, opts.orgId, agentIds);
272
+ return deployments ? { ...c, deployments } : c;
273
+ }
274
+ catch {
275
+ return c;
276
+ }
277
+ });
278
+ }
279
+ return out;
280
+ }
281
+ async function listComponents(opts = {}) {
282
+ const kind = opts.kind ?? "all";
283
+ const store = storeConfigSafe();
284
+ const components = [];
285
+ if (kind === "all" || isMagitCatalogKind(kind)) {
286
+ const kinds = kind === "all" ? [...MAGIT_CATALOG_KINDS] : [kind];
287
+ // Store path requires kind per list call (already one kind at a time).
288
+ components.push(...(await listMagitComponents(kinds, {
289
+ publisher: opts.publisher,
290
+ })));
291
+ }
292
+ if (kind === "all" || kind === "pipeline") {
293
+ components.push(...listPipelineComponents(opts.agentIds ?? []));
294
+ }
295
+ if (kind === "all" || kind === "runtime-service") {
296
+ components.push(...listRuntimeServiceComponents());
297
+ }
298
+ let filtered = components.filter((c) => matchQ(c, opts.q));
299
+ if (opts.publisher?.trim()) {
300
+ const pub = opts.publisher.trim();
301
+ filtered = filtered.filter((c) => c.kind === "pipeline" ||
302
+ c.kind === "runtime-service" ||
303
+ c.publisher?.id === pub);
304
+ }
305
+ const withExtras = await attachExtras(filtered, opts);
306
+ return {
307
+ packageTypeId: packageTypeId(),
308
+ typedStoreConfigured: Boolean(store),
309
+ components: withExtras,
310
+ note: store
311
+ ? "Existence from Magit typed store opened by service config; deployments from this environment when requested."
312
+ : "Existence from Magit flat catalog; set MAGIT_PACKAGE_STORE_SELECTOR + MAGIT_PACKAGE_TYPE_ID for typed store. Deployments from this environment when requested.",
313
+ };
314
+ }
315
+ async function getComponent(kind, id, opts = {}) {
316
+ if (!isCatalogComponentKind(kind)) {
317
+ throw new ServiceError("VALIDATION", `unsupported catalog kind: ${kind}`, 400);
318
+ }
319
+ const idTrim = id.trim();
320
+ if (!idTrim)
321
+ throw new ServiceError("VALIDATION", "id required", 400);
322
+ if (isMagitCatalogKind(kind)) {
323
+ const rows = await listMagitKind(kind, {
324
+ id: idTrim,
325
+ publisher: opts.publisher,
326
+ });
327
+ if (rows.length === 0) {
328
+ throw new ServiceError("NOT_FOUND", `catalog component ${kind}/${idTrim} not found`, 404);
329
+ }
330
+ let [component] = groupMagitRows(rows, packageTypeId());
331
+ if (!component) {
332
+ throw new ServiceError("NOT_FOUND", `catalog component ${kind}/${idTrim} not found`, 404);
333
+ }
334
+ [component] = await attachExtras([component], {
335
+ ...opts,
336
+ includeReleases: opts.includeReleases ?? true,
337
+ });
338
+ return component;
339
+ }
340
+ const listed = await listComponents({
341
+ ...opts,
342
+ kind,
343
+ });
344
+ const hit = listed.components.find((c) => c.id === idTrim);
345
+ if (!hit) {
346
+ throw new ServiceError("NOT_FOUND", `catalog component ${kind}/${idTrim} not found`, 404);
347
+ }
348
+ return hit;
349
+ }
350
+ async function listReleases(kind, id, opts) {
351
+ if (!isMagitCatalogKind(kind)) {
352
+ throw new ServiceError("VALIDATION", `releases only available for Magit package kinds (got ${kind})`, 400);
353
+ }
354
+ const idTrim = id.trim();
355
+ if (!idTrim)
356
+ throw new ServiceError("VALIDATION", "id required", 400);
357
+ const pt = packageTypeId();
358
+ const items = await deps.magit.listPackages({
359
+ kind,
360
+ id: idTrim,
361
+ publisher: opts?.publisher,
362
+ maxCount: opts?.maxCount ?? 100,
363
+ });
364
+ const releases = [...items]
365
+ .sort((a, b) => (b.createdAt || "").localeCompare(a.createdAt || ""))
366
+ .map((row) => ({
367
+ ...releaseSummary(row),
368
+ packageTypeId: pt,
369
+ publisher: toPublisher(row.publisher),
370
+ kind: kind,
371
+ id: idTrim,
372
+ associations: undefined,
373
+ }));
374
+ return {
375
+ packageTypeId: pt,
376
+ kind: kind,
377
+ id: idTrim,
378
+ releases,
379
+ };
380
+ }
381
+ /** Flatten Magit versions to catalog-style rows for packages source=catalog. */
382
+ async function listMagitVersionRows(opts) {
383
+ const kinds = opts?.kind ? [opts.kind] : [...MAGIT_CATALOG_KINDS];
384
+ const all = [];
385
+ for (const kind of kinds) {
386
+ all.push(...(await listMagitKind(kind, { publisher: opts?.publisher })));
387
+ }
388
+ return all;
389
+ }
390
+ return {
391
+ listComponents,
392
+ getComponent,
393
+ listReleases,
394
+ listMagitVersionRows,
395
+ };
396
+ }
397
+ //# sourceMappingURL=catalog-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-service.js","sourceRoot":"","sources":["../../src/catalog/catalog-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Pure helpers for GET /api/metadata/packages ?source= selection.
3
+ * Mirrors packages-list-shape.test.ts contracts.
4
+ */
5
+ export type PackageListKind = "agent" | "connector" | "service";
6
+ export type CatalogVersionRow = {
7
+ kind: PackageListKind;
8
+ id: string;
9
+ version: string;
10
+ createdAt: string;
11
+ checksum: string | null;
12
+ };
13
+ export type PackableEntry = {
14
+ kind: PackageListKind;
15
+ id: string;
16
+ agentId: string;
17
+ label?: string;
18
+ };
19
+ export type CollapsedCatalogRow = {
20
+ kind: PackageListKind;
21
+ id: string;
22
+ agentId: string;
23
+ version: string;
24
+ };
25
+ export declare function collapseCatalogVersions(items: CatalogVersionRow[]): CollapsedCatalogRow[];
26
+ export declare function selectPackagesBySource(opts: {
27
+ source: "catalog" | "packable" | "all";
28
+ packages: CollapsedCatalogRow[];
29
+ packable: PackableEntry[];
30
+ }): {
31
+ packages: unknown[];
32
+ packable: PackableEntry[];
33
+ };
34
+ export declare function parsePackagesSource(raw: string | undefined): "catalog" | "packable" | "all";
35
+ //# sourceMappingURL=package-list-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-list-source.d.ts","sourceRoot":"","sources":["../../src/catalog/package-list-source.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,EAAE,GACzB,mBAAmB,EAAE,CAuBvB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;IACvC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,GAAG;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAcrD;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,SAAS,GAAG,UAAU,GAAG,KAAK,CAIhC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Pure helpers for GET /api/metadata/packages ?source= selection.
3
+ * Mirrors packages-list-shape.test.ts contracts.
4
+ */
5
+ export function collapseCatalogVersions(items) {
6
+ const byKey = new Map();
7
+ for (const v of items) {
8
+ const key = `${v.kind}::${v.id}`;
9
+ const prev = byKey.get(key);
10
+ if (prev && prev.createdAt >= v.createdAt)
11
+ continue;
12
+ byKey.set(key, {
13
+ kind: v.kind,
14
+ id: v.id,
15
+ agentId: v.kind === "agent" ? v.id : "",
16
+ version: v.version,
17
+ createdAt: v.createdAt,
18
+ });
19
+ }
20
+ return [...byKey.values()].map(({ kind, id, agentId, version }) => ({
21
+ kind,
22
+ id,
23
+ agentId,
24
+ version,
25
+ }));
26
+ }
27
+ export function selectPackagesBySource(opts) {
28
+ const wantPackable = opts.source === "packable" || opts.source === "all";
29
+ const packable = wantPackable ? opts.packable : [];
30
+ let packages = opts.source === "catalog" || opts.source === "all" ? opts.packages : [];
31
+ if (opts.source === "packable") {
32
+ packages = packable.map((e) => ({
33
+ kind: e.kind,
34
+ id: e.id,
35
+ agentId: e.agentId,
36
+ ...(e.label ? { label: e.label } : {}),
37
+ }));
38
+ }
39
+ return { packages, packable };
40
+ }
41
+ export function parsePackagesSource(raw) {
42
+ const s = (raw ?? "packable").trim().toLowerCase();
43
+ if (s === "catalog" || s === "all")
44
+ return s;
45
+ return "packable";
46
+ }
47
+ //# sourceMappingURL=package-list-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-list-source.js","sourceRoot":"","sources":["../../src/catalog/package-list-source.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,MAAM,UAAU,uBAAuB,CACrC,KAA0B;IAE1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAGlB,CAAC;IACJ,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS;YAAE,SAAS;QACpD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACb,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACvC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI;QACJ,EAAE;QACF,OAAO;QACP,OAAO;KACR,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAItC;IACC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IACzE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,IAAI,QAAQ,GACV,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAuB;IAEvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK;QAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Memorix product catalog domain (M1).
3
+ * Existence of Magit-backed kinds comes from Magit store/flat list;
4
+ * deployments are env-local only — never Magit.
5
+ */
6
+ export type CatalogComponentKind = "agent" | "service" | "connector" | "pipeline" | "runtime-service";
7
+ /** Magit package kinds that listPackagesFR understands for FR-CPS. */
8
+ export declare const MAGIT_CATALOG_KINDS: readonly ["agent", "connector", "service"];
9
+ export type MagitCatalogKind = (typeof MAGIT_CATALOG_KINDS)[number];
10
+ export type CatalogPublisher = {
11
+ id: string;
12
+ appId?: string;
13
+ workspaceId?: string;
14
+ displayName?: string;
15
+ };
16
+ export type CatalogReleaseSummary = {
17
+ version: string;
18
+ checksum: string | null;
19
+ message?: string | null;
20
+ createdAt?: string;
21
+ mode?: "narrow" | "full";
22
+ };
23
+ export type CatalogRelease = CatalogReleaseSummary & {
24
+ packageTypeId: string | null;
25
+ publisher: CatalogPublisher | null;
26
+ kind: CatalogComponentKind;
27
+ id: string;
28
+ magitRef?: string;
29
+ associations?: {
30
+ kind: CatalogComponentKind;
31
+ id: string;
32
+ publisher?: string;
33
+ version?: string;
34
+ }[];
35
+ };
36
+ export type CatalogDeployment = {
37
+ orgId?: string;
38
+ environment?: string;
39
+ status: "installed" | "configured" | "reachable" | "missing" | "degraded";
40
+ installedVersion?: string;
41
+ endpoint?: string;
42
+ lastSeen?: string;
43
+ health?: "up" | "down" | "unknown";
44
+ notes?: string;
45
+ };
46
+ export type CatalogComponent = {
47
+ schema: "memorix-catalog/v1";
48
+ packageTypeId: string | null;
49
+ publisher: CatalogPublisher | null;
50
+ kind: CatalogComponentKind;
51
+ id: string;
52
+ name?: string;
53
+ lifecycle?: "active" | "deprecated";
54
+ associations?: {
55
+ kind: CatalogComponentKind;
56
+ id: string;
57
+ publisher?: string;
58
+ version?: string;
59
+ }[];
60
+ latestRelease?: CatalogReleaseSummary;
61
+ deployments?: CatalogDeployment[];
62
+ };
63
+ export declare function isMagitCatalogKind(kind: string): kind is MagitCatalogKind;
64
+ export declare function isCatalogComponentKind(kind: string): kind is CatalogComponentKind;
65
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,SAAS,GACT,WAAW,GACX,UAAU,GACV,iBAAiB,CAAC;AAEtB,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,4CAA6C,CAAC;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG;IACnD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,oBAAoB,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACpC,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,oBAAoB,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,gBAAgB,CAEzE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,oBAAoB,CAMjF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Memorix product catalog domain (M1).
3
+ * Existence of Magit-backed kinds comes from Magit store/flat list;
4
+ * deployments are env-local only — never Magit.
5
+ */
6
+ /** Magit package kinds that listPackagesFR understands for FR-CPS. */
7
+ export const MAGIT_CATALOG_KINDS = ["agent", "connector", "service"];
8
+ export function isMagitCatalogKind(kind) {
9
+ return MAGIT_CATALOG_KINDS.includes(kind);
10
+ }
11
+ export function isCatalogComponentKind(kind) {
12
+ return (isMagitCatalogKind(kind) ||
13
+ kind === "pipeline" ||
14
+ kind === "runtime-service");
15
+ }
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,sEAAsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AA6D9E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,CACL,kBAAkB,CAAC,IAAI,CAAC;QACxB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,iBAAiB,CAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type MagitPackService } from "./magit/magit-pack-service.js";
2
+ export type CatalogStoreIo = {
3
+ log: (line: string) => void;
4
+ error: (line: string) => void;
5
+ };
6
+ export type CatalogStoreDeps = {
7
+ createMagit: () => MagitPackService;
8
+ writeSecretEnvFile: (outPath: string, env: Record<string, string>) => void;
9
+ io: CatalogStoreIo;
10
+ };
11
+ export declare function parseFlag(argv: string[], name: string): string | undefined;
12
+ export declare function hasFlag(argv: string[], name: string): boolean;
13
+ export declare function createDefaultAdminMagit(): MagitPackService;
14
+ export declare function writeSecretEnvFile(outPath: string, env: Record<string, string>): void;
15
+ /**
16
+ * Run catalog-store subcommands. Returns process exit code (0/1/2).
17
+ * Never prints selector values to stdout/stderr.
18
+ */
19
+ export declare function runCatalogStoreCommand(sub: string | undefined, argv: string[], partialDeps?: Partial<CatalogStoreDeps>): Promise<number>;
20
+ //# sourceMappingURL=catalog-store-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-store-cli.d.ts","sourceRoot":"","sources":["../src/catalog-store-cli.ts"],"names":[],"mappings":"AAOA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,gBAAgB,CAAC;IACpC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3E,EAAE,EAAE,cAAc,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,uBAAuB,IAAI,gBAAgB,CA8C1D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAcrF;AA2BD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAgCjB"}