@cadenza.io/service 2.17.8 → 2.17.10

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.
@@ -5371,6 +5371,13 @@ var GraphMetadataController = class _GraphMetadataController {
5371
5371
  };
5372
5372
  }).doOn("meta.task.layer_index_changed", "meta.task.destroyed").emits("global.meta.graph_metadata.task_updated");
5373
5373
  CadenzaService.createMetaTask("Handle task relationship creation", (ctx) => {
5374
+ const taskName = ctx.data?.taskName ?? ctx.data?.task_name;
5375
+ const predecessorTaskName = ctx.data?.predecessorTaskName ?? ctx.data?.predecessor_task_name;
5376
+ const task = taskName ? CadenzaService.get(taskName) : void 0;
5377
+ const predecessorTask = predecessorTaskName ? CadenzaService.get(predecessorTaskName) : void 0;
5378
+ if (!task?.registered || !predecessorTask?.registered) {
5379
+ return false;
5380
+ }
5374
5381
  return {
5375
5382
  data: {
5376
5383
  ...ctx.data,
@@ -5682,10 +5689,29 @@ function buildActorRegistrationData(actor) {
5682
5689
  version: 1
5683
5690
  };
5684
5691
  }
5692
+ function resolveSyncServiceName(task) {
5693
+ const taskServiceName = typeof task?.serviceName === "string" ? task.serviceName.trim() : "";
5694
+ const registryServiceName = typeof CadenzaService.serviceRegistry.serviceName === "string" ? CadenzaService.serviceRegistry.serviceName.trim() : "";
5695
+ return taskServiceName || registryServiceName || void 0;
5696
+ }
5697
+ function buildIntentRegistryData(intent) {
5698
+ const name = String(intent?.name ?? "").trim();
5699
+ if (!name) {
5700
+ return null;
5701
+ }
5702
+ return {
5703
+ name,
5704
+ description: typeof intent?.description === "string" ? intent.description : "",
5705
+ input: intent?.input && typeof intent.input === "object" ? intent.input : { type: "object" },
5706
+ output: intent?.output && typeof intent.output === "object" ? intent.output : { type: "object" },
5707
+ isMeta: isMetaIntentName(name)
5708
+ };
5709
+ }
5685
5710
  var GraphSyncController = class _GraphSyncController {
5686
5711
  constructor() {
5687
5712
  this.registeredActors = /* @__PURE__ */ new Set();
5688
5713
  this.registeredActorTaskMaps = /* @__PURE__ */ new Set();
5714
+ this.registeredIntentDefinitions = /* @__PURE__ */ new Set();
5689
5715
  this.isCadenzaDBReady = false;
5690
5716
  }
5691
5717
  static get instance() {
@@ -5693,11 +5719,27 @@ var GraphSyncController = class _GraphSyncController {
5693
5719
  return this._instance;
5694
5720
  }
5695
5721
  init() {
5722
+ const insertIntentRegistryTask = this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
5723
+ "intent_registry",
5724
+ {
5725
+ onConflict: {
5726
+ target: ["name"],
5727
+ action: {
5728
+ do: "nothing"
5729
+ }
5730
+ }
5731
+ },
5732
+ { concurrency: 30 }
5733
+ ) : CadenzaService.get("dbInsertIntentRegistry");
5696
5734
  this.splitRoutinesTask = CadenzaService.createMetaTask(
5697
5735
  "Split routines for registration",
5698
5736
  async function* (ctx, emit) {
5699
5737
  const { routines } = ctx;
5700
5738
  if (!routines) return;
5739
+ const serviceName = resolveSyncServiceName();
5740
+ if (!serviceName) {
5741
+ return;
5742
+ }
5701
5743
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5702
5744
  delayMs: 2e3
5703
5745
  });
@@ -5708,7 +5750,7 @@ var GraphSyncController = class _GraphSyncController {
5708
5750
  name: routine.name,
5709
5751
  version: routine.version,
5710
5752
  description: routine.description,
5711
- serviceName: CadenzaService.serviceRegistry.serviceName,
5753
+ serviceName,
5712
5754
  isMeta: routine.isMeta
5713
5755
  },
5714
5756
  __routineName: routine.name
@@ -5750,6 +5792,10 @@ var GraphSyncController = class _GraphSyncController {
5750
5792
  function* (ctx) {
5751
5793
  const { routines } = ctx;
5752
5794
  if (!routines) return;
5795
+ const serviceName = resolveSyncServiceName();
5796
+ if (!serviceName) {
5797
+ return;
5798
+ }
5753
5799
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5754
5800
  delayMs: 3e3
5755
5801
  });
@@ -5769,7 +5815,7 @@ var GraphSyncController = class _GraphSyncController {
5769
5815
  taskVersion: nextTask.version,
5770
5816
  routineName: routine.name,
5771
5817
  routineVersion: routine.version,
5772
- serviceName: CadenzaService.serviceRegistry.serviceName
5818
+ serviceName
5773
5819
  },
5774
5820
  __routineName: routine.name,
5775
5821
  __taskName: nextTask.name
@@ -5872,6 +5918,10 @@ var GraphSyncController = class _GraphSyncController {
5872
5918
  delayMs: 3e3
5873
5919
  });
5874
5920
  const tasks = ctx.tasks;
5921
+ const serviceName = resolveSyncServiceName();
5922
+ if (!serviceName) {
5923
+ return;
5924
+ }
5875
5925
  for (const task of tasks) {
5876
5926
  if (task.registered) continue;
5877
5927
  const { __functionString, __getTagCallback } = task.export();
@@ -5901,7 +5951,7 @@ var GraphSyncController = class _GraphSyncController {
5901
5951
  retryDelay: task.retryDelay,
5902
5952
  retryDelayMax: task.retryDelayMax,
5903
5953
  retryDelayFactor: task.retryDelayFactor,
5904
- service_name: CadenzaService.serviceRegistry.serviceName,
5954
+ service_name: serviceName,
5905
5955
  signals: {
5906
5956
  emits: Array.from(task.emitsSignals),
5907
5957
  signalsToEmitAfter: Array.from(task.signalsToEmitAfter),
@@ -5949,11 +5999,15 @@ var GraphSyncController = class _GraphSyncController {
5949
5999
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5950
6000
  delayMs: 3e3
5951
6001
  });
6002
+ const serviceName = resolveSyncServiceName();
6003
+ if (!serviceName) {
6004
+ return;
6005
+ }
5952
6006
  const actors = ctx.actors ?? [];
5953
6007
  for (const actor of actors) {
5954
6008
  const data = {
5955
6009
  ...buildActorRegistrationData(actor),
5956
- service_name: CadenzaService.serviceRegistry.serviceName
6010
+ service_name: serviceName
5957
6011
  };
5958
6012
  if (!data.name) {
5959
6013
  continue;
@@ -6009,7 +6063,11 @@ var GraphSyncController = class _GraphSyncController {
6009
6063
  if (!metadata?.actorName) {
6010
6064
  return;
6011
6065
  }
6012
- const registrationKey = `${metadata.actorName}|${task.name}|${task.version}|${CadenzaService.serviceRegistry.serviceName}`;
6066
+ const serviceName = resolveSyncServiceName(task);
6067
+ if (!serviceName) {
6068
+ return;
6069
+ }
6070
+ const registrationKey = `${metadata.actorName}|${task.name}|${task.version}|${serviceName}`;
6013
6071
  if (this.registeredActorTaskMaps.has(registrationKey)) {
6014
6072
  return;
6015
6073
  }
@@ -6019,7 +6077,7 @@ var GraphSyncController = class _GraphSyncController {
6019
6077
  actor_version: 1,
6020
6078
  task_name: task.name,
6021
6079
  task_version: task.version,
6022
- service_name: CadenzaService.serviceRegistry.serviceName,
6080
+ service_name: serviceName,
6023
6081
  mode: metadata.mode,
6024
6082
  description: task.description ?? metadata.actorDescription ?? "",
6025
6083
  is_meta: metadata.actorKind === "meta" || task.isMeta === true
@@ -6074,6 +6132,10 @@ var GraphSyncController = class _GraphSyncController {
6074
6132
  function* (ctx) {
6075
6133
  const task = ctx.task;
6076
6134
  if (task.hidden || !task.register) return;
6135
+ const serviceName = resolveSyncServiceName(task);
6136
+ if (!serviceName) {
6137
+ return;
6138
+ }
6077
6139
  for (const signal of task.observedSignals) {
6078
6140
  const _signal = signal.split(":")[0];
6079
6141
  if (task.registeredSignals.has(signal)) continue;
@@ -6084,7 +6146,7 @@ var GraphSyncController = class _GraphSyncController {
6084
6146
  isGlobal,
6085
6147
  taskName: task.name,
6086
6148
  taskVersion: task.version,
6087
- serviceName: CadenzaService.serviceRegistry.serviceName
6149
+ serviceName
6088
6150
  },
6089
6151
  __taskName: task.name,
6090
6152
  __signal: signal
@@ -6110,6 +6172,46 @@ var GraphSyncController = class _GraphSyncController {
6110
6172
  { concurrency: 30 }
6111
6173
  ) : CadenzaService.get("dbInsertSignalToTaskMap"))?.then(registerSignalTask)
6112
6174
  );
6175
+ this.splitIntentsTask = CadenzaService.createMetaTask(
6176
+ "Split intents for registration",
6177
+ function* (ctx) {
6178
+ CadenzaService.debounce("meta.sync_controller.synced_resource", {
6179
+ delayMs: 3e3
6180
+ });
6181
+ const intents = Array.isArray(ctx.intents) ? ctx.intents : Array.from(CadenzaService.inquiryBroker.intents.values());
6182
+ for (const intent of intents) {
6183
+ const intentData = buildIntentRegistryData(intent);
6184
+ if (!intentData) {
6185
+ continue;
6186
+ }
6187
+ if (this.registeredIntentDefinitions.has(intentData.name)) {
6188
+ continue;
6189
+ }
6190
+ yield {
6191
+ data: intentData,
6192
+ __intentName: intentData.name
6193
+ };
6194
+ }
6195
+ }.bind(this)
6196
+ ).then(
6197
+ insertIntentRegistryTask?.then(
6198
+ CadenzaService.createMetaTask("Record intent definition registration", (ctx) => {
6199
+ if (!ctx.__syncing) {
6200
+ return;
6201
+ }
6202
+ CadenzaService.debounce("meta.sync_controller.synced_resource", {
6203
+ delayMs: 3e3
6204
+ });
6205
+ this.registeredIntentDefinitions.add(ctx.__intentName);
6206
+ return true;
6207
+ }).then(
6208
+ CadenzaService.createUniqueMetaTask(
6209
+ "Gather intent registration",
6210
+ () => true
6211
+ ).emits("meta.sync_controller.synced_intents")
6212
+ )
6213
+ )
6214
+ );
6113
6215
  const registerIntentTask = CadenzaService.createMetaTask(
6114
6216
  "Record intent registration",
6115
6217
  (ctx) => {
@@ -6129,6 +6231,10 @@ var GraphSyncController = class _GraphSyncController {
6129
6231
  function* (ctx) {
6130
6232
  const task = ctx.task;
6131
6233
  if (task.hidden || !task.register) return;
6234
+ const serviceName = resolveSyncServiceName(task);
6235
+ if (!serviceName) {
6236
+ return;
6237
+ }
6132
6238
  task.__registeredIntents = task.__registeredIntents ?? /* @__PURE__ */ new Set();
6133
6239
  task.__invalidMetaIntentWarnings = task.__invalidMetaIntentWarnings ?? /* @__PURE__ */ new Set();
6134
6240
  for (const intent of task.handlesIntents) {
@@ -6148,36 +6254,75 @@ var GraphSyncController = class _GraphSyncController {
6148
6254
  }
6149
6255
  continue;
6150
6256
  }
6257
+ const intentDefinition = buildIntentRegistryData(CadenzaService.inquiryBroker.intents.get(intent)) ?? buildIntentRegistryData({ name: intent });
6258
+ if (!intentDefinition) {
6259
+ continue;
6260
+ }
6151
6261
  yield {
6152
6262
  data: {
6153
6263
  intentName: intent,
6154
6264
  taskName: task.name,
6155
6265
  taskVersion: task.version,
6156
- serviceName: CadenzaService.serviceRegistry.serviceName
6266
+ serviceName
6157
6267
  },
6158
6268
  __taskName: task.name,
6159
- __intent: intent
6269
+ __intent: intent,
6270
+ __intentDefinition: intentDefinition,
6271
+ __intentMapData: {
6272
+ intentName: intent,
6273
+ taskName: task.name,
6274
+ taskVersion: task.version,
6275
+ serviceName
6276
+ }
6160
6277
  };
6161
6278
  }
6162
6279
  }
6163
6280
  ).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
- }
6281
+ CadenzaService.createMetaTask(
6282
+ "Prepare intent definition for intent-to-task map",
6283
+ (ctx) => {
6284
+ if (!ctx.__intentDefinition || !ctx.__intentMapData) {
6285
+ return false;
6177
6286
  }
6178
- },
6179
- { concurrency: 30 }
6180
- ) : CadenzaService.get("dbInsertIntentToTaskMap"))?.then(registerIntentTask)
6287
+ return {
6288
+ ...ctx,
6289
+ data: ctx.__intentDefinition
6290
+ };
6291
+ }
6292
+ ).then(
6293
+ insertIntentRegistryTask?.then(
6294
+ CadenzaService.createMetaTask(
6295
+ "Restore intent-to-task map payload",
6296
+ (ctx) => {
6297
+ if (!ctx.__intentMapData) {
6298
+ return false;
6299
+ }
6300
+ return {
6301
+ ...ctx,
6302
+ data: ctx.__intentMapData
6303
+ };
6304
+ }
6305
+ ).then(
6306
+ (this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
6307
+ "intent_to_task_map",
6308
+ {
6309
+ onConflict: {
6310
+ target: [
6311
+ "intent_name",
6312
+ "task_name",
6313
+ "task_version",
6314
+ "service_name"
6315
+ ],
6316
+ action: {
6317
+ do: "nothing"
6318
+ }
6319
+ }
6320
+ },
6321
+ { concurrency: 30 }
6322
+ ) : CadenzaService.get("dbInsertIntentToTaskMap"))?.then(registerIntentTask)
6323
+ )
6324
+ )
6325
+ )
6181
6326
  );
6182
6327
  this.registerTaskMapTask = CadenzaService.createMetaTask(
6183
6328
  "Register task map to DB",
@@ -6187,18 +6332,26 @@ var GraphSyncController = class _GraphSyncController {
6187
6332
  delayMs: 3e3
6188
6333
  });
6189
6334
  if (task.hidden || !task.register) return;
6335
+ const predecessorServiceName = resolveSyncServiceName(task);
6336
+ if (!predecessorServiceName) {
6337
+ return;
6338
+ }
6190
6339
  for (const t of task.nextTasks) {
6191
6340
  if (task.taskMapRegistration.has(t.name) || t.hidden || !t.register) {
6192
6341
  continue;
6193
6342
  }
6343
+ const serviceName = resolveSyncServiceName(t);
6344
+ if (!serviceName) {
6345
+ continue;
6346
+ }
6194
6347
  yield {
6195
6348
  data: {
6196
6349
  taskName: t.name,
6197
6350
  taskVersion: t.version,
6198
6351
  predecessorTaskName: task.name,
6199
6352
  predecessorTaskVersion: task.version,
6200
- serviceName: CadenzaService.serviceRegistry.serviceName,
6201
- predecessorServiceName: CadenzaService.serviceRegistry.serviceName
6353
+ serviceName,
6354
+ predecessorServiceName
6202
6355
  },
6203
6356
  __taskName: task.name,
6204
6357
  __nextTaskName: t.name
@@ -6245,14 +6398,19 @@ var GraphSyncController = class _GraphSyncController {
6245
6398
  if (task.hidden || !task.register) return;
6246
6399
  if (task.isDeputy && !task.signalName) {
6247
6400
  if (task.registeredDeputyMap) return;
6401
+ const serviceName = resolveSyncServiceName(task);
6402
+ const predecessorServiceName = resolveSyncServiceName();
6403
+ if (!serviceName || !predecessorServiceName) {
6404
+ return;
6405
+ }
6248
6406
  return {
6249
6407
  data: {
6250
6408
  task_name: task.remoteRoutineName,
6251
6409
  task_version: 1,
6252
- service_name: task.serviceName,
6410
+ service_name: serviceName,
6253
6411
  predecessor_task_name: task.name,
6254
6412
  predecessor_task_version: task.version,
6255
- predecessor_service_name: CadenzaService.serviceRegistry.serviceName
6413
+ predecessor_service_name: predecessorServiceName
6256
6414
  },
6257
6415
  __taskName: task.name
6258
6416
  };
@@ -6297,6 +6455,12 @@ var GraphSyncController = class _GraphSyncController {
6297
6455
  "meta.service_registry.initial_sync_complete"
6298
6456
  ).then(this.splitSignalsTask);
6299
6457
  CadenzaService.registry.getAllTasks.clone().doOn("meta.sync_controller.synced_signals").then(this.splitTasksForRegistration);
6458
+ CadenzaService.createMetaTask("Get all intents", (ctx) => {
6459
+ return {
6460
+ ...ctx,
6461
+ intents: Array.from(CadenzaService.inquiryBroker.intents.values())
6462
+ };
6463
+ }).doOn("meta.sync_controller.synced_tasks").then(this.splitIntentsTask);
6300
6464
  CadenzaService.registry.getAllRoutines.clone().doOn("meta.sync_controller.synced_tasks").then(this.splitRoutinesTask);
6301
6465
  CadenzaService.createMetaTask("Get all actors", (ctx) => {
6302
6466
  return {
@@ -6307,9 +6471,9 @@ var GraphSyncController = class _GraphSyncController {
6307
6471
  CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks").then(
6308
6472
  this.registerTaskMapTask,
6309
6473
  this.registerSignalToTaskMapTask,
6310
- this.registerIntentToTaskMapTask,
6311
6474
  this.registerDeputyRelationshipTask
6312
6475
  );
6476
+ CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks", "meta.sync_controller.synced_intents").then(this.registerIntentToTaskMapTask);
6313
6477
  CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks", "meta.sync_controller.synced_actors").then(this.registerActorTaskMapTask);
6314
6478
  CadenzaService.registry.getAllRoutines.clone().doOn("meta.sync_controller.synced_routines").then(this.splitTasksInRoutines);
6315
6479
  CadenzaService.createMetaTask("Finish sync", (ctx, emit) => {
@@ -6569,9 +6733,9 @@ var CadenzaService = class {
6569
6733
  static normalizeDeclaredTransports(transports, serviceId) {
6570
6734
  return (transports ?? []).map((transport) => normalizeServiceTransportConfig(transport)).filter(
6571
6735
  (transport) => !!transport
6572
- ).map((transport, index) => ({
6736
+ ).map((transport) => ({
6573
6737
  ...transport,
6574
- uuid: `${serviceId}-transport-${index + 1}`
6738
+ uuid: (0, import_uuid3.v4)()
6575
6739
  }));
6576
6740
  }
6577
6741
  static createBootstrapTransport(serviceInstanceId, role, endpoint) {