@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
package/dist/index.d.ts CHANGED
@@ -3,8 +3,8 @@ export { AdminClientConfig, TenantApiKeyRecord, TenantAuthPolicyMode, TenantConf
3
3
  export { AnswersClientConfig, createAnswersClient } from './answersClient.js';
4
4
  export { AudienceGrantInput, AudienceGrantRevokeInput, AudienceRegistryInput, AudiencesClientConfig, createAudiencesClient } from './audiencesClient.js';
5
5
  export { AuditClientConfig, createAuditClient } from './auditClient.js';
6
- export { BatchUpdateBeliefCriticalityInput, BeliefsClientConfig, CreateBeliefInput, ForkBeliefInput, LinkBeliefsInput, ModulateConfidenceInput, ModulateConfidenceOpinionInput, ModulateConfidenceScalarInput, OpinionHistoryEntry, ReassignBeliefsTopicInput, RefineBeliefInput, UnlinkBeliefEvidenceInput, UpdateBeliefCriticalityInput, UpdateBeliefRationaleInput, UpdateBeliefStatusInput, createBeliefsClient, mapOpinionHistoryEntriesFromGatewayData } from './beliefsClient.js';
7
- export { d as FUNCTION_SURFACE_METHOD_PATHS, F as FunctionSurfaceClientConfig, a as FunctionSurfaceInput, b as FunctionSurfaceResult, L as LucernClientConfig, e as createFunctionSurfaceClient, c as createLucernClient } from './client-DAuKnDlx.js';
6
+ export { BatchUpdateBeliefCriticalityInput, BeliefsClientConfig, CreateBeliefInput, ForkBeliefInput, LinkBeliefsInput, ModulateConfidenceInput, ModulateConfidenceOpinionInput, OpinionHistoryEntry, ReassignBeliefsTopicInput, RefineBeliefInput, UnlinkBeliefEvidenceInput, UpdateBeliefCriticalityInput, UpdateBeliefRationaleInput, UpdateBeliefStatusInput, createBeliefsClient, mapOpinionHistoryEntriesFromGatewayData } from './beliefsClient.js';
7
+ export { d as FUNCTION_SURFACE_METHOD_PATHS, F as FunctionSurfaceClientConfig, a as FunctionSurfaceInput, b as FunctionSurfaceResult, L as LucernClientConfig, e as createFunctionSurfaceClient, c as createLucernClient } from './client-B6aWUUwp.js';
8
8
  export { ContextFacadeConfig, ContextFacadeTransport, createContextFacade } from './facade/context.js';
9
9
  export { CompileContextPackPlan, CompileContextPackPlanInput, CompileContextPackSnapshot, ContextPackTopicRow, compileContextPackFromSnapshot, planContextPackCompilation } from './contextPackCompiler.js';
10
10
  export { CONTROL_OBJECT_BLAST_RADII, CONTROL_OBJECT_EDIT_SURFACES, CONTROL_OBJECT_INHERITANCE_RULES, CONTROL_OBJECT_KINDS, CONTROL_OBJECT_OWNERSHIP_CONTRACT, CONTROL_OBJECT_OWNERSHIP_MATRIX, CONTROL_OBJECT_OWNERSHIP_ROWS, CONTROL_OBJECT_OWNER_SCOPES, ControlObjectBlastRadius, ControlObjectEditSurface, ControlObjectInheritanceRule, ControlObjectKind, ControlObjectOwnerScope, ControlObjectOwnershipCase, ControlObjectOwnershipContract, ControlObjectOwnershipMatrix, getControlObjectOwnershipCase, listControlObjectOwnershipCases } from './controlObjectOwnership.js';
package/dist/index.js CHANGED
@@ -172,20 +172,20 @@ function clamp01(value) {
172
172
  }
173
173
  return Math.max(0, Math.min(1, value));
174
174
  }
