@x12i/memorix-service 3.0.5 → 3.1.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 (132) hide show
  1. package/README.md +8 -1
  2. package/dist/ai-services/client.d.ts +31 -0
  3. package/dist/ai-services/client.d.ts.map +1 -0
  4. package/dist/ai-services/client.js +104 -0
  5. package/dist/ai-services/client.js.map +1 -0
  6. package/dist/ai-services/config.d.ts +17 -0
  7. package/dist/ai-services/config.d.ts.map +1 -0
  8. package/dist/ai-services/config.js +44 -0
  9. package/dist/ai-services/config.js.map +1 -0
  10. package/dist/ai-services/normalize-output.d.ts +23 -0
  11. package/dist/ai-services/normalize-output.d.ts.map +1 -0
  12. package/dist/ai-services/normalize-output.js +148 -0
  13. package/dist/ai-services/normalize-output.js.map +1 -0
  14. package/dist/ai-services/skill-execution.d.ts +23 -0
  15. package/dist/ai-services/skill-execution.d.ts.map +1 -0
  16. package/dist/ai-services/skill-execution.js +54 -0
  17. package/dist/ai-services/skill-execution.js.map +1 -0
  18. package/dist/ai-services/types.d.ts +62 -0
  19. package/dist/ai-services/types.d.ts.map +1 -0
  20. package/dist/ai-services/types.js +3 -0
  21. package/dist/ai-services/types.js.map +1 -0
  22. package/dist/app.d.ts.map +1 -1
  23. package/dist/app.js +37 -6
  24. package/dist/app.js.map +1 -1
  25. package/dist/assist/ask.d.ts +35 -0
  26. package/dist/assist/ask.d.ts.map +1 -0
  27. package/dist/assist/ask.js +346 -0
  28. package/dist/assist/ask.js.map +1 -0
  29. package/dist/assist/facts.d.ts +5 -0
  30. package/dist/assist/facts.d.ts.map +1 -0
  31. package/dist/assist/facts.js +237 -0
  32. package/dist/assist/facts.js.map +1 -0
  33. package/dist/assist/merge-ask-proposal.d.ts +9 -0
  34. package/dist/assist/merge-ask-proposal.d.ts.map +1 -0
  35. package/dist/assist/merge-ask-proposal.js +57 -0
  36. package/dist/assist/merge-ask-proposal.js.map +1 -0
  37. package/dist/assist/types.d.ts +60 -0
  38. package/dist/assist/types.d.ts.map +1 -0
  39. package/dist/assist/types.js +57 -0
  40. package/dist/assist/types.js.map +1 -0
  41. package/dist/assist/validate.d.ts +4 -0
  42. package/dist/assist/validate.d.ts.map +1 -0
  43. package/dist/assist/validate.js +319 -0
  44. package/dist/assist/validate.js.map +1 -0
  45. package/dist/cli.js +29 -6
  46. package/dist/cli.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/isolation.d.ts +1 -1
  52. package/dist/isolation.d.ts.map +1 -1
  53. package/dist/journey/collect.js +2 -2
  54. package/dist/journey/collect.js.map +1 -1
  55. package/dist/journey/coverage.js +3 -3
  56. package/dist/journey/coverage.js.map +1 -1
  57. package/dist/known-packs.d.ts +1 -1
  58. package/dist/known-packs.d.ts.map +1 -1
  59. package/dist/known-packs.js +1 -1
  60. package/dist/known-packs.js.map +1 -1
  61. package/dist/live.d.ts +2 -1
  62. package/dist/live.d.ts.map +1 -1
  63. package/dist/live.js +239 -2
  64. package/dist/live.js.map +1 -1
  65. package/dist/magit/magit-pack-service.d.ts +167 -0
  66. package/dist/magit/magit-pack-service.d.ts.map +1 -0
  67. package/dist/magit/magit-pack-service.js +699 -0
  68. package/dist/magit/magit-pack-service.js.map +1 -0
  69. package/dist/magit/pack-to-patchset.d.ts +45 -0
  70. package/dist/magit/pack-to-patchset.d.ts.map +1 -0
  71. package/dist/magit/pack-to-patchset.js +196 -0
  72. package/dist/magit/pack-to-patchset.js.map +1 -0
  73. package/dist/magit/package-catalog-bridge.d.ts +58 -0
  74. package/dist/magit/package-catalog-bridge.d.ts.map +1 -0
  75. package/dist/magit/package-catalog-bridge.js +220 -0
  76. package/dist/magit/package-catalog-bridge.js.map +1 -0
  77. package/dist/magit/proposal-to-pack.d.ts +22 -0
  78. package/dist/magit/proposal-to-pack.d.ts.map +1 -0
  79. package/dist/magit/proposal-to-pack.js +68 -0
  80. package/dist/magit/proposal-to-pack.js.map +1 -0
  81. package/dist/mongo-metadata-store.d.ts.map +1 -1
  82. package/dist/mongo-metadata-store.js +11 -3
  83. package/dist/mongo-metadata-store.js.map +1 -1
  84. package/dist/openapi/openapi.json +665 -1
  85. package/dist/org-sources.d.ts +14 -0
  86. package/dist/org-sources.d.ts.map +1 -0
  87. package/dist/org-sources.js +31 -0
  88. package/dist/org-sources.js.map +1 -0
  89. package/dist/pipeline-compile.d.ts +51 -0
  90. package/dist/pipeline-compile.d.ts.map +1 -0
  91. package/dist/pipeline-compile.js +203 -0
  92. package/dist/pipeline-compile.js.map +1 -0
  93. package/dist/platform.d.ts +22 -1
  94. package/dist/platform.d.ts.map +1 -1
  95. package/dist/platform.js +150 -21
  96. package/dist/platform.js.map +1 -1
  97. package/dist/routes/ai-services.d.ts +4 -0
  98. package/dist/routes/ai-services.d.ts.map +1 -0
  99. package/dist/routes/ai-services.js +239 -0
  100. package/dist/routes/ai-services.js.map +1 -0
  101. package/dist/routes/assist.d.ts +4 -0
  102. package/dist/routes/assist.d.ts.map +1 -0
  103. package/dist/routes/assist.js +75 -0
  104. package/dist/routes/assist.js.map +1 -0
  105. package/dist/routes/connector-invocations.js +2 -2
  106. package/dist/routes/data-journey.js +11 -11
  107. package/dist/routes/data-journey.js.map +1 -1
  108. package/dist/routes/intelligence.d.ts.map +1 -1
  109. package/dist/routes/intelligence.js +19 -1
  110. package/dist/routes/intelligence.js.map +1 -1
  111. package/dist/routes/memory.d.ts.map +1 -1
  112. package/dist/routes/memory.js +343 -41
  113. package/dist/routes/memory.js.map +1 -1
  114. package/dist/routes/metadata.d.ts.map +1 -1
  115. package/dist/routes/metadata.js +800 -8
  116. package/dist/routes/metadata.js.map +1 -1
  117. package/dist/routes/pipelines.d.ts.map +1 -1
  118. package/dist/routes/pipelines.js +28 -3
  119. package/dist/routes/pipelines.js.map +1 -1
  120. package/dist/routes/relationships.d.ts.map +1 -1
  121. package/dist/routes/relationships.js +29 -0
  122. package/dist/routes/relationships.js.map +1 -1
  123. package/dist/routes/simulation.d.ts +7 -0
  124. package/dist/routes/simulation.d.ts.map +1 -0
  125. package/dist/routes/simulation.js +22 -0
  126. package/dist/routes/simulation.js.map +1 -0
  127. package/dist/simulation.d.ts +26 -0
  128. package/dist/simulation.d.ts.map +1 -0
  129. package/dist/simulation.js +46 -0
  130. package/dist/simulation.js.map +1 -0
  131. package/openapi/openapi.json +665 -1
  132. package/package.json +19 -10
