@overdeck/contracts 0.49.1 → 0.50.0

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.
package/dist/index.mjs CHANGED
@@ -410,6 +410,72 @@ const EmbedProgressSnapshot = Schema.Struct({
410
410
  error: Schema.optional(Schema.String),
411
411
  timestamp: Schema.String
412
412
  });
413
+ const ProjectCiSuite = Schema.Struct({
414
+ status: Schema.String,
415
+ conclusion: Schema.NullOr(Schema.String),
416
+ htmlUrl: Schema.optional(Schema.String),
417
+ /** GitHub's suite/run update time, used to reject delayed same-SHA events. */
418
+ observedAt: Schema.optional(Schema.String)
419
+ });
420
+ const ProjectCiSnapshot = Schema.Struct({
421
+ projectKey: Schema.String,
422
+ repo: Schema.String,
423
+ branch: Schema.String,
424
+ headSha: Schema.String,
425
+ /** suiteId → suite. Only GitHub Actions suites ever appear here. */
426
+ suites: Schema.Record(Schema.String, ProjectCiSuite),
427
+ /** Newest `observedAt` folded into this record. */
428
+ updatedAt: Schema.String
429
+ });
430
+ /** What kind of process asked for the voluntary dashboard restart. */
431
+ const RestartGateKind = Schema.Literals([
432
+ "deploy",
433
+ "reload",
434
+ "restart"
435
+ ]);
436
+ /**
437
+ * One live restart request. `requesterId` is stable for a single requester
438
+ * invocation (e.g. `deploy:PAN-3724:<pid>`), so a re-poll refreshes the same
439
+ * row instead of adding another.
440
+ */
441
+ const RestartGateRequest = Schema.Struct({
442
+ requesterId: Schema.String,
443
+ kind: RestartGateKind,
444
+ reason: Schema.String,
445
+ builtSha: Schema.optional(Schema.String),
446
+ requestedAt: Schema.String
447
+ });
448
+ /**
449
+ * How the last approval cycle ended, when the ending is worth telling the
450
+ * operator about (PAN-3731). Present only inside the brief window after it
451
+ * happened, so the banner can explain a click that restarted nothing.
452
+ *
453
+ * `pruned-unclaimed` — an approved epoch expired with nobody left to perform
454
+ * the restart: every requester died before claiming, or a claimant lapsed and
455
+ * the rest gave up. Either way nothing was restarted.
456
+ */
457
+ const RestartGateOutcome = Schema.Struct({
458
+ type: Schema.Literals(["pruned-unclaimed"]),
459
+ at: Schema.String
460
+ });
461
+ /**
462
+ * The operator-facing view of the restart gate — identical to the body of
463
+ * `GET /api/restart-gate`, so the banner and the CLI read the same shape.
464
+ *
465
+ * `idle` no live requests; `pending` requests are waiting for approval;
466
+ * `approved` the operator approved an epoch that nobody has claimed yet;
467
+ * `claimed` one requester holds the exclusive right to perform the restart.
468
+ */
469
+ const RestartGateSnapshot = Schema.Struct({
470
+ status: Schema.Literals([
471
+ "idle",
472
+ "pending",
473
+ "approved",
474
+ "claimed"
475
+ ]),
476
+ pending: Schema.Array(RestartGateRequest),
477
+ lastOutcome: Schema.optional(RestartGateOutcome)
478
+ });
413
479
  const DashboardSnapshot = Schema.Struct({
414
480
  sequence: SequenceNumber,
415
481
  agents: Schema.Array(AgentSnapshot),
@@ -425,6 +491,8 @@ const DashboardSnapshot = Schema.Struct({
425
491
  enrichStats: Schema.optional(Schema.NullOr(EnrichStatsSnapshot)),
426
492
  enrichProgressBySessionId: Schema.optional(Schema.Record(Schema.String, EnrichProgressSnapshot)),
427
493
  embedProgressBySessionId: Schema.optional(Schema.Record(Schema.String, EmbedProgressSnapshot)),
494
+ ciByProjectKey: Schema.optional(Schema.Record(Schema.String, ProjectCiSnapshot)),
495
+ restartGate: Schema.optional(RestartGateSnapshot),
428
496
  timestamp: Schema.String
429
497
  });
430
498
  const WorkspaceDetail = Schema.Struct({
@@ -1148,6 +1216,76 @@ const BeadsFreshnessChangedEvent = Schema.Struct({
1148
1216
  lastSyncedAt: Schema.String
1149
1217
  })
1150
1218
  });
1219
+ /**
1220
+ * One GitHub Actions check suite observed on a project's default branch
1221
+ * (PAN-3537).
1222
+ *
1223
+ * Emitted by the `check_suite` webhook handler for live updates, only after an
1224
+ * independent branch-head lookup verifies the payload SHA is still current.
1225
+ * `suiteId` is the check suite id — for GitHub Actions that is one suite per
1226
+ * workflow run. The webhook payload does not carry `htmlUrl`.
1227
+ *
1228
+ * Boot and periodic repair use `project.ci_head_observed`, which replaces the
1229
+ * complete projection after pagination. Both events feed
1230
+ * `ReadModelState.ciByProjectKey`, a disposable cache rebuilt from REST on every
1231
+ * boot — there is no durable CI store.
1232
+ */
1233
+ const ProjectCiSuiteObservedEvent = Schema.Struct({
1234
+ type: Schema.Literal("project.ci_suite_observed"),
1235
+ sequence: SequenceNumber,
1236
+ timestamp: Schema.String,
1237
+ payload: Schema.Struct({
1238
+ projectKey: Schema.String,
1239
+ repo: Schema.String,
1240
+ branch: Schema.String,
1241
+ headSha: Schema.String,
1242
+ suiteId: Schema.String,
1243
+ status: Schema.String,
1244
+ conclusion: Schema.NullOr(Schema.String),
1245
+ htmlUrl: Schema.optional(Schema.String),
1246
+ observedAt: Schema.String,
1247
+ /** True only after the emitter verified headSha against the branch head. */
1248
+ authoritativeHead: Schema.optional(Schema.Boolean)
1249
+ })
1250
+ });
1251
+ /**
1252
+ * Complete GitHub Actions projection for the verified default-branch head.
1253
+ * The REST seed/repair emits one event after paginating every run and verifying
1254
+ * the branch head a second time. An empty suites record explicitly clears stale
1255
+ * CI when the current commit has no Actions runs.
1256
+ */
1257
+ const ProjectCiHeadObservedEvent = Schema.Struct({
1258
+ type: Schema.Literal("project.ci_head_observed"),
1259
+ sequence: SequenceNumber,
1260
+ timestamp: Schema.String,
1261
+ payload: Schema.Struct({
1262
+ projectKey: Schema.String,
1263
+ repo: Schema.String,
1264
+ branch: Schema.String,
1265
+ headSha: Schema.String,
1266
+ suites: Schema.Record(Schema.String, ProjectCiSuite),
1267
+ observedAt: Schema.String
1268
+ })
1269
+ });
1270
+ /**
1271
+ * The restart gate changed (PAN-3729).
1272
+ *
1273
+ * The payload is the COMPLETE gate projection, not a delta, so the reducer is a
1274
+ * plain replace and no ordering logic is needed. Emitted by the gate writer
1275
+ * (`src/dashboard/server/services/restart-gate.ts`) on every mutation and on
1276
+ * every sweep tick that drops an expired request, so the approval banner clears
1277
+ * itself when a requester dies without polling again.
1278
+ *
1279
+ * The gate is runtime-plane state (like `~/.overdeck/dashboard-restarting.json`),
1280
+ * so this event is emitted in-memory only — it is never persisted to the event
1281
+ * log and never replayed at boot.
1282
+ */
1283
+ const RestartGateChangedEvent = Schema.Struct({
1284
+ type: Schema.Literal("restart_gate.changed"),
1285
+ sequence: SequenceNumber,
1286
+ timestamp: Schema.String,
1287
+ payload: RestartGateSnapshot
1288
+ });
1151
1289
  /** Replaces socket.io `agents:changed` (event: 'started') */
1152
1290
  const AgentStartedEvent = Schema.Struct({
1153
1291
  type: Schema.Literal("agent.started"),
@@ -2416,6 +2554,9 @@ const SweepRecommendationEvent = Schema.Struct({
2416
2554
  const DomainEvent = Schema.Union([
2417
2555
  SystemHeartbeatEvent,
2418
2556
  BeadsFreshnessChangedEvent,
2557
+ ProjectCiSuiteObservedEvent,
2558
+ ProjectCiHeadObservedEvent,
2559
+ RestartGateChangedEvent,
2419
2560
  AgentCreatedEvent,
2420
2561
  AgentEnrichmentChangedEvent,
2421
2562
  AgentStartedEvent,
@@ -3484,6 +3625,8 @@ const INITIAL_READ_MODEL_STATE = {
3484
3625
  enrichStats: null,
3485
3626
  enrichProgressBySessionId: {},
3486
3627
  embedProgressBySessionId: {},
3628
+ ciByProjectKey: {},
3629
+ restartGate: null,
3487
3630
  agentIdBySessionId: {},
3488
3631
  dashboardLifecycle: {
3489
3632
  active: false,
@@ -3609,6 +3752,8 @@ function syncSnapshot(state, snapshot) {
3609
3752
  enrichStats: snapshot.enrichStats ?? null,
3610
3753
  enrichProgressBySessionId: snapshot.enrichProgressBySessionId ?? {},
3611
3754
  embedProgressBySessionId: snapshot.embedProgressBySessionId ?? {},
3755
+ ciByProjectKey: snapshot.ciByProjectKey ?? state.ciByProjectKey,
3756
+ restartGate: snapshot.restartGate ?? state.restartGate,
3612
3757
  agentIdBySessionId
3613
3758
  };
3614
3759
  }
@@ -3949,6 +4094,97 @@ function applyEvent(state, event) {
3949
4094
  ...state,
3950
4095
  sequence: Math.max(state.sequence, event.sequence)
3951
4096
  };
4097
+ case "project.ci_suite_observed": {
4098
+ const p = event.payload;
4099
+ const existing = state.ciByProjectKey[p.projectKey];
4100
+ const suite = {
4101
+ status: p.status,
4102
+ conclusion: p.conclusion,
4103
+ htmlUrl: p.htmlUrl,
4104
+ observedAt: p.observedAt
4105
+ };
4106
+ let next;
4107
+ if (!existing) {
4108
+ if (p.authoritativeHead !== true) return {
4109
+ ...state,
4110
+ sequence: Math.max(state.sequence, event.sequence)
4111
+ };
4112
+ next = {
4113
+ projectKey: p.projectKey,
4114
+ repo: p.repo,
4115
+ branch: p.branch,
4116
+ headSha: p.headSha,
4117
+ suites: { [p.suiteId]: suite },
4118
+ updatedAt: p.observedAt
4119
+ };
4120
+ } else if (existing.headSha === p.headSha) {
4121
+ const existingSuite = existing.suites[p.suiteId];
4122
+ const existingSuiteObservedAt = existingSuite?.observedAt ?? existing.updatedAt;
4123
+ if (existingSuite && p.observedAt < existingSuiteObservedAt) return {
4124
+ ...state,
4125
+ sequence: Math.max(state.sequence, event.sequence)
4126
+ };
4127
+ next = {
4128
+ ...existing,
4129
+ suites: {
4130
+ ...existing.suites,
4131
+ [p.suiteId]: suite
4132
+ },
4133
+ updatedAt: p.observedAt > existing.updatedAt ? p.observedAt : existing.updatedAt
4134
+ };
4135
+ } else if (p.authoritativeHead === true && p.observedAt >= existing.updatedAt) next = {
4136
+ projectKey: p.projectKey,
4137
+ repo: p.repo,
4138
+ branch: p.branch,
4139
+ headSha: p.headSha,
4140
+ suites: { [p.suiteId]: suite },
4141
+ updatedAt: p.observedAt
4142
+ };
4143
+ else return {
4144
+ ...state,
4145
+ sequence: Math.max(state.sequence, event.sequence)
4146
+ };
4147
+ return {
4148
+ ...state,
4149
+ sequence: Math.max(state.sequence, event.sequence),
4150
+ ciByProjectKey: {
4151
+ ...state.ciByProjectKey,
4152
+ [p.projectKey]: next
4153
+ }
4154
+ };
4155
+ }
4156
+ case "project.ci_head_observed": {
4157
+ const p = event.payload;
4158
+ const existing = state.ciByProjectKey[p.projectKey];
4159
+ if (existing && p.observedAt < existing.updatedAt) return {
4160
+ ...state,
4161
+ sequence: Math.max(state.sequence, event.sequence)
4162
+ };
4163
+ return {
4164
+ ...state,
4165
+ sequence: Math.max(state.sequence, event.sequence),
4166
+ ciByProjectKey: {
4167
+ ...state.ciByProjectKey,
4168
+ [p.projectKey]: {
4169
+ projectKey: p.projectKey,
4170
+ repo: p.repo,
4171
+ branch: p.branch,
4172
+ headSha: p.headSha,
4173
+ suites: p.suites,
4174
+ updatedAt: p.observedAt
4175
+ }
4176
+ }
4177
+ };
4178
+ }
4179
+ case "restart_gate.changed": return {
4180
+ ...state,
4181
+ sequence: Math.max(state.sequence, event.sequence),
4182
+ restartGate: {
4183
+ status: event.payload.status,
4184
+ pending: event.payload.pending,
4185
+ ...event.payload.lastOutcome === void 0 ? {} : { lastOutcome: event.payload.lastOutcome }
4186
+ }
4187
+ };
3952
4188
  case "resources.updated": return {
3953
4189
  ...state,
3954
4190
  sequence: Math.max(state.sequence, event.sequence),
@@ -4797,6 +5033,29 @@ function applyEvents(state, events) {
4797
5033
  return events.reduce(applyEvent, state);
4798
5034
  }
4799
5035
  //#endregion
5036
+ //#region src/project-ci.ts
5037
+ /** Conclusions that mean the suite failed. Mirrors FAILING_CHECK_CONCLUSIONS
5038
+ * in src/lib/webhook-handlers.ts:196. */
5039
+ const FAILED = new Set([
5040
+ "failure",
5041
+ "timed_out",
5042
+ "cancelled",
5043
+ "action_required",
5044
+ "startup_failure",
5045
+ "stale"
5046
+ ]);
5047
+ function deriveProjectCi(record) {
5048
+ const suites = Object.values(record.suites);
5049
+ const total = suites.length;
5050
+ const completed = suites.filter((s) => s.status === "completed").length;
5051
+ return {
5052
+ state: suites.some((s) => s.conclusion != null && FAILED.has(s.conclusion.toLowerCase())) ? "failure" : suites.some((s) => s.status === "in_progress") ? "in_progress" : completed < total || total === 0 ? "queued" : "success",
5053
+ completed,
5054
+ total,
5055
+ href: (total === 1 ? suites[0] : void 0)?.htmlUrl ?? `https://github.com/${record.repo}/commit/${record.headSha}/checks`
5056
+ };
5057
+ }
5058
+ //#endregion
4800
5059
  //#region src/flywheel-stats.ts
4801
5060
  const FlywheelStatsCriterionStatus = Schema.Literals([
4802
5061
  "green",
@@ -5540,6 +5799,7 @@ const TELEMETRY_PROPERTY_DOMAINS = {
5540
5799
  "deacon",
5541
5800
  "sessions",
5542
5801
  "awaiting-merge",
5802
+ "workspace-new",
5543
5803
  "workspace"
5544
5804
  ],
5545
5805
  decision_subject: ["agent", "conversation"],
@@ -6514,7 +6774,7 @@ const COMPOSER_COMMAND_MANIFEST = [
6514
6774
  "id": "pan-handoff",
6515
6775
  "path": ["handoff"],
6516
6776
  "display": "/pan handoff",
6517
- "description": "Conversation handoff that spawns a new conversation; omit <conv> (or pass \"self\") to hand off the conversation you are in; trailing text becomes the focus — MAX 500 characters. Very large source conversations are auto-degraded (truncated smart summary → heuristic → focus-only) and still hand off without aborting.",
6777
+ "description": "Conversation handoff that spawns a new conversation; omit <conv> (or pass \"self\") to hand off the conversation you are in; trailing text becomes the focus — MAX 10000 characters (keep it short; long briefs belong in a file the focus points at). Very large source conversations are auto-degraded (truncated smart summary → heuristic → focus-only) and still hand off without aborting.",
6518
6778
  "args": [{
6519
6779
  "name": "conv",
6520
6780
  "required": false,
@@ -6555,6 +6815,12 @@ const COMPOSER_COMMAND_MANIFEST = [
6555
6815
  "required": true,
6556
6816
  "valueHint": "id"
6557
6817
  },
6818
+ {
6819
+ "flags": "--title <title>",
6820
+ "description": "Title for the new conversation; defaults to \"Handoff: <focus>\" (first ~70 chars) or \"Handoff: <source title>\" without focus",
6821
+ "required": true,
6822
+ "valueHint": "title"
6823
+ },
6558
6824
  {
6559
6825
  "flags": "--author <author>",
6560
6826
  "description": "Who authors the handoff doc: external (default) or source",
@@ -7156,6 +7422,48 @@ const COMPOSER_COMMAND_MANIFEST = [
7156
7422
  "aliases": [],
7157
7423
  "category": "Lifecycle"
7158
7424
  },
7425
+ {
7426
+ "id": "pan-swarm-dispatch",
7427
+ "path": ["swarm", "dispatch"],
7428
+ "display": "/pan swarm dispatch",
7429
+ "description": "Run one gated swarm dispatch pass",
7430
+ "args": [{
7431
+ "name": "id",
7432
+ "required": true,
7433
+ "variadic": false
7434
+ }],
7435
+ "options": [{
7436
+ "flags": "--json",
7437
+ "description": "Print structured dispatch results",
7438
+ "required": false,
7439
+ "valueHint": null
7440
+ }],
7441
+ "aliases": [],
7442
+ "category": "Lifecycle"
7443
+ },
7444
+ {
7445
+ "id": "pan-swarm-merge",
7446
+ "path": ["swarm", "merge"],
7447
+ "display": "/pan swarm merge",
7448
+ "description": "Verify and merge one completed swarm slot",
7449
+ "args": [{
7450
+ "name": "id",
7451
+ "required": true,
7452
+ "variadic": false
7453
+ }, {
7454
+ "name": "slotIndex",
7455
+ "required": true,
7456
+ "variadic": false
7457
+ }],
7458
+ "options": [{
7459
+ "flags": "--json",
7460
+ "description": "Print structured merge results",
7461
+ "required": false,
7462
+ "valueHint": null
7463
+ }],
7464
+ "aliases": [],
7465
+ "category": "Lifecycle"
7466
+ },
7159
7467
  {
7160
7468
  "id": "pan-swarm-recover",
7161
7469
  "path": ["swarm", "recover"],
@@ -7172,9 +7480,14 @@ const COMPOSER_COMMAND_MANIFEST = [
7172
7480
  }],
7173
7481
  "options": [{
7174
7482
  "flags": "--action <action>",
7175
- "description": "Recovery action: retry, drop, or handoff",
7483
+ "description": "Recovery action: retry, drop, handoff, or reclaim",
7176
7484
  "required": true,
7177
7485
  "valueHint": "action"
7486
+ }, {
7487
+ "flags": "--operator",
7488
+ "description": "Override the three-intervention limit for this failure class",
7489
+ "required": false,
7490
+ "valueHint": null
7178
7491
  }],
7179
7492
  "aliases": [],
7180
7493
  "category": "Lifecycle"
@@ -7222,7 +7535,36 @@ const COMPOSER_COMMAND_MANIFEST = [
7222
7535
  "required": true,
7223
7536
  "variadic": false
7224
7537
  }],
7225
- "options": [],
7538
+ "options": [{
7539
+ "flags": "--json",
7540
+ "description": "Print structured status including foreman, hold, and interventions",
7541
+ "required": false,
7542
+ "valueHint": null
7543
+ }],
7544
+ "aliases": [],
7545
+ "category": "Lifecycle"
7546
+ },
7547
+ {
7548
+ "id": "pan-swarm-wait",
7549
+ "path": ["swarm", "wait"],
7550
+ "display": "/pan swarm wait",
7551
+ "description": "Wait for a swarm slot, foreman, or hold state transition",
7552
+ "args": [{
7553
+ "name": "id",
7554
+ "required": true,
7555
+ "variadic": false
7556
+ }],
7557
+ "options": [{
7558
+ "flags": "--timeout <seconds>",
7559
+ "description": "Maximum wait in seconds",
7560
+ "required": true,
7561
+ "valueHint": "seconds"
7562
+ }, {
7563
+ "flags": "--json",
7564
+ "description": "Print the structured status delta",
7565
+ "required": false,
7566
+ "valueHint": null
7567
+ }],
7226
7568
  "aliases": [],
7227
7569
  "category": "Lifecycle"
7228
7570
  },
@@ -7493,6 +7835,49 @@ const COMPOSER_COMMAND_MANIFEST = [
7493
7835
  "aliases": [],
7494
7836
  "category": "Lifecycle"
7495
7837
  },
7838
+ {
7839
+ "id": "pan-task-reopen",
7840
+ "path": ["task", "reopen"],
7841
+ "display": "/pan task reopen",
7842
+ "description": "",
7843
+ "args": [{
7844
+ "name": "issue",
7845
+ "required": true,
7846
+ "variadic": false
7847
+ }, {
7848
+ "name": "item",
7849
+ "required": true,
7850
+ "variadic": false
7851
+ }],
7852
+ "options": [
7853
+ {
7854
+ "flags": "--reason <text>",
7855
+ "description": "Reason for the status change",
7856
+ "required": true,
7857
+ "valueHint": "text"
7858
+ },
7859
+ {
7860
+ "flags": "--expected-sequence <n>",
7861
+ "description": "Require the current task sequence",
7862
+ "required": true,
7863
+ "valueHint": "n"
7864
+ },
7865
+ {
7866
+ "flags": "--force",
7867
+ "description": "Override a non-terminal transition or claim owner; requires --reason",
7868
+ "required": false,
7869
+ "valueHint": null
7870
+ },
7871
+ {
7872
+ "flags": "--json",
7873
+ "description": "Print JSON",
7874
+ "required": false,
7875
+ "valueHint": null
7876
+ }
7877
+ ],
7878
+ "aliases": [],
7879
+ "category": "Lifecycle"
7880
+ },
7496
7881
  {
7497
7882
  "id": "pan-task-cancel",
7498
7883
  "path": ["task", "cancel"],
@@ -10974,6 +11359,20 @@ const COMPOSER_COMMAND_MANIFEST = [
10974
11359
  "aliases": [],
10975
11360
  "category": "Conversation"
10976
11361
  },
11362
+ {
11363
+ "id": "pan-conversations-heal",
11364
+ "path": ["conversations", "heal"],
11365
+ "display": "/pan conversations heal",
11366
+ "description": "Clear stale fork/spawn failure state for a live conversation",
11367
+ "args": [{
11368
+ "name": "query",
11369
+ "required": true,
11370
+ "variadic": false
11371
+ }],
11372
+ "options": [],
11373
+ "aliases": [],
11374
+ "category": "Conversation"
11375
+ },
10977
11376
  {
10978
11377
  "id": "pan-conversations-current",
10979
11378
  "path": ["conversations", "current"],
@@ -12148,11 +12547,27 @@ const COMPOSER_COMMAND_MANIFEST = [
12148
12547
  "description": "Disable agent auto-resume on restart (opt out of the default-on auto-resume)",
12149
12548
  "required": false,
12150
12549
  "valueHint": null
12550
+ },
12551
+ {
12552
+ "flags": "--now",
12553
+ "description": "Skip the operator-approval wait: approve everything already waiting, then restart the dashboard immediately",
12554
+ "required": false,
12555
+ "valueHint": null
12151
12556
  }
12152
12557
  ],
12153
12558
  "aliases": [],
12154
12559
  "category": "Core"
12155
12560
  },
12561
+ {
12562
+ "id": "pan-restart-approve",
12563
+ "path": ["restart", "approve"],
12564
+ "display": "/pan restart approve",
12565
+ "description": "Approve every dashboard restart request that is waiting for the operator",
12566
+ "args": [],
12567
+ "options": [],
12568
+ "aliases": [],
12569
+ "category": "Core"
12570
+ },
12156
12571
  {
12157
12572
  "id": "pan-project",
12158
12573
  "path": ["project"],
@@ -12951,6 +13366,6 @@ const HOOK_INVENTORY = [
12951
13366
  const WIRED_HOOK_INVENTORY = HOOK_INVENTORY.filter((hook) => hook.wired);
12952
13367
  const WIRED_HOOK_NAMES = WIRED_HOOK_INVENTORY.map((hook) => hook.name);
12953
13368
  //#endregion
12954
- export { ACP_BEHAVIOR, Activity, ActivityDetailedEvent, ActivityEntryEvent, ActivityTtsEvent, ActivityUpdatedEvent, AdmissionState, AgentActivityChangedEvent, AgentChannelReply, AgentChannelReplyEvent, AgentCompletedEvent, AgentContextSaturationChangedEvent, AgentCreatedEvent, AgentCurrentIssueSetEvent, AgentEnrichmentChangedEvent, AgentHealthKind, AgentHealthSnapshot, AgentHealthStatus, AgentHeartbeatDeadEvent, AgentHookFiredEvent, AgentId, AgentMessageReceivedEvent, AgentModelSetEvent, AgentOutput, AgentOutputReceivedEvent, AgentPermissionRequestedEvent, AgentPermissionResolvedEvent, AgentResolution, AgentResolutionChangedEvent, AgentRuntimeSnapshot, AgentSnapshot, AgentStartedEvent, AgentStateRestoredEvent, AgentStatus, AgentStatusChangedEvent, AgentStoppedEvent, AgentThinkingStartedEvent, AgentThinkingStoppedEvent, AgentTurnDiffCompletedEvent, AgentWaitingClearedEvent, AgentWaitingStartedEvent, ArtifactAgentHarness, ArtifactAgentRole, ArtifactCreateResponse, ArtifactDetailResponse, ArtifactHash, ArtifactId, ArtifactLifecycleState, ArtifactListEntry, ArtifactListResponse, ArtifactMetadata, ArtifactPublishResponse, ArtifactSlug, ArtifactStatusResponse, ArtifactUnshareResponse, ArtifactUrls, ArtifactValidationCode, ArtifactValidationFinding, ArtifactValidationResult, BeadsFreshnessChangedEvent, CHANNEL_REPLY_KIND_VALUES, CLAUDE_CODE_BEHAVIOR, CODEX_BEHAVIOR, COMPOSER_COMMAND_INSERT_OVERRIDES, COMPOSER_COMMAND_MANIFEST, COMPOSER_COMMAND_VARIANTS, CONTEXT_LAYER_KINDS, CONTEXT_PREVIEW_HARNESSES, ChannelPermissionRequestSnapshot, ChannelReplyArtifactRef, ChannelReplyKind, ChatMessage, ClaudeChannelPermissionBehavior, CompactBoundary, ContextEditableLayerRecord, ContextHarnessPreviews, ContextLayerDraft, ContextLayerKind, ContextLayerSaveRequest, ContextLayerSaveResponse, ContextLayerTarget, ContextLayersResponse, ContextPreviewDiagnostic, ContextPreviewHarness, ContextPreviewRequest, ContextPreviewResponse, ContextProjectSummary, ContextSyncRequest, ContextSyncResponse, ContextSyncTarget, ContextUsage, ContextWorkspaceSummary, ConversationCompactingChangedEvent, ConversationCostSummary, ConversationCreatedEvent, ConversationEvent, ConversationFilter, ConversationMovedEvent, ConversationPermissionChangedEvent, ConversationResponse, ConversationTitleChangedEvent, CostEventRecordedEvent, DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE, DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT, DashboardLifecycleCompletedEvent, DashboardLifecycleFailedEvent, DashboardLifecycleStartedEvent, DashboardSnapshot, DeepWipeRpc, DeployStalenessSnapshot, DiscoveredSessionSnapshot, DomainEvent, EDITORS, EditorIdSchema, EmbedProgressEvent, EmbedProgressSnapshot, EmbedSessionsRpc, EnrichCompleteEvent, EnrichProgressEvent, EnrichProgressSnapshot, EnrichSessionsRpc, EnrichStatsSnapshot, ExtractionProviderConfig, ExtractionProviderTarget, FeatureNode, FeatureRegistryEntry, FeatureRegistryStatus, FlywheelAgent, FlywheelAgentStatus, FlywheelEffort, FlywheelHarness, FlywheelHeadline, FlywheelHttpUrl, FlywheelOrchestrator, FlywheelOrders, FlywheelParkedItem, FlywheelPipelineItem, FlywheelPipelineStatus, FlywheelPipelineVerb, FlywheelRunId, FlywheelScope, FlywheelStats, FlywheelStatsCriteria, FlywheelStatsCriterion, FlywheelStatsCriterionStatus, FlywheelStatsCriterionValue, FlywheelStatsCriterionValueObject, FlywheelStatsTrend, FlywheelStatus, FlywheelSubstrateBug, FlywheelSubstrateBugStatus, FlywheelSuggestion, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSystemStatus, GetAvailableEditorsRpc, GetConversationCostByWorkspaceRpc, GetConversationCostRpc, GetConversationStatsRpc, GetDiscoveredSessionRpc, GetSessionsFeedFacetsRpc, GetSnapshotRpc, GetWorkspaceDetailRpc, GlobalContextLayerRecord, GlobalContextLayerTarget, HOOK_INVENTORY, HealthReason, HealthState, HostHealthMetrics, HostPlatform, HygieneFinding, HygienePullRequest, HygieneReport, INITIAL_READ_MODEL_STATE, IssueId, IssueStatusChangedEvent, IssueTransitionedEvent, IssuesSnapshotEvent, IssuesUpdatedEvent, KIMI_CODE_BEHAVIOR, KNOWN_HARNESSES, LegacySystemHealthSummary, LegacyWebhookRelaySummary, LinearMcpAuthCallbackRelayedEvent, LinearMcpAuthHealthyEvent, LinearMcpAuthNotifiedEvent, LinearMcpAuthRequiredEvent, ListDiscoveredSessionsRpc, ListSessionsFeedRpc, MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH, MAX_CHANNEL_REPLY_ARTIFACT_REFS, MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH, MAX_CHANNEL_REPLY_SUMMARY_LENGTH, MEMBERSHIP_UNAVAILABLE_REASONS, MemoryAgentRole, MemoryHealthChangedEvent, MemoryIdentity, MemoryObservation, MemoryObservationCreatedEvent, MemoryResetMarkerCreatedEvent, MemoryRollupTriggeredEvent, MemoryStatus, MemoryStatusPhase, MemoryStatusUpdatedEvent, MemoryTokenUsage, MergeReadyEvent, MergeStatusValue, ModelOrigin, ModelOriginEntry, OHMYPI_BEHAVIOR, OVERDECK_AGENT_PROTOCOL_VERSION, OVERDECK_DASHBOARD_PROTOCOL_VERSION, OpenInEditorInput, OperatorInterventionEvent, OrderBook, OrderBookIndexEntry, OrderBookItem, OrderBookLane, OrderBookPosture, OrderBookSettings, OrderBookStatus, PanRpcError, PanRpcGroup, PendingTurn, PipelineReviewCompletedEvent, PipelineReviewStartedEvent, PipelineStatusChangedEvent, PipelineTestCompletedEvent, PipelineTestStartedEvent, PipelineVerificationFailedEvent, PipelineVerificationStartedEvent, PlanItemStatusChangedEvent, PlanItemsUnblockedEvent, PlanSubitemStatusChangedEvent, PlanningFailedEvent, PlanningStartedEvent, PlanningSyncEvent, ProjectContextLayerRecord, ProjectContextLayerTarget, ProjectSessionTree, ProposedPlan, RagDecision, RagDecisionSource, ReadFileAtPathInput, ReadFileAtPathResult, ReadFileAtPathRpc, ReadWorkspaceFileInput, ReadWorkspaceFileResult, ReadWorkspaceFileRpc, ReleaseStatusValue, ReplayEventsRpc, ResetMarker, ResetMarkerScope, ResizeTerminalRpc, ResolveFilePathExistsInput, ResolveFilePathExistsResult, ResolveFilePathExistsRpc, ResourceStats, ResourcesUpdatedEvent, ReviewApprovedEvent, ReviewCoordinatorDiedEvent, ReviewCoordinatorStartedEvent, ReviewCycleEntry, ReviewReviewerCompletedEvent, ReviewReviewerStartedEvent, ReviewSpecialistTimedOutEvent, ReviewStatusChangedEvent, ReviewStatusSnapshot, ReviewStatusValue, ReviewVerdictDispatchedEvent, ReviewVerdictRejectedEvent, ReviewVerdictRestoreBlockedEvent, ReviewerRoundMetadata, ReviewerRoundSummary, Role, ScanCompleteEvent, ScanConversationsRpc, ScanProgressEvent, ScanProgressSnapshot, ScanResult, ScanStartedEvent, SearchConversationsRpc, SendTerminalInputRpc, SequenceNumber, ServiceHealthSnapshot, ServiceHealthStatus, SessionNode, SessionNodePresence, SessionNodeType, SessionTreeDelta, SessionsFeedFacetsSnapshot, SessionsFeedRowSnapshot, SessionsFeedSource, ShadowInferenceUpdateEvent, ShellOpenInEditorRpc, SpecialistCompletedEvent, SpecialistFailedEvent, SpecialistLifecycle, SpecialistStartedEvent, StartAgentRpc, StartPlanningRpc, SubagentSummary, SubscribeAgentOutputRpc, SubscribeConversationMessagesRpc, SubscribeDomainEventsRpc, SubscribeFlywheelStatusRpc, SubscribeIssueEventsRpc, SubscribeProjectSessionTreeRpc, SubscribeTerminalRpc, SubstrateBugFiledEvent, SweepEscalatedEvent, SweepRecommendationEvent, SweepScanEvent, SystemHealthConsumer, SystemHealthSeverityChangedEvent, SystemHealthSnapshot, SystemHeartbeatEvent, TELEMETRY_CLI_VERBS, TELEMETRY_EVENT_CATALOG, TELEMETRY_EVENT_NAMES, TELEMETRY_PROPERTY_DOMAINS, TerminalCloseRpc, TerminalOpenRpc, TerminalOutput, TerminalResizeRpc, TerminalWriteRpc, TestPassedEvent, TestStatusValue, ThinkingState, TurnDiffFileChange, TurnDiffSummary, UatStatusValue, VerificationStatusValue, WIRED_HOOK_INVENTORY, WIRED_HOOK_NAMES, WS_METHODS, WaitingReason, WaitingState, WorkCompletedEvent, WorkLogEntry, WorkspaceAbortedEvent, WorkspaceArtifactsResponse, WorkspaceContextLayerRecord, WorkspaceContextLayerTarget, WorkspaceCreatedEvent, WorkspaceDeletedEvent, WorkspaceDestroyedEvent, WorkspaceDetail, WorkspaceWipeStartedEvent, WriteFileAtPathInput, WriteFileAtPathResult, WriteFileAtPathRpc, applyEvent, applyEvents, compareIssueIds, decodeFlywheelStats, encodeFlywheelStats, getHarness, getHarnessBehavior, getMaxMemoryObservationsPerIssue, getMaxTurnDiffSummariesPerAgent, getRuntimeBehavior, isChannelReplyKind, isTerminalTurnDiffSummaryStatus, normalizeChannelReplyPayload, omitTurnDiffSummariesForAgent, projectLegacySystemHealthSummary, syncSnapshot, trimMemoryObservations, trimTurnDiffSummaries };
13369
+ export { ACP_BEHAVIOR, Activity, ActivityDetailedEvent, ActivityEntryEvent, ActivityTtsEvent, ActivityUpdatedEvent, AdmissionState, AgentActivityChangedEvent, AgentChannelReply, AgentChannelReplyEvent, AgentCompletedEvent, AgentContextSaturationChangedEvent, AgentCreatedEvent, AgentCurrentIssueSetEvent, AgentEnrichmentChangedEvent, AgentHealthKind, AgentHealthSnapshot, AgentHealthStatus, AgentHeartbeatDeadEvent, AgentHookFiredEvent, AgentId, AgentMessageReceivedEvent, AgentModelSetEvent, AgentOutput, AgentOutputReceivedEvent, AgentPermissionRequestedEvent, AgentPermissionResolvedEvent, AgentResolution, AgentResolutionChangedEvent, AgentRuntimeSnapshot, AgentSnapshot, AgentStartedEvent, AgentStateRestoredEvent, AgentStatus, AgentStatusChangedEvent, AgentStoppedEvent, AgentThinkingStartedEvent, AgentThinkingStoppedEvent, AgentTurnDiffCompletedEvent, AgentWaitingClearedEvent, AgentWaitingStartedEvent, ArtifactAgentHarness, ArtifactAgentRole, ArtifactCreateResponse, ArtifactDetailResponse, ArtifactHash, ArtifactId, ArtifactLifecycleState, ArtifactListEntry, ArtifactListResponse, ArtifactMetadata, ArtifactPublishResponse, ArtifactSlug, ArtifactStatusResponse, ArtifactUnshareResponse, ArtifactUrls, ArtifactValidationCode, ArtifactValidationFinding, ArtifactValidationResult, BeadsFreshnessChangedEvent, CHANNEL_REPLY_KIND_VALUES, CLAUDE_CODE_BEHAVIOR, CODEX_BEHAVIOR, COMPOSER_COMMAND_INSERT_OVERRIDES, COMPOSER_COMMAND_MANIFEST, COMPOSER_COMMAND_VARIANTS, CONTEXT_LAYER_KINDS, CONTEXT_PREVIEW_HARNESSES, ChannelPermissionRequestSnapshot, ChannelReplyArtifactRef, ChannelReplyKind, ChatMessage, ClaudeChannelPermissionBehavior, CompactBoundary, ContextEditableLayerRecord, ContextHarnessPreviews, ContextLayerDraft, ContextLayerKind, ContextLayerSaveRequest, ContextLayerSaveResponse, ContextLayerTarget, ContextLayersResponse, ContextPreviewDiagnostic, ContextPreviewHarness, ContextPreviewRequest, ContextPreviewResponse, ContextProjectSummary, ContextSyncRequest, ContextSyncResponse, ContextSyncTarget, ContextUsage, ContextWorkspaceSummary, ConversationCompactingChangedEvent, ConversationCostSummary, ConversationCreatedEvent, ConversationEvent, ConversationFilter, ConversationMovedEvent, ConversationPermissionChangedEvent, ConversationResponse, ConversationTitleChangedEvent, CostEventRecordedEvent, DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE, DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT, DashboardLifecycleCompletedEvent, DashboardLifecycleFailedEvent, DashboardLifecycleStartedEvent, DashboardSnapshot, DeepWipeRpc, DeployStalenessSnapshot, DiscoveredSessionSnapshot, DomainEvent, EDITORS, EditorIdSchema, EmbedProgressEvent, EmbedProgressSnapshot, EmbedSessionsRpc, EnrichCompleteEvent, EnrichProgressEvent, EnrichProgressSnapshot, EnrichSessionsRpc, EnrichStatsSnapshot, ExtractionProviderConfig, ExtractionProviderTarget, FeatureNode, FeatureRegistryEntry, FeatureRegistryStatus, FlywheelAgent, FlywheelAgentStatus, FlywheelEffort, FlywheelHarness, FlywheelHeadline, FlywheelHttpUrl, FlywheelOrchestrator, FlywheelOrders, FlywheelParkedItem, FlywheelPipelineItem, FlywheelPipelineStatus, FlywheelPipelineVerb, FlywheelRunId, FlywheelScope, FlywheelStats, FlywheelStatsCriteria, FlywheelStatsCriterion, FlywheelStatsCriterionStatus, FlywheelStatsCriterionValue, FlywheelStatsCriterionValueObject, FlywheelStatsTrend, FlywheelStatus, FlywheelSubstrateBug, FlywheelSubstrateBugStatus, FlywheelSuggestion, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSystemStatus, GetAvailableEditorsRpc, GetConversationCostByWorkspaceRpc, GetConversationCostRpc, GetConversationStatsRpc, GetDiscoveredSessionRpc, GetSessionsFeedFacetsRpc, GetSnapshotRpc, GetWorkspaceDetailRpc, GlobalContextLayerRecord, GlobalContextLayerTarget, HOOK_INVENTORY, HealthReason, HealthState, HostHealthMetrics, HostPlatform, HygieneFinding, HygienePullRequest, HygieneReport, INITIAL_READ_MODEL_STATE, IssueId, IssueStatusChangedEvent, IssueTransitionedEvent, IssuesSnapshotEvent, IssuesUpdatedEvent, KIMI_CODE_BEHAVIOR, KNOWN_HARNESSES, LegacySystemHealthSummary, LegacyWebhookRelaySummary, LinearMcpAuthCallbackRelayedEvent, LinearMcpAuthHealthyEvent, LinearMcpAuthNotifiedEvent, LinearMcpAuthRequiredEvent, ListDiscoveredSessionsRpc, ListSessionsFeedRpc, MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH, MAX_CHANNEL_REPLY_ARTIFACT_REFS, MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH, MAX_CHANNEL_REPLY_SUMMARY_LENGTH, MEMBERSHIP_UNAVAILABLE_REASONS, MemoryAgentRole, MemoryHealthChangedEvent, MemoryIdentity, MemoryObservation, MemoryObservationCreatedEvent, MemoryResetMarkerCreatedEvent, MemoryRollupTriggeredEvent, MemoryStatus, MemoryStatusPhase, MemoryStatusUpdatedEvent, MemoryTokenUsage, MergeReadyEvent, MergeStatusValue, ModelOrigin, ModelOriginEntry, OHMYPI_BEHAVIOR, OVERDECK_AGENT_PROTOCOL_VERSION, OVERDECK_DASHBOARD_PROTOCOL_VERSION, OpenInEditorInput, OperatorInterventionEvent, OrderBook, OrderBookIndexEntry, OrderBookItem, OrderBookLane, OrderBookPosture, OrderBookSettings, OrderBookStatus, PanRpcError, PanRpcGroup, PendingTurn, PipelineReviewCompletedEvent, PipelineReviewStartedEvent, PipelineStatusChangedEvent, PipelineTestCompletedEvent, PipelineTestStartedEvent, PipelineVerificationFailedEvent, PipelineVerificationStartedEvent, PlanItemStatusChangedEvent, PlanItemsUnblockedEvent, PlanSubitemStatusChangedEvent, PlanningFailedEvent, PlanningStartedEvent, PlanningSyncEvent, ProjectCiHeadObservedEvent, ProjectCiSnapshot, ProjectCiSuite, ProjectCiSuiteObservedEvent, ProjectContextLayerRecord, ProjectContextLayerTarget, ProjectSessionTree, ProposedPlan, RagDecision, RagDecisionSource, ReadFileAtPathInput, ReadFileAtPathResult, ReadFileAtPathRpc, ReadWorkspaceFileInput, ReadWorkspaceFileResult, ReadWorkspaceFileRpc, ReleaseStatusValue, ReplayEventsRpc, ResetMarker, ResetMarkerScope, ResizeTerminalRpc, ResolveFilePathExistsInput, ResolveFilePathExistsResult, ResolveFilePathExistsRpc, ResourceStats, ResourcesUpdatedEvent, RestartGateChangedEvent, RestartGateKind, RestartGateOutcome, RestartGateRequest, RestartGateSnapshot, ReviewApprovedEvent, ReviewCoordinatorDiedEvent, ReviewCoordinatorStartedEvent, ReviewCycleEntry, ReviewReviewerCompletedEvent, ReviewReviewerStartedEvent, ReviewSpecialistTimedOutEvent, ReviewStatusChangedEvent, ReviewStatusSnapshot, ReviewStatusValue, ReviewVerdictDispatchedEvent, ReviewVerdictRejectedEvent, ReviewVerdictRestoreBlockedEvent, ReviewerRoundMetadata, ReviewerRoundSummary, Role, ScanCompleteEvent, ScanConversationsRpc, ScanProgressEvent, ScanProgressSnapshot, ScanResult, ScanStartedEvent, SearchConversationsRpc, SendTerminalInputRpc, SequenceNumber, ServiceHealthSnapshot, ServiceHealthStatus, SessionNode, SessionNodePresence, SessionNodeType, SessionTreeDelta, SessionsFeedFacetsSnapshot, SessionsFeedRowSnapshot, SessionsFeedSource, ShadowInferenceUpdateEvent, ShellOpenInEditorRpc, SpecialistCompletedEvent, SpecialistFailedEvent, SpecialistLifecycle, SpecialistStartedEvent, StartAgentRpc, StartPlanningRpc, SubagentSummary, SubscribeAgentOutputRpc, SubscribeConversationMessagesRpc, SubscribeDomainEventsRpc, SubscribeFlywheelStatusRpc, SubscribeIssueEventsRpc, SubscribeProjectSessionTreeRpc, SubscribeTerminalRpc, SubstrateBugFiledEvent, SweepEscalatedEvent, SweepRecommendationEvent, SweepScanEvent, SystemHealthConsumer, SystemHealthSeverityChangedEvent, SystemHealthSnapshot, SystemHeartbeatEvent, TELEMETRY_CLI_VERBS, TELEMETRY_EVENT_CATALOG, TELEMETRY_EVENT_NAMES, TELEMETRY_PROPERTY_DOMAINS, TerminalCloseRpc, TerminalOpenRpc, TerminalOutput, TerminalResizeRpc, TerminalWriteRpc, TestPassedEvent, TestStatusValue, ThinkingState, TurnDiffFileChange, TurnDiffSummary, UatStatusValue, VerificationStatusValue, WIRED_HOOK_INVENTORY, WIRED_HOOK_NAMES, WS_METHODS, WaitingReason, WaitingState, WorkCompletedEvent, WorkLogEntry, WorkspaceAbortedEvent, WorkspaceArtifactsResponse, WorkspaceContextLayerRecord, WorkspaceContextLayerTarget, WorkspaceCreatedEvent, WorkspaceDeletedEvent, WorkspaceDestroyedEvent, WorkspaceDetail, WorkspaceWipeStartedEvent, WriteFileAtPathInput, WriteFileAtPathResult, WriteFileAtPathRpc, applyEvent, applyEvents, compareIssueIds, decodeFlywheelStats, deriveProjectCi, encodeFlywheelStats, getHarness, getHarnessBehavior, getMaxMemoryObservationsPerIssue, getMaxTurnDiffSummariesPerAgent, getRuntimeBehavior, isChannelReplyKind, isTerminalTurnDiffSummaryStatus, normalizeChannelReplyPayload, omitTurnDiffSummariesForAgent, projectLegacySystemHealthSummary, syncSnapshot, trimMemoryObservations, trimTurnDiffSummaries };
12955
13370
 
12956
13371
  //# sourceMappingURL=index.mjs.map