@overdeck/contracts 0.47.1 → 0.48.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
@@ -91,7 +91,8 @@ const KNOWN_HARNESSES = new Set([
91
91
  "claude-code",
92
92
  "ohmypi",
93
93
  "codex",
94
- "acp"
94
+ "acp",
95
+ "kimi-code"
95
96
  ]);
96
97
  /**
97
98
  * Normalize a snapshot's runtime field to a known Harness value.
@@ -694,13 +695,14 @@ const ScanResult = Schema.Struct({
694
695
  });
695
696
  //#endregion
696
697
  //#region src/memory.ts
698
+ const MemoryAgentRole = Schema.Union([Role, Schema.Literal("conversation")]);
697
699
  const MemoryIdentity = Schema.Struct({
698
700
  projectId: Schema.String,
699
701
  workspaceId: Schema.String,
700
- issueId: IssueId,
702
+ issueId: Schema.NullOr(IssueId),
701
703
  runId: Schema.String,
702
704
  sessionId: Schema.String,
703
- agentRole: Role,
705
+ agentRole: MemoryAgentRole,
704
706
  agentHarness: Schema.String
705
707
  });
706
708
  const MemoryTokenUsage = Schema.Struct({
@@ -713,10 +715,10 @@ const MemoryObservation = Schema.Struct({
713
715
  timestamp: Schema.String,
714
716
  projectId: Schema.String,
715
717
  workspaceId: Schema.String,
716
- issueId: IssueId,
718
+ issueId: Schema.NullOr(IssueId),
717
719
  runId: Schema.String,
718
720
  sessionId: Schema.String,
719
- agentRole: Role,
721
+ agentRole: MemoryAgentRole,
720
722
  agentHarness: Schema.String,
721
723
  gitBranch: Schema.String,
722
724
  sourceTranscriptOffset: Schema.Number,
@@ -1154,6 +1156,7 @@ const AgentStartedEvent = Schema.Struct({
1154
1156
  payload: Schema.Struct({
1155
1157
  agentId: AgentId,
1156
1158
  issueId: IssueId,
1159
+ workspaceId: Schema.optional(Schema.String),
1157
1160
  agent: AgentSnapshot
1158
1161
  })
1159
1162
  });
@@ -1165,6 +1168,7 @@ const AgentStoppedEvent = Schema.Struct({
1165
1168
  payload: Schema.Struct({
1166
1169
  agentId: AgentId,
1167
1170
  issueId: IssueId,
1171
+ workspaceId: Schema.optional(Schema.String),
1168
1172
  sessionId: Schema.optional(Schema.String)
1169
1173
  })
1170
1174
  });
@@ -1175,6 +1179,7 @@ const AgentHeartbeatDeadEvent = Schema.Struct({
1175
1179
  payload: Schema.Struct({
1176
1180
  agentId: AgentId,
1177
1181
  issueId: Schema.optional(IssueId),
1182
+ workspaceId: Schema.optional(Schema.String),
1178
1183
  sessionId: Schema.optional(Schema.String)
1179
1184
  })
1180
1185
  });
@@ -1185,6 +1190,7 @@ const WorkCompletedEvent = Schema.Struct({
1185
1190
  timestamp: Schema.String,
1186
1191
  payload: Schema.Struct({
1187
1192
  issueId: IssueId,
1193
+ workspaceId: Schema.optional(Schema.String),
1188
1194
  agentId: Schema.optional(AgentId)
1189
1195
  })
1190
1196
  });
@@ -1195,6 +1201,7 @@ const AgentCompletedEvent = Schema.Struct({
1195
1201
  timestamp: Schema.String,
1196
1202
  payload: Schema.Struct({
1197
1203
  issueId: IssueId,
1204
+ workspaceId: Schema.optional(Schema.String),
1198
1205
  agentId: Schema.optional(AgentId),
1199
1206
  role: Schema.optional(Role)
1200
1207
  })
@@ -1204,14 +1211,20 @@ const ReviewApprovedEvent = Schema.Struct({
1204
1211
  type: Schema.Literal("review.approved"),
1205
1212
  sequence: SequenceNumber,
1206
1213
  timestamp: Schema.String,
1207
- payload: Schema.Struct({ issueId: IssueId })
1214
+ payload: Schema.Struct({
1215
+ issueId: IssueId,
1216
+ workspaceId: Schema.optional(Schema.String)
1217
+ })
1208
1218
  });
1209
1219
  /** Role lifecycle — tests passed and shipping should prepare the branch. */
1210
1220
  const TestPassedEvent = Schema.Struct({
1211
1221
  type: Schema.Literal("test.passed"),
1212
1222
  sequence: SequenceNumber,
1213
1223
  timestamp: Schema.String,
1214
- payload: Schema.Struct({ issueId: IssueId })
1224
+ payload: Schema.Struct({
1225
+ issueId: IssueId,
1226
+ workspaceId: Schema.optional(Schema.String)
1227
+ })
1215
1228
  });
1216
1229
  /** Replaces socket.io `godview:status-change` */