package/dist/platform.js CHANGED
@@ -7,16 +7,18 @@ import { createInMemoryMetadataStore, createMetadataClient, } from "@x12i/memori
7
7
  import { createMongoContentReader, createMongoContentWriter, createMongoAbstractWriter, createMongoDataPlane, } from "@x12i/memorix-data";
8
8
  import { createMongoRelationshipStore } from "@x12i/memorix-relationship-store";
9
9
  import { createRelationshipEngine, } from "@x12i/memorix-relationships";
10
- import { createMemoryCollector, createMongoMemoryRunStore, createMongoMemoryScheduleStore, createStaticCredentialProvider, createOpxFixtureConnector, createInMemoryConnectorRegistry, createInMemoryPushEnvelopeStore, tickMemorySchedules, } from "@x12i/memorix-memory";
10
+ import { createMemoryCollector, createMongoMemoryRunStore, createMongoMemoryScheduleStore, createMongoOrgRuntimeSourceStore, createInMemoryOrgRuntimeSourceStore, createStaticCredentialProvider, createOpxRestConnector, createKnowxRestConnector, createInMemoryConnectorRegistry, createInMemoryPushEnvelopeStore, tickMemorySchedules, } from "@x12i/memorix-memory";
11
11
  import { createFixtureConnector } from "@x12i/memorix-connector-sdk";
12
12
  import { createGovernedCredentialProvider, } from "@x12i/credorix-client";
13
13
  import { createIntelligenceArtifactPersistence, createMongoRunLedger, } from "@x12i/memorix-intelligence";
14
- import { createMongoRunLedger as createPipelineLedger, createPipelineRuntime, createLivePortRegistry, } from "@x12i/memorix-pipeline/v2";
14
+ import { createMongoRunLedger as createPipelineLedger, createPipelineRuntime, createLivePortRegistry, loadDataRef, } from "@x12i/memorix-pipeline/v2";
15
15
  import { ServiceError } from "./errors.js";
16
- import { memoryPullFetch } from "./live.js";
16
+ import { memoryPullFetch, serviceInvokePorts } from "./live.js";
17
+ import { resolveKnowxWorkerBaseUrl } from "./pipeline-compile.js";
17
18
  import { createMongoMetadataStore, } from "./mongo-metadata-store.js";
18
19
  import { catalogFromMetadataClient, relationshipMetadataResolver, } from "./catalog-bridge.js";
19
20
  import { assertSafeSandboxOrgId, recordCreatedDatabase, } from "./isolation.js";
