@lucern/sdk 0.3.0-alpha.0 → 0.3.0-alpha.1

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 (61) hide show
  1. package/README.md +33 -21
  2. package/dist/beliefs/index.d.ts +7 -7
  3. package/dist/beliefs/index.js +100 -99
  4. package/dist/beliefs/index.js.map +1 -1
  5. package/dist/beliefsClient.d.ts +14 -29
  6. package/dist/beliefsClient.js +34 -71
  7. package/dist/beliefsClient.js.map +1 -1
  8. package/dist/{client-DAuKnDlx.d.ts → client-B6aWUUwp.d.ts} +25 -20
  9. package/dist/client.d.ts +1 -1
  10. package/dist/client.js +100 -99
  11. package/dist/client.js.map +1 -1
  12. package/dist/contracts/index.js +1 -1
  13. package/dist/contracts/index.js.map +1 -1
  14. package/dist/contracts/workflow-runtime.contract.js +1 -1
  15. package/dist/contracts/workflow-runtime.contract.js.map +1 -1
  16. package/dist/contracts/workflowRuntime.js +1 -1
  17. package/dist/contracts/workflowRuntime.js.map +1 -1
  18. package/dist/contradictions/index.d.ts +1 -1
  19. package/dist/contradictions/index.js +100 -99
  20. package/dist/contradictions/index.js.map +1 -1
  21. package/dist/decisions/index.d.ts +1 -1
  22. package/dist/decisions/index.js +100 -99
  23. package/dist/decisions/index.js.map +1 -1
  24. package/dist/edges/index.d.ts +1 -1
  25. package/dist/edges/index.js +100 -99
  26. package/dist/edges/index.js.map +1 -1
  27. package/dist/evidence/index.d.ts +2 -1
  28. package/dist/evidence/index.js +100 -99
  29. package/dist/evidence/index.js.map +1 -1
  30. package/dist/gatewayFacades.d.ts +18 -6
  31. package/dist/gatewayFacades.js +22 -41
  32. package/dist/gatewayFacades.js.map +1 -1
  33. package/dist/index.d.ts +2 -2
  34. package/dist/index.js +103 -69
  35. package/dist/index.js.map +1 -1
  36. package/dist/lenses/index.d.ts +7 -5
  37. package/dist/lenses/index.js +100 -99
  38. package/dist/lenses/index.js.map +1 -1
  39. package/dist/nodes/index.d.ts +1 -1
  40. package/dist/nodes/index.js +100 -99
  41. package/dist/nodes/index.js.map +1 -1
  42. package/dist/ontologies/index.d.ts +1 -1
  43. package/dist/ontologies/index.js +100 -99
  44. package/dist/ontologies/index.js.map +1 -1
  45. package/dist/opinion.d.ts +2 -2
  46. package/dist/opinion.js +4 -4
  47. package/dist/opinion.js.map +1 -1
  48. package/dist/questions/index.d.ts +1 -1
  49. package/dist/questions/index.js +100 -99
  50. package/dist/questions/index.js.map +1 -1
  51. package/dist/topics/index.d.ts +1 -1
  52. package/dist/topics/index.js +100 -99
  53. package/dist/topics/index.js.map +1 -1
  54. package/dist/types.d.ts +7 -7
  55. package/dist/workflowClient.d.ts +18 -5
  56. package/dist/workflowClient.js +19 -7
  57. package/dist/workflowClient.js.map +1 -1
  58. package/dist/worktrees/index.d.ts +10 -7
  59. package/dist/worktrees/index.js +100 -99
  60. package/dist/worktrees/index.js.map +1 -1
  61. package/package.json +4 -3
@@ -1,7 +1,7 @@
1
1
  import { PlatformGatewaySuccess } from '../coreClient.js';
2
2
  import { PlatformGraphNode, ListResult } from '../types.js';
3
3
  import { CreateNodeInput, GetNodeInput, ListNodesInput, UpdateNodeInput, BatchCreateNodesInput, SupersedeNodeInput, VerifyNodeInput, HardDeleteNodeInput } from '../graphClient.js';
4
- import { L as LucernClientConfig } from '../client-DAuKnDlx.js';
4
+ import { L as LucernClientConfig } from '../client-B6aWUUwp.js';
5
5
  import * as v1 from '@lucern/contracts/graph/v1';