1217
1230
  const AgentStatusChangedEvent = Schema.Struct({
@@ -1221,6 +1234,7 @@ const AgentStatusChangedEvent = Schema.Struct({
1221
1234
  payload: Schema.Struct({
1222
1235
  agentId: AgentId,
1223
1236
  issueId: Schema.optional(IssueId),
1237
+ workspaceId: Schema.optional(Schema.String),
1224
1238
  status: AgentStatus,
1225
1239
  previousStatus: Schema.optional(AgentStatus),
1226
1240
  hasLiveTmuxSession: Schema.optional(Schema.Boolean),
@@ -1281,6 +1295,8 @@ const AgentEnrichmentChangedEvent = Schema.Struct({
1281
1295
  timestamp: Schema.String,
1282
1296
  payload: Schema.Struct({
1283
1297
  agentId: AgentId,
1298
+ issueId: Schema.optional(IssueId),
1299
+ workspaceId: Schema.optional(Schema.String),
1284
1300
  role: Schema.optional(Role),
1285
1301
  hasPendingQuestion: Schema.optional(Schema.Boolean),
1286
1302
  pendingQuestionCount: Schema.optional(Schema.Number),
@@ -1318,6 +1334,7 @@ const AgentCreatedEvent = Schema.Struct({
1318
1334
  payload: Schema.Struct({
1319
1335
  agentId: AgentId,
1320
1336
  issueId: IssueId,
1337
+ workspaceId: Schema.optional(Schema.String),
1321
1338
  agent: AgentSnapshot
1322
1339
  })
1323
1340
  });
@@ -1392,6 +1409,7 @@ const AgentPermissionResolvedEvent = Schema.Struct({
1392
1409
  requestId: Schema.String,
1393
1410
  agentId: AgentId,
1394
1411
  issueId: Schema.optional(IssueId),
1412
+ workspaceId: Schema.optional(Schema.String),
1395
1413
  behavior: ClaudeChannelPermissionBehavior
1396
1414
  })
1397
1415
  });
@@ -1500,6 +1518,7 @@ const PlanningStartedEvent = Schema.Struct({
1500
1518
  timestamp: Schema.String,
1501
1519
  payload: Schema.Struct({
1502
1520
  issueId: IssueId,
1521
+ workspaceId: Schema.optional(Schema.String),
1503
1522
  sessionName: Schema.String,
1504
1523
  harness: Schema.optional(Schema.String)
1505
1524
  })
@@ -1511,6 +1530,7 @@ const PlanningFailedEvent = Schema.Struct({
1511
1530
  timestamp: Schema.String,
1512
1531
  payload: Schema.Struct({
1513
1532
  issueId: IssueId,
1533
+ workspaceId: Schema.optional(Schema.String),
1514
1534
  error: Schema.String
1515
1535
  })
1516
1536
  });
@@ -1521,6 +1541,7 @@ const PlanningSyncEvent = Schema.Struct({
1521
1541
  timestamp: Schema.String,
1522
1542
  payload: Schema.Struct({
1523
1543
  issueId: IssueId,
1544
+ workspaceId: Schema.optional(Schema.String),
1524
1545
  status: Schema.String,
1525
1546
  progress: Schema.optional(Schema.Number),
1526
1547
  message: Schema.optional(Schema.String)
@@ -1533,6 +1554,7 @@ const PlanItemStatusChangedEvent = Schema.Struct({
1533
1554
  timestamp: Schema.String,
1534
1555
  payload: Schema.Struct({
1535
1556
  issueId: IssueId,
1557
+ workspaceId: Schema.optional(Schema.String),
1536
1558
  itemId: Schema.String,
1537
1559
  status: Schema.String
1538
1560
  })
@@ -1544,6 +1566,7 @@ const PlanSubitemStatusChangedEvent = Schema.Struct({
1544
1566
  timestamp: Schema.String,
1545
1567
  payload: Schema.Struct({
1546
1568
  issueId: IssueId,
1569
+ workspaceId: Schema.optional(Schema.String),
1547
1570
  itemId: Schema.String,
1548
1571
  subItemId: Schema.String,
1549
1572
  status: Schema.String
@@ -1556,6 +1579,7 @@ const PlanItemsUnblockedEvent = Schema.Struct({
1556
1579
  timestamp: Schema.String,
1557
1580
  payload: Schema.Struct({
1558
1581
  issueId: IssueId,
1582
+ workspaceId: Schema.optional(Schema.String),
1559
1583
  items: Schema.Array(Schema.String)
1560
1584
  })
1561
1585
  });
@@ -1566,6 +1590,7 @@ const PipelineStatusChangedEvent = Schema.Struct({
1566
1590
  timestamp: Schema.String,
1567
1591
  payload: Schema.Struct({
1568
1592
  issueId: IssueId,
1593
+ workspaceId: Schema.optional(Schema.String),
1569
1594
  status: ReviewStatusSnapshot
1570
1595
  })
1571
1596
  });
@@ -1574,7 +1599,10 @@ const MergeReadyEvent = Schema.Struct({
1574
1599
  type: Schema.Literal("merge.ready"),
1575
1600
  sequence: SequenceNumber,
1576
1601
  timestamp: Schema.String,
1577
- payload: Schema.Struct({ issueId: IssueId })
1602
+ payload: Schema.Struct({
1603
+ issueId: IssueId,
1604
+ workspaceId: Schema.optional(Schema.String)
1605
+ })
1578
1606
  });
1579
1607
  /** New — review status changed */
1580
1608
  const ReviewStatusChangedEvent = Schema.Struct({
@@ -1583,6 +1611,7 @@ const ReviewStatusChangedEvent = Schema.Struct({
1583
1611
  timestamp: Schema.String,
1584
1612
  payload: Schema.Struct({
1585
1613
  issueId: IssueId,
1614
+ workspaceId: Schema.optional(Schema.String),
1586
1615
  status: ReviewStatusSnapshot
1587
1616
  })
1588
1617
  });
@@ -1591,7 +1620,10 @@ const PipelineReviewStartedEvent = Schema.Struct({
1591
1620
  type: Schema.Literal("pipeline.review-started"),
1592
1621
  sequence: SequenceNumber,
1593
1622
  timestamp: Schema.String,
1594
- payload: Schema.Struct({ issueId: IssueId })
1623
+ payload: Schema.Struct({
1624
+ issueId: IssueId,
1625
+ workspaceId: Schema.optional(Schema.String)
1626
+ })
1595
1627
  });
1596
1628
  /** New — review specialist finished (passed or failed) */
1597
1629
  const PipelineReviewCompletedEvent = Schema.Struct({
@@ -1600,6 +1632,7 @@ const PipelineReviewCompletedEvent = Schema.Struct({
1600
1632
  timestamp: Schema.String,
1601
1633
  payload: Schema.Struct({
1602
1634
  issueId: IssueId,
1635
+ workspaceId: Schema.optional(Schema.String),
1603
1636
  passed: Schema.Boolean
1604
1637
  })
1605
1638
  });
@@ -1608,7 +1641,10 @@ const PipelineTestStartedEvent = Schema.Struct({
1608
1641
  type: Schema.Literal("pipeline.test-started"),
1609
1642
  sequence: SequenceNumber,
1610
1643
  timestamp: Schema.String,
1611
- payload: Schema.Struct({ issueId: IssueId })
1644
+ payload: Schema.Struct({
1645
+ issueId: IssueId,
1646
+ workspaceId: Schema.optional(Schema.String)
1647
+ })
1612
1648
  });
1613
1649
  /** New — test specialist finished (passed or failed) */
1614
1650
  const PipelineTestCompletedEvent = Schema.Struct({
@@ -1617,6 +1653,7 @@ const PipelineTestCompletedEvent = Schema.Struct({
1617
1653
  timestamp: Schema.String,
1618
1654
  payload: Schema.Struct({
1619
1655
  issueId: IssueId,
1656
+ workspaceId: Schema.optional(Schema.String),
1620
1657
  passed: Schema.Boolean
1621
1658
  })
1622
1659
  });
@@ -1625,7 +1662,10 @@ const PipelineVerificationStartedEvent = Schema.Struct({
1625
1662
  type: Schema.Literal("pipeline.verification-started"),
1626
1663
  sequence: SequenceNumber,
1627
1664
  timestamp: Schema.String,
1628
- payload: Schema.Struct({ issueId: IssueId })
1665
+ payload: Schema.Struct({
1666
+ issueId: IssueId,
1667
+ workspaceId: Schema.optional(Schema.String)
1668
+ })
1629
1669
  });
1630
1670
  /** New — verification gate failed (carries failedCheck for gate failures, message for infra errors) */
1631
1671
  const PipelineVerificationFailedEvent = Schema.Struct({
@@ -1634,6 +1674,7 @@ const PipelineVerificationFailedEvent = Schema.Struct({
1634
1674
  timestamp: Schema.String,
1635
1675
  payload: Schema.Struct({
1636
1676
  issueId: IssueId,
1677
+ workspaceId: Schema.optional(Schema.String),
1637
1678
  failedCheck: Schema.optional(Schema.String),
1638
1679
  message: Schema.optional(Schema.String)
1639
1680
  })
@@ -1647,6 +1688,7 @@ const IssueTransitionedEvent = Schema.Struct({
1647
1688
  timestamp: Schema.String,
1648
1689
  payload: Schema.Struct({
1649
1690
  issueId: IssueId,
1691
+ workspaceId: Schema.optional(Schema.String),
1650
1692
  state: Schema.String
1651
1693
  })
1652
1694
  });
@@ -1656,6 +1698,7 @@ const OperatorInterventionEvent = Schema.Struct({
1656
1698
  timestamp: Schema.String,
1657
1699
  payload: Schema.Struct({
1658
1700
  issueId: IssueId,
1701
+ workspaceId: Schema.optional(Schema.String),
1659
1702
  kind: Schema.Literals([
1660
1703
  "tell",
1661
1704
  "pause",
@@ -1720,6 +1763,7 @@ const SubstrateBugFiledEvent = Schema.Struct({
1720
1763
  timestamp: Schema.String,
1721
1764
  payload: Schema.Struct({
1722
1765
  issueId: IssueId,
1766
+ workspaceId: Schema.optional(Schema.String),
1723
1767
  runId: Schema.optional(Schema.String),
1724
1768
  filedBy: Schema.Literals(["agent", "operator"]),
1725
1769
  discoveredIn: Schema.optional(IssueId),
@@ -1741,6 +1785,7 @@ const ReviewReviewerStartedEvent = Schema.Struct({
1741
1785
  timestamp: Schema.String,
1742
1786
  payload: Schema.Struct({
1743
1787
  issueId: IssueId,
1788
+ workspaceId: Schema.optional(Schema.String),
1744
1789
  role: Schema.String,
1745
1790
  sessionName: Schema.String
1746
1791
  })
@@ -1755,6 +1800,7 @@ const ReviewReviewerCompletedEvent = Schema.Struct({
1755
1800
  timestamp: Schema.String,
1756
1801
  payload: Schema.Struct({
1757
1802
  issueId: IssueId,
1803
+ workspaceId: Schema.optional(Schema.String),
1758
1804
  role: Schema.String
1759
1805
  })
1760
1806
  });
@@ -1769,6 +1815,7 @@ const ReviewSpecialistTimedOutEvent = Schema.Struct({
1769
1815
  timestamp: Schema.String,
1770
1816
  payload: Schema.Struct({
1771
1817
  issueId: IssueId,
1818
+ workspaceId: Schema.optional(Schema.String),
1772
1819
  role: Schema.String,
1773
1820
  sessionName: Schema.String,
1774
1821
  attempt: Schema.Number,
@@ -1787,6 +1834,7 @@ const ReviewCoordinatorStartedEvent = Schema.Struct({
1787
1834
  timestamp: Schema.String,
1788
1835
  payload: Schema.Struct({
1789
1836
  issueId: IssueId,
1837
+ workspaceId: Schema.optional(Schema.String),
1790
1838
  sessionName: Schema.String
1791
1839
  })
1792
1840
  });
@@ -1797,6 +1845,7 @@ const ReviewCoordinatorDiedEvent = Schema.Struct({
1797
1845
  timestamp: Schema.String,
1798
1846
  payload: Schema.Struct({
1799
1847
  issueId: IssueId,
1848
+ workspaceId: Schema.optional(Schema.String),
1800
1849
  sessionName: Schema.String,
1801
1850
  reason: Schema.String
1802
1851
  })
@@ -1826,7 +1875,8 @@ const SpecialistCompletedEvent = Schema.Struct({
1826
1875
  timestamp: Schema.String,
1827
1876
  payload: Schema.Struct({
1828
1877
  name: Role,
1829
- issueId: Schema.optional(IssueId)
1878
+ issueId: Schema.optional(IssueId),
1879
+ workspaceId: Schema.optional(Schema.String)
1830
1880
  })
1831
1881
  });
1832
1882
  /** New — role-backed specialist failed */
@@ -1837,6 +1887,7 @@ const SpecialistFailedEvent = Schema.Struct({
1837
1887
  payload: Schema.Struct({
1838
1888
  name: Role,
1839
1889
  issueId: Schema.optional(IssueId),
1890
+ workspaceId: Schema.optional(Schema.String),
1840
1891
  error: Schema.String
1841
1892
  })
1842
1893
  });
@@ -1876,7 +1927,10 @@ const IssuesUpdatedEvent = Schema.Struct({
1876
1927
  type: Schema.Literal("issues.updated"),
1877
1928
  sequence: SequenceNumber,
1878
1929
  timestamp: Schema.String,
1879
- payload: Schema.Struct({ issueId: Schema.optional(IssueId) })
1930
+ payload: Schema.Struct({
1931
+ issueId: Schema.optional(IssueId),
1932
+ workspaceId: Schema.optional(Schema.String)
1933
+ })
1880
1934
  });
1881
1935
  /** Patch a single issue's status in the read model without a full snapshot refresh. */
1882
1936
  const IssueStatusChangedEvent = Schema.Struct({
@@ -1885,6 +1939,7 @@ const IssueStatusChangedEvent = Schema.Struct({
1885
1939
  timestamp: Schema.String,
1886
1940
  payload: Schema.Struct({
1887
1941
  issueId: IssueId,
1942
+ workspaceId: Schema.optional(Schema.String),
1888
1943
  status: Schema.String,
1889
1944
  canonicalStatus: Schema.String,
1890
1945
  labels: Schema.optional(Schema.Array(Schema.String))
@@ -1917,6 +1972,7 @@ const ActivityEntryEvent = Schema.Struct({
1917
1972
  details: Schema.optional(Schema.String),
1918
1973
  output: Schema.optional(Schema.String),
1919
1974
  issueId: Schema.optional(IssueId),
1975
+ workspaceId: Schema.optional(Schema.String),
1920
1976
  /** Dashboard route the feed navigates to on click (e.g. /conv/<name>, /flywheel). */
1921
1977
  link: Schema.optional(Schema.String),
1922
1978
  /** PAN-1862 (FR-12): fire a desktop notification for this entry (operator-facing warnings). */
@@ -1935,6 +1991,7 @@ const ActivityDetailedEvent = Schema.Struct({
1935
1991
  message: Schema.String,
1936
1992
  details: Schema.optional(Schema.String),
1937
1993
  issueId: Schema.optional(IssueId),
1994
+ workspaceId: Schema.optional(Schema.String),
1938
1995
  triggeringEvent: Schema.optional(Schema.String)
1939
1996
  })
1940
1997
  });
@@ -1948,6 +2005,7 @@ const ActivityTtsEvent = Schema.Struct({
1948
2005
  utterance: Schema.String,
1949
2006
  priority: Schema.optional(Schema.Number),
1950
2007
  issueId: Schema.optional(IssueId),
2008
+ workspaceId: Schema.optional(Schema.String),
1951
2009
  source: Schema.optional(Schema.String),
1952
2010
  eventType: Schema.optional(Schema.String)
1953
2011
  })
@@ -1960,6 +2018,7 @@ const DashboardLifecycleStartedEvent = Schema.Struct({
1960
2018
  payload: Schema.Struct({
1961
2019
  reason: Schema.String,
1962
2020
  issueId: Schema.optional(IssueId),
2021
+ workspaceId: Schema.optional(Schema.String),
1963
2022
  trigger: Schema.String
1964
2023
  })
1965
2024
  });
@@ -1971,6 +2030,7 @@ const DashboardLifecycleCompletedEvent = Schema.Struct({
1971
2030
  payload: Schema.Struct({
1972
2031
  reason: Schema.String,
1973
2032
  issueId: Schema.optional(IssueId),
2033
+ workspaceId: Schema.optional(Schema.String),
1974
2034
  durationMs: Schema.Number
1975
2035
  })
1976
2036
  });
@@ -1982,6 +2042,7 @@ const DashboardLifecycleFailedEvent = Schema.Struct({
1982
2042
  payload: Schema.Struct({
1983
2043
  reason: Schema.String,
1984
2044
  issueId: Schema.optional(IssueId),
2045
+ workspaceId: Schema.optional(Schema.String),
1985
2046
  error: Schema.String
1986
2047
  })
1987
2048
  });
@@ -1992,6 +2053,7 @@ const ShadowInferenceUpdateEvent = Schema.Struct({
1992
2053
  timestamp: Schema.String,
1993
2054
  payload: Schema.Struct({
1994
2055
  issueId: IssueId,
2056
+ workspaceId: Schema.optional(Schema.String),
1995
2057
  content: Schema.String
1996
2058
  })
1997
2059
  });
@@ -2002,6 +2064,7 @@ const WorkspaceCreatedEvent = Schema.Struct({
2002
2064
  timestamp: Schema.String,
2003
2065
  payload: Schema.Struct({
2004
2066
  issueId: IssueId,
2067
+ workspaceId: Schema.optional(Schema.String),
2005
2068
  workspacePath: Schema.String
2006
2069
  })
2007
2070
  });
@@ -2010,21 +2073,30 @@ const WorkspaceWipeStartedEvent = Schema.Struct({
2010
2073
  type: Schema.Literal("workspace.wipe_started"),
2011
2074
  sequence: SequenceNumber,
2012
2075
  timestamp: Schema.String,
2013
- payload: Schema.Struct({ issueId: IssueId })
2076
+ payload: Schema.Struct({
2077
+ issueId: IssueId,
2078
+ workspaceId: Schema.optional(Schema.String)
2079
+ })
2014
2080
  });
2015
2081
  /** New — deep-wipe completed, workspace fully destroyed */
2016
2082
  const WorkspaceDestroyedEvent = Schema.Struct({
2017
2083
  type: Schema.Literal("workspace.destroyed"),
2018
2084
  sequence: SequenceNumber,
2019
2085
  timestamp: Schema.String,
2020
- payload: Schema.Struct({ issueId: IssueId })
2086
+ payload: Schema.Struct({
2087
+ issueId: IssueId,
2088
+ workspaceId: Schema.optional(Schema.String)
2089
+ })
2021
2090
  });
2022
2091
  /** New — cleanup-workspace completed, workspace directory removed */
2023
2092
  const WorkspaceDeletedEvent = Schema.Struct({
2024
2093
  type: Schema.Literal("workspace.deleted"),
2025
2094
  sequence: SequenceNumber,
2026
2095
  timestamp: Schema.String,
2027
- payload: Schema.Struct({ issueId: IssueId })
2096
+ payload: Schema.Struct({
2097
+ issueId: IssueId,
2098
+ workspaceId: Schema.optional(Schema.String)
2099
+ })
2028
2100
  });
2029
2101
  /** New — planning aborted, workspace returned to idle state */
2030
2102
  const WorkspaceAbortedEvent = Schema.Struct({
@@ -2033,6 +2105,7 @@ const WorkspaceAbortedEvent = Schema.Struct({
2033
2105
  timestamp: Schema.String,
2034
2106
  payload: Schema.Struct({
2035
2107
  issueId: IssueId,
2108
+ workspaceId: Schema.optional(Schema.String),
2036
2109
  sessionName: Schema.optional(Schema.String)
2037
2110
  })
2038
2111
  });
@@ -2082,6 +2155,7 @@ const MemoryHealthChangedEvent = Schema.Struct({
2082
2155
  payload: Schema.Struct({
2083
2156
  projectId: Schema.String,
2084
2157
  issueId: IssueId,
2158
+ workspaceId: Schema.optional(Schema.String),
2085
2159
  status: Schema.Literals([
2086
2160
  "healthy",
2087
2161
  "degraded",
@@ -2100,6 +2174,7 @@ const CostEventRecordedEvent = Schema.Struct({
2100
2174
  payload: Schema.Struct({
2101
2175
  agentId: AgentId,
2102
2176
  issueId: IssueId,
2177
+ workspaceId: Schema.optional(Schema.String),
2103
2178
  cost: Schema.Number,
2104
2179
  inputTokens: Schema.Number,
2105
2180
  outputTokens: Schema.Number
@@ -2491,7 +2566,8 @@ const FlywheelHarness = Schema.Literals([
2491
2566
  "pi",
2492
2567
  "ohmypi",
2493
2568
  "codex",
2494
- "acp"
2569
+ "acp",
2570
+ "kimi-code"
2495
2571
  ]);
2496
2572
  const FlywheelEffort = Schema.Literals([
2497
2573
  "low",
@@ -2684,6 +2760,8 @@ const WS_METHODS = {
2684
2760
  replayEvents: "pan.replayEvents",
2685
2761
  getWorkspaceDetail: "pan.getWorkspaceDetail",
2686
2762
  readWorkspaceFile: "pan.readWorkspaceFile",
2763
+ readFileAtPath: "pan.readFileAtPath",
2764
+ writeFileAtPath: "pan.writeFileAtPath",
2687
2765
  resolveFilePathExists: "pan.resolveFilePathExists",
2688
2766
  terminalOpen: "pan.terminalOpen",
2689
2767
  terminalWrite: "pan.terminalWrite",
@@ -2829,12 +2907,17 @@ const SessionTreeDelta = Schema.Struct({
2829
2907
  "session_added",
2830
2908
  "session_removed",
2831
2909
  "presence_changed",
2832
- "status_changed"
2910
+ "status_changed",
2911
+ "pending_input_changed"
2833
2912
  ]),
2834
2913
  issueId: Schema.String,
2835
2914
  sessionId: Schema.String,
2836
2915
  presence: Schema.optional(SessionNodePresence),
2837
2916
  status: Schema.optional(AgentStatus),
2917
+ awaitingInput: Schema.optional(Schema.Boolean),
2918
+ awaitingInputPrompt: Schema.optional(Schema.String),
2919
+ awaitingInputReason: Schema.optional(Schema.String),
2920
+ pendingInputKinds: Schema.optional(Schema.Array(Schema.String)),
2838
2921
  timestamp: Schema.String
2839
2922
  });
2840
2923
  /** 1. Subscribe to the live domain event stream (stream) */
@@ -2935,6 +3018,44 @@ const ReadWorkspaceFileRpc = Rpc.make(WS_METHODS.readWorkspaceFile, {
2935
3018
  success: ReadWorkspaceFileResult,
2936
3019
  error: PanRpcError
2937
3020
  });
3021
+ const ReadFileAtPathInput = Schema.Struct({ path: Schema.String });
3022
+ const ReadFileAtPathResult = Schema.Struct({
3023
+ text: Schema.String,
3024
+ lang: Schema.String,
3025
+ mtimeMs: Schema.Number,
3026
+ totalLines: Schema.Number
3027
+ });
3028
+ /**
3029
+ * 10b-2. Read an allowlisted markdown file by absolute path (PAN-3260).
3030
+ *
3031
+ * Unlike ReadWorkspaceFileRpc this takes no issueId — the internal markdown
3032
+ * editor pane opens files reached from surfaces with no workspace context
3033
+ * (e.g. a repo-root file chip inside a conversation). The server validates
3034
+ * `path` against registered project roots + OVERDECK_HOME before reading.
3035
+ */
3036
+ const ReadFileAtPathRpc = Rpc.make(WS_METHODS.readFileAtPath, {
3037
+ payload: ReadFileAtPathInput,
3038
+ success: ReadFileAtPathResult,
3039
+ error: PanRpcError
3040
+ });
3041
+ const WriteFileAtPathInput = Schema.Struct({
3042
+ path: Schema.String,
3043
+ content: Schema.String,
3044
+ expectedMtimeMs: Schema.optional(Schema.Number)
3045
+ });
3046
+ const WriteFileAtPathResult = Schema.Struct({ mtimeMs: Schema.Number });
3047
+ /**
3048
+ * 10b-3. Write an allowlisted markdown file by absolute path (PAN-3260).
3049
+ *
3050
+ * `expectedMtimeMs` enables optimistic concurrency: a stale value is
3051
+ * rejected with a PanRpcError code of WRITE_CONFLICT and nothing is
3052
+ * written. Omitting it (e.g. an explicit Overwrite action) skips the check.
3053
+ */
3054
+ const WriteFileAtPathRpc = Rpc.make(WS_METHODS.writeFileAtPath, {
3055
+ payload: WriteFileAtPathInput,
3056
+ success: WriteFileAtPathResult,
3057
+ error: PanRpcError
3058
+ });
2938
3059
  /**
2939
3060
  * 10c. Resolve whether a file path candidate exists on disk (PAN-1457).
2940
3061
  *
@@ -3209,7 +3330,7 @@ const GetConversationStatsRpc = Rpc.make(WS_METHODS.getConversationStats, {
3209
3330
  error: PanRpcError
3210
3331
  });
3211
3332
  /** All Overdeck WebSocket RPC methods */
3212
- const PanRpcGroup = 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);
3333
+ const PanRpcGroup = RpcGroup.make(SubscribeDomainEventsRpc, SubscribeIssueEventsRpc, SubscribeTerminalRpc, SubscribeAgentOutputRpc, GetSnapshotRpc, ReplayEventsRpc, GetWorkspaceDetailRpc, ReadWorkspaceFileRpc, ReadFileAtPathRpc, WriteFileAtPathRpc, 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);
3213
3334
  //#endregion
3214
3335
  //#region src/event-reducers.ts
3215
3336
  const INITIAL_READ_MODEL_STATE = {
@@ -3866,7 +3987,8 @@ function applyEvent(state, event) {
3866
3987
  };
3867
3988
  case "memory.observation_created": {
3868
3989
  const observation = event.payload.observation;
3869
- const existing = state.observationsByIssueId[observation.issueId] ?? [];
3990
+ const observationKey = observation.issueId ?? observation.workspaceId;
3991
+ const existing = state.observationsByIssueId[observationKey] ?? [];
3870
3992
  const index = existing.findIndex((entry) => entry.id === observation.id);
3871
3993
  const updated = trimMemoryObservations(index === -1 ? [...existing, observation] : existing.map((entry, entryIndex) => entryIndex === index ? observation : entry));
3872
3994
  return {
@@ -3874,7 +3996,7 @@ function applyEvent(state, event) {
3874
3996
  sequence: Math.max(state.sequence, event.sequence),
3875
3997
  observationsByIssueId: {
3876
3998
  ...state.observationsByIssueId,
3877
- [observation.issueId]: updated
3999
+ [observationKey]: updated
3878
4000
  }
3879
4001
  };
3880
4002
  }
@@ -4641,7 +4763,8 @@ const CONTEXT_PREVIEW_HARNESSES = [
4641
4763
  "claude-code",
4642
4764
  "ohmypi",
4643
4765
  "codex",
4644
- "acp"
4766
+ "acp",
4767
+ "kimi-code"
4645
4768
  ];
4646
4769
  const ContextLayerKind = Schema.Literals(CONTEXT_LAYER_KINDS);
4647
4770
  const ContextPreviewHarness = Schema.Literals(CONTEXT_PREVIEW_HARNESSES);
@@ -4749,6 +4872,7 @@ const ContextHarnessPreviews = Schema.Struct({
4749
4872
  ohmypi: Schema.String,
4750
4873
  codex: Schema.String,
4751
4874
  acp: Schema.String,
4875
+ "kimi-code": Schema.String,
4752
4876
  fullPrompt: Schema.String
4753
4877
  });
4754
4878
  const ContextPreviewDiagnostic = Schema.Struct({
@@ -4804,6 +4928,7 @@ const ArtifactAgentHarness = Schema.Literals([
4804
4928
  "ohmypi",
4805
4929
  "codex",
4806
4930
  "acp",
4931
+ "kimi-code",
4807
4932
  "user"
4808
4933
  ]);
4809
4934
  const ArtifactLifecycleState = Schema.Literals([
@@ -5037,16 +5162,40 @@ const ACP_BEHAVIOR = {
5037
5162
  workAgentMode: "acp-host",
5038
5163
  readyTimeoutSeconds: 30
5039
5164
  };
5165
+ const KIMI_CODE_BEHAVIOR = {
5166
+ displayName: "Kimi Code",
5167
+ nativeCommands: [],
5168
+ executableName: "kimi",
5169
+ processNames: ["kimi"],
5170
+ launchCommandKind: "kimi-code-tui",
5171
+ deliveryKind: "pty-supervisor",
5172
+ readinessKind: "kimi-session-signal",
5173
+ transcriptKind: "kimi-wire-jsonl",
5174
+ sessionIdSource: "kimi-session-newest",
5175
+ contextLayerKind: "kimi-code",
5176
+ feedKind: "kimi_code",
5177
+ supportsPtySupervisor: true,
5178
+ supportsChannelsBridge: false,
5179
+ supportsConversationStreaming: true,
5180
+ supportsPatchProjection: false,
5181
+ usesRpcFifo: false,
5182
+ usesCodexHome: false,
5183
+ injectsPromptTimeMemory: false,
5184
+ workAgentMode: "kimi-code-tui",
5185
+ readyTimeoutSeconds: 60
5186
+ };
5040
5187
  const BEHAVIORS = {
5041
5188
  "claude-code": CLAUDE_CODE_BEHAVIOR,
5042
5189
  ohmypi: OHMYPI_BEHAVIOR,
5043
5190
  codex: CODEX_BEHAVIOR,
5044
- acp: ACP_BEHAVIOR
5191
+ acp: ACP_BEHAVIOR,
5192
+ "kimi-code": KIMI_CODE_BEHAVIOR
5045
5193
  };
5046
5194
  function getHarnessBehavior(harness) {
5047
5195
  if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
5048
5196
  if (harness === "codex") return CODEX_BEHAVIOR;
5049
5197
  if (harness === "acp") return ACP_BEHAVIOR;
5198
+ if (harness === "kimi-code") return KIMI_CODE_BEHAVIOR;
5050
5199
  return CLAUDE_CODE_BEHAVIOR;
5051
5200
  }
5052
5201
  function getRuntimeBehavior(runtime) {
@@ -5260,7 +5409,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
5260
5409
  "god-view",
5261
5410
  "deacon",
5262
5411
  "sessions",
5263
- "awaiting-merge"
5412
+ "awaiting-merge",
5413
+ "workspace"
5264
5414
  ],
5265
5415
  decision_subject: ["agent", "conversation"],
5266
5416
  duration_bucket: [
@@ -5279,7 +5429,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
5279
5429
  "claude-code",
5280
5430
  "ohmypi",
5281
5431
  "codex",
5282
- "acp"
5432
+ "acp",
5433
+ "kimi-code"
5283
5434
  ],
5284
5435
  merge_kind: ["pipeline"],
5285
5436
  model_family: [
@@ -5940,7 +6091,7 @@ const COMPOSER_COMMAND_MANIFEST = [
5940
6091
  },
5941
6092
  {
5942
6093
  "flags": "--harness <harness>",
5943
- "description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
6094
+ "description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
5944
6095
  "required": true,
5945
6096
  "valueHint": "harness"
5946
6097
  },
@@ -6044,6 +6195,24 @@ const COMPOSER_COMMAND_MANIFEST = [
6044
6195
  "aliases": [],
6045
6196
  "category": "Lifecycle"
6046
6197
  },
6198
+ {
6199
+ "id": "pan-answer",
6200
+ "path": ["answer"],
6201
+ "display": "/pan answer",
6202
+ "description": "Show a pending pane choice, or answer its numbered option",
6203
+ "args": [{
6204
+ "name": "id",
6205
+ "required": true,
6206
+ "variadic": false
6207
+ }, {
6208
+ "name": "option",
6209
+ "required": false,
6210
+ "variadic": false
6211
+ }],
6212
+ "options": [],
6213
+ "aliases": [],
6214
+ "category": "CLI"
6215
+ },
6047
6216
  {
6048
6217
  "id": "pan-monitor",
6049
6218
  "path": ["monitor"],
@@ -6599,7 +6768,7 @@ const COMPOSER_COMMAND_MANIFEST = [
6599
6768
  },
6600
6769
  {
6601
6770
  "flags": "--harness <harness>",
6602
- "description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
6771
+ "description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
6603
6772
  "required": true,
6604
6773
  "valueHint": "harness"
6605
6774
  },
@@ -6665,7 +6834,7 @@ const COMPOSER_COMMAND_MANIFEST = [
6665
6834
  },
6666
6835
  {
6667
6836
  "flags": "--force",
6668
- "description": "Clear a paused agent gate and start anyway",
6837
+ "description": "Clear paused and pending-operator-decision gates and start anyway",
6669
6838
  "required": false,
6670
6839
  "valueHint": null
6671
6840
  },
@@ -6716,7 +6885,7 @@ const COMPOSER_COMMAND_MANIFEST = [
6716
6885
  },
6717
6886
  {
6718
6887
  "flags": "--harness <harness>",
6719
- "description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
6888
+ "description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
6720
6889
  "required": true,
6721
6890
  "valueHint": "harness"
6722
6891
  },
@@ -7365,17 +7534,32 @@ const COMPOSER_COMMAND_MANIFEST = [
7365
7534
  "display": "/pan workspace list",
7366
7535
  "description": "List all workspaces",
7367
7536
  "args": [],
7368
- "options": [{
7369
- "flags": "--json",
7370
- "description": "Output as JSON",
7371
- "required": false,
7372
- "valueHint": null
7373
- }, {
7374
- "flags": "--all",
7375
- "description": "List workspaces across all registered projects",
7376
- "required": false,
7377
- "valueHint": null
7378
- }],
7537
+ "options": [
7538
+ {
7539
+ "flags": "--json",
7540
+ "description": "Output as JSON",
7541
+ "required": false,
7542
+ "valueHint": null
7543
+ },
7544
+ {
7545
+ "flags": "--all",
7546
+ "description": "List workspaces across all registered projects",
7547
+ "required": false,
7548
+ "valueHint": null
7549
+ },
7550
+ {
7551
+ "flags": "--kind <kind>",
7552
+ "description": "Filter by workspace kind (main|issue|scratch), reading through the resolver",
7553
+ "required": true,
7554
+ "valueHint": "kind"
7555
+ },
7556
+ {
7557
+ "flags": "--archived",
7558
+ "description": "Include archived workspaces (only applies with --kind)",
7559
+ "required": false,
7560
+ "valueHint": null
7561
+ }
7562
+ ],
7379
7563
  "aliases": [],
7380
7564
  "category": "Workspace"
7381
7565
  },
@@ -7389,16 +7573,151 @@ const COMPOSER_COMMAND_MANIFEST = [
7389
7573
  "required": true,
7390
7574
  "variadic": false
7391
7575
  }],
7576
+ "options": [
7577
+ {
7578
+ "flags": "--force",
7579
+ "description": "Force removal even with uncommitted changes",
7580
+ "required": false,
7581
+ "valueHint": null
7582
+ },
7583
+ {
7584
+ "flags": "--project <path>",
7585
+ "description": "Explicit project path (overrides registry)",
7586
+ "required": true,
7587
+ "valueHint": "path"
7588
+ },
7589
+ {
7590
+ "flags": "--purge-memory",
7591
+ "description": "Also permanently delete the workspace's memory home (irreversible)",
7592
+ "required": false,
7593
+ "valueHint": null
7594
+ }
7595
+ ],
7596
+ "aliases": [],
7597
+ "category": "Workspace"
7598
+ },
7599
+ {
7600
+ "id": "pan-workspace-new",
7601
+ "path": ["workspace", "new"],
7602
+ "display": "/pan workspace new",
7603
+ "description": "Create a scratch workspace (shared dir by default; --isolated for a git worktree)",
7604
+ "args": [{
7605
+ "name": "name",
7606
+ "required": true,
7607
+ "variadic": false
7608
+ }],
7609
+ "options": [
7610
+ {
7611
+ "flags": "--project <key>",
7612
+ "description": "Registered project key (defaults to the sole project, or the one resolved from cwd)",
7613
+ "required": true,
7614
+ "valueHint": "key"
7615
+ },
7616
+ {
7617
+ "flags": "--isolated",
7618
+ "description": "Create an isolated git worktree instead of sharing the project directory",
7619
+ "required": false,
7620
+ "valueHint": null
7621
+ },
7622
+ {
7623
+ "flags": "--parent-branch <branch>",
7624
+ "description": "Parent branch for the isolated worktree (default: inferred from the project's current branch)",
7625
+ "required": true,
7626
+ "valueHint": "branch"
7627
+ },
7628
+ {
7629
+ "flags": "--target-path <dir>",
7630
+ "description": "Target an existing directory as the workspace path (rejects --isolated)",
7631
+ "required": true,
7632
+ "valueHint": "dir"
7633
+ },
7634
+ {
7635
+ "flags": "--dry-run",
7636
+ "description": "Print the resolved intent as JSON and create nothing",
7637
+ "required": false,
7638
+ "valueHint": null
7639
+ }
7640
+ ],
7641
+ "aliases": [],
7642
+ "category": "Workspace"
7643
+ },
7644
+ {
7645
+ "id": "pan-workspace-main",
7646
+ "path": ["workspace", "main"],
7647
+ "display": "/pan workspace main",
7648
+ "description": "Resolve or create the project's singleton main workspace",
7649
+ "args": [],
7392
7650
  "options": [{
7651
+ "flags": "--project <key>",
7652
+ "description": "Registered project key (defaults to the sole project, or the one resolved from cwd)",
7653
+ "required": true,
7654
+ "valueHint": "key"
7655
+ }],
7656
+ "aliases": [],
7657
+ "category": "Workspace"
7658
+ },
7659
+ {
7660
+ "id": "pan-workspace-get",
7661
+ "path": ["workspace", "get"],
7662
+ "display": "/pan workspace get",
7663
+ "description": "Show a workspace row by id",
7664
+ "args": [{
7665
+ "name": "ws",
7666
+ "required": true,
7667
+ "variadic": false
7668
+ }],
7669
+ "options": [],
7670
+ "aliases": [],
7671
+ "category": "Workspace"
7672
+ },
7673
+ {
7674
+ "id": "pan-workspace-activate",
7675
+ "path": ["workspace", "activate"],
7676
+ "display": "/pan workspace activate",
7677
+ "description": "Touch a workspace's last-accessed time and print its layout hint",
7678
+ "args": [{
7679
+ "name": "ws",
7680
+ "required": true,
7681
+ "variadic": false
7682
+ }],
7683
+ "options": [],
7684
+ "aliases": [],
7685
+ "category": "Workspace"
7686
+ },
7687
+ {
7688
+ "id": "pan-workspace-archive",
7689
+ "path": ["workspace", "archive"],
7690
+ "display": "/pan workspace archive",
7691
+ "description": "Archive a workspace (reversible; refuses kind=main)",
7692
+ "args": [{
7693
+ "name": "ws",
7694
+ "required": true,
7695
+ "variadic": false
7696
+ }],
7697
+ "options": [],
7698
+ "aliases": [],
7699
+ "category": "Workspace"
7700
+ },
7701
+ {
7702
+ "id": "pan-workspace-relocate",
7703
+ "path": ["workspace", "relocate"],
7704
+ "display": "/pan workspace relocate",
7705
+ "description": "Point a workspace at a new path (refuses kind=issue; kind=main requires --force)",
7706
+ "args": [{
7707
+ "name": "ws",
7708
+ "required": true,
7709
+ "variadic": false
7710
+ }],
7711
+ "options": [{
7712
+ "flags": "--path <dir>",
7713
+ "description": "New path (must be an existing directory)",
7714
+ "required": true,
7715
+ "valueHint": "dir"
7716
+ }, {
7393
7717
  "flags": "--force",
7394
- "description": "Force removal even with uncommitted changes",
7718
+ "description": "Allow relocating the main workspace, diverging it from projects.yaml",
7395
7719
  "required": false,
7396
7720
  "valueHint": null
7397
- }, {
7398
- "flags": "--project <path>",
7399
- "description": "Explicit project path (overrides registry)",
7400
- "required": true,
7401
- "valueHint": "path"
7402
7721
  }],
7403
7722
  "aliases": [],
7404
7723
  "category": "Workspace"
@@ -8036,10 +8355,10 @@ const COMPOSER_COMMAND_MANIFEST = [
8036
8355
  "valueHint": "id"
8037
8356
  },
8038
8357
  {
8039
- "flags": "--workspace <id>",
8040
- "description": "Workspace ID",
8358
+ "flags": "--workspace <id|name>",
8359
+ "description": "Workspace id or name",
8041
8360
  "required": true,
8042
- "valueHint": "id"
8361
+ "valueHint": "id|name"
8043
8362
  },
8044
8363
  {
8045
8364
  "flags": "--issue <id>",
@@ -8059,6 +8378,18 @@ const COMPOSER_COMMAND_MANIFEST = [
8059
8378
  "required": false,
8060
8379
  "valueHint": null
8061
8380
  },
8381
+ {
8382
+ "flags": "--global",
8383
+ "description": "Search across all registered projects instead of just one",
8384
+ "required": false,
8385
+ "valueHint": null
8386
+ },
8387
+ {
8388
+ "flags": "--target [path]",
8389
+ "description": "Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global",
8390
+ "required": false,
8391
+ "valueHint": "path"
8392
+ },
8062
8393
  {
8063
8394
  "flags": "--include-archived",
8064
8395
  "description": "Include observations hidden by reset markers",
@@ -8085,23 +8416,106 @@ const COMPOSER_COMMAND_MANIFEST = [
8085
8416
  "id": "pan-memory-status",
8086
8417
  "path": ["memory", "status"],
8087
8418
  "display": "/pan memory status",
8088
- "description": "Show current memory status for an issue",
8419
+ "description": "Show current memory status for an issue, a workspace, or the current directory",
8089
8420
  "args": [{
8090
8421
  "name": "issue",
8091
- "required": true,
8422
+ "required": false,
8092
8423
  "variadic": false
8093
8424
  }],
8094
- "options": [{
8095
- "flags": "--project <id>",
8096
- "description": "Project ID",
8425
+ "options": [
8426
+ {
8427
+ "flags": "--project <id>",
8428
+ "description": "Project ID",
8429
+ "required": true,
8430
+ "valueHint": "id"
8431
+ },
8432
+ {
8433
+ "flags": "--workspace <id|name>",
8434
+ "description": "Workspace id or name instead of an issue positional",
8435
+ "required": true,
8436
+ "valueHint": "id|name"
8437
+ },
8438
+ {
8439
+ "flags": "--history <n>",
8440
+ "description": "Also print up to N archived statuses, newest first (max 50)",
8441
+ "required": true,
8442
+ "valueHint": "n"
8443
+ },
8444
+ {
8445
+ "flags": "--json",
8446
+ "description": "Output JSON",
8447
+ "required": false,
8448
+ "valueHint": null
8449
+ }
8450
+ ],
8451
+ "aliases": [],
8452
+ "category": "Observation"
8453
+ },
8454
+ {
8455
+ "id": "pan-memory-timeline",
8456
+ "path": ["memory", "timeline"],
8457
+ "display": "/pan memory timeline",
8458
+ "description": "Print chronological observations for a workspace or the current directory",
8459
+ "args": [],
8460
+ "options": [
8461
+ {
8462
+ "flags": "--workspace <id|name>",
8463
+ "description": "Workspace id or name (defaults to the workspace owning the cwd)",
8464
+ "required": true,
8465
+ "valueHint": "id|name"
8466
+ },
8467
+ {
8468
+ "flags": "--days <n>",
8469
+ "description": "Most recent N days, today counting as day 1 (default 7)",
8470
+ "required": true,
8471
+ "valueHint": "n"
8472
+ },
8473
+ {
8474
+ "flags": "--limit <n>",
8475
+ "description": "Maximum observation rows",
8476
+ "required": true,
8477
+ "valueHint": "n"
8478
+ },
8479
+ {
8480
+ "flags": "--json",
8481
+ "description": "Output JSON",
8482
+ "required": false,
8483
+ "valueHint": null
8484
+ }
8485
+ ],
8486
+ "aliases": [],
8487
+ "category": "Observation"
8488
+ },
8489
+ {
8490
+ "id": "pan-memory-read",
8491
+ "path": ["memory", "read"],
8492
+ "display": "/pan memory read",
8493
+ "description": "Print a file from a workspace's memory home (path is relative to that home)",
8494
+ "args": [{
8495
+ "name": "path",
8097
8496
  "required": true,
8098
- "valueHint": "id"
8099
- }, {
8100
- "flags": "--json",
8101
- "description": "Output JSON",
8102
- "required": false,
8103
- "valueHint": null
8497
+ "variadic": false
8104
8498
  }],
8499
+ "options": [
8500
+ {
8501
+ "flags": "--workspace <id|name>",
8502
+ "description": "Workspace id or name (defaults to the workspace owning the cwd)",
8503
+ "required": true,
8504
+ "valueHint": "id|name"
8505
+ },
8506
+ {
8507
+ "flags": "--from <n>",
8508
+ "description": "First line to print, 1-based",
8509
+ "required": true,
8510
+ "valueHint": "n"
8511
+ },
8512
+ {
8513
+ "flags": "--lines <n>",
8514
+ "description": "Maximum number of lines to print",
8515
+ "required": true,
8516
+ "valueHint": "n"
8517
+ }
8518
+ ],
8105
8519
  "aliases": [],
8106
8520
  "category": "Observation"
8107
8521
  },
@@ -8152,10 +8566,10 @@ const COMPOSER_COMMAND_MANIFEST = [
8152
8566
  "id": "pan-memory-summary",
8153
8567
  "path": ["memory", "summary"],
8154
8568
  "display": "/pan memory summary",
8155
- "description": "Generate a daily markdown memory summary",
8569
+ "description": "Generate a daily markdown memory summary for an issue, a workspace, or the current directory",
8156
8570
  "args": [{
8157
8571
  "name": "issue",
8158
- "required": true,
8572
+ "required": false,
8159
8573
  "variadic": false
8160
8574
  }],
8161
8575
  "options": [
@@ -8165,6 +8579,12 @@ const COMPOSER_COMMAND_MANIFEST = [
8165
8579
  "required": true,
8166
8580
  "valueHint": "id"
8167
8581
  },
8582
+ {
8583
+ "flags": "--workspace <id|name>",
8584
+ "description": "Workspace id or name instead of an issue positional",
8585
+ "required": true,
8586
+ "valueHint": "id|name"
8587
+ },
8168
8588
  {
8169
8589
  "flags": "--date <yyyy-mm-dd>",
8170
8590
  "description": "Summary date",
@@ -8201,6 +8621,136 @@ const COMPOSER_COMMAND_MANIFEST = [
8201
8621
  "aliases": [],
8202
8622
  "category": "Observation"
8203
8623
  },
8624
+ {
8625
+ "id": "pan-memory-backfill",
8626
+ "path": ["memory", "backfill"],
8627
+ "display": "/pan memory backfill",
8628
+ "description": "Backfill memory observations from historical Claude Code JSONL transcripts",
8629
+ "args": [],
8630
+ "options": [
8631
+ {
8632
+ "flags": "--workspace <id>",
8633
+ "description": "Only backfill sessions resolved to this workspace id",
8634
+ "required": true,
8635
+ "valueHint": "id"
8636
+ },
8637
+ {
8638
+ "flags": "--project <id>",
8639
+ "description": "Only backfill sessions resolved to this project id",
8640
+ "required": true,
8641
+ "valueHint": "id"
8642
+ },
8643
+ {
8644
+ "flags": "--dry-run",
8645
+ "description": "Report matched sessions without extracting or writing anything",
8646
+ "required": false,
8647
+ "valueHint": null
8648
+ },
8649
+ {
8650
+ "flags": "--json",
8651
+ "description": "Output JSON",
8652
+ "required": false,
8653
+ "valueHint": null
8654
+ }
8655
+ ],
8656
+ "aliases": [],
8657
+ "category": "Observation"
8658
+ },
8659
+ {
8660
+ "id": "pan-memory-pin",
8661
+ "path": ["memory", "pin"],
8662
+ "display": "/pan memory pin",
8663
+ "description": "Pin a doc for prompt-time memory injection (path is stored project-relative)",
8664
+ "args": [{
8665
+ "name": "doc-path",
8666
+ "required": true,
8667
+ "variadic": false
8668
+ }],
8669
+ "options": [
8670
+ {
8671
+ "flags": "--project <id>",
8672
+ "description": "Project key to pin at project scope",
8673
+ "required": true,
8674
+ "valueHint": "id"
8675
+ },
8676
+ {
8677
+ "flags": "--workspace <id>",
8678
+ "description": "Workspace id to pin at workspace scope (overrides --project)",
8679
+ "required": true,
8680
+ "valueHint": "id"
8681
+ },
8682
+ {
8683
+ "flags": "--json",
8684
+ "description": "Output JSON",
8685
+ "required": false,
8686
+ "valueHint": null
8687
+ }
8688
+ ],
8689
+ "aliases": [],
8690
+ "category": "Observation"
8691
+ },
8692
+ {
8693
+ "id": "pan-memory-unpin",
8694
+ "path": ["memory", "unpin"],
8695
+ "display": "/pan memory unpin",
8696
+ "description": "Remove a pinned doc",
8697
+ "args": [{
8698
+ "name": "doc-path",
8699
+ "required": true,
8700
+ "variadic": false
8701
+ }],
8702
+ "options": [
8703
+ {
8704
+ "flags": "--project <id>",
8705
+ "description": "Project key the pin was made at project scope",
8706
+ "required": true,
8707
+ "valueHint": "id"
8708
+ },
8709
+ {
8710
+ "flags": "--workspace <id>",
8711
+ "description": "Workspace id the pin was made at workspace scope (overrides --project)",
8712
+ "required": true,
8713
+ "valueHint": "id"
8714
+ },
8715
+ {
8716
+ "flags": "--json",
8717
+ "description": "Output JSON",
8718
+ "required": false,
8719
+ "valueHint": null
8720
+ }
8721
+ ],
8722
+ "aliases": [],
8723
+ "category": "Observation"
8724
+ },
8725
+ {
8726
+ "id": "pan-memory-pins",
8727
+ "path": ["memory", "pins"],
8728
+ "display": "/pan memory pins",
8729
+ "description": "List pinned docs for a project or workspace",
8730
+ "args": [],
8731
+ "options": [
8732
+ {
8733
+ "flags": "--project <id>",
8734
+ "description": "Project key to list project-scoped pins for",
8735
+ "required": true,
8736
+ "valueHint": "id"
8737
+ },
8738
+ {
8739
+ "flags": "--workspace <id>",
8740
+ "description": "Workspace id to list workspace-scoped pins for (overrides --project)",
8741
+ "required": true,
8742
+ "valueHint": "id"
8743
+ },
8744
+ {
8745
+ "flags": "--json",
8746
+ "description": "Output JSON",
8747
+ "required": false,
8748
+ "valueHint": null
8749
+ }
8750
+ ],
8751
+ "aliases": [],
8752
+ "category": "Observation"
8753
+ },
8204
8754
  {
8205
8755
  "id": "pan-memory-config",
8206
8756
  "path": ["memory", "config"],
@@ -9386,6 +9936,30 @@ const COMPOSER_COMMAND_MANIFEST = [
9386
9936
  "aliases": [],
9387
9937
  "category": "Admin"
9388
9938
  },
9939
+ {
9940
+ "id": "pan-admin-db-rebuild-workspaces",
9941
+ "path": [
9942
+ "admin",
9943
+ "db",
9944
+ "rebuild-workspaces"
9945
+ ],
9946
+ "display": "/pan admin db rebuild-workspaces",
9947
+ "description": "Rebuild the projects/workspaces tables from projects.yaml, worktree scan, and memory-home identity records (PAN-1990)",
9948
+ "args": [],
9949
+ "options": [{
9950
+ "flags": "--dry-run",
9951
+ "description": "Show what would be created without writing",
9952
+ "required": false,
9953
+ "valueHint": null
9954
+ }, {
9955
+ "flags": "--verbose",
9956
+ "description": "Log each processed workspace",
9957
+ "required": false,
9958
+ "valueHint": null
9959
+ }],
9960
+ "aliases": [],
9961
+ "category": "Admin"
9962
+ },
9389
9963
  {
9390
9964
  "id": "pan-admin-db-gc-agents",
9391
9965
  "path": [
@@ -10803,7 +11377,7 @@ const COMPOSER_COMMAND_MANIFEST = [
10803
11377
  },
10804
11378
  {
10805
11379
  "flags": "--agent-harness <harness>",
10806
- "description": "Agent harness: claude-code, pi, codex, acp, or user",
11380
+ "description": "Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, or user",
10807
11381
  "required": true,
10808
11382
  "valueHint": "harness"
10809
11383
  },
@@ -11378,6 +11952,30 @@ const COMPOSER_COMMAND_MANIFEST = [
11378
11952
  "aliases": [],
11379
11953
  "category": "Project"
11380
11954
  },
11955
+ {
11956
+ "id": "pan-project-add-target",
11957
+ "path": ["project", "add-target"],
11958
+ "display": "/pan project add-target",
11959
+ "description": "Add a secondary target path for a registered project",
11960
+ "args": [{
11961
+ "name": "project",
11962
+ "required": true,
11963
+ "variadic": false
11964
+ }],
11965
+ "options": [{
11966
+ "flags": "--path <path>",
11967
+ "description": "Target path to add",
11968
+ "required": true,
11969
+ "valueHint": "path"
11970
+ }, {
11971
+ "flags": "--primary",
11972
+ "description": "Make this the primary target (demotes any existing primary)",
11973
+ "required": false,
11974
+ "valueHint": null
11975
+ }],
11976
+ "aliases": [],
11977
+ "category": "Project"
11978
+ },
11381
11979
  {
11382
11980
  "id": "pan-projects",
11383
11981
  "path": ["projects"],
@@ -11498,6 +12096,30 @@ const COMPOSER_COMMAND_MANIFEST = [
11498
12096
  "aliases": [],
11499
12097
  "category": "Project"
11500
12098
  },
12099
+ {
12100
+ "id": "pan-projects-add-target",
12101
+ "path": ["projects", "add-target"],
12102
+ "display": "/pan projects add-target",
12103
+ "description": "Add a secondary target path for a registered project",
12104
+ "args": [{
12105
+ "name": "project",
12106
+ "required": true,
12107
+ "variadic": false
12108
+ }],
12109
+ "options": [{
12110
+ "flags": "--path <path>",
12111
+ "description": "Target path to add",
12112
+ "required": true,
12113
+ "valueHint": "path"
12114
+ }, {
12115
+ "flags": "--primary",
12116
+ "description": "Make this the primary target (demotes any existing primary)",
12117
+ "required": false,
12118
+ "valueHint": null
12119
+ }],
12120
+ "aliases": [],
12121
+ "category": "Project"
12122
+ },
11501
12123
  {
11502
12124
  "id": "pan-health",
11503
12125
  "path": ["health"],
@@ -11908,6 +12530,6 @@ const COMPOSER_COMMAND_VARIANTS = [
11908
12530
  }
11909
12531
  ];
11910
12532
  //#endregion
11911
- export { ACP_BEHAVIOR, Activity, ActivityDetailedEvent, ActivityEntryEvent, ActivityTtsEvent, ActivityUpdatedEvent, AdmissionState, AgentActivityChangedEvent, AgentChannelReply, AgentChannelReplyEvent, AgentCompletedEvent, AgentContextSaturationChangedEvent, AgentCreatedEvent, AgentCurrentIssueSetEvent, AgentEnrichmentChangedEvent, AgentHealthKind, AgentHealthSnapshot, AgentHealthStatus, AgentHeartbeatDeadEvent, 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, 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, HealthReason, HealthState, HostHealthMetrics, HostPlatform, HygieneFinding, HygienePullRequest, HygieneReport, INITIAL_READ_MODEL_STATE, IssueId, IssueStatusChangedEvent, IssueTransitionedEvent, IssuesSnapshotEvent, IssuesUpdatedEvent, 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, 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, ReadWorkspaceFileInput, ReadWorkspaceFileResult, ReadWorkspaceFileRpc, ReleaseStatusValue, ReplayEventsRpc, ResetMarker, ResetMarkerScope, ResizeTerminalRpc, ResolveFilePathExistsInput, ResolveFilePathExistsResult, ResolveFilePathExistsRpc, ResourceStats, ResourcesUpdatedEvent, ReviewApprovedEvent, ReviewCoordinatorDiedEvent, ReviewCoordinatorStartedEvent, ReviewCycleEntry, ReviewReviewerCompletedEvent, ReviewReviewerStartedEvent, ReviewSpecialistTimedOutEvent, ReviewStatusChangedEvent, ReviewStatusSnapshot, ReviewStatusValue, 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, 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, WS_METHODS, WaitingReason, WaitingState, WorkCompletedEvent, WorkLogEntry, WorkspaceAbortedEvent, WorkspaceArtifactsResponse, WorkspaceContextLayerRecord, WorkspaceContextLayerTarget, WorkspaceCreatedEvent, WorkspaceDeletedEvent, WorkspaceDestroyedEvent, WorkspaceDetail, WorkspaceWipeStartedEvent, applyEvent, applyEvents, compareIssueIds, decodeFlywheelStats, encodeFlywheelStats, getHarness, getHarnessBehavior, getMaxMemoryObservationsPerIssue, getMaxTurnDiffSummariesPerAgent, getRuntimeBehavior, isChannelReplyKind, isTerminalTurnDiffSummaryStatus, normalizeChannelReplyPayload, omitTurnDiffSummariesForAgent, projectLegacySystemHealthSummary, syncSnapshot, trimMemoryObservations, trimTurnDiffSummaries };
12533
+ export { ACP_BEHAVIOR, Activity, ActivityDetailedEvent, ActivityEntryEvent, ActivityTtsEvent, ActivityUpdatedEvent, AdmissionState, AgentActivityChangedEvent, AgentChannelReply, AgentChannelReplyEvent, AgentCompletedEvent, AgentContextSaturationChangedEvent, AgentCreatedEvent, AgentCurrentIssueSetEvent, AgentEnrichmentChangedEvent, AgentHealthKind, AgentHealthSnapshot, AgentHealthStatus, AgentHeartbeatDeadEvent, 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, 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, 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, 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, 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, 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 };
11912
12534
 
11913
12535
  //# sourceMappingURL=index.mjs.map