@overdeck/contracts 0.41.1 → 0.43.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.cjs CHANGED
@@ -401,6 +401,7 @@ const DashboardSnapshot = effect.Schema.Struct({
401
401
  specialists: effect.Schema.Array(effect.Schema.Unknown),
402
402
  reviewStatuses: effect.Schema.Array(ReviewStatusSnapshot),
403
403
  issues: effect.Schema.Array(effect.Schema.Unknown),
404
+ recentActivity: effect.Schema.optional(effect.Schema.Array(effect.Schema.Unknown)),
404
405
  resources: effect.Schema.optional(effect.Schema.Unknown),
405
406
  memory: effect.Schema.optional(effect.Schema.Unknown),
406
407
  agentRuntimeById: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, AgentRuntimeSnapshot)),
@@ -499,6 +500,11 @@ const SessionNode = effect.Schema.Struct({
499
500
  paused: effect.Schema.optional(effect.Schema.Boolean),
500
501
  pausedReason: effect.Schema.optional(effect.Schema.String),
501
502
  pausedAt: effect.Schema.optional(effect.Schema.String),
503
+ troubled: effect.Schema.optional(effect.Schema.Boolean),
504
+ troubledAt: effect.Schema.optional(effect.Schema.String),
505
+ troubledReason: effect.Schema.optional(effect.Schema.String),
506
+ consecutiveFailures: effect.Schema.optional(effect.Schema.Number),
507
+ queuedMailCount: effect.Schema.optional(effect.Schema.Number),
502
508
  modelOrigin: effect.Schema.optional(ModelOrigin)
503
509
  });