21
+ import { createMagitPackService, isMetadataMagitEnabled, resolveMagitRepoRootParent, } from "./magit/magit-pack-service.js";
20
22
  export class PlatformStartupError extends ServiceError {
21
23
  constructor(message) {
22
24
  super("PLATFORM_STARTUP_FAILED", message, 503);
@@ -31,10 +33,11 @@ export async function createMemorixPlatform(deps) {
31
33
  const ledgers = new Map();
32
34
  const intelStores = new Map();
33
35
  const portsCache = new Map();
36
+ const orgRuntimeSourceStores = new Map();
34
37
  let durableMetadata = null;
35
38
  // Global framework connector registry (manifests + runtimes, no secrets).
36
39
  const connectorRegistry = createInMemoryConnectorRegistry({
37
- "conformance-fixture": createFixtureConnector([
40
+ "sdk-conformance": createFixtureConnector([
38
41
  { id: "demo-1", body: { name: "demo" } },
39
42
  ]),
40
43
  });
@@ -82,16 +85,16 @@ export async function createMemorixPlatform(deps) {
82
85
  if (deps.isolation) {
83
86
  assertSafeSandboxOrgId(deps.isolation.orgId);
84
87
  }
88
+ const durableMetadataDbName = deps.isolation
89
+ ? deps.isolation.isolatedMetadataDb
90
+ : "memorix_platform_metadata";
85
91
  let metadata;
86
92
  if (deps.mode === "prod" || (client && !deps.allowMemoryMetadata)) {
87
- const metaDbName = deps.isolation
88
- ? deps.isolation.isolatedMetadataDb
89
- : "memorix_platform_metadata";
90
93
  if (deps.isolation) {
91
94
  // Touch creates DB; record in ledger
92
- recordCreatedDatabase(deps.isolation, metaDbName);
95
+ recordCreatedDatabase(deps.isolation, durableMetadataDbName);
93
96
  }
94
- const metaDb = client.db(metaDbName);
97
+ const metaDb = client.db(durableMetadataDbName);
95
98
  durableMetadata = createMongoMetadataStore(metaDb);
96
99
  await durableMetadata.hydrate();
97
100
  metadata = createMetadataClient(durableMetadata);
@@ -144,6 +147,16 @@ export async function createMemorixPlatform(deps) {
144
147
  intelStores.set(orgId, store);
145
148
  return store;
146
149
  }
150
+ function orgRuntimeSourcesFor(orgId) {
151
+ const existing = orgRuntimeSourceStores.get(orgId);
152
+ if (existing)
153
+ return existing;
154
+ const store = client
155
+ ? createMongoOrgRuntimeSourceStore(client, orgId)
156
+ : createInMemoryOrgRuntimeSourceStore(orgId);
157
+ orgRuntimeSourceStores.set(orgId, store);
158
+ return store;
159
+ }
147
160
  function portsFor(scope) {
148
161
  if (!client) {
149
162
  throw new ServiceError("CANONICAL_PORT_MISSING", "Mongo client required for data/relationship/memory/pipeline ports", 503);
@@ -184,6 +197,7 @@ export async function createMemorixPlatform(deps) {
184
197
  });
185
198
  const runStore = createMongoMemoryRunStore(client, scope.orgId);
186
199
  const scheduleStore = createMongoMemoryScheduleStore(client, scope.orgId);
200
+ const orgRuntimeSources = orgRuntimeSourcesFor(scope.orgId);
187
201
  const memory = createMemoryCollector({
188
202
  writer,
189
203
  reader,
@@ -195,24 +209,30 @@ export async function createMemorixPlatform(deps) {
195
209
  "knowx-source-local": { token: "local-acceptance-token" },
196
210
  }),
197
211
  metadata: {
198
- resolveSource(sourceId, agentIds) {
212
+ async resolveSource(sourceId, agentIds) {
199
213
  const def = metadata.getDefinition(agentIds, "sources", sourceId);
200
- return def?.definition ?? null;
214
+ if (def?.definition) {
215
+ return def.definition;
216
+ }
217
+ const orgDoc = await orgRuntimeSources.get(sourceId);
218
+ if (!orgDoc)
219
+ return null;
220
+ if (agentIds.length &&
221
+ orgDoc.agentIds.length &&
222
+ !agentIds.some((a) => orgDoc.agentIds.includes(a))) {
223
+ return null;
224
+ }
225
+ return orgDoc.definition;
201
226
  },
202
227
  },
203
- connectors: {
204
- "opx-fixture": createOpxFixtureConnector({
205
- fetchImpl: memoryPullFetch,
206
- }),
207
- "rest-fixture": createOpxFixtureConnector({
228
+ frameworkConnectors: {
229
+ "opx-rest": createOpxRestConnector({
208
230
  fetchImpl: memoryPullFetch,
209
231
  }),
210
- "knowx-fixture": createOpxFixtureConnector({
232
+ "knowx-rest": createKnowxRestConnector({
211
233
  fetchImpl: memoryPullFetch,
212
234
  }),
213
- },
214
- frameworkConnectors: {
215
- "conformance-fixture": connectorRegistry.resolveRuntime("conformance-fixture") ??
235
+ "sdk-conformance": connectorRegistry.resolveRuntime("sdk-conformance") ??
216
236
  createFixtureConnector([{ id: "demo-1", body: { name: "demo" } }]),
217
237
  },
218
238
  pushEnvelopeStore: createInMemoryPushEnvelopeStore(),
@@ -233,13 +253,65 @@ export async function createMemorixPlatform(deps) {
233
253
  relationshipEngine: relationships,
234
254
  honorForceFail: true,
235
255
  });
256
+ const flattenDataRefs = async (inputs) => {
257
+ const out = { ...inputs };
258
+ for (const [key, value] of Object.entries(inputs)) {
259
+ if (value &&
260
+ typeof value === "object" &&
261
+ "kind" in value &&
262
+ (value.kind === "inline" ||
263
+ value.kind === "artifact")) {
264
+ try {
265
+ const loaded = await loadDataRef(value, pipelineLedgerFor(scope.orgId).artifacts, scope.orgId);
266
+ out[key] = loaded;
267
+ if (loaded && typeof loaded === "object" && !Array.isArray(loaded)) {
268
+ const body = loaded.body;
269
+ const nested = loaded.kind === "remote" && body
270
+ ? body
271
+ : loaded;
272
+ if (nested && typeof nested === "object" && !Array.isArray(nested)) {
273
+ Object.assign(out, nested);
274
+ }
275
+ }
276
+ }
277
+ catch {
278
+ /* leave as-is */
279
+ }
280
+ }
281
+ }
282
+ return out;
283
+ };
284
+ const analyzeViaWorker = async (req) => {
285
+ const c = (req.config ?? {});
286
+ const endpoint = String(c.endpoint ?? resolveKnowxWorkerBaseUrl()).replace(/\/+$/, "");
287
+ const flatInputs = await flattenDataRefs((req.inputs ?? {}));
288
+ return serviceInvokePorts.invokeRemote({
289
+ ...req,
290
+ inputs: flatInputs,
291
+ config: {
292
+ ...c,
293
+ endpoint,
294
+ serviceId: c.serviceId ?? c.service,
295
+ operation: c.operation ?? c.serviceId,
296
+ memorixAccess: c.memorixAccess,
297
+ },
298
+ });
299
+ };
300
+ const effectiveMeta = metadata.resolveEffective(scope.agentIds);
301
+ const serviceDefs = (effectiveMeta.effective ?? [])
302
+ .filter((e) => e.kind === "services")
303
+ .map((e) => e.definition);
236
304
  const pipeline = createPipelineRuntime({
237
305
  mode: deps.mode === "prod" ? "prod" : "dev",
238
306
  orgId: scope.orgId,
239
307
  agentIds: scope.agentIds,
240
308
  operationalDb: operationalDbFor(scope.orgId),
241
309
  ledger: pipelineLedgerFor(scope.orgId),
242
- ports: portRegistry,
310
+ ports: {
311
+ ...portRegistry,
312
+ analyze: analyzeViaWorker,
313
+ },
314
+ metadataServices: { services: serviceDefs },
243
315
  });
244
316
  const orgPorts = {
245
317
  catalog,
@@ -250,6 +322,7 @@ export async function createMemorixPlatform(deps) {
250
322
  memory,
251
323
  memoryRunStore: runStore,
252
324
  memoryScheduleStore: scheduleStore,
325
+ orgRuntimeSources,
253
326
  pipeline,
254
327
  };
255
328
  portsCache.set(cacheKey, orgPorts);
@@ -322,11 +395,50 @@ export async function createMemorixPlatform(deps) {
322
395
  }
323
396
  };
324
397
  }
398
+ const magitMongoUri = deps.mongoUri?.trim() || process.env.MONGO_URI?.trim() || "";
399
+ const magit = isMetadataMagitEnabled() && Boolean(durableMetadata) && magitMongoUri
400
+ ? createMagitPackService({
401
+ repoRootParent: resolveMagitRepoRootParent(),
402
+ mongoUrlEnv: "MONGO_URI",
403
+ mongoUri: magitMongoUri,
404
+ metadataDb: durableMetadataDbName,
405
+ storageUrl: process.env.MAGIT_STORAGE_URL?.trim() || undefined,
406
+ storageTokenEnv: process.env.MAGIT_STORAGE_TOKEN_ENV?.trim() || "MAGIT_TOKEN",
407
+ log: (msg, extra) => {
408
+ // Platform has no Fastify logger here; use stderr for ops visibility.
409
+ if (extra)
410
+ console.error(msg, extra);
411
+ else
412
+ console.error(msg);
413
+ },
414
+ })
415
+ : null;
325
416
  return {
326
417
  mode: deps.mode,
327
418
  client,
328
419
  metadata,
329
420
  isolation: deps.isolation ?? null,
421
+ magit,
422
+ async rehydrateMetadata() {
423
+ if (durableMetadata)
424
+ await durableMetadata.hydrate();
425
+ },
426
+ stampAgentLineage(agentId, lineage) {
427
+ if (!durableMetadata)
428
+ return;
429
+ const pack = durableMetadata.getAgentPack(agentId);
430
+ if (!pack)
431
+ return;
432
+ durableMetadata.replaceAgentPack(agentId, pack.checksum, pack.definitions, new Date().toISOString(), {
433
+ magitCommit: lineage.magitCommit ?? pack.magitCommit,
434
+ magitRelease: lineage.magitRelease ?? pack.magitRelease,
435
+ });
436
+ },
437
+ appendInstallLedger(entry) {
438
+ if (!durableMetadata)
439
+ return;
440
+ durableMetadata.appendLedger(entry);
441
+ },
330
442
  connectorRegistry,
331
443
  credorix,
332
444
  operationalDbFor,
@@ -334,6 +446,7 @@ export async function createMemorixPlatform(deps) {
334
446
  pipelineLedgerFor,
335
447
  intelligenceArtifactsFor,
336
448
  portsFor,
449
+ orgRuntimeSourcesFor,
337
450
  startMemoryScheduleTicker,
338
451
  async close() {
339
452
  if (scheduleTicker) {
@@ -346,12 +459,27 @@ export async function createMemorixPlatform(deps) {
346
459
  await client.close();
347
460
  },
348
461
  diagnostics(scope) {
462
+ const magitOn = Boolean(magit);
463
+ let magitDisabledReason = null;
464
+ if (!magitOn) {
465
+ if (!isMetadataMagitEnabled())
466
+ magitDisabledReason = "METADATA_MAGIT=0";
467
+ else if (!durableMetadata) {
468
+ magitDisabledReason = "durable Mongo metadata is not configured";
469
+ }
470
+ else if (!magitMongoUri)
471
+ magitDisabledReason = "MONGO_URI is not set";
472
+ else
473
+ magitDisabledReason = "unavailable";
474
+ }
349
475
  return {
350
476
  mode: deps.mode,
351
477
  scope,
352
478
  hasMongo: Boolean(client),
353
479
  durableMetadata: Boolean(durableMetadata),
354
480
  credorix: Boolean(credorix),
481
+ magit: magitOn,
482
+ magitDisabledReason,
355
483
  isolation: deps.isolation
356
484
  ? {
357
485
  orgId: deps.isolation.orgId,
@@ -368,6 +496,7 @@ export async function createMemorixPlatform(deps) {
368
496
  "@x12i/memorix-pipeline/v2",
369
497
  "@x12i/memorix-intelligence",
370
498
  "@x12i/credorix-client",
499
+ ...(magit ? ["@x12i/magit"] : []),
371
500
  ],
372
501
  };
373
502
  },
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAW,MAAM,SAAS,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GAErB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GAIrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EACL,wBAAwB,GAEzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,mCAAmC,EACnC,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,EAC/B,+BAA+B,EAC/B,mBAAmB,GAMpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,gCAAgC,GAEjC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qCAAqC,EACrC,oBAAoB,GAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,IAAI,oBAAoB,EAC5C,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,GAKZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EACL,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAE7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,+BAA+B,CAAC;AAyEvC,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,yBAAyB,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAkB;IAElB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChD,MAAM,IAAI,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2C,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAiC,CAAC;IACxE,IAAI,eAAe,GAAgC,IAAI,CAAC;IAExD,0EAA0E;IAC1E,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;QACxD,iBAAiB,EAAE,sBAAsB,CAAC;YACxC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;SACzC,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAoB,CAC5B,sFAAsF,CACvF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,MAAM,IAAI,oBAAoB,CAC5B,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,oBAAoB,CAC5B,4EAA4E,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1E,MAAM,gBAAgB,GACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,iBAAiB,CAAC;IAC9D,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,kBAAkB;QACjC,CAAC,CAAC;YACE,QAAQ,EAAE,gCAAgC,CAAC;gBACzC,UAAU,EAAE,kBAAkB;gBAC9B,QAAQ,EAAE,gBAAgB;gBAC1B,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC;YACF,aAAa,EAAE;gBACb,UAAU,EAAE,kBAAkB;gBAC9B,QAAQ,EAAE,gBAAgB;gBAC1B,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE;SACF;QACH,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,oBAAoB,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS;QAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB;QACnC,CAAC,CAAC,2BAA2B,CAAC;IAEhC,IAAI,QAA+B,CAAC;IACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,qCAAqC;YACrC,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,MAAM,GAAG,MAAO,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC;QACjD,eAAe,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;QAChC,QAAQ,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,oBAAoB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAa;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,qDAAqD,EACrD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACnC,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,wCAAwC,EACxC,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,aAAa,CAAC,KAAa;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,YAAY,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,iBAAiB,CAAC,KAAa;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,wCAAwC,EACxC,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,SAAS,wBAAwB,CAAC,KAAa;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,MAAM,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,qCAAqC,CAAC;YAClD,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAC3C,KAAK;YACL,MAAM;YACN,oBAAoB,EAAE,KAAK;YAC3B,SAAS,EAAE,WAAW,KAAK,EAAE;SAC9B,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,oBAAoB,CAAC,KAAa;QACzC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,gCAAgC,CAAC,MAAM,EAAE,KAAK,CAAC;YACjD,CAAC,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAC;QAC/C,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,QAAQ,CAAC,KAAmB;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,mEAAmE,EACnE,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;QAEpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAU,EAAE,CAAC;gBAC5E,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,wBAAwB,CAAC;YAC7C,MAAM;YACN,OAAO;YACP,gBAAgB,EAAE,4BAA4B,CAAC,QAAQ,CAAC;SACzD,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,4BAA4B,CAAC;YAC5C,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE;gBACP,KAAK,CAAC,MAAM;oBACV,OAAO,EAAE,YAAY,EAAE,QAAiB,EAAE,CAAC;gBAC7C,CAAC;aACF;SACF,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC;YAC1C,MAAM;YACN,OAAO;YACP,KAAK;YACL,iBAAiB,EAAE,QAAQ;SAC5B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACnC,MAAM;YACN,MAAM;YACN,QAAQ;YACR,6EAA6E;YAC7E,2EAA2E;YAC3E,WAAW,EAAE,8BAA8B,CAAC;gBAC1C,kBAAkB,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;gBACvD,oBAAoB,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;aAC1D,CAAC;YACF,QAAQ,EAAE;gBACR,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ;oBACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAClE,IAAI,GAAG,EAAE,UAAU,EAAE,CAAC;wBACpB,OAAO,GAAG,CAAC,UAA8B,CAAC;oBAC5C,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACrD,IAAI,CAAC,MAAM;wBAAE,OAAO,IAAI,CAAC;oBACzB,IACE,QAAQ,CAAC,MAAM;wBACf,MAAM,CAAC,QAAQ,CAAC,MAAM;wBACtB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAClD,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,OAAO,MAAM,CAAC,UAAU,CAAC;gBAC3B,CAAC;aACF;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,sBAAsB,CAAC;oBACjC,SAAS,EAAE,eAAe;iBAC3B,CAAC;gBACF,YAAY,EAAE,wBAAwB,CAAC;oBACrC,SAAS,EAAE,eAAe;iBAC3B,CAAC;gBACF,iBAAiB,EACf,iBAAiB,CAAC,cAAc,CAAC,iBAAiB,CAAC;oBACnD,sBAAsB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;aACrE;YACD,iBAAiB,EAAE,+BAA+B,EAAE;YACpD,GAAG,CAAC,QAAQ;gBACV,CAAC,CAAC;oBACE,QAAQ,EAAE;wBACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa;qBACtC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,sBAAsB,CAAC;YAC1C,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;YACvD,SAAS,EAAE,MAAM;YACjB,MAAM;YACN,MAAM;YACN,kBAAkB,EAAE,aAAa;YACjC,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,KAAK,EAC3B,MAA+B,EACG,EAAE;YACpC,MAAM,GAAG,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;YACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IACE,KAAK;oBACL,OAAO,KAAK,KAAK,QAAQ;oBACzB,MAAM,IAAK,KAAgB;oBAC3B,CAAE,KAA2B,CAAC,IAAI,KAAK,QAAQ;wBAC5C,KAA2B,CAAC,IAAI,KAAK,UAAU,CAAC,EACnD,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,KAAc,EACd,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,EACxC,KAAK,CAAC,KAAK,CACZ,CAAC;wBAAY,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;wBAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;4BACnE,MAAM,IAAI,GAAI,MAA4C,CAAC,IAAI,CAAC;4BAChE,MAAM,MAAM,GACT,MAA4B,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI;gCACrD,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC;4BACb,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gCACnE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAiC,CAAC,CAAC;4BACxD,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,iBAAiB;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAgB,KAAK,EAAE,GAAyB,EAAE,EAAE;YACxE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,CACrB,CAAC,CAAC,QAAQ,IAAI,yBAAyB,EAAE,CAC1C,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtB,MAAM,UAAU,GAAG,MAAM,eAAe,CACtC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4B,CAC9C,CAAC;YACF,OAAO,kBAAkB,CAAC,YAAY,CAAC;gBACrC,GAAG,GAAG;gBACN,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE;oBACN,GAAG,CAAC;oBACJ,QAAQ;oBACR,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO;oBACnC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS;oBACrC,aAAa,EAAE,CAAC,CAAC,aAAa;iBAC/B;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,CAAC,aAAa,CAAC,SAAS,IAAI,EAAE,CAAC;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAE5B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;YAC5C,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC;YACtC,KAAK,EAAE;gBACL,GAAG,YAAY;gBACf,OAAO,EAAE,gBAAgB;aAC1B;YACD,gBAAgB,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;SAC5C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAa;YACzB,OAAO;YACP,MAAM;YACN,MAAM;YACN,cAAc;YACd,aAAa;YACb,MAAM;YACN,cAAc,EAAE,QAAQ;YACxB,mBAAmB,EAAE,aAAa;YAClC,iBAAiB;YACjB,QAAQ;SACT,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,cAAc,GAA0C,IAAI,CAAC;IAEjE,SAAS,yBAAyB,CAAC,IAGlC;QACC,IAAI,cAAc,EAAE,CAAC;YACnB,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;QACzB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,MAAM,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,mBAAmB,OAAO,CAAC,GAAG,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC;QAErB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC;gBACrD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;qBACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;qBAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;qBACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,aAAa,GAAG,8BAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACnE,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACpE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;oBAC/C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;wBACpB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;wBAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;wBACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACb,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC1B,CAAC;oBACD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;wBAC7C,MAAM,QAAQ,GACZ,QAAQ,KAAK,GAAG;4BACd,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,QAAQ;4BAC9B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC1C,IAAI,KAAe,CAAC;wBACpB,IAAI,CAAC;4BACH,KAAK,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACxC,CAAC;wBAAC,MAAM,CAAC;4BACP,SAAS;wBACX,CAAC;wBACD,MAAM,mBAAmB,CAAC;4BACxB,KAAK;4BACL,aAAa,EAAE,KAAK,CAAC,mBAAmB;4BACxC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;4BACrC,OAAO;yBACR,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4DAA4D;YAC9D,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,QAAQ,EAAE,CAAC;QAChB,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,UAAU;YAAE,cAAc,CAAC,KAAK,EAAE,CAAC;QACvE,OAAO,GAAG,EAAE;YACV,IAAI,cAAc,EAAE,CAAC;gBACnB,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC9B,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/D,MAAM,KAAK,GACT,sBAAsB,EAAE,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,aAAa;QACnE,CAAC,CAAC,sBAAsB,CAAC;YACrB,cAAc,EAAE,0BAA0B,EAAE;YAC5C,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,qBAAqB;YACjC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,SAAS;YAC9D,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,aAAa;YAC7E,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAClB,sEAAsE;gBACtE,IAAI,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;oBAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;SACF,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM;QACN,QAAQ;QACR,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,KAAK;QACL,KAAK,CAAC,iBAAiB;YACrB,IAAI,eAAe;gBAAE,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;QACD,iBAAiB,CAAC,OAAO,EAAE,OAAO;YAChC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAC7B,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,eAAe,CAAC,gBAAgB,CAC9B,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,EAChB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACxB;gBACE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;gBACpD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY;aACxD,CACF,CAAC;QACJ,CAAC;QACD,mBAAmB,CAAC,KAAK;YACvB,IAAI,CAAC,eAAe;gBAAE,OAAO;YAC7B,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,iBAAiB;QACjB,QAAQ;QACR,gBAAgB;QAChB,aAAa;QACb,iBAAiB;QACjB,wBAAwB;QACxB,QAAQ;QACR,oBAAoB;QACpB,yBAAyB;QACzB,KAAK,CAAC,KAAK;YACT,IAAI,cAAc,EAAE,CAAC;gBACnB,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC9B,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,IAAI,eAAe;gBAAE,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;YACnD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACnD,CAAC;QACD,WAAW,CAAC,KAAK;YACf,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,mBAAmB,GAAkB,IAAI,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,sBAAsB,EAAE;oBAAE,mBAAmB,GAAG,kBAAkB,CAAC;qBACnE,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1B,mBAAmB,GAAG,0CAA0C,CAAC;gBACnE,CAAC;qBAAM,IAAI,CAAC,aAAa;oBAAE,mBAAmB,GAAG,sBAAsB,CAAC;;oBACnE,mBAAmB,GAAG,aAAa,CAAC;YAC3C,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK;gBACL,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;gBACzB,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC;gBACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;gBAC3B,KAAK,EAAE,OAAO;gBACd,mBAAmB;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACvB,CAAC,CAAC;wBACE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;wBAC3B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB;wBAC7C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB;qBAC7C;oBACH,CAAC,CAAC,IAAI;gBACR,QAAQ,EAAE;oBACR,gCAAgC;oBAChC,uBAAuB;oBACvB,oBAAoB;oBACpB,6BAA6B;oBAC7B,sBAAsB;oBACtB,2BAA2B;oBAC3B,4BAA4B;oBAC5B,uBAAuB;oBACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FastifyInstance } from "fastify";
2
+ import type { MemorixPlatform } from "../platform.js";
3
+ export declare function registerAiServicesRoutes(app: FastifyInstance, _platform: MemorixPlatform): Promise<void>;
4
+ //# sourceMappingURL=ai-services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-services.d.ts","sourceRoot":"","sources":["../../src/routes/ai-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAyDtD,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA2Tf"}
@@ -0,0 +1,239 @@
1
+ import { ServiceError } from "../errors.js";
2
+ import { createAiServicesClient } from "../ai-services/client.js";
3
+ import { resolveAiServiceOriginUrl, resolveConfiguredAiServiceOrigins, } from "../ai-services/config.js";
4
+ const client = createAiServicesClient();
5
+ function originForType(type) {
6
+ const url = resolveAiServiceOriginUrl(type);
7
+ if (!url) {
8
+ throw new ServiceError("AI_SERVICE_NOT_CONFIGURED", `No origin configured for aiServiceType "${type}" (set FUNCX_URL / AI_SKILLS_URL / AI_TASKS_URL / GRAPH_ENGINE_URL)`, 503);
9
+ }
10
+ return url;
11
+ }
12
+ function correlationFrom(req) {
13
+ const header = req.headers["x-correlation-id"];
14
+ if (typeof header === "string" && header.trim())
15
+ return header.trim();
16
+ if (Array.isArray(header) && typeof header[0] === "string" && header[0].trim()) {
17
+ return header[0].trim();
18
+ }
19
+ const body = req.body && typeof req.body === "object" ? req.body : null;
20
+ if (typeof body?.correlationId === "string" && body.correlationId.trim()) {
21
+ return body.correlationId.trim();
22
+ }
23
+ return undefined;
24
+ }
25
+ function throwIfProxyFailed(status, body, code, fallback) {
26
+ if (status >= 200 && status < 300)
27
+ return;
28
+ const errMsg = body &&
29
+ typeof body === "object" &&
30
+ body.error?.message
31
+ ? String(body.error.message)
32
+ : fallback;
33
+ throw new ServiceError(code, errMsg, status >= 400 && status < 600 ? status : 502, body);
34
+ }
35
+ export async function registerAiServicesRoutes(app, _platform) {
36
+ /** List configured origins + live descriptor/health when reachable. */
37
+ app.get("/api/ai-services", async () => {
38
+ const configured = resolveConfiguredAiServiceOrigins();
39
+ const services = await Promise.all(configured.map(async (origin) => {
40
+ if (!origin.url) {
41
+ return {
42
+ aiServiceType: origin.aiServiceType,
43
+ env: origin.env,
44
+ url: null,
45
+ configured: false,
46
+ reachable: false,
47
+ healthOk: false,
48
+ capabilities: null,
49
+ descriptor: null,
50
+ error: null,
51
+ };
52
+ }
53
+ try {
54
+ const health = await client.getHealth(origin.url);
55
+ const descriptor = health.ok
56
+ ? await client.getDescriptor(origin.url)
57
+ : null;
58
+ return {
59
+ aiServiceType: origin.aiServiceType,
60
+ env: origin.env,
61
+ url: origin.url,
62
+ configured: true,
63
+ reachable: health.ok,
64
+ healthOk: health.ok,
65
+ capabilities: descriptor?.capabilities ?? null,
66
+ descriptor,
67
+ error: health.ok ? null : `health HTTP ${health.status}`,
68
+ };
69
+ }
70
+ catch (err) {
71
+ return {
72
+ aiServiceType: origin.aiServiceType,
73
+ env: origin.env,
74
+ url: origin.url,
75
+ configured: true,
76
+ reachable: false,
77
+ healthOk: false,
78
+ capabilities: null,
79
+ descriptor: null,
80
+ error: err instanceof Error ? err.message : String(err),
81
+ };
82
+ }
83
+ }));
84
+ return { ok: true, services };
85
+ });
86
+ app.get("/api/ai-services/:type/items", async (req) => {
87
+ const type = req.params.type?.trim();
88
+ if (!type)
89
+ throw new ServiceError("VALIDATION", "type required", 400);
90
+ const base = originForType(type);
91
+ const q = req.query ?? {};
92
+ const items = await client.listItems(base, {
93
+ q: q.q,
94
+ tag: q.tag,
95
+ limit: q.limit ? Number(q.limit) : undefined,
96
+ cursor: q.cursor,
97
+ });
98
+ return { ok: true, aiServiceType: type, url: base, items };
99
+ });
100
+ app.post("/api/ai-services/:type/items", async (req) => {
101
+ const type = req.params.type?.trim();
102
+ if (!type)
103
+ throw new ServiceError("VALIDATION", "type required", 400);
104
+ const base = originForType(type);
105
+ const { status, body } = await client.request(base, "POST", "/ai-services/v1/items", req.body ?? {}, correlationFrom(req));
106
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `create HTTP ${status}`);
107
+ return { ok: true, aiServiceType: type, url: base, result: body };
108
+ });
109
+ app.get("/api/ai-services/:type/items/:id", async (req) => {
110
+ const type = req.params.type?.trim();
111
+ const id = req.params.id?.trim();
112
+ if (!type || !id) {
113
+ throw new ServiceError("VALIDATION", "type and id required", 400);
114
+ }
115
+ const base = originForType(type);
116
+ const item = await client.getItem(base, id);
117
+ return { ok: true, aiServiceType: type, url: base, item };
118
+ });
119
+ app.patch("/api/ai-services/:type/items/:id", async (req) => {
120
+ const type = req.params.type?.trim();
121
+ const id = req.params.id?.trim();
122
+ if (!type || !id) {
123
+ throw new ServiceError("VALIDATION", "type and id required", 400);
124
+ }
125
+ const base = originForType(type);
126
+ const { status, body } = await client.request(base, "PATCH", `/ai-services/v1/items/${encodeURIComponent(id)}`, req.body ?? {}, correlationFrom(req));
127
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `patch HTTP ${status}`);
128
+ return { ok: true, aiServiceType: type, url: base, result: body };
129
+ });
130
+ app.delete("/api/ai-services/:type/items/:id", async (req) => {
131
+ const type = req.params.type?.trim();
132
+ const id = req.params.id?.trim();
133
+ if (!type || !id) {
134
+ throw new ServiceError("VALIDATION", "type and id required", 400);
135
+ }
136
+ const base = originForType(type);
137
+ const { status, body } = await client.request(base, "DELETE", `/ai-services/v1/items/${encodeURIComponent(id)}`, req.body, correlationFrom(req));
138
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `delete HTTP ${status}`);
139
+ return { ok: true, aiServiceType: type, url: base, result: body };
140
+ });
141
+ app.post("/api/ai-services/:type/items/:id/actions/:action", async (req) => {
142
+ const type = req.params.type?.trim();
143
+ const id = req.params.id?.trim();
144
+ const action = req.params.action?.trim();
145
+ if (!type || !id || !action) {
146
+ throw new ServiceError("VALIDATION", "type, id, and action required", 400);
147
+ }
148
+ const base = originForType(type);
149
+ const { status, body } = await client.request(base, "POST", `/ai-services/v1/items/${encodeURIComponent(id)}/actions/${encodeURIComponent(action)}`, req.body ?? {}, correlationFrom(req));
150
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `action HTTP ${status}`);
151
+ return { ok: true, aiServiceType: type, url: base, result: body };
152
+ });
153
+ for (const resource of ["content", "variables", "tokens", "references"]) {
154
+ app.get(`/api/ai-services/:type/items/:id/${resource}`, async (req) => {
155
+ const type = req.params.type?.trim();
156
+ const id = req.params.id?.trim();
157
+ if (!type || !id) {
158
+ throw new ServiceError("VALIDATION", "type and id required", 400);
159
+ }
160
+ const base = originForType(type);
161
+ const qs = new URLSearchParams(req.query ?? {}).toString();
162
+ const path = `/ai-services/v1/items/${encodeURIComponent(id)}/${resource}${qs ? `?${qs}` : ""}`;
163
+ const { status, body } = await client.request(base, "GET", path, undefined, correlationFrom(req));
164
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `get ${resource} HTTP ${status}`);
165
+ return { ok: true, aiServiceType: type, url: base, result: body };
166
+ });
167
+ }
168
+ for (const resource of ["content", "variables"]) {
169
+ app.put(`/api/ai-services/:type/items/:id/${resource}`, async (req) => {
170
+ const type = req.params.type?.trim();
171
+ const id = req.params.id?.trim();
172
+ if (!type || !id) {
173
+ throw new ServiceError("VALIDATION", "type and id required", 400);
174
+ }
175
+ const base = originForType(type);
176
+ const { status, body } = await client.request(base, "PUT", `/ai-services/v1/items/${encodeURIComponent(id)}/${resource}`, req.body ?? {}, correlationFrom(req));
177
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `put ${resource} HTTP ${status}`);
178
+ return { ok: true, aiServiceType: type, url: base, result: body };
179
+ });
180
+ }
181
+ app.post("/api/ai-services/:type/items/:id/variables/declare", async (req) => {
182
+ const type = req.params.type?.trim();
183
+ const id = req.params.id?.trim();
184
+ if (!type || !id) {
185
+ throw new ServiceError("VALIDATION", "type and id required", 400);
186
+ }
187
+ const base = originForType(type);
188
+ const { status, body } = await client.request(base, "POST", `/ai-services/v1/items/${encodeURIComponent(id)}/variables/declare`, req.body ?? {}, correlationFrom(req));
189
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `declare HTTP ${status}`);
190
+ return { ok: true, aiServiceType: type, url: base, result: body };
191
+ });
192
+ app.get("/api/ai-services/:type/export", async (req) => {
193
+ const type = req.params.type?.trim();
194
+ if (!type)
195
+ throw new ServiceError("VALIDATION", "type required", 400);
196
+ const base = originForType(type);
197
+ const qs = new URLSearchParams(req.query ?? {}).toString();
198
+ const { status, body } = await client.request(base, "GET", `/ai-services/v1/export${qs ? `?${qs}` : ""}`, undefined, correlationFrom(req));
199
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `export HTTP ${status}`);
200
+ return { ok: true, aiServiceType: type, url: base, result: body };
201
+ });
202
+ app.post("/api/ai-services/:type/import/preview", async (req) => {
203
+ const type = req.params.type?.trim();
204
+ if (!type)
205
+ throw new ServiceError("VALIDATION", "type required", 400);
206
+ const base = originForType(type);
207
+ const { status, body } = await client.request(base, "POST", "/ai-services/v1/import/preview", req.body ?? {}, correlationFrom(req));
208
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `import preview HTTP ${status}`);
209
+ return { ok: true, aiServiceType: type, url: base, result: body };
210
+ });
211
+ app.post("/api/ai-services/:type/import", async (req) => {
212
+ const type = req.params.type?.trim();
213
+ if (!type)
214
+ throw new ServiceError("VALIDATION", "type required", 400);
215
+ const base = originForType(type);
216
+ const qs = new URLSearchParams(req.query ?? {}).toString();
217
+ const { status, body } = await client.request(base, "POST", `/ai-services/v1/import${qs ? `?${qs}` : ""}`, req.body ?? {}, correlationFrom(req));
218
+ throwIfProxyFailed(status, body, "AI_SERVICE_MUTATION_FAILED", `import HTTP ${status}`);
219
+ return { ok: true, aiServiceType: type, url: base, result: body };
220
+ });
221
+ /** Proxy invoke for Studio / operators (pipelines also call origins directly). */
222
+ app.post("/api/ai-services/:type/invoke", async (req) => {
223
+ const type = req.params.type?.trim();
224
+ if (!type)
225
+ throw new ServiceError("VALIDATION", "type required", 400);
226
+ const body = (req.body ?? {});
227
+ if (!body.itemId?.trim()) {
228
+ throw new ServiceError("VALIDATION", "itemId required", 400);
229
+ }
230
+ const base = originForType(type);
231
+ const correlationId = correlationFrom(req) || body.correlationId;
232
+ const result = await client.invoke(base, body, correlationId);
233
+ if (result.status < 200 || result.status >= 300) {
234
+ throw new ServiceError("AI_SERVICE_INVOKE_FAILED", result.body.error?.message ?? `invoke HTTP ${result.status}`, result.status >= 400 && result.status < 600 ? result.status : 502, result.body);
235
+ }
236
+ return { ok: true, aiServiceType: type, url: base, result: result.body };
237
+ });
238
+ }
239
+ //# sourceMappingURL=ai-services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-services.js","sourceRoot":"","sources":["../../src/routes/ai-services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FastifyInstance } from "fastify";
2
+ import type { MemorixPlatform } from "../platform.js";
3
+ export declare function registerAssistRoutes(app: FastifyInstance, platform: MemorixPlatform): Promise<void>;
4
+ //# sourceMappingURL=assist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assist.d.ts","sourceRoot":"","sources":["../../src/routes/assist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAetD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAkFf"}