6
6
  export { v1 as graphContracts };
7
7
  import * as sdkMethods_contract from '@lucern/contracts/sdk-methods.contract';
@@ -1001,38 +1001,6 @@ function createAuditClient(config = {}) {
1001
1001
  };
1002
1002
  }
1003
1003
 
1004
- // src/opinion.ts
1005
- function clamp01(value) {
1006
- if (!Number.isFinite(value)) {
1007
- return 0;
1008
- }
1009
- return Math.max(0, Math.min(1, value));
1010
- }
1011
- function vacuous(baseRate = 0.5) {
1012
- return { b: 0, d: 0, u: 1, a: clamp01(baseRate) };
1013
- }
1014
- function dogmatic(probability, baseRate = 0.5) {
1015
- const p = clamp01(probability);
1016
- return { b: p, d: 1 - p, u: 0, a: clamp01(baseRate) };
1017
- }
1018
- function opinionFromBaseRate(probability) {
1019
- return vacuous(clamp01(probability));
1020
- }
1021
- function opinionFromDogmatic(probability, baseRate = 0.5) {
1022
- return dogmatic(clamp01(probability), clamp01(baseRate));
1023
- }
1024
- function opinionFromProjected(probability, uncertainty, baseRate = 0.5) {
1025
- const p = clamp01(probability);
1026
- const u = clamp01(uncertainty);
1027
- const remainingMass = 1 - u;
1028
- return {
1029
- b: p * remainingMass,
1030
- d: (1 - p) * remainingMass,
1031
- u,
1032
- a: clamp01(baseRate)
1033
- };
1034
- }
1035
-
1036
1004
  // src/beliefsClient.ts