504
510
  const FeatureNode = effect.Schema.Struct({
@@ -514,6 +520,7 @@ const ProjectSessionTree = effect.Schema.Struct({
514
520
  const DiscoveredSessionSnapshot = effect.Schema.Struct({
515
521
  id: effect.Schema.Number,
516
522
  jsonlPath: effect.Schema.String,
523
+ harness: effect.Schema.optional(effect.Schema.String),
517
524
  sessionId: effect.Schema.optional(effect.Schema.String),
518
525
  workspacePath: effect.Schema.optional(effect.Schema.String),
519
526
  workspaceHash: effect.Schema.optional(effect.Schema.String),
@@ -530,6 +537,9 @@ const DiscoveredSessionSnapshot = effect.Schema.Struct({
530
537
  tags: effect.Schema.Array(effect.Schema.String),
531
538
  summary: effect.Schema.optional(effect.Schema.String),
532
539
  summaryDetailed: effect.Schema.optional(effect.Schema.String),
540
+ conversationId: effect.Schema.optional(effect.Schema.String),
541
+ conversationName: effect.Schema.optional(effect.Schema.String),
542
+ conversationTitle: effect.Schema.optional(effect.Schema.String),
533
543
  enrichmentLevel: effect.Schema.Number,
534
544
  enrichmentModel: effect.Schema.optional(effect.Schema.String),
535
545
  enrichedAt: effect.Schema.optional(effect.Schema.String),
@@ -539,8 +549,73 @@ const DiscoveredSessionSnapshot = effect.Schema.Struct({
539
549
  panAgentId: effect.Schema.optional(effect.Schema.String),
540
550
  scannedAt: effect.Schema.String
541
551
  });
552
+ const SessionsFeedSource = effect.Schema.Literals(["discovered", "managed-archived"]);
553
+ const SessionsFeedRowSnapshot = effect.Schema.Struct({
554
+ id: effect.Schema.Number,
555
+ source: SessionsFeedSource,
556
+ discoveredId: effect.Schema.optional(effect.Schema.Number),
557
+ jsonlPath: effect.Schema.optional(effect.Schema.String),
558
+ sessionId: effect.Schema.optional(effect.Schema.String),
559
+ workspacePath: effect.Schema.optional(effect.Schema.String),
560
+ messageCount: effect.Schema.Number,
561
+ firstTs: effect.Schema.optional(effect.Schema.String),
562
+ lastTs: effect.Schema.optional(effect.Schema.String),
563
+ primaryModel: effect.Schema.optional(effect.Schema.String),
564
+ tokenInput: effect.Schema.Number,
565
+ tokenOutput: effect.Schema.Number,
566
+ estimatedCost: effect.Schema.Number,
567
+ tags: effect.Schema.Array(effect.Schema.String),
568
+ summary: effect.Schema.optional(effect.Schema.String),
569
+ enrichmentLevel: effect.Schema.Number,
570
+ enrichmentFailed: effect.Schema.Boolean,
571
+ overdeckManaged: effect.Schema.Boolean,
572
+ panIssueId: effect.Schema.optional(effect.Schema.String),
573
+ archivedAt: effect.Schema.optional(effect.Schema.String),
574
+ conversationId: effect.Schema.optional(effect.Schema.String),
575
+ conversationName: effect.Schema.optional(effect.Schema.String),
576
+ conversationTitle: effect.Schema.optional(effect.Schema.String),
577
+ harness: effect.Schema.optional(effect.Schema.String)
578
+ });
579
+ const SessionsFeedFacetBucketString = effect.Schema.Struct({
580
+ value: effect.Schema.String,
581
+ count: effect.Schema.Number
582
+ });
583
+ const SessionsFeedFacetBucketNumber = effect.Schema.Struct({
584
+ value: effect.Schema.Number,
585
+ count: effect.Schema.Number
586
+ });
587
+ const SessionsFeedFacetsSnapshot = effect.Schema.Struct({
588
+ primaryModels: effect.Schema.Array(SessionsFeedFacetBucketString),
589
+ tags: effect.Schema.Array(SessionsFeedFacetBucketString),
590
+ tools: effect.Schema.Array(SessionsFeedFacetBucketString),
591
+ files: effect.Schema.Array(SessionsFeedFacetBucketString),
592
+ enrichmentLevels: effect.Schema.Array(SessionsFeedFacetBucketNumber),
593
+ timeBuckets: effect.Schema.Array(effect.Schema.Struct({
594
+ value: effect.Schema.Literals([
595
+ "24h",
596
+ "7d",
597
+ "30d",
598
+ "older"
599
+ ]),
600
+ count: effect.Schema.Number
601
+ })),
602
+ costBuckets: effect.Schema.Array(effect.Schema.Struct({
603
+ value: effect.Schema.Literals([
604
+ "<$0.10",
605
+ "$0.10-1",
606
+ "$1-10",
607
+ ">$10"
608
+ ]),
609
+ count: effect.Schema.Number
610
+ })),
611
+ sources: effect.Schema.Array(effect.Schema.Struct({
612
+ value: SessionsFeedSource,
613
+ count: effect.Schema.Number
614
+ }))
615
+ });
542
616
  /** Filter parameters for conversation search */
543
617
  const ConversationFilter = effect.Schema.Struct({
618
+ harness: effect.Schema.optional(effect.Schema.String),
544
619
  workspacePath: effect.Schema.optional(effect.Schema.String),
545
620
  primaryModel: effect.Schema.optional(effect.Schema.String),
546
621
  managed: effect.Schema.optional(effect.Schema.Boolean),
@@ -1211,6 +1286,36 @@ const PipelineTestCompletedEvent = effect.Schema.Struct({
1211
1286
  passed: effect.Schema.Boolean
1212
1287
  })
1213
1288
  });
1289
+ /** New — verification gate dispatched (review-pipeline verify step) */
1290
+ const PipelineVerificationStartedEvent = effect.Schema.Struct({
1291
+ type: effect.Schema.Literal("pipeline.verification-started"),
1292
+ sequence: SequenceNumber,
1293
+ timestamp: effect.Schema.String,
1294
+ payload: effect.Schema.Struct({ issueId: IssueId })
1295
+ });
1296
+ /** New — verification gate failed (carries failedCheck for gate failures, message for infra errors) */
1297
+ const PipelineVerificationFailedEvent = effect.Schema.Struct({
1298
+ type: effect.Schema.Literal("pipeline.verification-failed"),
1299
+ sequence: SequenceNumber,
1300
+ timestamp: effect.Schema.String,
1301
+ payload: effect.Schema.Struct({
1302
+ issueId: IssueId,
1303
+ failedCheck: effect.Schema.optional(effect.Schema.String),
1304
+ message: effect.Schema.optional(effect.Schema.String)
1305
+ })
1306
+ });
1307
+ /** New — issue lifecycle transition (single source: IssueLifecycle.transitionTo).
1308
+ * `state` stays an open string so new server-side lifecycle states can never
1309
+ * poison the domain-event stream (the failure mode behind this event's addition). */
1310
+ const IssueTransitionedEvent = effect.Schema.Struct({
1311
+ type: effect.Schema.Literal("issue.transitioned"),
1312
+ sequence: SequenceNumber,
1313
+ timestamp: effect.Schema.String,
1314
+ payload: effect.Schema.Struct({
1315
+ issueId: IssueId,
1316
+ state: effect.Schema.String
1317
+ })
1318
+ });
1214
1319
  const OperatorInterventionEvent = effect.Schema.Struct({
1215
1320
  type: effect.Schema.Literal("operator.intervention"),
1216
1321
  sequence: SequenceNumber,
@@ -1752,6 +1857,9 @@ const DomainEvent = effect.Schema.Union([
1752
1857
  PipelineReviewCompletedEvent,
1753
1858
  PipelineTestStartedEvent,
1754
1859
  PipelineTestCompletedEvent,
1860
+ PipelineVerificationStartedEvent,
1861
+ PipelineVerificationFailedEvent,
1862
+ IssueTransitionedEvent,
1755
1863
  OperatorInterventionEvent,
1756
1864
  SubstrateBugFiledEvent,
1757
1865
  ReviewReviewerStartedEvent,
@@ -2123,6 +2231,8 @@ const WS_METHODS = {
2123
2231
  scanConversations: "pan.scanConversations",
2124
2232
  searchConversations: "pan.searchConversations",
2125
2233
  listDiscoveredSessions: "pan.listDiscoveredSessions",
2234
+ listSessionsFeed: "pan.listSessionsFeed",
2235
+ getSessionsFeedFacets: "pan.getSessionsFeedFacets",
2126
2236
  getDiscoveredSession: "pan.getDiscoveredSession",
2127
2237
  enrichSessions: "pan.enrichSessions",
2128
2238
  embedSessions: "pan.embedSessions",
@@ -2475,6 +2585,37 @@ const DiscoveredSessionListResult = effect.Schema.Struct({
2475
2585
  count: effect.Schema.Number,
2476
2586
  total: effect.Schema.Number
2477
2587
  });
2588
+ const SessionsFeedPayload = effect.Schema.Struct({
2589
+ harness: effect.Schema.optional(effect.Schema.String),
2590
+ workspacePath: effect.Schema.optional(effect.Schema.String),
2591
+ primaryModel: effect.Schema.optional(effect.Schema.String),
2592
+ managed: effect.Schema.optional(effect.Schema.Boolean),
2593
+ unmanaged: effect.Schema.optional(effect.Schema.Boolean),
2594
+ since: effect.Schema.optional(effect.Schema.String),
2595
+ before: effect.Schema.optional(effect.Schema.String),
2596
+ after: effect.Schema.optional(effect.Schema.String),
2597
+ minCost: effect.Schema.optional(effect.Schema.Number),
2598
+ maxCost: effect.Schema.optional(effect.Schema.Number),
2599
+ minMessages: effect.Schema.optional(effect.Schema.Number),
2600
+ tags: effect.Schema.optional(effect.Schema.Array(effect.Schema.String)),
2601
+ tools: effect.Schema.optional(effect.Schema.Array(effect.Schema.String)),
2602
+ files: effect.Schema.optional(effect.Schema.Array(effect.Schema.String)),
2603
+ issueId: effect.Schema.optional(effect.Schema.String),
2604
+ enrichmentLevel: effect.Schema.optional(effect.Schema.Number),
2605
+ enriched: effect.Schema.optional(effect.Schema.Boolean),
2606
+ notEnriched: effect.Schema.optional(effect.Schema.Boolean),
2607
+ query: effect.Schema.optional(effect.Schema.String),
2608
+ semantic: effect.Schema.optional(effect.Schema.Boolean),
2609
+ similarTo: effect.Schema.optional(effect.Schema.Number),
2610
+ limit: effect.Schema.optional(effect.Schema.Number),
2611
+ offset: effect.Schema.optional(effect.Schema.Number),
2612
+ cursor: effect.Schema.optional(effect.Schema.String),
2613
+ source: effect.Schema.optional(effect.Schema.Literals(["discovered", "managed-archived"]))
2614
+ });
2615
+ const SessionsFeedListResult = effect.Schema.Struct({
2616
+ rows: effect.Schema.Array(SessionsFeedRowSnapshot),
2617
+ nextCursor: effect.Schema.NullOr(effect.Schema.String)
2618
+ });
2478
2619
  const DiscoveredSessionSearchResult = effect.Schema.Struct({
2479
2620
  sessions: effect.Schema.Array(DiscoveredSessionSnapshot),
2480
2621
  total: effect.Schema.Number,
@@ -2524,6 +2665,18 @@ const ListDiscoveredSessionsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.listDi
2524
2665
  success: DiscoveredSessionListResult,
2525
2666
  error: PanRpcError
2526
2667
  });
2668
+ /** List the unified discovered + managed archived sessions feed */
2669
+ const ListSessionsFeedRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.listSessionsFeed, {
2670
+ payload: SessionsFeedPayload,
2671
+ success: SessionsFeedListResult,
2672
+ error: PanRpcError
2673
+ });
2674
+ /** Get facet buckets for the unified sessions feed */
2675
+ const GetSessionsFeedFacetsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.getSessionsFeedFacets, {
2676
+ payload: SessionsFeedPayload,
2677
+ success: SessionsFeedFacetsSnapshot,
2678
+ error: PanRpcError
2679
+ });
2527
2680
  /** Get a single discovered session by ID */
2528
2681
  const GetDiscoveredSessionRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.getDiscoveredSession, {
2529
2682
  payload: effect.Schema.Struct({ id: effect.Schema.Number }),
@@ -2587,7 +2740,7 @@ const GetConversationStatsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.getConve
2587
2740
  error: PanRpcError
2588
2741
  });
2589
2742
  /** All Overdeck WebSocket RPC methods */
2590
- const PanRpcGroup = effect_unstable_rpc_RpcGroup.make(SubscribeDomainEventsRpc, SubscribeIssueEventsRpc, SubscribeTerminalRpc, SubscribeAgentOutputRpc, GetSnapshotRpc, ReplayEventsRpc, GetWorkspaceDetailRpc, ReadWorkspaceFileRpc, ResolveFilePathExistsRpc, TerminalOpenRpc, TerminalWriteRpc, TerminalResizeRpc, TerminalCloseRpc, StartPlanningRpc, StartAgentRpc, DeepWipeRpc, SendTerminalInputRpc, ResizeTerminalRpc, SubscribeConversationMessagesRpc, SubscribeProjectSessionTreeRpc, SubscribeFlywheelStatusRpc, ShellOpenInEditorRpc, GetAvailableEditorsRpc, ScanConversationsRpc, SearchConversationsRpc, ListDiscoveredSessionsRpc, GetDiscoveredSessionRpc, EnrichSessionsRpc, EmbedSessionsRpc, GetConversationCostRpc, GetConversationCostByWorkspaceRpc, GetConversationStatsRpc);
2743
+ const PanRpcGroup = effect_unstable_rpc_RpcGroup.make(SubscribeDomainEventsRpc, SubscribeIssueEventsRpc, SubscribeTerminalRpc, SubscribeAgentOutputRpc, GetSnapshotRpc, ReplayEventsRpc, GetWorkspaceDetailRpc, ReadWorkspaceFileRpc, ResolveFilePathExistsRpc, TerminalOpenRpc, TerminalWriteRpc, TerminalResizeRpc, TerminalCloseRpc, StartPlanningRpc, StartAgentRpc, DeepWipeRpc, SendTerminalInputRpc, ResizeTerminalRpc, SubscribeConversationMessagesRpc, SubscribeProjectSessionTreeRpc, SubscribeFlywheelStatusRpc, ShellOpenInEditorRpc, GetAvailableEditorsRpc, ScanConversationsRpc, SearchConversationsRpc, ListDiscoveredSessionsRpc, ListSessionsFeedRpc, GetSessionsFeedFacetsRpc, GetDiscoveredSessionRpc, EnrichSessionsRpc, EmbedSessionsRpc, GetConversationCostRpc, GetConversationCostByWorkspaceRpc, GetConversationStatsRpc);
2591
2744
  //#endregion
2592
2745
  //#region src/event-reducers.ts
2593
2746
  const INITIAL_READ_MODEL_STATE = {
@@ -2734,6 +2887,7 @@ function syncSnapshot(state, snapshot) {
2734
2887
  resolvedChannelPermissionDecisionIdsByAgentId: {},
2735
2888
  resources: snapshot.resources ?? null,
2736
2889
  issuesRaw: snapshot.issues ?? state.issuesRaw,
2890
+ recentActivity: snapshot.recentActivity ? [...snapshot.recentActivity] : state.recentActivity,
2737
2891
  observationsByIssueId: memory?.observationsByIssueId ?? state.observationsByIssueId,
2738
2892
  statusByIssueId: memory?.statusByIssueId ?? state.statusByIssueId,
2739
2893
  rollupsByIssueId: memory?.rollupsByIssueId ?? state.rollupsByIssueId,
@@ -2852,7 +3006,13 @@ function applyEvent(state, event) {
2852
3006
  };
2853
3007
  }
2854
3008
  case "agent.status_changed": {
2855
- const agent = state.agentsById[event.payload.agentId];
3009
+ const agent = state.agentsById[event.payload.agentId] ?? (event.payload.role === "strike" && event.payload.issueId ? {
3010
+ id: event.payload.agentId,
3011
+ issueId: event.payload.issueId,
3012
+ status: event.payload.status,
3013
+ role: "strike",
3014
+ startedAt: event.timestamp
3015
+ } : void 0);
2856
3016
  if (!agent) return {
2857
3017
  ...state,
2858
3018
  sequence: Math.max(state.sequence, event.sequence)
@@ -2926,7 +3086,11 @@ function applyEvent(state, event) {
2926
3086
  ...state.agentsById,
2927
3087
  [event.payload.agentId]: nextAgent
2928
3088
  },
2929
- turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId
3089
+ turnDiffSummariesByAgentId: nextTurnDiffSummariesByAgentId,
3090
+ agentIdBySessionId: event.payload.sessionId ? {
3091
+ ...state.agentIdBySessionId,
3092
+ [event.payload.sessionId]: event.payload.agentId
3093
+ } : state.agentIdBySessionId
2930
3094
  };
2931
3095
  }
2932
3096
  case "agent.heartbeat_dead": {
@@ -4238,6 +4402,84 @@ const FeatureRegistryEntry = effect.Schema.Struct({
4238
4402
  tags: effect.Schema.Array(effect.Schema.String)
4239
4403
  });
4240
4404
  //#endregion
4405
+ //#region src/harness-behavior.ts
4406
+ const CLAUDE_CODE_BEHAVIOR = {
4407
+ displayName: "Claude Code",
4408
+ executableName: "claude",
4409
+ processNames: ["claude"],
4410
+ launchCommandKind: "claude-code",
4411
+ deliveryKind: "pty-supervisor",
4412
+ readinessKind: "claude-session-signal",
4413
+ transcriptKind: "claude-jsonl",
4414
+ sessionIdSource: "launcher-session-id",
4415
+ contextLayerKind: "claude",
4416
+ feedKind: "claude_code",
4417
+ supportsPtySupervisor: true,
4418
+ supportsChannelsBridge: true,
4419
+ supportsConversationStreaming: false,
4420
+ supportsPatchProjection: true,
4421
+ usesRpcFifo: false,
4422
+ usesCodexHome: false,
4423
+ injectsPromptTimeMemory: false,
4424
+ workAgentMode: "claude-code",
4425
+ readyTimeoutSeconds: 30
4426
+ };
4427
+ const OHMYPI_BEHAVIOR = {
4428
+ displayName: "Pi",
4429
+ executableName: "omp",
4430
+ processNames: ["omp"],
4431
+ launchCommandKind: "ohmypi-rpc",
4432
+ deliveryKind: "rpc-fifo",
4433
+ readinessKind: "ohmypi-ready-file",
4434
+ transcriptKind: "ohmypi-jsonl",
4435
+ sessionIdSource: "transcript-jsonl",
4436
+ contextLayerKind: "pi",
4437
+ feedKind: "pi",
4438
+ supportsPtySupervisor: false,
4439
+ supportsChannelsBridge: false,
4440
+ supportsConversationStreaming: true,
4441
+ supportsPatchProjection: false,
4442
+ usesRpcFifo: true,
4443
+ usesCodexHome: false,
4444
+ injectsPromptTimeMemory: true,
4445
+ workAgentMode: "ohmypi-rpc",
4446
+ readyTimeoutSeconds: 120
4447
+ };
4448
+ const CODEX_BEHAVIOR = {
4449
+ displayName: "Codex",
4450
+ executableName: "codex",
4451
+ processNames: ["codex"],
4452
+ launchCommandKind: "codex-work-tui",
4453
+ deliveryKind: "codex-exec-resume",
4454
+ readinessKind: "codex-tui-prompt",
4455
+ transcriptKind: "codex-rollout-jsonl",
4456
+ sessionIdSource: "codex-thread-id",
4457
+ contextLayerKind: "codex",
4458
+ feedKind: "codex",
4459
+ supportsPtySupervisor: true,
4460
+ supportsChannelsBridge: false,
4461
+ supportsConversationStreaming: true,
4462
+ supportsPatchProjection: true,
4463
+ usesRpcFifo: false,
4464
+ usesCodexHome: true,
4465
+ injectsPromptTimeMemory: false,
4466
+ workAgentMode: "codex-work-tui",
4467
+ readyTimeoutSeconds: 30
4468
+ };
4469
+ const BEHAVIORS = {
4470
+ "claude-code": CLAUDE_CODE_BEHAVIOR,
4471
+ ohmypi: OHMYPI_BEHAVIOR,
4472
+ codex: CODEX_BEHAVIOR
4473
+ };
4474
+ function getHarnessBehavior(harness) {
4475
+ if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
4476
+ if (harness === "codex") return CODEX_BEHAVIOR;
4477
+ return CLAUDE_CODE_BEHAVIOR;
4478
+ }
4479
+ function getRuntimeBehavior(runtime) {
4480
+ return BEHAVIORS[runtime];
4481
+ }
4482
+ //#endregion
4241
4483
  exports.Activity = Activity;
4242
4484
  exports.ActivityDetailedEvent = ActivityDetailedEvent;
4243
4485
  exports.ActivityEntryEvent = ActivityEntryEvent;
@@ -4292,6 +4534,8 @@ exports.ArtifactValidationCode = ArtifactValidationCode;
4292
4534
  exports.ArtifactValidationFinding = ArtifactValidationFinding;
4293
4535
  exports.ArtifactValidationResult = ArtifactValidationResult;
4294
4536
  exports.CHANNEL_REPLY_KIND_VALUES = CHANNEL_REPLY_KIND_VALUES;
4537
+ exports.CLAUDE_CODE_BEHAVIOR = CLAUDE_CODE_BEHAVIOR;
4538
+ exports.CODEX_BEHAVIOR = CODEX_BEHAVIOR;
4295
4539
  exports.CONTEXT_LAYER_KINDS = CONTEXT_LAYER_KINDS;
4296
4540
  exports.CONTEXT_PREVIEW_HARNESSES = CONTEXT_PREVIEW_HARNESSES;
4297
4541
  exports.ChannelPermissionRequestSnapshot = ChannelPermissionRequestSnapshot;
@@ -4380,6 +4624,7 @@ exports.GetConversationCostByWorkspaceRpc = GetConversationCostByWorkspaceRpc;
4380
4624
  exports.GetConversationCostRpc = GetConversationCostRpc;
4381
4625
  exports.GetConversationStatsRpc = GetConversationStatsRpc;
4382
4626
  exports.GetDiscoveredSessionRpc = GetDiscoveredSessionRpc;
4627
+ exports.GetSessionsFeedFacetsRpc = GetSessionsFeedFacetsRpc;
4383
4628
  exports.GetSnapshotRpc = GetSnapshotRpc;
4384
4629
  exports.GetWorkspaceDetailRpc = GetWorkspaceDetailRpc;
4385
4630
  exports.GlobalContextLayerRecord = GlobalContextLayerRecord;
@@ -4387,9 +4632,11 @@ exports.GlobalContextLayerTarget = GlobalContextLayerTarget;
4387
4632
  exports.INITIAL_READ_MODEL_STATE = INITIAL_READ_MODEL_STATE;
4388
4633
  exports.IssueId = IssueId;
4389
4634
  exports.IssueStatusChangedEvent = IssueStatusChangedEvent;
4635
+ exports.IssueTransitionedEvent = IssueTransitionedEvent;
4390
4636
  exports.IssuesSnapshotEvent = IssuesSnapshotEvent;
4391
4637
  exports.IssuesUpdatedEvent = IssuesUpdatedEvent;
4392
4638
  exports.ListDiscoveredSessionsRpc = ListDiscoveredSessionsRpc;
4639
+ exports.ListSessionsFeedRpc = ListSessionsFeedRpc;
4393
4640
  exports.MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH = MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH;
4394
4641
  exports.MAX_CHANNEL_REPLY_ARTIFACT_REFS = MAX_CHANNEL_REPLY_ARTIFACT_REFS;
4395
4642
  exports.MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH = MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH;
@@ -4408,6 +4655,7 @@ exports.MergeReadyEvent = MergeReadyEvent;
4408
4655
  exports.MergeStatusValue = MergeStatusValue;
4409
4656
  exports.ModelOrigin = ModelOrigin;
4410
4657
  exports.ModelOriginEntry = ModelOriginEntry;
4658
+ exports.OHMYPI_BEHAVIOR = OHMYPI_BEHAVIOR;
4411
4659
  exports.OpenInEditorInput = OpenInEditorInput;
4412
4660
  exports.OperatorInterventionEvent = OperatorInterventionEvent;
4413
4661
  exports.PanRpcError = PanRpcError;
@@ -4418,6 +4666,8 @@ exports.PipelineReviewStartedEvent = PipelineReviewStartedEvent;
4418
4666
  exports.PipelineStatusChangedEvent = PipelineStatusChangedEvent;
4419
4667
  exports.PipelineTestCompletedEvent = PipelineTestCompletedEvent;
4420
4668
  exports.PipelineTestStartedEvent = PipelineTestStartedEvent;
4669
+ exports.PipelineVerificationFailedEvent = PipelineVerificationFailedEvent;
4670
+ exports.PipelineVerificationStartedEvent = PipelineVerificationStartedEvent;
4421
4671
  exports.PlanItemStatusChangedEvent = PlanItemStatusChangedEvent;
4422
4672
  exports.PlanItemsUnblockedEvent = PlanItemsUnblockedEvent;
4423
4673
  exports.PlanSubitemStatusChangedEvent = PlanSubitemStatusChangedEvent;
@@ -4467,6 +4717,9 @@ exports.SessionNode = SessionNode;
4467
4717
  exports.SessionNodePresence = SessionNodePresence;
4468
4718
  exports.SessionNodeType = SessionNodeType;
4469
4719
  exports.SessionTreeDelta = SessionTreeDelta;
4720
+ exports.SessionsFeedFacetsSnapshot = SessionsFeedFacetsSnapshot;
4721
+ exports.SessionsFeedRowSnapshot = SessionsFeedRowSnapshot;
4722
+ exports.SessionsFeedSource = SessionsFeedSource;
4470
4723
  exports.ShadowInferenceUpdateEvent = ShadowInferenceUpdateEvent;
4471
4724
  exports.ShellOpenInEditorRpc = ShellOpenInEditorRpc;
4472
4725
  exports.SpecialistCompletedEvent = SpecialistCompletedEvent;
@@ -4515,8 +4768,10 @@ exports.applyEvents = applyEvents;
4515
4768
  exports.decodeFlywheelStats = decodeFlywheelStats;
4516
4769
  exports.encodeFlywheelStats = encodeFlywheelStats;
4517
4770
  exports.getHarness = getHarness;
4771
+ exports.getHarnessBehavior = getHarnessBehavior;
4518
4772
  exports.getMaxMemoryObservationsPerIssue = getMaxMemoryObservationsPerIssue;
4519
4773
  exports.getMaxTurnDiffSummariesPerAgent = getMaxTurnDiffSummariesPerAgent;
4774
+ exports.getRuntimeBehavior = getRuntimeBehavior;
4520
4775
  exports.isChannelReplyKind = isChannelReplyKind;
4521
4776
  exports.isTerminalTurnDiffSummaryStatus = isTerminalTurnDiffSummaryStatus;
4522
4777
  exports.normalizeChannelReplyPayload = normalizeChannelReplyPayload;