@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.
@@ -5320,6 +5320,13 @@ var GraphMetadataController = class _GraphMetadataController {
5320
5320
  };
5321
5321
  }).doOn("meta.task.layer_index_changed", "meta.task.destroyed").emits("global.meta.graph_metadata.task_updated");
5322
5322
  CadenzaService.createMetaTask("Handle task relationship creation", (ctx) => {
5323
+ const taskName = ctx.data?.taskName ?? ctx.data?.task_name;
5324
+ const predecessorTaskName = ctx.data?.predecessorTaskName ?? ctx.data?.predecessor_task_name;
5325
+ const task = taskName ? CadenzaService.get(taskName) : void 0;
5326
+ const predecessorTask = predecessorTaskName ? CadenzaService.get(predecessorTaskName) : void 0;
5327
+ if (!task?.registered || !predecessorTask?.registered) {
5328
+ return false;
5329
+ }
5323
5330
  return {
5324
5331
  data: {
5325
5332
  ...ctx.data,
@@ -5631,10 +5638,29 @@ function buildActorRegistrationData(actor) {
5631
5638
  version: 1
5632
5639
  };
5633
5640
  }
5641
+ function resolveSyncServiceName(task) {
5642
+ const taskServiceName = typeof task?.serviceName === "string" ? task.serviceName.trim() : "";
5643
+ const registryServiceName = typeof CadenzaService.serviceRegistry.serviceName === "string" ? CadenzaService.serviceRegistry.serviceName.trim() : "";
5644
+ return taskServiceName || registryServiceName || void 0;
5645
+ }
5646
+ function buildIntentRegistryData(intent) {
5647
+ const name = String(intent?.name ?? "").trim();
5648
+ if (!name) {
5649
+ return null;
5650
+ }
5651
+ return {
5652
+ name,
5653
+ description: typeof intent?.description === "string" ? intent.description : "",
5654
+ input: intent?.input && typeof intent.input === "object" ? intent.input : { type: "object" },
5655
+ output: intent?.output && typeof intent.output === "object" ? intent.output : { type: "object" },
5656
+ isMeta: isMetaIntentName(name)
5657
+ };
5658
+ }
5634
5659
  var GraphSyncController = class _GraphSyncController {
5635
5660
  constructor() {
5636
5661
  this.registeredActors = /* @__PURE__ */ new Set();
5637
5662
  this.registeredActorTaskMaps = /* @__PURE__ */ new Set();
5663
+ this.registeredIntentDefinitions = /* @__PURE__ */ new Set();
5638
5664
  this.isCadenzaDBReady = false;
5639
5665
  }
5640
5666
  static get instance() {
@@ -5642,11 +5668,27 @@ var GraphSyncController = class _GraphSyncController {
5642
5668
  return this._instance;
5643
5669
  }
5644
5670
  init() {
5671
+ const insertIntentRegistryTask = this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
5672
+ "intent_registry",
5673
+ {
5674
+ onConflict: {
5675
+ target: ["name"],
5676
+ action: {
5677
+ do: "nothing"
5678
+ }
5679
+ }
5680
+ },
5681
+ { concurrency: 30 }
5682
+ ) : CadenzaService.get("dbInsertIntentRegistry");
5645
5683
  this.splitRoutinesTask = CadenzaService.createMetaTask(
5646
5684
  "Split routines for registration",
5647
5685
  async function* (ctx, emit) {
5648
5686
  const { routines } = ctx;
5649
5687
  if (!routines) return;
5688
+ const serviceName = resolveSyncServiceName();
5689
+ if (!serviceName) {
5690
+ return;
5691
+ }
5650
5692
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5651
5693
  delayMs: 2e3
5652
5694
  });
@@ -5657,7 +5699,7 @@ var GraphSyncController = class _GraphSyncController {
5657
5699
  name: routine.name,
5658
5700
  version: routine.version,
5659
5701
  description: routine.description,
5660
- serviceName: CadenzaService.serviceRegistry.serviceName,
5702
+ serviceName,
5661
5703
  isMeta: routine.isMeta
5662
5704
  },
5663
5705
  __routineName: routine.name
@@ -5699,6 +5741,10 @@ var GraphSyncController = class _GraphSyncController {
5699
5741
  function* (ctx) {
5700
5742
  const { routines } = ctx;
5701
5743
  if (!routines) return;
5744
+ const serviceName = resolveSyncServiceName();
5745
+ if (!serviceName) {
5746
+ return;
5747
+ }
5702
5748
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5703
5749
  delayMs: 3e3
5704
5750
  });
@@ -5718,7 +5764,7 @@ var GraphSyncController = class _GraphSyncController {
5718
5764
  taskVersion: nextTask.version,
5719
5765
  routineName: routine.name,
5720
5766
  routineVersion: routine.version,
5721
- serviceName: CadenzaService.serviceRegistry.serviceName
5767
+ serviceName
5722
5768
  },
5723
5769
  __routineName: routine.name,
5724
5770
  __taskName: nextTask.name
@@ -5821,6 +5867,10 @@ var GraphSyncController = class _GraphSyncController {
5821
5867
  delayMs: 3e3
5822
5868
  });
5823
5869
  const tasks = ctx.tasks;
5870
+ const serviceName = resolveSyncServiceName();
5871
+ if (!serviceName) {
5872
+ return;
5873
+ }
5824
5874
  for (const task of tasks) {
5825
5875
  if (task.registered) continue;
5826
5876
  const { __functionString, __getTagCallback } = task.export();
@@ -5850,7 +5900,7 @@ var GraphSyncController = class _GraphSyncController {
5850
5900
  retryDelay: task.retryDelay,
5851
5901
  retryDelayMax: task.retryDelayMax,
5852
5902
  retryDelayFactor: task.retryDelayFactor,
5853
- service_name: CadenzaService.serviceRegistry.serviceName,
5903
+ service_name: serviceName,
5854
5904
  signals: {
5855
5905
  emits: Array.from(task.emitsSignals),
5856
5906
  signalsToEmitAfter: Array.from(task.signalsToEmitAfter),
@@ -5898,11 +5948,15 @@ var GraphSyncController = class _GraphSyncController {
5898
5948
  CadenzaService.debounce("meta.sync_controller.synced_resource", {
5899
5949
  delayMs: 3e3
5900
5950
  });
5951
+ const serviceName = resolveSyncServiceName();
5952
+ if (!serviceName) {
5953
+ return;
5954
+ }
5901
5955
  const actors = ctx.actors ?? [];
5902
5956
  for (const actor of actors) {
5903
5957
  const data = {
5904
5958
  ...buildActorRegistrationData(actor),
5905
- service_name: CadenzaService.serviceRegistry.serviceName
5959
+ service_name: serviceName
5906
5960
  };
5907
5961
  if (!data.name) {
5908
5962
  continue;
@@ -5958,7 +6012,11 @@ var GraphSyncController = class _GraphSyncController {
5958
6012
  if (!metadata?.actorName) {
5959
6013
  return;
5960
6014
  }
5961
- const registrationKey = `${metadata.actorName}|${task.name}|${task.version}|${CadenzaService.serviceRegistry.serviceName}`;
6015
+ const serviceName = resolveSyncServiceName(task);
6016
+ if (!serviceName) {
6017
+ return;
6018
+ }
6019
+ const registrationKey = `${metadata.actorName}|${task.name}|${task.version}|${serviceName}`;
5962
6020
  if (this.registeredActorTaskMaps.has(registrationKey)) {
5963
6021
  return;
5964
6022
  }
@@ -5968,7 +6026,7 @@ var GraphSyncController = class _GraphSyncController {
5968
6026
  actor_version: 1,
5969
6027
  task_name: task.name,
5970
6028
  task_version: task.version,
5971
- service_name: CadenzaService.serviceRegistry.serviceName,
6029
+ service_name: serviceName,
5972
6030
  mode: metadata.mode,
5973
6031
  description: task.description ?? metadata.actorDescription ?? "",
5974
6032
  is_meta: metadata.actorKind === "meta" || task.isMeta === true
@@ -6023,6 +6081,10 @@ var GraphSyncController = class _GraphSyncController {
6023
6081
  function* (ctx) {
6024
6082
  const task = ctx.task;
6025
6083
  if (task.hidden || !task.register) return;
6084
+ const serviceName = resolveSyncServiceName(task);
6085
+ if (!serviceName) {
6086
+ return;
6087
+ }
6026
6088
  for (const signal of task.observedSignals) {
6027
6089
  const _signal = signal.split(":")[0];
6028
6090
  if (task.registeredSignals.has(signal)) continue;
@@ -6033,7 +6095,7 @@ var GraphSyncController = class _GraphSyncController {
6033
6095
  isGlobal,
6034
6096
  taskName: task.name,
6035
6097
  taskVersion: task.version,
6036
- serviceName: CadenzaService.serviceRegistry.serviceName
6098
+ serviceName
6037
6099
  },
6038
6100
  __taskName: task.name,
6039
6101
  __signal: signal
@@ -6059,6 +6121,46 @@ var GraphSyncController = class _GraphSyncController {
6059
6121
  { concurrency: 30 }
6060
6122
  ) : CadenzaService.get("dbInsertSignalToTaskMap"))?.then(registerSignalTask)
6061
6123
  );
6124
+ this.splitIntentsTask = CadenzaService.createMetaTask(
6125
+ "Split intents for registration",
6126
+ function* (ctx) {
6127
+ CadenzaService.debounce("meta.sync_controller.synced_resource", {
6128
+ delayMs: 3e3
6129
+ });
6130
+ const intents = Array.isArray(ctx.intents) ? ctx.intents : Array.from(CadenzaService.inquiryBroker.intents.values());
6131
+ for (const intent of intents) {
6132
+ const intentData = buildIntentRegistryData(intent);
6133
+ if (!intentData) {
6134
+ continue;
6135
+ }
6136
+ if (this.registeredIntentDefinitions.has(intentData.name)) {
6137
+ continue;
6138
+ }
6139
+ yield {
6140
+ data: intentData,
6141
+ __intentName: intentData.name
6142
+ };
6143
+ }
6144
+ }.bind(this)
6145
+ ).then(
6146
+ insertIntentRegistryTask?.then(
6147
+ CadenzaService.createMetaTask("Record intent definition registration", (ctx) => {
6148
+ if (!ctx.__syncing) {
6149
+ return;
6150
+ }
6151
+ CadenzaService.debounce("meta.sync_controller.synced_resource", {
6152
+ delayMs: 3e3
6153
+ });
6154
+ this.registeredIntentDefinitions.add(ctx.__intentName);
6155
+ return true;
6156
+ }).then(
6157
+ CadenzaService.createUniqueMetaTask(
6158
+ "Gather intent registration",
6159
+ () => true
6160
+ ).emits("meta.sync_controller.synced_intents")
6161
+ )
6162
+ )
6163
+ );
6062
6164
  const registerIntentTask = CadenzaService.createMetaTask(
6063
6165
  "Record intent registration",
6064
6166
  (ctx) => {
@@ -6078,6 +6180,10 @@ var GraphSyncController = class _GraphSyncController {
6078
6180
  function* (ctx) {
6079
6181
  const task = ctx.task;
6080
6182
  if (task.hidden || !task.register) return;
6183
+ const serviceName = resolveSyncServiceName(task);
6184
+ if (!serviceName) {
6185
+ return;
6186
+ }
6081
6187
  task.__registeredIntents = task.__registeredIntents ?? /* @__PURE__ */ new Set();
6082
6188
  task.__invalidMetaIntentWarnings = task.__invalidMetaIntentWarnings ?? /* @__PURE__ */ new Set();
6083
6189
  for (const intent of task.handlesIntents) {
@@ -6097,36 +6203,75 @@ var GraphSyncController = class _GraphSyncController {
6097
6203
  }
6098
6204
  continue;
6099
6205
  }
6206
+ const intentDefinition = buildIntentRegistryData(CadenzaService.inquiryBroker.intents.get(intent)) ?? buildIntentRegistryData({ name: intent });
6207
+ if (!intentDefinition) {
6208
+ continue;
6209
+ }
6100
6210
  yield {
6101
6211
  data: {
6102
6212
  intentName: intent,
6103
6213
  taskName: task.name,
6104
6214
  taskVersion: task.version,
6105
- serviceName: CadenzaService.serviceRegistry.serviceName
6215
+ serviceName
6106
6216
  },
6107
6217
  __taskName: task.name,
6108
- __intent: intent
6218
+ __intent: intent,
6219
+ __intentDefinition: intentDefinition,
6220
+ __intentMapData: {
6221
+ intentName: intent,
6222
+ taskName: task.name,
6223
+ taskVersion: task.version,
6224
+ serviceName
6225
+ }
6109
6226
  };
6110
6227
  }
6111
6228
  }
6112
6229
  ).then(
6113
- (this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
6114
- "intent_to_task_map",
6115
- {
6116
- onConflict: {
6117
- target: [
6118
- "intent_name",
6119
- "task_name",
6120
- "task_version",
6121
- "service_name"
6122
- ],
6123
- action: {
6124
- do: "nothing"
6125
- }
6230
+ CadenzaService.createMetaTask(
6231
+ "Prepare intent definition for intent-to-task map",
6232
+ (ctx) => {
6233
+ if (!ctx.__intentDefinition || !ctx.__intentMapData) {
6234
+ return false;
6126
6235
  }
6127
- },
6128
- { concurrency: 30 }
6129
- ) : CadenzaService.get("dbInsertIntentToTaskMap"))?.then(registerIntentTask)
6236
+ return {
6237
+ ...ctx,
6238
+ data: ctx.__intentDefinition
6239
+ };
6240
+ }
6241
+ ).then(
6242
+ insertIntentRegistryTask?.then(
6243
+ CadenzaService.createMetaTask(
6244
+ "Restore intent-to-task map payload",
6245
+ (ctx) => {
6246
+ if (!ctx.__intentMapData) {
6247
+ return false;
6248
+ }
6249
+ return {
6250
+ ...ctx,
6251
+ data: ctx.__intentMapData
6252
+ };
6253
+ }
6254
+ ).then(
6255
+ (this.isCadenzaDBReady ? CadenzaService.createCadenzaDBInsertTask(
6256
+ "intent_to_task_map",
6257
+ {
6258
+ onConflict: {
6259
+ target: [
6260
+ "intent_name",
6261
+ "task_name",
6262
+ "task_version",
6263
+ "service_name"
6264
+ ],
6265
+ action: {
6266
+ do: "nothing"
6267
+ }
6268
+ }
6269
+ },
6270
+ { concurrency: 30 }
6271
+ ) : CadenzaService.get("dbInsertIntentToTaskMap"))?.then(registerIntentTask)
6272
+ )
6273
+ )
6274
+ )
6130
6275
  );
6131
6276
  this.registerTaskMapTask = CadenzaService.createMetaTask(
6132
6277
  "Register task map to DB",
@@ -6136,18 +6281,26 @@ var GraphSyncController = class _GraphSyncController {
6136
6281
  delayMs: 3e3
6137
6282
  });
6138
6283
  if (task.hidden || !task.register) return;
6284
+ const predecessorServiceName = resolveSyncServiceName(task);
6285
+ if (!predecessorServiceName) {
6286
+ return;
6287
+ }
6139
6288
  for (const t of task.nextTasks) {
6140
6289
  if (task.taskMapRegistration.has(t.name) || t.hidden || !t.register) {
6141
6290
  continue;
6142
6291
  }
6292
+ const serviceName = resolveSyncServiceName(t);
6293
+ if (!serviceName) {
6294
+ continue;
6295
+ }
6143
6296
  yield {
6144
6297
  data: {
6145
6298
  taskName: t.name,
6146
6299
  taskVersion: t.version,
6147
6300
  predecessorTaskName: task.name,
6148
6301
  predecessorTaskVersion: task.version,
6149
- serviceName: CadenzaService.serviceRegistry.serviceName,
6150
- predecessorServiceName: CadenzaService.serviceRegistry.serviceName
6302
+ serviceName,
6303
+ predecessorServiceName
6151
6304
  },
6152
6305
  __taskName: task.name,
6153
6306
  __nextTaskName: t.name
@@ -6194,14 +6347,19 @@ var GraphSyncController = class _GraphSyncController {
6194
6347
  if (task.hidden || !task.register) return;
6195
6348
  if (task.isDeputy && !task.signalName) {
6196
6349
  if (task.registeredDeputyMap) return;
6350
+ const serviceName = resolveSyncServiceName(task);
6351
+ const predecessorServiceName = resolveSyncServiceName();
6352
+ if (!serviceName || !predecessorServiceName) {
6353
+ return;
6354
+ }
6197
6355
  return {
6198
6356
  data: {
6199
6357
  task_name: task.remoteRoutineName,
6200
6358
  task_version: 1,
6201
- service_name: task.serviceName,
6359
+ service_name: serviceName,
6202
6360
  predecessor_task_name: task.name,
6203
6361
  predecessor_task_version: task.version,
6204
- predecessor_service_name: CadenzaService.serviceRegistry.serviceName
6362
+ predecessor_service_name: predecessorServiceName
6205
6363
  },
6206
6364
  __taskName: task.name
6207
6365
  };
@@ -6246,6 +6404,12 @@ var GraphSyncController = class _GraphSyncController {
6246
6404
  "meta.service_registry.initial_sync_complete"
6247
6405
  ).then(this.splitSignalsTask);
6248
6406
  CadenzaService.registry.getAllTasks.clone().doOn("meta.sync_controller.synced_signals").then(this.splitTasksForRegistration);
6407
+ CadenzaService.createMetaTask("Get all intents", (ctx) => {
6408
+ return {
6409
+ ...ctx,
6410
+ intents: Array.from(CadenzaService.inquiryBroker.intents.values())
6411
+ };
6412
+ }).doOn("meta.sync_controller.synced_tasks").then(this.splitIntentsTask);
6249
6413
  CadenzaService.registry.getAllRoutines.clone().doOn("meta.sync_controller.synced_tasks").then(this.splitRoutinesTask);
6250
6414
  CadenzaService.createMetaTask("Get all actors", (ctx) => {
6251
6415
  return {
@@ -6256,9 +6420,9 @@ var GraphSyncController = class _GraphSyncController {
6256
6420
  CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks").then(
6257
6421
  this.registerTaskMapTask,
6258
6422
  this.registerSignalToTaskMapTask,
6259
- this.registerIntentToTaskMapTask,
6260
6423
  this.registerDeputyRelationshipTask
6261
6424
  );
6425
+ CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks", "meta.sync_controller.synced_intents").then(this.registerIntentToTaskMapTask);
6262
6426
  CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_tasks", "meta.sync_controller.synced_actors").then(this.registerActorTaskMapTask);
6263
6427
  CadenzaService.registry.getAllRoutines.clone().doOn("meta.sync_controller.synced_routines").then(this.splitTasksInRoutines);
6264
6428
  CadenzaService.createMetaTask("Finish sync", (ctx, emit) => {
@@ -6518,9 +6682,9 @@ var CadenzaService = class {
6518
6682
  static normalizeDeclaredTransports(transports, serviceId) {
6519
6683
  return (transports ?? []).map((transport) => normalizeServiceTransportConfig(transport)).filter(
6520
6684
  (transport) => !!transport
6521
- ).map((transport, index) => ({
6685
+ ).map((transport) => ({
6522
6686
  ...transport,
6523
- uuid: `${serviceId}-transport-${index + 1}`
6687
+ uuid: uuid3()
6524
6688
  }));
6525
6689
  }
6526
6690
  static createBootstrapTransport(serviceInstanceId, role, endpoint) {