@overdeck/contracts 0.47.1 → 0.49.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 +1200 -137
- package/dist/index.d.ts +1471 -83
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1181 -138
- 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
|
});
|
|
@@ -1353,7 +1370,19 @@ const AgentActivityChangedEvent = effect.Schema.Struct({
|
|
|
1353
1370
|
payload: effect.Schema.Struct({
|
|
1354
1371
|
agentId: AgentId,
|
|
1355
1372
|
activity: Activity,
|
|
1356
|
-
currentTool: effect.Schema.optional(effect.Schema.String)
|
|
1373
|
+
currentTool: effect.Schema.optional(effect.Schema.String),
|
|
1374
|
+
hookName: effect.Schema.optional(effect.Schema.String)
|
|
1375
|
+
})
|
|
1376
|
+
});
|
|
1377
|
+
/** A registered harness hook fired without implying an agent activity transition. */
|
|
1378
|
+
const AgentHookFiredEvent = effect.Schema.Struct({
|
|
1379
|
+
type: effect.Schema.Literal("agent.hook_fired"),
|
|
1380
|
+
sequence: SequenceNumber,
|
|
1381
|
+
timestamp: effect.Schema.String,
|
|
1382
|
+
payload: effect.Schema.Struct({
|
|
1383
|
+
agentId: AgentId,
|
|
1384
|
+
hookName: effect.Schema.String,
|
|
1385
|
+
tool: effect.Schema.optional(effect.Schema.String)
|
|
1357
1386
|
})
|
|
1358
1387
|
});
|
|
1359
1388
|
const AgentThinkingStartedEvent = effect.Schema.Struct({
|
|
@@ -1417,6 +1446,7 @@ const AgentPermissionResolvedEvent = effect.Schema.Struct({
|
|
|
1417
1446
|
requestId: effect.Schema.String,
|
|
1418
1447
|
agentId: AgentId,
|
|
1419
1448
|
issueId: effect.Schema.optional(IssueId),
|
|
1449
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1420
1450
|
behavior: ClaudeChannelPermissionBehavior
|
|
1421
1451
|
})
|
|
1422
1452
|
});
|
|
@@ -1525,6 +1555,7 @@ const PlanningStartedEvent = effect.Schema.Struct({
|
|
|
1525
1555
|
timestamp: effect.Schema.String,
|
|
1526
1556
|
payload: effect.Schema.Struct({
|
|
1527
1557
|
issueId: IssueId,
|
|
1558
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1528
1559
|
sessionName: effect.Schema.String,
|
|
1529
1560
|
harness: effect.Schema.optional(effect.Schema.String)
|
|
1530
1561
|
})
|
|
@@ -1536,6 +1567,7 @@ const PlanningFailedEvent = effect.Schema.Struct({
|
|
|
1536
1567
|
timestamp: effect.Schema.String,
|
|
1537
1568
|
payload: effect.Schema.Struct({
|
|
1538
1569
|
issueId: IssueId,
|
|
1570
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1539
1571
|
error: effect.Schema.String
|
|
1540
1572
|
})
|
|
1541
1573
|
});
|
|
@@ -1546,6 +1578,7 @@ const PlanningSyncEvent = effect.Schema.Struct({
|
|
|
1546
1578
|
timestamp: effect.Schema.String,
|
|
1547
1579
|
payload: effect.Schema.Struct({
|
|
1548
1580
|
issueId: IssueId,
|
|
1581
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1549
1582
|
status: effect.Schema.String,
|
|
1550
1583
|
progress: effect.Schema.optional(effect.Schema.Number),
|
|
1551
1584
|
message: effect.Schema.optional(effect.Schema.String)
|
|
@@ -1558,6 +1591,7 @@ const PlanItemStatusChangedEvent = effect.Schema.Struct({
|
|
|
1558
1591
|
timestamp: effect.Schema.String,
|
|
1559
1592
|
payload: effect.Schema.Struct({
|
|
1560
1593
|
issueId: IssueId,
|
|
1594
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1561
1595
|
itemId: effect.Schema.String,
|
|
1562
1596
|
status: effect.Schema.String
|
|
1563
1597
|
})
|
|
@@ -1569,6 +1603,7 @@ const PlanSubitemStatusChangedEvent = effect.Schema.Struct({
|
|
|
1569
1603
|
timestamp: effect.Schema.String,
|
|
1570
1604
|
payload: effect.Schema.Struct({
|
|
1571
1605
|
issueId: IssueId,
|
|
1606
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1572
1607
|
itemId: effect.Schema.String,
|
|
1573
1608
|
subItemId: effect.Schema.String,
|
|
1574
1609
|
status: effect.Schema.String
|
|
@@ -1581,6 +1616,7 @@ const PlanItemsUnblockedEvent = effect.Schema.Struct({
|
|
|
1581
1616
|
timestamp: effect.Schema.String,
|
|
1582
1617
|
payload: effect.Schema.Struct({
|
|
1583
1618
|
issueId: IssueId,
|
|
1619
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1584
1620
|
items: effect.Schema.Array(effect.Schema.String)
|
|
1585
1621
|
})
|
|
1586
1622
|
});
|
|
@@ -1591,6 +1627,7 @@ const PipelineStatusChangedEvent = effect.Schema.Struct({
|
|
|
1591
1627
|
timestamp: effect.Schema.String,
|
|
1592
1628
|
payload: effect.Schema.Struct({
|
|
1593
1629
|
issueId: IssueId,
|
|
1630
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1594
1631
|
status: ReviewStatusSnapshot
|
|
1595
1632
|
})
|
|
1596
1633
|
});
|
|
@@ -1599,7 +1636,10 @@ const MergeReadyEvent = effect.Schema.Struct({
|
|
|
1599
1636
|
type: effect.Schema.Literal("merge.ready"),
|
|
1600
1637
|
sequence: SequenceNumber,
|
|
1601
1638
|
timestamp: effect.Schema.String,
|
|
1602
|
-
payload: effect.Schema.Struct({
|
|
1639
|
+
payload: effect.Schema.Struct({
|
|
1640
|
+
issueId: IssueId,
|
|
1641
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1642
|
+
})
|
|
1603
1643
|
});
|
|
1604
1644
|
/** New — review status changed */
|
|
1605
1645
|
const ReviewStatusChangedEvent = effect.Schema.Struct({
|
|
@@ -1608,6 +1648,7 @@ const ReviewStatusChangedEvent = effect.Schema.Struct({
|
|
|
1608
1648
|
timestamp: effect.Schema.String,
|
|
1609
1649
|
payload: effect.Schema.Struct({
|
|
1610
1650
|
issueId: IssueId,
|
|
1651
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1611
1652
|
status: ReviewStatusSnapshot
|
|
1612
1653
|
})
|
|
1613
1654
|
});
|
|
@@ -1616,7 +1657,10 @@ const PipelineReviewStartedEvent = effect.Schema.Struct({
|
|
|
1616
1657
|
type: effect.Schema.Literal("pipeline.review-started"),
|
|
1617
1658
|
sequence: SequenceNumber,
|
|
1618
1659
|
timestamp: effect.Schema.String,
|
|
1619
|
-
payload: effect.Schema.Struct({
|
|
1660
|
+
payload: effect.Schema.Struct({
|
|
1661
|
+
issueId: IssueId,
|
|
1662
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1663
|
+
})
|
|
1620
1664
|
});
|
|
1621
1665
|
/** New — review specialist finished (passed or failed) */
|
|
1622
1666
|
const PipelineReviewCompletedEvent = effect.Schema.Struct({
|
|
@@ -1625,6 +1669,7 @@ const PipelineReviewCompletedEvent = effect.Schema.Struct({
|
|
|
1625
1669
|
timestamp: effect.Schema.String,
|
|
1626
1670
|
payload: effect.Schema.Struct({
|
|
1627
1671
|
issueId: IssueId,
|
|
1672
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1628
1673
|
passed: effect.Schema.Boolean
|
|
1629
1674
|
})
|
|
1630
1675
|
});
|
|
@@ -1633,7 +1678,10 @@ const PipelineTestStartedEvent = effect.Schema.Struct({
|
|
|
1633
1678
|
type: effect.Schema.Literal("pipeline.test-started"),
|
|
1634
1679
|
sequence: SequenceNumber,
|
|
1635
1680
|
timestamp: effect.Schema.String,
|
|
1636
|
-
payload: effect.Schema.Struct({
|
|
1681
|
+
payload: effect.Schema.Struct({
|
|
1682
|
+
issueId: IssueId,
|
|
1683
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1684
|
+
})
|
|
1637
1685
|
});
|
|
1638
1686
|
/** New — test specialist finished (passed or failed) */
|
|
1639
1687
|
const PipelineTestCompletedEvent = effect.Schema.Struct({
|
|
@@ -1642,6 +1690,7 @@ const PipelineTestCompletedEvent = effect.Schema.Struct({
|
|
|
1642
1690
|
timestamp: effect.Schema.String,
|
|
1643
1691
|
payload: effect.Schema.Struct({
|
|
1644
1692
|
issueId: IssueId,
|
|
1693
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1645
1694
|
passed: effect.Schema.Boolean
|
|
1646
1695
|
})
|
|
1647
1696
|
});
|
|
@@ -1650,7 +1699,10 @@ const PipelineVerificationStartedEvent = effect.Schema.Struct({
|
|
|
1650
1699
|
type: effect.Schema.Literal("pipeline.verification-started"),
|
|
1651
1700
|
sequence: SequenceNumber,
|
|
1652
1701
|
timestamp: effect.Schema.String,
|
|
1653
|
-
payload: effect.Schema.Struct({
|
|
1702
|
+
payload: effect.Schema.Struct({
|
|
1703
|
+
issueId: IssueId,
|
|
1704
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1705
|
+
})
|
|
1654
1706
|
});
|
|
1655
1707
|
/** New — verification gate failed (carries failedCheck for gate failures, message for infra errors) */
|
|
1656
1708
|
const PipelineVerificationFailedEvent = effect.Schema.Struct({
|
|
@@ -1659,6 +1711,7 @@ const PipelineVerificationFailedEvent = effect.Schema.Struct({
|
|
|
1659
1711
|
timestamp: effect.Schema.String,
|
|
1660
1712
|
payload: effect.Schema.Struct({
|
|
1661
1713
|
issueId: IssueId,
|
|
1714
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1662
1715
|
failedCheck: effect.Schema.optional(effect.Schema.String),
|
|
1663
1716
|
message: effect.Schema.optional(effect.Schema.String)
|
|
1664
1717
|
})
|
|
@@ -1672,6 +1725,7 @@ const IssueTransitionedEvent = effect.Schema.Struct({
|
|
|
1672
1725
|
timestamp: effect.Schema.String,
|
|
1673
1726
|
payload: effect.Schema.Struct({
|
|
1674
1727
|
issueId: IssueId,
|
|
1728
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1675
1729
|
state: effect.Schema.String
|
|
1676
1730
|
})
|
|
1677
1731
|
});
|
|
@@ -1681,6 +1735,7 @@ const OperatorInterventionEvent = effect.Schema.Struct({
|
|
|
1681
1735
|
timestamp: effect.Schema.String,
|
|
1682
1736
|
payload: effect.Schema.Struct({
|
|
1683
1737
|
issueId: IssueId,
|
|
1738
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1684
1739
|
kind: effect.Schema.Literals([
|
|
1685
1740
|
"tell",
|
|
1686
1741
|
"pause",
|
|
@@ -1745,6 +1800,7 @@ const SubstrateBugFiledEvent = effect.Schema.Struct({
|
|
|
1745
1800
|
timestamp: effect.Schema.String,
|
|
1746
1801
|
payload: effect.Schema.Struct({
|
|
1747
1802
|
issueId: IssueId,
|
|
1803
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1748
1804
|
runId: effect.Schema.optional(effect.Schema.String),
|
|
1749
1805
|
filedBy: effect.Schema.Literals(["agent", "operator"]),
|
|
1750
1806
|
discoveredIn: effect.Schema.optional(IssueId),
|
|
@@ -1766,6 +1822,7 @@ const ReviewReviewerStartedEvent = effect.Schema.Struct({
|
|
|
1766
1822
|
timestamp: effect.Schema.String,
|
|
1767
1823
|
payload: effect.Schema.Struct({
|
|
1768
1824
|
issueId: IssueId,
|
|
1825
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1769
1826
|
role: effect.Schema.String,
|
|
1770
1827
|
sessionName: effect.Schema.String
|
|
1771
1828
|
})
|
|
@@ -1780,6 +1837,7 @@ const ReviewReviewerCompletedEvent = effect.Schema.Struct({
|
|
|
1780
1837
|
timestamp: effect.Schema.String,
|
|
1781
1838
|
payload: effect.Schema.Struct({
|
|
1782
1839
|
issueId: IssueId,
|
|
1840
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1783
1841
|
role: effect.Schema.String
|
|
1784
1842
|
})
|
|
1785
1843
|
});
|
|
@@ -1794,6 +1852,7 @@ const ReviewSpecialistTimedOutEvent = effect.Schema.Struct({
|
|
|
1794
1852
|
timestamp: effect.Schema.String,
|
|
1795
1853
|
payload: effect.Schema.Struct({
|
|
1796
1854
|
issueId: IssueId,
|
|
1855
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1797
1856
|
role: effect.Schema.String,
|
|
1798
1857
|
sessionName: effect.Schema.String,
|
|
1799
1858
|
attempt: effect.Schema.Number,
|
|
@@ -1812,6 +1871,7 @@ const ReviewCoordinatorStartedEvent = effect.Schema.Struct({
|
|
|
1812
1871
|
timestamp: effect.Schema.String,
|
|
1813
1872
|
payload: effect.Schema.Struct({
|
|
1814
1873
|
issueId: IssueId,
|
|
1874
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1815
1875
|
sessionName: effect.Schema.String
|
|
1816
1876
|
})
|
|
1817
1877
|
});
|
|
@@ -1822,10 +1882,62 @@ const ReviewCoordinatorDiedEvent = effect.Schema.Struct({
|
|
|
1822
1882
|
timestamp: effect.Schema.String,
|
|
1823
1883
|
payload: effect.Schema.Struct({
|
|
1824
1884
|
issueId: IssueId,
|
|
1885
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1825
1886
|
sessionName: effect.Schema.String,
|
|
1826
1887
|
reason: effect.Schema.String
|
|
1827
1888
|
})
|
|
1828
1889
|
});
|
|
1890
|
+
/** A terminal review verdict was rejected due to stale evidence. */
|
|
1891
|
+
const ReviewVerdictRejectedEvent = effect.Schema.Struct({
|
|
1892
|
+
type: effect.Schema.Literal("review.verdict_rejected"),
|
|
1893
|
+
sequence: SequenceNumber,
|
|
1894
|
+
timestamp: effect.Schema.String,
|
|
1895
|
+
payload: effect.Schema.Struct({
|
|
1896
|
+
issueId: IssueId,
|
|
1897
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1898
|
+
writer: effect.Schema.String,
|
|
1899
|
+
verdict: effect.Schema.String,
|
|
1900
|
+
evidenceHead: effect.Schema.String,
|
|
1901
|
+
rowHead: effect.Schema.String,
|
|
1902
|
+
reason: effect.Schema.String
|
|
1903
|
+
})
|
|
1904
|
+
});
|
|
1905
|
+
/** A terminal review verdict was landed and dispatched with a fresh evidence head. */
|
|
1906
|
+
const ReviewVerdictDispatchedEvent = effect.Schema.Struct({
|
|
1907
|
+
type: effect.Schema.Literal("review.verdict_dispatched"),
|
|
1908
|
+
sequence: SequenceNumber,
|
|
1909
|
+
timestamp: effect.Schema.String,
|
|
1910
|
+
payload: effect.Schema.Struct({
|
|
1911
|
+
issueId: IssueId,
|
|
1912
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1913
|
+
writer: effect.Schema.String,
|
|
1914
|
+
verdict: effect.Schema.String,
|
|
1915
|
+
evidenceHead: effect.Schema.String,
|
|
1916
|
+
rowHead: effect.Schema.String,
|
|
1917
|
+
classification: effect.Schema.String,
|
|
1918
|
+
testGateReset: effect.Schema.Boolean
|
|
1919
|
+
})
|
|
1920
|
+
});
|
|
1921
|
+
/**
|
|
1922
|
+
* A recovery path found a fresh verdict artifact but declined to restore it,
|
|
1923
|
+
* because the artifact's head evidence disagrees with the row's anchor. The
|
|
1924
|
+
* verdict is NOT lost silently — it is reported here so the operator can see a
|
|
1925
|
+
* finished review that recovery refused to write (PAN-3511).
|
|
1926
|
+
*/
|
|
1927
|
+
const ReviewVerdictRestoreBlockedEvent = effect.Schema.Struct({
|
|
1928
|
+
type: effect.Schema.Literal("review.verdict_restore_blocked"),
|
|
1929
|
+
sequence: SequenceNumber,
|
|
1930
|
+
timestamp: effect.Schema.String,
|
|
1931
|
+
payload: effect.Schema.Struct({
|
|
1932
|
+
issueId: IssueId,
|
|
1933
|
+
/** Recovery path that attempted the restore (orphan-reset, sweeper, …). */
|
|
1934
|
+
caller: effect.Schema.String,
|
|
1935
|
+
verdict: effect.Schema.String,
|
|
1936
|
+
artifactHead: effect.Schema.String,
|
|
1937
|
+
rowHead: effect.Schema.String,
|
|
1938
|
+
reason: effect.Schema.String
|
|
1939
|
+
})
|
|
1940
|
+
});
|
|
1829
1941
|
const SpecialistLifecycleState = effect.Schema.Literals([
|
|
1830
1942
|
"active",
|
|
1831
1943
|
"sleeping",
|
|
@@ -1851,7 +1963,8 @@ const SpecialistCompletedEvent = effect.Schema.Struct({
|
|
|
1851
1963
|
timestamp: effect.Schema.String,
|
|
1852
1964
|
payload: effect.Schema.Struct({
|
|
1853
1965
|
name: Role,
|
|
1854
|
-
issueId: effect.Schema.optional(IssueId)
|
|
1966
|
+
issueId: effect.Schema.optional(IssueId),
|
|
1967
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
1855
1968
|
})
|
|
1856
1969
|
});
|
|
1857
1970
|
/** New — role-backed specialist failed */
|
|
@@ -1862,6 +1975,7 @@ const SpecialistFailedEvent = effect.Schema.Struct({
|
|
|
1862
1975
|
payload: effect.Schema.Struct({
|
|
1863
1976
|
name: Role,
|
|
1864
1977
|
issueId: effect.Schema.optional(IssueId),
|
|
1978
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1865
1979
|
error: effect.Schema.String
|
|
1866
1980
|
})
|
|
1867
1981
|
});
|
|
@@ -1901,7 +2015,10 @@ const IssuesUpdatedEvent = effect.Schema.Struct({
|
|
|
1901
2015
|
type: effect.Schema.Literal("issues.updated"),
|
|
1902
2016
|
sequence: SequenceNumber,
|
|
1903
2017
|
timestamp: effect.Schema.String,
|
|
1904
|
-
payload: effect.Schema.Struct({
|
|
2018
|
+
payload: effect.Schema.Struct({
|
|
2019
|
+
issueId: effect.Schema.optional(IssueId),
|
|
2020
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
2021
|
+
})
|
|
1905
2022
|
});
|
|
1906
2023
|
/** Patch a single issue's status in the read model without a full snapshot refresh. */
|
|
1907
2024
|
const IssueStatusChangedEvent = effect.Schema.Struct({
|
|
@@ -1910,6 +2027,7 @@ const IssueStatusChangedEvent = effect.Schema.Struct({
|
|
|
1910
2027
|
timestamp: effect.Schema.String,
|
|
1911
2028
|
payload: effect.Schema.Struct({
|
|
1912
2029
|
issueId: IssueId,
|
|
2030
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1913
2031
|
status: effect.Schema.String,
|
|
1914
2032
|
canonicalStatus: effect.Schema.String,
|
|
1915
2033
|
labels: effect.Schema.optional(effect.Schema.Array(effect.Schema.String))
|
|
@@ -1942,6 +2060,7 @@ const ActivityEntryEvent = effect.Schema.Struct({
|
|
|
1942
2060
|
details: effect.Schema.optional(effect.Schema.String),
|
|
1943
2061
|
output: effect.Schema.optional(effect.Schema.String),
|
|
1944
2062
|
issueId: effect.Schema.optional(IssueId),
|
|
2063
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1945
2064
|
/** Dashboard route the feed navigates to on click (e.g. /conv/<name>, /flywheel). */
|
|
1946
2065
|
link: effect.Schema.optional(effect.Schema.String),
|
|
1947
2066
|
/** PAN-1862 (FR-12): fire a desktop notification for this entry (operator-facing warnings). */
|
|
@@ -1960,6 +2079,7 @@ const ActivityDetailedEvent = effect.Schema.Struct({
|
|
|
1960
2079
|
message: effect.Schema.String,
|
|
1961
2080
|
details: effect.Schema.optional(effect.Schema.String),
|
|
1962
2081
|
issueId: effect.Schema.optional(IssueId),
|
|
2082
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1963
2083
|
triggeringEvent: effect.Schema.optional(effect.Schema.String)
|
|
1964
2084
|
})
|
|
1965
2085
|
});
|
|
@@ -1973,6 +2093,7 @@ const ActivityTtsEvent = effect.Schema.Struct({
|
|
|
1973
2093
|
utterance: effect.Schema.String,
|
|
1974
2094
|
priority: effect.Schema.optional(effect.Schema.Number),
|
|
1975
2095
|
issueId: effect.Schema.optional(IssueId),
|
|
2096
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1976
2097
|
source: effect.Schema.optional(effect.Schema.String),
|
|
1977
2098
|
eventType: effect.Schema.optional(effect.Schema.String)
|
|
1978
2099
|
})
|
|
@@ -1985,6 +2106,7 @@ const DashboardLifecycleStartedEvent = effect.Schema.Struct({
|
|
|
1985
2106
|
payload: effect.Schema.Struct({
|
|
1986
2107
|
reason: effect.Schema.String,
|
|
1987
2108
|
issueId: effect.Schema.optional(IssueId),
|
|
2109
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1988
2110
|
trigger: effect.Schema.String
|
|
1989
2111
|
})
|
|
1990
2112
|
});
|
|
@@ -1996,6 +2118,7 @@ const DashboardLifecycleCompletedEvent = effect.Schema.Struct({
|
|
|
1996
2118
|
payload: effect.Schema.Struct({
|
|
1997
2119
|
reason: effect.Schema.String,
|
|
1998
2120
|
issueId: effect.Schema.optional(IssueId),
|
|
2121
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
1999
2122
|
durationMs: effect.Schema.Number
|
|
2000
2123
|
})
|
|
2001
2124
|
});
|
|
@@ -2007,6 +2130,7 @@ const DashboardLifecycleFailedEvent = effect.Schema.Struct({
|
|
|
2007
2130
|
payload: effect.Schema.Struct({
|
|
2008
2131
|
reason: effect.Schema.String,
|
|
2009
2132
|
issueId: effect.Schema.optional(IssueId),
|
|
2133
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2010
2134
|
error: effect.Schema.String
|
|
2011
2135
|
})
|
|
2012
2136
|
});
|
|
@@ -2017,6 +2141,7 @@ const ShadowInferenceUpdateEvent = effect.Schema.Struct({
|
|
|
2017
2141
|
timestamp: effect.Schema.String,
|
|
2018
2142
|
payload: effect.Schema.Struct({
|
|
2019
2143
|
issueId: IssueId,
|
|
2144
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2020
2145
|
content: effect.Schema.String
|
|
2021
2146
|
})
|
|
2022
2147
|
});
|
|
@@ -2027,6 +2152,7 @@ const WorkspaceCreatedEvent = effect.Schema.Struct({
|
|
|
2027
2152
|
timestamp: effect.Schema.String,
|
|
2028
2153
|
payload: effect.Schema.Struct({
|
|
2029
2154
|
issueId: IssueId,
|
|
2155
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2030
2156
|
workspacePath: effect.Schema.String
|
|
2031
2157
|
})
|
|
2032
2158
|
});
|
|
@@ -2035,21 +2161,30 @@ const WorkspaceWipeStartedEvent = effect.Schema.Struct({
|
|
|
2035
2161
|
type: effect.Schema.Literal("workspace.wipe_started"),
|
|
2036
2162
|
sequence: SequenceNumber,
|
|
2037
2163
|
timestamp: effect.Schema.String,
|
|
2038
|
-
payload: effect.Schema.Struct({
|
|
2164
|
+
payload: effect.Schema.Struct({
|
|
2165
|
+
issueId: IssueId,
|
|
2166
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
2167
|
+
})
|
|
2039
2168
|
});
|
|
2040
2169
|
/** New — deep-wipe completed, workspace fully destroyed */
|
|
2041
2170
|
const WorkspaceDestroyedEvent = effect.Schema.Struct({
|
|
2042
2171
|
type: effect.Schema.Literal("workspace.destroyed"),
|
|
2043
2172
|
sequence: SequenceNumber,
|
|
2044
2173
|
timestamp: effect.Schema.String,
|
|
2045
|
-
payload: effect.Schema.Struct({
|
|
2174
|
+
payload: effect.Schema.Struct({
|
|
2175
|
+
issueId: IssueId,
|
|
2176
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
2177
|
+
})
|
|
2046
2178
|
});
|
|
2047
2179
|
/** New — cleanup-workspace completed, workspace directory removed */
|
|
2048
2180
|
const WorkspaceDeletedEvent = effect.Schema.Struct({
|
|
2049
2181
|
type: effect.Schema.Literal("workspace.deleted"),
|
|
2050
2182
|
sequence: SequenceNumber,
|
|
2051
2183
|
timestamp: effect.Schema.String,
|
|
2052
|
-
payload: effect.Schema.Struct({
|
|
2184
|
+
payload: effect.Schema.Struct({
|
|
2185
|
+
issueId: IssueId,
|
|
2186
|
+
workspaceId: effect.Schema.optional(effect.Schema.String)
|
|
2187
|
+
})
|
|
2053
2188
|
});
|
|
2054
2189
|
/** New — planning aborted, workspace returned to idle state */
|
|
2055
2190
|
const WorkspaceAbortedEvent = effect.Schema.Struct({
|
|
@@ -2058,6 +2193,7 @@ const WorkspaceAbortedEvent = effect.Schema.Struct({
|
|
|
2058
2193
|
timestamp: effect.Schema.String,
|
|
2059
2194
|
payload: effect.Schema.Struct({
|
|
2060
2195
|
issueId: IssueId,
|
|
2196
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2061
2197
|
sessionName: effect.Schema.optional(effect.Schema.String)
|
|
2062
2198
|
})
|
|
2063
2199
|
});
|
|
@@ -2107,6 +2243,7 @@ const MemoryHealthChangedEvent = effect.Schema.Struct({
|
|
|
2107
2243
|
payload: effect.Schema.Struct({
|
|
2108
2244
|
projectId: effect.Schema.String,
|
|
2109
2245
|
issueId: IssueId,
|
|
2246
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2110
2247
|
status: effect.Schema.Literals([
|
|
2111
2248
|
"healthy",
|
|
2112
2249
|
"degraded",
|
|
@@ -2125,6 +2262,7 @@ const CostEventRecordedEvent = effect.Schema.Struct({
|
|
|
2125
2262
|
payload: effect.Schema.Struct({
|
|
2126
2263
|
agentId: AgentId,
|
|
2127
2264
|
issueId: IssueId,
|
|
2265
|
+
workspaceId: effect.Schema.optional(effect.Schema.String),
|
|
2128
2266
|
cost: effect.Schema.Number,
|
|
2129
2267
|
inputTokens: effect.Schema.Number,
|
|
2130
2268
|
outputTokens: effect.Schema.Number
|
|
@@ -2148,6 +2286,18 @@ const ConversationCreatedEvent = effect.Schema.Struct({
|
|
|
2148
2286
|
timestamp: effect.Schema.String,
|
|
2149
2287
|
payload: effect.Schema.Struct({ conversationName: effect.Schema.String })
|
|
2150
2288
|
});
|
|
2289
|
+
/** Emitted (in-memory only, not persisted) when a conversation's project
|
|
2290
|
+
* assignment override changes, so the sidebar can re-group it live instead of
|
|
2291
|
+
* waiting for its poll tick. */
|
|
2292
|
+
const ConversationMovedEvent = effect.Schema.Struct({
|
|
2293
|
+
type: effect.Schema.Literal("conversation.moved"),
|
|
2294
|
+
sequence: SequenceNumber,
|
|
2295
|
+
timestamp: effect.Schema.String,
|
|
2296
|
+
payload: effect.Schema.Struct({
|
|
2297
|
+
conversationName: effect.Schema.String,
|
|
2298
|
+
projectKey: effect.Schema.String
|
|
2299
|
+
})
|
|
2300
|
+
});
|
|
2151
2301
|
/** Emitted (in-memory only) when a conversation title changes, so the sidebar
|
|
2152
2302
|
* list can refresh immediately instead of waiting for its poll tick. */
|
|
2153
2303
|
const ConversationTitleChangedEvent = effect.Schema.Struct({
|
|
@@ -2248,6 +2398,45 @@ const EmbedProgressEvent = effect.Schema.Struct({
|
|
|
2248
2398
|
error: effect.Schema.optional(effect.Schema.String)
|
|
2249
2399
|
})
|
|
2250
2400
|
});
|
|
2401
|
+
/** The parked population changed — carries the full new population (compact rows). */
|
|
2402
|
+
const SweepScanEvent = effect.Schema.Struct({
|
|
2403
|
+
type: effect.Schema.Literal("sweep.scan"),
|
|
2404
|
+
sequence: SequenceNumber,
|
|
2405
|
+
timestamp: effect.Schema.String,
|
|
2406
|
+
payload: effect.Schema.Struct({
|
|
2407
|
+
issueCount: effect.Schema.Number,
|
|
2408
|
+
rowCount: effect.Schema.Number,
|
|
2409
|
+
rows: effect.Schema.Array(effect.Schema.Struct({
|
|
2410
|
+
issueId: effect.Schema.String,
|
|
2411
|
+
orbit: effect.Schema.String,
|
|
2412
|
+
parkedAt: effect.Schema.String
|
|
2413
|
+
}))
|
|
2414
|
+
})
|
|
2415
|
+
});
|
|
2416
|
+
/** A parked row was (re-)surfaced to the operator — gates respected, TTL re-surface, or exhaustion. */
|
|
2417
|
+
const SweepEscalatedEvent = effect.Schema.Struct({
|
|
2418
|
+
type: effect.Schema.Literal("sweep.escalated"),
|
|
2419
|
+
sequence: SequenceNumber,
|
|
2420
|
+
timestamp: effect.Schema.String,
|
|
2421
|
+
payload: effect.Schema.Struct({
|
|
2422
|
+
issueId: effect.Schema.String,
|
|
2423
|
+
orbit: effect.Schema.String,
|
|
2424
|
+
reason: effect.Schema.String
|
|
2425
|
+
})
|
|
2426
|
+
});
|
|
2427
|
+
/** The sweeper recommended a remedy for a parked row (observability-only — never an action, PAN-3551). */
|
|
2428
|
+
const SweepRecommendationEvent = effect.Schema.Struct({
|
|
2429
|
+
type: effect.Schema.Literal("sweep.recommendation"),
|
|
2430
|
+
sequence: SequenceNumber,
|
|
2431
|
+
timestamp: effect.Schema.String,
|
|
2432
|
+
payload: effect.Schema.Struct({
|
|
2433
|
+
issueId: effect.Schema.String,
|
|
2434
|
+
orbit: effect.Schema.String,
|
|
2435
|
+
recommendation: effect.Schema.String,
|
|
2436
|
+
recurring: effect.Schema.optional(effect.Schema.Boolean),
|
|
2437
|
+
agentId: effect.Schema.optional(effect.Schema.String)
|
|
2438
|
+
})
|
|
2439
|
+
});
|
|
2251
2440
|
/** All domain events — the shape streamed via subscribeDomainEvents RPC */
|
|
2252
2441
|
const DomainEvent = effect.Schema.Union([
|
|
2253
2442
|
SystemHeartbeatEvent,
|
|
@@ -2264,6 +2453,7 @@ const DomainEvent = effect.Schema.Union([
|
|
|
2264
2453
|
AgentStatusChangedEvent,
|
|
2265
2454
|
AgentOutputReceivedEvent,
|
|
2266
2455
|
AgentActivityChangedEvent,
|
|
2456
|
+
AgentHookFiredEvent,
|
|
2267
2457
|
AgentThinkingStartedEvent,
|
|
2268
2458
|
AgentThinkingStoppedEvent,
|
|
2269
2459
|
AgentWaitingStartedEvent,
|
|
@@ -2305,6 +2495,9 @@ const DomainEvent = effect.Schema.Union([
|
|
|
2305
2495
|
ReviewSpecialistTimedOutEvent,
|
|
2306
2496
|
ReviewCoordinatorStartedEvent,
|
|
2307
2497
|
ReviewCoordinatorDiedEvent,
|
|
2498
|
+
ReviewVerdictRejectedEvent,
|
|
2499
|
+
ReviewVerdictDispatchedEvent,
|
|
2500
|
+
ReviewVerdictRestoreBlockedEvent,
|
|
2308
2501
|
SpecialistStartedEvent,
|
|
2309
2502
|
SpecialistCompletedEvent,
|
|
2310
2503
|
SpecialistFailedEvent,
|
|
@@ -2334,6 +2527,7 @@ const DomainEvent = effect.Schema.Union([
|
|
|
2334
2527
|
DashboardLifecycleFailedEvent,
|
|
2335
2528
|
ConversationCompactingChangedEvent,
|
|
2336
2529
|
ConversationCreatedEvent,
|
|
2530
|
+
ConversationMovedEvent,
|
|
2337
2531
|
ConversationTitleChangedEvent,
|
|
2338
2532
|
ConversationPermissionChangedEvent,
|
|
2339
2533
|
ScanStartedEvent,
|
|
@@ -2341,7 +2535,10 @@ const DomainEvent = effect.Schema.Union([
|
|
|
2341
2535
|
ScanCompleteEvent,
|
|
2342
2536
|
EnrichProgressEvent,
|
|
2343
2537
|
EnrichCompleteEvent,
|
|
2344
|
-
EmbedProgressEvent
|
|
2538
|
+
EmbedProgressEvent,
|
|
2539
|
+
SweepScanEvent,
|
|
2540
|
+
SweepEscalatedEvent,
|
|
2541
|
+
SweepRecommendationEvent
|
|
2345
2542
|
]);
|
|
2346
2543
|
//#endregion
|
|
2347
2544
|
//#region src/editor.ts
|
|
@@ -2516,7 +2713,8 @@ const FlywheelHarness = effect.Schema.Literals([
|
|
|
2516
2713
|
"pi",
|
|
2517
2714
|
"ohmypi",
|
|
2518
2715
|
"codex",
|
|
2519
|
-
"acp"
|
|
2716
|
+
"acp",
|
|
2717
|
+
"kimi-code"
|
|
2520
2718
|
]);
|
|
2521
2719
|
const FlywheelEffort = effect.Schema.Literals([
|
|
2522
2720
|
"low",
|
|
@@ -2709,6 +2907,8 @@ const WS_METHODS = {
|
|
|
2709
2907
|
replayEvents: "pan.replayEvents",
|
|
2710
2908
|
getWorkspaceDetail: "pan.getWorkspaceDetail",
|
|
2711
2909
|
readWorkspaceFile: "pan.readWorkspaceFile",
|
|
2910
|
+
readFileAtPath: "pan.readFileAtPath",
|
|
2911
|
+
writeFileAtPath: "pan.writeFileAtPath",
|
|
2712
2912
|
resolveFilePathExists: "pan.resolveFilePathExists",
|
|
2713
2913
|
terminalOpen: "pan.terminalOpen",
|
|
2714
2914
|
terminalWrite: "pan.terminalWrite",
|
|
@@ -2854,12 +3054,17 @@ const SessionTreeDelta = effect.Schema.Struct({
|
|
|
2854
3054
|
"session_added",
|
|
2855
3055
|
"session_removed",
|
|
2856
3056
|
"presence_changed",
|
|
2857
|
-
"status_changed"
|
|
3057
|
+
"status_changed",
|
|
3058
|
+
"pending_input_changed"
|
|
2858
3059
|
]),
|
|
2859
3060
|
issueId: effect.Schema.String,
|
|
2860
3061
|
sessionId: effect.Schema.String,
|
|
2861
3062
|
presence: effect.Schema.optional(SessionNodePresence),
|
|
2862
3063
|
status: effect.Schema.optional(AgentStatus),
|
|
3064
|
+
awaitingInput: effect.Schema.optional(effect.Schema.Boolean),
|
|
3065
|
+
awaitingInputPrompt: effect.Schema.optional(effect.Schema.String),
|
|
3066
|
+
awaitingInputReason: effect.Schema.optional(effect.Schema.String),
|
|
3067
|
+
pendingInputKinds: effect.Schema.optional(effect.Schema.Array(effect.Schema.String)),
|
|
2863
3068
|
timestamp: effect.Schema.String
|
|
2864
3069
|
});
|
|
2865
3070
|
/** 1. Subscribe to the live domain event stream (stream) */
|
|
@@ -2960,6 +3165,44 @@ const ReadWorkspaceFileRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.readWorkspa
|
|
|
2960
3165
|
success: ReadWorkspaceFileResult,
|
|
2961
3166
|
error: PanRpcError
|
|
2962
3167
|
});
|
|
3168
|
+
const ReadFileAtPathInput = effect.Schema.Struct({ path: effect.Schema.String });
|
|
3169
|
+
const ReadFileAtPathResult = effect.Schema.Struct({
|
|
3170
|
+
text: effect.Schema.String,
|
|
3171
|
+
lang: effect.Schema.String,
|
|
3172
|
+
mtimeMs: effect.Schema.Number,
|
|
3173
|
+
totalLines: effect.Schema.Number
|
|
3174
|
+
});
|
|
3175
|
+
/**
|
|
3176
|
+
* 10b-2. Read an allowlisted markdown file by absolute path (PAN-3260).
|
|
3177
|
+
*
|
|
3178
|
+
* Unlike ReadWorkspaceFileRpc this takes no issueId — the internal markdown
|
|
3179
|
+
* editor pane opens files reached from surfaces with no workspace context
|
|
3180
|
+
* (e.g. a repo-root file chip inside a conversation). The server validates
|
|
3181
|
+
* `path` against registered project roots + OVERDECK_HOME before reading.
|
|
3182
|
+
*/
|
|
3183
|
+
const ReadFileAtPathRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.readFileAtPath, {
|
|
3184
|
+
payload: ReadFileAtPathInput,
|
|
3185
|
+
success: ReadFileAtPathResult,
|
|
3186
|
+
error: PanRpcError
|
|
3187
|
+
});
|
|
3188
|
+
const WriteFileAtPathInput = effect.Schema.Struct({
|
|
3189
|
+
path: effect.Schema.String,
|
|
3190
|
+
content: effect.Schema.String,
|
|
3191
|
+
expectedMtimeMs: effect.Schema.optional(effect.Schema.Number)
|
|
3192
|
+
});
|
|
3193
|
+
const WriteFileAtPathResult = effect.Schema.Struct({ mtimeMs: effect.Schema.Number });
|
|
3194
|
+
/**
|
|
3195
|
+
* 10b-3. Write an allowlisted markdown file by absolute path (PAN-3260).
|
|
3196
|
+
*
|
|
3197
|
+
* `expectedMtimeMs` enables optimistic concurrency: a stale value is
|
|
3198
|
+
* rejected with a PanRpcError code of WRITE_CONFLICT and nothing is
|
|
3199
|
+
* written. Omitting it (e.g. an explicit Overwrite action) skips the check.
|
|
3200
|
+
*/
|
|
3201
|
+
const WriteFileAtPathRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.writeFileAtPath, {
|
|
3202
|
+
payload: WriteFileAtPathInput,
|
|
3203
|
+
success: WriteFileAtPathResult,
|
|
3204
|
+
error: PanRpcError
|
|
3205
|
+
});
|
|
2963
3206
|
/**
|
|
2964
3207
|
* 10c. Resolve whether a file path candidate exists on disk (PAN-1457).
|
|
2965
3208
|
*
|
|
@@ -2977,7 +3220,7 @@ const ReadWorkspaceFileRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.readWorkspa
|
|
|
2977
3220
|
* chat happens outside any single workspace.
|
|
2978
3221
|
*/
|
|
2979
3222
|
const ResolveFilePathExistsInput = effect.Schema.Struct({
|
|
2980
|
-
cwd: effect.Schema.String,
|
|
3223
|
+
cwd: effect.Schema.optional(effect.Schema.String),
|
|
2981
3224
|
path: effect.Schema.String
|
|
2982
3225
|
});
|
|
2983
3226
|
const ResolveFilePathExistsResult = effect.Schema.Struct({
|
|
@@ -3234,7 +3477,7 @@ const GetConversationStatsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.getConve
|
|
|
3234
3477
|
error: PanRpcError
|
|
3235
3478
|
});
|
|
3236
3479
|
/** 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);
|
|
3480
|
+
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
3481
|
//#endregion
|
|
3239
3482
|
//#region src/event-reducers.ts
|
|
3240
3483
|
const INITIAL_READ_MODEL_STATE = {
|
|
@@ -3891,7 +4134,8 @@ function applyEvent(state, event) {
|
|
|
3891
4134
|
};
|
|
3892
4135
|
case "memory.observation_created": {
|
|
3893
4136
|
const observation = event.payload.observation;
|
|
3894
|
-
const
|
|
4137
|
+
const observationKey = observation.issueId ?? observation.workspaceId;
|
|
4138
|
+
const existing = state.observationsByIssueId[observationKey] ?? [];
|
|
3895
4139
|
const index = existing.findIndex((entry) => entry.id === observation.id);
|
|
3896
4140
|
const updated = trimMemoryObservations(index === -1 ? [...existing, observation] : existing.map((entry, entryIndex) => entryIndex === index ? observation : entry));
|
|
3897
4141
|
return {
|
|
@@ -3899,7 +4143,7 @@ function applyEvent(state, event) {
|
|
|
3899
4143
|
sequence: Math.max(state.sequence, event.sequence),
|
|
3900
4144
|
observationsByIssueId: {
|
|
3901
4145
|
...state.observationsByIssueId,
|
|
3902
|
-
[
|
|
4146
|
+
[observationKey]: updated
|
|
3903
4147
|
}
|
|
3904
4148
|
};
|
|
3905
4149
|
}
|
|
@@ -3968,6 +4212,10 @@ function applyEvent(state, event) {
|
|
|
3968
4212
|
}
|
|
3969
4213
|
};
|
|
3970
4214
|
}
|
|
4215
|
+
case "agent.hook_fired": return {
|
|
4216
|
+
...state,
|
|
4217
|
+
sequence: Math.max(state.sequence, event.sequence)
|
|
4218
|
+
};
|
|
3971
4219
|
case "agent.activity_changed": {
|
|
3972
4220
|
const { agentId, activity, currentTool } = event.payload;
|
|
3973
4221
|
const prev = state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence);
|
|
@@ -4425,6 +4673,10 @@ function applyEvent(state, event) {
|
|
|
4425
4673
|
...state,
|
|
4426
4674
|
conversationsListRevision: state.conversationsListRevision + 1
|
|
4427
4675
|
};
|
|
4676
|
+
case "conversation.moved": return {
|
|
4677
|
+
...state,
|
|
4678
|
+
conversationsListRevision: state.conversationsListRevision + 1
|
|
4679
|
+
};
|
|
4428
4680
|
case "conversation.title_changed": return {
|
|
4429
4681
|
...state,
|
|
4430
4682
|
conversationsListRevision: state.conversationsListRevision + 1
|
|
@@ -4666,7 +4918,8 @@ const CONTEXT_PREVIEW_HARNESSES = [
|
|
|
4666
4918
|
"claude-code",
|
|
4667
4919
|
"ohmypi",
|
|
4668
4920
|
"codex",
|
|
4669
|
-
"acp"
|
|
4921
|
+
"acp",
|
|
4922
|
+
"kimi-code"
|
|
4670
4923
|
];
|
|
4671
4924
|
const ContextLayerKind = effect.Schema.Literals(CONTEXT_LAYER_KINDS);
|
|
4672
4925
|
const ContextPreviewHarness = effect.Schema.Literals(CONTEXT_PREVIEW_HARNESSES);
|
|
@@ -4774,6 +5027,7 @@ const ContextHarnessPreviews = effect.Schema.Struct({
|
|
|
4774
5027
|
ohmypi: effect.Schema.String,
|
|
4775
5028
|
codex: effect.Schema.String,
|
|
4776
5029
|
acp: effect.Schema.String,
|
|
5030
|
+
"kimi-code": effect.Schema.String,
|
|
4777
5031
|
fullPrompt: effect.Schema.String
|
|
4778
5032
|
});
|
|
4779
5033
|
const ContextPreviewDiagnostic = effect.Schema.Struct({
|
|
@@ -4829,6 +5083,7 @@ const ArtifactAgentHarness = effect.Schema.Literals([
|
|
|
4829
5083
|
"ohmypi",
|
|
4830
5084
|
"codex",
|
|
4831
5085
|
"acp",
|
|
5086
|
+
"kimi-code",
|
|
4832
5087
|
"user"
|
|
4833
5088
|
]);
|
|
4834
5089
|
const ArtifactLifecycleState = effect.Schema.Literals([
|
|
@@ -5062,16 +5317,40 @@ const ACP_BEHAVIOR = {
|
|
|
5062
5317
|
workAgentMode: "acp-host",
|
|
5063
5318
|
readyTimeoutSeconds: 30
|
|
5064
5319
|
};
|
|
5320
|
+
const KIMI_CODE_BEHAVIOR = {
|
|
5321
|
+
displayName: "Kimi Code",
|
|
5322
|
+
nativeCommands: [],
|
|
5323
|
+
executableName: "kimi",
|
|
5324
|
+
processNames: ["kimi"],
|
|
5325
|
+
launchCommandKind: "kimi-code-tui",
|
|
5326
|
+
deliveryKind: "pty-supervisor",
|
|
5327
|
+
readinessKind: "kimi-session-signal",
|
|
5328
|
+
transcriptKind: "kimi-wire-jsonl",
|
|
5329
|
+
sessionIdSource: "kimi-session-newest",
|
|
5330
|
+
contextLayerKind: "kimi-code",
|
|
5331
|
+
feedKind: "kimi_code",
|
|
5332
|
+
supportsPtySupervisor: true,
|
|
5333
|
+
supportsChannelsBridge: false,
|
|
5334
|
+
supportsConversationStreaming: true,
|
|
5335
|
+
supportsPatchProjection: false,
|
|
5336
|
+
usesRpcFifo: false,
|
|
5337
|
+
usesCodexHome: false,
|
|
5338
|
+
injectsPromptTimeMemory: false,
|
|
5339
|
+
workAgentMode: "kimi-code-tui",
|
|
5340
|
+
readyTimeoutSeconds: 60
|
|
5341
|
+
};
|
|
5065
5342
|
const BEHAVIORS = {
|
|
5066
5343
|
"claude-code": CLAUDE_CODE_BEHAVIOR,
|
|
5067
5344
|
ohmypi: OHMYPI_BEHAVIOR,
|
|
5068
5345
|
codex: CODEX_BEHAVIOR,
|
|
5069
|
-
acp: ACP_BEHAVIOR
|
|
5346
|
+
acp: ACP_BEHAVIOR,
|
|
5347
|
+
"kimi-code": KIMI_CODE_BEHAVIOR
|
|
5070
5348
|
};
|
|
5071
5349
|
function getHarnessBehavior(harness) {
|
|
5072
5350
|
if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
|
|
5073
5351
|
if (harness === "codex") return CODEX_BEHAVIOR;
|
|
5074
5352
|
if (harness === "acp") return ACP_BEHAVIOR;
|
|
5353
|
+
if (harness === "kimi-code") return KIMI_CODE_BEHAVIOR;
|
|
5075
5354
|
return CLAUDE_CODE_BEHAVIOR;
|
|
5076
5355
|
}
|
|
5077
5356
|
function getRuntimeBehavior(runtime) {
|
|
@@ -5285,7 +5564,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
5285
5564
|
"god-view",
|
|
5286
5565
|
"deacon",
|
|
5287
5566
|
"sessions",
|
|
5288
|
-
"awaiting-merge"
|
|
5567
|
+
"awaiting-merge",
|
|
5568
|
+
"workspace"
|
|
5289
5569
|
],
|
|
5290
5570
|
decision_subject: ["agent", "conversation"],
|
|
5291
5571
|
duration_bucket: [
|
|
@@ -5304,7 +5584,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
5304
5584
|
"claude-code",
|
|
5305
5585
|
"ohmypi",
|
|
5306
5586
|
"codex",
|
|
5307
|
-
"acp"
|
|
5587
|
+
"acp",
|
|
5588
|
+
"kimi-code"
|
|
5308
5589
|
],
|
|
5309
5590
|
merge_kind: ["pipeline"],
|
|
5310
5591
|
model_family: [
|
|
@@ -5818,29 +6099,11 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
5818
6099
|
"aliases": [],
|
|
5819
6100
|
"category": "Review"
|
|
5820
6101
|
},
|
|
5821
|
-
{
|
|
5822
|
-
"id": "pan-review-scope",
|
|
5823
|
-
"path": ["review", "scope"],
|
|
5824
|
-
"display": "/pan review scope",
|
|
5825
|
-
"description": "Set per-issue re-review scope (all, changed, or blockers) — which convoy reviewers re-run (PAN-1874)",
|
|
5826
|
-
"args": [{
|
|
5827
|
-
"name": "id",
|
|
5828
|
-
"required": true,
|
|
5829
|
-
"variadic": false
|
|
5830
|
-
}, {
|
|
5831
|
-
"name": "scope",
|
|
5832
|
-
"required": true,
|
|
5833
|
-
"variadic": false
|
|
5834
|
-
}],
|
|
5835
|
-
"options": [],
|
|
5836
|
-
"aliases": [],
|
|
5837
|
-
"category": "Review"
|
|
5838
|
-
},
|
|
5839
6102
|
{
|
|
5840
6103
|
"id": "pan-review-restart",
|
|
5841
6104
|
"path": ["review", "restart"],
|
|
5842
6105
|
"display": "/pan review restart",
|
|
5843
|
-
"description": "
|
|
6106
|
+
"description": "Resume review and re-dispatch reviewers missing a report",
|
|
5844
6107
|
"args": [{
|
|
5845
6108
|
"name": "id",
|
|
5846
6109
|
"required": true,
|
|
@@ -5965,7 +6228,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
5965
6228
|
},
|
|
5966
6229
|
{
|
|
5967
6230
|
"flags": "--harness <harness>",
|
|
5968
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
|
|
6231
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
|
|
5969
6232
|
"required": true,
|
|
5970
6233
|
"valueHint": "harness"
|
|
5971
6234
|
},
|
|
@@ -6069,6 +6332,24 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6069
6332
|
"aliases": [],
|
|
6070
6333
|
"category": "Lifecycle"
|
|
6071
6334
|
},
|
|
6335
|
+
{
|
|
6336
|
+
"id": "pan-answer",
|
|
6337
|
+
"path": ["answer"],
|
|
6338
|
+
"display": "/pan answer",
|
|
6339
|
+
"description": "Show a pending pane choice, or answer its numbered option",
|
|
6340
|
+
"args": [{
|
|
6341
|
+
"name": "id",
|
|
6342
|
+
"required": true,
|
|
6343
|
+
"variadic": false
|
|
6344
|
+
}, {
|
|
6345
|
+
"name": "option",
|
|
6346
|
+
"required": false,
|
|
6347
|
+
"variadic": false
|
|
6348
|
+
}],
|
|
6349
|
+
"options": [],
|
|
6350
|
+
"aliases": [],
|
|
6351
|
+
"category": "CLI"
|
|
6352
|
+
},
|
|
6072
6353
|
{
|
|
6073
6354
|
"id": "pan-monitor",
|
|
6074
6355
|
"path": ["monitor"],
|
|
@@ -6140,6 +6421,20 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6140
6421
|
"aliases": [],
|
|
6141
6422
|
"category": "Lifecycle"
|
|
6142
6423
|
},
|
|
6424
|
+
{
|
|
6425
|
+
"id": "pan-reset-session",
|
|
6426
|
+
"path": ["reset-session"],
|
|
6427
|
+
"display": "/pan reset-session",
|
|
6428
|
+
"description": "Clear saved session pointers so the next start creates a fresh session",
|
|
6429
|
+
"args": [{
|
|
6430
|
+
"name": "id",
|
|
6431
|
+
"required": true,
|
|
6432
|
+
"variadic": false
|
|
6433
|
+
}],
|
|
6434
|
+
"options": [],
|
|
6435
|
+
"aliases": [],
|
|
6436
|
+
"category": "Lifecycle"
|
|
6437
|
+
},
|
|
6143
6438
|
{
|
|
6144
6439
|
"id": "pan-pause",
|
|
6145
6440
|
"path": ["pause"],
|
|
@@ -6187,6 +6482,20 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6187
6482
|
"aliases": [],
|
|
6188
6483
|
"category": "Lifecycle"
|
|
6189
6484
|
},
|
|
6485
|
+
{
|
|
6486
|
+
"id": "pan-unstick",
|
|
6487
|
+
"path": ["unstick"],
|
|
6488
|
+
"display": "/pan unstick",
|
|
6489
|
+
"description": "Clear an issue stuck gate without resetting a merged lifecycle",
|
|
6490
|
+
"args": [{
|
|
6491
|
+
"name": "id",
|
|
6492
|
+
"required": true,
|
|
6493
|
+
"variadic": false
|
|
6494
|
+
}],
|
|
6495
|
+
"options": [],
|
|
6496
|
+
"aliases": [],
|
|
6497
|
+
"category": "CLI"
|
|
6498
|
+
},
|
|
6190
6499
|
{
|
|
6191
6500
|
"id": "pan-fork",
|
|
6192
6501
|
"path": ["fork"],
|
|
@@ -6210,6 +6519,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6210
6519
|
"required": true,
|
|
6211
6520
|
"valueHint": "path"
|
|
6212
6521
|
},
|
|
6522
|
+
{
|
|
6523
|
+
"flags": "--project <key>",
|
|
6524
|
+
"description": "Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project",
|
|
6525
|
+
"required": true,
|
|
6526
|
+
"valueHint": "key"
|
|
6527
|
+
},
|
|
6213
6528
|
{
|
|
6214
6529
|
"flags": "--plain",
|
|
6215
6530
|
"description": "Skip summary generation and copy raw conversation history",
|
|
@@ -6253,6 +6568,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6253
6568
|
"required": true,
|
|
6254
6569
|
"valueHint": "path"
|
|
6255
6570
|
},
|
|
6571
|
+
{
|
|
6572
|
+
"flags": "--project <key>",
|
|
6573
|
+
"description": "Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project",
|
|
6574
|
+
"required": true,
|
|
6575
|
+
"valueHint": "key"
|
|
6576
|
+
},
|
|
6256
6577
|
{
|
|
6257
6578
|
"flags": "--issue <id>",
|
|
6258
6579
|
"description": "Issue ID to associate with the new conversation",
|
|
@@ -6571,9 +6892,15 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6571
6892
|
"required": false,
|
|
6572
6893
|
"valueHint": null
|
|
6573
6894
|
},
|
|
6895
|
+
{
|
|
6896
|
+
"flags": "--accept-ship",
|
|
6897
|
+
"description": "Accept a missed DoD row 7 (Version strings propagated) — recorded as an explicit override in the close-out record",
|
|
6898
|
+
"required": false,
|
|
6899
|
+
"valueHint": null
|
|
6900
|
+
},
|
|
6574
6901
|
{
|
|
6575
6902
|
"flags": "--accept-deploy",
|
|
6576
|
-
"description": "Accept a missed DoD row
|
|
6903
|
+
"description": "Accept a missed DoD row 8 (Deployed) — recorded as an explicit override in the close-out record",
|
|
6577
6904
|
"required": false,
|
|
6578
6905
|
"valueHint": null
|
|
6579
6906
|
},
|
|
@@ -6582,6 +6909,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6582
6909
|
"description": "Record an abandoned disposition (PAN-3211): skip the DoD gate and close without landing evidence. Operator-conversation only; cannot be combined with --accept-* flags",
|
|
6583
6910
|
"required": true,
|
|
6584
6911
|
"valueHint": "reason"
|
|
6912
|
+
},
|
|
6913
|
+
{
|
|
6914
|
+
"flags": "--residue <reason>",
|
|
6915
|
+
"description": "Record a residue disposition (PAN-3396): close stale convention PRs/MRs, skip the DoD gate with verified evidence, and mark terminal without merge claim. Operator-conversation only; cannot be combined with --abandon or --accept-* flags",
|
|
6916
|
+
"required": true,
|
|
6917
|
+
"valueHint": "reason"
|
|
6585
6918
|
}
|
|
6586
6919
|
],
|
|
6587
6920
|
"aliases": [],
|
|
@@ -6624,7 +6957,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6624
6957
|
},
|
|
6625
6958
|
{
|
|
6626
6959
|
"flags": "--harness <harness>",
|
|
6627
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
|
|
6960
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
|
|
6628
6961
|
"required": true,
|
|
6629
6962
|
"valueHint": "harness"
|
|
6630
6963
|
},
|
|
@@ -6690,7 +7023,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6690
7023
|
},
|
|
6691
7024
|
{
|
|
6692
7025
|
"flags": "--force",
|
|
6693
|
-
"description": "Clear
|
|
7026
|
+
"description": "Clear paused and pending-operator-decision gates and start anyway",
|
|
6694
7027
|
"required": false,
|
|
6695
7028
|
"valueHint": null
|
|
6696
7029
|
},
|
|
@@ -6741,7 +7074,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6741
7074
|
},
|
|
6742
7075
|
{
|
|
6743
7076
|
"flags": "--harness <harness>",
|
|
6744
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp (defaults to role/provider settings)",
|
|
7077
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code (defaults to role/provider settings)",
|
|
6745
7078
|
"required": true,
|
|
6746
7079
|
"valueHint": "harness"
|
|
6747
7080
|
},
|
|
@@ -7390,17 +7723,32 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7390
7723
|
"display": "/pan workspace list",
|
|
7391
7724
|
"description": "List all workspaces",
|
|
7392
7725
|
"args": [],
|
|
7393
|
-
"options": [
|
|
7394
|
-
|
|
7395
|
-
|
|
7396
|
-
|
|
7397
|
-
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
7401
|
-
|
|
7402
|
-
|
|
7403
|
-
|
|
7726
|
+
"options": [
|
|
7727
|
+
{
|
|
7728
|
+
"flags": "--json",
|
|
7729
|
+
"description": "Output as JSON",
|
|
7730
|
+
"required": false,
|
|
7731
|
+
"valueHint": null
|
|
7732
|
+
},
|
|
7733
|
+
{
|
|
7734
|
+
"flags": "--all",
|
|
7735
|
+
"description": "List workspaces across all registered projects",
|
|
7736
|
+
"required": false,
|
|
7737
|
+
"valueHint": null
|
|
7738
|
+
},
|
|
7739
|
+
{
|
|
7740
|
+
"flags": "--kind <kind>",
|
|
7741
|
+
"description": "Filter by workspace kind (main|issue|scratch), reading through the resolver",
|
|
7742
|
+
"required": true,
|
|
7743
|
+
"valueHint": "kind"
|
|
7744
|
+
},
|
|
7745
|
+
{
|
|
7746
|
+
"flags": "--archived",
|
|
7747
|
+
"description": "Include archived workspaces (only applies with --kind)",
|
|
7748
|
+
"required": false,
|
|
7749
|
+
"valueHint": null
|
|
7750
|
+
}
|
|
7751
|
+
],
|
|
7404
7752
|
"aliases": [],
|
|
7405
7753
|
"category": "Workspace"
|
|
7406
7754
|
},
|
|
@@ -7414,25 +7762,160 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7414
7762
|
"required": true,
|
|
7415
7763
|
"variadic": false
|
|
7416
7764
|
}],
|
|
7417
|
-
"options": [
|
|
7418
|
-
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
|
|
7765
|
+
"options": [
|
|
7766
|
+
{
|
|
7767
|
+
"flags": "--force",
|
|
7768
|
+
"description": "Force removal even with uncommitted changes",
|
|
7769
|
+
"required": false,
|
|
7770
|
+
"valueHint": null
|
|
7771
|
+
},
|
|
7772
|
+
{
|
|
7773
|
+
"flags": "--project <path>",
|
|
7774
|
+
"description": "Explicit project path (overrides registry)",
|
|
7775
|
+
"required": true,
|
|
7776
|
+
"valueHint": "path"
|
|
7777
|
+
},
|
|
7778
|
+
{
|
|
7779
|
+
"flags": "--purge-memory",
|
|
7780
|
+
"description": "Also permanently delete the workspace's memory home (irreversible)",
|
|
7781
|
+
"required": false,
|
|
7782
|
+
"valueHint": null
|
|
7783
|
+
}
|
|
7784
|
+
],
|
|
7428
7785
|
"aliases": [],
|
|
7429
7786
|
"category": "Workspace"
|
|
7430
7787
|
},
|
|
7431
7788
|
{
|
|
7432
|
-
"id": "pan-workspace-
|
|
7433
|
-
"path": ["workspace", "
|
|
7434
|
-
"display": "/pan workspace
|
|
7435
|
-
"description": "
|
|
7789
|
+
"id": "pan-workspace-new",
|
|
7790
|
+
"path": ["workspace", "new"],
|
|
7791
|
+
"display": "/pan workspace new",
|
|
7792
|
+
"description": "Create a scratch workspace (shared dir by default; --isolated for a git worktree)",
|
|
7793
|
+
"args": [{
|
|
7794
|
+
"name": "name",
|
|
7795
|
+
"required": true,
|
|
7796
|
+
"variadic": false
|
|
7797
|
+
}],
|
|
7798
|
+
"options": [
|
|
7799
|
+
{
|
|
7800
|
+
"flags": "--project <key>",
|
|
7801
|
+
"description": "Registered project key (defaults to the sole project, or the one resolved from cwd)",
|
|
7802
|
+
"required": true,
|
|
7803
|
+
"valueHint": "key"
|
|
7804
|
+
},
|
|
7805
|
+
{
|
|
7806
|
+
"flags": "--isolated",
|
|
7807
|
+
"description": "Create an isolated git worktree instead of sharing the project directory",
|
|
7808
|
+
"required": false,
|
|
7809
|
+
"valueHint": null
|
|
7810
|
+
},
|
|
7811
|
+
{
|
|
7812
|
+
"flags": "--parent-branch <branch>",
|
|
7813
|
+
"description": "Parent branch for the isolated worktree (default: inferred from the project's current branch)",
|
|
7814
|
+
"required": true,
|
|
7815
|
+
"valueHint": "branch"
|
|
7816
|
+
},
|
|
7817
|
+
{
|
|
7818
|
+
"flags": "--target-path <dir>",
|
|
7819
|
+
"description": "Target an existing directory as the workspace path (rejects --isolated)",
|
|
7820
|
+
"required": true,
|
|
7821
|
+
"valueHint": "dir"
|
|
7822
|
+
},
|
|
7823
|
+
{
|
|
7824
|
+
"flags": "--dry-run",
|
|
7825
|
+
"description": "Print the resolved intent as JSON and create nothing",
|
|
7826
|
+
"required": false,
|
|
7827
|
+
"valueHint": null
|
|
7828
|
+
}
|
|
7829
|
+
],
|
|
7830
|
+
"aliases": [],
|
|
7831
|
+
"category": "Workspace"
|
|
7832
|
+
},
|
|
7833
|
+
{
|
|
7834
|
+
"id": "pan-workspace-main",
|
|
7835
|
+
"path": ["workspace", "main"],
|
|
7836
|
+
"display": "/pan workspace main",
|
|
7837
|
+
"description": "Resolve or create the project's singleton main workspace",
|
|
7838
|
+
"args": [],
|
|
7839
|
+
"options": [{
|
|
7840
|
+
"flags": "--project <key>",
|
|
7841
|
+
"description": "Registered project key (defaults to the sole project, or the one resolved from cwd)",
|
|
7842
|
+
"required": true,
|
|
7843
|
+
"valueHint": "key"
|
|
7844
|
+
}],
|
|
7845
|
+
"aliases": [],
|
|
7846
|
+
"category": "Workspace"
|
|
7847
|
+
},
|
|
7848
|
+
{
|
|
7849
|
+
"id": "pan-workspace-get",
|
|
7850
|
+
"path": ["workspace", "get"],
|
|
7851
|
+
"display": "/pan workspace get",
|
|
7852
|
+
"description": "Show a workspace row by id",
|
|
7853
|
+
"args": [{
|
|
7854
|
+
"name": "ws",
|
|
7855
|
+
"required": true,
|
|
7856
|
+
"variadic": false
|
|
7857
|
+
}],
|
|
7858
|
+
"options": [],
|
|
7859
|
+
"aliases": [],
|
|
7860
|
+
"category": "Workspace"
|
|
7861
|
+
},
|
|
7862
|
+
{
|
|
7863
|
+
"id": "pan-workspace-activate",
|
|
7864
|
+
"path": ["workspace", "activate"],
|
|
7865
|
+
"display": "/pan workspace activate",
|
|
7866
|
+
"description": "Touch a workspace's last-accessed time and print its layout hint",
|
|
7867
|
+
"args": [{
|
|
7868
|
+
"name": "ws",
|
|
7869
|
+
"required": true,
|
|
7870
|
+
"variadic": false
|
|
7871
|
+
}],
|
|
7872
|
+
"options": [],
|
|
7873
|
+
"aliases": [],
|
|
7874
|
+
"category": "Workspace"
|
|
7875
|
+
},
|
|
7876
|
+
{
|
|
7877
|
+
"id": "pan-workspace-archive",
|
|
7878
|
+
"path": ["workspace", "archive"],
|
|
7879
|
+
"display": "/pan workspace archive",
|
|
7880
|
+
"description": "Archive a workspace (reversible; refuses kind=main)",
|
|
7881
|
+
"args": [{
|
|
7882
|
+
"name": "ws",
|
|
7883
|
+
"required": true,
|
|
7884
|
+
"variadic": false
|
|
7885
|
+
}],
|
|
7886
|
+
"options": [],
|
|
7887
|
+
"aliases": [],
|
|
7888
|
+
"category": "Workspace"
|
|
7889
|
+
},
|
|
7890
|
+
{
|
|
7891
|
+
"id": "pan-workspace-relocate",
|
|
7892
|
+
"path": ["workspace", "relocate"],
|
|
7893
|
+
"display": "/pan workspace relocate",
|
|
7894
|
+
"description": "Point a workspace at a new path (refuses kind=issue; kind=main requires --force)",
|
|
7895
|
+
"args": [{
|
|
7896
|
+
"name": "ws",
|
|
7897
|
+
"required": true,
|
|
7898
|
+
"variadic": false
|
|
7899
|
+
}],
|
|
7900
|
+
"options": [{
|
|
7901
|
+
"flags": "--path <dir>",
|
|
7902
|
+
"description": "New path (must be an existing directory)",
|
|
7903
|
+
"required": true,
|
|
7904
|
+
"valueHint": "dir"
|
|
7905
|
+
}, {
|
|
7906
|
+
"flags": "--force",
|
|
7907
|
+
"description": "Allow relocating the main workspace, diverging it from projects.yaml",
|
|
7908
|
+
"required": false,
|
|
7909
|
+
"valueHint": null
|
|
7910
|
+
}],
|
|
7911
|
+
"aliases": [],
|
|
7912
|
+
"category": "Workspace"
|
|
7913
|
+
},
|
|
7914
|
+
{
|
|
7915
|
+
"id": "pan-workspace-render-devcontainer",
|
|
7916
|
+
"path": ["workspace", "render-devcontainer"],
|
|
7917
|
+
"display": "/pan workspace render-devcontainer",
|
|
7918
|
+
"description": "Re-render <workspace>/.devcontainer/ from the project compose template",
|
|
7436
7919
|
"args": [{
|
|
7437
7920
|
"name": "featureName",
|
|
7438
7921
|
"required": true,
|
|
@@ -8061,10 +8544,10 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8061
8544
|
"valueHint": "id"
|
|
8062
8545
|
},
|
|
8063
8546
|
{
|
|
8064
|
-
"flags": "--workspace <id>",
|
|
8065
|
-
"description": "Workspace
|
|
8547
|
+
"flags": "--workspace <id|name>",
|
|
8548
|
+
"description": "Workspace id or name",
|
|
8066
8549
|
"required": true,
|
|
8067
|
-
"valueHint": "id"
|
|
8550
|
+
"valueHint": "id|name"
|
|
8068
8551
|
},
|
|
8069
8552
|
{
|
|
8070
8553
|
"flags": "--issue <id>",
|
|
@@ -8084,6 +8567,18 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8084
8567
|
"required": false,
|
|
8085
8568
|
"valueHint": null
|
|
8086
8569
|
},
|
|
8570
|
+
{
|
|
8571
|
+
"flags": "--global",
|
|
8572
|
+
"description": "Search across all registered projects instead of just one",
|
|
8573
|
+
"required": false,
|
|
8574
|
+
"valueHint": null
|
|
8575
|
+
},
|
|
8576
|
+
{
|
|
8577
|
+
"flags": "--target [path]",
|
|
8578
|
+
"description": "Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global",
|
|
8579
|
+
"required": false,
|
|
8580
|
+
"valueHint": "path"
|
|
8581
|
+
},
|
|
8087
8582
|
{
|
|
8088
8583
|
"flags": "--include-archived",
|
|
8089
8584
|
"description": "Include observations hidden by reset markers",
|
|
@@ -8110,23 +8605,106 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8110
8605
|
"id": "pan-memory-status",
|
|
8111
8606
|
"path": ["memory", "status"],
|
|
8112
8607
|
"display": "/pan memory status",
|
|
8113
|
-
"description": "Show current memory status for an issue",
|
|
8608
|
+
"description": "Show current memory status for an issue, a workspace, or the current directory",
|
|
8114
8609
|
"args": [{
|
|
8115
8610
|
"name": "issue",
|
|
8116
|
-
"required":
|
|
8611
|
+
"required": false,
|
|
8117
8612
|
"variadic": false
|
|
8118
8613
|
}],
|
|
8119
|
-
"options": [
|
|
8120
|
-
|
|
8121
|
-
|
|
8614
|
+
"options": [
|
|
8615
|
+
{
|
|
8616
|
+
"flags": "--project <id>",
|
|
8617
|
+
"description": "Project ID",
|
|
8618
|
+
"required": true,
|
|
8619
|
+
"valueHint": "id"
|
|
8620
|
+
},
|
|
8621
|
+
{
|
|
8622
|
+
"flags": "--workspace <id|name>",
|
|
8623
|
+
"description": "Workspace id or name instead of an issue positional",
|
|
8624
|
+
"required": true,
|
|
8625
|
+
"valueHint": "id|name"
|
|
8626
|
+
},
|
|
8627
|
+
{
|
|
8628
|
+
"flags": "--history <n>",
|
|
8629
|
+
"description": "Also print up to N archived statuses, newest first (max 50)",
|
|
8630
|
+
"required": true,
|
|
8631
|
+
"valueHint": "n"
|
|
8632
|
+
},
|
|
8633
|
+
{
|
|
8634
|
+
"flags": "--json",
|
|
8635
|
+
"description": "Output JSON",
|
|
8636
|
+
"required": false,
|
|
8637
|
+
"valueHint": null
|
|
8638
|
+
}
|
|
8639
|
+
],
|
|
8640
|
+
"aliases": [],
|
|
8641
|
+
"category": "Observation"
|
|
8642
|
+
},
|
|
8643
|
+
{
|
|
8644
|
+
"id": "pan-memory-timeline",
|
|
8645
|
+
"path": ["memory", "timeline"],
|
|
8646
|
+
"display": "/pan memory timeline",
|
|
8647
|
+
"description": "Print chronological observations for a workspace or the current directory",
|
|
8648
|
+
"args": [],
|
|
8649
|
+
"options": [
|
|
8650
|
+
{
|
|
8651
|
+
"flags": "--workspace <id|name>",
|
|
8652
|
+
"description": "Workspace id or name (defaults to the workspace owning the cwd)",
|
|
8653
|
+
"required": true,
|
|
8654
|
+
"valueHint": "id|name"
|
|
8655
|
+
},
|
|
8656
|
+
{
|
|
8657
|
+
"flags": "--days <n>",
|
|
8658
|
+
"description": "Most recent N days, today counting as day 1 (default 7)",
|
|
8659
|
+
"required": true,
|
|
8660
|
+
"valueHint": "n"
|
|
8661
|
+
},
|
|
8662
|
+
{
|
|
8663
|
+
"flags": "--limit <n>",
|
|
8664
|
+
"description": "Maximum observation rows",
|
|
8665
|
+
"required": true,
|
|
8666
|
+
"valueHint": "n"
|
|
8667
|
+
},
|
|
8668
|
+
{
|
|
8669
|
+
"flags": "--json",
|
|
8670
|
+
"description": "Output JSON",
|
|
8671
|
+
"required": false,
|
|
8672
|
+
"valueHint": null
|
|
8673
|
+
}
|
|
8674
|
+
],
|
|
8675
|
+
"aliases": [],
|
|
8676
|
+
"category": "Observation"
|
|
8677
|
+
},
|
|
8678
|
+
{
|
|
8679
|
+
"id": "pan-memory-read",
|
|
8680
|
+
"path": ["memory", "read"],
|
|
8681
|
+
"display": "/pan memory read",
|
|
8682
|
+
"description": "Print a file from a workspace's memory home (path is relative to that home)",
|
|
8683
|
+
"args": [{
|
|
8684
|
+
"name": "path",
|
|
8122
8685
|
"required": true,
|
|
8123
|
-
"
|
|
8124
|
-
}, {
|
|
8125
|
-
"flags": "--json",
|
|
8126
|
-
"description": "Output JSON",
|
|
8127
|
-
"required": false,
|
|
8128
|
-
"valueHint": null
|
|
8686
|
+
"variadic": false
|
|
8129
8687
|
}],
|
|
8688
|
+
"options": [
|
|
8689
|
+
{
|
|
8690
|
+
"flags": "--workspace <id|name>",
|
|
8691
|
+
"description": "Workspace id or name (defaults to the workspace owning the cwd)",
|
|
8692
|
+
"required": true,
|
|
8693
|
+
"valueHint": "id|name"
|
|
8694
|
+
},
|
|
8695
|
+
{
|
|
8696
|
+
"flags": "--from <n>",
|
|
8697
|
+
"description": "First line to print, 1-based",
|
|
8698
|
+
"required": true,
|
|
8699
|
+
"valueHint": "n"
|
|
8700
|
+
},
|
|
8701
|
+
{
|
|
8702
|
+
"flags": "--lines <n>",
|
|
8703
|
+
"description": "Maximum number of lines to print",
|
|
8704
|
+
"required": true,
|
|
8705
|
+
"valueHint": "n"
|
|
8706
|
+
}
|
|
8707
|
+
],
|
|
8130
8708
|
"aliases": [],
|
|
8131
8709
|
"category": "Observation"
|
|
8132
8710
|
},
|
|
@@ -8177,10 +8755,10 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8177
8755
|
"id": "pan-memory-summary",
|
|
8178
8756
|
"path": ["memory", "summary"],
|
|
8179
8757
|
"display": "/pan memory summary",
|
|
8180
|
-
"description": "Generate a daily markdown memory summary",
|
|
8758
|
+
"description": "Generate a daily markdown memory summary for an issue, a workspace, or the current directory",
|
|
8181
8759
|
"args": [{
|
|
8182
8760
|
"name": "issue",
|
|
8183
|
-
"required":
|
|
8761
|
+
"required": false,
|
|
8184
8762
|
"variadic": false
|
|
8185
8763
|
}],
|
|
8186
8764
|
"options": [
|
|
@@ -8190,6 +8768,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8190
8768
|
"required": true,
|
|
8191
8769
|
"valueHint": "id"
|
|
8192
8770
|
},
|
|
8771
|
+
{
|
|
8772
|
+
"flags": "--workspace <id|name>",
|
|
8773
|
+
"description": "Workspace id or name instead of an issue positional",
|
|
8774
|
+
"required": true,
|
|
8775
|
+
"valueHint": "id|name"
|
|
8776
|
+
},
|
|
8193
8777
|
{
|
|
8194
8778
|
"flags": "--date <yyyy-mm-dd>",
|
|
8195
8779
|
"description": "Summary date",
|
|
@@ -8226,6 +8810,136 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8226
8810
|
"aliases": [],
|
|
8227
8811
|
"category": "Observation"
|
|
8228
8812
|
},
|
|
8813
|
+
{
|
|
8814
|
+
"id": "pan-memory-backfill",
|
|
8815
|
+
"path": ["memory", "backfill"],
|
|
8816
|
+
"display": "/pan memory backfill",
|
|
8817
|
+
"description": "Backfill memory observations from historical Claude Code JSONL transcripts",
|
|
8818
|
+
"args": [],
|
|
8819
|
+
"options": [
|
|
8820
|
+
{
|
|
8821
|
+
"flags": "--workspace <id>",
|
|
8822
|
+
"description": "Only backfill sessions resolved to this workspace id",
|
|
8823
|
+
"required": true,
|
|
8824
|
+
"valueHint": "id"
|
|
8825
|
+
},
|
|
8826
|
+
{
|
|
8827
|
+
"flags": "--project <id>",
|
|
8828
|
+
"description": "Only backfill sessions resolved to this project id",
|
|
8829
|
+
"required": true,
|
|
8830
|
+
"valueHint": "id"
|
|
8831
|
+
},
|
|
8832
|
+
{
|
|
8833
|
+
"flags": "--dry-run",
|
|
8834
|
+
"description": "Report matched sessions without extracting or writing anything",
|
|
8835
|
+
"required": false,
|
|
8836
|
+
"valueHint": null
|
|
8837
|
+
},
|
|
8838
|
+
{
|
|
8839
|
+
"flags": "--json",
|
|
8840
|
+
"description": "Output JSON",
|
|
8841
|
+
"required": false,
|
|
8842
|
+
"valueHint": null
|
|
8843
|
+
}
|
|
8844
|
+
],
|
|
8845
|
+
"aliases": [],
|
|
8846
|
+
"category": "Observation"
|
|
8847
|
+
},
|
|
8848
|
+
{
|
|
8849
|
+
"id": "pan-memory-pin",
|
|
8850
|
+
"path": ["memory", "pin"],
|
|
8851
|
+
"display": "/pan memory pin",
|
|
8852
|
+
"description": "Pin a doc for prompt-time memory injection (path is stored project-relative)",
|
|
8853
|
+
"args": [{
|
|
8854
|
+
"name": "doc-path",
|
|
8855
|
+
"required": true,
|
|
8856
|
+
"variadic": false
|
|
8857
|
+
}],
|
|
8858
|
+
"options": [
|
|
8859
|
+
{
|
|
8860
|
+
"flags": "--project <id>",
|
|
8861
|
+
"description": "Project key to pin at project scope",
|
|
8862
|
+
"required": true,
|
|
8863
|
+
"valueHint": "id"
|
|
8864
|
+
},
|
|
8865
|
+
{
|
|
8866
|
+
"flags": "--workspace <id>",
|
|
8867
|
+
"description": "Workspace id to pin at workspace scope (overrides --project)",
|
|
8868
|
+
"required": true,
|
|
8869
|
+
"valueHint": "id"
|
|
8870
|
+
},
|
|
8871
|
+
{
|
|
8872
|
+
"flags": "--json",
|
|
8873
|
+
"description": "Output JSON",
|
|
8874
|
+
"required": false,
|
|
8875
|
+
"valueHint": null
|
|
8876
|
+
}
|
|
8877
|
+
],
|
|
8878
|
+
"aliases": [],
|
|
8879
|
+
"category": "Observation"
|
|
8880
|
+
},
|
|
8881
|
+
{
|
|
8882
|
+
"id": "pan-memory-unpin",
|
|
8883
|
+
"path": ["memory", "unpin"],
|
|
8884
|
+
"display": "/pan memory unpin",
|
|
8885
|
+
"description": "Remove a pinned doc",
|
|
8886
|
+
"args": [{
|
|
8887
|
+
"name": "doc-path",
|
|
8888
|
+
"required": true,
|
|
8889
|
+
"variadic": false
|
|
8890
|
+
}],
|
|
8891
|
+
"options": [
|
|
8892
|
+
{
|
|
8893
|
+
"flags": "--project <id>",
|
|
8894
|
+
"description": "Project key the pin was made at project scope",
|
|
8895
|
+
"required": true,
|
|
8896
|
+
"valueHint": "id"
|
|
8897
|
+
},
|
|
8898
|
+
{
|
|
8899
|
+
"flags": "--workspace <id>",
|
|
8900
|
+
"description": "Workspace id the pin was made at workspace scope (overrides --project)",
|
|
8901
|
+
"required": true,
|
|
8902
|
+
"valueHint": "id"
|
|
8903
|
+
},
|
|
8904
|
+
{
|
|
8905
|
+
"flags": "--json",
|
|
8906
|
+
"description": "Output JSON",
|
|
8907
|
+
"required": false,
|
|
8908
|
+
"valueHint": null
|
|
8909
|
+
}
|
|
8910
|
+
],
|
|
8911
|
+
"aliases": [],
|
|
8912
|
+
"category": "Observation"
|
|
8913
|
+
},
|
|
8914
|
+
{
|
|
8915
|
+
"id": "pan-memory-pins",
|
|
8916
|
+
"path": ["memory", "pins"],
|
|
8917
|
+
"display": "/pan memory pins",
|
|
8918
|
+
"description": "List pinned docs for a project or workspace",
|
|
8919
|
+
"args": [],
|
|
8920
|
+
"options": [
|
|
8921
|
+
{
|
|
8922
|
+
"flags": "--project <id>",
|
|
8923
|
+
"description": "Project key to list project-scoped pins for",
|
|
8924
|
+
"required": true,
|
|
8925
|
+
"valueHint": "id"
|
|
8926
|
+
},
|
|
8927
|
+
{
|
|
8928
|
+
"flags": "--workspace <id>",
|
|
8929
|
+
"description": "Workspace id to list workspace-scoped pins for (overrides --project)",
|
|
8930
|
+
"required": true,
|
|
8931
|
+
"valueHint": "id"
|
|
8932
|
+
},
|
|
8933
|
+
{
|
|
8934
|
+
"flags": "--json",
|
|
8935
|
+
"description": "Output JSON",
|
|
8936
|
+
"required": false,
|
|
8937
|
+
"valueHint": null
|
|
8938
|
+
}
|
|
8939
|
+
],
|
|
8940
|
+
"aliases": [],
|
|
8941
|
+
"category": "Observation"
|
|
8942
|
+
},
|
|
8229
8943
|
{
|
|
8230
8944
|
"id": "pan-memory-config",
|
|
8231
8945
|
"path": ["memory", "config"],
|
|
@@ -8464,7 +9178,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8464
9178
|
"required": true,
|
|
8465
9179
|
"variadic": false
|
|
8466
9180
|
}],
|
|
8467
|
-
"options": [
|
|
9181
|
+
"options": [{
|
|
9182
|
+
"flags": "--project <key>",
|
|
9183
|
+
"description": "Resolve the order book in another registered project",
|
|
9184
|
+
"required": true,
|
|
9185
|
+
"valueHint": "key"
|
|
9186
|
+
}],
|
|
8468
9187
|
"aliases": [],
|
|
8469
9188
|
"category": "Flywheel"
|
|
8470
9189
|
},
|
|
@@ -8474,7 +9193,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8474
9193
|
"display": "/pan orders list",
|
|
8475
9194
|
"description": "List order books",
|
|
8476
9195
|
"args": [],
|
|
8477
|
-
"options": [
|
|
9196
|
+
"options": [{
|
|
9197
|
+
"flags": "--project <key>",
|
|
9198
|
+
"description": "Resolve the order book in another registered project",
|
|
9199
|
+
"required": true,
|
|
9200
|
+
"valueHint": "key"
|
|
9201
|
+
}],
|
|
8478
9202
|
"aliases": [],
|
|
8479
9203
|
"category": "Flywheel"
|
|
8480
9204
|
},
|
|
@@ -8488,7 +9212,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8488
9212
|
"required": true,
|
|
8489
9213
|
"variadic": false
|
|
8490
9214
|
}],
|
|
8491
|
-
"options": [
|
|
9215
|
+
"options": [{
|
|
9216
|
+
"flags": "--project <key>",
|
|
9217
|
+
"description": "Resolve the order book in another registered project",
|
|
9218
|
+
"required": true,
|
|
9219
|
+
"valueHint": "key"
|
|
9220
|
+
}],
|
|
8492
9221
|
"aliases": [],
|
|
8493
9222
|
"category": "Flywheel"
|
|
8494
9223
|
},
|
|
@@ -8524,6 +9253,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8524
9253
|
"description": "Require PRD re-verification before pickup",
|
|
8525
9254
|
"required": false,
|
|
8526
9255
|
"valueHint": null
|
|
9256
|
+
},
|
|
9257
|
+
{
|
|
9258
|
+
"flags": "--project <key>",
|
|
9259
|
+
"description": "Resolve the order book in another registered project",
|
|
9260
|
+
"required": true,
|
|
9261
|
+
"valueHint": "key"
|
|
8527
9262
|
}
|
|
8528
9263
|
],
|
|
8529
9264
|
"aliases": [],
|
|
@@ -8543,7 +9278,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8543
9278
|
"required": true,
|
|
8544
9279
|
"variadic": false
|
|
8545
9280
|
}],
|
|
8546
|
-
"options": [
|
|
9281
|
+
"options": [{
|
|
9282
|
+
"flags": "--project <key>",
|
|
9283
|
+
"description": "Resolve the order book in another registered project",
|
|
9284
|
+
"required": true,
|
|
9285
|
+
"valueHint": "key"
|
|
9286
|
+
}],
|
|
8547
9287
|
"aliases": [],
|
|
8548
9288
|
"category": "Flywheel"
|
|
8549
9289
|
},
|
|
@@ -8561,16 +9301,44 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8561
9301
|
"required": true,
|
|
8562
9302
|
"variadic": false
|
|
8563
9303
|
}],
|
|
8564
|
-
"options": [
|
|
8565
|
-
|
|
8566
|
-
|
|
9304
|
+
"options": [
|
|
9305
|
+
{
|
|
9306
|
+
"flags": "--lane <lane>",
|
|
9307
|
+
"description": "Target lane: A or B",
|
|
9308
|
+
"required": true,
|
|
9309
|
+
"valueHint": "lane"
|
|
9310
|
+
},
|
|
9311
|
+
{
|
|
9312
|
+
"flags": "--order <n>",
|
|
9313
|
+
"description": "One-based position in the target lane",
|
|
9314
|
+
"required": true,
|
|
9315
|
+
"valueHint": "n"
|
|
9316
|
+
},
|
|
9317
|
+
{
|
|
9318
|
+
"flags": "--project <key>",
|
|
9319
|
+
"description": "Resolve the order book in another registered project",
|
|
9320
|
+
"required": true,
|
|
9321
|
+
"valueHint": "key"
|
|
9322
|
+
}
|
|
9323
|
+
],
|
|
9324
|
+
"aliases": [],
|
|
9325
|
+
"category": "Flywheel"
|
|
9326
|
+
},
|
|
9327
|
+
{
|
|
9328
|
+
"id": "pan-orders-queue",
|
|
9329
|
+
"path": ["orders", "queue"],
|
|
9330
|
+
"display": "/pan orders queue",
|
|
9331
|
+
"description": "Mark a draft order book ready for dispatch",
|
|
9332
|
+
"args": [{
|
|
9333
|
+
"name": "id",
|
|
8567
9334
|
"required": true,
|
|
8568
|
-
"
|
|
8569
|
-
},
|
|
8570
|
-
|
|
8571
|
-
"
|
|
9335
|
+
"variadic": false
|
|
9336
|
+
}],
|
|
9337
|
+
"options": [{
|
|
9338
|
+
"flags": "--project <key>",
|
|
9339
|
+
"description": "Resolve the order book in another registered project",
|
|
8572
9340
|
"required": true,
|
|
8573
|
-
"valueHint": "
|
|
9341
|
+
"valueHint": "key"
|
|
8574
9342
|
}],
|
|
8575
9343
|
"aliases": [],
|
|
8576
9344
|
"category": "Flywheel"
|
|
@@ -8585,10 +9353,59 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8585
9353
|
"required": true,
|
|
8586
9354
|
"variadic": false
|
|
8587
9355
|
}],
|
|
8588
|
-
"options": [
|
|
9356
|
+
"options": [{
|
|
9357
|
+
"flags": "--project <key>",
|
|
9358
|
+
"description": "Resolve the order book in another registered project",
|
|
9359
|
+
"required": true,
|
|
9360
|
+
"valueHint": "key"
|
|
9361
|
+
}],
|
|
8589
9362
|
"aliases": [],
|
|
8590
9363
|
"category": "Flywheel"
|
|
8591
9364
|
},
|
|
9365
|
+
{
|
|
9366
|
+
"id": "pan-parked",
|
|
9367
|
+
"path": ["parked"],
|
|
9368
|
+
"display": "/pan parked",
|
|
9369
|
+
"description": "List every issue parked in a stall orbit (stuck flags, gates, failed merges, zombies), oldest first, with why + release condition",
|
|
9370
|
+
"args": [],
|
|
9371
|
+
"options": [{
|
|
9372
|
+
"flags": "--json",
|
|
9373
|
+
"description": "Print the raw parked rows as JSON",
|
|
9374
|
+
"required": false,
|
|
9375
|
+
"valueHint": null
|
|
9376
|
+
}],
|
|
9377
|
+
"aliases": [],
|
|
9378
|
+
"category": "CLI"
|
|
9379
|
+
},
|
|
9380
|
+
{
|
|
9381
|
+
"id": "pan-parked-ack",
|
|
9382
|
+
"path": ["parked", "ack"],
|
|
9383
|
+
"display": "/pan parked ack",
|
|
9384
|
+
"description": "Batch-acknowledge parked rows (default orbit: needs-you), then print the flywheel hand-off",
|
|
9385
|
+
"args": [],
|
|
9386
|
+
"options": [
|
|
9387
|
+
{
|
|
9388
|
+
"flags": "--orbit <orbit>",
|
|
9389
|
+
"description": "Parked orbit to acknowledge",
|
|
9390
|
+
"required": true,
|
|
9391
|
+
"valueHint": "orbit"
|
|
9392
|
+
},
|
|
9393
|
+
{
|
|
9394
|
+
"flags": "--older-than <days>",
|
|
9395
|
+
"description": "Only rows parked at least this many days",
|
|
9396
|
+
"required": true,
|
|
9397
|
+
"valueHint": "days"
|
|
9398
|
+
},
|
|
9399
|
+
{
|
|
9400
|
+
"flags": "--dry-run",
|
|
9401
|
+
"description": "List what would be acknowledged without writing",
|
|
9402
|
+
"required": false,
|
|
9403
|
+
"valueHint": null
|
|
9404
|
+
}
|
|
9405
|
+
],
|
|
9406
|
+
"aliases": [],
|
|
9407
|
+
"category": "CLI"
|
|
9408
|
+
},
|
|
8592
9409
|
{
|
|
8593
9410
|
"id": "pan-docs",
|
|
8594
9411
|
"path": ["docs"],
|
|
@@ -8764,6 +9581,29 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8764
9581
|
"aliases": [],
|
|
8765
9582
|
"category": "Admin"
|
|
8766
9583
|
},
|
|
9584
|
+
{
|
|
9585
|
+
"id": "pan-admin-state-backfill-agents",
|
|
9586
|
+
"path": [
|
|
9587
|
+
"admin",
|
|
9588
|
+
"state",
|
|
9589
|
+
"backfill-agents"
|
|
9590
|
+
],
|
|
9591
|
+
"display": "/pan admin state backfill-agents",
|
|
9592
|
+
"description": "Reconstruct durable agent runtime records from local and retained state",
|
|
9593
|
+
"args": [{
|
|
9594
|
+
"name": "project",
|
|
9595
|
+
"required": false,
|
|
9596
|
+
"variadic": false
|
|
9597
|
+
}],
|
|
9598
|
+
"options": [{
|
|
9599
|
+
"flags": "--dry-run",
|
|
9600
|
+
"description": "Report the records and sessions that would be written",
|
|
9601
|
+
"required": false,
|
|
9602
|
+
"valueHint": null
|
|
9603
|
+
}],
|
|
9604
|
+
"aliases": [],
|
|
9605
|
+
"category": "Admin"
|
|
9606
|
+
},
|
|
8767
9607
|
{
|
|
8768
9608
|
"id": "pan-admin-reconcile-labels",
|
|
8769
9609
|
"path": ["admin", "reconcile-labels"],
|
|
@@ -8779,6 +9619,35 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8779
9619
|
"aliases": [],
|
|
8780
9620
|
"category": "Admin"
|
|
8781
9621
|
},
|
|
9622
|
+
{
|
|
9623
|
+
"id": "pan-admin-migrate-legacy-agent-dirs",
|
|
9624
|
+
"path": ["admin", "migrate-legacy-agent-dirs"],
|
|
9625
|
+
"display": "/pan admin migrate-legacy-agent-dirs",
|
|
9626
|
+
"description": "Copy pre-rebrand conv-* agent dirs into the configured Overdeck home without overwriting",
|
|
9627
|
+
"args": [],
|
|
9628
|
+
"options": [],
|
|
9629
|
+
"aliases": [],
|
|
9630
|
+
"category": "Admin"
|
|
9631
|
+
},
|
|
9632
|
+
{
|
|
9633
|
+
"id": "pan-admin-seed-uat-fixtures",
|
|
9634
|
+
"path": ["admin", "seed-uat-fixtures"],
|
|
9635
|
+
"display": "/pan admin seed-uat-fixtures",
|
|
9636
|
+
"description": "Seed the obviously-fake FIX-1 issue fixture into a workspace container for UI UAT. Host mode: `pan admin seed-uat-fixtures <issue-id>` seeds and restarts that issue's workspace container from the host. `--local` runs the seed itself against the current OVERDECK_HOME — used by the host wrapper, or manually inside a container.",
|
|
9637
|
+
"args": [{
|
|
9638
|
+
"name": "issue-id",
|
|
9639
|
+
"required": false,
|
|
9640
|
+
"variadic": false
|
|
9641
|
+
}],
|
|
9642
|
+
"options": [{
|
|
9643
|
+
"flags": "--local",
|
|
9644
|
+
"description": "Seed the current (container-local) OVERDECK_HOME directly, without a host wrapper step",
|
|
9645
|
+
"required": false,
|
|
9646
|
+
"valueHint": null
|
|
9647
|
+
}],
|
|
9648
|
+
"aliases": [],
|
|
9649
|
+
"category": "Admin"
|
|
9650
|
+
},
|
|
8782
9651
|
{
|
|
8783
9652
|
"id": "pan-admin-cloister",
|
|
8784
9653
|
"path": ["admin", "cloister"],
|
|
@@ -8977,28 +9846,6 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8977
9846
|
"aliases": [],
|
|
8978
9847
|
"category": "Admin"
|
|
8979
9848
|
},
|
|
8980
|
-
{
|
|
8981
|
-
"id": "pan-admin-specialists-discovery-ready",
|
|
8982
|
-
"path": [
|
|
8983
|
-
"admin",
|
|
8984
|
-
"specialists",
|
|
8985
|
-
"discovery-ready"
|
|
8986
|
-
],
|
|
8987
|
-
"display": "/pan admin specialists discovery-ready",
|
|
8988
|
-
"description": "Signal that the review parent finished shared discovery — forks + launches the convoy (PAN-1862)",
|
|
8989
|
-
"args": [{
|
|
8990
|
-
"name": "type",
|
|
8991
|
-
"required": true,
|
|
8992
|
-
"variadic": false
|
|
8993
|
-
}, {
|
|
8994
|
-
"name": "issueId",
|
|
8995
|
-
"required": true,
|
|
8996
|
-
"variadic": false
|
|
8997
|
-
}],
|
|
8998
|
-
"options": [],
|
|
8999
|
-
"aliases": [],
|
|
9000
|
-
"category": "Admin"
|
|
9001
|
-
},
|
|
9002
9849
|
{
|
|
9003
9850
|
"id": "pan-admin-specialists-done",
|
|
9004
9851
|
"path": [
|
|
@@ -9037,16 +9884,22 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
9037
9884
|
"valueHint": "notes"
|
|
9038
9885
|
},
|
|
9039
9886
|
{
|
|
9040
|
-
"flags": "--
|
|
9041
|
-
"description": "
|
|
9887
|
+
"flags": "--uat-status <status>",
|
|
9888
|
+
"description": "Test only: required browser UAT result (passed or failed)",
|
|
9042
9889
|
"required": true,
|
|
9043
|
-
"valueHint": "
|
|
9890
|
+
"valueHint": "status"
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
"flags": "--uat-notes <notes>",
|
|
9894
|
+
"description": "Test only: browser UAT evidence or blocking condition",
|
|
9895
|
+
"required": true,
|
|
9896
|
+
"valueHint": "notes"
|
|
9044
9897
|
},
|
|
9045
9898
|
{
|
|
9046
|
-
"flags": "--
|
|
9047
|
-
"description": "
|
|
9899
|
+
"flags": "--run-id <runId>",
|
|
9900
|
+
"description": "Review cycle ID used to deduplicate review feedback",
|
|
9048
9901
|
"required": true,
|
|
9049
|
-
"valueHint": "
|
|
9902
|
+
"valueHint": "runId"
|
|
9050
9903
|
}
|
|
9051
9904
|
],
|
|
9052
9905
|
"aliases": [],
|
|
@@ -9411,6 +10264,30 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
9411
10264
|
"aliases": [],
|
|
9412
10265
|
"category": "Admin"
|
|
9413
10266
|
},
|
|
10267
|
+
{
|
|
10268
|
+
"id": "pan-admin-db-rebuild-workspaces",
|
|
10269
|
+
"path": [
|
|
10270
|
+
"admin",
|
|
10271
|
+
"db",
|
|
10272
|
+
"rebuild-workspaces"
|
|
10273
|
+
],
|
|
10274
|
+
"display": "/pan admin db rebuild-workspaces",
|
|
10275
|
+
"description": "Rebuild the projects/workspaces tables from projects.yaml, worktree scan, and memory-home identity records (PAN-1990)",
|
|
10276
|
+
"args": [],
|
|
10277
|
+
"options": [{
|
|
10278
|
+
"flags": "--dry-run",
|
|
10279
|
+
"description": "Show what would be created without writing",
|
|
10280
|
+
"required": false,
|
|
10281
|
+
"valueHint": null
|
|
10282
|
+
}, {
|
|
10283
|
+
"flags": "--verbose",
|
|
10284
|
+
"description": "Log each processed workspace",
|
|
10285
|
+
"required": false,
|
|
10286
|
+
"valueHint": null
|
|
10287
|
+
}],
|
|
10288
|
+
"aliases": [],
|
|
10289
|
+
"category": "Admin"
|
|
10290
|
+
},
|
|
9414
10291
|
{
|
|
9415
10292
|
"id": "pan-admin-db-gc-agents",
|
|
9416
10293
|
"path": [
|
|
@@ -10104,6 +10981,24 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10104
10981
|
"aliases": ["transcript"],
|
|
10105
10982
|
"category": "Conversation"
|
|
10106
10983
|
},
|
|
10984
|
+
{
|
|
10985
|
+
"id": "pan-conversations-move",
|
|
10986
|
+
"path": ["conversations", "move"],
|
|
10987
|
+
"display": "/pan conversations move",
|
|
10988
|
+
"description": "Reassign a conversation to a different project (exact name, then fuzzy title match)",
|
|
10989
|
+
"args": [{
|
|
10990
|
+
"name": "query",
|
|
10991
|
+
"required": true,
|
|
10992
|
+
"variadic": false
|
|
10993
|
+
}, {
|
|
10994
|
+
"name": "projectKey",
|
|
10995
|
+
"required": true,
|
|
10996
|
+
"variadic": false
|
|
10997
|
+
}],
|
|
10998
|
+
"options": [],
|
|
10999
|
+
"aliases": [],
|
|
11000
|
+
"category": "Conversation"
|
|
11001
|
+
},
|
|
10107
11002
|
{
|
|
10108
11003
|
"id": "pan-conversations-current",
|
|
10109
11004
|
"path": ["conversations", "current"],
|
|
@@ -10717,7 +11612,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10717
11612
|
"id": "pan-flywheel-report",
|
|
10718
11613
|
"path": ["flywheel", "report"],
|
|
10719
11614
|
"display": "/pan flywheel report",
|
|
10720
|
-
"description": "Finalize the active Flywheel run: write report.md,
|
|
11615
|
+
"description": "Finalize the active Flywheel run: write report.md, compact over-threshold FLYWHEEL-STATE.md history, commit State changes, and clear the active-run gate. Refuses to run while the orchestrator session is alive (pause or abort first).",
|
|
10721
11616
|
"args": [],
|
|
10722
11617
|
"options": [{
|
|
10723
11618
|
"flags": "--force",
|
|
@@ -10828,7 +11723,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10828
11723
|
},
|
|
10829
11724
|
{
|
|
10830
11725
|
"flags": "--agent-harness <harness>",
|
|
10831
|
-
"description": "Agent harness: claude-code, pi, codex, acp, or user",
|
|
11726
|
+
"description": "Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, or user",
|
|
10832
11727
|
"required": true,
|
|
10833
11728
|
"valueHint": "harness"
|
|
10834
11729
|
},
|
|
@@ -11403,6 +12298,30 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11403
12298
|
"aliases": [],
|
|
11404
12299
|
"category": "Project"
|
|
11405
12300
|
},
|
|
12301
|
+
{
|
|
12302
|
+
"id": "pan-project-add-target",
|
|
12303
|
+
"path": ["project", "add-target"],
|
|
12304
|
+
"display": "/pan project add-target",
|
|
12305
|
+
"description": "Add a secondary target path for a registered project",
|
|
12306
|
+
"args": [{
|
|
12307
|
+
"name": "project",
|
|
12308
|
+
"required": true,
|
|
12309
|
+
"variadic": false
|
|
12310
|
+
}],
|
|
12311
|
+
"options": [{
|
|
12312
|
+
"flags": "--path <path>",
|
|
12313
|
+
"description": "Target path to add",
|
|
12314
|
+
"required": true,
|
|
12315
|
+
"valueHint": "path"
|
|
12316
|
+
}, {
|
|
12317
|
+
"flags": "--primary",
|
|
12318
|
+
"description": "Make this the primary target (demotes any existing primary)",
|
|
12319
|
+
"required": false,
|
|
12320
|
+
"valueHint": null
|
|
12321
|
+
}],
|
|
12322
|
+
"aliases": [],
|
|
12323
|
+
"category": "Project"
|
|
12324
|
+
},
|
|
11406
12325
|
{
|
|
11407
12326
|
"id": "pan-projects",
|
|
11408
12327
|
"path": ["projects"],
|
|
@@ -11523,6 +12442,30 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11523
12442
|
"aliases": [],
|
|
11524
12443
|
"category": "Project"
|
|
11525
12444
|
},
|
|
12445
|
+
{
|
|
12446
|
+
"id": "pan-projects-add-target",
|
|
12447
|
+
"path": ["projects", "add-target"],
|
|
12448
|
+
"display": "/pan projects add-target",
|
|
12449
|
+
"description": "Add a secondary target path for a registered project",
|
|
12450
|
+
"args": [{
|
|
12451
|
+
"name": "project",
|
|
12452
|
+
"required": true,
|
|
12453
|
+
"variadic": false
|
|
12454
|
+
}],
|
|
12455
|
+
"options": [{
|
|
12456
|
+
"flags": "--path <path>",
|
|
12457
|
+
"description": "Target path to add",
|
|
12458
|
+
"required": true,
|
|
12459
|
+
"valueHint": "path"
|
|
12460
|
+
}, {
|
|
12461
|
+
"flags": "--primary",
|
|
12462
|
+
"description": "Make this the primary target (demotes any existing primary)",
|
|
12463
|
+
"required": false,
|
|
12464
|
+
"valueHint": null
|
|
12465
|
+
}],
|
|
12466
|
+
"aliases": [],
|
|
12467
|
+
"category": "Project"
|
|
12468
|
+
},
|
|
11526
12469
|
{
|
|
11527
12470
|
"id": "pan-health",
|
|
11528
12471
|
"path": ["health"],
|
|
@@ -11933,6 +12876,106 @@ const COMPOSER_COMMAND_VARIANTS = [
|
|
|
11933
12876
|
}
|
|
11934
12877
|
];
|
|
11935
12878
|
//#endregion
|
|
12879
|
+
//#region src/hook-inventory.ts
|
|
12880
|
+
const HOOK_INVENTORY = [
|
|
12881
|
+
{
|
|
12882
|
+
name: "PreToolUse",
|
|
12883
|
+
wired: true,
|
|
12884
|
+
color: "#00d4ff"
|
|
12885
|
+
},
|
|
12886
|
+
{
|
|
12887
|
+
name: "PostToolUse",
|
|
12888
|
+
wired: true,
|
|
12889
|
+
color: "#39ff14"
|
|
12890
|
+
},
|
|
12891
|
+
{
|
|
12892
|
+
name: "PostToolUseFailure",
|
|
12893
|
+
wired: true,
|
|
12894
|
+
color: "#ff4444"
|
|
12895
|
+
},
|
|
12896
|
+
{
|
|
12897
|
+
name: "Stop",
|
|
12898
|
+
wired: true,
|
|
12899
|
+
color: "#ff2d7c"
|
|
12900
|
+
},
|
|
12901
|
+
{
|
|
12902
|
+
name: "SessionStart",
|
|
12903
|
+
wired: true,
|
|
12904
|
+
color: "#9d4edd"
|
|
12905
|
+
},
|
|
12906
|
+
{
|
|
12907
|
+
name: "Notification",
|
|
12908
|
+
wired: true,
|
|
12909
|
+
color: "#ffb800"
|
|
12910
|
+
},
|
|
12911
|
+
{
|
|
12912
|
+
name: "UserPromptSubmit",
|
|
12913
|
+
wired: true,
|
|
12914
|
+
color: "#00d4ff"
|
|
12915
|
+
},
|
|
12916
|
+
{
|
|
12917
|
+
name: "PreCompact",
|
|
12918
|
+
wired: true,
|
|
12919
|
+
color: "#ff7700"
|
|
12920
|
+
},
|
|
12921
|
+
{
|
|
12922
|
+
name: "PostCompact",
|
|
12923
|
+
wired: true,
|
|
12924
|
+
color: "#ff7700"
|
|
12925
|
+
},
|
|
12926
|
+
{
|
|
12927
|
+
name: "PermissionRequest",
|
|
12928
|
+
wired: true,
|
|
12929
|
+
color: "#ffb800"
|
|
12930
|
+
},
|
|
12931
|
+
{
|
|
12932
|
+
name: "SessionEnd",
|
|
12933
|
+
wired: false
|
|
12934
|
+
},
|
|
12935
|
+
{
|
|
12936
|
+
name: "SubagentStart",
|
|
12937
|
+
wired: false
|
|
12938
|
+
},
|
|
12939
|
+
{
|
|
12940
|
+
name: "SubagentStop",
|
|
12941
|
+
wired: false
|
|
12942
|
+
},
|
|
12943
|
+
{
|
|
12944
|
+
name: "StopFailure",
|
|
12945
|
+
wired: false
|
|
12946
|
+
},
|
|
12947
|
+
{
|
|
12948
|
+
name: "PermissionDenied",
|
|
12949
|
+
wired: false
|
|
12950
|
+
},
|
|
12951
|
+
{
|
|
12952
|
+
name: "TaskCreated",
|
|
12953
|
+
wired: false
|
|
12954
|
+
},
|
|
12955
|
+
{
|
|
12956
|
+
name: "TaskCompleted",
|
|
12957
|
+
wired: false
|
|
12958
|
+
},
|
|
12959
|
+
{
|
|
12960
|
+
name: "TeammateIdle",
|
|
12961
|
+
wired: false
|
|
12962
|
+
},
|
|
12963
|
+
{
|
|
12964
|
+
name: "ConfigChange",
|
|
12965
|
+
wired: false
|
|
12966
|
+
},
|
|
12967
|
+
{
|
|
12968
|
+
name: "WorktreeCreate",
|
|
12969
|
+
wired: false
|
|
12970
|
+
},
|
|
12971
|
+
{
|
|
12972
|
+
name: "InstructionsLoaded",
|
|
12973
|
+
wired: false
|
|
12974
|
+
}
|
|
12975
|
+
];
|
|
12976
|
+
const WIRED_HOOK_INVENTORY = HOOK_INVENTORY.filter((hook) => hook.wired);
|
|
12977
|
+
const WIRED_HOOK_NAMES = WIRED_HOOK_INVENTORY.map((hook) => hook.name);
|
|
12978
|
+
//#endregion
|
|
11936
12979
|
exports.ACP_BEHAVIOR = ACP_BEHAVIOR;
|
|
11937
12980
|
exports.Activity = Activity;
|
|
11938
12981
|
exports.ActivityDetailedEvent = ActivityDetailedEvent;
|
|
@@ -11952,6 +12995,7 @@ exports.AgentHealthKind = AgentHealthKind;
|
|
|
11952
12995
|
exports.AgentHealthSnapshot = AgentHealthSnapshot;
|
|
11953
12996
|
exports.AgentHealthStatus = AgentHealthStatus;
|
|
11954
12997
|
exports.AgentHeartbeatDeadEvent = AgentHeartbeatDeadEvent;
|
|
12998
|
+
exports.AgentHookFiredEvent = AgentHookFiredEvent;
|
|
11955
12999
|
exports.AgentId = AgentId;
|
|
11956
13000
|
exports.AgentMessageReceivedEvent = AgentMessageReceivedEvent;
|
|
11957
13001
|
exports.AgentModelSetEvent = AgentModelSetEvent;
|
|
@@ -12029,6 +13073,7 @@ exports.ConversationCostSummary = ConversationCostSummary;
|
|
|
12029
13073
|
exports.ConversationCreatedEvent = ConversationCreatedEvent;
|
|
12030
13074
|
exports.ConversationEvent = ConversationEvent;
|
|
12031
13075
|
exports.ConversationFilter = ConversationFilter;
|
|
13076
|
+
exports.ConversationMovedEvent = ConversationMovedEvent;
|
|
12032
13077
|
exports.ConversationPermissionChangedEvent = ConversationPermissionChangedEvent;
|
|
12033
13078
|
exports.ConversationResponse = ConversationResponse;
|
|
12034
13079
|
exports.ConversationTitleChangedEvent = ConversationTitleChangedEvent;
|
|
@@ -12096,6 +13141,7 @@ exports.GetSnapshotRpc = GetSnapshotRpc;
|
|
|
12096
13141
|
exports.GetWorkspaceDetailRpc = GetWorkspaceDetailRpc;
|
|
12097
13142
|
exports.GlobalContextLayerRecord = GlobalContextLayerRecord;
|
|
12098
13143
|
exports.GlobalContextLayerTarget = GlobalContextLayerTarget;
|
|
13144
|
+
exports.HOOK_INVENTORY = HOOK_INVENTORY;
|
|
12099
13145
|
exports.HealthReason = HealthReason;
|
|
12100
13146
|
exports.HealthState = HealthState;
|
|
12101
13147
|
exports.HostHealthMetrics = HostHealthMetrics;
|
|
@@ -12109,6 +13155,8 @@ exports.IssueStatusChangedEvent = IssueStatusChangedEvent;
|
|
|
12109
13155
|
exports.IssueTransitionedEvent = IssueTransitionedEvent;
|
|
12110
13156
|
exports.IssuesSnapshotEvent = IssuesSnapshotEvent;
|
|
12111
13157
|
exports.IssuesUpdatedEvent = IssuesUpdatedEvent;
|
|
13158
|
+
exports.KIMI_CODE_BEHAVIOR = KIMI_CODE_BEHAVIOR;
|
|
13159
|
+
exports.KNOWN_HARNESSES = KNOWN_HARNESSES;
|
|
12112
13160
|
exports.LegacySystemHealthSummary = LegacySystemHealthSummary;
|
|
12113
13161
|
exports.LegacyWebhookRelaySummary = LegacyWebhookRelaySummary;
|
|
12114
13162
|
exports.LinearMcpAuthCallbackRelayedEvent = LinearMcpAuthCallbackRelayedEvent;
|
|
@@ -12122,6 +13170,7 @@ exports.MAX_CHANNEL_REPLY_ARTIFACT_REFS = MAX_CHANNEL_REPLY_ARTIFACT_REFS;
|
|
|
12122
13170
|
exports.MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH = MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH;
|
|
12123
13171
|
exports.MAX_CHANNEL_REPLY_SUMMARY_LENGTH = MAX_CHANNEL_REPLY_SUMMARY_LENGTH;
|
|
12124
13172
|
exports.MEMBERSHIP_UNAVAILABLE_REASONS = MEMBERSHIP_UNAVAILABLE_REASONS;
|
|
13173
|
+
exports.MemoryAgentRole = MemoryAgentRole;
|
|
12125
13174
|
exports.MemoryHealthChangedEvent = MemoryHealthChangedEvent;
|
|
12126
13175
|
exports.MemoryIdentity = MemoryIdentity;
|
|
12127
13176
|
exports.MemoryObservation = MemoryObservation;
|
|
@@ -12170,6 +13219,9 @@ exports.ProjectSessionTree = ProjectSessionTree;
|
|
|
12170
13219
|
exports.ProposedPlan = ProposedPlan;
|
|
12171
13220
|
exports.RagDecision = RagDecision;
|
|
12172
13221
|
exports.RagDecisionSource = RagDecisionSource;
|
|
13222
|
+
exports.ReadFileAtPathInput = ReadFileAtPathInput;
|
|
13223
|
+
exports.ReadFileAtPathResult = ReadFileAtPathResult;
|
|
13224
|
+
exports.ReadFileAtPathRpc = ReadFileAtPathRpc;
|
|
12173
13225
|
exports.ReadWorkspaceFileInput = ReadWorkspaceFileInput;
|
|
12174
13226
|
exports.ReadWorkspaceFileResult = ReadWorkspaceFileResult;
|
|
12175
13227
|
exports.ReadWorkspaceFileRpc = ReadWorkspaceFileRpc;
|
|
@@ -12193,6 +13245,9 @@ exports.ReviewSpecialistTimedOutEvent = ReviewSpecialistTimedOutEvent;
|
|
|
12193
13245
|
exports.ReviewStatusChangedEvent = ReviewStatusChangedEvent;
|
|
12194
13246
|
exports.ReviewStatusSnapshot = ReviewStatusSnapshot;
|
|
12195
13247
|
exports.ReviewStatusValue = ReviewStatusValue;
|
|
13248
|
+
exports.ReviewVerdictDispatchedEvent = ReviewVerdictDispatchedEvent;
|
|
13249
|
+
exports.ReviewVerdictRejectedEvent = ReviewVerdictRejectedEvent;
|
|
13250
|
+
exports.ReviewVerdictRestoreBlockedEvent = ReviewVerdictRestoreBlockedEvent;
|
|
12196
13251
|
exports.ReviewerRoundMetadata = ReviewerRoundMetadata;
|
|
12197
13252
|
exports.ReviewerRoundSummary = ReviewerRoundSummary;
|
|
12198
13253
|
exports.Role = Role;
|
|
@@ -12231,6 +13286,9 @@ exports.SubscribeIssueEventsRpc = SubscribeIssueEventsRpc;
|
|
|
12231
13286
|
exports.SubscribeProjectSessionTreeRpc = SubscribeProjectSessionTreeRpc;
|
|
12232
13287
|
exports.SubscribeTerminalRpc = SubscribeTerminalRpc;
|
|
12233
13288
|
exports.SubstrateBugFiledEvent = SubstrateBugFiledEvent;
|
|
13289
|
+
exports.SweepEscalatedEvent = SweepEscalatedEvent;
|
|
13290
|
+
exports.SweepRecommendationEvent = SweepRecommendationEvent;
|
|
13291
|
+
exports.SweepScanEvent = SweepScanEvent;
|
|
12234
13292
|
exports.SystemHealthConsumer = SystemHealthConsumer;
|
|
12235
13293
|
exports.SystemHealthSeverityChangedEvent = SystemHealthSeverityChangedEvent;
|
|
12236
13294
|
exports.SystemHealthSnapshot = SystemHealthSnapshot;
|
|
@@ -12251,6 +13309,8 @@ exports.TurnDiffFileChange = TurnDiffFileChange;
|
|
|
12251
13309
|
exports.TurnDiffSummary = TurnDiffSummary;
|
|
12252
13310
|
exports.UatStatusValue = UatStatusValue;
|
|
12253
13311
|
exports.VerificationStatusValue = VerificationStatusValue;
|
|
13312
|
+
exports.WIRED_HOOK_INVENTORY = WIRED_HOOK_INVENTORY;
|
|
13313
|
+
exports.WIRED_HOOK_NAMES = WIRED_HOOK_NAMES;
|
|
12254
13314
|
exports.WS_METHODS = WS_METHODS;
|
|
12255
13315
|
exports.WaitingReason = WaitingReason;
|
|
12256
13316
|
exports.WaitingState = WaitingState;
|
|
@@ -12265,6 +13325,9 @@ exports.WorkspaceDeletedEvent = WorkspaceDeletedEvent;
|
|
|
12265
13325
|
exports.WorkspaceDestroyedEvent = WorkspaceDestroyedEvent;
|
|
12266
13326
|
exports.WorkspaceDetail = WorkspaceDetail;
|
|
12267
13327
|
exports.WorkspaceWipeStartedEvent = WorkspaceWipeStartedEvent;
|
|
13328
|
+
exports.WriteFileAtPathInput = WriteFileAtPathInput;
|
|
13329
|
+
exports.WriteFileAtPathResult = WriteFileAtPathResult;
|
|
13330
|
+
exports.WriteFileAtPathRpc = WriteFileAtPathRpc;
|
|
12268
13331
|
exports.applyEvent = applyEvent;
|
|
12269
13332
|
exports.applyEvents = applyEvents;
|
|
12270
13333
|
exports.compareIssueIds = compareIssueIds;
|