1037
1005
  function asRecord2(value) {
1038
1006
  return value && typeof value === "object" && !Array.isArray(value) ? value : {};
@@ -1047,7 +1015,7 @@ function readString(value) {
1047
1015
  function readNumber(value) {
1048
1016
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
1049
1017
  }
1050
- function clamp012(value) {
1018
+ function clamp01(value) {
1051
1019
  return Math.max(0, Math.min(1, value));
1052
1020
  }
1053
1021
  function normalizeOpinionTuple(record) {
@@ -1056,20 +1024,16 @@ function normalizeOpinionTuple(record) {
1056
1024
  const rawDisbelief = readNumber(opinion.d) ?? readNumber(record.disbelief);
1057
1025
  const rawUncertainty = readNumber(opinion.u) ?? readNumber(record.uncertainty);
1058
1026
  const rawBaseRate = readNumber(opinion.a) ?? readNumber(record.baseRate);
1059
- if (rawBelief === void 0 && rawDisbelief === void 0 && rawUncertainty === void 0) {
1060
- const projected = clamp012(readNumber(record.confidence) ?? 0);
1061
- return {
1062
- b: projected,
1063
- d: 1 - projected,
1064
- u: 0,
1065
- a: 0.5
1066
- };
1027
+ if (rawBelief === void 0 || rawDisbelief === void 0 || rawUncertainty === void 0 || rawBaseRate === void 0) {
1028
+ throw new Error(
1029
+ "Gateway opinion history entries must include belief, disbelief, uncertainty, and baseRate."
1030
+ );
1067
1031
  }
1068
1032
  return {
1069
- b: clamp012(rawBelief ?? 0),
1070
- d: clamp012(rawDisbelief ?? 0),
1071
- u: clamp012(rawUncertainty ?? 0),
1072
- a: clamp012(rawBaseRate ?? 0.5)
1033
+ b: clamp01(rawBelief),
1034
+ d: clamp01(rawDisbelief),
1035
+ u: clamp01(rawUncertainty),
1036
+ a: clamp01(rawBaseRate)
1073
1037
  };
1074
1038
  }
1075
1039
  function mapOpinionHistoryEntriesFromGatewayData(payload) {
@@ -1077,28 +1041,28 @@ function mapOpinionHistoryEntriesFromGatewayData(payload) {
1077
1041
  return entries.map((value) => {
1078
1042
  const record = asRecord2(value);
1079
1043
  const tuple = normalizeOpinionTuple(record);
1080
- const projected = readNumber(record.confidence) ?? clamp012(tuple.b + tuple.a * tuple.u);
1044
+ const projected = readNumber(record.confidence) ?? clamp01(tuple.b + tuple.a * tuple.u);
1081
1045
  const triggeringEvidenceId = readString(record.triggeringEvidenceId);
1046
+ const triggeringQuestionId = readString(record.triggeringQuestionId);
1047
+ const triggeringAnswerId = readString(record.triggeringAnswerId);
1048
+ const triggeringContradictionId = readString(
1049
+ record.triggeringContradictionId
1050
+ );
1082
1051
  const triggeringWorktreeId = readString(record.triggeringWorktreeId);
1052
+ const triggeringRef = triggeringEvidenceId ? { kind: "evidence", id: triggeringEvidenceId } : triggeringQuestionId ? { kind: "question", id: triggeringQuestionId } : triggeringAnswerId ? { kind: "answer", id: triggeringAnswerId } : triggeringContradictionId ? { kind: "contradiction", id: triggeringContradictionId } : triggeringWorktreeId ? { kind: "worktree", id: triggeringWorktreeId } : void 0;
1053
+ const trigger = readString(record.trigger);
1054
+ if (!trigger) {
1055
+ throw new Error("Gateway opinion history entries must include trigger.");
1056
+ }
1083
1057
  return {
1084
1058
  t: readNumber(record.timestamp) ?? readNumber(record.assessedAt) ?? 0,
1085
1059
  b: tuple.b,
1086
1060
  d: tuple.d,
1087
1061
  u: tuple.u,
1088
1062
  a: tuple.a,
1089
- P: clamp012(projected),
1090
- trigger: readString(record.trigger) ?? "manual",
1091
- ...triggeringEvidenceId ? {
1092
- triggeringRef: {
1093
- kind: "evidence",
1094
- id: triggeringEvidenceId
1095
- }
1096
- } : triggeringWorktreeId ? {
1097
- triggeringRef: {
1098
- kind: "worktree",
1099
- id: triggeringWorktreeId
1100
- }
1101
- } : {},
1063
+ P: clamp01(projected),
1064
+ trigger,
1065
+ ...triggeringRef ? { triggeringRef } : {},
1102
1066
  ...readString(record.rationale) ? { rationale: readString(record.rationale) } : {},
1103
1067
  ...readString(record.userId) ? { userId: readString(record.userId) } : {},
1104
1068
  ...readString(record.slOperator) ? { slOperator: readString(record.slOperator) } : {}
@@ -1106,11 +1070,7 @@ function mapOpinionHistoryEntriesFromGatewayData(payload) {
1106
1070
  }).sort((left, right) => left.t - right.t);
1107
1071
  }
1108
1072
  function normalizeModulateConfidenceInput(input) {
1109
- const opinion = "opinion" in input ? input.opinion : input.interpretation === "base_rate" ? opinionFromBaseRate(input.confidence) : input.interpretation === "dogmatic" ? opinionFromDogmatic(input.confidence, input.baseRate) : opinionFromProjected(
1110
- input.confidence,
1111
- input.uncertainty,
1112
- input.baseRate
1113
- );
1073
+ const opinion = input.opinion;
1114
1074
  return {
1115
1075
  belief: opinion.b,
1116
1076
  disbelief: opinion.d,
@@ -1118,20 +1078,23 @@ function normalizeModulateConfidenceInput(input) {
1118
1078
  baseRate: opinion.a,
1119
1079
  trigger: input.trigger,
1120
1080
  rationale: input.rationale,
1081
+ triggeringEvidenceId: input.triggeringEvidenceId,
1082
+ triggeringQuestionId: input.triggeringQuestionId,
1083
+ triggeringAnswerId: input.triggeringAnswerId,
1084
+ triggeringContradictionId: input.triggeringContradictionId,
1085
+ triggeringWorktreeId: input.triggeringWorktreeId,
1121
1086
  maxInlinePropagationTargets: input.maxInlinePropagationTargets
1122
1087
  };
1123
1088
  }
1124
1089
  function createBeliefsClient(config = {}) {
1125
1090
  const gateway = createGatewayRequestClient(config);
1126
- function requireBaseRate2(value) {
1091
+ function normalizeBaseRate(value) {
1127
1092
  const baseRate = readNumber(value);
1128
- if (baseRate === void 0) {
1129
- throw new Error("baseRate is required for belief creation.");
1130
- }
1131
- if (baseRate < 0 || baseRate > 1) {
1093
+ const normalized = baseRate ?? 0.5;
1094
+ if (normalized < 0 || normalized > 1) {
1132
1095
  throw new Error("baseRate must be within [0, 1].");
1133
1096
  }
1134
- return baseRate;
1097
+ return normalized;
1135
1098
  }
1136
1099
  const modulateConfidence = async (beliefId, input, idempotencyKey) => gateway.request({
1137
1100
  path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence`,
@@ -1150,7 +1113,7 @@ function createBeliefsClient(config = {}) {
1150
1113
  * Create a belief within a topic scope.
1151
1114
  */
1152
1115
  async createBelief(input, idempotencyKey) {
1153
- const baseRate = requireBaseRate2(input.baseRate);
1116
+ const baseRate = normalizeBaseRate(input.baseRate);
1154
1117
  return gateway.request({
1155
1118
  path: "/api/platform/v1/beliefs",
1156
1119
  method: "POST",
@@ -2246,11 +2209,7 @@ function createTopicsClient(config = {}) {
2246
2209
 
2247
2210
  // src/gatewayFacades.ts
2248
2211
  function normalizeBeliefConfidenceInput(input) {
2249
- const opinion = "opinion" in input ? input.opinion : input.interpretation === "base_rate" ? opinionFromBaseRate(input.confidence) : input.interpretation === "dogmatic" ? opinionFromDogmatic(input.confidence, input.baseRate) : opinionFromProjected(
2250
- input.confidence,
2251
- input.uncertainty,
2252
- input.baseRate
2253
- );
2212
+ const opinion = input.opinion;
2254
2213
  return {
2255
2214
  belief: opinion.b,
2256
2215
  disbelief: opinion.d,
@@ -2258,6 +2217,11 @@ function normalizeBeliefConfidenceInput(input) {
2258
2217
  baseRate: opinion.a,
2259
2218
  trigger: input.trigger,
2260
2219
  rationale: input.rationale,
2220
+ triggeringEvidenceId: input.triggeringEvidenceId,
2221
+ triggeringQuestionId: input.triggeringQuestionId,
2222
+ triggeringAnswerId: input.triggeringAnswerId,
2223
+ triggeringContradictionId: input.triggeringContradictionId,
2224
+ triggeringWorktreeId: input.triggeringWorktreeId,
2261
2225
  maxInlinePropagationTargets: input.maxInlinePropagationTargets
2262
2226
  };
2263
2227
  }
@@ -2997,6 +2961,18 @@ function createWorktreesFacade(config = {}) {
2997
2961
  async list(query) {
2998
2962
  return gateway.request({
2999
2963
  path: `/api/platform/v1/worktrees${toQueryString({
2964
+ topicId: query.topicId,
2965
+ status: query.status,
2966
+ groupBy: query.groupBy,
2967
+ lane: query.lane,
2968
+ campaign: query.campaign,
2969
+ limit: query.limit
2970
+ })}`
2971
+ });
2972
+ },
2973
+ async listCampaigns(query = {}) {
2974
+ return gateway.request({
2975
+ path: `/api/platform/v1/worktrees/campaigns${toQueryString({
3000
2976
  topicId: query.topicId,
3001
2977
  status: query.status,
3002
2978
  limit: query.limit
@@ -3019,10 +2995,10 @@ function createWorktreesFacade(config = {}) {
3019
2995
  objective: input.objective,
3020
2996
  hypothesis: input.hypothesis,
3021
2997
  rationale: input.rationale,
3022
- track: input.track,
3023
- trackPosition: input.trackPosition,
3024
- executionBand: input.executionBand,
3025
- executionOrder: input.executionOrder,
2998
+ campaign: input.campaign,
2999
+ lane: input.lane,
3000
+ laneOrderInCampaign: input.laneOrderInCampaign,
3001
+ orderInLane: input.orderInLane,
3026
3002
  dependsOn: input.dependsOn,
3027
3003
  blocks: input.blocks,
3028
3004
  gate: input.gate,
@@ -3688,6 +3664,7 @@ var CONTRACTS = {
3688
3664
  "list_active_sessions": { method: "POST", path: "/coordination/active-sessions", kind: "query", idempotent: false, surfaceIntent: "system" },
3689
3665
  "list_all_worktrees": { method: "GET", path: "/worktrees/all", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
3690
3666
  "list_beliefs": { method: "GET", path: "/beliefs", kind: "query", idempotent: false, surfaceIntent: "mcp_core" },
3667
+ "list_campaigns": { method: "GET", path: "/worktrees/campaigns", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
3691
3668
  "list_evidence": { method: "GET", path: "/evidence", kind: "query", idempotent: false, surfaceIntent: "mcp_core" },
3692
3669
  "list_lenses": { method: "GET", path: "/lenses", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
3693
3670
  "list_ontologies": { method: "GET", path: "/ontologies", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
@@ -3978,6 +3955,9 @@ function createFunctionSurfaceClient(config = {}) {
3978
3955
  listBeliefs(input = {}, idempotencyKey) {
3979
3956
  return execute("list_beliefs", input, idempotencyKey);
3980
3957
  },
3958
+ listCampaigns(input = {}, idempotencyKey) {
3959
+ return execute("list_campaigns", input, idempotencyKey);
3960
+ },
3981
3961
  listEvidence(input = {}, idempotencyKey) {
3982
3962
  return execute("list_evidence", input, idempotencyKey);
3983
3963
  },
@@ -4789,10 +4769,11 @@ function createWorkflowClient(config = {}) {
4789
4769
  async listWorktrees(query) {
4790
4770
  const normalized = normalizeTopicQuery(query);
4791
4771
  return gateway.request({
4792
- path: `/api/platform/v1/worktrees${toQueryString({
4772
+ path: `/api/platform/v1/worktrees/all${toQueryString({
4793
4773
  ...normalized,
4794
- track: query.track,
4795
- executionBand: query.executionBand
4774
+ groupBy: query.groupBy,
4775
+ lane: query.lane,
4776
+ campaign: query.campaign
4796
4777
  })}`
4797
4778
  }).then(
4798
4779
  (response) => mapGatewayData(
@@ -4811,8 +4792,9 @@ function createWorkflowClient(config = {}) {
4811
4792
  return gateway.request({
4812
4793
  path: `/api/platform/v1/worktrees${toQueryString({
4813
4794
  status: query.status,
4814
- track: query.track,
4815
- executionBand: query.executionBand,
4795
+ groupBy: query.groupBy,
4796
+ lane: query.lane,
4797
+ campaign: query.campaign,
4816
4798
  limit: query.limit
4817
4799
  })}`
4818
4800
  }).then(
@@ -4824,12 +4806,22 @@ function createWorkflowClient(config = {}) {
4824
4806
  );
4825
4807
  return {
4826
4808
  ...list,
4827
- ...record.tracks && typeof record.tracks === "object" && !Array.isArray(record.tracks) ? { tracks: record.tracks } : {},
4828
- ...record.bands && typeof record.bands === "object" && !Array.isArray(record.bands) ? { bands: record.bands } : {}
4809
+ ...record.lanes && typeof record.lanes === "object" && !Array.isArray(record.lanes) ? { lanes: record.lanes } : {},
4810
+ ...record.campaigns && typeof record.campaigns === "object" && !Array.isArray(record.campaigns) ? { campaigns: record.campaigns } : {}
4829
4811
  };
4830
4812
  })
4831
4813
  );
4832
4814
  },
4815
+ /**
4816
+ * List compact pipeline campaigns with nested lanes.
4817
+ */
4818
+ async listCampaigns(query = {}) {
4819
+ return gateway.request({
4820
+ path: `/api/platform/v1/worktrees/campaigns${toQueryString(
4821
+ normalizeTopicQuery(query)
4822
+ )}`
4823
+ });
4824
+ },
4833
4825
  /**
4834
4826
  * Create a workflow worktree.
4835
4827
  */
@@ -5155,13 +5147,11 @@ function requireText(args) {
5155
5147
  return text;
5156
5148
  }
5157
5149
  function requireBaseRate(args) {
5158
- if (typeof args.baseRate !== "number" || !Number.isFinite(args.baseRate)) {
5159
- throw new Error("baseRate is required.");
5160
- }
5161
- if (args.baseRate < 0 || args.baseRate > 1) {
5150
+ const baseRate = typeof args.baseRate === "number" && Number.isFinite(args.baseRate) ? args.baseRate : 0.5;
5151
+ if (baseRate < 0 || baseRate > 1) {
5162
5152
  throw new Error("baseRate must be within [0, 1].");
5163
5153
  }
5164
- return args.baseRate;
5154
+ return baseRate;
5165
5155
  }
5166
5156
  function exposeGatewayData(response) {
5167
5157
  return Object.assign({}, response, response.data);
@@ -5279,9 +5269,13 @@ function createLucernClient(config = {}) {
5279
5269
  if (!text) {
5280
5270
  throw new Error("text is required");
5281
5271
  }
5272
+ const rationale = args.rationale ?? args.supports?.reasoning;
5273
+ if (!rationale) {
5274
+ throw new Error("rationale is required");
5275
+ }
5282
5276
  const metadata = {
5283
5277
  ...args.metadata ?? {},
5284
- ...args.supports?.reasoning ? { rationale: args.supports.reasoning } : {}
5278
+ rationale
5285
5279
  };
5286
5280
  return evidenceFacade.create({
5287
5281
  topicId: resolveTopicId(args),
@@ -5289,6 +5283,7 @@ function createLucernClient(config = {}) {
5289
5283
  source: args.source ?? args.sourceUrl,
5290
5284
  targetId: args.targetId ?? args.supports?.nodeId,
5291
5285
  weight: args.weight ?? args.supports?.weight,
5286
+ rationale,
5292
5287
  metadata: Object.keys(metadata).length > 0 ? metadata : void 0,
5293
5288
  title: args.title,
5294
5289
  content: args.content,
@@ -6119,7 +6114,10 @@ function createLucernClient(config = {}) {
6119
6114
  beliefIds: input.beliefIds,
6120
6115
  autoShape: input.autoShape,
6121
6116
  domainPackId: input.domainPackId,
6122
- executionOrder: input.executionOrder,
6117
+ campaign: input.campaign,
6118
+ lane: input.lane,
6119
+ laneOrderInCampaign: input.laneOrderInCampaign,
6120
+ orderInLane: input.orderInLane,
6123
6121
  dependsOn: input.dependsOn,
6124
6122
  blocks: input.blocks,
6125
6123
  gate: input.gate,
@@ -6138,7 +6136,10 @@ function createLucernClient(config = {}) {
6138
6136
  beliefIds: input.beliefIds,
6139
6137
  autoShape: input.autoShape,
6140
6138
  domainPackId: input.domainPackId,
6141
- executionOrder: input.executionOrder,
6139
+ campaign: input.campaign,
6140
+ lane: input.lane,
6141
+ laneOrderInCampaign: input.laneOrderInCampaign,
6142
+ orderInLane: input.orderInLane,
6142
6143
  dependsOn: input.dependsOn,
6143
6144
  blocks: input.blocks,
6144
6145
  gate: input.gate,
@@ -6166,10 +6167,10 @@ function createLucernClient(config = {}) {
6166
6167
  return worktreesFacade.update({
6167
6168
  id: typeof input.worktreeId === "string" ? input.worktreeId : "",
6168
6169
  hypothesis: typeof input.hypothesis === "string" ? input.hypothesis : void 0,
6169
- track: typeof input.track === "string" ? input.track : void 0,
6170
- trackPosition: typeof input.trackPosition === "number" ? input.trackPosition : void 0,
6171
- executionBand: typeof input.executionBand === "number" ? input.executionBand : void 0,
6172
- executionOrder: typeof input.executionOrder === "number" ? input.executionOrder : void 0,
6170
+ campaign: typeof input.campaign === "number" ? input.campaign : void 0,
6171
+ lane: typeof input.lane === "string" ? input.lane : void 0,
6172
+ laneOrderInCampaign: typeof input.laneOrderInCampaign === "number" ? input.laneOrderInCampaign : void 0,
6173
+ orderInLane: typeof input.orderInLane === "number" ? input.orderInLane : void 0,
6173
6174
  dependsOn,
6174
6175
  blocks,
6175
6176
  gate: typeof input.gate === "string" ? input.gate : void 0