@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.cjs +694 -63
- package/dist/index.d.ts +583 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +686 -64
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -116,7 +116,8 @@ const KNOWN_HARNESSES = new Set([
|
|
|
116
116
|
"claude-code",
|
|
117
117
|
"ohmypi",
|
|
118
118
|
"codex",
|
|
119
|
-
"acp"
|
|
119
|
+
"acp",
|
|
120
|
+
"kimi-code"
|
|
120
121
|
]);
|
|
121
122
|
/**
|
|
122
123
|
* Normalize a snapshot's runtime field to a known Harness value.
|
|
@@ -719,13 +720,14 @@ const ScanResult = effect.Schema.Struct({
|
|
|
719
720
|
});
|
|
720
721
|
//#endregion
|
|
721
722
|
//#region src/memory.ts
|
|
723
|
+
const MemoryAgentRole = effect.Schema.Union([Role, effect.Schema.Literal("conversation")]);
|
|
722
724
|
const MemoryIdentity = effect.Schema.Struct({
|
|
723
725
|
projectId: effect.Schema.String,
|
|
724
726
|
workspaceId: effect.Schema.String,
|
|
725
|
-
issueId: IssueId,
|
|
727
|
+
issueId: effect.Schema.NullOr(IssueId),
|
|
726
728
|
runId: effect.Schema.String,
|
|
727
729
|
sessionId: effect.Schema.String,
|
|
728
|
-
agentRole:
|
|
730
|
+
agentRole: MemoryAgentRole,
|
|
729
731
|
agentHarness: effect.Schema.String
|
|
730
732
|
});
|
|
731
733
|
const MemoryTokenUsage = effect.Schema.Struct({
|
|
@@ -738,10 +740,10 @@ const MemoryObservation = effect.Schema.Struct({
|
|
|
738
740
|
timestamp: effect.Schema.String,
|
|
739
741
|
projectId: effect.Schema.String,
|
|
740
742
|
workspaceId: effect.Schema.String,
|
|
741
|
-
issueId: IssueId,
|
|
743
|
+
issueId: effect.Schema.NullOr(IssueId),
|
|
742
744
|
runId: effect.Schema.String,
|
|
743
745
|
sessionId: effect.Schema.String,
|
|
744
|
-
agentRole:
|
|
746
|
+
agentRole: MemoryAgentRole,
|
|
745
747
|
agentHarness: effect.Schema.String,
|
|
746
748
|
gitBranch: effect.Schema.String,
|
|
747
749
|
sourceTranscriptOffset: effect.Schema.Number,
|
|
@@ -1179,6 +1181,7 @@ const AgentStartedEvent = effect.Schema.Struct({
|
|
|
1179
1181
|
payload: effect.Schema.Struct({
|
|
1180
1182
|
agentId: AgentId,
|
|
1181
1183
|
issueId: IssueId,
|
|
1184
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1182
1185
|
agent: AgentSnapshot
|
|
1183
1186
|
})
|
|
1184
1187
|
});
|
|
@@ -1190,6 +1193,7 @@ const AgentStoppedEvent = effect.Schema.Struct({
|
|
|
1190
1193
|
payload: effect.Schema.Struct({
|
|
1191
1194
|
agentId: AgentId,
|
|
1192
1195
|
issueId: IssueId,
|
|
1196
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1193
1197
|
sessionId: effect.Schema.optional(effect.Schema.String)
|
|
1194
1198
|
})
|
|
1195
1199
|
});
|
|
@@ -1200,6 +1204,7 @@ const AgentHeartbeatDeadEvent = effect.Schema.Struct({
|
|
|
1200
1204
|
payload: effect.Schema.Struct({
|
|
1201
1205
|
agentId: AgentId,
|
|
1202
1206
|
issueId: effect.Schema.optional(IssueId),
|
|
1207
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1203
1208
|
sessionId: effect.Schema.optional(effect.Schema.String)
|
|
1204
1209
|
})
|
|
1205
1210
|
});
|
|
@@ -1210,6 +1215,7 @@ const WorkCompletedEvent = effect.Schema.Struct({
|
|
|
1210
1215
|
timestamp: effect.Schema.String,
|
|
1211
1216
|
payload: effect.Schema.Struct({
|
|
1212
1217
|
issueId: IssueId,
|
|
1218
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1213
1219
|
agentId: effect.Schema.optional(AgentId)
|
|
1214
1220
|
})
|
|
1215
1221
|
});
|
|
@@ -1220,6 +1226,7 @@ const AgentCompletedEvent = effect.Schema.Struct({
|
|
|
1220
1226
|
timestamp: effect.Schema.String,
|
|
1221
1227
|
payload: effect.Schema.Struct({
|
|
1222
1228
|
issueId: IssueId,
|
|
1229
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1223
1230
|
agentId: effect.Schema.optional(AgentId),
|
|
1224
1231
|
role: effect.Schema.optional(Role)
|
|
1225
1232
|
})
|
|
@@ -1229,14 +1236,20 @@ const ReviewApprovedEvent = effect.Schema.Struct({
|
|
|
1229
1236
|
type: effect.Schema.Literal("review.approved"),
|
|
1230
1237
|
sequence: SequenceNumber,
|
|
1231
1238
|
timestamp: effect.Schema.String,
|
|
1232
|
-
payload: effect.Schema.Struct({
|
|
1239
|
+
payload: effect.Schema.Struct({
|
|
1240
|
+
issueId: IssueId,
|
|
1241
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1242
|
+
})
|
|
1233
1243
|
});
|
|
1234
1244
|
/** Role lifecycle — tests passed and shipping should prepare the branch. */
|
|
1235
1245
|
const TestPassedEvent = effect.Schema.Struct({
|
|
1236
1246
|
type: effect.Schema.Literal("test.passed"),
|
|
1237
1247
|
sequence: SequenceNumber,
|
|
1238
1248
|
timestamp: effect.Schema.String,
|
|
1239
|
-
payload: effect.Schema.Struct({
|
|
1249
|
+
payload: effect.Schema.Struct({
|
|
1250
|
+
issueId: IssueId,
|
|
1251
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1252
|
+
})
|
|
1240
1253
|
});
|
|
1241
1254
|
/** Replaces socket.io `godview:status-change` */
|
|
1242
1255
|
const AgentStatusChangedEvent = effect.Schema.Struct({
|
|
@@ -1246,6 +1259,7 @@ const AgentStatusChangedEvent = effect.Schema.Struct({
|
|
|
1246
1259
|
payload: effect.Schema.Struct({
|
|
1247
1260
|
agentId: AgentId,
|
|
1248
1261
|
issueId: effect.Schema.optional(IssueId),
|
|
1262
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1249
1263
|
status: AgentStatus,
|
|
1250
1264
|
previousStatus: effect.Schema.optional(AgentStatus),
|
|
1251
1265
|
hasLiveTmuxSession: effect.Schema.optional(effect.Schema.Boolean),
|
|
@@ -1306,6 +1320,8 @@ const AgentEnrichmentChangedEvent = effect.Schema.Struct({
|
|
|
1306
1320
|
timestamp: effect.Schema.String,
|
|
1307
1321
|
payload: effect.Schema.Struct({
|
|
1308
1322
|
agentId: AgentId,
|
|
1323
|
+
issueId: effect.Schema.optional(IssueId),
|
|
1324
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1309
1325
|
role: effect.Schema.optional(Role),
|
|
1310
1326
|
hasPendingQuestion: effect.Schema.optional(effect.Schema.Boolean),
|
|
1311
1327
|
pendingQuestionCount: effect.Schema.optional(effect.Schema.Number),
|
|
@@ -1343,6 +1359,7 @@ const AgentCreatedEvent = effect.Schema.Struct({
|
|
|
1343
1359
|
payload: effect.Schema.Struct({
|
|
1344
1360
|
agentId: AgentId,
|
|
1345
1361
|
issueId: IssueId,
|
|
1362
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1346
1363
|
agent: AgentSnapshot
|
|
1347
1364
|
})
|
|
1348
1365
|
});
|
|
@@ -1417,6 +1434,7 @@ const AgentPermissionResolvedEvent = effect.Schema.Struct({
|
|
|
1417
1434
|
requestId: effect.Schema.String,
|
|
1418
1435
|
agentId: AgentId,
|
|
1419
1436
|
issueId: effect.Schema.optional(IssueId),
|
|
1437
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1420
1438
|
behavior: ClaudeChannelPermissionBehavior
|
|
1421
1439
|
})
|
|
1422
1440
|
});
|
|
@@ -1525,6 +1543,7 @@ const PlanningStartedEvent = effect.Schema.Struct({
|
|
|
1525
1543
|
timestamp: effect.Schema.String,
|
|
1526
1544
|
payload: effect.Schema.Struct({
|
|
1527
1545
|
issueId: IssueId,
|
|
1546
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1528
1547
|
sessionName: effect.Schema.String,
|
|
1529
1548
|
harness: effect.Schema.optional(effect.Schema.String)
|
|
1530
1549
|
})
|
|
@@ -1536,6 +1555,7 @@ const PlanningFailedEvent = effect.Schema.Struct({
|
|
|
1536
1555
|
timestamp: effect.Schema.String,
|
|
1537
1556
|
payload: effect.Schema.Struct({
|
|
1538
1557
|
issueId: IssueId,
|
|
1558
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1539
1559
|
error: effect.Schema.String
|
|
1540
1560
|
})
|
|
1541
1561
|
});
|
|
@@ -1546,6 +1566,7 @@ const PlanningSyncEvent = effect.Schema.Struct({
|
|
|
1546
1566
|
timestamp: effect.Schema.String,
|
|
1547
1567
|
payload: effect.Schema.Struct({
|
|
1548
1568
|
issueId: IssueId,
|
|
1569
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1549
1570
|
status: effect.Schema.String,
|
|
1550
1571
|
progress: effect.Schema.optional(effect.Schema.Number),
|
|
1551
1572
|
message: effect.Schema.optional(effect.Schema.String)
|
|
@@ -1558,6 +1579,7 @@ const PlanItemStatusChangedEvent = effect.Schema.Struct({
|
|
|
1558
1579
|
timestamp: effect.Schema.String,
|
|
1559
1580
|
payload: effect.Schema.Struct({
|
|
1560
1581
|
issueId: IssueId,
|
|
1582
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1561
1583
|
itemId: effect.Schema.String,
|
|
1562
1584
|
status: effect.Schema.String
|
|
1563
1585
|
})
|
|
@@ -1569,6 +1591,7 @@ const PlanSubitemStatusChangedEvent = effect.Schema.Struct({
|
|
|
1569
1591
|
timestamp: effect.Schema.String,
|
|
1570
1592
|
payload: effect.Schema.Struct({
|
|
1571
1593
|
issueId: IssueId,
|
|
1594
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1572
1595
|
itemId: effect.Schema.String,
|
|
1573
1596
|
subItemId: effect.Schema.String,
|
|
1574
1597
|
status: effect.Schema.String
|
|
@@ -1581,6 +1604,7 @@ const PlanItemsUnblockedEvent = effect.Schema.Struct({
|
|
|
1581
1604
|
timestamp: effect.Schema.String,
|
|
1582
1605
|
payload: effect.Schema.Struct({
|
|
1583
1606
|
issueId: IssueId,
|
|
1607
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1584
1608
|
items: effect.Schema.Array(effect.Schema.String)
|
|
1585
1609
|
})
|
|
1586
1610
|
});
|
|
@@ -1591,6 +1615,7 @@ const PipelineStatusChangedEvent = effect.Schema.Struct({
|
|
|
1591
1615
|
timestamp: effect.Schema.String,
|
|
1592
1616
|
payload: effect.Schema.Struct({
|
|
1593
1617
|
issueId: IssueId,
|
|
1618
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1594
1619
|
status: ReviewStatusSnapshot
|
|
1595
1620
|
})
|
|
1596
1621
|
});
|
|
@@ -1599,7 +1624,10 @@ const MergeReadyEvent = effect.Schema.Struct({
|
|
|
1599
1624
|
type: effect.Schema.Literal("merge.ready"),
|
|
1600
1625
|
sequence: SequenceNumber,
|
|
1601
1626
|
timestamp: effect.Schema.String,
|
|
1602
|
-
payload: effect.Schema.Struct({
|
|
1627
|
+
payload: effect.Schema.Struct({
|
|
1628
|
+
issueId: IssueId,
|
|
1629
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1630
|
+
})
|
|
1603
1631
|
});
|
|
1604
1632
|
/** New — review status changed */
|
|
1605
1633
|
const ReviewStatusChangedEvent = effect.Schema.Struct({
|
|
@@ -1608,6 +1636,7 @@ const ReviewStatusChangedEvent = effect.Schema.Struct({
|
|
|
1608
1636
|
timestamp: effect.Schema.String,
|
|
1609
1637
|
payload: effect.Schema.Struct({
|
|
1610
1638
|
issueId: IssueId,
|
|
1639
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1611
1640
|
status: ReviewStatusSnapshot
|
|
1612
1641
|
})
|
|
1613
1642
|
});
|
|
@@ -1616,7 +1645,10 @@ const PipelineReviewStartedEvent = effect.Schema.Struct({
|
|
|
1616
1645
|
type: effect.Schema.Literal("pipeline.review-started"),
|
|
1617
1646
|
sequence: SequenceNumber,
|
|
1618
1647
|
timestamp: effect.Schema.String,
|
|
1619
|
-
payload: effect.Schema.Struct({
|
|
1648
|
+
payload: effect.Schema.Struct({
|
|
1649
|
+
issueId: IssueId,
|
|
1650
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1651
|
+
})
|
|
1620
1652
|
});
|
|
1621
1653
|
/** New — review specialist finished (passed or failed) */
|
|
1622
1654
|
const PipelineReviewCompletedEvent = effect.Schema.Struct({
|
|
@@ -1625,6 +1657,7 @@ const PipelineReviewCompletedEvent = effect.Schema.Struct({
|
|
|
1625
1657
|
timestamp: effect.Schema.String,
|
|
1626
1658
|
payload: effect.Schema.Struct({
|
|
1627
1659
|
issueId: IssueId,
|
|
1660
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1628
1661
|
passed: effect.Schema.Boolean
|
|
1629
1662
|
})
|
|
1630
1663
|
});
|
|
@@ -1633,7 +1666,10 @@ const PipelineTestStartedEvent = effect.Schema.Struct({
|
|
|
1633
1666
|
type: effect.Schema.Literal("pipeline.test-started"),
|
|
1634
1667
|
sequence: SequenceNumber,
|
|
1635
1668
|
timestamp: effect.Schema.String,
|
|
1636
|
-
payload: effect.Schema.Struct({
|
|
1669
|
+
payload: effect.Schema.Struct({
|
|
1670
|
+
issueId: IssueId,
|
|
1671
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1672
|
+
})
|
|
1637
1673
|
});
|
|
1638
1674
|
/** New — test specialist finished (passed or failed) */
|
|
1639
1675
|
const PipelineTestCompletedEvent = effect.Schema.Struct({
|
|
@@ -1642,6 +1678,7 @@ const PipelineTestCompletedEvent = effect.Schema.Struct({
|
|
|
1642
1678
|
timestamp: effect.Schema.String,
|
|
1643
1679
|
payload: effect.Schema.Struct({
|
|
1644
1680
|
issueId: IssueId,
|
|
1681
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1645
1682
|
passed: effect.Schema.Boolean
|
|
1646
1683
|
})
|
|
1647
1684
|
});
|
|
@@ -1650,7 +1687,10 @@ const PipelineVerificationStartedEvent = effect.Schema.Struct({
|
|
|
1650
1687
|
type: effect.Schema.Literal("pipeline.verification-started"),
|
|
1651
1688
|
sequence: SequenceNumber,
|
|
1652
1689
|
timestamp: effect.Schema.String,
|
|
1653
|
-
payload: effect.Schema.Struct({
|
|
1690
|
+
payload: effect.Schema.Struct({
|
|
1691
|
+
issueId: IssueId,
|
|
1692
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1693
|
+
})
|
|
1654
1694
|
});
|
|
1655
1695
|
/** New — verification gate failed (carries failedCheck for gate failures, message for infra errors) */
|
|
1656
1696
|
const PipelineVerificationFailedEvent = effect.Schema.Struct({
|
|
@@ -1659,6 +1699,7 @@ const PipelineVerificationFailedEvent = effect.Schema.Struct({
|
|
|
1659
1699
|
timestamp: effect.Schema.String,
|
|
1660
1700
|
payload: effect.Schema.Struct({
|
|
1661
1701
|
issueId: IssueId,
|
|
1702
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1662
1703
|
failedCheck: effect.Schema.optional(effect.Schema.String),
|
|
1663
1704
|
message: effect.Schema.optional(effect.Schema.String)
|
|
1664
1705
|
})
|
|
@@ -1672,6 +1713,7 @@ const IssueTransitionedEvent = effect.Schema.Struct({
|
|
|
1672
1713
|
timestamp: effect.Schema.String,
|
|
1673
1714
|
payload: effect.Schema.Struct({
|
|
1674
1715
|
issueId: IssueId,
|
|
1716
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1675
1717
|
state: effect.Schema.String
|
|
1676
1718
|
})
|
|
1677
1719
|
});
|
|
@@ -1681,6 +1723,7 @@ const OperatorInterventionEvent = effect.Schema.Struct({
|
|
|
1681
1723
|
timestamp: effect.Schema.String,
|
|
1682
1724
|
payload: effect.Schema.Struct({
|
|
1683
1725
|
issueId: IssueId,
|
|
1726
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1684
1727
|
kind: effect.Schema.Literals([
|
|
1685
1728
|
"tell",
|
|
1686
1729
|
"pause",
|
|
@@ -1745,6 +1788,7 @@ const SubstrateBugFiledEvent = effect.Schema.Struct({
|
|
|
1745
1788
|
timestamp: effect.Schema.String,
|
|
1746
1789
|
payload: effect.Schema.Struct({
|
|
1747
1790
|
issueId: IssueId,
|
|
1791
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1748
1792
|
runId: effect.Schema.optional(effect.Schema.String),
|
|
1749
1793
|
filedBy: effect.Schema.Literals(["agent", "operator"]),
|
|
1750
1794
|
discoveredIn: effect.Schema.optional(IssueId),
|
|
@@ -1766,6 +1810,7 @@ const ReviewReviewerStartedEvent = effect.Schema.Struct({
|
|
|
1766
1810
|
timestamp: effect.Schema.String,
|
|
1767
1811
|
payload: effect.Schema.Struct({
|
|
1768
1812
|
issueId: IssueId,
|
|
1813
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1769
1814
|
role: effect.Schema.String,
|
|
1770
1815
|
sessionName: effect.Schema.String
|
|
1771
1816
|
})
|
|
@@ -1780,6 +1825,7 @@ const ReviewReviewerCompletedEvent = effect.Schema.Struct({
|
|
|
1780
1825
|
timestamp: effect.Schema.String,
|
|
1781
1826
|
payload: effect.Schema.Struct({
|
|
1782
1827
|
issueId: IssueId,
|
|
1828
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1783
1829
|
role: effect.Schema.String
|
|
1784
1830
|
})
|
|
1785
1831
|
});
|
|
@@ -1794,6 +1840,7 @@ const ReviewSpecialistTimedOutEvent = effect.Schema.Struct({
|
|
|
1794
1840
|
timestamp: effect.Schema.String,
|
|
1795
1841
|
payload: effect.Schema.Struct({
|
|
1796
1842
|
issueId: IssueId,
|
|
1843
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1797
1844
|
role: effect.Schema.String,
|
|
1798
1845
|
sessionName: effect.Schema.String,
|
|
1799
1846
|
attempt: effect.Schema.Number,
|
|
@@ -1812,6 +1859,7 @@ const ReviewCoordinatorStartedEvent = effect.Schema.Struct({
|
|
|
1812
1859
|
timestamp: effect.Schema.String,
|
|
1813
1860
|
payload: effect.Schema.Struct({
|
|
1814
1861
|
issueId: IssueId,
|
|
1862
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1815
1863
|
sessionName: effect.Schema.String
|
|
1816
1864
|
})
|
|
1817
1865
|
});
|
|
@@ -1822,6 +1870,7 @@ const ReviewCoordinatorDiedEvent = effect.Schema.Struct({
|
|
|
1822
1870
|
timestamp: effect.Schema.String,
|
|
1823
1871
|
payload: effect.Schema.Struct({
|
|
1824
1872
|
issueId: IssueId,
|
|
1873
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1825
1874
|
sessionName: effect.Schema.String,
|
|
1826
1875
|
reason: effect.Schema.String
|
|
1827
1876
|
})
|
|
@@ -1851,7 +1900,8 @@ const SpecialistCompletedEvent = effect.Schema.Struct({
|
|
|
1851
1900
|
timestamp: effect.Schema.String,
|
|
1852
1901
|
payload: effect.Schema.Struct({
|
|
1853
1902
|
name: Role,
|
|
1854
|
-
issueId: effect.Schema.optional(IssueId)
|
|
1903
|
+
issueId: effect.Schema.optional(IssueId),
|
|
1904
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1855
1905
|
})
|
|
1856
1906
|
});
|
|
1857
1907
|
/** New — role-backed specialist failed */
|
|
@@ -1862,6 +1912,7 @@ const SpecialistFailedEvent = effect.Schema.Struct({
|
|
|
1862
1912
|
payload: effect.Schema.Struct({
|
|
1863
1913
|
name: Role,
|
|
1864
1914
|
issueId: effect.Schema.optional(IssueId),
|
|
1915
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1865
1916
|
error: effect.Schema.String
|
|
1866
1917
|
})
|
|
1867
1918
|
});
|
|
@@ -1901,7 +1952,10 @@ const IssuesUpdatedEvent = effect.Schema.Struct({
|
|
|
1901
1952
|
type: effect.Schema.Literal("issues.updated"),
|
|
1902
1953
|
sequence: SequenceNumber,
|
|
1903
1954
|
timestamp: effect.Schema.String,
|
|
1904
|
-
payload: effect.Schema.Struct({
|
|
1955
|
+
payload: effect.Schema.Struct({
|
|
1956
|
+
issueId: effect.Schema.optional(IssueId),
|
|
1957
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1958
|
+
})
|
|
1905
1959
|
});
|
|
1906
1960
|
/** Patch a single issue's status in the read model without a full snapshot refresh. */
|
|
1907
1961
|
const IssueStatusChangedEvent = effect.Schema.Struct({
|
|
@@ -1910,6 +1964,7 @@ const IssueStatusChangedEvent = effect.Schema.Struct({
|
|
|
1910
1964
|
timestamp: effect.Schema.String,
|
|
1911
1965
|
payload: effect.Schema.Struct({
|
|
1912
1966
|
issueId: IssueId,
|
|
1967
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1913
1968
|
status: effect.Schema.String,
|
|
1914
1969
|
canonicalStatus: effect.Schema.String,
|
|
1915
1970
|
labels: effect.Schema.optional(effect.Schema.Array(effect.Schema.String))
|
|
@@ -1942,6 +1997,7 @@ const ActivityEntryEvent = effect.Schema.Struct({
|
|
|
1942
1997
|
details: effect.Schema.optional(effect.Schema.String),
|
|
1943
1998
|
output: effect.Schema.optional(effect.Schema.String),
|
|
1944
1999
|
issueId: effect.Schema.optional(IssueId),
|
|
2000
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1945
2001
|
/** Dashboard route the feed navigates to on click (e.g. /conv/<name>, /flywheel). */
|
|
1946
2002
|
link: effect.Schema.optional(effect.Schema.String),
|
|
1947
2003
|
/** PAN-1862 (FR-12): fire a desktop notification for this entry (operator-facing warnings). */
|
|
@@ -1960,6 +2016,7 @@ const ActivityDetailedEvent = effect.Schema.Struct({
|
|
|
1960
2016
|
message: effect.Schema.String,
|
|
1961
2017
|
details: effect.Schema.optional(effect.Schema.String),
|
|
1962
2018
|
issueId: effect.Schema.optional(IssueId),
|
|
2019
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1963
2020
|
triggeringEvent: effect.Schema.optional(effect.Schema.String)
|
|
1964
2021
|
})
|
|
1965
2022
|
});
|
|
@@ -1973,6 +2030,7 @@ const ActivityTtsEvent = effect.Schema.Struct({
|
|
|
1973
2030
|
utterance: effect.Schema.String,
|
|
1974
2031
|
priority: effect.Schema.optional(effect.Schema.Number),
|
|
1975
2032
|
issueId: effect.Schema.optional(IssueId),
|
|
2033
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1976
2034
|
source: effect.Schema.optional(effect.Schema.String),
|
|
1977
2035
|
eventType: effect.Schema.optional(effect.Schema.String)
|
|
1978
2036
|
})
|
|
@@ -1985,6 +2043,7 @@ const DashboardLifecycleStartedEvent = effect.Schema.Struct({
|
|
|
1985
2043
|
payload: effect.Schema.Struct({
|
|
1986
2044
|
reason: effect.Schema.String,
|
|
1987
2045
|
issueId: effect.Schema.optional(IssueId),
|
|
2046
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1988
2047
|
trigger: effect.Schema.String
|
|
1989
2048
|
})
|
|
1990
2049
|
});
|
|
@@ -1996,6 +2055,7 @@ const DashboardLifecycleCompletedEvent = effect.Schema.Struct({
|
|
|
1996
2055
|
payload: effect.Schema.Struct({
|
|
1997
2056
|
reason: effect.Schema.String,
|
|
1998
2057
|
issueId: effect.Schema.optional(IssueId),
|
|
2058
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1999
2059
|
durationMs: effect.Schema.Number
|
|
2000
2060
|
})
|
|
2001
2061
|
});
|
|
@@ -2007,6 +2067,7 @@ const DashboardLifecycleFailedEvent = effect.Schema.Struct({
|
|
|
2007
2067
|
payload: effect.Schema.Struct({
|
|
2008
2068
|
reason: effect.Schema.String,
|
|
2009
2069
|
issueId: effect.Schema.optional(IssueId),
|
|
2070
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2010
2071
|
error: effect.Schema.String
|
|
2011
2072
|
})
|
|
2012
2073
|
});
|
|
@@ -2017,6 +2078,7 @@ const ShadowInferenceUpdateEvent = effect.Schema.Struct({
|
|
|
2017
2078
|
timestamp: effect.Schema.String,
|
|
2018
2079
|
payload: effect.Schema.Struct({
|
|
2019
2080
|
issueId: IssueId,
|
|
2081
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2020
2082
|
content: effect.Schema.String
|
|
2021
2083
|
})
|
|
2022
2084
|
});
|
|
@@ -2027,6 +2089,7 @@ const WorkspaceCreatedEvent = effect.Schema.Struct({
|
|
|
2027
2089
|
timestamp: effect.Schema.String,
|
|
2028
2090
|
payload: effect.Schema.Struct({
|
|
2029
2091
|
issueId: IssueId,
|
|
2092
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2030
2093
|
workspacePath: effect.Schema.String
|
|
2031
2094
|
})
|
|
2032
2095
|
});
|
|
@@ -2035,21 +2098,30 @@ const WorkspaceWipeStartedEvent = effect.Schema.Struct({
|
|
|
2035
2098
|
type: effect.Schema.Literal("workspace.wipe_started"),
|
|
2036
2099
|
sequence: SequenceNumber,
|
|
2037
2100
|
timestamp: effect.Schema.String,
|
|
2038
|
-
payload: effect.Schema.Struct({
|
|
2101
|
+
payload: effect.Schema.Struct({
|
|
2102
|
+
issueId: IssueId,
|
|
2103
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
2104
|
+
})
|
|
2039
2105
|
});
|
|
2040
2106
|
/** New — deep-wipe completed, workspace fully destroyed */
|
|
2041
2107
|
const WorkspaceDestroyedEvent = effect.Schema.Struct({
|
|
2042
2108
|
type: effect.Schema.Literal("workspace.destroyed"),
|
|
2043
2109
|
sequence: SequenceNumber,
|
|
2044
2110
|
timestamp: effect.Schema.String,
|
|
2045
|
-
payload: effect.Schema.Struct({
|
|
2111
|
+
payload: effect.Schema.Struct({
|
|
2112
|
+
issueId: IssueId,
|
|
2113
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
2114
|
+
})
|
|
2046
2115
|
});
|
|
2047
2116
|
/** New — cleanup-workspace completed, workspace directory removed */
|
|
2048
2117
|
const WorkspaceDeletedEvent = effect.Schema.Struct({
|
|
2049
2118
|
type: effect.Schema.Literal("workspace.deleted"),
|
|
2050
2119
|
sequence: SequenceNumber,
|
|
2051
2120
|
timestamp: effect.Schema.String,
|
|
2052
|
-
payload: effect.Schema.Struct({
|
|
2121
|
+
payload: effect.Schema.Struct({
|
|
2122
|
+
issueId: IssueId,
|
|
2123
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
2124
|
+
})
|
|
2053
2125
|
});
|
|
2054
2126
|
/** New — planning aborted, workspace returned to idle state */
|
|
2055
2127
|
const WorkspaceAbortedEvent = effect.Schema.Struct({
|
|
@@ -2058,6 +2130,7 @@ const WorkspaceAbortedEvent = effect.Schema.Struct({
|
|
|
2058
2130
|
timestamp: effect.Schema.String,
|
|
2059
2131
|
payload: effect.Schema.Struct({
|
|
2060
2132
|
issueId: IssueId,
|
|
2133
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2061
2134
|
sessionName: effect.Schema.optional(effect.Schema.String)
|
|
2062
2135
|
})
|
|
2063
2136
|
});
|
|
@@ -2107,6 +2180,7 @@ const MemoryHealthChangedEvent = effect.Schema.Struct({
|
|
|
2107
2180
|
payload: effect.Schema.Struct({
|
|
2108
2181
|
projectId: effect.Schema.String,
|
|
2109
2182
|
issueId: IssueId,
|
|
2183
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2110
2184
|
status: effect.Schema.Literals([
|
|
2111
2185
|
"healthy",
|
|
2112
2186
|
"degraded",
|
|
@@ -2125,6 +2199,7 @@ const CostEventRecordedEvent = effect.Schema.Struct({
|
|
|
2125
2199
|
payload: effect.Schema.Struct({
|
|
2126
2200
|
agentId: AgentId,
|
|
2127
2201
|
issueId: IssueId,
|
|
2202
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2128
2203
|
cost: effect.Schema.Number,
|
|
2129
2204
|
inputTokens: effect.Schema.Number,
|
|
2130
2205
|
outputTokens: effect.Schema.Number
|
|
@@ -2516,7 +2591,8 @@ const FlywheelHarness = effect.Schema.Literals([
|
|
|
2516
2591
|
"pi",
|
|
2517
2592
|
"ohmypi",
|
|
2518
2593
|
"codex",
|
|
2519
|
-
"acp"
|
|
2594
|
+
"acp",
|
|
2595
|
+
"kimi-code"
|
|
2520
2596
|
]);
|
|
2521
2597
|
const FlywheelEffort = effect.Schema.Literals([
|
|
2522
2598
|
"low",
|
|
@@ -2709,6 +2785,8 @@ const WS_METHODS = {
|
|
|
2709
2785
|
replayEvents: "pan.replayEvents",
|
|
2710
2786
|
getWorkspaceDetail: "pan.getWorkspaceDetail",
|
|
2711
2787
|
readWorkspaceFile: "pan.readWorkspaceFile",
|
|
2788
|
+
readFileAtPath: "pan.readFileAtPath",
|
|
2789
|
+
writeFileAtPath: "pan.writeFileAtPath",
|
|
2712
2790
|
resolveFilePathExists: "pan.resolveFilePathExists",
|
|
2713
2791
|
terminalOpen: "pan.terminalOpen",
|
|
2714
2792
|
terminalWrite: "pan.terminalWrite",
|
|
@@ -2854,12 +2932,17 @@ const SessionTreeDelta = effect.Schema.Struct({
|
|
|
2854
2932
|
"session_added",
|
|
2855
2933
|
"session_removed",
|
|
2856
2934
|
"presence_changed",
|
|
2857
|
-
"status_changed"
|
|
2935
|
+
"status_changed",
|
|
2936
|
+
"pending_input_changed"
|
|
2858
2937
|
]),
|
|
2859
2938
|
issueId: effect.Schema.String,
|
|
2860
2939
|
sessionId: effect.Schema.String,
|
|
2861
2940
|
presence: effect.Schema.optional(SessionNodePresence),
|
|
2862
2941
|
status: effect.Schema.optional(AgentStatus),
|
|
2942
|
+
awaitingInput: effect.Schema.optional(effect.Schema.Boolean),
|
|
2943
|
+
awaitingInputPrompt: effect.Schema.optional(effect.Schema.String),
|
|
2944
|
+
awaitingInputReason: effect.Schema.optional(effect.Schema.String),
|
|
2945
|
+
pendingInputKinds: effect.Schema.optional(effect.Schema.Array(effect.Schema.String)),
|
|
2863
2946
|
timestamp: effect.Schema.String
|
|
2864
2947
|
});
|
|
2865
2948
|
/** 1. Subscribe to the live domain event stream (stream) */
|
|
@@ -2960,6 +3043,44 @@ const ReadWorkspaceFileRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.readWorkspa
|
|
|
2960
3043
|
success: ReadWorkspaceFileResult,
|
|
2961
3044
|
error: PanRpcError
|
|
2962
3045
|
});
|
|
3046
|
+
const ReadFileAtPathInput = effect.Schema.Struct({ path: effect.Schema.String });
|
|
3047
|
+
const ReadFileAtPathResult = effect.Schema.Struct({
|
|
3048
|
+
text: effect.Schema.String,
|
|
3049
|
+
lang: effect.Schema.String,
|
|
3050
|
+
mtimeMs: effect.Schema.Number,
|
|
3051
|
+
totalLines: effect.Schema.Number
|
|
3052
|
+
});
|
|
3053
|
+
/**
|
|
3054
|
+
* 10b-2. Read an allowlisted markdown file by absolute path (PAN-3260).
|
|
3055
|
+
*
|
|
3056
|
+
* Unlike ReadWorkspaceFileRpc this takes no issueId — the internal markdown
|
|
3057
|
+
* editor pane opens files reached from surfaces with no workspace context
|
|
3058
|
+
* (e.g. a repo-root file chip inside a conversation). The server validates
|
|
3059
|
+
* `path` against registered project roots + OVERDECK_HOME before reading.
|
|
3060
|
+
*/
|
|
3061
|
+
const ReadFileAtPathRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.readFileAtPath, {
|
|
3062
|
+
payload: ReadFileAtPathInput,
|
|
3063
|
+
success: ReadFileAtPathResult,
|
|
3064
|
+
error: PanRpcError
|
|
3065
|
+
});
|
|
3066
|
+
const WriteFileAtPathInput = effect.Schema.Struct({
|
|
3067
|
+
path: effect.Schema.String,
|
|
3068
|
+
content: effect.Schema.String,
|
|
3069
|
+
expectedMtimeMs: effect.Schema.optional(effect.Schema.Number)
|
|
3070
|
+
});
|
|
3071
|
+
const WriteFileAtPathResult = effect.Schema.Struct({ mtimeMs: effect.Schema.Number });
|
|
3072
|
+
/**
|
|
3073
|
+
* 10b-3. Write an allowlisted markdown file by absolute path (PAN-3260).
|
|
3074
|
+
*
|
|
3075
|
+
* `expectedMtimeMs` enables optimistic concurrency: a stale value is
|
|
3076
|
+
* rejected with a PanRpcError code of WRITE_CONFLICT and nothing is
|
|
3077
|
+
* written. Omitting it (e.g. an explicit Overwrite action) skips the check.
|
|
3078
|
+
*/
|
|
3079
|
+
const WriteFileAtPathRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.writeFileAtPath, {
|
|
3080
|
+
payload: WriteFileAtPathInput,
|
|
3081
|
+
success: WriteFileAtPathResult,
|
|
3082
|
+
error: PanRpcError
|
|
3083
|
+
});
|
|
2963
3084
|
/**
|
|
2964
3085
|
* 10c. Resolve whether a file path candidate exists on disk (PAN-1457).
|
|
2965
3086
|
*
|
|
@@ -3234,7 +3355,7 @@ const GetConversationStatsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.getConve
|
|
|
3234
3355
|
error: PanRpcError
|
|
3235
3356
|
});
|
|
3236
3357
|
/** All Overdeck WebSocket RPC methods */
|
|
3237
|
-
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);
|
|
3358
|
+
const PanRpcGroup = effect_unstable_rpc_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);
|
|
3238
3359
|
//#endregion
|
|
3239
3360
|
//#region src/event-reducers.ts
|
|
3240
3361
|
const INITIAL_READ_MODEL_STATE = {
|
|
@@ -3891,7 +4012,8 @@ function applyEvent(state, event) {
|
|
|
3891
4012
|
};
|
|
3892
4013
|
case "memory.observation_created": {
|
|
3893
4014
|
const observation = event.payload.observation;
|
|
3894
|
-
const
|
|
4015
|
+
const observationKey = observation.issueId ?? observation.workspaceId;
|
|
4016
|
+
const existing = state.observationsByIssueId[observationKey] ?? [];
|
|
3895
4017
|
const index = existing.findIndex((entry) => entry.id === observation.id);
|
|
3896
4018
|
const updated = trimMemoryObservations(index === -1 ? [...existing, observation] : existing.map((entry, entryIndex) => entryIndex === index ? observation : entry));
|
|
3897
4019
|
return {
|
|
@@ -3899,7 +4021,7 @@ function applyEvent(state, event) {
|
|
|
3899
4021
|
sequence: Math.max(state.sequence, event.sequence),
|
|
3900
4022
|
observationsByIssueId: {
|
|
3901
4023
|
...state.observationsByIssueId,
|
|
3902
|
-
[
|
|
4024
|
+
[observationKey]: updated
|
|
3903
4025
|
}
|
|
3904
4026
|
};
|
|
3905
4027
|
}
|
|
@@ -4666,7 +4788,8 @@ const CONTEXT_PREVIEW_HARNESSES = [
|
|
|
4666
4788
|
"claude-code",
|
|
4667
4789
|
"ohmypi",
|
|
4668
4790
|
"codex",
|
|
4669
|
-
"acp"
|
|
4791
|
+
"acp",
|
|
4792
|
+
"kimi-code"
|
|
4670
4793
|
];
|
|
4671
4794
|
const ContextLayerKind = effect.Schema.Literals(CONTEXT_LAYER_KINDS);
|
|
4672
4795
|
const ContextPreviewHarness = effect.Schema.Literals(CONTEXT_PREVIEW_HARNESSES);
|
|
@@ -4774,6 +4897,7 @@ const ContextHarnessPreviews = effect.Schema.Struct({
|
|
|
4774
4897
|
ohmypi: effect.Schema.String,
|
|
4775
4898
|
codex: effect.Schema.String,
|
|
4776
4899
|
acp: effect.Schema.String,
|
|
4900
|
+
"kimi-code": effect.Schema.String,
|
|
4777
4901
|
fullPrompt: effect.Schema.String
|
|
4778
4902
|
});
|
|
4779
4903
|
const ContextPreviewDiagnostic = effect.Schema.Struct({
|
|
@@ -4829,6 +4953,7 @@ const ArtifactAgentHarness = effect.Schema.Literals([
|
|
|
4829
4953
|
"ohmypi",
|
|
4830
4954
|
"codex",
|
|
4831
4955
|
"acp",
|
|
4956
|
+
"kimi-code",
|
|
4832
4957
|
"user"
|
|
4833
4958
|
]);
|
|
4834
4959
|
const ArtifactLifecycleState = effect.Schema.Literals([
|
|
@@ -5062,16 +5187,40 @@ const ACP_BEHAVIOR = {
|
|
|
5062
5187
|
workAgentMode: "acp-host",
|
|
5063
5188
|
readyTimeoutSeconds: 30
|
|
5064
5189
|
};
|
|
5190
|
+
const KIMI_CODE_BEHAVIOR = {
|
|
5191
|
+
displayName: "Kimi Code",
|
|
5192
|
+
nativeCommands: [],
|
|
5193
|
+
executableName: "kimi",
|
|
5194
|
+
processNames: ["kimi"],
|
|
5195
|
+
launchCommandKind: "kimi-code-tui",
|
|
5196
|
+
deliveryKind: "pty-supervisor",
|
|
5197
|
+
readinessKind: "kimi-session-signal",
|
|
5198
|
+
transcriptKind: "kimi-wire-jsonl",
|
|
5199
|
+
sessionIdSource: "kimi-session-newest",
|
|
5200
|
+
contextLayerKind: "kimi-code",
|
|
5201
|
+
feedKind: "kimi_code",
|
|
5202
|
+
supportsPtySupervisor: true,
|
|
5203
|
+
supportsChannelsBridge: false,
|
|
5204
|
+
supportsConversationStreaming: true,
|
|
5205
|
+
supportsPatchProjection: false,
|
|
5206
|
+
usesRpcFifo: false,
|
|
5207
|
+
usesCodexHome: false,
|
|
5208
|
+
injectsPromptTimeMemory: false,
|
|
5209
|
+
workAgentMode: "kimi-code-tui",
|
|
5210
|
+
readyTimeoutSeconds: 60
|
|
5211
|
+
};
|
|
5065
5212
|
const BEHAVIORS = {
|
|
5066
5213
|
"claude-code": CLAUDE_CODE_BEHAVIOR,
|
|
5067
5214
|
ohmypi: OHMYPI_BEHAVIOR,
|
|
5068
5215
|
codex: CODEX_BEHAVIOR,
|
|
5069
|
-
acp: ACP_BEHAVIOR
|
|
5216
|
+
acp: ACP_BEHAVIOR,
|
|
5217
|
+
"kimi-code": KIMI_CODE_BEHAVIOR
|
|
5070
5218
|
};
|
|
5071
5219
|
function getHarnessBehavior(harness) {
|
|
5072
5220
|
if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
|
|
5073
5221
|
if (harness === "codex") return CODEX_BEHAVIOR;
|
|
5074
5222
|
if (harness === "acp") return ACP_BEHAVIOR;
|
|
5223
|
+
if (harness === "kimi-code") return KIMI_CODE_BEHAVIOR;
|
|
5075
5224
|
return CLAUDE_CODE_BEHAVIOR;
|
|
5076
5225
|
}
|
|
5077
5226
|
function getRuntimeBehavior(runtime) {
|
|
@@ -5285,7 +5434,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
5285
5434
|
"god-view",
|
|
5286
5435
|
"deacon",
|
|
5287
5436
|
"sessions",
|
|
5288
|
-
"awaiting-merge"
|
|
5437
|
+
"awaiting-merge",
|
|
5438
|
+
"workspace"
|
|
5289
5439
|
],
|
|
5290
5440
|
decision_subject: ["agent", "conversation"],
|
|
5291
5441
|
duration_bucket: [
|
|
@@ -5304,7 +5454,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
5304
5454
|
"claude-code",
|
|
5305
5455
|
"ohmypi",
|
|
5306
5456
|
"codex",
|
|
5307
|
-
"acp"
|
|
5457
|
+
"acp",
|
|
5458
|
+
"kimi-code"
|
|
5308
5459
|
],
|
|
5309
5460
|
merge_kind: ["pipeline"],
|
|
5310
5461
|
model_family: [
|
|
@@ -5965,7 +6116,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
5965
6116
|
},
|
|
5966
6117
|
{
|
|
5967
6118
|
"flags": "--harness <harness>",
|
|
5968
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
|
|
6119
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
|
|
5969
6120
|
"required": true,
|
|
5970
6121
|
"valueHint": "harness"
|
|
5971
6122
|
},
|
|
@@ -6069,6 +6220,24 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6069
6220
|
"aliases": [],
|
|
6070
6221
|
"category": "Lifecycle"
|
|
6071
6222
|
},
|
|
6223
|
+
{
|
|
6224
|
+
"id": "pan-answer",
|
|
6225
|
+
"path": ["answer"],
|
|
6226
|
+
"display": "/pan answer",
|
|
6227
|
+
"description": "Show a pending pane choice, or answer its numbered option",
|
|
6228
|
+
"args": [{
|
|
6229
|
+
"name": "id",
|
|
6230
|
+
"required": true,
|
|
6231
|
+
"variadic": false
|
|
6232
|
+
}, {
|
|
6233
|
+
"name": "option",
|
|
6234
|
+
"required": false,
|
|
6235
|
+
"variadic": false
|
|
6236
|
+
}],
|
|
6237
|
+
"options": [],
|
|
6238
|
+
"aliases": [],
|
|
6239
|
+
"category": "CLI"
|
|
6240
|
+
},
|
|
6072
6241
|
{
|
|
6073
6242
|
"id": "pan-monitor",
|
|
6074
6243
|
"path": ["monitor"],
|
|
@@ -6624,7 +6793,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6624
6793
|
},
|
|
6625
6794
|
{
|
|
6626
6795
|
"flags": "--harness <harness>",
|
|
6627
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
|
|
6796
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
|
|
6628
6797
|
"required": true,
|
|
6629
6798
|
"valueHint": "harness"
|
|
6630
6799
|
},
|
|
@@ -6690,7 +6859,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6690
6859
|
},
|
|
6691
6860
|
{
|
|
6692
6861
|
"flags": "--force",
|
|
6693
|
-
"description": "Clear
|
|
6862
|
+
"description": "Clear paused and pending-operator-decision gates and start anyway",
|
|
6694
6863
|
"required": false,
|
|
6695
6864
|
"valueHint": null
|
|
6696
6865
|
},
|
|
@@ -6741,7 +6910,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6741
6910
|
},
|
|
6742
6911
|
{
|
|
6743
6912
|
"flags": "--harness <harness>",
|
|
6744
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
|
|
6913
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
|
|
6745
6914
|
"required": true,
|
|
6746
6915
|
"valueHint": "harness"
|
|
6747
6916
|
},
|
|
@@ -7390,17 +7559,32 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7390
7559
|
"display": "/pan workspace list",
|
|
7391
7560
|
"description": "List all workspaces",
|
|
7392
7561
|
"args": [],
|
|
7393
|
-
"options": [
|
|
7394
|
-
|
|
7395
|
-
|
|
7396
|
-
|
|
7397
|
-
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
7401
|
-
|
|
7402
|
-
|
|
7403
|
-
|
|
7562
|
+
"options": [
|
|
7563
|
+
{
|
|
7564
|
+
"flags": "--json",
|
|
7565
|
+
"description": "Output as JSON",
|
|
7566
|
+
"required": false,
|
|
7567
|
+
"valueHint": null
|
|
7568
|
+
},
|
|
7569
|
+
{
|
|
7570
|
+
"flags": "--all",
|
|
7571
|
+
"description": "List workspaces across all registered projects",
|
|
7572
|
+
"required": false,
|
|
7573
|
+
"valueHint": null
|
|
7574
|
+
},
|
|
7575
|
+
{
|
|
7576
|
+
"flags": "--kind <kind>",
|
|
7577
|
+
"description": "Filter by workspace kind (main|issue|scratch), reading through the resolver",
|
|
7578
|
+
"required": true,
|
|
7579
|
+
"valueHint": "kind"
|
|
7580
|
+
},
|
|
7581
|
+
{
|
|
7582
|
+
"flags": "--archived",
|
|
7583
|
+
"description": "Include archived workspaces (only applies with --kind)",
|
|
7584
|
+
"required": false,
|
|
7585
|
+
"valueHint": null
|
|
7586
|
+
}
|
|
7587
|
+
],
|
|
7404
7588
|
"aliases": [],
|
|
7405
7589
|
"category": "Workspace"
|
|
7406
7590
|
},
|
|
@@ -7414,16 +7598,151 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7414
7598
|
"required": true,
|
|
7415
7599
|
"variadic": false
|
|
7416
7600
|
}],
|
|
7601
|
+
"options": [
|
|
7602
|
+
{
|
|
7603
|
+
"flags": "--force",
|
|
7604
|
+
"description": "Force removal even with uncommitted changes",
|
|
7605
|
+
"required": false,
|
|
7606
|
+
"valueHint": null
|
|
7607
|
+
},
|
|
7608
|
+
{
|
|
7609
|
+
"flags": "--project <path>",
|
|
7610
|
+
"description": "Explicit project path (overrides registry)",
|
|
7611
|
+
"required": true,
|
|
7612
|
+
"valueHint": "path"
|
|
7613
|
+
},
|
|
7614
|
+
{
|
|
7615
|
+
"flags": "--purge-memory",
|
|
7616
|
+
"description": "Also permanently delete the workspace's memory home (irreversible)",
|
|
7617
|
+
"required": false,
|
|
7618
|
+
"valueHint": null
|
|
7619
|
+
}
|
|
7620
|
+
],
|
|
7621
|
+
"aliases": [],
|
|
7622
|
+
"category": "Workspace"
|
|
7623
|
+
},
|
|
7624
|
+
{
|
|
7625
|
+
"id": "pan-workspace-new",
|
|
7626
|
+
"path": ["workspace", "new"],
|
|
7627
|
+
"display": "/pan workspace new",
|
|
7628
|
+
"description": "Create a scratch workspace (shared dir by default; --isolated for a git worktree)",
|
|
7629
|
+
"args": [{
|
|
7630
|
+
"name": "name",
|
|
7631
|
+
"required": true,
|
|
7632
|
+
"variadic": false
|
|
7633
|
+
}],
|
|
7634
|
+
"options": [
|
|
7635
|
+
{
|
|
7636
|
+
"flags": "--project <key>",
|
|
7637
|
+
"description": "Registered project key (defaults to the sole project, or the one resolved from cwd)",
|
|
7638
|
+
"required": true,
|
|
7639
|
+
"valueHint": "key"
|
|
7640
|
+
},
|
|
7641
|
+
{
|
|
7642
|
+
"flags": "--isolated",
|
|
7643
|
+
"description": "Create an isolated git worktree instead of sharing the project directory",
|
|
7644
|
+
"required": false,
|
|
7645
|
+
"valueHint": null
|
|
7646
|
+
},
|
|
7647
|
+
{
|
|
7648
|
+
"flags": "--parent-branch <branch>",
|
|
7649
|
+
"description": "Parent branch for the isolated worktree (default: inferred from the project's current branch)",
|
|
7650
|
+
"required": true,
|
|
7651
|
+
"valueHint": "branch"
|
|
7652
|
+
},
|
|
7653
|
+
{
|
|
7654
|
+
"flags": "--target-path <dir>",
|
|
7655
|
+
"description": "Target an existing directory as the workspace path (rejects --isolated)",
|
|
7656
|
+
"required": true,
|
|
7657
|
+
"valueHint": "dir"
|
|
7658
|
+
},
|
|
7659
|
+
{
|
|
7660
|
+
"flags": "--dry-run",
|
|
7661
|
+
"description": "Print the resolved intent as JSON and create nothing",
|
|
7662
|
+
"required": false,
|
|
7663
|
+
"valueHint": null
|
|
7664
|
+
}
|
|
7665
|
+
],
|
|
7666
|
+
"aliases": [],
|
|
7667
|
+
"category": "Workspace"
|
|
7668
|
+
},
|
|
7669
|
+
{
|
|
7670
|
+
"id": "pan-workspace-main",
|
|
7671
|
+
"path": ["workspace", "main"],
|
|
7672
|
+
"display": "/pan workspace main",
|
|
7673
|
+
"description": "Resolve or create the project's singleton main workspace",
|
|
7674
|
+
"args": [],
|
|
7417
7675
|
"options": [{
|
|
7676
|
+
"flags": "--project <key>",
|
|
7677
|
+
"description": "Registered project key (defaults to the sole project, or the one resolved from cwd)",
|
|
7678
|
+
"required": true,
|
|
7679
|
+
"valueHint": "key"
|
|
7680
|
+
}],
|
|
7681
|
+
"aliases": [],
|
|
7682
|
+
"category": "Workspace"
|
|
7683
|
+
},
|
|
7684
|
+
{
|
|
7685
|
+
"id": "pan-workspace-get",
|
|
7686
|
+
"path": ["workspace", "get"],
|
|
7687
|
+
"display": "/pan workspace get",
|
|
7688
|
+
"description": "Show a workspace row by id",
|
|
7689
|
+
"args": [{
|
|
7690
|
+
"name": "ws",
|
|
7691
|
+
"required": true,
|
|
7692
|
+
"variadic": false
|
|
7693
|
+
}],
|
|
7694
|
+
"options": [],
|
|
7695
|
+
"aliases": [],
|
|
7696
|
+
"category": "Workspace"
|
|
7697
|
+
},
|
|
7698
|
+
{
|
|
7699
|
+
"id": "pan-workspace-activate",
|
|
7700
|
+
"path": ["workspace", "activate"],
|
|
7701
|
+
"display": "/pan workspace activate",
|
|
7702
|
+
"description": "Touch a workspace's last-accessed time and print its layout hint",
|
|
7703
|
+
"args": [{
|
|
7704
|
+
"name": "ws",
|
|
7705
|
+
"required": true,
|
|
7706
|
+
"variadic": false
|
|
7707
|
+
}],
|
|
7708
|
+
"options": [],
|
|
7709
|
+
"aliases": [],
|
|
7710
|
+
"category": "Workspace"
|
|
7711
|
+
},
|
|
7712
|
+
{
|
|
7713
|
+
"id": "pan-workspace-archive",
|
|
7714
|
+
"path": ["workspace", "archive"],
|
|
7715
|
+
"display": "/pan workspace archive",
|
|
7716
|
+
"description": "Archive a workspace (reversible; refuses kind=main)",
|
|
7717
|
+
"args": [{
|
|
7718
|
+
"name": "ws",
|
|
7719
|
+
"required": true,
|
|
7720
|
+
"variadic": false
|
|
7721
|
+
}],
|
|
7722
|
+
"options": [],
|
|
7723
|
+
"aliases": [],
|
|
7724
|
+
"category": "Workspace"
|
|
7725
|
+
},
|
|
7726
|
+
{
|
|
7727
|
+
"id": "pan-workspace-relocate",
|
|
7728
|
+
"path": ["workspace", "relocate"],
|
|
7729
|
+
"display": "/pan workspace relocate",
|
|
7730
|
+
"description": "Point a workspace at a new path (refuses kind=issue; kind=main requires --force)",
|
|
7731
|
+
"args": [{
|
|
7732
|
+
"name": "ws",
|
|
7733
|
+
"required": true,
|
|
7734
|
+
"variadic": false
|
|
7735
|
+
}],
|
|
7736
|
+
"options": [{
|
|
7737
|
+
"flags": "--path <dir>",
|
|
7738
|
+
"description": "New path (must be an existing directory)",
|
|
7739
|
+
"required": true,
|
|
7740
|
+
"valueHint": "dir"
|
|
7741
|
+
}, {
|
|
7418
7742
|
"flags": "--force",
|
|
7419
|
-
"description": "
|
|
7743
|
+
"description": "Allow relocating the main workspace, diverging it from projects.yaml",
|
|
7420
7744
|
"required": false,
|
|
7421
7745
|
"valueHint": null
|
|
7422
|
-
}, {
|
|
7423
|
-
"flags": "--project <path>",
|
|
7424
|
-
"description": "Explicit project path (overrides registry)",
|
|
7425
|
-
"required": true,
|
|
7426
|
-
"valueHint": "path"
|
|
7427
7746
|
}],
|
|
7428
7747
|
"aliases": [],
|
|
7429
7748
|
"category": "Workspace"
|
|
@@ -8061,10 +8380,10 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8061
8380
|
"valueHint": "id"
|
|
8062
8381
|
},
|
|
8063
8382
|
{
|
|
8064
|
-
"flags": "--workspace <id>",
|
|
8065
|
-
"description": "Workspace
|
|
8383
|
+
"flags": "--workspace <id|name>",
|
|
8384
|
+
"description": "Workspace id or name",
|
|
8066
8385
|
"required": true,
|
|
8067
|
-
"valueHint": "id"
|
|
8386
|
+
"valueHint": "id|name"
|
|
8068
8387
|
},
|
|
8069
8388
|
{
|
|
8070
8389
|
"flags": "--issue <id>",
|
|
@@ -8084,6 +8403,18 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8084
8403
|
"required": false,
|
|
8085
8404
|
"valueHint": null
|
|
8086
8405
|
},
|
|
8406
|
+
{
|
|
8407
|
+
"flags": "--global",
|
|
8408
|
+
"description": "Search across all registered projects instead of just one",
|
|
8409
|
+
"required": false,
|
|
8410
|
+
"valueHint": null
|
|
8411
|
+
},
|
|
8412
|
+
{
|
|
8413
|
+
"flags": "--target [path]",
|
|
8414
|
+
"description": "Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global",
|
|
8415
|
+
"required": false,
|
|
8416
|
+
"valueHint": "path"
|
|
8417
|
+
},
|
|
8087
8418
|
{
|
|
8088
8419
|
"flags": "--include-archived",
|
|
8089
8420
|
"description": "Include observations hidden by reset markers",
|
|
@@ -8110,23 +8441,106 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8110
8441
|
"id": "pan-memory-status",
|
|
8111
8442
|
"path": ["memory", "status"],
|
|
8112
8443
|
"display": "/pan memory status",
|
|
8113
|
-
"description": "Show current memory status for an issue",
|
|
8444
|
+
"description": "Show current memory status for an issue, a workspace, or the current directory",
|
|
8114
8445
|
"args": [{
|
|
8115
8446
|
"name": "issue",
|
|
8116
|
-
"required":
|
|
8447
|
+
"required": false,
|
|
8117
8448
|
"variadic": false
|
|
8118
8449
|
}],
|
|
8119
|
-
"options": [
|
|
8120
|
-
|
|
8121
|
-
|
|
8450
|
+
"options": [
|
|
8451
|
+
{
|
|
8452
|
+
"flags": "--project <id>",
|
|
8453
|
+
"description": "Project ID",
|
|
8454
|
+
"required": true,
|
|
8455
|
+
"valueHint": "id"
|
|
8456
|
+
},
|
|
8457
|
+
{
|
|
8458
|
+
"flags": "--workspace <id|name>",
|
|
8459
|
+
"description": "Workspace id or name instead of an issue positional",
|
|
8460
|
+
"required": true,
|
|
8461
|
+
"valueHint": "id|name"
|
|
8462
|
+
},
|
|
8463
|
+
{
|
|
8464
|
+
"flags": "--history <n>",
|
|
8465
|
+
"description": "Also print up to N archived statuses, newest first (max 50)",
|
|
8466
|
+
"required": true,
|
|
8467
|
+
"valueHint": "n"
|
|
8468
|
+
},
|
|
8469
|
+
{
|
|
8470
|
+
"flags": "--json",
|
|
8471
|
+
"description": "Output JSON",
|
|
8472
|
+
"required": false,
|
|
8473
|
+
"valueHint": null
|
|
8474
|
+
}
|
|
8475
|
+
],
|
|
8476
|
+
"aliases": [],
|
|
8477
|
+
"category": "Observation"
|
|
8478
|
+
},
|
|
8479
|
+
{
|
|
8480
|
+
"id": "pan-memory-timeline",
|
|
8481
|
+
"path": ["memory", "timeline"],
|
|
8482
|
+
"display": "/pan memory timeline",
|
|
8483
|
+
"description": "Print chronological observations for a workspace or the current directory",
|
|
8484
|
+
"args": [],
|
|
8485
|
+
"options": [
|
|
8486
|
+
{
|
|
8487
|
+
"flags": "--workspace <id|name>",
|
|
8488
|
+
"description": "Workspace id or name (defaults to the workspace owning the cwd)",
|
|
8489
|
+
"required": true,
|
|
8490
|
+
"valueHint": "id|name"
|
|
8491
|
+
},
|
|
8492
|
+
{
|
|
8493
|
+
"flags": "--days <n>",
|
|
8494
|
+
"description": "Most recent N days, today counting as day 1 (default 7)",
|
|
8495
|
+
"required": true,
|
|
8496
|
+
"valueHint": "n"
|
|
8497
|
+
},
|
|
8498
|
+
{
|
|
8499
|
+
"flags": "--limit <n>",
|
|
8500
|
+
"description": "Maximum observation rows",
|
|
8501
|
+
"required": true,
|
|
8502
|
+
"valueHint": "n"
|
|
8503
|
+
},
|
|
8504
|
+
{
|
|
8505
|
+
"flags": "--json",
|
|
8506
|
+
"description": "Output JSON",
|
|
8507
|
+
"required": false,
|
|
8508
|
+
"valueHint": null
|
|
8509
|
+
}
|
|
8510
|
+
],
|
|
8511
|
+
"aliases": [],
|
|
8512
|
+
"category": "Observation"
|
|
8513
|
+
},
|
|
8514
|
+
{
|
|
8515
|
+
"id": "pan-memory-read",
|
|
8516
|
+
"path": ["memory", "read"],
|
|
8517
|
+
"display": "/pan memory read",
|
|
8518
|
+
"description": "Print a file from a workspace's memory home (path is relative to that home)",
|
|
8519
|
+
"args": [{
|
|
8520
|
+
"name": "path",
|
|
8122
8521
|
"required": true,
|
|
8123
|
-
"
|
|
8124
|
-
}, {
|
|
8125
|
-
"flags": "--json",
|
|
8126
|
-
"description": "Output JSON",
|
|
8127
|
-
"required": false,
|
|
8128
|
-
"valueHint": null
|
|
8522
|
+
"variadic": false
|
|
8129
8523
|
}],
|
|
8524
|
+
"options": [
|
|
8525
|
+
{
|
|
8526
|
+
"flags": "--workspace <id|name>",
|
|
8527
|
+
"description": "Workspace id or name (defaults to the workspace owning the cwd)",
|
|
8528
|
+
"required": true,
|
|
8529
|
+
"valueHint": "id|name"
|
|
8530
|
+
},
|
|
8531
|
+
{
|
|
8532
|
+
"flags": "--from <n>",
|
|
8533
|
+
"description": "First line to print, 1-based",
|
|
8534
|
+
"required": true,
|
|
8535
|
+
"valueHint": "n"
|
|
8536
|
+
},
|
|
8537
|
+
{
|
|
8538
|
+
"flags": "--lines <n>",
|
|
8539
|
+
"description": "Maximum number of lines to print",
|
|
8540
|
+
"required": true,
|
|
8541
|
+
"valueHint": "n"
|
|
8542
|
+
}
|
|
8543
|
+
],
|
|
8130
8544
|
"aliases": [],
|
|
8131
8545
|
"category": "Observation"
|
|
8132
8546
|
},
|
|
@@ -8177,10 +8591,10 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8177
8591
|
"id": "pan-memory-summary",
|
|
8178
8592
|
"path": ["memory", "summary"],
|
|
8179
8593
|
"display": "/pan memory summary",
|
|
8180
|
-
"description": "Generate a daily markdown memory summary",
|
|
8594
|
+
"description": "Generate a daily markdown memory summary for an issue, a workspace, or the current directory",
|
|
8181
8595
|
"args": [{
|
|
8182
8596
|
"name": "issue",
|
|
8183
|
-
"required":
|
|
8597
|
+
"required": false,
|
|
8184
8598
|
"variadic": false
|
|
8185
8599
|
}],
|
|
8186
8600
|
"options": [
|
|
@@ -8190,6 +8604,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8190
8604
|
"required": true,
|
|
8191
8605
|
"valueHint": "id"
|
|
8192
8606
|
},
|
|
8607
|
+
{
|
|
8608
|
+
"flags": "--workspace <id|name>",
|
|
8609
|
+
"description": "Workspace id or name instead of an issue positional",
|
|
8610
|
+
"required": true,
|
|
8611
|
+
"valueHint": "id|name"
|
|
8612
|
+
},
|
|
8193
8613
|
{
|
|
8194
8614
|
"flags": "--date <yyyy-mm-dd>",
|
|
8195
8615
|
"description": "Summary date",
|
|
@@ -8226,6 +8646,136 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8226
8646
|
"aliases": [],
|
|
8227
8647
|
"category": "Observation"
|
|
8228
8648
|
},
|
|
8649
|
+
{
|
|
8650
|
+
"id": "pan-memory-backfill",
|
|
8651
|
+
"path": ["memory", "backfill"],
|
|
8652
|
+
"display": "/pan memory backfill",
|
|
8653
|
+
"description": "Backfill memory observations from historical Claude Code JSONL transcripts",
|
|
8654
|
+
"args": [],
|
|
8655
|
+
"options": [
|
|
8656
|
+
{
|
|
8657
|
+
"flags": "--workspace <id>",
|
|
8658
|
+
"description": "Only backfill sessions resolved to this workspace id",
|
|
8659
|
+
"required": true,
|
|
8660
|
+
"valueHint": "id"
|
|
8661
|
+
},
|
|
8662
|
+
{
|
|
8663
|
+
"flags": "--project <id>",
|
|
8664
|
+
"description": "Only backfill sessions resolved to this project id",
|
|
8665
|
+
"required": true,
|
|
8666
|
+
"valueHint": "id"
|
|
8667
|
+
},
|
|
8668
|
+
{
|
|
8669
|
+
"flags": "--dry-run",
|
|
8670
|
+
"description": "Report matched sessions without extracting or writing anything",
|
|
8671
|
+
"required": false,
|
|
8672
|
+
"valueHint": null
|
|
8673
|
+
},
|
|
8674
|
+
{
|
|
8675
|
+
"flags": "--json",
|
|
8676
|
+
"description": "Output JSON",
|
|
8677
|
+
"required": false,
|
|
8678
|
+
"valueHint": null
|
|
8679
|
+
}
|
|
8680
|
+
],
|
|
8681
|
+
"aliases": [],
|
|
8682
|
+
"category": "Observation"
|
|
8683
|
+
},
|
|
8684
|
+
{
|
|
8685
|
+
"id": "pan-memory-pin",
|
|
8686
|
+
"path": ["memory", "pin"],
|
|
8687
|
+
"display": "/pan memory pin",
|
|
8688
|
+
"description": "Pin a doc for prompt-time memory injection (path is stored project-relative)",
|
|
8689
|
+
"args": [{
|
|
8690
|
+
"name": "doc-path",
|
|
8691
|
+
"required": true,
|
|
8692
|
+
"variadic": false
|
|
8693
|
+
}],
|
|
8694
|
+
"options": [
|
|
8695
|
+
{
|
|
8696
|
+
"flags": "--project <id>",
|
|
8697
|
+
"description": "Project key to pin at project scope",
|
|
8698
|
+
"required": true,
|
|
8699
|
+
"valueHint": "id"
|
|
8700
|
+
},
|
|
8701
|
+
{
|
|
8702
|
+
"flags": "--workspace <id>",
|
|
8703
|
+
"description": "Workspace id to pin at workspace scope (overrides --project)",
|
|
8704
|
+
"required": true,
|
|
8705
|
+
"valueHint": "id"
|
|
8706
|
+
},
|
|
8707
|
+
{
|
|
8708
|
+
"flags": "--json",
|
|
8709
|
+
"description": "Output JSON",
|
|
8710
|
+
"required": false,
|
|
8711
|
+
"valueHint": null
|
|
8712
|
+
}
|
|
8713
|
+
],
|
|
8714
|
+
"aliases": [],
|
|
8715
|
+
"category": "Observation"
|
|
8716
|
+
},
|
|
8717
|
+
{
|
|
8718
|
+
"id": "pan-memory-unpin",
|
|
8719
|
+
"path": ["memory", "unpin"],
|
|
8720
|
+
"display": "/pan memory unpin",
|
|
8721
|
+
"description": "Remove a pinned doc",
|
|
8722
|
+
"args": [{
|
|
8723
|
+
"name": "doc-path",
|
|
8724
|
+
"required": true,
|
|
8725
|
+
"variadic": false
|
|
8726
|
+
}],
|
|
8727
|
+
"options": [
|
|
8728
|
+
{
|
|
8729
|
+
"flags": "--project <id>",
|
|
8730
|
+
"description": "Project key the pin was made at project scope",
|
|
8731
|
+
"required": true,
|
|
8732
|
+
"valueHint": "id"
|
|
8733
|
+
},
|
|
8734
|
+
{
|
|
8735
|
+
"flags": "--workspace <id>",
|
|
8736
|
+
"description": "Workspace id the pin was made at workspace scope (overrides --project)",
|
|
8737
|
+
"required": true,
|
|
8738
|
+
"valueHint": "id"
|
|
8739
|
+
},
|
|
8740
|
+
{
|
|
8741
|
+
"flags": "--json",
|
|
8742
|
+
"description": "Output JSON",
|
|
8743
|
+
"required": false,
|
|
8744
|
+
"valueHint": null
|
|
8745
|
+
}
|
|
8746
|
+
],
|
|
8747
|
+
"aliases": [],
|
|
8748
|
+
"category": "Observation"
|
|
8749
|
+
},
|
|
8750
|
+
{
|
|
8751
|
+
"id": "pan-memory-pins",
|
|
8752
|
+
"path": ["memory", "pins"],
|
|
8753
|
+
"display": "/pan memory pins",
|
|
8754
|
+
"description": "List pinned docs for a project or workspace",
|
|
8755
|
+
"args": [],
|
|
8756
|
+
"options": [
|
|
8757
|
+
{
|
|
8758
|
+
"flags": "--project <id>",
|
|
8759
|
+
"description": "Project key to list project-scoped pins for",
|
|
8760
|
+
"required": true,
|
|
8761
|
+
"valueHint": "id"
|
|
8762
|
+
},
|
|
8763
|
+
{
|
|
8764
|
+
"flags": "--workspace <id>",
|
|
8765
|
+
"description": "Workspace id to list workspace-scoped pins for (overrides --project)",
|
|
8766
|
+
"required": true,
|
|
8767
|
+
"valueHint": "id"
|
|
8768
|
+
},
|
|
8769
|
+
{
|
|
8770
|
+
"flags": "--json",
|
|
8771
|
+
"description": "Output JSON",
|
|
8772
|
+
"required": false,
|
|
8773
|
+
"valueHint": null
|
|
8774
|
+
}
|
|
8775
|
+
],
|
|
8776
|
+
"aliases": [],
|
|
8777
|
+
"category": "Observation"
|
|
8778
|
+
},
|
|
8229
8779
|
{
|
|
8230
8780
|
"id": "pan-memory-config",
|
|
8231
8781
|
"path": ["memory", "config"],
|
|
@@ -9411,6 +9961,30 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
9411
9961
|
"aliases": [],
|
|
9412
9962
|
"category": "Admin"
|
|
9413
9963
|
},
|
|
9964
|
+
{
|
|
9965
|
+
"id": "pan-admin-db-rebuild-workspaces",
|
|
9966
|
+
"path": [
|
|
9967
|
+
"admin",
|
|
9968
|
+
"db",
|
|
9969
|
+
"rebuild-workspaces"
|
|
9970
|
+
],
|
|
9971
|
+
"display": "/pan admin db rebuild-workspaces",
|
|
9972
|
+
"description": "Rebuild the projects/workspaces tables from projects.yaml, worktree scan, and memory-home identity records (PAN-1990)",
|
|
9973
|
+
"args": [],
|
|
9974
|
+
"options": [{
|
|
9975
|
+
"flags": "--dry-run",
|
|
9976
|
+
"description": "Show what would be created without writing",
|
|
9977
|
+
"required": false,
|
|
9978
|
+
"valueHint": null
|
|
9979
|
+
}, {
|
|
9980
|
+
"flags": "--verbose",
|
|
9981
|
+
"description": "Log each processed workspace",
|
|
9982
|
+
"required": false,
|
|
9983
|
+
"valueHint": null
|
|
9984
|
+
}],
|
|
9985
|
+
"aliases": [],
|
|
9986
|
+
"category": "Admin"
|
|
9987
|
+
},
|
|
9414
9988
|
{
|
|
9415
9989
|
"id": "pan-admin-db-gc-agents",
|
|
9416
9990
|
"path": [
|
|
@@ -10828,7 +11402,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10828
11402
|
},
|
|
10829
11403
|
{
|
|
10830
11404
|
"flags": "--agent-harness <harness>",
|
|
10831
|
-
"description": "Agent harness: claude-code, pi, codex, acp, or user",
|
|
11405
|
+
"description": "Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, or user",
|
|
10832
11406
|
"required": true,
|
|
10833
11407
|
"valueHint": "harness"
|
|
10834
11408
|
},
|
|
@@ -11403,6 +11977,30 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11403
11977
|
"aliases": [],
|
|
11404
11978
|
"category": "Project"
|
|
11405
11979
|
},
|
|
11980
|
+
{
|
|
11981
|
+
"id": "pan-project-add-target",
|
|
11982
|
+
"path": ["project", "add-target"],
|
|
11983
|
+
"display": "/pan project add-target",
|
|
11984
|
+
"description": "Add a secondary target path for a registered project",
|
|
11985
|
+
"args": [{
|
|
11986
|
+
"name": "project",
|
|
11987
|
+
"required": true,
|
|
11988
|
+
"variadic": false
|
|
11989
|
+
}],
|
|
11990
|
+
"options": [{
|
|
11991
|
+
"flags": "--path <path>",
|
|
11992
|
+
"description": "Target path to add",
|
|
11993
|
+
"required": true,
|
|
11994
|
+
"valueHint": "path"
|
|
11995
|
+
}, {
|
|
11996
|
+
"flags": "--primary",
|
|
11997
|
+
"description": "Make this the primary target (demotes any existing primary)",
|
|
11998
|
+
"required": false,
|
|
11999
|
+
"valueHint": null
|
|
12000
|
+
}],
|
|
12001
|
+
"aliases": [],
|
|
12002
|
+
"category": "Project"
|
|
12003
|
+
},
|
|
11406
12004
|
{
|
|
11407
12005
|
"id": "pan-projects",
|
|
11408
12006
|
"path": ["projects"],
|
|
@@ -11523,6 +12121,30 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11523
12121
|
"aliases": [],
|
|
11524
12122
|
"category": "Project"
|
|
11525
12123
|
},
|
|
12124
|
+
{
|
|
12125
|
+
"id": "pan-projects-add-target",
|
|
12126
|
+
"path": ["projects", "add-target"],
|
|
12127
|
+
"display": "/pan projects add-target",
|
|
12128
|
+
"description": "Add a secondary target path for a registered project",
|
|
12129
|
+
"args": [{
|
|
12130
|
+
"name": "project",
|
|
12131
|
+
"required": true,
|
|
12132
|
+
"variadic": false
|
|
12133
|
+
}],
|
|
12134
|
+
"options": [{
|
|
12135
|
+
"flags": "--path <path>",
|
|
12136
|
+
"description": "Target path to add",
|
|
12137
|
+
"required": true,
|
|
12138
|
+
"valueHint": "path"
|
|
12139
|
+
}, {
|
|
12140
|
+
"flags": "--primary",
|
|
12141
|
+
"description": "Make this the primary target (demotes any existing primary)",
|
|
12142
|
+
"required": false,
|
|
12143
|
+
"valueHint": null
|
|
12144
|
+
}],
|
|
12145
|
+
"aliases": [],
|
|
12146
|
+
"category": "Project"
|
|
12147
|
+
},
|
|
11526
12148
|
{
|
|
11527
12149
|
"id": "pan-health",
|
|
11528
12150
|
"path": ["health"],
|
|
@@ -12109,6 +12731,8 @@ exports.IssueStatusChangedEvent = IssueStatusChangedEvent;
|
|
|
12109
12731
|
exports.IssueTransitionedEvent = IssueTransitionedEvent;
|
|
12110
12732
|
exports.IssuesSnapshotEvent = IssuesSnapshotEvent;
|
|
12111
12733
|
exports.IssuesUpdatedEvent = IssuesUpdatedEvent;
|
|
12734
|
+
exports.KIMI_CODE_BEHAVIOR = KIMI_CODE_BEHAVIOR;
|
|
12735
|
+
exports.KNOWN_HARNESSES = KNOWN_HARNESSES;
|
|
12112
12736
|
exports.LegacySystemHealthSummary = LegacySystemHealthSummary;
|
|
12113
12737
|
exports.LegacyWebhookRelaySummary = LegacyWebhookRelaySummary;
|
|
12114
12738
|
exports.LinearMcpAuthCallbackRelayedEvent = LinearMcpAuthCallbackRelayedEvent;
|
|
@@ -12122,6 +12746,7 @@ exports.MAX_CHANNEL_REPLY_ARTIFACT_REFS = MAX_CHANNEL_REPLY_ARTIFACT_REFS;
|
|
|
12122
12746
|
exports.MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH = MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH;
|
|
12123
12747
|
exports.MAX_CHANNEL_REPLY_SUMMARY_LENGTH = MAX_CHANNEL_REPLY_SUMMARY_LENGTH;
|
|
12124
12748
|
exports.MEMBERSHIP_UNAVAILABLE_REASONS = MEMBERSHIP_UNAVAILABLE_REASONS;
|
|
12749
|
+
exports.MemoryAgentRole = MemoryAgentRole;
|
|
12125
12750
|
exports.MemoryHealthChangedEvent = MemoryHealthChangedEvent;
|
|
12126
12751
|
exports.MemoryIdentity = MemoryIdentity;
|
|
12127
12752
|
exports.MemoryObservation = MemoryObservation;
|
|
@@ -12170,6 +12795,9 @@ exports.ProjectSessionTree = ProjectSessionTree;
|
|
|
12170
12795
|
exports.ProposedPlan = ProposedPlan;
|
|
12171
12796
|
exports.RagDecision = RagDecision;
|
|
12172
12797
|
exports.RagDecisionSource = RagDecisionSource;
|
|
12798
|
+
exports.ReadFileAtPathInput = ReadFileAtPathInput;
|
|
12799
|
+
exports.ReadFileAtPathResult = ReadFileAtPathResult;
|
|
12800
|
+
exports.ReadFileAtPathRpc = ReadFileAtPathRpc;
|
|
12173
12801
|
exports.ReadWorkspaceFileInput = ReadWorkspaceFileInput;
|
|
12174
12802
|
exports.ReadWorkspaceFileResult = ReadWorkspaceFileResult;
|
|
12175
12803
|
exports.ReadWorkspaceFileRpc = ReadWorkspaceFileRpc;
|
|
@@ -12265,6 +12893,9 @@ exports.WorkspaceDeletedEvent = WorkspaceDeletedEvent;
|
|
|
12265
12893
|
exports.WorkspaceDestroyedEvent = WorkspaceDestroyedEvent;
|
|
12266
12894
|
exports.WorkspaceDetail = WorkspaceDetail;
|
|
12267
12895
|
exports.WorkspaceWipeStartedEvent = WorkspaceWipeStartedEvent;
|
|
12896
|
+
exports.WriteFileAtPathInput = WriteFileAtPathInput;
|
|
12897
|
+
exports.WriteFileAtPathResult = WriteFileAtPathResult;
|
|
12898
|
+
exports.WriteFileAtPathRpc = WriteFileAtPathRpc;
|
|
12268
12899
|
exports.applyEvent = applyEvent;
|
|
12269
12900
|
exports.applyEvents = applyEvents;
|
|
12270
12901
|
exports.compareIssueIds = compareIssueIds;
|