175
- function vacuous(baseRate = 0.5) {
175
+ function vacuous(baseRate) {
176
176
  return { b: 0, d: 0, u: 1, a: clamp01(baseRate) };
177
177
  }
178
- function dogmatic(probability, baseRate = 0.5) {
178
+ function dogmatic(probability, baseRate) {
179
179
  const p = clamp01(probability);
180
180
  return { b: p, d: 1 - p, u: 0, a: clamp01(baseRate) };
181
181
  }
182
182
  function opinionFromBaseRate(probability) {
183
183
  return vacuous(clamp01(probability));
184
184
  }
185
- function opinionFromDogmatic(probability, baseRate = 0.5) {
185
+ function opinionFromDogmatic(probability, baseRate) {
186
186
  return dogmatic(clamp01(probability), clamp01(baseRate));
187
187
  }
188
- function opinionFromProjected(probability, uncertainty, baseRate = 0.5) {
188
+ function opinionFromProjected(probability, uncertainty, baseRate) {
189
189
  const p = clamp01(probability);
190
190
  const u = clamp01(uncertainty);
191
191
  const remainingMass = 1 - u;
@@ -1217,20 +1217,16 @@ function normalizeOpinionTuple(record) {
1217
1217
  const rawDisbelief = readNumber(opinion.d) ?? readNumber(record.disbelief);
1218
1218
  const rawUncertainty = readNumber(opinion.u) ?? readNumber(record.uncertainty);
1219
1219
  const rawBaseRate = readNumber(opinion.a) ?? readNumber(record.baseRate);
1220
- if (rawBelief === void 0 && rawDisbelief === void 0 && rawUncertainty === void 0) {
1221
- const projected = clamp012(readNumber(record.confidence) ?? 0);
1222
- return {
1223
- b: projected,
1224
- d: 1 - projected,
1225
- u: 0,
1226
- a: 0.5
1227
- };
1220
+ if (rawBelief === void 0 || rawDisbelief === void 0 || rawUncertainty === void 0 || rawBaseRate === void 0) {
1221
+ throw new Error(
1222
+ "Gateway opinion history entries must include belief, disbelief, uncertainty, and baseRate."
1223
+ );
1228
1224
  }
1229
1225
  return {
1230
- b: clamp012(rawBelief ?? 0),
1231
- d: clamp012(rawDisbelief ?? 0),
1232
- u: clamp012(rawUncertainty ?? 0),
1233
- a: clamp012(rawBaseRate ?? 0.5)
1226
+ b: clamp012(rawBelief),
1227
+ d: clamp012(rawDisbelief),
1228
+ u: clamp012(rawUncertainty),
1229
+ a: clamp012(rawBaseRate)
1234
1230
  };
1235
1231
  }
1236
1232
  function mapOpinionHistoryEntriesFromGatewayData(payload) {
@@ -1240,7 +1236,17 @@ function mapOpinionHistoryEntriesFromGatewayData(payload) {
1240
1236
  const tuple = normalizeOpinionTuple(record);
1241
1237
  const projected = readNumber(record.confidence) ?? clamp012(tuple.b + tuple.a * tuple.u);
1242
1238
  const triggeringEvidenceId = readString(record.triggeringEvidenceId);
1239
+ const triggeringQuestionId = readString(record.triggeringQuestionId);
1240
+ const triggeringAnswerId = readString(record.triggeringAnswerId);
1241
+ const triggeringContradictionId = readString(
1242
+ record.triggeringContradictionId
1243
+ );
1243
1244
  const triggeringWorktreeId = readString(record.triggeringWorktreeId);
1245
+ 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;
1246
+ const trigger = readString(record.trigger);
1247
+ if (!trigger) {
1248
+ throw new Error("Gateway opinion history entries must include trigger.");
1249
+ }
1244
1250
  return {
1245
1251
  t: readNumber(record.timestamp) ?? readNumber(record.assessedAt) ?? 0,
1246
1252
  b: tuple.b,
@@ -1248,18 +1254,8 @@ function mapOpinionHistoryEntriesFromGatewayData(payload) {
1248
1254
  u: tuple.u,
1249
1255
  a: tuple.a,
1250
1256
  P: clamp012(projected),
1251
- trigger: readString(record.trigger) ?? "manual",
1252
- ...triggeringEvidenceId ? {
1253
- triggeringRef: {
1254
- kind: "evidence",
1255
- id: triggeringEvidenceId
1256
- }
1257
- } : triggeringWorktreeId ? {
1258
- triggeringRef: {
1259
- kind: "worktree",
1260
- id: triggeringWorktreeId
1261
- }
1262
- } : {},
1257
+ trigger,
1258
+ ...triggeringRef ? { triggeringRef } : {},
1263
1259
  ...readString(record.rationale) ? { rationale: readString(record.rationale) } : {},
1264
1260
  ...readString(record.userId) ? { userId: readString(record.userId) } : {},
1265
1261
  ...readString(record.slOperator) ? { slOperator: readString(record.slOperator) } : {}
@@ -1267,11 +1263,7 @@ function mapOpinionHistoryEntriesFromGatewayData(payload) {
1267
1263
  }).sort((left, right) => left.t - right.t);
1268
1264
  }
1269
1265
  function normalizeModulateConfidenceInput(input) {
1270
- const opinion = "opinion" in input ? input.opinion : input.interpretation === "base_rate" ? opinionFromBaseRate(input.confidence) : input.interpretation === "dogmatic" ? opinionFromDogmatic(input.confidence, input.baseRate) : opinionFromProjected(
1271
- input.confidence,
1272
- input.uncertainty,
1273
- input.baseRate
1274
- );
1266
+ const opinion = input.opinion;
1275
1267
  return {
1276
1268
  belief: opinion.b,
1277
1269
  disbelief: opinion.d,
@@ -1279,20 +1271,23 @@ function normalizeModulateConfidenceInput(input) {
1279
1271
  baseRate: opinion.a,
1280
1272
  trigger: input.trigger,
1281
1273
  rationale: input.rationale,
1274
+ triggeringEvidenceId: input.triggeringEvidenceId,
1275
+ triggeringQuestionId: input.triggeringQuestionId,
1276
+ triggeringAnswerId: input.triggeringAnswerId,
1277
+ triggeringContradictionId: input.triggeringContradictionId,
1278
+ triggeringWorktreeId: input.triggeringWorktreeId,
1282
1279
  maxInlinePropagationTargets: input.maxInlinePropagationTargets
1283
1280
  };
1284
1281
  }
1285
1282
  function createBeliefsClient(config = {}) {
1286
1283
  const gateway = createGatewayRequestClient(config);
1287
- function requireBaseRate2(value) {
1284
+ function normalizeBaseRate(value) {
1288
1285
  const baseRate = readNumber(value);
1289
- if (baseRate === void 0) {
1290
- throw new Error("baseRate is required for belief creation.");
1291
- }
1292
- if (baseRate < 0 || baseRate > 1) {
1286
+ const normalized = baseRate ?? 0.5;
1287
+ if (normalized < 0 || normalized > 1) {
1293
1288
  throw new Error("baseRate must be within [0, 1].");
1294
1289
  }
1295
- return baseRate;
1290
+ return normalized;
1296
1291
  }
1297
1292
  const modulateConfidence = async (beliefId, input, idempotencyKey) => gateway.request({
1298
1293
  path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence`,
@@ -1311,7 +1306,7 @@ function createBeliefsClient(config = {}) {
1311
1306
  * Create a belief within a topic scope.
1312
1307
  */
1313
1308
  async createBelief(input, idempotencyKey) {
1314
- const baseRate = requireBaseRate2(input.baseRate);
1309
+ const baseRate = normalizeBaseRate(input.baseRate);
1315
1310
  return gateway.request({
1316
1311
  path: "/api/platform/v1/beliefs",
1317
1312
  method: "POST",
@@ -2407,11 +2402,7 @@ function createTopicsClient(config = {}) {
2407
2402
 
2408
2403
  // src/gatewayFacades.ts
2409
2404
  function normalizeBeliefConfidenceInput(input) {
2410
- const opinion = "opinion" in input ? input.opinion : input.interpretation === "base_rate" ? opinionFromBaseRate(input.confidence) : input.interpretation === "dogmatic" ? opinionFromDogmatic(input.confidence, input.baseRate) : opinionFromProjected(
2411
- input.confidence,
2412
- input.uncertainty,
2413
- input.baseRate
2414
- );
2405
+ const opinion = input.opinion;
2415
2406
  return {
2416
2407
  belief: opinion.b,
2417
2408
  disbelief: opinion.d,
@@ -2419,6 +2410,11 @@ function normalizeBeliefConfidenceInput(input) {
2419
2410
  baseRate: opinion.a,
2420
2411
  trigger: input.trigger,
2421
2412
  rationale: input.rationale,
2413
+ triggeringEvidenceId: input.triggeringEvidenceId,
2414
+ triggeringQuestionId: input.triggeringQuestionId,
2415
+ triggeringAnswerId: input.triggeringAnswerId,
2416
+ triggeringContradictionId: input.triggeringContradictionId,
2417
+ triggeringWorktreeId: input.triggeringWorktreeId,
2422
2418
  maxInlinePropagationTargets: input.maxInlinePropagationTargets
2423
2419
  };
2424
2420
  }
@@ -3158,6 +3154,18 @@ function createWorktreesFacade(config = {}) {
3158
3154
  async list(query) {
3159
3155
  return gateway.request({
3160
3156
  path: `/api/platform/v1/worktrees${toQueryString({
3157
+ topicId: query.topicId,
3158
+ status: query.status,
3159
+ groupBy: query.groupBy,
3160
+ lane: query.lane,
3161
+ campaign: query.campaign,
3162
+ limit: query.limit
3163
+ })}`
3164
+ });
3165
+ },
3166
+ async listCampaigns(query = {}) {
3167
+ return gateway.request({
3168
+ path: `/api/platform/v1/worktrees/campaigns${toQueryString({
3161
3169
  topicId: query.topicId,
3162
3170
  status: query.status,
3163
3171
  limit: query.limit
@@ -3180,10 +3188,10 @@ function createWorktreesFacade(config = {}) {
3180
3188
  objective: input.objective,
3181
3189
  hypothesis: input.hypothesis,
3182
3190
  rationale: input.rationale,
3183
- track: input.track,
3184
- trackPosition: input.trackPosition,
3185
- executionBand: input.executionBand,
3186
- executionOrder: input.executionOrder,
3191
+ campaign: input.campaign,
3192
+ lane: input.lane,
3193
+ laneOrderInCampaign: input.laneOrderInCampaign,
3194
+ orderInLane: input.orderInLane,
3187
3195
  dependsOn: input.dependsOn,
3188
3196
  blocks: input.blocks,
3189
3197
  gate: input.gate,
@@ -3879,6 +3887,7 @@ var FUNCTION_SURFACE_METHOD_PATHS = [
3879
3887
  "worktrees.activateWorktree",
3880
3888
  "worktrees.addWorktree",
3881
3889
  "worktrees.listAllWorktrees",
3890
+ "worktrees.listCampaigns",
3882
3891
  "worktrees.listWorktrees",
3883
3892
  "worktrees.merge",
3884
3893
  "worktrees.openPullRequest",
@@ -3959,6 +3968,7 @@ var CONTRACTS = {
3959
3968
  "list_active_sessions": { method: "POST", path: "/coordination/active-sessions", kind: "query", idempotent: false, surfaceIntent: "system" },
3960
3969
  "list_all_worktrees": { method: "GET", path: "/worktrees/all", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
3961
3970
  "list_beliefs": { method: "GET", path: "/beliefs", kind: "query", idempotent: false, surfaceIntent: "mcp_core" },
3971
+ "list_campaigns": { method: "GET", path: "/worktrees/campaigns", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
3962
3972
  "list_evidence": { method: "GET", path: "/evidence", kind: "query", idempotent: false, surfaceIntent: "mcp_core" },
3963
3973
  "list_lenses": { method: "GET", path: "/lenses", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
3964
3974
  "list_ontologies": { method: "GET", path: "/ontologies", kind: "query", idempotent: false, surfaceIntent: "mcp_workflow" },
@@ -4249,6 +4259,9 @@ function createFunctionSurfaceClient(config = {}) {
4249
4259
  listBeliefs(input = {}, idempotencyKey) {
4250
4260
  return execute("list_beliefs", input, idempotencyKey);
4251
4261
  },
4262
+ listCampaigns(input = {}, idempotencyKey) {
4263
+ return execute("list_campaigns", input, idempotencyKey);
4264
+ },
4252
4265
  listEvidence(input = {}, idempotencyKey) {
4253
4266
  return execute("list_evidence", input, idempotencyKey);
4254
4267
  },
@@ -5060,10 +5073,11 @@ function createWorkflowClient(config = {}) {
5060
5073
  async listWorktrees(query) {
5061
5074
  const normalized = normalizeTopicQuery(query);
5062
5075
  return gateway.request({
5063
- path: `/api/platform/v1/worktrees${toQueryString({
5076
+ path: `/api/platform/v1/worktrees/all${toQueryString({
5064
5077
  ...normalized,
5065
- track: query.track,
5066
- executionBand: query.executionBand
5078
+ groupBy: query.groupBy,
5079
+ lane: query.lane,
5080
+ campaign: query.campaign
5067
5081
  })}`
5068
5082
  }).then(
5069
5083
  (response) => mapGatewayData(
@@ -5082,8 +5096,9 @@ function createWorkflowClient(config = {}) {
5082
5096
  return gateway.request({
5083
5097
  path: `/api/platform/v1/worktrees${toQueryString({
5084
5098
  status: query.status,
5085
- track: query.track,
5086
- executionBand: query.executionBand,
5099
+ groupBy: query.groupBy,
5100
+ lane: query.lane,
5101
+ campaign: query.campaign,
5087
5102
  limit: query.limit
5088
5103
  })}`
5089
5104
  }).then(
@@ -5095,12 +5110,22 @@ function createWorkflowClient(config = {}) {
5095
5110
  );
5096
5111
  return {
5097
5112
  ...list,
5098
- ...record.tracks && typeof record.tracks === "object" && !Array.isArray(record.tracks) ? { tracks: record.tracks } : {},
5099
- ...record.bands && typeof record.bands === "object" && !Array.isArray(record.bands) ? { bands: record.bands } : {}
5113
+ ...record.lanes && typeof record.lanes === "object" && !Array.isArray(record.lanes) ? { lanes: record.lanes } : {},
5114
+ ...record.campaigns && typeof record.campaigns === "object" && !Array.isArray(record.campaigns) ? { campaigns: record.campaigns } : {}
5100
5115
  };
5101
5116
  })
5102
5117
  );
5103
5118
  },
5119
+ /**
5120
+ * List compact pipeline campaigns with nested lanes.
5121
+ */
5122
+ async listCampaigns(query = {}) {
5123
+ return gateway.request({
5124
+ path: `/api/platform/v1/worktrees/campaigns${toQueryString(
5125
+ normalizeTopicQuery(query)
5126
+ )}`
5127
+ });
5128
+ },
5104
5129
  /**
5105
5130
  * Create a workflow worktree.
5106
5131
  */
@@ -5426,13 +5451,11 @@ function requireText(args) {
5426
5451
  return text;
5427
5452
  }
5428
5453
  function requireBaseRate(args) {
5429
- if (typeof args.baseRate !== "number" || !Number.isFinite(args.baseRate)) {
5430
- throw new Error("baseRate is required.");
5431
- }
5432
- if (args.baseRate < 0 || args.baseRate > 1) {
5454
+ const baseRate = typeof args.baseRate === "number" && Number.isFinite(args.baseRate) ? args.baseRate : 0.5;
5455
+ if (baseRate < 0 || baseRate > 1) {
5433
5456
  throw new Error("baseRate must be within [0, 1].");
5434
5457
  }
5435
- return args.baseRate;
5458
+ return baseRate;
5436
5459
  }
5437
5460
  function exposeGatewayData(response) {
5438
5461
  return Object.assign({}, response, response.data);
@@ -5550,9 +5573,13 @@ function createLucernClient(config = {}) {
5550
5573
  if (!text) {
5551
5574
  throw new Error("text is required");
5552
5575
  }
5576
+ const rationale = args.rationale ?? args.supports?.reasoning;
5577
+ if (!rationale) {
5578
+ throw new Error("rationale is required");
5579
+ }
5553
5580
  const metadata = {
5554
5581
  ...args.metadata ?? {},
5555
- ...args.supports?.reasoning ? { rationale: args.supports.reasoning } : {}
5582
+ rationale
5556
5583
  };
5557
5584
  return evidenceFacade.create({
5558
5585
  topicId: resolveTopicId(args),
@@ -5560,6 +5587,7 @@ function createLucernClient(config = {}) {
5560
5587
  source: args.source ?? args.sourceUrl,
5561
5588
  targetId: args.targetId ?? args.supports?.nodeId,
5562
5589
  weight: args.weight ?? args.supports?.weight,
5590
+ rationale,
5563
5591
  metadata: Object.keys(metadata).length > 0 ? metadata : void 0,
5564
5592
  title: args.title,
5565
5593
  content: args.content,
@@ -6390,7 +6418,10 @@ function createLucernClient(config = {}) {
6390
6418
  beliefIds: input.beliefIds,
6391
6419
  autoShape: input.autoShape,
6392
6420
  domainPackId: input.domainPackId,
6393
- executionOrder: input.executionOrder,
6421
+ campaign: input.campaign,
6422
+ lane: input.lane,
6423
+ laneOrderInCampaign: input.laneOrderInCampaign,
6424
+ orderInLane: input.orderInLane,
6394
6425
  dependsOn: input.dependsOn,
6395
6426
  blocks: input.blocks,
6396
6427
  gate: input.gate,
@@ -6409,7 +6440,10 @@ function createLucernClient(config = {}) {
6409
6440
  beliefIds: input.beliefIds,
6410
6441
  autoShape: input.autoShape,
6411
6442
  domainPackId: input.domainPackId,
6412
- executionOrder: input.executionOrder,
6443
+ campaign: input.campaign,
6444
+ lane: input.lane,
6445
+ laneOrderInCampaign: input.laneOrderInCampaign,
6446
+ orderInLane: input.orderInLane,
6413
6447
  dependsOn: input.dependsOn,
6414
6448
  blocks: input.blocks,
6415
6449
  gate: input.gate,
@@ -6437,10 +6471,10 @@ function createLucernClient(config = {}) {
6437
6471
  return worktreesFacade.update({
6438
6472
  id: typeof input.worktreeId === "string" ? input.worktreeId : "",
6439
6473
  hypothesis: typeof input.hypothesis === "string" ? input.hypothesis : void 0,
6440
- track: typeof input.track === "string" ? input.track : void 0,
6441
- trackPosition: typeof input.trackPosition === "number" ? input.trackPosition : void 0,
6442
- executionBand: typeof input.executionBand === "number" ? input.executionBand : void 0,
6443
- executionOrder: typeof input.executionOrder === "number" ? input.executionOrder : void 0,
6474
+ campaign: typeof input.campaign === "number" ? input.campaign : void 0,
6475
+ lane: typeof input.lane === "string" ? input.lane : void 0,
6476
+ laneOrderInCampaign: typeof input.laneOrderInCampaign === "number" ? input.laneOrderInCampaign : void 0,
6477
+ orderInLane: typeof input.orderInLane === "number" ? input.orderInLane : void 0,
6444
6478
  dependsOn,
6445
6479
  blocks,
6446
6480
  gate: typeof input.gate === "string" ? input.gate : void 0
@@ -8730,7 +8764,7 @@ var CANONICAL_WORKFLOW_DEFINITIONS = [
8730
8764
  actionId: "run_integrity_checks",
8731
8765
  kind: "integrity_check",
8732
8766
  title: "Run integrity checks",
8733
- description: "Evaluate dependency references, blockers, execution bands, shaping coverage, and completed gates.",
8767
+ description: "Evaluate dependency references, blockers, campaign/lane placement, shaping coverage, and completed gates.",
8734
8768
  mutationTier: "read_only",
8735
8769
  produces: ["structured_payload"],
8736
8770
  idempotent: true,