@cadenza.io/service 2.17.8 → 2.17.9

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.
@@ -5682,10 +5682,29 @@ function buildActorRegistrationData(actor) {
5682
5682
  version: 1
5683
5683
  };
5684
5684
  }
5685
+ function resolveSyncServiceName(task) {
5686
+ const taskServiceName = typeof task?.serviceName === "string" ? task.serviceName.trim() : "";
5687
+ const registryServiceName = typeof CadenzaService.serviceRegistry.serviceName === "string" ? CadenzaService.serviceRegistry.serviceName.trim() : "";
5688
+ return taskServiceName || registryServiceName || void 0;
5689
+ }
5690
+ function buildIntentRegistryData(intent) {
5691
+ const name = String(intent?.name ?? "").trim();
5692
+ if (!name) {
5693
+ return null;
5694
+ }
5695
+ return {
5696
+ name,
5697
+ description: typeof intent?.description === "string" ? intent.description : "",
5698
+ input: intent?.input && typeof intent.input === "object" ? intent.input : { type: "object" },
5699
+ output: intent?.output && typeof intent.output === "object" ? intent.output : { type: "object" },
5700
+ isMeta: isMetaIntentName(name)
5701
+ };
5702
+ }
5685
5703
  var GraphSyncController = class _GraphSyncController {
5686
5704
  constructor() {
5687
5705
  this.registeredActors = /* @__PURE__ */ new Set();
5688
5706
  this.registeredActorTaskMaps = /* @__PURE__ */ new Set();
5707
+ this.registeredIntentDefinitions = /* @__PURE__ */ new Set();
5689
5708
  this.isCadenzaDBReady = false;
5690
5709
  }
5691
5710
  static get instance() {
@@ -5693,11 +5712,27 @@ var GraphSyncController = class _GraphSyncController {
5693
5712
  return this._instance;
5694
5713
  }
5695
5714
  init() {
5715
+ const insertIntentRegistryTask = this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
5716
+ "intent_registry",
5717
+ {
5718
+ onConflict: {
5719
+ target: ["name"],
5720
+ action: {
5721
+ do: "nothing"
5722
+ }
5723
+ }
5724
+ },
5725
+ { concurrency: 30 }
5726
+ ) : CadenzaService.get("dbInsertIntentRegistry");
5696
5727
  this.splitRoutinesTask = CadenzaService.createMetaTask(
5697
5728
  "Split routines for registration",
5698
5729
  async function* (ctx, emit) {
5699
5730
  const { routines } = ctx;
5700
5731
  if (!routines) return;
5732
+ const serviceName = resolveSyncServiceName();
5733
+ if (!serviceName) {
5734
+ return;
5735
+ }
5701
5736
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5702
5737
  delayMs: 2e3
5703
5738
  });
@@ -5708,7 +5743,7 @@ var GraphSyncController = class _GraphSyncController {
5708
5743
  name: routine.name,
5709
5744
  version: routine.version,
5710
5745
  description: routine.description,
5711
- serviceName: CadenzaService.serviceRegistry.serviceName,
5746
+ serviceName,
5712
5747
  isMeta: routine.isMeta
5713
5748
  },
5714
5749
  __routineName: routine.name
@@ -5750,6 +5785,10 @@ var GraphSyncController = class _GraphSyncController {
5750
5785
  function* (ctx) {
5751
5786
  const { routines } = ctx;
5752
5787
  if (!routines) return;
5788
+ const serviceName = resolveSyncServiceName();
5789
+ if (!serviceName) {
5790
+ return;
5791
+ }
5753
5792
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5754
5793
  delayMs: 3e3
5755
5794
  });
@@ -5769,7 +5808,7 @@ var GraphSyncController = class _GraphSyncController {
5769
5808
  taskVersion: nextTask.version,
5770
5809
  routineName: routine.name,
5771
5810
  routineVersion: routine.version,
5772
- serviceName: CadenzaService.serviceRegistry.serviceName
5811
+ serviceName
5773
5812
  },
5774
5813
  __routineName: routine.name,
5775
5814
  __taskName: nextTask.name
@@ -5872,6 +5911,10 @@ var GraphSyncController = class _GraphSyncController {
5872
5911
  delayMs: 3e3
5873
5912
  });
5874
5913
  const tasks = ctx.tasks;
5914
+ const serviceName = resolveSyncServiceName();
5915
+ if (!serviceName) {
5916
+ return;
5917
+ }
5875
5918
  for (const task of tasks) {
5876
5919
  if (task.registered) continue;
5877
5920
  const { __functionString, __getTagCallback } = task.export();
@@ -5901,7 +5944,7 @@ var GraphSyncController = class _GraphSyncController {
5901
5944
  retryDelay: task.retryDelay,
5902
5945
  retryDelayMax: task.retryDelayMax,
5903
5946
  retryDelayFactor: task.retryDelayFactor,
5904
- service_name: CadenzaService.serviceRegistry.serviceName,
5947
+ service_name: serviceName,
5905
5948
  signals: {
5906
5949
  emits: Array.from(task.emitsSignals),
5907
5950
  signalsToEmitAfter: Array.from(task.signalsToEmitAfter),
@@ -5949,11 +5992,15 @@ var GraphSyncController = class _GraphSyncController {
5949
5992
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5950
5993
  delayMs: 3e3
5951
5994
  });
5995
+ const serviceName = resolveSyncServiceName();
5996
+ if (!serviceName) {
5997
+ return;
5998
+ }
5952
5999
  const actors = ctx.actors ?? [];
5953
6000
  for (const actor of actors) {
5954
6001
  const data = {
5955
6002
  ...buildActorRegistrationData(actor),
5956
- service_name: CadenzaService.serviceRegistry.serviceName
6003
+ service_name: serviceName
5957
6004
  };
5958
6005
  if (!data.name) {
5959
6006
  continue;
@@ -6009,7 +6056,11 @@ var GraphSyncController = class _GraphSyncController {
6009
6056
  if (!metadata?.actorName) {
6010
6057
  return;
6011
6058
  }
6012
- const registrationKey = `${metadata.actorName}|${task.name}|${task.version}|${CadenzaService.serviceRegistry.serviceName}`;
6059
+ const serviceName = resolveSyncServiceName(task);
6060
+ if (!serviceName) {
6061
+ return;
6062
+ }
6063
+ const registrationKey = `${metadata.actorName}|${task.name}|${task.version}|${serviceName}`;
6013
6064
  if (this.registeredActorTaskMaps.has(registrationKey)) {
6014
6065
  return;
6015
6066
  }
@@ -6019,7 +6070,7 @@ var GraphSyncController = class _GraphSyncController {
6019
6070
  actor_version: 1,
6020
6071
  task_name: task.name,
6021
6072
  task_version: task.version,
6022
- service_name: CadenzaService.serviceRegistry.serviceName,
6073
+ service_name: serviceName,
6023
6074
  mode: metadata.mode,
6024
6075
  description: task.description ?? metadata.actorDescription ?? "",
6025
6076
  is_meta: metadata.actorKind === "meta" || task.isMeta === true
@@ -6074,6 +6125,10 @@ var GraphSyncController = class _GraphSyncController {
6074
6125
  function* (ctx) {
6075
6126
  const task = ctx.task;
6076
6127
  if (task.hidden || !task.register) return;
6128
+ const serviceName = resolveSyncServiceName(task);
6129
+ if (!serviceName) {
6130
+ return;
6131
+ }
6077
6132
  for (const signal of task.observedSignals) {
6078
6133
  const _signal = signal.split(":")[0];
6079
6134
  if (task.registeredSignals.has(signal)) continue;
@@ -6084,7 +6139,7 @@ var GraphSyncController = class _GraphSyncController {
6084
6139
  isGlobal,
6085
6140
  taskName: task.name,
6086
6141
  taskVersion: task.version,
6087
- serviceName: CadenzaService.serviceRegistry.serviceName
6142
+ serviceName
6088
6143
  },
6089
6144
  __taskName: task.name,
6090
6145
  __signal: signal
@@ -6110,6 +6165,46 @@ var GraphSyncController = class _GraphSyncController {
6110
6165
  { concurrency: 30 }
6111
6166
  ) : CadenzaService.get("dbInsertSignalToTaskMap"))?.then(registerSignalTask)
6112
6167
  );
6168
+ this.splitIntentsTask = CadenzaService.createMetaTask(
6169
+ "Split intents for registration",
6170
+ function* (ctx) {
6171
+ CadenzaService.debounce("meta.sync_controller.synced_resource", {
6172
+ delayMs: 3e3
6173
+ });
6174
+ const intents = Array.isArray(ctx.intents) ? ctx.intents : Array.from(CadenzaService.inquiryBroker.intents.values());
6175
+ for (const intent of intents) {
6176
+ const intentData = buildIntentRegistryData(intent);
6177
+ if (!intentData) {
6178
+ continue;
6179
+ }
6180
+ if (this.registeredIntentDefinitions.has(intentData.name)) {
6181
+ continue;
6182
+ }
6183
+ yield {
6184
+ data: intentData,
6185
+ __intentName: intentData.name
6186
+ };
6187
+ }
6188
+ }.bind(this)
6189
+ ).then(
6190
+ insertIntentRegistryTask?.then(
6191
+ CadenzaService.createMetaTask("Record intent definition registration", (ctx) => {
6192
+ if (!ctx.__syncing) {
6193
+ return;
6194
+ }
6195
+ CadenzaService.debounce("meta.sync_controller.synced_resource", {
6196
+ delayMs: 3e3
6197
+ });
6198
+ this.registeredIntentDefinitions.add(ctx.__intentName);
6199
+ return true;
6200
+ }).then(
6201
+ CadenzaService.createUniqueMetaTask(
6202
+ "Gather intent registration",
6203
+ () => true
6204
+ ).emits("meta.sync_controller.synced_intents")
6205
+ )
6206
+ )
6207
+ );
6113
6208
  const registerIntentTask = CadenzaService.createMetaTask(
6114
6209
  "Record intent registration",
6115
6210
  (ctx) => {
@@ -6129,6 +6224,10 @@ var GraphSyncController = class _GraphSyncController {
6129
6224
  function* (ctx) {
6130
6225
  const task = ctx.task;
6131
6226
  if (task.hidden || !task.register) return;
6227
+ const serviceName = resolveSyncServiceName(task);
6228
+ if (!serviceName) {
6229
+ return;
6230
+ }
6132
6231
  task.__registeredIntents = task.__registeredIntents ?? /* @__PURE__ */ new Set();
6133
6232
  task.__invalidMetaIntentWarnings = task.__invalidMetaIntentWarnings ?? /* @__PURE__ */ new Set();
6134
6233
  for (const intent of task.handlesIntents) {
@@ -6148,36 +6247,75 @@ var GraphSyncController = class _GraphSyncController {
6148
6247
  }
6149
6248
  continue;
6150
6249
  }
6250
+ const intentDefinition = buildIntentRegistryData(CadenzaService.inquiryBroker.intents.get(intent)) ?? buildIntentRegistryData({ name: intent });
6251
+ if (!intentDefinition) {
6252
+ continue;
6253
+ }
6151
6254
  yield {
6152
6255
  data: {
6153
6256
  intentName: intent,
6154
6257
  taskName: task.name,
6155
6258
  taskVersion: task.version,
6156
- serviceName: CadenzaService.serviceRegistry.serviceName
6259
+ serviceName
6157
6260
  },
6158
6261
  __taskName: task.name,
6159
- __intent: intent
6262
+ __intent: intent,
6263
+ __intentDefinition: intentDefinition,
6264
+ __intentMapData: {
6265
+ intentName: intent,
6266
+ taskName: task.name,
6267
+ taskVersion: task.version,
6268
+ serviceName
6269
+ }
6160
6270
  };
6161
6271
  }
6162
6272
  }
6163
6273
  ).then(
6164
- (this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
6165
- "intent_to_task_map",
6166
- {
6167
- onConflict: {
6168
- target: [
6169
- "intent_name",
6170
- "task_name",
6171
- "task_version",
6172
- "service_name"
6173
- ],
6174
- action: {
6175
- do: "nothing"
6176
- }
6274
+ CadenzaService.createMetaTask(
6275
+ "Prepare intent definition for intent-to-task map",
6276
+ (ctx) => {
6277
+ if (!ctx.__intentDefinition || !ctx.__intentMapData) {
6278
+ return false;
6177
6279
  }
6178
- },
6179
- { concurrency: 30 }
6180
- ) : CadenzaService.get("dbInsertIntentToTaskMap"))?.then(registerIntentTask)
6280
+ return {
6281
+ ...ctx,
6282
+ data: ctx.__intentDefinition
6283
+ };
6284
+ }
6285
+ ).then(
6286
+ insertIntentRegistryTask?.then(
6287
+ CadenzaService.createMetaTask(
6288
+ "Restore intent-to-task map payload",
6289
+ (ctx) => {
6290
+ if (!ctx.__intentMapData) {
6291
+ return false;
6292
+ }
6293
+ return {
6294
+ ...ctx,
6295
+ data: ctx.__intentMapData
6296
+ };
6297
+ }
6298
+ ).then(
6299
+ (this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
6300
+ "intent_to_task_map",
6301
+ {
6302
+ onConflict: {
6303
+ target: [
6304
+ "intent_name",
6305
+ "task_name",
6306
+ "task_version",
6307
+ "service_name"
6308
+ ],
6309
+ action: {
6310
+ do: "nothing"
6311
+ }
6312
+ }
6313
+ },
6314
+ { concurrency: 30 }
6315
+ ) : CadenzaService.get("dbInsertIntentToTaskMap"))?.then(registerIntentTask)
6316
+ )
6317
+ )
6318
+ )
6181
6319
  );
6182
6320
  this.registerTaskMapTask = CadenzaService.createMetaTask(
6183
6321
  "Register task map to DB",
@@ -6187,18 +6325,26 @@ var GraphSyncController = class _GraphSyncController {
6187
6325
  delayMs: 3e3
6188
6326
  });
6189
6327
  if (task.hidden || !task.register) return;
6328
+ const predecessorServiceName = resolveSyncServiceName(task);
6329
+ if (!predecessorServiceName) {
6330
+ return;
6331
+ }
6190
6332
  for (const t of task.nextTasks) {
6191
6333
  if (task.taskMapRegistration.has(t.name) || t.hidden || !t.register) {
6192
6334
  continue;
6193
6335
  }
6336
+ const serviceName = resolveSyncServiceName(t);
6337
+ if (!serviceName) {
6338
+ continue;
6339
+ }
6194
6340
  yield {
6195
6341
  data: {
6196
6342
  taskName: t.name,
6197
6343
  taskVersion: t.version,
6198
6344
  predecessorTaskName: task.name,
6199
6345
  predecessorTaskVersion: task.version,
6200
- serviceName: CadenzaService.serviceRegistry.serviceName,
6201
- predecessorServiceName: CadenzaService.serviceRegistry.serviceName
6346
+ serviceName,
6347
+ predecessorServiceName
6202
6348
  },
6203
6349
  __taskName: task.name,
6204
6350
  __nextTaskName: t.name
@@ -6245,14 +6391,19 @@ var GraphSyncController = class _GraphSyncController {
6245
6391
  if (task.hidden || !task.register) return;
6246
6392
  if (task.isDeputy && !task.signalName) {
6247
6393
  if (task.registeredDeputyMap) return;
6394
+ const serviceName = resolveSyncServiceName(task);
6395
+ const predecessorServiceName = resolveSyncServiceName();
6396
+ if (!serviceName || !predecessorServiceName) {
6397
+ return;
6398
+ }
6248
6399
  return {
6249
6400
  data: {
6250
6401
  task_name: task.remoteRoutineName,
6251
6402
  task_version: 1,
6252
- service_name: task.serviceName,
6403
+ service_name: serviceName,
6253
6404
  predecessor_task_name: task.name,
6254
6405
  predecessor_task_version: task.version,
6255
- predecessor_service_name: CadenzaService.serviceRegistry.serviceName
6406
+ predecessor_service_name: predecessorServiceName
6256
6407
  },
6257
6408
  __taskName: task.name
6258
6409
  };
@@ -6297,6 +6448,12 @@ var GraphSyncController = class _GraphSyncController {
6297
6448
  "meta.service_registry.initial_sync_complete"
6298
6449
  ).then(this.splitSignalsTask);
6299
6450
  CadenzaService.registry.getAllTasks.clone().doOn("meta.sync_controller.synced_signals").then(this.splitTasksForRegistration);
6451
+ CadenzaService.createMetaTask("Get all intents", (ctx) => {
6452
+ return {
6453
+ ...ctx,
6454
+ intents: Array.from(CadenzaService.inquiryBroker.intents.values())
6455
+ };
6456
+ }).doOn("meta.sync_controller.synced_tasks").then(this.splitIntentsTask);
6300
6457
  CadenzaService.registry.getAllRoutines.clone().doOn("meta.sync_controller.synced_tasks").then(this.splitRoutinesTask);
6301
6458
  CadenzaService.createMetaTask("Get all actors", (ctx) => {
6302
6459
  return {
@@ -6307,9 +6464,9 @@ var GraphSyncController = class _GraphSyncController {
6307
6464
  CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks").then(
6308
6465
  this.registerTaskMapTask,
6309
6466
  this.registerSignalToTaskMapTask,
6310
- this.registerIntentToTaskMapTask,
6311
6467
  this.registerDeputyRelationshipTask
6312
6468
  );
6469
+ CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks", "meta.sync_controller.synced_intents").then(this.registerIntentToTaskMapTask);
6313
6470
  CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks", "meta.sync_controller.synced_actors").then(this.registerActorTaskMapTask);
6314
6471
  CadenzaService.registry.getAllRoutines.clone().doOn("meta.sync_controller.synced_routines").then(this.splitTasksInRoutines);
6315
6472
  CadenzaService.createMetaTask("Finish sync", (ctx, emit) => {
@@ -6569,9 +6726,9 @@ var CadenzaService = class {
6569
6726
  static normalizeDeclaredTransports(transports, serviceId) {
6570
6727
  return (transports ?? []).map((transport) => normalizeServiceTransportConfig(transport)).filter(
6571
6728
  (transport) => !!transport
6572
- ).map((transport, index) => ({
6729
+ ).map((transport) => ({
6573
6730
  ...transport,
6574
- uuid: `${serviceId}-transport-${index + 1}`
6731
+ uuid: (0, import_uuid3.v4)()
6575
6732
  }));
6576
6733
  }
6577
6734
  static createBootstrapTransport(serviceInstanceId, role, endpoint) {