@overdeck/contracts 0.62.1 → 0.64.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 +2344 -699
- package/dist/index.d.ts +1244 -62
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +2301 -700
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -36,6 +36,27 @@ const BackendPane = Schema.Struct({
|
|
|
36
36
|
/** Working directory of the pane (the issue workspace path). */
|
|
37
37
|
workspace: Schema.optional(Schema.String)
|
|
38
38
|
});
|
|
39
|
+
/**
|
|
40
|
+
* The agent id a pane answers for (PAN-4320). On Herdr `id` (`w1:p1`) and
|
|
41
|
+
* `terminalId` (`term_…`) are backend handles, never agent ids, so the
|
|
42
|
+
* `agentId` token decides; tmux panes carry `agentId` = session name.
|
|
43
|
+
*/
|
|
44
|
+
function paneAgentKey(pane) {
|
|
45
|
+
return pane.agentId ?? pane.terminalId ?? pane.id;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Panes by agent key. When two panes answer for one agent (a restarted Herdr
|
|
49
|
+
* agent beside its exited pane), a non-exited pane wins, never the reverse.
|
|
50
|
+
*/
|
|
51
|
+
function indexPanesByAgentKey(panes) {
|
|
52
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
53
|
+
for (const pane of panes) {
|
|
54
|
+
const key = paneAgentKey(pane);
|
|
55
|
+
const prior = byKey.get(key);
|
|
56
|
+
if (!prior || prior.state === "exited" && pane.state !== "exited") byKey.set(key, pane);
|
|
57
|
+
}
|
|
58
|
+
return byKey;
|
|
59
|
+
}
|
|
39
60
|
//#endregion
|
|
40
61
|
//#region src/derived-issue-state.ts
|
|
41
62
|
/**
|
|
@@ -61,7 +82,8 @@ const IssueState = Schema.Literals([
|
|
|
61
82
|
const IssueAttention = Schema.Literals([
|
|
62
83
|
"needs-you",
|
|
63
84
|
"stuck",
|
|
64
|
-
"api-error"
|
|
85
|
+
"api-error",
|
|
86
|
+
"work-not-started"
|
|
65
87
|
]);
|
|
66
88
|
/** Latest review decision on the PR, as the forge reports it. */
|
|
67
89
|
const PrReviewState = Schema.Literals([
|
|
@@ -84,7 +106,9 @@ const DerivedPrState = Schema.Struct({
|
|
|
84
106
|
reviewState: PrReviewState,
|
|
85
107
|
checks: PrChecksState,
|
|
86
108
|
/** Forge mergeability. `null` when the forge has not computed it yet. */
|
|
87
|
-
mergeable: Schema.NullOr(Schema.Boolean)
|
|
109
|
+
mergeable: Schema.NullOr(Schema.Boolean),
|
|
110
|
+
/** Present only when true; survives state: closed (PAN-4290). */
|
|
111
|
+
merged: Schema.optional(Schema.Boolean)
|
|
88
112
|
});
|
|
89
113
|
/** The issue's feature branch as git reports it. */
|
|
90
114
|
const DerivedBranchState = Schema.Struct({
|
|
@@ -92,6 +116,16 @@ const DerivedBranchState = Schema.Struct({
|
|
|
92
116
|
aheadOfMain: Schema.Number,
|
|
93
117
|
pushed: Schema.Boolean
|
|
94
118
|
});
|
|
119
|
+
/** The workspace journal's read on a post-planning auto-start (PAN-4399). */
|
|
120
|
+
const DerivedWorkStart = Schema.Struct({
|
|
121
|
+
status: Schema.Literals(["retrying", "not-started"]),
|
|
122
|
+
/** ISO time of the journal entry the status was read from. */
|
|
123
|
+
at: Schema.String,
|
|
124
|
+
error: Schema.optional(Schema.String),
|
|
125
|
+
nextRetryAt: Schema.optional(Schema.String),
|
|
126
|
+
/** The retry is journaled but not actually running because the Deacon is frozen (PAN-4210). Present only when true. */
|
|
127
|
+
held: Schema.optional(Schema.Literal(true))
|
|
128
|
+
});
|
|
95
129
|
/** Everything the dashboard needs to render an issue's pipeline position. */
|
|
96
130
|
const DerivedIssueState = Schema.Struct({
|
|
97
131
|
issueId: Schema.String,
|
|
@@ -104,7 +138,9 @@ const DerivedIssueState = Schema.Struct({
|
|
|
104
138
|
* precedence — could not be ruled in or out. Present only in that case; an
|
|
105
139
|
* unresolved tracker read is never reported as an open issue.
|
|
106
140
|
*/
|
|
107
|
-
trackerUnknown: Schema.optional(Schema.Literal(true))
|
|
141
|
+
trackerUnknown: Schema.optional(Schema.Literal(true)),
|
|
142
|
+
/** A deferred or gave-up post-planning auto-start read from the workspace journal (PAN-4399). */
|
|
143
|
+
workStart: Schema.optional(DerivedWorkStart)
|
|
108
144
|
});
|
|
109
145
|
const ISSUE_STATES = [
|
|
110
146
|
"backlog",
|
|
@@ -132,7 +168,8 @@ const ISSUE_STATE_PRECEDENCE = [
|
|
|
132
168
|
const ISSUE_ATTENTIONS = [
|
|
133
169
|
"needs-you",
|
|
134
170
|
"stuck",
|
|
135
|
-
"api-error"
|
|
171
|
+
"api-error",
|
|
172
|
+
"work-not-started"
|
|
136
173
|
];
|
|
137
174
|
function isIssueState(value) {
|
|
138
175
|
return typeof value === "string" && ISSUE_STATES.includes(value);
|
|
@@ -141,6 +178,119 @@ function isIssueAttention(value) {
|
|
|
141
178
|
return typeof value === "string" && ISSUE_ATTENTIONS.includes(value);
|
|
142
179
|
}
|
|
143
180
|
//#endregion
|
|
181
|
+
//#region src/github-quota.ts
|
|
182
|
+
/**
|
|
183
|
+
* The closed list of logical GitHub callers. A call made outside any
|
|
184
|
+
* `withGitHubCaller` context is recorded as `other` (or `app-rest` when it
|
|
185
|
+
* goes through the GitHub App REST door).
|
|
186
|
+
*/
|
|
187
|
+
const GITHUB_QUOTA_CALLERS = [
|
|
188
|
+
"pipeline-membership",
|
|
189
|
+
"pr-cache",
|
|
190
|
+
"pr-sync",
|
|
191
|
+
"ci-repair",
|
|
192
|
+
"issue-poller",
|
|
193
|
+
"close-out",
|
|
194
|
+
"tracker-client",
|
|
195
|
+
"app-rest",
|
|
196
|
+
"quota-sampler",
|
|
197
|
+
"agent",
|
|
198
|
+
"other"
|
|
199
|
+
];
|
|
200
|
+
const GitHubQuotaCaller = Schema.Literals(GITHUB_QUOTA_CALLERS);
|
|
201
|
+
/**
|
|
202
|
+
* Read-model pollers whose data can be stale for minutes without harm. Only
|
|
203
|
+
* these callers are skipped while a pause is active; every other caller
|
|
204
|
+
* (merge, verdict recording, tracker writes, agents) is essential and never
|
|
205
|
+
* paused.
|
|
206
|
+
*/
|
|
207
|
+
const NON_ESSENTIAL_GITHUB_CALLERS = new Set([
|
|
208
|
+
"pipeline-membership",
|
|
209
|
+
"pr-cache",
|
|
210
|
+
"pr-sync",
|
|
211
|
+
"ci-repair",
|
|
212
|
+
"issue-poller",
|
|
213
|
+
"close-out"
|
|
214
|
+
]);
|
|
215
|
+
/**
|
|
216
|
+
* The GitHub identity whose limit a call spends: `user` is the `gh` CLI token,
|
|
217
|
+
* `pat` is the `GITHUB_TOKEN` personal access token, `app` is a GitHub App
|
|
218
|
+
* installation token.
|
|
219
|
+
*/
|
|
220
|
+
const GITHUB_QUOTA_POOLS = [
|
|
221
|
+
"user",
|
|
222
|
+
"pat",
|
|
223
|
+
"app"
|
|
224
|
+
];
|
|
225
|
+
const GitHubQuotaPool = Schema.Literals(GITHUB_QUOTA_POOLS);
|
|
226
|
+
/** The limit counter inside a pool. `rest` is what GitHub calls `core`. */
|
|
227
|
+
const GITHUB_QUOTA_BUCKETS = ["graphql", "rest"];
|
|
228
|
+
const GitHubQuotaBucket = Schema.Literals(GITHUB_QUOTA_BUCKETS);
|
|
229
|
+
/** Primary = the hourly budget; secondary = GitHub's burst/abuse limit. */
|
|
230
|
+
const GitHubRateLimitKind = Schema.Literals(["primary", "secondary"]);
|
|
231
|
+
/** Points spent and calls made in one bucket. */
|
|
232
|
+
const GitHubQuotaUsage = Schema.Struct({
|
|
233
|
+
points: Schema.Number,
|
|
234
|
+
calls: Schema.Number
|
|
235
|
+
});
|
|
236
|
+
/** One caller's metered usage over the last hour. */
|
|
237
|
+
const GitHubQuotaCallerUsage = Schema.Struct({
|
|
238
|
+
caller: GitHubQuotaCaller,
|
|
239
|
+
graphql: GitHubQuotaUsage,
|
|
240
|
+
rest: GitHubQuotaUsage,
|
|
241
|
+
/** True when any counted call had an estimated (not GitHub-reported) cost. */
|
|
242
|
+
estimated: Schema.Boolean
|
|
243
|
+
});
|
|
244
|
+
/** The latest `/rate_limit` (or header) reading for one pool and bucket. */
|
|
245
|
+
const GitHubQuotaSample = Schema.Struct({
|
|
246
|
+
pool: GitHubQuotaPool,
|
|
247
|
+
bucket: GitHubQuotaBucket,
|
|
248
|
+
/** ISO time the sample was taken. */
|
|
249
|
+
ts: Schema.String,
|
|
250
|
+
remaining: Schema.Number,
|
|
251
|
+
limit: Schema.Number,
|
|
252
|
+
/** ISO time the bucket's hourly window resets. */
|
|
253
|
+
resetAt: Schema.optional(Schema.String)
|
|
254
|
+
});
|
|
255
|
+
/** An active pause on one pool and bucket (`~/.overdeck/github-quota/pause.json`). */
|
|
256
|
+
const GitHubQuotaPause = Schema.Struct({
|
|
257
|
+
pool: GitHubQuotaPool,
|
|
258
|
+
bucket: GitHubQuotaBucket,
|
|
259
|
+
kind: GitHubRateLimitKind,
|
|
260
|
+
/** The caller whose refused call started the pause. */
|
|
261
|
+
caller: GitHubQuotaCaller,
|
|
262
|
+
/** ISO time the pause started. */
|
|
263
|
+
since: Schema.String,
|
|
264
|
+
/** ISO time the pause ends. */
|
|
265
|
+
until: Schema.String
|
|
266
|
+
});
|
|
267
|
+
/**
|
|
268
|
+
* The operator-facing quota view — identical to the body of
|
|
269
|
+
* `GET /api/github-quota`, so the pill, the banner and the CLI read one shape.
|
|
270
|
+
* Derived runtime state: published with `emitOnly`, never persisted.
|
|
271
|
+
*/
|
|
272
|
+
const GitHubQuotaSnapshot = Schema.Struct({
|
|
273
|
+
/** ISO time the snapshot was built. */
|
|
274
|
+
generatedAt: Schema.String,
|
|
275
|
+
/** The `gh` account login. Local display only; never sent to telemetry. */
|
|
276
|
+
login: Schema.NullOr(Schema.String),
|
|
277
|
+
/** Per-caller usage in the last hour, highest total points first. */
|
|
278
|
+
callers: Schema.Array(GitHubQuotaCallerUsage),
|
|
279
|
+
/** The latest sample per pool and bucket. */
|
|
280
|
+
samples: Schema.Array(GitHubQuotaSample),
|
|
281
|
+
/** Active pauses; empty when GitHub calls are not paused. */
|
|
282
|
+
pauses: Schema.Array(GitHubQuotaPause),
|
|
283
|
+
/** True when this machine's own metered usage cannot explain a primary limit. */
|
|
284
|
+
ownUsageLow: Schema.Boolean,
|
|
285
|
+
/** User-pool GraphQL points the latest sample shows spent but no metered caller claims. */
|
|
286
|
+
unattributed: Schema.Number,
|
|
287
|
+
/** Refusals observed in the last hour. */
|
|
288
|
+
refusals: Schema.Struct({
|
|
289
|
+
primary: Schema.Number,
|
|
290
|
+
secondary: Schema.Number
|
|
291
|
+
})
|
|
292
|
+
});
|
|
293
|
+
//#endregion
|
|
144
294
|
//#region src/types.ts
|
|
145
295
|
const IssueId = Schema.String;
|
|
146
296
|
const MEMBERSHIP_UNAVAILABLE_REASONS = [
|
|
@@ -197,7 +347,8 @@ const KNOWN_HARNESSES = new Set([
|
|
|
197
347
|
"acp",
|
|
198
348
|
"kimi-code",
|
|
199
349
|
"opencode",
|
|
200
|
-
"muse"
|
|
350
|
+
"muse",
|
|
351
|
+
"prime-agent"
|
|
201
352
|
]);
|
|
202
353
|
/**
|
|
203
354
|
* Normalize a snapshot's runtime field to a known Harness value.
|
|
@@ -296,6 +447,7 @@ const AgentRuntimeSnapshot = Schema.Struct({
|
|
|
296
447
|
activity: Activity,
|
|
297
448
|
lastActivity: Schema.String,
|
|
298
449
|
currentTool: Schema.optional(Schema.String),
|
|
450
|
+
currentToolDescription: Schema.optional(Schema.String),
|
|
299
451
|
thinking: Schema.optional(ThinkingState),
|
|
300
452
|
waiting: Schema.optional(WaitingState),
|
|
301
453
|
claudeSessionId: Schema.optional(Schema.String),
|
|
@@ -320,6 +472,13 @@ const ChannelPermissionRequestSnapshot = Schema.Struct({
|
|
|
320
472
|
inputPreview: Schema.String,
|
|
321
473
|
createdAt: Schema.String
|
|
322
474
|
});
|
|
475
|
+
/** PAN-4371 — advisory Jev reading of why an idle agent ended its turn. kind is a string (append-only store). */
|
|
476
|
+
const TurnEndAssessment = Schema.Struct({
|
|
477
|
+
kind: Schema.String,
|
|
478
|
+
confidence: Schema.Number,
|
|
479
|
+
needsAnswer: Schema.Boolean,
|
|
480
|
+
model: Schema.String
|
|
481
|
+
});
|
|
323
482
|
const AgentSnapshot = Schema.Struct({
|
|
324
483
|
id: AgentId,
|
|
325
484
|
issueId: IssueId,
|
|
@@ -382,6 +541,7 @@ const AgentSnapshot = Schema.Struct({
|
|
|
382
541
|
})),
|
|
383
542
|
resolution: Schema.optional(AgentResolution),
|
|
384
543
|
resolutionCount: Schema.optional(Schema.Number),
|
|
544
|
+
turnEndAssessment: Schema.optional(TurnEndAssessment),
|
|
385
545
|
runtimeSnapshotSequence: Schema.optional(SequenceNumber)
|
|
386
546
|
});
|
|
387
547
|
/** PAN-3151: A recorded cycle in the review convergence tracking series */
|
|
@@ -559,6 +719,8 @@ const DashboardSnapshot = Schema.Struct({
|
|
|
559
719
|
embedProgressBySessionId: Schema.optional(Schema.Record(Schema.String, EmbedProgressSnapshot)),
|
|
560
720
|
ciByProjectKey: Schema.optional(Schema.Record(Schema.String, ProjectCiSnapshot)),
|
|
561
721
|
restartGate: Schema.optional(RestartGateSnapshot),
|
|
722
|
+
/** PAN-4264 — GitHub API quota use, samples and pauses; derived, never stored. */
|
|
723
|
+
githubQuota: Schema.optional(GitHubQuotaSnapshot),
|
|
562
724
|
/** PAN-3751 — in-flight deploys keyed by project key. */
|
|
563
725
|
deployByProjectKey: Schema.optional(Schema.Record(Schema.String, ProjectDeploySnapshot)),
|
|
564
726
|
timestamp: Schema.String
|
|
@@ -1432,6 +1594,20 @@ const RestartGateChangedEvent = Schema.Struct({
|
|
|
1432
1594
|
payload: RestartGateSnapshot
|
|
1433
1595
|
});
|
|
1434
1596
|
/**
|
|
1597
|
+
* The GitHub API quota view changed (PAN-4264).
|
|
1598
|
+
*
|
|
1599
|
+
* The payload is the complete snapshot, so the reducer is a plain replace.
|
|
1600
|
+
* The server derives it from the quota ledger and pause file under
|
|
1601
|
+
* `~/.overdeck/github-quota/` and emits it in-memory only, like
|
|
1602
|
+
* `restart_gate.changed`: it is never persisted and never replayed at boot.
|
|
1603
|
+
*/
|
|
1604
|
+
const GitHubQuotaChangedEvent = Schema.Struct({
|
|
1605
|
+
type: Schema.Literal("github_quota.changed"),
|
|
1606
|
+
sequence: SequenceNumber,
|
|
1607
|
+
timestamp: Schema.String,
|
|
1608
|
+
payload: GitHubQuotaSnapshot
|
|
1609
|
+
});
|
|
1610
|
+
/**
|
|
1435
1611
|
* The set of in-flight project deploys changed (PAN-3751).
|
|
1436
1612
|
*
|
|
1437
1613
|
* The payload is the COMPLETE projection keyed by project key, so the reducer
|
|
@@ -1623,7 +1799,8 @@ const AgentEnrichmentChangedEvent = Schema.Struct({
|
|
|
1623
1799
|
plan: Schema.String
|
|
1624
1800
|
})),
|
|
1625
1801
|
resolution: Schema.optional(AgentResolution),
|
|
1626
|
-
resolutionCount: Schema.optional(Schema.Number)
|
|
1802
|
+
resolutionCount: Schema.optional(Schema.Number),
|
|
1803
|
+
turnEndAssessment: Schema.optional(TurnEndAssessment)
|
|
1627
1804
|
})
|
|
1628
1805
|
});
|
|
1629
1806
|
/** New — agent created in database */
|
|
@@ -1646,6 +1823,7 @@ const AgentActivityChangedEvent = Schema.Struct({
|
|
|
1646
1823
|
agentId: AgentId,
|
|
1647
1824
|
activity: Activity,
|
|
1648
1825
|
currentTool: Schema.optional(Schema.String),
|
|
1826
|
+
toolDescription: Schema.optional(Schema.String),
|
|
1649
1827
|
hookName: Schema.optional(Schema.String)
|
|
1650
1828
|
})
|
|
1651
1829
|
});
|
|
@@ -2748,6 +2926,7 @@ const DomainEvent = Schema.Union([
|
|
|
2748
2926
|
ProjectCiSuiteObservedEvent,
|
|
2749
2927
|
ProjectCiHeadObservedEvent,
|
|
2750
2928
|
RestartGateChangedEvent,
|
|
2929
|
+
GitHubQuotaChangedEvent,
|
|
2751
2930
|
ProjectDeployChangedEvent,
|
|
2752
2931
|
AgentCreatedEvent,
|
|
2753
2932
|
AgentEnrichmentChangedEvent,
|
|
@@ -3138,13 +3317,23 @@ const WorkLogEntry = Schema.Struct({
|
|
|
3138
3317
|
toolInput: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),
|
|
3139
3318
|
sequence: Schema.optional(Schema.Number)
|
|
3140
3319
|
});
|
|
3320
|
+
/** A human-origin message read from a subagent's own sidechain transcript (PAN-4247). */
|
|
3321
|
+
const SubagentHumanInput = Schema.Struct({
|
|
3322
|
+
id: Schema.String,
|
|
3323
|
+
text: Schema.String,
|
|
3324
|
+
createdAt: Schema.String
|
|
3325
|
+
});
|
|
3141
3326
|
const SubagentSummary = Schema.Struct({
|
|
3142
3327
|
agentId: Schema.String,
|
|
3143
3328
|
agentType: Schema.String,
|
|
3144
3329
|
description: Schema.String,
|
|
3145
3330
|
toolUseId: Schema.String,
|
|
3146
3331
|
spawnDepth: Schema.Number,
|
|
3147
|
-
status: Schema.Literals(["running", "done"])
|
|
3332
|
+
status: Schema.Literals(["running", "done"]),
|
|
3333
|
+
/** True for a background subagent, launched with `requestShape: "background"` (PAN-4247). */
|
|
3334
|
+
background: Schema.optional(Schema.Boolean),
|
|
3335
|
+
/** Recent human-origin sidechain inputs, most useful when a message routed into this subagent instead of the main conversation (PAN-4247). */
|
|
3336
|
+
humanInputs: Schema.optional(Schema.Array(SubagentHumanInput))
|
|
3148
3337
|
});
|
|
3149
3338
|
/**
|
|
3150
3339
|
* Response shape for GET /api/agents/:id/conversation.
|
|
@@ -3653,6 +3842,7 @@ const INITIAL_READ_MODEL_STATE = {
|
|
|
3653
3842
|
embedProgressBySessionId: {},
|
|
3654
3843
|
ciByProjectKey: {},
|
|
3655
3844
|
restartGate: null,
|
|
3845
|
+
githubQuota: null,
|
|
3656
3846
|
deployByProjectKey: {},
|
|
3657
3847
|
agentIdBySessionId: {},
|
|
3658
3848
|
dashboardLifecycle: {
|
|
@@ -3784,6 +3974,7 @@ function syncSnapshot(state, snapshot) {
|
|
|
3784
3974
|
embedProgressBySessionId: snapshot.embedProgressBySessionId ?? {},
|
|
3785
3975
|
ciByProjectKey: snapshot.ciByProjectKey ?? state.ciByProjectKey,
|
|
3786
3976
|
restartGate: snapshot.restartGate ?? state.restartGate,
|
|
3977
|
+
githubQuota: snapshot.githubQuota ?? state.githubQuota,
|
|
3787
3978
|
deployByProjectKey: snapshot.deployByProjectKey ?? state.deployByProjectKey,
|
|
3788
3979
|
agentIdBySessionId
|
|
3789
3980
|
};
|
|
@@ -3863,7 +4054,8 @@ function applyEvent(state, event) {
|
|
|
3863
4054
|
pendingAskUserQuestion: event.payload.pendingAskUserQuestion,
|
|
3864
4055
|
pendingProposedPlan: event.payload.pendingProposedPlan,
|
|
3865
4056
|
resolution: event.payload.resolution,
|
|
3866
|
-
resolutionCount: event.payload.resolutionCount
|
|
4057
|
+
resolutionCount: event.payload.resolutionCount,
|
|
4058
|
+
turnEndAssessment: event.payload.turnEndAssessment
|
|
3867
4059
|
}
|
|
3868
4060
|
}
|
|
3869
4061
|
};
|
|
@@ -3888,6 +4080,7 @@ function applyEvent(state, event) {
|
|
|
3888
4080
|
...prevRuntime,
|
|
3889
4081
|
activity: "stopped",
|
|
3890
4082
|
currentTool: void 0,
|
|
4083
|
+
currentToolDescription: void 0,
|
|
3891
4084
|
thinking: void 0,
|
|
3892
4085
|
waiting: void 0,
|
|
3893
4086
|
channelReply: void 0,
|
|
@@ -4000,6 +4193,7 @@ function applyEvent(state, event) {
|
|
|
4000
4193
|
delete base["pendingInputKinds"];
|
|
4001
4194
|
delete base["pendingAskUserQuestion"];
|
|
4002
4195
|
delete base["pendingProposedPlan"];
|
|
4196
|
+
delete base["turnEndAssessment"];
|
|
4003
4197
|
}
|
|
4004
4198
|
return base;
|
|
4005
4199
|
})();
|
|
@@ -4031,6 +4225,7 @@ function applyEvent(state, event) {
|
|
|
4031
4225
|
...prevRuntime,
|
|
4032
4226
|
activity: "stopped",
|
|
4033
4227
|
currentTool: void 0,
|
|
4228
|
+
currentToolDescription: void 0,
|
|
4034
4229
|
thinking: void 0,
|
|
4035
4230
|
waiting: void 0,
|
|
4036
4231
|
channelReply: void 0,
|
|
@@ -4199,6 +4394,11 @@ function applyEvent(state, event) {
|
|
|
4199
4394
|
...event.payload.lastOutcome === void 0 ? {} : { lastOutcome: event.payload.lastOutcome }
|
|
4200
4395
|
}
|
|
4201
4396
|
};
|
|
4397
|
+
case "github_quota.changed": return {
|
|
4398
|
+
...state,
|
|
4399
|
+
sequence: Math.max(state.sequence, event.sequence),
|
|
4400
|
+
githubQuota: event.payload
|
|
4401
|
+
};
|
|
4202
4402
|
case "project.deploy_changed": return {
|
|
4203
4403
|
...state,
|
|
4204
4404
|
sequence: Math.max(state.sequence, event.sequence),
|
|
@@ -4452,12 +4652,13 @@ function applyEvent(state, event) {
|
|
|
4452
4652
|
sequence: Math.max(state.sequence, event.sequence)
|
|
4453
4653
|
};
|
|
4454
4654
|
case "agent.activity_changed": {
|
|
4455
|
-
const { agentId, activity, currentTool } = event.payload;
|
|
4655
|
+
const { agentId, activity, currentTool, toolDescription } = event.payload;
|
|
4456
4656
|
const prev = state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence);
|
|
4457
4657
|
const next = {
|
|
4458
4658
|
...prev,
|
|
4459
4659
|
activity,
|
|
4460
4660
|
currentTool: activity === "working" ? currentTool : void 0,
|
|
4661
|
+
currentToolDescription: activity === "working" ? toolDescription : void 0,
|
|
4461
4662
|
thinking: activity === "thinking" ? prev.thinking : void 0,
|
|
4462
4663
|
waiting: activity === "waiting" ? prev.waiting : void 0,
|
|
4463
4664
|
channelReply: activity === "working" ? void 0 : prev.channelReply,
|
|
@@ -4480,6 +4681,7 @@ function applyEvent(state, event) {
|
|
|
4480
4681
|
...state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence),
|
|
4481
4682
|
activity: "thinking",
|
|
4482
4683
|
currentTool: void 0,
|
|
4684
|
+
currentToolDescription: void 0,
|
|
4483
4685
|
thinking: {
|
|
4484
4686
|
since: event.timestamp,
|
|
4485
4687
|
lastToolAt
|
|
@@ -4528,6 +4730,7 @@ function applyEvent(state, event) {
|
|
|
4528
4730
|
...state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence),
|
|
4529
4731
|
activity: "waiting",
|
|
4530
4732
|
currentTool: void 0,
|
|
4733
|
+
currentToolDescription: void 0,
|
|
4531
4734
|
thinking: void 0,
|
|
4532
4735
|
waiting: {
|
|
4533
4736
|
reason,
|
|
@@ -5084,6 +5287,30 @@ function deriveProjectCi(record) {
|
|
|
5084
5287
|
};
|
|
5085
5288
|
}
|
|
5086
5289
|
//#endregion
|
|
5290
|
+
//#region src/effort.ts
|
|
5291
|
+
/**
|
|
5292
|
+
* Canonical reasoning-effort levels, end to end. `xhigh` was added in Opus 4.7
|
|
5293
|
+
* (between `high` and `max`); `max` predates it (Opus 4.6+/Sonnet 4.6). This is
|
|
5294
|
+
* the single source of truth for the enum — every other copy in the codebase
|
|
5295
|
+
* derives from it.
|
|
5296
|
+
*/
|
|
5297
|
+
const EFFORT_LEVELS = [
|
|
5298
|
+
"low",
|
|
5299
|
+
"medium",
|
|
5300
|
+
"high",
|
|
5301
|
+
"xhigh",
|
|
5302
|
+
"max"
|
|
5303
|
+
];
|
|
5304
|
+
const DEFAULT_EFFORT = "high";
|
|
5305
|
+
const EffortLevelSchema = Schema.Literals(EFFORT_LEVELS);
|
|
5306
|
+
function isEffortLevel(value) {
|
|
5307
|
+
return typeof value === "string" && EFFORT_LEVELS.includes(value);
|
|
5308
|
+
}
|
|
5309
|
+
/** Compares two effort levels by rank; negative when `a` is lower than `b`. */
|
|
5310
|
+
function compareEffort(a, b) {
|
|
5311
|
+
return EFFORT_LEVELS.indexOf(a) - EFFORT_LEVELS.indexOf(b);
|
|
5312
|
+
}
|
|
5313
|
+
//#endregion
|
|
5087
5314
|
//#region src/flywheel.ts
|
|
5088
5315
|
const FlywheelRunId = Schema.String.check(Schema.isPattern(/^RUN-\d+$/));
|
|
5089
5316
|
const FlywheelHttpUrl = Schema.String.check(Schema.isPattern(/^https?:\/\/\S+$/i));
|
|
@@ -5095,15 +5322,10 @@ const FlywheelHarness = Schema.Literals([
|
|
|
5095
5322
|
"acp",
|
|
5096
5323
|
"kimi-code",
|
|
5097
5324
|
"opencode",
|
|
5098
|
-
"muse"
|
|
5099
|
-
|
|
5100
|
-
const FlywheelEffort = Schema.Literals([
|
|
5101
|
-
"low",
|
|
5102
|
-
"medium",
|
|
5103
|
-
"high",
|
|
5104
|
-
"xhigh",
|
|
5105
|
-
"max"
|
|
5325
|
+
"muse",
|
|
5326
|
+
"prime-agent"
|
|
5106
5327
|
]);
|
|
5328
|
+
const FlywheelEffort = EffortLevelSchema;
|
|
5107
5329
|
const FlywheelOrchestrator = Schema.Struct({
|
|
5108
5330
|
harness: FlywheelHarness,
|
|
5109
5331
|
model: Schema.String,
|
|
@@ -5364,6 +5586,8 @@ const FlywheelConversationSummary = Schema.Struct({
|
|
|
5364
5586
|
model: Schema.NullOr(Schema.String),
|
|
5365
5587
|
harness: Schema.NullOr(Schema.String),
|
|
5366
5588
|
cwd: Schema.String,
|
|
5589
|
+
/** When the conversation row was created — the page's elapsed run time. */
|
|
5590
|
+
createdAt: Schema.String,
|
|
5367
5591
|
sessionAlive: Schema.Boolean
|
|
5368
5592
|
});
|
|
5369
5593
|
const FlywheelLastTick = Schema.Struct({
|
|
@@ -5385,11 +5609,28 @@ const FlywheelJournalSummary = Schema.Struct({
|
|
|
5385
5609
|
type: Schema.String,
|
|
5386
5610
|
source: Schema.optional(Schema.String)
|
|
5387
5611
|
});
|
|
5612
|
+
/** One live agent pane in the flywheel's project, as the backend inventory reports it. */
|
|
5613
|
+
const FlywheelAgentSummary = Schema.Struct({
|
|
5614
|
+
issueId: Schema.String,
|
|
5615
|
+
role: Schema.String,
|
|
5616
|
+
harness: Schema.String,
|
|
5617
|
+
model: Schema.String,
|
|
5618
|
+
state: Schema.String,
|
|
5619
|
+
agentId: Schema.optional(Schema.String)
|
|
5620
|
+
});
|
|
5388
5621
|
const FlywheelInFlightRow = Schema.Struct({
|
|
5389
5622
|
issueId: Schema.String,
|
|
5623
|
+
/** The tracker's title, or `null` when no tracker answered for this issue. */
|
|
5624
|
+
title: Schema.NullOr(Schema.String),
|
|
5390
5625
|
state: IssueState,
|
|
5391
5626
|
attention: Schema.optional(IssueAttention),
|
|
5392
5627
|
pr: Schema.optional(DerivedPrState),
|
|
5628
|
+
/** Set when no configured tracker answered: the state is a guess, not a fact. */
|
|
5629
|
+
trackerUnknown: Schema.optional(Schema.Literal(true)),
|
|
5630
|
+
/** Live agent panes on this issue. `working` with 0 means nobody is driving it. */
|
|
5631
|
+
liveAgents: Schema.Number,
|
|
5632
|
+
/** The loop named this id in its newest tick marker's in-flight list. */
|
|
5633
|
+
inTick: Schema.Boolean,
|
|
5393
5634
|
lastJournal: Schema.NullOr(FlywheelJournalSummary)
|
|
5394
5635
|
});
|
|
5395
5636
|
const FlywheelOrderBookSummary = Schema.Struct({
|
|
@@ -5406,6 +5647,13 @@ const FlywheelDerivedStatus = Schema.Struct({
|
|
|
5406
5647
|
freshness: Schema.NullOr(FlywheelFreshness),
|
|
5407
5648
|
policies: FlywheelPolicies,
|
|
5408
5649
|
inFlight: Schema.Array(FlywheelInFlightRow),
|
|
5650
|
+
/** Every live agent on an in-flight issue, by issue then role. */
|
|
5651
|
+
agents: Schema.Array(FlywheelAgentSummary),
|
|
5652
|
+
/**
|
|
5653
|
+
* Which list the header counts: `tick` when a running loop named its own
|
|
5654
|
+
* in-flight ids, `census` when the rows are just the feature workspaces.
|
|
5655
|
+
*/
|
|
5656
|
+
inFlightSource: Schema.Literals(["tick", "census"]),
|
|
5409
5657
|
orderBook: Schema.NullOr(FlywheelOrderBookSummary),
|
|
5410
5658
|
projectRoot: Schema.String,
|
|
5411
5659
|
generatedAt: Schema.String
|
|
@@ -5471,7 +5719,8 @@ const CONTEXT_PREVIEW_HARNESSES = [
|
|
|
5471
5719
|
"acp",
|
|
5472
5720
|
"kimi-code",
|
|
5473
5721
|
"opencode",
|
|
5474
|
-
"muse"
|
|
5722
|
+
"muse",
|
|
5723
|
+
"prime-agent"
|
|
5475
5724
|
];
|
|
5476
5725
|
const ContextLayerKind = Schema.Literals(CONTEXT_LAYER_KINDS);
|
|
5477
5726
|
const ContextPreviewHarness = Schema.Literals(CONTEXT_PREVIEW_HARNESSES);
|
|
@@ -5581,6 +5830,7 @@ const ContextHarnessPreviews = Schema.Struct({
|
|
|
5581
5830
|
"kimi-code": Schema.String,
|
|
5582
5831
|
opencode: Schema.optional(Schema.String),
|
|
5583
5832
|
muse: Schema.String,
|
|
5833
|
+
"prime-agent": Schema.String,
|
|
5584
5834
|
fullPrompt: Schema.String
|
|
5585
5835
|
});
|
|
5586
5836
|
const ContextPreviewDiagnostic = Schema.Struct({
|
|
@@ -5639,6 +5889,7 @@ const ArtifactAgentHarness = Schema.Literals([
|
|
|
5639
5889
|
"kimi-code",
|
|
5640
5890
|
"opencode",
|
|
5641
5891
|
"muse",
|
|
5892
|
+
"prime-agent",
|
|
5642
5893
|
"user"
|
|
5643
5894
|
]);
|
|
5644
5895
|
const ArtifactLifecycleState = Schema.Literals([
|
|
@@ -5816,7 +6067,8 @@ const CLAUDE_CODE_BEHAVIOR = {
|
|
|
5816
6067
|
usesCodexHome: false,
|
|
5817
6068
|
injectsPromptTimeMemory: false,
|
|
5818
6069
|
workAgentMode: "claude-code",
|
|
5819
|
-
readyTimeoutSeconds: 30
|
|
6070
|
+
readyTimeoutSeconds: 30,
|
|
6071
|
+
steerKind: "send-now-keys"
|
|
5820
6072
|
};
|
|
5821
6073
|
const OHMYPI_BEHAVIOR = {
|
|
5822
6074
|
displayName: "Pi",
|
|
@@ -5838,7 +6090,14 @@ const OHMYPI_BEHAVIOR = {
|
|
|
5838
6090
|
usesCodexHome: false,
|
|
5839
6091
|
injectsPromptTimeMemory: true,
|
|
5840
6092
|
workAgentMode: "ohmypi-rpc",
|
|
5841
|
-
readyTimeoutSeconds: 120
|
|
6093
|
+
readyTimeoutSeconds: 120,
|
|
6094
|
+
steerKind: "control-channel",
|
|
6095
|
+
effortLevels: [
|
|
6096
|
+
"low",
|
|
6097
|
+
"medium",
|
|
6098
|
+
"high",
|
|
6099
|
+
"xhigh"
|
|
6100
|
+
]
|
|
5842
6101
|
};
|
|
5843
6102
|
const CODEX_BEHAVIOR = {
|
|
5844
6103
|
displayName: "Codex",
|
|
@@ -5860,7 +6119,8 @@ const CODEX_BEHAVIOR = {
|
|
|
5860
6119
|
usesCodexHome: true,
|
|
5861
6120
|
injectsPromptTimeMemory: false,
|
|
5862
6121
|
workAgentMode: "codex-work-tui",
|
|
5863
|
-
readyTimeoutSeconds: 30
|
|
6122
|
+
readyTimeoutSeconds: 30,
|
|
6123
|
+
steerKind: null
|
|
5864
6124
|
};
|
|
5865
6125
|
const ACP_BEHAVIOR = {
|
|
5866
6126
|
displayName: "ACP",
|
|
@@ -5882,7 +6142,8 @@ const ACP_BEHAVIOR = {
|
|
|
5882
6142
|
usesCodexHome: false,
|
|
5883
6143
|
injectsPromptTimeMemory: false,
|
|
5884
6144
|
workAgentMode: "acp-host",
|
|
5885
|
-
readyTimeoutSeconds: 30
|
|
6145
|
+
readyTimeoutSeconds: 30,
|
|
6146
|
+
steerKind: null
|
|
5886
6147
|
};
|
|
5887
6148
|
const KIMI_CODE_BEHAVIOR = {
|
|
5888
6149
|
displayName: "Kimi Code",
|
|
@@ -5904,7 +6165,8 @@ const KIMI_CODE_BEHAVIOR = {
|
|
|
5904
6165
|
usesCodexHome: false,
|
|
5905
6166
|
injectsPromptTimeMemory: false,
|
|
5906
6167
|
workAgentMode: "kimi-code-tui",
|
|
5907
|
-
readyTimeoutSeconds: 60
|
|
6168
|
+
readyTimeoutSeconds: 60,
|
|
6169
|
+
steerKind: null
|
|
5908
6170
|
};
|
|
5909
6171
|
const OPENCODE_BEHAVIOR = {
|
|
5910
6172
|
...ACP_BEHAVIOR,
|
|
@@ -5933,7 +6195,37 @@ const MUSE_BEHAVIOR = {
|
|
|
5933
6195
|
usesCodexHome: false,
|
|
5934
6196
|
injectsPromptTimeMemory: false,
|
|
5935
6197
|
workAgentMode: "muse-tui",
|
|
5936
|
-
readyTimeoutSeconds: 60
|
|
6198
|
+
readyTimeoutSeconds: 60,
|
|
6199
|
+
steerKind: null,
|
|
6200
|
+
effortLevels: [
|
|
6201
|
+
"low",
|
|
6202
|
+
"medium",
|
|
6203
|
+
"high",
|
|
6204
|
+
"xhigh"
|
|
6205
|
+
]
|
|
6206
|
+
};
|
|
6207
|
+
const PRIME_AGENT_BEHAVIOR = {
|
|
6208
|
+
displayName: "Prime Agent",
|
|
6209
|
+
nativeCommands: [],
|
|
6210
|
+
executableName: "prime-agent",
|
|
6211
|
+
processNames: ["prime-agent"],
|
|
6212
|
+
launchCommandKind: "prime-agent-host",
|
|
6213
|
+
deliveryKind: "prime-agent-host-rpc",
|
|
6214
|
+
readinessKind: "prime-agent-host-ready",
|
|
6215
|
+
transcriptKind: "prime-agent-jsonl",
|
|
6216
|
+
sessionIdSource: "prime-agent-session-id",
|
|
6217
|
+
contextLayerKind: "prime-agent",
|
|
6218
|
+
feedKind: "prime_agent",
|
|
6219
|
+
supportsPtySupervisor: false,
|
|
6220
|
+
supportsChannelsBridge: false,
|
|
6221
|
+
supportsConversationStreaming: true,
|
|
6222
|
+
supportsPatchProjection: false,
|
|
6223
|
+
usesRpcFifo: false,
|
|
6224
|
+
usesCodexHome: false,
|
|
6225
|
+
injectsPromptTimeMemory: false,
|
|
6226
|
+
workAgentMode: "prime-agent-host",
|
|
6227
|
+
readyTimeoutSeconds: 60,
|
|
6228
|
+
steerKind: null
|
|
5937
6229
|
};
|
|
5938
6230
|
const BEHAVIORS = {
|
|
5939
6231
|
"opencode": OPENCODE_BEHAVIOR,
|
|
@@ -5942,7 +6234,8 @@ const BEHAVIORS = {
|
|
|
5942
6234
|
codex: CODEX_BEHAVIOR,
|
|
5943
6235
|
acp: ACP_BEHAVIOR,
|
|
5944
6236
|
"kimi-code": KIMI_CODE_BEHAVIOR,
|
|
5945
|
-
muse: MUSE_BEHAVIOR
|
|
6237
|
+
muse: MUSE_BEHAVIOR,
|
|
6238
|
+
"prime-agent": PRIME_AGENT_BEHAVIOR
|
|
5946
6239
|
};
|
|
5947
6240
|
function getHarnessBehavior(harness) {
|
|
5948
6241
|
if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
|
|
@@ -5951,6 +6244,7 @@ function getHarnessBehavior(harness) {
|
|
|
5951
6244
|
if (harness === "acp") return ACP_BEHAVIOR;
|
|
5952
6245
|
if (harness === "kimi-code") return KIMI_CODE_BEHAVIOR;
|
|
5953
6246
|
if (harness === "muse") return MUSE_BEHAVIOR;
|
|
6247
|
+
if (harness === "prime-agent") return PRIME_AGENT_BEHAVIOR;
|
|
5954
6248
|
return CLAUDE_CODE_BEHAVIOR;
|
|
5955
6249
|
}
|
|
5956
6250
|
function getRuntimeBehavior(runtime) {
|
|
@@ -6065,7 +6359,10 @@ const TELEMETRY_EVENT_NAMES = [
|
|
|
6065
6359
|
"agent_question_answered",
|
|
6066
6360
|
"server_boot",
|
|
6067
6361
|
"cli_command_run",
|
|
6068
|
-
"pipeline_stage_changed"
|
|
6362
|
+
"pipeline_stage_changed",
|
|
6363
|
+
"github_quota_sample",
|
|
6364
|
+
"github_rate_limited",
|
|
6365
|
+
"instance_heartbeat"
|
|
6069
6366
|
];
|
|
6070
6367
|
const TELEMETRY_CLI_VERBS = [
|
|
6071
6368
|
"abort",
|
|
@@ -6182,6 +6479,19 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
6182
6479
|
"handoff",
|
|
6183
6480
|
"plain"
|
|
6184
6481
|
],
|
|
6482
|
+
github_caller: [
|
|
6483
|
+
"pipeline_membership",
|
|
6484
|
+
"pr_cache",
|
|
6485
|
+
"pr_sync",
|
|
6486
|
+
"ci_repair",
|
|
6487
|
+
"issue_poller",
|
|
6488
|
+
"close_out",
|
|
6489
|
+
"tracker_client",
|
|
6490
|
+
"app_rest",
|
|
6491
|
+
"quota_sampler",
|
|
6492
|
+
"agent",
|
|
6493
|
+
"other"
|
|
6494
|
+
],
|
|
6185
6495
|
harness: [
|
|
6186
6496
|
"claude-code",
|
|
6187
6497
|
"ohmypi",
|
|
@@ -6189,7 +6499,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
6189
6499
|
"acp",
|
|
6190
6500
|
"kimi-code",
|
|
6191
6501
|
"opencode",
|
|
6192
|
-
"muse"
|
|
6502
|
+
"muse",
|
|
6503
|
+
"prime-agent"
|
|
6193
6504
|
],
|
|
6194
6505
|
merge_kind: ["pipeline"],
|
|
6195
6506
|
model_family: [
|
|
@@ -6213,7 +6524,26 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
6213
6524
|
"clone",
|
|
6214
6525
|
"existing",
|
|
6215
6526
|
"new"
|
|
6216
|
-
]
|
|
6527
|
+
],
|
|
6528
|
+
quota_points_bucket: [
|
|
6529
|
+
"0",
|
|
6530
|
+
"1-49",
|
|
6531
|
+
"50-199",
|
|
6532
|
+
"200-499",
|
|
6533
|
+
"500-999",
|
|
6534
|
+
"1000-2499",
|
|
6535
|
+
"2500+"
|
|
6536
|
+
],
|
|
6537
|
+
quota_remaining_bucket: [
|
|
6538
|
+
"0",
|
|
6539
|
+
"1-99",
|
|
6540
|
+
"100-499",
|
|
6541
|
+
"500-999",
|
|
6542
|
+
"1000-2499",
|
|
6543
|
+
"2500+",
|
|
6544
|
+
"unknown"
|
|
6545
|
+
],
|
|
6546
|
+
rate_limit_kind: ["primary", "secondary"]
|
|
6217
6547
|
};
|
|
6218
6548
|
const TELEMETRY_EVENT_CATALOG = {
|
|
6219
6549
|
dashboard_tab_viewed: { tab: "dashboard_tab" },
|
|
@@ -6256,8 +6586,65 @@ const TELEMETRY_EVENT_CATALOG = {
|
|
|
6256
6586
|
stage: "pipeline_stage",
|
|
6257
6587
|
harness: "harness",
|
|
6258
6588
|
model: "model_family"
|
|
6589
|
+
},
|
|
6590
|
+
github_quota_sample: {
|
|
6591
|
+
graphql_pipeline_membership: "quota_points_bucket",
|
|
6592
|
+
rest_pipeline_membership: "quota_points_bucket",
|
|
6593
|
+
graphql_pr_cache: "quota_points_bucket",
|
|
6594
|
+
rest_pr_cache: "quota_points_bucket",
|
|
6595
|
+
graphql_pr_sync: "quota_points_bucket",
|
|
6596
|
+
rest_pr_sync: "quota_points_bucket",
|
|
6597
|
+
graphql_ci_repair: "quota_points_bucket",
|
|
6598
|
+
rest_ci_repair: "quota_points_bucket",
|
|
6599
|
+
graphql_issue_poller: "quota_points_bucket",
|
|
6600
|
+
rest_issue_poller: "quota_points_bucket",
|
|
6601
|
+
graphql_close_out: "quota_points_bucket",
|
|
6602
|
+
rest_close_out: "quota_points_bucket",
|
|
6603
|
+
graphql_tracker_client: "quota_points_bucket",
|
|
6604
|
+
rest_tracker_client: "quota_points_bucket",
|
|
6605
|
+
graphql_app_rest: "quota_points_bucket",
|
|
6606
|
+
rest_app_rest: "quota_points_bucket",
|
|
6607
|
+
graphql_agent: "quota_points_bucket",
|
|
6608
|
+
rest_agent: "quota_points_bucket",
|
|
6609
|
+
graphql_other: "quota_points_bucket",
|
|
6610
|
+
rest_other: "quota_points_bucket",
|
|
6611
|
+
graphql_unattributed: "quota_points_bucket",
|
|
6612
|
+
min_remaining_graphql: "quota_remaining_bucket",
|
|
6613
|
+
min_remaining_rest: "quota_remaining_bucket",
|
|
6614
|
+
primary_limit_errors: "count_bucket",
|
|
6615
|
+
secondary_limit_errors: "count_bucket"
|
|
6616
|
+
},
|
|
6617
|
+
github_rate_limited: {
|
|
6618
|
+
caller: "github_caller",
|
|
6619
|
+
kind: "rate_limit_kind",
|
|
6620
|
+
own_usage_low: "boolean"
|
|
6621
|
+
},
|
|
6622
|
+
instance_heartbeat: {
|
|
6623
|
+
project_count: "count_bucket",
|
|
6624
|
+
active_agent_count: "count_bucket",
|
|
6625
|
+
dashboard_running: "boolean"
|
|
6259
6626
|
}
|
|
6260
6627
|
};
|
|
6628
|
+
/** PAN-4264: GitHub quota points as a coarse bucket (raw counts are never sent). */
|
|
6629
|
+
function bucketQuotaPoints(points) {
|
|
6630
|
+
if (!(points > 0)) return "0";
|
|
6631
|
+
if (points < 50) return "1-49";
|
|
6632
|
+
if (points < 200) return "50-199";
|
|
6633
|
+
if (points < 500) return "200-499";
|
|
6634
|
+
if (points < 1e3) return "500-999";
|
|
6635
|
+
if (points < 2500) return "1000-2499";
|
|
6636
|
+
return "2500+";
|
|
6637
|
+
}
|
|
6638
|
+
/** PAN-4264: GitHub quota remaining as a coarse bucket; `unknown` without a sample. */
|
|
6639
|
+
function bucketQuotaRemaining(remaining) {
|
|
6640
|
+
if (remaining === void 0 || !Number.isFinite(remaining)) return "unknown";
|
|
6641
|
+
if (remaining <= 0) return "0";
|
|
6642
|
+
if (remaining < 100) return "1-99";
|
|
6643
|
+
if (remaining < 500) return "100-499";
|
|
6644
|
+
if (remaining < 1e3) return "500-999";
|
|
6645
|
+
if (remaining < 2500) return "1000-2499";
|
|
6646
|
+
return "2500+";
|
|
6647
|
+
}
|
|
6261
6648
|
//#endregion
|
|
6262
6649
|
//#region src/composer-commands.generated.ts
|
|
6263
6650
|
const COMPOSER_COMMAND_MANIFEST = [
|
|
@@ -6485,168 +6872,451 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6485
6872
|
"id": "pan-skills",
|
|
6486
6873
|
"path": ["skills"],
|
|
6487
6874
|
"display": "/pan skills",
|
|
6488
|
-
"description": "List and
|
|
6875
|
+
"description": "List skills and set per-level on/off overrides",
|
|
6489
6876
|
"args": [],
|
|
6490
|
-
"options": [
|
|
6491
|
-
"flags": "--json",
|
|
6492
|
-
"description": "Output as JSON",
|
|
6493
|
-
"required": false,
|
|
6494
|
-
"valueHint": null
|
|
6495
|
-
}],
|
|
6877
|
+
"options": [],
|
|
6496
6878
|
"aliases": [],
|
|
6497
6879
|
"category": "Core"
|
|
6498
6880
|
},
|
|
6499
6881
|
{
|
|
6500
|
-
"id": "pan-
|
|
6501
|
-
"path": ["
|
|
6502
|
-
"display": "/pan
|
|
6503
|
-
"description": "List
|
|
6882
|
+
"id": "pan-skills-list",
|
|
6883
|
+
"path": ["skills", "list"],
|
|
6884
|
+
"display": "/pan skills list",
|
|
6885
|
+
"description": "List skills with effective on/off state and its source",
|
|
6504
6886
|
"args": [],
|
|
6505
6887
|
"options": [
|
|
6506
6888
|
{
|
|
6507
|
-
"flags": "--
|
|
6508
|
-
"description": "
|
|
6509
|
-
"required":
|
|
6510
|
-
"valueHint":
|
|
6889
|
+
"flags": "--project <key>",
|
|
6890
|
+
"description": "Resolve for a project",
|
|
6891
|
+
"required": true,
|
|
6892
|
+
"valueHint": "key"
|
|
6511
6893
|
},
|
|
6512
6894
|
{
|
|
6513
|
-
"flags": "--
|
|
6514
|
-
"description": "
|
|
6515
|
-
"required":
|
|
6516
|
-
"valueHint":
|
|
6895
|
+
"flags": "--issue <id>",
|
|
6896
|
+
"description": "Resolve for an issue",
|
|
6897
|
+
"required": true,
|
|
6898
|
+
"valueHint": "id"
|
|
6517
6899
|
},
|
|
6518
6900
|
{
|
|
6519
6901
|
"flags": "--json",
|
|
6520
6902
|
"description": "Output as JSON",
|
|
6521
6903
|
"required": false,
|
|
6522
6904
|
"valueHint": null
|
|
6523
|
-
}
|
|
6905
|
+
}
|
|
6906
|
+
],
|
|
6907
|
+
"aliases": [],
|
|
6908
|
+
"category": "Core"
|
|
6909
|
+
},
|
|
6910
|
+
{
|
|
6911
|
+
"id": "pan-skills-set",
|
|
6912
|
+
"path": ["skills", "set"],
|
|
6913
|
+
"display": "/pan skills set",
|
|
6914
|
+
"description": "Set a skill (<skill> <state>) or a pack (--pack <id> <state>) on, off, or inherit",
|
|
6915
|
+
"args": [{
|
|
6916
|
+
"name": "args",
|
|
6917
|
+
"required": true,
|
|
6918
|
+
"variadic": true
|
|
6919
|
+
}],
|
|
6920
|
+
"options": [
|
|
6524
6921
|
{
|
|
6525
|
-
"flags": "--
|
|
6526
|
-
"description": "
|
|
6922
|
+
"flags": "--project <key>",
|
|
6923
|
+
"description": "Project override",
|
|
6527
6924
|
"required": true,
|
|
6528
|
-
"valueHint": "
|
|
6925
|
+
"valueHint": "key"
|
|
6529
6926
|
},
|
|
6530
6927
|
{
|
|
6531
|
-
"flags": "--
|
|
6532
|
-
"description": "
|
|
6533
|
-
"required":
|
|
6534
|
-
"valueHint":
|
|
6928
|
+
"flags": "--issue <id>",
|
|
6929
|
+
"description": "Issue override",
|
|
6930
|
+
"required": true,
|
|
6931
|
+
"valueHint": "id"
|
|
6535
6932
|
},
|
|
6536
6933
|
{
|
|
6537
|
-
"flags": "--
|
|
6538
|
-
"description": "
|
|
6539
|
-
"required":
|
|
6540
|
-
"valueHint":
|
|
6934
|
+
"flags": "--pack <id>",
|
|
6935
|
+
"description": "Set a whole skill pack instead of one skill",
|
|
6936
|
+
"required": true,
|
|
6937
|
+
"valueHint": "id"
|
|
6541
6938
|
}
|
|
6542
6939
|
],
|
|
6543
6940
|
"aliases": [],
|
|
6544
|
-
"category": "
|
|
6941
|
+
"category": "Core"
|
|
6545
6942
|
},
|
|
6546
6943
|
{
|
|
6547
|
-
"id": "pan-
|
|
6548
|
-
"path": ["
|
|
6549
|
-
"display": "/pan
|
|
6550
|
-
"description": "
|
|
6944
|
+
"id": "pan-skills-pack",
|
|
6945
|
+
"path": ["skills", "pack"],
|
|
6946
|
+
"display": "/pan skills pack",
|
|
6947
|
+
"description": "Register, update, and cache external skill packs pinned to a commit",
|
|
6948
|
+
"args": [],
|
|
6949
|
+
"options": [],
|
|
6950
|
+
"aliases": [],
|
|
6951
|
+
"category": "Core"
|
|
6952
|
+
},
|
|
6953
|
+
{
|
|
6954
|
+
"id": "pan-skills-pack-add",
|
|
6955
|
+
"path": [
|
|
6956
|
+
"skills",
|
|
6957
|
+
"pack",
|
|
6958
|
+
"add"
|
|
6959
|
+
],
|
|
6960
|
+
"display": "/pan skills pack add",
|
|
6961
|
+
"description": "Register a git skill pack at the commit a ref resolves to (enables nothing)",
|
|
6551
6962
|
"args": [{
|
|
6552
6963
|
"name": "id",
|
|
6553
6964
|
"required": true,
|
|
6554
6965
|
"variadic": false
|
|
6966
|
+
}, {
|
|
6967
|
+
"name": "url",
|
|
6968
|
+
"required": true,
|
|
6969
|
+
"variadic": false
|
|
6555
6970
|
}],
|
|
6556
6971
|
"options": [
|
|
6557
6972
|
{
|
|
6558
|
-
"flags": "--
|
|
6559
|
-
"description": "
|
|
6560
|
-
"required":
|
|
6561
|
-
"valueHint":
|
|
6562
|
-
},
|
|
6563
|
-
{
|
|
6564
|
-
"flags": "--context",
|
|
6565
|
-
"description": "Context engineering state only",
|
|
6566
|
-
"required": false,
|
|
6567
|
-
"valueHint": null
|
|
6973
|
+
"flags": "--ref <ref>",
|
|
6974
|
+
"description": "Tag or branch to pin",
|
|
6975
|
+
"required": true,
|
|
6976
|
+
"valueHint": "ref"
|
|
6568
6977
|
},
|
|
6569
6978
|
{
|
|
6570
|
-
"flags": "--
|
|
6571
|
-
"description": "
|
|
6572
|
-
"required":
|
|
6573
|
-
"valueHint":
|
|
6979
|
+
"flags": "--adapter <adapter>",
|
|
6980
|
+
"description": "plain or claude-plugin",
|
|
6981
|
+
"required": true,
|
|
6982
|
+
"valueHint": "adapter"
|
|
6574
6983
|
},
|
|
6575
6984
|
{
|
|
6576
|
-
"flags": "--
|
|
6577
|
-
"description": "
|
|
6985
|
+
"flags": "--yes",
|
|
6986
|
+
"description": "Trust the resolved commit without asking",
|
|
6578
6987
|
"required": false,
|
|
6579
6988
|
"valueHint": null
|
|
6580
6989
|
}
|
|
6581
6990
|
],
|
|
6582
6991
|
"aliases": [],
|
|
6583
|
-
"category": "
|
|
6992
|
+
"category": "Core"
|
|
6584
6993
|
},
|
|
6585
6994
|
{
|
|
6586
|
-
"id": "pan-
|
|
6587
|
-
"path": [
|
|
6588
|
-
|
|
6589
|
-
|
|
6995
|
+
"id": "pan-skills-pack-update",
|
|
6996
|
+
"path": [
|
|
6997
|
+
"skills",
|
|
6998
|
+
"pack",
|
|
6999
|
+
"update"
|
|
7000
|
+
],
|
|
7001
|
+
"display": "/pan skills pack update",
|
|
7002
|
+
"description": "Move a pack to the commit its ref (or --ref) now resolves to",
|
|
6590
7003
|
"args": [{
|
|
6591
7004
|
"name": "id",
|
|
6592
7005
|
"required": true,
|
|
6593
7006
|
"variadic": false
|
|
6594
7007
|
}],
|
|
6595
7008
|
"options": [{
|
|
6596
|
-
"flags": "
|
|
6597
|
-
"description": "
|
|
7009
|
+
"flags": "--ref <ref>",
|
|
7010
|
+
"description": "Switch to a different tag or branch",
|
|
6598
7011
|
"required": true,
|
|
6599
|
-
"valueHint": "
|
|
7012
|
+
"valueHint": "ref"
|
|
7013
|
+
}, {
|
|
7014
|
+
"flags": "--yes",
|
|
7015
|
+
"description": "Trust the new commit without asking",
|
|
7016
|
+
"required": false,
|
|
7017
|
+
"valueHint": null
|
|
6600
7018
|
}],
|
|
6601
7019
|
"aliases": [],
|
|
6602
|
-
"category": "
|
|
7020
|
+
"category": "Core"
|
|
6603
7021
|
},
|
|
6604
7022
|
{
|
|
6605
|
-
"id": "pan-
|
|
6606
|
-
"path": [
|
|
6607
|
-
|
|
6608
|
-
|
|
7023
|
+
"id": "pan-skills-pack-list",
|
|
7024
|
+
"path": [
|
|
7025
|
+
"skills",
|
|
7026
|
+
"pack",
|
|
7027
|
+
"list"
|
|
7028
|
+
],
|
|
7029
|
+
"display": "/pan skills pack list",
|
|
7030
|
+
"description": "List registered skill packs",
|
|
6609
7031
|
"args": [],
|
|
6610
|
-
"options": [
|
|
7032
|
+
"options": [{
|
|
7033
|
+
"flags": "--json",
|
|
7034
|
+
"description": "Output as JSON",
|
|
7035
|
+
"required": false,
|
|
7036
|
+
"valueHint": null
|
|
7037
|
+
}, {
|
|
7038
|
+
"flags": "--offline",
|
|
7039
|
+
"description": "Skip the update check (no network)",
|
|
7040
|
+
"required": false,
|
|
7041
|
+
"valueHint": null
|
|
7042
|
+
}],
|
|
6611
7043
|
"aliases": [],
|
|
6612
|
-
"category": "
|
|
7044
|
+
"category": "Core"
|
|
6613
7045
|
},
|
|
6614
7046
|
{
|
|
6615
|
-
"id": "pan-
|
|
6616
|
-
"path": [
|
|
6617
|
-
|
|
6618
|
-
|
|
7047
|
+
"id": "pan-skills-pack-remove",
|
|
7048
|
+
"path": [
|
|
7049
|
+
"skills",
|
|
7050
|
+
"pack",
|
|
7051
|
+
"remove"
|
|
7052
|
+
],
|
|
7053
|
+
"display": "/pan skills pack remove",
|
|
7054
|
+
"description": "Unregister a pack, clear its global toggles, and delete its cache",
|
|
6619
7055
|
"args": [{
|
|
6620
7056
|
"name": "id",
|
|
6621
7057
|
"required": true,
|
|
6622
7058
|
"variadic": false
|
|
6623
7059
|
}],
|
|
6624
|
-
"options": [
|
|
6625
|
-
"flags": "-m, --message <text>",
|
|
6626
|
-
"description": "Message describing the fixes applied",
|
|
6627
|
-
"required": true,
|
|
6628
|
-
"valueHint": "text"
|
|
6629
|
-
}],
|
|
7060
|
+
"options": [],
|
|
6630
7061
|
"aliases": [],
|
|
6631
|
-
"category": "
|
|
7062
|
+
"category": "Core"
|
|
6632
7063
|
},
|
|
6633
7064
|
{
|
|
6634
|
-
"id": "pan-
|
|
6635
|
-
"path": [
|
|
6636
|
-
|
|
6637
|
-
|
|
7065
|
+
"id": "pan-skills-pack-sync",
|
|
7066
|
+
"path": [
|
|
7067
|
+
"skills",
|
|
7068
|
+
"pack",
|
|
7069
|
+
"sync"
|
|
7070
|
+
],
|
|
7071
|
+
"display": "/pan skills pack sync",
|
|
7072
|
+
"description": "Re-fetch packs and extract their trusted commits (all packs when omitted)",
|
|
6638
7073
|
"args": [{
|
|
6639
7074
|
"name": "id",
|
|
6640
|
-
"required":
|
|
7075
|
+
"required": false,
|
|
6641
7076
|
"variadic": false
|
|
6642
7077
|
}],
|
|
6643
7078
|
"options": [],
|
|
6644
7079
|
"aliases": [],
|
|
6645
|
-
"category": "
|
|
7080
|
+
"category": "Core"
|
|
6646
7081
|
},
|
|
6647
7082
|
{
|
|
6648
|
-
"id": "pan-
|
|
6649
|
-
"path": [
|
|
7083
|
+
"id": "pan-skills-pack-gc",
|
|
7084
|
+
"path": [
|
|
7085
|
+
"skills",
|
|
7086
|
+
"pack",
|
|
7087
|
+
"gc"
|
|
7088
|
+
],
|
|
7089
|
+
"display": "/pan skills pack gc",
|
|
7090
|
+
"description": "Remove unused skill pack mounts and dangling launch links",
|
|
7091
|
+
"args": [],
|
|
7092
|
+
"options": [{
|
|
7093
|
+
"flags": "--max-age-days <n>",
|
|
7094
|
+
"description": "Keep unused mounts younger than this",
|
|
7095
|
+
"required": true,
|
|
7096
|
+
"valueHint": "n"
|
|
7097
|
+
}],
|
|
7098
|
+
"aliases": [],
|
|
7099
|
+
"category": "Core"
|
|
7100
|
+
},
|
|
7101
|
+
{
|
|
7102
|
+
"id": "pan-pair",
|
|
7103
|
+
"path": ["pair"],
|
|
7104
|
+
"display": "/pan pair",
|
|
7105
|
+
"description": "Print a one-time URL that pairs another device with this dashboard (see configuration/remote-access.mdx)",
|
|
7106
|
+
"args": [],
|
|
7107
|
+
"options": [
|
|
7108
|
+
{
|
|
7109
|
+
"flags": "--label <name>",
|
|
7110
|
+
"description": "Name to record for the pairing in the activity log",
|
|
7111
|
+
"required": true,
|
|
7112
|
+
"valueHint": "name"
|
|
7113
|
+
},
|
|
7114
|
+
{
|
|
7115
|
+
"flags": "--url <base>",
|
|
7116
|
+
"description": "Base URL the other device can reach (default: this dashboard's API URL)",
|
|
7117
|
+
"required": true,
|
|
7118
|
+
"valueHint": "base"
|
|
7119
|
+
},
|
|
7120
|
+
{
|
|
7121
|
+
"flags": "--json",
|
|
7122
|
+
"description": "Print { url, credential, expiresAt } as JSON",
|
|
7123
|
+
"required": false,
|
|
7124
|
+
"valueHint": null
|
|
7125
|
+
}
|
|
7126
|
+
],
|
|
7127
|
+
"aliases": [],
|
|
7128
|
+
"category": "CLI"
|
|
7129
|
+
},
|
|
7130
|
+
{
|
|
7131
|
+
"id": "pan-devices",
|
|
7132
|
+
"path": ["devices"],
|
|
7133
|
+
"display": "/pan devices",
|
|
7134
|
+
"description": "List or revoke paired devices (see configuration/remote-access.mdx)",
|
|
7135
|
+
"args": [],
|
|
7136
|
+
"options": [],
|
|
7137
|
+
"aliases": [],
|
|
7138
|
+
"category": "CLI"
|
|
7139
|
+
},
|
|
7140
|
+
{
|
|
7141
|
+
"id": "pan-devices-list",
|
|
7142
|
+
"path": ["devices", "list"],
|
|
7143
|
+
"display": "/pan devices list",
|
|
7144
|
+
"description": "List paired devices with created, last-used and revoked times",
|
|
7145
|
+
"args": [],
|
|
7146
|
+
"options": [{
|
|
7147
|
+
"flags": "--json",
|
|
7148
|
+
"description": "Print the devices as JSON",
|
|
7149
|
+
"required": false,
|
|
7150
|
+
"valueHint": null
|
|
7151
|
+
}],
|
|
7152
|
+
"aliases": [],
|
|
7153
|
+
"category": "CLI"
|
|
7154
|
+
},
|
|
7155
|
+
{
|
|
7156
|
+
"id": "pan-devices-revoke",
|
|
7157
|
+
"path": ["devices", "revoke"],
|
|
7158
|
+
"display": "/pan devices revoke",
|
|
7159
|
+
"description": "Revoke a paired device and close its live connections",
|
|
7160
|
+
"args": [{
|
|
7161
|
+
"name": "id",
|
|
7162
|
+
"required": true,
|
|
7163
|
+
"variadic": false
|
|
7164
|
+
}],
|
|
7165
|
+
"options": [],
|
|
7166
|
+
"aliases": [],
|
|
7167
|
+
"category": "CLI"
|
|
7168
|
+
},
|
|
7169
|
+
{
|
|
7170
|
+
"id": "pan-issues",
|
|
7171
|
+
"path": ["issues"],
|
|
7172
|
+
"display": "/pan issues",
|
|
7173
|
+
"description": "List and triage work across configured trackers",
|
|
7174
|
+
"args": [],
|
|
7175
|
+
"options": [
|
|
7176
|
+
{
|
|
7177
|
+
"flags": "--all",
|
|
7178
|
+
"description": "Include closed issues",
|
|
7179
|
+
"required": false,
|
|
7180
|
+
"valueHint": null
|
|
7181
|
+
},
|
|
7182
|
+
{
|
|
7183
|
+
"flags": "--mine",
|
|
7184
|
+
"description": "Show only my assigned issues",
|
|
7185
|
+
"required": false,
|
|
7186
|
+
"valueHint": null
|
|
7187
|
+
},
|
|
7188
|
+
{
|
|
7189
|
+
"flags": "--json",
|
|
7190
|
+
"description": "Output as JSON",
|
|
7191
|
+
"required": false,
|
|
7192
|
+
"valueHint": null
|
|
7193
|
+
},
|
|
7194
|
+
{
|
|
7195
|
+
"flags": "--tracker <type>",
|
|
7196
|
+
"description": "Query specific tracker (linear/github/gitlab)",
|
|
7197
|
+
"required": true,
|
|
7198
|
+
"valueHint": "type"
|
|
7199
|
+
},
|
|
7200
|
+
{
|
|
7201
|
+
"flags": "--all-trackers",
|
|
7202
|
+
"description": "Query all configured trackers",
|
|
7203
|
+
"required": false,
|
|
7204
|
+
"valueHint": null
|
|
7205
|
+
},
|
|
7206
|
+
{
|
|
7207
|
+
"flags": "--triage",
|
|
7208
|
+
"description": "Show triage queue",
|
|
7209
|
+
"required": false,
|
|
7210
|
+
"valueHint": null
|
|
7211
|
+
}
|
|
7212
|
+
],
|
|
7213
|
+
"aliases": [],
|
|
7214
|
+
"category": "Lifecycle"
|
|
7215
|
+
},
|
|
7216
|
+
{
|
|
7217
|
+
"id": "pan-show",
|
|
7218
|
+
"path": ["show"],
|
|
7219
|
+
"display": "/pan show",
|
|
7220
|
+
"description": "Unified lens: derived issue state, CV, context, health for one issue",
|
|
7221
|
+
"args": [{
|
|
7222
|
+
"name": "id",
|
|
7223
|
+
"required": true,
|
|
7224
|
+
"variadic": false
|
|
7225
|
+
}],
|
|
7226
|
+
"options": [
|
|
7227
|
+
{
|
|
7228
|
+
"flags": "--cv",
|
|
7229
|
+
"description": "Agent work history only",
|
|
7230
|
+
"required": false,
|
|
7231
|
+
"valueHint": null
|
|
7232
|
+
},
|
|
7233
|
+
{
|
|
7234
|
+
"flags": "--context",
|
|
7235
|
+
"description": "Context engineering state only",
|
|
7236
|
+
"required": false,
|
|
7237
|
+
"valueHint": null
|
|
7238
|
+
},
|
|
7239
|
+
{
|
|
7240
|
+
"flags": "--health",
|
|
7241
|
+
"description": "Health + heartbeat only",
|
|
7242
|
+
"required": false,
|
|
7243
|
+
"valueHint": null
|
|
7244
|
+
},
|
|
7245
|
+
{
|
|
7246
|
+
"flags": "--json",
|
|
7247
|
+
"description": "Output as JSON",
|
|
7248
|
+
"required": false,
|
|
7249
|
+
"valueHint": null
|
|
7250
|
+
}
|
|
7251
|
+
],
|
|
7252
|
+
"aliases": [],
|
|
7253
|
+
"category": "Observation"
|
|
7254
|
+
},
|
|
7255
|
+
{
|
|
7256
|
+
"id": "pan-open",
|
|
7257
|
+
"path": ["open"],
|
|
7258
|
+
"display": "/pan open",
|
|
7259
|
+
"description": "Open an issue workspace in your preferred editor",
|
|
7260
|
+
"args": [{
|
|
7261
|
+
"name": "id",
|
|
7262
|
+
"required": true,
|
|
7263
|
+
"variadic": false
|
|
7264
|
+
}],
|
|
7265
|
+
"options": [{
|
|
7266
|
+
"flags": "-e, --editor <editor>",
|
|
7267
|
+
"description": "Editor to use (cursor, windsurf, vscode, zed, etc.)",
|
|
7268
|
+
"required": true,
|
|
7269
|
+
"valueHint": "editor"
|
|
7270
|
+
}],
|
|
7271
|
+
"aliases": [],
|
|
7272
|
+
"category": "Observation"
|
|
7273
|
+
},
|
|
7274
|
+
{
|
|
7275
|
+
"id": "pan-review",
|
|
7276
|
+
"path": ["review"],
|
|
7277
|
+
"display": "/pan review",
|
|
7278
|
+
"description": "Review-loop management: request re-review, abort reviewers, restart a round",
|
|
7279
|
+
"args": [],
|
|
7280
|
+
"options": [],
|
|
7281
|
+
"aliases": [],
|
|
7282
|
+
"category": "Review"
|
|
7283
|
+
},
|
|
7284
|
+
{
|
|
7285
|
+
"id": "pan-review-request",
|
|
7286
|
+
"path": ["review", "request"],
|
|
7287
|
+
"display": "/pan review request",
|
|
7288
|
+
"description": "Request re-review after fixing feedback",
|
|
7289
|
+
"args": [{
|
|
7290
|
+
"name": "id",
|
|
7291
|
+
"required": true,
|
|
7292
|
+
"variadic": false
|
|
7293
|
+
}],
|
|
7294
|
+
"options": [{
|
|
7295
|
+
"flags": "-m, --message <text>",
|
|
7296
|
+
"description": "Message describing the fixes applied",
|
|
7297
|
+
"required": true,
|
|
7298
|
+
"valueHint": "text"
|
|
7299
|
+
}],
|
|
7300
|
+
"aliases": [],
|
|
7301
|
+
"category": "Review"
|
|
7302
|
+
},
|
|
7303
|
+
{
|
|
7304
|
+
"id": "pan-review-abort",
|
|
7305
|
+
"path": ["review", "abort"],
|
|
7306
|
+
"display": "/pan review abort",
|
|
7307
|
+
"description": "Kill all running reviewer sessions and leave the worker idle",
|
|
7308
|
+
"args": [{
|
|
7309
|
+
"name": "id",
|
|
7310
|
+
"required": true,
|
|
7311
|
+
"variadic": false
|
|
7312
|
+
}],
|
|
7313
|
+
"options": [],
|
|
7314
|
+
"aliases": [],
|
|
7315
|
+
"category": "Review"
|
|
7316
|
+
},
|
|
7317
|
+
{
|
|
7318
|
+
"id": "pan-review-restart",
|
|
7319
|
+
"path": ["review", "restart"],
|
|
6650
7320
|
"display": "/pan review restart",
|
|
6651
7321
|
"description": "Resume review and re-dispatch reviewers missing a report",
|
|
6652
7322
|
"args": [{
|
|
@@ -6748,7 +7418,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6748
7418
|
},
|
|
6749
7419
|
{
|
|
6750
7420
|
"flags": "--harness <harness>",
|
|
6751
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse (defaults to role/provider settings)",
|
|
7421
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)",
|
|
6752
7422
|
"required": true,
|
|
6753
7423
|
"valueHint": "harness"
|
|
6754
7424
|
},
|
|
@@ -6810,6 +7480,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6810
7480
|
"description": "Bypass the PRD-first gate for a genuinely trivial issue (loud; prefer writing the PRD)",
|
|
6811
7481
|
"required": false,
|
|
6812
7482
|
"valueHint": null
|
|
7483
|
+
},
|
|
7484
|
+
{
|
|
7485
|
+
"flags": "--critic",
|
|
7486
|
+
"description": "Require an independent different-family plan critique before promotion (automatic for architecture, substrate-improvement and security labels)",
|
|
7487
|
+
"required": false,
|
|
7488
|
+
"valueHint": null
|
|
6813
7489
|
}
|
|
6814
7490
|
],
|
|
6815
7491
|
"aliases": [],
|
|
@@ -6848,7 +7524,17 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6848
7524
|
"required": true,
|
|
6849
7525
|
"variadic": false
|
|
6850
7526
|
}],
|
|
6851
|
-
"options": [
|
|
7527
|
+
"options": [{
|
|
7528
|
+
"flags": "--force",
|
|
7529
|
+
"description": "Deliver even to a critic or verifier lane that already filed its verdict",
|
|
7530
|
+
"required": false,
|
|
7531
|
+
"valueHint": null
|
|
7532
|
+
}, {
|
|
7533
|
+
"flags": "--steer",
|
|
7534
|
+
"description": "Interrupt the running turn and send now (Claude Code send-now; Ctrl+X Ctrl+S)",
|
|
7535
|
+
"required": false,
|
|
7536
|
+
"valueHint": null
|
|
7537
|
+
}],
|
|
6852
7538
|
"aliases": [],
|
|
6853
7539
|
"category": "Lifecycle"
|
|
6854
7540
|
},
|
|
@@ -7006,6 +7692,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7006
7692
|
"required": true,
|
|
7007
7693
|
"valueHint": "path"
|
|
7008
7694
|
},
|
|
7695
|
+
{
|
|
7696
|
+
"flags": "--allow-primary",
|
|
7697
|
+
"description": "Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)",
|
|
7698
|
+
"required": false,
|
|
7699
|
+
"valueHint": null
|
|
7700
|
+
},
|
|
7009
7701
|
{
|
|
7010
7702
|
"flags": "--project <key>",
|
|
7011
7703
|
"description": "Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project",
|
|
@@ -7055,6 +7747,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7055
7747
|
"required": true,
|
|
7056
7748
|
"valueHint": "path"
|
|
7057
7749
|
},
|
|
7750
|
+
{
|
|
7751
|
+
"flags": "--allow-primary",
|
|
7752
|
+
"description": "Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)",
|
|
7753
|
+
"required": false,
|
|
7754
|
+
"valueHint": null
|
|
7755
|
+
},
|
|
7058
7756
|
{
|
|
7059
7757
|
"flags": "--project <key>",
|
|
7060
7758
|
"description": "Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project",
|
|
@@ -7427,7 +8125,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7427
8125
|
},
|
|
7428
8126
|
{
|
|
7429
8127
|
"flags": "--harness <harness>",
|
|
7430
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse (defaults to role/provider settings)",
|
|
8128
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)",
|
|
7431
8129
|
"required": true,
|
|
7432
8130
|
"valueHint": "harness"
|
|
7433
8131
|
},
|
|
@@ -7505,7 +8203,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7505
8203
|
},
|
|
7506
8204
|
{
|
|
7507
8205
|
"flags": "--skip-freshness",
|
|
7508
|
-
"description": "Bypass the plan-freshness preflight and spawn even if the plan names files
|
|
8206
|
+
"description": "Bypass the plan-freshness preflight and spawn even if the plan names files deleted since it was written",
|
|
7509
8207
|
"required": false,
|
|
7510
8208
|
"valueHint": null
|
|
7511
8209
|
}
|
|
@@ -7532,7 +8230,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7532
8230
|
},
|
|
7533
8231
|
{
|
|
7534
8232
|
"flags": "--harness <harness>",
|
|
7535
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse (defaults to role/provider settings)",
|
|
8233
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)",
|
|
7536
8234
|
"required": true,
|
|
7537
8235
|
"valueHint": "harness"
|
|
7538
8236
|
},
|
|
@@ -7885,6 +8583,11 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7885
8583
|
"description": "Print JSON",
|
|
7886
8584
|
"required": false,
|
|
7887
8585
|
"valueHint": null
|
|
8586
|
+
}, {
|
|
8587
|
+
"flags": "--steal",
|
|
8588
|
+
"description": "Claim even when a running agent holds this item or an overlapping one (foreman/operator override)",
|
|
8589
|
+
"required": false,
|
|
8590
|
+
"valueHint": null
|
|
7888
8591
|
}],
|
|
7889
8592
|
"aliases": [],
|
|
7890
8593
|
"category": "Lifecycle"
|
|
@@ -8543,542 +9246,972 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8543
9246
|
"category": "Workspace"
|
|
8544
9247
|
},
|
|
8545
9248
|
{
|
|
8546
|
-
"id": "pan-
|
|
8547
|
-
"path": ["
|
|
8548
|
-
"display": "/pan
|
|
8549
|
-
"description": "
|
|
9249
|
+
"id": "pan-vault",
|
|
9250
|
+
"path": ["vault"],
|
|
9251
|
+
"display": "/pan vault",
|
|
9252
|
+
"description": "Session Vault: encrypted off-machine storage and cross-machine resume for agent conversations",
|
|
8550
9253
|
"args": [],
|
|
8551
9254
|
"options": [],
|
|
8552
9255
|
"aliases": [],
|
|
8553
|
-
"category": "
|
|
9256
|
+
"category": "CLI"
|
|
8554
9257
|
},
|
|
8555
9258
|
{
|
|
8556
|
-
"id": "pan-
|
|
8557
|
-
"path": ["
|
|
8558
|
-
"display": "/pan
|
|
8559
|
-
"description": "
|
|
9259
|
+
"id": "pan-vault-setup",
|
|
9260
|
+
"path": ["vault", "setup"],
|
|
9261
|
+
"display": "/pan vault setup",
|
|
9262
|
+
"description": "Enable the vault against your own git remote and print the recovery phrase once",
|
|
8560
9263
|
"args": [{
|
|
8561
|
-
"name": "
|
|
8562
|
-
"required":
|
|
9264
|
+
"name": "git-url",
|
|
9265
|
+
"required": true,
|
|
8563
9266
|
"variadic": false
|
|
8564
9267
|
}],
|
|
8565
9268
|
"options": [
|
|
8566
9269
|
{
|
|
8567
|
-
"flags": "--
|
|
8568
|
-
"description": "
|
|
8569
|
-
"required":
|
|
8570
|
-
"valueHint":
|
|
9270
|
+
"flags": "--hooks",
|
|
9271
|
+
"description": "Also register the Claude Code Stop hook that saves after each turn",
|
|
9272
|
+
"required": false,
|
|
9273
|
+
"valueHint": null
|
|
8571
9274
|
},
|
|
8572
9275
|
{
|
|
8573
|
-
"flags": "--
|
|
8574
|
-
"description": "
|
|
9276
|
+
"flags": "--passphrase-file <path>",
|
|
9277
|
+
"description": "Also enable passphrase unlock with the passphrase in this file",
|
|
8575
9278
|
"required": true,
|
|
8576
|
-
"valueHint": "
|
|
9279
|
+
"valueHint": "path"
|
|
8577
9280
|
},
|
|
8578
9281
|
{
|
|
8579
|
-
"flags": "--
|
|
8580
|
-
"description": "
|
|
9282
|
+
"flags": "--generate-passphrase",
|
|
9283
|
+
"description": "Also enable passphrase unlock with a generated 6-word passphrase, printed once",
|
|
8581
9284
|
"required": false,
|
|
8582
9285
|
"valueHint": null
|
|
8583
|
-
}
|
|
9286
|
+
},
|
|
9287
|
+
{
|
|
9288
|
+
"flags": "--no-passphrase",
|
|
9289
|
+
"description": "Do not offer passphrase unlock",
|
|
9290
|
+
"required": false,
|
|
9291
|
+
"valueHint": null
|
|
9292
|
+
}
|
|
8584
9293
|
],
|
|
8585
9294
|
"aliases": [],
|
|
8586
|
-
"category": "
|
|
9295
|
+
"category": "CLI"
|
|
8587
9296
|
},
|
|
8588
9297
|
{
|
|
8589
|
-
"id": "pan-
|
|
8590
|
-
"path": ["
|
|
8591
|
-
"display": "/pan
|
|
8592
|
-
"description": "
|
|
9298
|
+
"id": "pan-vault-join",
|
|
9299
|
+
"path": ["vault", "join"],
|
|
9300
|
+
"display": "/pan vault join",
|
|
9301
|
+
"description": "Join an existing vault from another machine with the vault passphrase or the recovery phrase",
|
|
8593
9302
|
"args": [{
|
|
8594
|
-
"name": "
|
|
8595
|
-
"required":
|
|
9303
|
+
"name": "git-url",
|
|
9304
|
+
"required": true,
|
|
8596
9305
|
"variadic": false
|
|
8597
9306
|
}],
|
|
8598
|
-
"options": [
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
9307
|
+
"options": [{
|
|
9308
|
+
"flags": "--phrase-file <path>",
|
|
9309
|
+
"description": "Read the 24-word recovery phrase from a file instead of prompting",
|
|
9310
|
+
"required": true,
|
|
9311
|
+
"valueHint": "path"
|
|
9312
|
+
}, {
|
|
9313
|
+
"flags": "--passphrase-file <path>",
|
|
9314
|
+
"description": "Read the vault passphrase from a file instead of prompting",
|
|
9315
|
+
"required": true,
|
|
9316
|
+
"valueHint": "path"
|
|
9317
|
+
}],
|
|
8609
9318
|
"aliases": [],
|
|
8610
|
-
"category": "
|
|
9319
|
+
"category": "CLI"
|
|
8611
9320
|
},
|
|
8612
9321
|
{
|
|
8613
|
-
"id": "pan-
|
|
8614
|
-
"path": ["
|
|
8615
|
-
"display": "/pan
|
|
8616
|
-
"description": "
|
|
9322
|
+
"id": "pan-vault-passphrase",
|
|
9323
|
+
"path": ["vault", "passphrase"],
|
|
9324
|
+
"display": "/pan vault passphrase",
|
|
9325
|
+
"description": "Turn passphrase unlock for new machines on (set) or off (remove); the vault key stays the same",
|
|
8617
9326
|
"args": [],
|
|
8618
9327
|
"options": [],
|
|
8619
9328
|
"aliases": [],
|
|
8620
|
-
"category": "
|
|
9329
|
+
"category": "CLI"
|
|
8621
9330
|
},
|
|
8622
9331
|
{
|
|
8623
|
-
"id": "pan-
|
|
9332
|
+
"id": "pan-vault-passphrase-set",
|
|
8624
9333
|
"path": [
|
|
8625
|
-
"
|
|
8626
|
-
"
|
|
8627
|
-
"
|
|
9334
|
+
"vault",
|
|
9335
|
+
"passphrase",
|
|
9336
|
+
"set"
|
|
8628
9337
|
],
|
|
8629
|
-
"display": "/pan
|
|
8630
|
-
"description": "
|
|
9338
|
+
"display": "/pan vault passphrase set",
|
|
9339
|
+
"description": "Wrap the vault key under a passphrase so a new machine can join without the recovery phrase",
|
|
8631
9340
|
"args": [],
|
|
8632
|
-
"options": [
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
},
|
|
8636
|
-
{
|
|
8637
|
-
"id": "pan-tts-voices-show",
|
|
8638
|
-
"path": [
|
|
8639
|
-
"tts",
|
|
8640
|
-
"voices",
|
|
8641
|
-
"show"
|
|
8642
|
-
],
|
|
8643
|
-
"display": "/pan tts voices show",
|
|
8644
|
-
"description": "Show saved TTS voice details",
|
|
8645
|
-
"args": [{
|
|
8646
|
-
"name": "name",
|
|
9341
|
+
"options": [{
|
|
9342
|
+
"flags": "--passphrase-file <path>",
|
|
9343
|
+
"description": "Read the passphrase from a file instead of prompting",
|
|
8647
9344
|
"required": true,
|
|
8648
|
-
"
|
|
9345
|
+
"valueHint": "path"
|
|
9346
|
+
}, {
|
|
9347
|
+
"flags": "--generate",
|
|
9348
|
+
"description": "Generate a 6-word passphrase and print it once",
|
|
9349
|
+
"required": false,
|
|
9350
|
+
"valueHint": null
|
|
8649
9351
|
}],
|
|
8650
|
-
"options": [],
|
|
8651
9352
|
"aliases": [],
|
|
8652
|
-
"category": "
|
|
9353
|
+
"category": "CLI"
|
|
8653
9354
|
},
|
|
8654
9355
|
{
|
|
8655
|
-
"id": "pan-
|
|
9356
|
+
"id": "pan-vault-passphrase-remove",
|
|
8656
9357
|
"path": [
|
|
8657
|
-
"
|
|
8658
|
-
"
|
|
8659
|
-
"
|
|
9358
|
+
"vault",
|
|
9359
|
+
"passphrase",
|
|
9360
|
+
"remove"
|
|
8660
9361
|
],
|
|
8661
|
-
"display": "/pan
|
|
8662
|
-
"description": "
|
|
8663
|
-
"args": [
|
|
8664
|
-
"name": "name",
|
|
8665
|
-
"required": true,
|
|
8666
|
-
"variadic": false
|
|
8667
|
-
}, {
|
|
8668
|
-
"name": "text",
|
|
8669
|
-
"required": false,
|
|
8670
|
-
"variadic": false
|
|
8671
|
-
}],
|
|
9362
|
+
"display": "/pan vault passphrase remove",
|
|
9363
|
+
"description": "Delete the passphrase unlock object; joining then needs the recovery phrase",
|
|
9364
|
+
"args": [],
|
|
8672
9365
|
"options": [],
|
|
8673
9366
|
"aliases": [],
|
|
8674
|
-
"category": "
|
|
9367
|
+
"category": "CLI"
|
|
8675
9368
|
},
|
|
8676
9369
|
{
|
|
8677
|
-
"id": "pan-
|
|
8678
|
-
"path": [
|
|
8679
|
-
|
|
8680
|
-
|
|
8681
|
-
|
|
9370
|
+
"id": "pan-vault-rotate-key",
|
|
9371
|
+
"path": ["vault", "rotate-key"],
|
|
9372
|
+
"display": "/pan vault rotate-key",
|
|
9373
|
+
"description": "Replace the vault key after losing a device: re-encrypt refs under a new key, keep old chunks readable, print a new recovery phrase",
|
|
9374
|
+
"args": [],
|
|
9375
|
+
"options": [
|
|
9376
|
+
{
|
|
9377
|
+
"flags": "--yes",
|
|
9378
|
+
"description": "Rotate without the confirmation prompt",
|
|
9379
|
+
"required": false,
|
|
9380
|
+
"valueHint": null
|
|
9381
|
+
},
|
|
9382
|
+
{
|
|
9383
|
+
"flags": "--passphrase-file <path>",
|
|
9384
|
+
"description": "Re-wrap passphrase unlock under the new key with the passphrase in this file",
|
|
9385
|
+
"required": true,
|
|
9386
|
+
"valueHint": "path"
|
|
9387
|
+
},
|
|
9388
|
+
{
|
|
9389
|
+
"flags": "--generate-passphrase",
|
|
9390
|
+
"description": "Re-wrap passphrase unlock under the new key with a generated 6-word passphrase, printed once",
|
|
9391
|
+
"required": false,
|
|
9392
|
+
"valueHint": null
|
|
9393
|
+
},
|
|
9394
|
+
{
|
|
9395
|
+
"flags": "--no-passphrase",
|
|
9396
|
+
"description": "Turn passphrase unlock off",
|
|
9397
|
+
"required": false,
|
|
9398
|
+
"valueHint": null
|
|
9399
|
+
}
|
|
8682
9400
|
],
|
|
8683
|
-
"display": "/pan tts voices delete",
|
|
8684
|
-
"description": "Delete a saved TTS voice",
|
|
8685
|
-
"args": [{
|
|
8686
|
-
"name": "name",
|
|
8687
|
-
"required": true,
|
|
8688
|
-
"variadic": false
|
|
8689
|
-
}],
|
|
8690
|
-
"options": [],
|
|
8691
9401
|
"aliases": [],
|
|
8692
|
-
"category": "
|
|
9402
|
+
"category": "CLI"
|
|
8693
9403
|
},
|
|
8694
9404
|
{
|
|
8695
|
-
"id": "pan-
|
|
8696
|
-
"path": [
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
"
|
|
8705
|
-
"required": true,
|
|
8706
|
-
"variadic": false
|
|
9405
|
+
"id": "pan-vault-status",
|
|
9406
|
+
"path": ["vault", "status"],
|
|
9407
|
+
"display": "/pan vault status",
|
|
9408
|
+
"description": "Show backend, this machine, owned records, last sync and the machine list",
|
|
9409
|
+
"args": [],
|
|
9410
|
+
"options": [{
|
|
9411
|
+
"flags": "--json",
|
|
9412
|
+
"description": "Output in JSON format",
|
|
9413
|
+
"required": false,
|
|
9414
|
+
"valueHint": null
|
|
8707
9415
|
}],
|
|
8708
|
-
"options": [],
|
|
8709
9416
|
"aliases": [],
|
|
8710
|
-
"category": "
|
|
9417
|
+
"category": "CLI"
|
|
8711
9418
|
},
|
|
8712
9419
|
{
|
|
8713
|
-
"id": "pan-
|
|
8714
|
-
"path": [
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
"map"
|
|
8718
|
-
],
|
|
8719
|
-
"display": "/pan tts voices map",
|
|
8720
|
-
"description": "Map a TTS event key to a saved voice",
|
|
9420
|
+
"id": "pan-vault-save",
|
|
9421
|
+
"path": ["vault", "save"],
|
|
9422
|
+
"display": "/pan vault save",
|
|
9423
|
+
"description": "Settle one transcript (by session id or path) or many into the vault",
|
|
8721
9424
|
"args": [{
|
|
8722
|
-
"name": "
|
|
8723
|
-
"required":
|
|
8724
|
-
"variadic": false
|
|
8725
|
-
}, {
|
|
8726
|
-
"name": "name",
|
|
8727
|
-
"required": true,
|
|
9425
|
+
"name": "session-id-or-path",
|
|
9426
|
+
"required": false,
|
|
8728
9427
|
"variadic": false
|
|
8729
9428
|
}],
|
|
8730
|
-
"options": [],
|
|
8731
|
-
"aliases": [],
|
|
8732
|
-
"category": "Core"
|
|
8733
|
-
},
|
|
8734
|
-
{
|
|
8735
|
-
"id": "pan-tts-start",
|
|
8736
|
-
"path": ["tts", "start"],
|
|
8737
|
-
"display": "/pan tts start",
|
|
8738
|
-
"description": "Start the local Qwen TTS daemon",
|
|
8739
|
-
"args": [],
|
|
8740
9429
|
"options": [
|
|
8741
9430
|
{
|
|
8742
|
-
"flags": "--
|
|
8743
|
-
"description": "
|
|
9431
|
+
"flags": "--all",
|
|
9432
|
+
"description": "Settle every discovered transcript",
|
|
8744
9433
|
"required": false,
|
|
8745
9434
|
"valueHint": null
|
|
8746
9435
|
},
|
|
8747
9436
|
{
|
|
8748
|
-
"flags": "--
|
|
8749
|
-
"description": "
|
|
8750
|
-
"required":
|
|
8751
|
-
"valueHint":
|
|
9437
|
+
"flags": "--since <date>",
|
|
9438
|
+
"description": "With --all: only transcripts modified on or after this date",
|
|
9439
|
+
"required": true,
|
|
9440
|
+
"valueHint": "date"
|
|
8752
9441
|
},
|
|
8753
9442
|
{
|
|
8754
|
-
"flags": "--
|
|
8755
|
-
"description": "
|
|
8756
|
-
"required":
|
|
8757
|
-
"valueHint":
|
|
9443
|
+
"flags": "--harness <harness>",
|
|
9444
|
+
"description": "With --all: only this harness (claude-code, codex, ...)",
|
|
9445
|
+
"required": true,
|
|
9446
|
+
"valueHint": "harness"
|
|
8758
9447
|
},
|
|
8759
9448
|
{
|
|
8760
|
-
"flags": "--
|
|
8761
|
-
"description": "
|
|
8762
|
-
"required":
|
|
8763
|
-
"valueHint":
|
|
9449
|
+
"flags": "--hook",
|
|
9450
|
+
"description": "Claude Code Stop-hook mode: read {session_id, transcript_path} JSON from stdin, print nothing, exit 0",
|
|
9451
|
+
"required": false,
|
|
9452
|
+
"valueHint": null
|
|
8764
9453
|
}
|
|
8765
9454
|
],
|
|
8766
9455
|
"aliases": [],
|
|
8767
|
-
"category": "
|
|
8768
|
-
},
|
|
8769
|
-
{
|
|
8770
|
-
"id": "pan-tts-stop",
|
|
8771
|
-
"path": ["tts", "stop"],
|
|
8772
|
-
"display": "/pan tts stop",
|
|
8773
|
-
"description": "Stop the local Qwen TTS daemon",
|
|
8774
|
-
"args": [],
|
|
8775
|
-
"options": [],
|
|
8776
|
-
"aliases": [],
|
|
8777
|
-
"category": "Core"
|
|
9456
|
+
"category": "CLI"
|
|
8778
9457
|
},
|
|
8779
9458
|
{
|
|
8780
|
-
"id": "pan-
|
|
8781
|
-
"path": ["
|
|
8782
|
-
"display": "/pan
|
|
8783
|
-
"description": "
|
|
9459
|
+
"id": "pan-vault-sync",
|
|
9460
|
+
"path": ["vault", "sync"],
|
|
9461
|
+
"display": "/pan vault sync",
|
|
9462
|
+
"description": "Settle owned transcripts that grew, register this machine and refresh the list",
|
|
8784
9463
|
"args": [],
|
|
8785
9464
|
"options": [],
|
|
8786
9465
|
"aliases": [],
|
|
8787
|
-
"category": "
|
|
9466
|
+
"category": "CLI"
|
|
8788
9467
|
},
|
|
8789
9468
|
{
|
|
8790
|
-
"id": "pan-
|
|
8791
|
-
"path": ["
|
|
8792
|
-
"display": "/pan
|
|
8793
|
-
"description": "
|
|
9469
|
+
"id": "pan-vault-list",
|
|
9470
|
+
"path": ["vault", "list"],
|
|
9471
|
+
"display": "/pan vault list",
|
|
9472
|
+
"description": "List saved conversations from the local cache (never contacts the backend)",
|
|
8794
9473
|
"args": [],
|
|
8795
9474
|
"options": [{
|
|
8796
|
-
"flags": "--
|
|
8797
|
-
"description": "
|
|
9475
|
+
"flags": "--json",
|
|
9476
|
+
"description": "Output in JSON format",
|
|
8798
9477
|
"required": false,
|
|
8799
9478
|
"valueHint": null
|
|
8800
|
-
}, {
|
|
8801
|
-
"flags": "--timeout-ms <ms>",
|
|
8802
|
-
"description": "Health wait timeout in milliseconds",
|
|
8803
|
-
"required": true,
|
|
8804
|
-
"valueHint": "ms"
|
|
8805
9479
|
}],
|
|
8806
9480
|
"aliases": [],
|
|
8807
|
-
"category": "
|
|
8808
|
-
},
|
|
8809
|
-
{
|
|
8810
|
-
"id": "pan-tts-install-systemd",
|
|
8811
|
-
"path": ["tts", "install-systemd"],
|
|
8812
|
-
"display": "/pan tts install-systemd",
|
|
8813
|
-
"description": "Install a user systemd unit for the local Qwen TTS daemon",
|
|
8814
|
-
"args": [],
|
|
8815
|
-
"options": [],
|
|
8816
|
-
"aliases": [],
|
|
8817
|
-
"category": "Core"
|
|
9481
|
+
"category": "CLI"
|
|
8818
9482
|
},
|
|
8819
9483
|
{
|
|
8820
|
-
"id": "pan-
|
|
8821
|
-
"path": ["
|
|
8822
|
-
"display": "/pan
|
|
8823
|
-
"description": "
|
|
9484
|
+
"id": "pan-vault-show",
|
|
9485
|
+
"path": ["vault", "show"],
|
|
9486
|
+
"display": "/pan vault show",
|
|
9487
|
+
"description": "Print a saved conversation read-only with its versions",
|
|
8824
9488
|
"args": [{
|
|
8825
|
-
"name": "
|
|
8826
|
-
"required":
|
|
9489
|
+
"name": "id",
|
|
9490
|
+
"required": true,
|
|
8827
9491
|
"variadic": false
|
|
8828
9492
|
}],
|
|
8829
9493
|
"options": [{
|
|
8830
|
-
"flags": "--
|
|
8831
|
-
"description": "
|
|
9494
|
+
"flags": "--json",
|
|
9495
|
+
"description": "Output in JSON format",
|
|
8832
9496
|
"required": false,
|
|
8833
9497
|
"valueHint": null
|
|
8834
9498
|
}],
|
|
8835
9499
|
"aliases": [],
|
|
8836
|
-
"category": "
|
|
8837
|
-
},
|
|
8838
|
-
{
|
|
8839
|
-
"id": "pan-release",
|
|
8840
|
-
"path": ["release"],
|
|
8841
|
-
"display": "/pan release",
|
|
8842
|
-
"description": "Intentional release flow for stable and canary publishes",
|
|
8843
|
-
"args": [],
|
|
8844
|
-
"options": [],
|
|
8845
|
-
"aliases": [],
|
|
8846
|
-
"category": "Flywheel"
|
|
9500
|
+
"category": "CLI"
|
|
8847
9501
|
},
|
|
8848
9502
|
{
|
|
8849
|
-
"id": "pan-
|
|
8850
|
-
"path": ["
|
|
8851
|
-
"display": "/pan
|
|
8852
|
-
"description": "
|
|
8853
|
-
"args": [
|
|
8854
|
-
|
|
8855
|
-
"aliases": [],
|
|
8856
|
-
"category": "Flywheel"
|
|
8857
|
-
},
|
|
8858
|
-
{
|
|
8859
|
-
"id": "pan-release-stable",
|
|
8860
|
-
"path": ["release", "stable"],
|
|
8861
|
-
"display": "/pan release stable",
|
|
8862
|
-
"description": "Create a stable release commit and tag",
|
|
8863
|
-
"args": [],
|
|
8864
|
-
"options": [{
|
|
8865
|
-
"flags": "--version <version>",
|
|
8866
|
-
"description": "Stable semver version (x.y.z)",
|
|
9503
|
+
"id": "pan-vault-resume",
|
|
9504
|
+
"path": ["vault", "resume"],
|
|
9505
|
+
"display": "/pan vault resume",
|
|
9506
|
+
"description": "Continue a saved conversation here: <id> or <id>@<version>; adopts it and launches the harness",
|
|
9507
|
+
"args": [{
|
|
9508
|
+
"name": "id",
|
|
8867
9509
|
"required": true,
|
|
8868
|
-
"
|
|
8869
|
-
}, {
|
|
8870
|
-
"flags": "--skip-tests",
|
|
8871
|
-
"description": "Skip the test suite in preflight (build + guards still run)",
|
|
8872
|
-
"required": false,
|
|
8873
|
-
"valueHint": null
|
|
9510
|
+
"variadic": false
|
|
8874
9511
|
}],
|
|
9512
|
+
"options": [
|
|
9513
|
+
{
|
|
9514
|
+
"flags": "--cwd <dir>",
|
|
9515
|
+
"description": "Working directory to resume in (default: the saved cwd)",
|
|
9516
|
+
"required": true,
|
|
9517
|
+
"valueHint": "dir"
|
|
9518
|
+
},
|
|
9519
|
+
{
|
|
9520
|
+
"flags": "--no-launch",
|
|
9521
|
+
"description": "Print the launch command instead of running it",
|
|
9522
|
+
"required": false,
|
|
9523
|
+
"valueHint": null
|
|
9524
|
+
},
|
|
9525
|
+
{
|
|
9526
|
+
"flags": "--on-drift <choice>",
|
|
9527
|
+
"description": "When the cwd state differs from the saved state: continue | note | cancel",
|
|
9528
|
+
"required": true,
|
|
9529
|
+
"valueHint": "choice"
|
|
9530
|
+
},
|
|
9531
|
+
{
|
|
9532
|
+
"flags": "--no-code",
|
|
9533
|
+
"description": "Do not apply the saved code snapshot; only continue the conversation",
|
|
9534
|
+
"required": false,
|
|
9535
|
+
"valueHint": null
|
|
9536
|
+
},
|
|
9537
|
+
{
|
|
9538
|
+
"flags": "--worktree <dir>",
|
|
9539
|
+
"description": "Apply the code snapshot into a new git worktree at <dir> instead of the target checkout",
|
|
9540
|
+
"required": true,
|
|
9541
|
+
"valueHint": "dir"
|
|
9542
|
+
}
|
|
9543
|
+
],
|
|
8875
9544
|
"aliases": [],
|
|
8876
|
-
"category": "
|
|
9545
|
+
"category": "CLI"
|
|
8877
9546
|
},
|
|
8878
9547
|
{
|
|
8879
|
-
"id": "pan-
|
|
8880
|
-
"path": ["
|
|
8881
|
-
"display": "/pan
|
|
8882
|
-
"description": "
|
|
8883
|
-
"args": [
|
|
9548
|
+
"id": "pan-vault-exclude",
|
|
9549
|
+
"path": ["vault", "exclude"],
|
|
9550
|
+
"display": "/pan vault exclude",
|
|
9551
|
+
"description": "Exclude conversations by cwd path, git origin or session id; an excluded saved record becomes a tombstone",
|
|
9552
|
+
"args": [{
|
|
9553
|
+
"name": "path",
|
|
9554
|
+
"required": false,
|
|
9555
|
+
"variadic": false
|
|
9556
|
+
}],
|
|
8884
9557
|
"options": [{
|
|
8885
|
-
"flags": "--
|
|
8886
|
-
"description": "
|
|
9558
|
+
"flags": "--origin <url>",
|
|
9559
|
+
"description": "Exclude conversations whose git origin is this URL",
|
|
8887
9560
|
"required": true,
|
|
8888
|
-
"valueHint": "
|
|
9561
|
+
"valueHint": "url"
|
|
8889
9562
|
}, {
|
|
8890
|
-
"flags": "--
|
|
8891
|
-
"description": "
|
|
8892
|
-
"required":
|
|
8893
|
-
"valueHint":
|
|
9563
|
+
"flags": "--session <id>",
|
|
9564
|
+
"description": "Exclude one session by native session id or vault id",
|
|
9565
|
+
"required": true,
|
|
9566
|
+
"valueHint": "id"
|
|
8894
9567
|
}],
|
|
8895
9568
|
"aliases": [],
|
|
8896
|
-
"category": "
|
|
9569
|
+
"category": "CLI"
|
|
8897
9570
|
},
|
|
8898
9571
|
{
|
|
8899
|
-
"id": "pan-
|
|
8900
|
-
"path": ["
|
|
8901
|
-
"display": "/pan
|
|
8902
|
-
"description": "
|
|
8903
|
-
"args": [
|
|
9572
|
+
"id": "pan-vault-include",
|
|
9573
|
+
"path": ["vault", "include"],
|
|
9574
|
+
"display": "/pan vault include",
|
|
9575
|
+
"description": "Remove an exclusion added with pan vault exclude",
|
|
9576
|
+
"args": [{
|
|
9577
|
+
"name": "path",
|
|
9578
|
+
"required": false,
|
|
9579
|
+
"variadic": false
|
|
9580
|
+
}],
|
|
8904
9581
|
"options": [{
|
|
8905
|
-
"flags": "--
|
|
8906
|
-
"description": "
|
|
9582
|
+
"flags": "--origin <url>",
|
|
9583
|
+
"description": "Include conversations whose git origin is this URL again",
|
|
8907
9584
|
"required": true,
|
|
8908
|
-
"valueHint": "
|
|
9585
|
+
"valueHint": "url"
|
|
9586
|
+
}, {
|
|
9587
|
+
"flags": "--session <id>",
|
|
9588
|
+
"description": "Include one session again",
|
|
9589
|
+
"required": true,
|
|
9590
|
+
"valueHint": "id"
|
|
8909
9591
|
}],
|
|
8910
9592
|
"aliases": [],
|
|
8911
|
-
"category": "
|
|
9593
|
+
"category": "CLI"
|
|
8912
9594
|
},
|
|
8913
9595
|
{
|
|
8914
|
-
"id": "pan-
|
|
8915
|
-
"path": ["
|
|
8916
|
-
"display": "/pan
|
|
8917
|
-
"description": "
|
|
9596
|
+
"id": "pan-vault-allow-secret",
|
|
9597
|
+
"path": ["vault", "allow-secret"],
|
|
9598
|
+
"display": "/pan vault allow-secret",
|
|
9599
|
+
"description": "Allow one blocked transcript line, or the blocked code lines of one file, for that record only",
|
|
8918
9600
|
"args": [{
|
|
8919
|
-
"name": "
|
|
8920
|
-
"required":
|
|
9601
|
+
"name": "id-or-path",
|
|
9602
|
+
"required": true,
|
|
8921
9603
|
"variadic": false
|
|
8922
9604
|
}, {
|
|
8923
|
-
"name": "
|
|
9605
|
+
"name": "line",
|
|
8924
9606
|
"required": false,
|
|
8925
9607
|
"variadic": false
|
|
8926
9608
|
}],
|
|
8927
9609
|
"options": [{
|
|
8928
|
-
"flags": "--
|
|
8929
|
-
"description": "
|
|
9610
|
+
"flags": "--file <path>",
|
|
9611
|
+
"description": "Allow the blocked lines of this file in the code snapshot (path relative to the repository root)",
|
|
8930
9612
|
"required": true,
|
|
8931
9613
|
"valueHint": "path"
|
|
8932
9614
|
}],
|
|
8933
9615
|
"aliases": [],
|
|
8934
|
-
"category": "
|
|
9616
|
+
"category": "CLI"
|
|
8935
9617
|
},
|
|
8936
9618
|
{
|
|
8937
|
-
"id": "pan-
|
|
8938
|
-
"path": ["
|
|
8939
|
-
"display": "/pan
|
|
8940
|
-
"description": "
|
|
9619
|
+
"id": "pan-vault-evict",
|
|
9620
|
+
"path": ["vault", "evict"],
|
|
9621
|
+
"display": "/pan vault evict",
|
|
9622
|
+
"description": "Review the pending-deletion batch (default) or act on it; nothing is deleted without --confirm",
|
|
8941
9623
|
"args": [],
|
|
8942
|
-
"options": [
|
|
9624
|
+
"options": [
|
|
9625
|
+
{
|
|
9626
|
+
"flags": "--review",
|
|
9627
|
+
"description": "Scan and print the batch with its fingerprint (default)",
|
|
9628
|
+
"required": false,
|
|
9629
|
+
"valueHint": null
|
|
9630
|
+
},
|
|
9631
|
+
{
|
|
9632
|
+
"flags": "--confirm <fingerprint>",
|
|
9633
|
+
"description": "Delete the reviewed files if the batch still matches this fingerprint",
|
|
9634
|
+
"required": true,
|
|
9635
|
+
"valueHint": "fingerprint"
|
|
9636
|
+
},
|
|
9637
|
+
{
|
|
9638
|
+
"flags": "--decline <vaultId>",
|
|
9639
|
+
"description": "Remove an entry from the batch and do not offer it again",
|
|
9640
|
+
"required": true,
|
|
9641
|
+
"valueHint": "vaultId"
|
|
9642
|
+
},
|
|
9643
|
+
{
|
|
9644
|
+
"flags": "--reoffer <vaultId>",
|
|
9645
|
+
"description": "Allow a declined entry to be offered again",
|
|
9646
|
+
"required": true,
|
|
9647
|
+
"valueHint": "vaultId"
|
|
9648
|
+
},
|
|
9649
|
+
{
|
|
9650
|
+
"flags": "--clear",
|
|
9651
|
+
"description": "Empty the batch without deleting or declining anything",
|
|
9652
|
+
"required": false,
|
|
9653
|
+
"valueHint": null
|
|
9654
|
+
}
|
|
9655
|
+
],
|
|
8943
9656
|
"aliases": [],
|
|
8944
|
-
"category": "
|
|
9657
|
+
"category": "CLI"
|
|
8945
9658
|
},
|
|
8946
9659
|
{
|
|
8947
|
-
"id": "pan-
|
|
8948
|
-
"path": ["
|
|
8949
|
-
"display": "/pan
|
|
8950
|
-
"description": "
|
|
9660
|
+
"id": "pan-vault-restore",
|
|
9661
|
+
"path": ["vault", "restore"],
|
|
9662
|
+
"display": "/pan vault restore",
|
|
9663
|
+
"description": "Rebuild an evicted transcript byte for byte at its original path",
|
|
8951
9664
|
"args": [{
|
|
8952
|
-
"name": "
|
|
9665
|
+
"name": "id",
|
|
8953
9666
|
"required": true,
|
|
8954
9667
|
"variadic": false
|
|
8955
9668
|
}],
|
|
8956
|
-
"options": [
|
|
8957
|
-
|
|
8958
|
-
|
|
8959
|
-
},
|
|
8960
|
-
{
|
|
8961
|
-
"id": "pan-rollout-retry",
|
|
8962
|
-
"path": ["rollout", "retry"],
|
|
8963
|
-
"display": "/pan rollout retry",
|
|
8964
|
-
"description": "Re-run the release engine for an issue and print the resulting status",
|
|
8965
|
-
"args": [{
|
|
8966
|
-
"name": "issueId",
|
|
9669
|
+
"options": [{
|
|
9670
|
+
"flags": "--to <path>",
|
|
9671
|
+
"description": "Write the rebuilt file here instead of the recorded path",
|
|
8967
9672
|
"required": true,
|
|
8968
|
-
"
|
|
9673
|
+
"valueHint": "path"
|
|
8969
9674
|
}],
|
|
8970
|
-
"options": [],
|
|
8971
9675
|
"aliases": [],
|
|
8972
|
-
"category": "
|
|
9676
|
+
"category": "CLI"
|
|
8973
9677
|
},
|
|
8974
9678
|
{
|
|
8975
|
-
"id": "pan-
|
|
8976
|
-
"path": ["
|
|
8977
|
-
"display": "/pan
|
|
8978
|
-
"description": "
|
|
9679
|
+
"id": "pan-test",
|
|
9680
|
+
"path": ["test"],
|
|
9681
|
+
"display": "/pan test",
|
|
9682
|
+
"description": "Test running and management",
|
|
8979
9683
|
"args": [],
|
|
8980
9684
|
"options": [],
|
|
8981
9685
|
"aliases": [],
|
|
8982
|
-
"category": "
|
|
9686
|
+
"category": "Core"
|
|
8983
9687
|
},
|
|
8984
9688
|
{
|
|
8985
|
-
"id": "pan-
|
|
8986
|
-
"path": ["
|
|
8987
|
-
"display": "/pan
|
|
8988
|
-
"description": "
|
|
9689
|
+
"id": "pan-test-run",
|
|
9690
|
+
"path": ["test", "run"],
|
|
9691
|
+
"display": "/pan test run",
|
|
9692
|
+
"description": "Run tests for a project or workspace",
|
|
8989
9693
|
"args": [{
|
|
8990
|
-
"name": "
|
|
8991
|
-
"required":
|
|
9694
|
+
"name": "target",
|
|
9695
|
+
"required": false,
|
|
8992
9696
|
"variadic": false
|
|
8993
9697
|
}],
|
|
8994
9698
|
"options": [
|
|
8995
9699
|
{
|
|
8996
|
-
"flags": "--project <
|
|
8997
|
-
"description": "Project
|
|
8998
|
-
"required": true,
|
|
8999
|
-
"valueHint": "id"
|
|
9000
|
-
},
|
|
9001
|
-
{
|
|
9002
|
-
"flags": "--workspace <id|name>",
|
|
9003
|
-
"description": "Workspace id or name",
|
|
9004
|
-
"required": true,
|
|
9005
|
-
"valueHint": "id|name"
|
|
9006
|
-
},
|
|
9007
|
-
{
|
|
9008
|
-
"flags": "--issue <id>",
|
|
9009
|
-
"description": "Issue ID",
|
|
9010
|
-
"required": true,
|
|
9011
|
-
"valueHint": "id"
|
|
9012
|
-
},
|
|
9013
|
-
{
|
|
9014
|
-
"flags": "--tag <tag>",
|
|
9015
|
-
"description": "Filter by tag",
|
|
9700
|
+
"flags": "--project <name>",
|
|
9701
|
+
"description": "Project name from registry",
|
|
9016
9702
|
"required": true,
|
|
9017
|
-
"valueHint": "
|
|
9018
|
-
},
|
|
9019
|
-
{
|
|
9020
|
-
"flags": "--sibling",
|
|
9021
|
-
"description": "Search same-project sibling issues instead of the selected issue",
|
|
9022
|
-
"required": false,
|
|
9023
|
-
"valueHint": null
|
|
9024
|
-
},
|
|
9025
|
-
{
|
|
9026
|
-
"flags": "--global",
|
|
9027
|
-
"description": "Search across all registered projects instead of just one",
|
|
9028
|
-
"required": false,
|
|
9029
|
-
"valueHint": null
|
|
9030
|
-
},
|
|
9031
|
-
{
|
|
9032
|
-
"flags": "--target [path]",
|
|
9033
|
-
"description": "Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global",
|
|
9034
|
-
"required": false,
|
|
9035
|
-
"valueHint": "path"
|
|
9036
|
-
},
|
|
9037
|
-
{
|
|
9038
|
-
"flags": "--include-archived",
|
|
9039
|
-
"description": "Include observations hidden by reset markers",
|
|
9040
|
-
"required": false,
|
|
9041
|
-
"valueHint": null
|
|
9703
|
+
"valueHint": "name"
|
|
9042
9704
|
},
|
|
9043
9705
|
{
|
|
9044
|
-
"flags": "--
|
|
9045
|
-
"description": "
|
|
9706
|
+
"flags": "--tests <names>",
|
|
9707
|
+
"description": "Comma-separated test names to run",
|
|
9046
9708
|
"required": true,
|
|
9047
|
-
"valueHint": "
|
|
9709
|
+
"valueHint": "names"
|
|
9048
9710
|
},
|
|
9049
9711
|
{
|
|
9050
|
-
"flags": "--
|
|
9051
|
-
"description": "
|
|
9712
|
+
"flags": "--no-notify",
|
|
9713
|
+
"description": "Skip desktop notification",
|
|
9052
9714
|
"required": false,
|
|
9053
9715
|
"valueHint": null
|
|
9054
9716
|
}
|
|
9055
9717
|
],
|
|
9056
9718
|
"aliases": [],
|
|
9057
|
-
"category": "
|
|
9719
|
+
"category": "Core"
|
|
9058
9720
|
},
|
|
9059
9721
|
{
|
|
9060
|
-
"id": "pan-
|
|
9061
|
-
"path": ["
|
|
9062
|
-
"display": "/pan
|
|
9063
|
-
"description": "
|
|
9722
|
+
"id": "pan-test-list",
|
|
9723
|
+
"path": ["test", "list"],
|
|
9724
|
+
"display": "/pan test list",
|
|
9725
|
+
"description": "List configured tests for a project",
|
|
9064
9726
|
"args": [{
|
|
9065
|
-
"name": "
|
|
9727
|
+
"name": "project",
|
|
9066
9728
|
"required": false,
|
|
9067
9729
|
"variadic": false
|
|
9068
9730
|
}],
|
|
9069
|
-
"options": [
|
|
9070
|
-
|
|
9071
|
-
|
|
9072
|
-
|
|
9073
|
-
|
|
9074
|
-
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9079
|
-
|
|
9080
|
-
|
|
9081
|
-
|
|
9731
|
+
"options": [],
|
|
9732
|
+
"aliases": [],
|
|
9733
|
+
"category": "Core"
|
|
9734
|
+
},
|
|
9735
|
+
{
|
|
9736
|
+
"id": "pan-tts",
|
|
9737
|
+
"path": ["tts"],
|
|
9738
|
+
"display": "/pan tts",
|
|
9739
|
+
"description": "Local TTS daemon helpers",
|
|
9740
|
+
"args": [],
|
|
9741
|
+
"options": [],
|
|
9742
|
+
"aliases": [],
|
|
9743
|
+
"category": "Core"
|
|
9744
|
+
},
|
|
9745
|
+
{
|
|
9746
|
+
"id": "pan-tts-voices",
|
|
9747
|
+
"path": ["tts", "voices"],
|
|
9748
|
+
"display": "/pan tts voices",
|
|
9749
|
+
"description": "List and inspect saved TTS voices",
|
|
9750
|
+
"args": [],
|
|
9751
|
+
"options": [],
|
|
9752
|
+
"aliases": [],
|
|
9753
|
+
"category": "Core"
|
|
9754
|
+
},
|
|
9755
|
+
{
|
|
9756
|
+
"id": "pan-tts-voices-list",
|
|
9757
|
+
"path": [
|
|
9758
|
+
"tts",
|
|
9759
|
+
"voices",
|
|
9760
|
+
"list"
|
|
9761
|
+
],
|
|
9762
|
+
"display": "/pan tts voices list",
|
|
9763
|
+
"description": "List saved TTS voices",
|
|
9764
|
+
"args": [],
|
|
9765
|
+
"options": [],
|
|
9766
|
+
"aliases": [],
|
|
9767
|
+
"category": "Core"
|
|
9768
|
+
},
|
|
9769
|
+
{
|
|
9770
|
+
"id": "pan-tts-voices-show",
|
|
9771
|
+
"path": [
|
|
9772
|
+
"tts",
|
|
9773
|
+
"voices",
|
|
9774
|
+
"show"
|
|
9775
|
+
],
|
|
9776
|
+
"display": "/pan tts voices show",
|
|
9777
|
+
"description": "Show saved TTS voice details",
|
|
9778
|
+
"args": [{
|
|
9779
|
+
"name": "name",
|
|
9780
|
+
"required": true,
|
|
9781
|
+
"variadic": false
|
|
9782
|
+
}],
|
|
9783
|
+
"options": [],
|
|
9784
|
+
"aliases": [],
|
|
9785
|
+
"category": "Core"
|
|
9786
|
+
},
|
|
9787
|
+
{
|
|
9788
|
+
"id": "pan-tts-voices-play",
|
|
9789
|
+
"path": [
|
|
9790
|
+
"tts",
|
|
9791
|
+
"voices",
|
|
9792
|
+
"play"
|
|
9793
|
+
],
|
|
9794
|
+
"display": "/pan tts voices play",
|
|
9795
|
+
"description": "Speak with a saved TTS voice",
|
|
9796
|
+
"args": [{
|
|
9797
|
+
"name": "name",
|
|
9798
|
+
"required": true,
|
|
9799
|
+
"variadic": false
|
|
9800
|
+
}, {
|
|
9801
|
+
"name": "text",
|
|
9802
|
+
"required": false,
|
|
9803
|
+
"variadic": false
|
|
9804
|
+
}],
|
|
9805
|
+
"options": [],
|
|
9806
|
+
"aliases": [],
|
|
9807
|
+
"category": "Core"
|
|
9808
|
+
},
|
|
9809
|
+
{
|
|
9810
|
+
"id": "pan-tts-voices-delete",
|
|
9811
|
+
"path": [
|
|
9812
|
+
"tts",
|
|
9813
|
+
"voices",
|
|
9814
|
+
"delete"
|
|
9815
|
+
],
|
|
9816
|
+
"display": "/pan tts voices delete",
|
|
9817
|
+
"description": "Delete a saved TTS voice",
|
|
9818
|
+
"args": [{
|
|
9819
|
+
"name": "name",
|
|
9820
|
+
"required": true,
|
|
9821
|
+
"variadic": false
|
|
9822
|
+
}],
|
|
9823
|
+
"options": [],
|
|
9824
|
+
"aliases": [],
|
|
9825
|
+
"category": "Core"
|
|
9826
|
+
},
|
|
9827
|
+
{
|
|
9828
|
+
"id": "pan-tts-voices-set-default",
|
|
9829
|
+
"path": [
|
|
9830
|
+
"tts",
|
|
9831
|
+
"voices",
|
|
9832
|
+
"set-default"
|
|
9833
|
+
],
|
|
9834
|
+
"display": "/pan tts voices set-default",
|
|
9835
|
+
"description": "Set the system TTS voice",
|
|
9836
|
+
"args": [{
|
|
9837
|
+
"name": "name",
|
|
9838
|
+
"required": true,
|
|
9839
|
+
"variadic": false
|
|
9840
|
+
}],
|
|
9841
|
+
"options": [],
|
|
9842
|
+
"aliases": [],
|
|
9843
|
+
"category": "Core"
|
|
9844
|
+
},
|
|
9845
|
+
{
|
|
9846
|
+
"id": "pan-tts-voices-map",
|
|
9847
|
+
"path": [
|
|
9848
|
+
"tts",
|
|
9849
|
+
"voices",
|
|
9850
|
+
"map"
|
|
9851
|
+
],
|
|
9852
|
+
"display": "/pan tts voices map",
|
|
9853
|
+
"description": "Map a TTS event key to a saved voice",
|
|
9854
|
+
"args": [{
|
|
9855
|
+
"name": "event",
|
|
9856
|
+
"required": true,
|
|
9857
|
+
"variadic": false
|
|
9858
|
+
}, {
|
|
9859
|
+
"name": "name",
|
|
9860
|
+
"required": true,
|
|
9861
|
+
"variadic": false
|
|
9862
|
+
}],
|
|
9863
|
+
"options": [],
|
|
9864
|
+
"aliases": [],
|
|
9865
|
+
"category": "Core"
|
|
9866
|
+
},
|
|
9867
|
+
{
|
|
9868
|
+
"id": "pan-tts-start",
|
|
9869
|
+
"path": ["tts", "start"],
|
|
9870
|
+
"display": "/pan tts start",
|
|
9871
|
+
"description": "Start the local Qwen TTS daemon",
|
|
9872
|
+
"args": [],
|
|
9873
|
+
"options": [
|
|
9874
|
+
{
|
|
9875
|
+
"flags": "--detach",
|
|
9876
|
+
"description": "Run the daemon detached in the background",
|
|
9877
|
+
"required": false,
|
|
9878
|
+
"valueHint": null
|
|
9879
|
+
},
|
|
9880
|
+
{
|
|
9881
|
+
"flags": "--foreground",
|
|
9882
|
+
"description": "Run the daemon in the foreground",
|
|
9883
|
+
"required": false,
|
|
9884
|
+
"valueHint": null
|
|
9885
|
+
},
|
|
9886
|
+
{
|
|
9887
|
+
"flags": "--no-wait-for-health",
|
|
9888
|
+
"description": "Return without waiting for /health",
|
|
9889
|
+
"required": false,
|
|
9890
|
+
"valueHint": null
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
"flags": "--timeout-ms <ms>",
|
|
9894
|
+
"description": "Health wait timeout in milliseconds",
|
|
9895
|
+
"required": true,
|
|
9896
|
+
"valueHint": "ms"
|
|
9897
|
+
}
|
|
9898
|
+
],
|
|
9899
|
+
"aliases": [],
|
|
9900
|
+
"category": "Core"
|
|
9901
|
+
},
|
|
9902
|
+
{
|
|
9903
|
+
"id": "pan-tts-stop",
|
|
9904
|
+
"path": ["tts", "stop"],
|
|
9905
|
+
"display": "/pan tts stop",
|
|
9906
|
+
"description": "Stop the local Qwen TTS daemon",
|
|
9907
|
+
"args": [],
|
|
9908
|
+
"options": [],
|
|
9909
|
+
"aliases": [],
|
|
9910
|
+
"category": "Core"
|
|
9911
|
+
},
|
|
9912
|
+
{
|
|
9913
|
+
"id": "pan-tts-status",
|
|
9914
|
+
"path": ["tts", "status"],
|
|
9915
|
+
"display": "/pan tts status",
|
|
9916
|
+
"description": "Show local Qwen TTS daemon status",
|
|
9917
|
+
"args": [],
|
|
9918
|
+
"options": [],
|
|
9919
|
+
"aliases": [],
|
|
9920
|
+
"category": "Core"
|
|
9921
|
+
},
|
|
9922
|
+
{
|
|
9923
|
+
"id": "pan-tts-restart",
|
|
9924
|
+
"path": ["tts", "restart"],
|
|
9925
|
+
"display": "/pan tts restart",
|
|
9926
|
+
"description": "Restart the local Qwen TTS daemon",
|
|
9927
|
+
"args": [],
|
|
9928
|
+
"options": [{
|
|
9929
|
+
"flags": "--no-wait-for-health",
|
|
9930
|
+
"description": "Return without waiting for /health",
|
|
9931
|
+
"required": false,
|
|
9932
|
+
"valueHint": null
|
|
9933
|
+
}, {
|
|
9934
|
+
"flags": "--timeout-ms <ms>",
|
|
9935
|
+
"description": "Health wait timeout in milliseconds",
|
|
9936
|
+
"required": true,
|
|
9937
|
+
"valueHint": "ms"
|
|
9938
|
+
}],
|
|
9939
|
+
"aliases": [],
|
|
9940
|
+
"category": "Core"
|
|
9941
|
+
},
|
|
9942
|
+
{
|
|
9943
|
+
"id": "pan-tts-install-systemd",
|
|
9944
|
+
"path": ["tts", "install-systemd"],
|
|
9945
|
+
"display": "/pan tts install-systemd",
|
|
9946
|
+
"description": "Install a user systemd unit for the local Qwen TTS daemon",
|
|
9947
|
+
"args": [],
|
|
9948
|
+
"options": [],
|
|
9949
|
+
"aliases": [],
|
|
9950
|
+
"category": "Core"
|
|
9951
|
+
},
|
|
9952
|
+
{
|
|
9953
|
+
"id": "pan-tts-test",
|
|
9954
|
+
"path": ["tts", "test"],
|
|
9955
|
+
"display": "/pan tts test",
|
|
9956
|
+
"description": "Speak a test phrase using the configured system (priority) voice",
|
|
9957
|
+
"args": [{
|
|
9958
|
+
"name": "text",
|
|
9959
|
+
"required": false,
|
|
9960
|
+
"variadic": false
|
|
9961
|
+
}],
|
|
9962
|
+
"options": [{
|
|
9963
|
+
"flags": "--status",
|
|
9964
|
+
"description": "Use the status voice instead of the system (priority) voice",
|
|
9965
|
+
"required": false,
|
|
9966
|
+
"valueHint": null
|
|
9967
|
+
}],
|
|
9968
|
+
"aliases": [],
|
|
9969
|
+
"category": "Core"
|
|
9970
|
+
},
|
|
9971
|
+
{
|
|
9972
|
+
"id": "pan-release",
|
|
9973
|
+
"path": ["release"],
|
|
9974
|
+
"display": "/pan release",
|
|
9975
|
+
"description": "Intentional release flow for stable and canary publishes",
|
|
9976
|
+
"args": [],
|
|
9977
|
+
"options": [],
|
|
9978
|
+
"aliases": [],
|
|
9979
|
+
"category": "Flywheel"
|
|
9980
|
+
},
|
|
9981
|
+
{
|
|
9982
|
+
"id": "pan-release-check",
|
|
9983
|
+
"path": ["release", "check"],
|
|
9984
|
+
"display": "/pan release check",
|
|
9985
|
+
"description": "Run release preflight checks",
|
|
9986
|
+
"args": [],
|
|
9987
|
+
"options": [],
|
|
9988
|
+
"aliases": [],
|
|
9989
|
+
"category": "Flywheel"
|
|
9990
|
+
},
|
|
9991
|
+
{
|
|
9992
|
+
"id": "pan-release-stable",
|
|
9993
|
+
"path": ["release", "stable"],
|
|
9994
|
+
"display": "/pan release stable",
|
|
9995
|
+
"description": "Create a stable release commit and tag",
|
|
9996
|
+
"args": [],
|
|
9997
|
+
"options": [{
|
|
9998
|
+
"flags": "--version <version>",
|
|
9999
|
+
"description": "Stable semver version (x.y.z)",
|
|
10000
|
+
"required": true,
|
|
10001
|
+
"valueHint": "version"
|
|
10002
|
+
}, {
|
|
10003
|
+
"flags": "--skip-tests",
|
|
10004
|
+
"description": "Skip the test suite in preflight (build + guards still run)",
|
|
10005
|
+
"required": false,
|
|
10006
|
+
"valueHint": null
|
|
10007
|
+
}],
|
|
10008
|
+
"aliases": [],
|
|
10009
|
+
"category": "Flywheel"
|
|
10010
|
+
},
|
|
10011
|
+
{
|
|
10012
|
+
"id": "pan-release-canary",
|
|
10013
|
+
"path": ["release", "canary"],
|
|
10014
|
+
"display": "/pan release canary",
|
|
10015
|
+
"description": "Create a canary release commit and tag",
|
|
10016
|
+
"args": [],
|
|
10017
|
+
"options": [{
|
|
10018
|
+
"flags": "--version <version>",
|
|
10019
|
+
"description": "Canary semver version (x.y.z-canary.n)",
|
|
10020
|
+
"required": true,
|
|
10021
|
+
"valueHint": "version"
|
|
10022
|
+
}, {
|
|
10023
|
+
"flags": "--skip-tests",
|
|
10024
|
+
"description": "Skip the test suite in preflight (build + guards still run)",
|
|
10025
|
+
"required": false,
|
|
10026
|
+
"valueHint": null
|
|
10027
|
+
}],
|
|
10028
|
+
"aliases": [],
|
|
10029
|
+
"category": "Flywheel"
|
|
10030
|
+
},
|
|
10031
|
+
{
|
|
10032
|
+
"id": "pan-release-sourcemaps",
|
|
10033
|
+
"path": ["release", "sourcemaps"],
|
|
10034
|
+
"display": "/pan release sourcemaps",
|
|
10035
|
+
"description": "Upload the built dashboard sourcemaps to PostHog",
|
|
10036
|
+
"args": [],
|
|
10037
|
+
"options": [{
|
|
10038
|
+
"flags": "--version <version>",
|
|
10039
|
+
"description": "Release version associated with the built dashboard",
|
|
10040
|
+
"required": true,
|
|
10041
|
+
"valueHint": "version"
|
|
10042
|
+
}],
|
|
10043
|
+
"aliases": [],
|
|
10044
|
+
"category": "Flywheel"
|
|
10045
|
+
},
|
|
10046
|
+
{
|
|
10047
|
+
"id": "pan-release-notes",
|
|
10048
|
+
"path": ["release", "notes"],
|
|
10049
|
+
"display": "/pan release notes",
|
|
10050
|
+
"description": "Draft release notes from git history",
|
|
10051
|
+
"args": [{
|
|
10052
|
+
"name": "from",
|
|
10053
|
+
"required": false,
|
|
10054
|
+
"variadic": false
|
|
10055
|
+
}, {
|
|
10056
|
+
"name": "to",
|
|
10057
|
+
"required": false,
|
|
10058
|
+
"variadic": false
|
|
10059
|
+
}],
|
|
10060
|
+
"options": [{
|
|
10061
|
+
"flags": "--write <path>",
|
|
10062
|
+
"description": "Write the generated notes to a file",
|
|
10063
|
+
"required": true,
|
|
10064
|
+
"valueHint": "path"
|
|
10065
|
+
}],
|
|
10066
|
+
"aliases": [],
|
|
10067
|
+
"category": "Flywheel"
|
|
10068
|
+
},
|
|
10069
|
+
{
|
|
10070
|
+
"id": "pan-rollout",
|
|
10071
|
+
"path": ["rollout"],
|
|
10072
|
+
"display": "/pan rollout",
|
|
10073
|
+
"description": "Post-merge release status and retry",
|
|
10074
|
+
"args": [],
|
|
10075
|
+
"options": [],
|
|
10076
|
+
"aliases": [],
|
|
10077
|
+
"category": "Flywheel"
|
|
10078
|
+
},
|
|
10079
|
+
{
|
|
10080
|
+
"id": "pan-rollout-status",
|
|
10081
|
+
"path": ["rollout", "status"],
|
|
10082
|
+
"display": "/pan rollout status",
|
|
10083
|
+
"description": "Print the release set for an issue (overall + per-component status)",
|
|
10084
|
+
"args": [{
|
|
10085
|
+
"name": "issueId",
|
|
10086
|
+
"required": true,
|
|
10087
|
+
"variadic": false
|
|
10088
|
+
}],
|
|
10089
|
+
"options": [],
|
|
10090
|
+
"aliases": [],
|
|
10091
|
+
"category": "Flywheel"
|
|
10092
|
+
},
|
|
10093
|
+
{
|
|
10094
|
+
"id": "pan-rollout-retry",
|
|
10095
|
+
"path": ["rollout", "retry"],
|
|
10096
|
+
"display": "/pan rollout retry",
|
|
10097
|
+
"description": "Re-run the release engine for an issue and print the resulting status",
|
|
10098
|
+
"args": [{
|
|
10099
|
+
"name": "issueId",
|
|
10100
|
+
"required": true,
|
|
10101
|
+
"variadic": false
|
|
10102
|
+
}],
|
|
10103
|
+
"options": [],
|
|
10104
|
+
"aliases": [],
|
|
10105
|
+
"category": "Flywheel"
|
|
10106
|
+
},
|
|
10107
|
+
{
|
|
10108
|
+
"id": "pan-memory",
|
|
10109
|
+
"path": ["memory"],
|
|
10110
|
+
"display": "/pan memory",
|
|
10111
|
+
"description": "Search and inspect Overdeck memory",
|
|
10112
|
+
"args": [],
|
|
10113
|
+
"options": [],
|
|
10114
|
+
"aliases": [],
|
|
10115
|
+
"category": "Observation"
|
|
10116
|
+
},
|
|
10117
|
+
{
|
|
10118
|
+
"id": "pan-memory-search",
|
|
10119
|
+
"path": ["memory", "search"],
|
|
10120
|
+
"display": "/pan memory search",
|
|
10121
|
+
"description": "Search memory observations",
|
|
10122
|
+
"args": [{
|
|
10123
|
+
"name": "query",
|
|
10124
|
+
"required": true,
|
|
10125
|
+
"variadic": false
|
|
10126
|
+
}],
|
|
10127
|
+
"options": [
|
|
10128
|
+
{
|
|
10129
|
+
"flags": "--project <id>",
|
|
10130
|
+
"description": "Project ID",
|
|
10131
|
+
"required": true,
|
|
10132
|
+
"valueHint": "id"
|
|
10133
|
+
},
|
|
10134
|
+
{
|
|
10135
|
+
"flags": "--workspace <id|name>",
|
|
10136
|
+
"description": "Workspace id or name",
|
|
10137
|
+
"required": true,
|
|
10138
|
+
"valueHint": "id|name"
|
|
10139
|
+
},
|
|
10140
|
+
{
|
|
10141
|
+
"flags": "--issue <id>",
|
|
10142
|
+
"description": "Issue ID",
|
|
10143
|
+
"required": true,
|
|
10144
|
+
"valueHint": "id"
|
|
10145
|
+
},
|
|
10146
|
+
{
|
|
10147
|
+
"flags": "--tag <tag>",
|
|
10148
|
+
"description": "Filter by tag",
|
|
10149
|
+
"required": true,
|
|
10150
|
+
"valueHint": "tag"
|
|
10151
|
+
},
|
|
10152
|
+
{
|
|
10153
|
+
"flags": "--sibling",
|
|
10154
|
+
"description": "Search same-project sibling issues instead of the selected issue",
|
|
10155
|
+
"required": false,
|
|
10156
|
+
"valueHint": null
|
|
10157
|
+
},
|
|
10158
|
+
{
|
|
10159
|
+
"flags": "--global",
|
|
10160
|
+
"description": "Search across all registered projects instead of just one",
|
|
10161
|
+
"required": false,
|
|
10162
|
+
"valueHint": null
|
|
10163
|
+
},
|
|
10164
|
+
{
|
|
10165
|
+
"flags": "--target [path]",
|
|
10166
|
+
"description": "Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global",
|
|
10167
|
+
"required": false,
|
|
10168
|
+
"valueHint": "path"
|
|
10169
|
+
},
|
|
10170
|
+
{
|
|
10171
|
+
"flags": "--include-archived",
|
|
10172
|
+
"description": "Include observations hidden by reset markers",
|
|
10173
|
+
"required": false,
|
|
10174
|
+
"valueHint": null
|
|
10175
|
+
},
|
|
10176
|
+
{
|
|
10177
|
+
"flags": "--limit <n>",
|
|
10178
|
+
"description": "Maximum results",
|
|
10179
|
+
"required": true,
|
|
10180
|
+
"valueHint": "n"
|
|
10181
|
+
},
|
|
10182
|
+
{
|
|
10183
|
+
"flags": "--json",
|
|
10184
|
+
"description": "Output JSON",
|
|
10185
|
+
"required": false,
|
|
10186
|
+
"valueHint": null
|
|
10187
|
+
}
|
|
10188
|
+
],
|
|
10189
|
+
"aliases": [],
|
|
10190
|
+
"category": "Observation"
|
|
10191
|
+
},
|
|
10192
|
+
{
|
|
10193
|
+
"id": "pan-memory-status",
|
|
10194
|
+
"path": ["memory", "status"],
|
|
10195
|
+
"display": "/pan memory status",
|
|
10196
|
+
"description": "Show current memory status for an issue, a workspace, or the current directory",
|
|
10197
|
+
"args": [{
|
|
10198
|
+
"name": "issue",
|
|
10199
|
+
"required": false,
|
|
10200
|
+
"variadic": false
|
|
10201
|
+
}],
|
|
10202
|
+
"options": [
|
|
10203
|
+
{
|
|
10204
|
+
"flags": "--project <id>",
|
|
10205
|
+
"description": "Project ID",
|
|
10206
|
+
"required": true,
|
|
10207
|
+
"valueHint": "id"
|
|
10208
|
+
},
|
|
10209
|
+
{
|
|
10210
|
+
"flags": "--workspace <id|name>",
|
|
10211
|
+
"description": "Workspace id or name instead of an issue positional",
|
|
10212
|
+
"required": true,
|
|
10213
|
+
"valueHint": "id|name"
|
|
10214
|
+
},
|
|
9082
10215
|
{
|
|
9083
10216
|
"flags": "--history <n>",
|
|
9084
10217
|
"description": "Also print up to N archived statuses, newest first (max 50)",
|
|
@@ -10629,6 +11762,20 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10629
11762
|
"aliases": [],
|
|
10630
11763
|
"category": "Admin"
|
|
10631
11764
|
},
|
|
11765
|
+
{
|
|
11766
|
+
"id": "pan-admin-config-tiers",
|
|
11767
|
+
"path": [
|
|
11768
|
+
"admin",
|
|
11769
|
+
"config",
|
|
11770
|
+
"tiers"
|
|
11771
|
+
],
|
|
11772
|
+
"display": "/pan admin config tiers",
|
|
11773
|
+
"description": "Show the effective model per tiered_execution tier and whether it overrides roles.work",
|
|
11774
|
+
"args": [],
|
|
11775
|
+
"options": [],
|
|
11776
|
+
"aliases": [],
|
|
11777
|
+
"category": "Admin"
|
|
11778
|
+
},
|
|
10632
11779
|
{
|
|
10633
11780
|
"id": "pan-admin-hooks",
|
|
10634
11781
|
"path": ["admin", "hooks"],
|
|
@@ -11502,6 +12649,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11502
12649
|
"description": "Skip Herdr terminal backend install/verify (tmux-only hosts)",
|
|
11503
12650
|
"required": false,
|
|
11504
12651
|
"valueHint": null
|
|
12652
|
+
},
|
|
12653
|
+
{
|
|
12654
|
+
"flags": "--skip-ollama",
|
|
12655
|
+
"description": "Skip Ollama local-model detection and optional gemma4:12b pull",
|
|
12656
|
+
"required": false,
|
|
12657
|
+
"valueHint": null
|
|
11505
12658
|
}
|
|
11506
12659
|
],
|
|
11507
12660
|
"aliases": [],
|
|
@@ -11582,141 +12735,427 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11582
12735
|
"valueHint": "path"
|
|
11583
12736
|
}],
|
|
11584
12737
|
"aliases": [],
|
|
11585
|
-
"category": "Lifecycle"
|
|
12738
|
+
"category": "Lifecycle"
|
|
12739
|
+
},
|
|
12740
|
+
{
|
|
12741
|
+
"id": "pan-scope-approve",
|
|
12742
|
+
"path": ["scope", "approve"],
|
|
12743
|
+
"display": "/pan scope approve",
|
|
12744
|
+
"description": "Move xBRIEF to active/ and set status approved",
|
|
12745
|
+
"args": [{
|
|
12746
|
+
"name": "issueId",
|
|
12747
|
+
"required": true,
|
|
12748
|
+
"variadic": false
|
|
12749
|
+
}],
|
|
12750
|
+
"options": [{
|
|
12751
|
+
"flags": "--project <path>",
|
|
12752
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12753
|
+
"required": true,
|
|
12754
|
+
"valueHint": "path"
|
|
12755
|
+
}],
|
|
12756
|
+
"aliases": [],
|
|
12757
|
+
"category": "Lifecycle"
|
|
12758
|
+
},
|
|
12759
|
+
{
|
|
12760
|
+
"id": "pan-scope-complete",
|
|
12761
|
+
"path": ["scope", "complete"],
|
|
12762
|
+
"display": "/pan scope complete",
|
|
12763
|
+
"description": "Move xBRIEF to completed/",
|
|
12764
|
+
"args": [{
|
|
12765
|
+
"name": "issueId",
|
|
12766
|
+
"required": true,
|
|
12767
|
+
"variadic": false
|
|
12768
|
+
}],
|
|
12769
|
+
"options": [{
|
|
12770
|
+
"flags": "--project <path>",
|
|
12771
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12772
|
+
"required": true,
|
|
12773
|
+
"valueHint": "path"
|
|
12774
|
+
}],
|
|
12775
|
+
"aliases": [],
|
|
12776
|
+
"category": "Lifecycle"
|
|
12777
|
+
},
|
|
12778
|
+
{
|
|
12779
|
+
"id": "pan-scope-cancel",
|
|
12780
|
+
"path": ["scope", "cancel"],
|
|
12781
|
+
"display": "/pan scope cancel",
|
|
12782
|
+
"description": "Move xBRIEF to cancelled/",
|
|
12783
|
+
"args": [{
|
|
12784
|
+
"name": "issueId",
|
|
12785
|
+
"required": true,
|
|
12786
|
+
"variadic": false
|
|
12787
|
+
}],
|
|
12788
|
+
"options": [{
|
|
12789
|
+
"flags": "--project <path>",
|
|
12790
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12791
|
+
"required": true,
|
|
12792
|
+
"valueHint": "path"
|
|
12793
|
+
}],
|
|
12794
|
+
"aliases": [],
|
|
12795
|
+
"category": "Lifecycle"
|
|
12796
|
+
},
|
|
12797
|
+
{
|
|
12798
|
+
"id": "pan-scope-restore",
|
|
12799
|
+
"path": ["scope", "restore"],
|
|
12800
|
+
"display": "/pan scope restore",
|
|
12801
|
+
"description": "Restore xBRIEF from completed/ or cancelled/ to active/",
|
|
12802
|
+
"args": [{
|
|
12803
|
+
"name": "issueId",
|
|
12804
|
+
"required": true,
|
|
12805
|
+
"variadic": false
|
|
12806
|
+
}],
|
|
12807
|
+
"options": [{
|
|
12808
|
+
"flags": "--project <path>",
|
|
12809
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12810
|
+
"required": true,
|
|
12811
|
+
"valueHint": "path"
|
|
12812
|
+
}],
|
|
12813
|
+
"aliases": [],
|
|
12814
|
+
"category": "Lifecycle"
|
|
12815
|
+
},
|
|
12816
|
+
{
|
|
12817
|
+
"id": "pan-spawn",
|
|
12818
|
+
"path": ["spawn"],
|
|
12819
|
+
"display": "/pan spawn",
|
|
12820
|
+
"description": "Create a worker pane for one xBRIEF item in its own item worktree",
|
|
12821
|
+
"args": [],
|
|
12822
|
+
"options": [
|
|
12823
|
+
{
|
|
12824
|
+
"flags": "--issue <id>",
|
|
12825
|
+
"description": "Issue the worker belongs to",
|
|
12826
|
+
"required": true,
|
|
12827
|
+
"valueHint": "id"
|
|
12828
|
+
},
|
|
12829
|
+
{
|
|
12830
|
+
"flags": "--item <item>",
|
|
12831
|
+
"description": "xBRIEF item the worker takes",
|
|
12832
|
+
"required": true,
|
|
12833
|
+
"valueHint": "item"
|
|
12834
|
+
},
|
|
12835
|
+
{
|
|
12836
|
+
"flags": "--model <model>",
|
|
12837
|
+
"description": "Model the worker runs on",
|
|
12838
|
+
"required": true,
|
|
12839
|
+
"valueHint": "model"
|
|
12840
|
+
},
|
|
12841
|
+
{
|
|
12842
|
+
"flags": "--harness <harness>",
|
|
12843
|
+
"description": "Coding-agent harness (default: claude-code)",
|
|
12844
|
+
"required": true,
|
|
12845
|
+
"valueHint": "harness"
|
|
12846
|
+
},
|
|
12847
|
+
{
|
|
12848
|
+
"flags": "--shared",
|
|
12849
|
+
"description": "Run the worker in the issue workspace instead of an item worktree (foreman/operator only; serial use)",
|
|
12850
|
+
"required": false,
|
|
12851
|
+
"valueHint": null
|
|
12852
|
+
}
|
|
12853
|
+
],
|
|
12854
|
+
"aliases": [],
|
|
12855
|
+
"category": "CLI"
|
|
12856
|
+
},
|
|
12857
|
+
{
|
|
12858
|
+
"id": "pan-worker",
|
|
12859
|
+
"path": ["worker"],
|
|
12860
|
+
"display": "/pan worker",
|
|
12861
|
+
"description": "Registered workers: spawn an issue-linked agent and get its report back; register external agents",
|
|
12862
|
+
"args": [],
|
|
12863
|
+
"options": [],
|
|
12864
|
+
"aliases": [],
|
|
12865
|
+
"category": "CLI"
|
|
12866
|
+
},
|
|
12867
|
+
{
|
|
12868
|
+
"id": "pan-worker-run",
|
|
12869
|
+
"path": ["worker", "run"],
|
|
12870
|
+
"display": "/pan worker run",
|
|
12871
|
+
"description": "Start a worker for an issue and wait for its report (exit 0 done, 4 blocked/failed, 2 no report, 3 timeout, 1 error)",
|
|
12872
|
+
"args": [],
|
|
12873
|
+
"options": [
|
|
12874
|
+
{
|
|
12875
|
+
"flags": "--issue <id>",
|
|
12876
|
+
"description": "Issue the worker belongs to (required)",
|
|
12877
|
+
"required": true,
|
|
12878
|
+
"valueHint": "id"
|
|
12879
|
+
},
|
|
12880
|
+
{
|
|
12881
|
+
"flags": "--prompt <text>",
|
|
12882
|
+
"description": "The brief, inline",
|
|
12883
|
+
"required": true,
|
|
12884
|
+
"valueHint": "text"
|
|
12885
|
+
},
|
|
12886
|
+
{
|
|
12887
|
+
"flags": "--brief <file>",
|
|
12888
|
+
"description": "The brief, from a file",
|
|
12889
|
+
"required": true,
|
|
12890
|
+
"valueHint": "file"
|
|
12891
|
+
},
|
|
12892
|
+
{
|
|
12893
|
+
"flags": "--model <model>",
|
|
12894
|
+
"description": "Model override (default: roles.worker.model)",
|
|
12895
|
+
"required": true,
|
|
12896
|
+
"valueHint": "model"
|
|
12897
|
+
},
|
|
12898
|
+
{
|
|
12899
|
+
"flags": "--harness <harness>",
|
|
12900
|
+
"description": "Harness override (default: routed from the model)",
|
|
12901
|
+
"required": true,
|
|
12902
|
+
"valueHint": "harness"
|
|
12903
|
+
},
|
|
12904
|
+
{
|
|
12905
|
+
"flags": "--read-only",
|
|
12906
|
+
"description": "Run in the issue workspace with git writes blocked",
|
|
12907
|
+
"required": false,
|
|
12908
|
+
"valueHint": null
|
|
12909
|
+
},
|
|
12910
|
+
{
|
|
12911
|
+
"flags": "--cwd <path>",
|
|
12912
|
+
"description": "Working directory inside the issue workspace",
|
|
12913
|
+
"required": true,
|
|
12914
|
+
"valueHint": "path"
|
|
12915
|
+
},
|
|
12916
|
+
{
|
|
12917
|
+
"flags": "--parent <id>",
|
|
12918
|
+
"description": "Spawning agent or conversation (default: $OVERDECK_AGENT_ID, then $OVERDECK_CONVERSATION)",
|
|
12919
|
+
"required": true,
|
|
12920
|
+
"valueHint": "id"
|
|
12921
|
+
},
|
|
12922
|
+
{
|
|
12923
|
+
"flags": "--name <label>",
|
|
12924
|
+
"description": "Label shown in the Agents Directory",
|
|
12925
|
+
"required": true,
|
|
12926
|
+
"valueHint": "label"
|
|
12927
|
+
},
|
|
12928
|
+
{
|
|
12929
|
+
"flags": "--detach",
|
|
12930
|
+
"description": "Print the worker id and return without waiting",
|
|
12931
|
+
"required": false,
|
|
12932
|
+
"valueHint": null
|
|
12933
|
+
},
|
|
12934
|
+
{
|
|
12935
|
+
"flags": "--timeout <seconds>",
|
|
12936
|
+
"description": "Stop waiting after this many seconds (exit 3; the worker keeps running)",
|
|
12937
|
+
"required": true,
|
|
12938
|
+
"valueHint": "seconds"
|
|
12939
|
+
},
|
|
12940
|
+
{
|
|
12941
|
+
"flags": "--stop-after-report",
|
|
12942
|
+
"description": "Stop the worker after its first report",
|
|
12943
|
+
"required": false,
|
|
12944
|
+
"valueHint": null
|
|
12945
|
+
}
|
|
12946
|
+
],
|
|
12947
|
+
"aliases": [],
|
|
12948
|
+
"category": "CLI"
|
|
11586
12949
|
},
|
|
11587
12950
|
{
|
|
11588
|
-
"id": "pan-
|
|
11589
|
-
"path": ["
|
|
11590
|
-
"display": "/pan
|
|
11591
|
-
"description": "
|
|
12951
|
+
"id": "pan-worker-wait",
|
|
12952
|
+
"path": ["worker", "wait"],
|
|
12953
|
+
"display": "/pan worker wait",
|
|
12954
|
+
"description": "Wait for a worker's report (same exit codes as run); the status line names its seq",
|
|
11592
12955
|
"args": [{
|
|
11593
|
-
"name": "
|
|
12956
|
+
"name": "worker-id",
|
|
11594
12957
|
"required": true,
|
|
11595
12958
|
"variadic": false
|
|
11596
12959
|
}],
|
|
11597
12960
|
"options": [{
|
|
11598
|
-
"flags": "--
|
|
11599
|
-
"description": "
|
|
11600
|
-
"required": true,
|
|
11601
|
-
"valueHint": "path"
|
|
11602
|
-
}],
|
|
11603
|
-
"aliases": [],
|
|
11604
|
-
"category": "Lifecycle"
|
|
11605
|
-
},
|
|
11606
|
-
{
|
|
11607
|
-
"id": "pan-scope-complete",
|
|
11608
|
-
"path": ["scope", "complete"],
|
|
11609
|
-
"display": "/pan scope complete",
|
|
11610
|
-
"description": "Move xBRIEF to completed/",
|
|
11611
|
-
"args": [{
|
|
11612
|
-
"name": "issueId",
|
|
12961
|
+
"flags": "--after <seq>",
|
|
12962
|
+
"description": "Return the next report after this seq (default: the newest report, whenever written)",
|
|
11613
12963
|
"required": true,
|
|
11614
|
-
"
|
|
11615
|
-
}
|
|
11616
|
-
|
|
11617
|
-
"
|
|
11618
|
-
"description": "Project path (defaults to resolved from issue)",
|
|
12964
|
+
"valueHint": "seq"
|
|
12965
|
+
}, {
|
|
12966
|
+
"flags": "--timeout <seconds>",
|
|
12967
|
+
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11619
12968
|
"required": true,
|
|
11620
|
-
"valueHint": "
|
|
12969
|
+
"valueHint": "seconds"
|
|
11621
12970
|
}],
|
|
11622
12971
|
"aliases": [],
|
|
11623
|
-
"category": "
|
|
12972
|
+
"category": "CLI"
|
|
11624
12973
|
},
|
|
11625
12974
|
{
|
|
11626
|
-
"id": "pan-
|
|
11627
|
-
"path": ["
|
|
11628
|
-
"display": "/pan
|
|
11629
|
-
"description": "
|
|
12975
|
+
"id": "pan-worker-report",
|
|
12976
|
+
"path": ["worker", "report"],
|
|
12977
|
+
"display": "/pan worker report",
|
|
12978
|
+
"description": "Record a worker's report (run by the worker itself)",
|
|
11630
12979
|
"args": [{
|
|
11631
|
-
"name": "
|
|
12980
|
+
"name": "worker-id",
|
|
11632
12981
|
"required": true,
|
|
11633
12982
|
"variadic": false
|
|
11634
12983
|
}],
|
|
11635
|
-
"options": [
|
|
11636
|
-
|
|
11637
|
-
|
|
11638
|
-
|
|
11639
|
-
|
|
11640
|
-
|
|
12984
|
+
"options": [
|
|
12985
|
+
{
|
|
12986
|
+
"flags": "--file <path>",
|
|
12987
|
+
"description": "Read the Markdown report from a file",
|
|
12988
|
+
"required": true,
|
|
12989
|
+
"valueHint": "path"
|
|
12990
|
+
},
|
|
12991
|
+
{
|
|
12992
|
+
"flags": "--stdin",
|
|
12993
|
+
"description": "Read the Markdown report from stdin",
|
|
12994
|
+
"required": false,
|
|
12995
|
+
"valueHint": null
|
|
12996
|
+
},
|
|
12997
|
+
{
|
|
12998
|
+
"flags": "--status <status>",
|
|
12999
|
+
"description": "done | blocked | failed (default: done)",
|
|
13000
|
+
"required": true,
|
|
13001
|
+
"valueHint": "status"
|
|
13002
|
+
}
|
|
13003
|
+
],
|
|
11641
13004
|
"aliases": [],
|
|
11642
|
-
"category": "
|
|
13005
|
+
"category": "CLI"
|
|
11643
13006
|
},
|
|
11644
13007
|
{
|
|
11645
|
-
"id": "pan-
|
|
11646
|
-
"path": ["
|
|
11647
|
-
"display": "/pan
|
|
11648
|
-
"description": "
|
|
11649
|
-
"args": [
|
|
11650
|
-
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
11655
|
-
|
|
11656
|
-
|
|
11657
|
-
|
|
11658
|
-
|
|
11659
|
-
|
|
13008
|
+
"id": "pan-worker-list",
|
|
13009
|
+
"path": ["worker", "list"],
|
|
13010
|
+
"display": "/pan worker list",
|
|
13011
|
+
"description": "List workers with their parent, live state and newest report",
|
|
13012
|
+
"args": [],
|
|
13013
|
+
"options": [
|
|
13014
|
+
{
|
|
13015
|
+
"flags": "--issue <id>",
|
|
13016
|
+
"description": "Only this issue's workers",
|
|
13017
|
+
"required": true,
|
|
13018
|
+
"valueHint": "id"
|
|
13019
|
+
},
|
|
13020
|
+
{
|
|
13021
|
+
"flags": "--parent <id>",
|
|
13022
|
+
"description": "Only workers of this parent",
|
|
13023
|
+
"required": true,
|
|
13024
|
+
"valueHint": "id"
|
|
13025
|
+
},
|
|
13026
|
+
{
|
|
13027
|
+
"flags": "--json",
|
|
13028
|
+
"description": "Print JSON",
|
|
13029
|
+
"required": false,
|
|
13030
|
+
"valueHint": null
|
|
13031
|
+
}
|
|
13032
|
+
],
|
|
11660
13033
|
"aliases": [],
|
|
11661
|
-
"category": "
|
|
13034
|
+
"category": "CLI"
|
|
11662
13035
|
},
|
|
11663
13036
|
{
|
|
11664
|
-
"id": "pan-
|
|
11665
|
-
"path": ["
|
|
11666
|
-
"display": "/pan
|
|
11667
|
-
"description": "
|
|
13037
|
+
"id": "pan-worker-register",
|
|
13038
|
+
"path": ["worker", "register"],
|
|
13039
|
+
"display": "/pan worker register",
|
|
13040
|
+
"description": "Record an agent another tool launched so the Agents Directory shows it (read-only; prints its id)",
|
|
11668
13041
|
"args": [],
|
|
11669
13042
|
"options": [
|
|
11670
13043
|
{
|
|
11671
|
-
"flags": "--
|
|
11672
|
-
"description": "
|
|
13044
|
+
"flags": "--source <name>",
|
|
13045
|
+
"description": "Who launched it ([a-z0-9-], not codex-plugin) (required)",
|
|
13046
|
+
"required": true,
|
|
13047
|
+
"valueHint": "name"
|
|
13048
|
+
},
|
|
13049
|
+
{
|
|
13050
|
+
"flags": "--external-id <id>",
|
|
13051
|
+
"description": "The launcher's id for it (required)",
|
|
11673
13052
|
"required": true,
|
|
11674
13053
|
"valueHint": "id"
|
|
11675
13054
|
},
|
|
11676
13055
|
{
|
|
11677
|
-
"flags": "--
|
|
11678
|
-
"description": "
|
|
13056
|
+
"flags": "--harness <harness>",
|
|
13057
|
+
"description": "codex, claude-code, … (required)",
|
|
11679
13058
|
"required": true,
|
|
11680
|
-
"valueHint": "
|
|
13059
|
+
"valueHint": "harness"
|
|
11681
13060
|
},
|
|
11682
13061
|
{
|
|
11683
13062
|
"flags": "--model <model>",
|
|
11684
|
-
"description": "Model
|
|
13063
|
+
"description": "Model it runs",
|
|
11685
13064
|
"required": true,
|
|
11686
13065
|
"valueHint": "model"
|
|
11687
13066
|
},
|
|
11688
13067
|
{
|
|
11689
|
-
"flags": "--
|
|
11690
|
-
"description": "
|
|
13068
|
+
"flags": "--cwd <path>",
|
|
13069
|
+
"description": "Its working directory",
|
|
11691
13070
|
"required": true,
|
|
11692
|
-
"valueHint": "
|
|
13071
|
+
"valueHint": "path"
|
|
13072
|
+
},
|
|
13073
|
+
{
|
|
13074
|
+
"flags": "--issue <id>",
|
|
13075
|
+
"description": "Issue it works on",
|
|
13076
|
+
"required": true,
|
|
13077
|
+
"valueHint": "id"
|
|
13078
|
+
},
|
|
13079
|
+
{
|
|
13080
|
+
"flags": "--parent <id>",
|
|
13081
|
+
"description": "Spawning agent id, conversation tmux session, or claude-session:<uuid>",
|
|
13082
|
+
"required": true,
|
|
13083
|
+
"valueHint": "id"
|
|
13084
|
+
},
|
|
13085
|
+
{
|
|
13086
|
+
"flags": "--label <text>",
|
|
13087
|
+
"description": "Label shown in the Agents Directory",
|
|
13088
|
+
"required": true,
|
|
13089
|
+
"valueHint": "text"
|
|
13090
|
+
},
|
|
13091
|
+
{
|
|
13092
|
+
"flags": "--pid <n>",
|
|
13093
|
+
"description": "Its process id (liveness is read from it)",
|
|
13094
|
+
"required": true,
|
|
13095
|
+
"valueHint": "n"
|
|
13096
|
+
},
|
|
13097
|
+
{
|
|
13098
|
+
"flags": "--transcript <path>",
|
|
13099
|
+
"description": "Its transcript file",
|
|
13100
|
+
"required": true,
|
|
13101
|
+
"valueHint": "path"
|
|
13102
|
+
},
|
|
13103
|
+
{
|
|
13104
|
+
"flags": "--session-id <id>",
|
|
13105
|
+
"description": "Its session or thread id",
|
|
13106
|
+
"required": true,
|
|
13107
|
+
"valueHint": "id"
|
|
13108
|
+
},
|
|
13109
|
+
{
|
|
13110
|
+
"flags": "--json",
|
|
13111
|
+
"description": "Print { id, created }",
|
|
13112
|
+
"required": false,
|
|
13113
|
+
"valueHint": null
|
|
11693
13114
|
}
|
|
11694
13115
|
],
|
|
11695
13116
|
"aliases": [],
|
|
11696
13117
|
"category": "CLI"
|
|
11697
13118
|
},
|
|
11698
13119
|
{
|
|
11699
|
-
"id": "pan-
|
|
11700
|
-
"path": ["
|
|
11701
|
-
"display": "/pan
|
|
11702
|
-
"description": "
|
|
13120
|
+
"id": "pan-lane",
|
|
13121
|
+
"path": ["lane"],
|
|
13122
|
+
"display": "/pan lane",
|
|
13123
|
+
"description": "Gauntlet lanes: launch, list, show, wait on, report from, stop and reap lane conversations",
|
|
11703
13124
|
"args": [],
|
|
11704
13125
|
"options": [],
|
|
11705
13126
|
"aliases": [],
|
|
11706
13127
|
"category": "CLI"
|
|
11707
13128
|
},
|
|
11708
13129
|
{
|
|
11709
|
-
"id": "pan-
|
|
11710
|
-
"path": ["
|
|
11711
|
-
"display": "/pan
|
|
11712
|
-
"description": "
|
|
13130
|
+
"id": "pan-lane-start",
|
|
13131
|
+
"path": ["lane", "start"],
|
|
13132
|
+
"display": "/pan lane start",
|
|
13133
|
+
"description": "Launch a lane conversation under the calling conversation (any harness)",
|
|
11713
13134
|
"args": [],
|
|
11714
13135
|
"options": [
|
|
11715
13136
|
{
|
|
11716
|
-
"flags": "--
|
|
11717
|
-
"description": "
|
|
13137
|
+
"flags": "--key <key>",
|
|
13138
|
+
"description": "Lane key inside the run (required unless --for)",
|
|
13139
|
+
"required": true,
|
|
13140
|
+
"valueHint": "key"
|
|
13141
|
+
},
|
|
13142
|
+
{
|
|
13143
|
+
"flags": "--for <builder-key>",
|
|
13144
|
+
"description": "Critic (required) or verifier: the builder lane judged; --key defaults to it",
|
|
13145
|
+
"required": true,
|
|
13146
|
+
"valueHint": "builder-key"
|
|
13147
|
+
},
|
|
13148
|
+
{
|
|
13149
|
+
"flags": "--role <role>",
|
|
13150
|
+
"description": "builder | critic | verifier | play | orchestrator (required)",
|
|
13151
|
+
"required": true,
|
|
13152
|
+
"valueHint": "role"
|
|
13153
|
+
},
|
|
13154
|
+
{
|
|
13155
|
+
"flags": "--brief <file>",
|
|
13156
|
+
"description": "The brief, from a file",
|
|
11718
13157
|
"required": true,
|
|
11719
|
-
"valueHint": "
|
|
13158
|
+
"valueHint": "file"
|
|
11720
13159
|
},
|
|
11721
13160
|
{
|
|
11722
13161
|
"flags": "--prompt <text>",
|
|
@@ -11725,62 +13164,92 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11725
13164
|
"valueHint": "text"
|
|
11726
13165
|
},
|
|
11727
13166
|
{
|
|
11728
|
-
"flags": "--
|
|
11729
|
-
"description": "
|
|
13167
|
+
"flags": "--run <key>",
|
|
13168
|
+
"description": "Run key (required from a root; inherited inside an orchestrator lane)",
|
|
11730
13169
|
"required": true,
|
|
11731
|
-
"valueHint": "
|
|
13170
|
+
"valueHint": "key"
|
|
13171
|
+
},
|
|
13172
|
+
{
|
|
13173
|
+
"flags": "--parent <conv>",
|
|
13174
|
+
"description": "Launching conversation (default: $OVERDECK_CONVERSATION)",
|
|
13175
|
+
"required": true,
|
|
13176
|
+
"valueHint": "conv"
|
|
13177
|
+
},
|
|
13178
|
+
{
|
|
13179
|
+
"flags": "--project <key>",
|
|
13180
|
+
"description": "Project (default: the parent's project)",
|
|
13181
|
+
"required": true,
|
|
13182
|
+
"valueHint": "key"
|
|
11732
13183
|
},
|
|
11733
13184
|
{
|
|
11734
13185
|
"flags": "--model <model>",
|
|
11735
|
-
"description": "Model
|
|
13186
|
+
"description": "Model (default: projects.<key>.gauntlet.roles.<role>.model)",
|
|
11736
13187
|
"required": true,
|
|
11737
13188
|
"valueHint": "model"
|
|
11738
13189
|
},
|
|
11739
13190
|
{
|
|
11740
13191
|
"flags": "--harness <harness>",
|
|
11741
|
-
"description": "Harness
|
|
13192
|
+
"description": "Harness (default: role config, else routed from the model)",
|
|
11742
13193
|
"required": true,
|
|
11743
13194
|
"valueHint": "harness"
|
|
11744
13195
|
},
|
|
11745
13196
|
{
|
|
11746
|
-
"flags": "--
|
|
11747
|
-
"description": "
|
|
11748
|
-
"required":
|
|
11749
|
-
"valueHint":
|
|
13197
|
+
"flags": "--effort <effort>",
|
|
13198
|
+
"description": "low | medium | high",
|
|
13199
|
+
"required": true,
|
|
13200
|
+
"valueHint": "effort"
|
|
11750
13201
|
},
|
|
11751
13202
|
{
|
|
11752
|
-
"flags": "--
|
|
11753
|
-
"description": "
|
|
13203
|
+
"flags": "--title <title>",
|
|
13204
|
+
"description": "Conversation title (default: <run> <key> · <role>)",
|
|
11754
13205
|
"required": true,
|
|
11755
|
-
"valueHint": "
|
|
13206
|
+
"valueHint": "title"
|
|
11756
13207
|
},
|
|
11757
13208
|
{
|
|
11758
|
-
"flags": "--
|
|
11759
|
-
"description": "
|
|
13209
|
+
"flags": "--branch <branch>",
|
|
13210
|
+
"description": "Builder branch (default: <run>/<key>, <run>/<key>-i<n> after)",
|
|
11760
13211
|
"required": true,
|
|
11761
|
-
"valueHint": "
|
|
13212
|
+
"valueHint": "branch"
|
|
11762
13213
|
},
|
|
11763
13214
|
{
|
|
11764
|
-
"flags": "--
|
|
11765
|
-
"description": "
|
|
13215
|
+
"flags": "--from <ref>",
|
|
13216
|
+
"description": "Base ref for a new builder branch",
|
|
11766
13217
|
"required": true,
|
|
11767
|
-
"valueHint": "
|
|
13218
|
+
"valueHint": "ref"
|
|
11768
13219
|
},
|
|
11769
13220
|
{
|
|
11770
|
-
"flags": "--
|
|
11771
|
-
"description": "
|
|
13221
|
+
"flags": "--at <ref>",
|
|
13222
|
+
"description": "Commit a critic or verifier judges (default with --for: the builder's newest done head)",
|
|
13223
|
+
"required": true,
|
|
13224
|
+
"valueHint": "ref"
|
|
13225
|
+
},
|
|
13226
|
+
{
|
|
13227
|
+
"flags": "--reuse",
|
|
13228
|
+
"description": "Continue in the directory of the latest earlier lane with the same run, key and role",
|
|
11772
13229
|
"required": false,
|
|
11773
13230
|
"valueHint": null
|
|
11774
13231
|
},
|
|
11775
13232
|
{
|
|
11776
|
-
"flags": "--
|
|
11777
|
-
"description": "Stop
|
|
11778
|
-
"required":
|
|
11779
|
-
"valueHint":
|
|
13233
|
+
"flags": "--replace",
|
|
13234
|
+
"description": "Stop the live lane with the same run, key and role first",
|
|
13235
|
+
"required": false,
|
|
13236
|
+
"valueHint": null
|
|
11780
13237
|
},
|
|
11781
13238
|
{
|
|
11782
|
-
"flags": "--
|
|
11783
|
-
"description": "
|
|
13239
|
+
"flags": "--force",
|
|
13240
|
+
"description": "Launch even while the host is CPU-saturated",
|
|
13241
|
+
"required": false,
|
|
13242
|
+
"valueHint": null
|
|
13243
|
+
},
|
|
13244
|
+
{
|
|
13245
|
+
"flags": "--no-wait",
|
|
13246
|
+
"description": "Return without waiting for the lane to start",
|
|
13247
|
+
"required": false,
|
|
13248
|
+
"valueHint": null
|
|
13249
|
+
},
|
|
13250
|
+
{
|
|
13251
|
+
"flags": "--json",
|
|
13252
|
+
"description": "Print the launch result as JSON",
|
|
11784
13253
|
"required": false,
|
|
11785
13254
|
"valueHint": null
|
|
11786
13255
|
}
|
|
@@ -11789,84 +13258,60 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11789
13258
|
"category": "CLI"
|
|
11790
13259
|
},
|
|
11791
13260
|
{
|
|
11792
|
-
"id": "pan-
|
|
11793
|
-
"path": ["
|
|
11794
|
-
"display": "/pan
|
|
11795
|
-
"description": "
|
|
11796
|
-
"args": [
|
|
11797
|
-
"name": "worker-id",
|
|
11798
|
-
"required": true,
|
|
11799
|
-
"variadic": false
|
|
11800
|
-
}],
|
|
11801
|
-
"options": [{
|
|
11802
|
-
"flags": "--after <seq>",
|
|
11803
|
-
"description": "Return the next report after this seq (default: the newest report, whenever written)",
|
|
11804
|
-
"required": true,
|
|
11805
|
-
"valueHint": "seq"
|
|
11806
|
-
}, {
|
|
11807
|
-
"flags": "--timeout <seconds>",
|
|
11808
|
-
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11809
|
-
"required": true,
|
|
11810
|
-
"valueHint": "seconds"
|
|
11811
|
-
}],
|
|
11812
|
-
"aliases": [],
|
|
11813
|
-
"category": "CLI"
|
|
11814
|
-
},
|
|
11815
|
-
{
|
|
11816
|
-
"id": "pan-worker-report",
|
|
11817
|
-
"path": ["worker", "report"],
|
|
11818
|
-
"display": "/pan worker report",
|
|
11819
|
-
"description": "Record a worker's report (run by the worker itself)",
|
|
11820
|
-
"args": [{
|
|
11821
|
-
"name": "worker-id",
|
|
11822
|
-
"required": true,
|
|
11823
|
-
"variadic": false
|
|
11824
|
-
}],
|
|
13261
|
+
"id": "pan-lane-list",
|
|
13262
|
+
"path": ["lane", "list"],
|
|
13263
|
+
"display": "/pan lane list",
|
|
13264
|
+
"description": "List lanes with their activity, newest report, git facts and cost",
|
|
13265
|
+
"args": [],
|
|
11825
13266
|
"options": [
|
|
11826
13267
|
{
|
|
11827
|
-
"flags": "--
|
|
11828
|
-
"description": "
|
|
13268
|
+
"flags": "--run <key>",
|
|
13269
|
+
"description": "Only this run's lanes",
|
|
11829
13270
|
"required": true,
|
|
11830
|
-
"valueHint": "
|
|
13271
|
+
"valueHint": "key"
|
|
11831
13272
|
},
|
|
11832
13273
|
{
|
|
11833
|
-
"flags": "--
|
|
11834
|
-
"description": "
|
|
11835
|
-
"required":
|
|
11836
|
-
"valueHint":
|
|
13274
|
+
"flags": "--parent <conv>",
|
|
13275
|
+
"description": "Only lanes launched by this conversation",
|
|
13276
|
+
"required": true,
|
|
13277
|
+
"valueHint": "conv"
|
|
11837
13278
|
},
|
|
11838
13279
|
{
|
|
11839
|
-
"flags": "--
|
|
11840
|
-
"description": "
|
|
11841
|
-
"required":
|
|
11842
|
-
"valueHint":
|
|
13280
|
+
"flags": "--json",
|
|
13281
|
+
"description": "Print JSON",
|
|
13282
|
+
"required": false,
|
|
13283
|
+
"valueHint": null
|
|
11843
13284
|
}
|
|
11844
13285
|
],
|
|
11845
13286
|
"aliases": [],
|
|
11846
13287
|
"category": "CLI"
|
|
11847
13288
|
},
|
|
11848
13289
|
{
|
|
11849
|
-
"id": "pan-
|
|
11850
|
-
"path": ["
|
|
11851
|
-
"display": "/pan
|
|
11852
|
-
"description": "
|
|
11853
|
-
"args": [
|
|
13290
|
+
"id": "pan-lane-show",
|
|
13291
|
+
"path": ["lane", "show"],
|
|
13292
|
+
"display": "/pan lane show",
|
|
13293
|
+
"description": "Print the builder → critic chain of a run and key, then one line per lane",
|
|
13294
|
+
"args": [{
|
|
13295
|
+
"name": "lane",
|
|
13296
|
+
"required": false,
|
|
13297
|
+
"variadic": false
|
|
13298
|
+
}],
|
|
11854
13299
|
"options": [
|
|
11855
13300
|
{
|
|
11856
|
-
"flags": "--
|
|
11857
|
-
"description": "
|
|
13301
|
+
"flags": "--run <key>",
|
|
13302
|
+
"description": "Run key (with --key)",
|
|
11858
13303
|
"required": true,
|
|
11859
|
-
"valueHint": "
|
|
13304
|
+
"valueHint": "key"
|
|
11860
13305
|
},
|
|
11861
13306
|
{
|
|
11862
|
-
"flags": "--
|
|
11863
|
-
"description": "
|
|
13307
|
+
"flags": "--key <key>",
|
|
13308
|
+
"description": "Lane key (with --run)",
|
|
11864
13309
|
"required": true,
|
|
11865
|
-
"valueHint": "
|
|
13310
|
+
"valueHint": "key"
|
|
11866
13311
|
},
|
|
11867
13312
|
{
|
|
11868
13313
|
"flags": "--json",
|
|
11869
|
-
"description": "Print
|
|
13314
|
+
"description": "Print { run, key, steps }",
|
|
11870
13315
|
"required": false,
|
|
11871
13316
|
"valueHint": null
|
|
11872
13317
|
}
|
|
@@ -11875,88 +13320,135 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11875
13320
|
"category": "CLI"
|
|
11876
13321
|
},
|
|
11877
13322
|
{
|
|
11878
|
-
"id": "pan-
|
|
11879
|
-
"path": ["
|
|
11880
|
-
"display": "/pan
|
|
11881
|
-
"description": "
|
|
11882
|
-
"args": [
|
|
13323
|
+
"id": "pan-lane-wait",
|
|
13324
|
+
"path": ["lane", "wait"],
|
|
13325
|
+
"display": "/pan lane wait",
|
|
13326
|
+
"description": "Wait for a lane report (exit 0 done, 4 blocked/failed, 2 no report, 3 timeout, 1 error)",
|
|
13327
|
+
"args": [{
|
|
13328
|
+
"name": "lane",
|
|
13329
|
+
"required": false,
|
|
13330
|
+
"variadic": false
|
|
13331
|
+
}],
|
|
11883
13332
|
"options": [
|
|
11884
13333
|
{
|
|
11885
|
-
"flags": "--
|
|
11886
|
-
"description": "
|
|
13334
|
+
"flags": "--run <key>",
|
|
13335
|
+
"description": "Wait for the next report of any lane in this run",
|
|
11887
13336
|
"required": true,
|
|
11888
|
-
"valueHint": "
|
|
13337
|
+
"valueHint": "key"
|
|
11889
13338
|
},
|
|
11890
13339
|
{
|
|
11891
|
-
"flags": "--
|
|
11892
|
-
"description": "
|
|
13340
|
+
"flags": "--parent <conv>",
|
|
13341
|
+
"description": "Wait for the next report of any lane launched by this conversation",
|
|
11893
13342
|
"required": true,
|
|
11894
|
-
"valueHint": "
|
|
13343
|
+
"valueHint": "conv"
|
|
11895
13344
|
},
|
|
11896
13345
|
{
|
|
11897
|
-
"flags": "--
|
|
11898
|
-
"description": "
|
|
13346
|
+
"flags": "--after <seq-or-cursor>",
|
|
13347
|
+
"description": "Report seq for one lane; cursor <atMs>.<name>.<seq> for a run or parent",
|
|
11899
13348
|
"required": true,
|
|
11900
|
-
"valueHint": "
|
|
13349
|
+
"valueHint": "seq-or-cursor"
|
|
11901
13350
|
},
|
|
11902
13351
|
{
|
|
11903
|
-
"flags": "--
|
|
11904
|
-
"description": "
|
|
13352
|
+
"flags": "--timeout <seconds>",
|
|
13353
|
+
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11905
13354
|
"required": true,
|
|
11906
|
-
"valueHint": "
|
|
11907
|
-
}
|
|
13355
|
+
"valueHint": "seconds"
|
|
13356
|
+
}
|
|
13357
|
+
],
|
|
13358
|
+
"aliases": [],
|
|
13359
|
+
"category": "CLI"
|
|
13360
|
+
},
|
|
13361
|
+
{
|
|
13362
|
+
"id": "pan-lane-report",
|
|
13363
|
+
"path": ["lane", "report"],
|
|
13364
|
+
"display": "/pan lane report",
|
|
13365
|
+
"description": "Record this lane's report (run inside the lane)",
|
|
13366
|
+
"args": [],
|
|
13367
|
+
"options": [
|
|
11908
13368
|
{
|
|
11909
|
-
"flags": "--
|
|
11910
|
-
"description": "
|
|
13369
|
+
"flags": "--file <path>",
|
|
13370
|
+
"description": "Read the Markdown report from a file",
|
|
11911
13371
|
"required": true,
|
|
11912
13372
|
"valueHint": "path"
|
|
11913
13373
|
},
|
|
11914
13374
|
{
|
|
11915
|
-
"flags": "--
|
|
11916
|
-
"description": "
|
|
11917
|
-
"required":
|
|
11918
|
-
"valueHint":
|
|
13375
|
+
"flags": "--stdin",
|
|
13376
|
+
"description": "Read the Markdown report from stdin",
|
|
13377
|
+
"required": false,
|
|
13378
|
+
"valueHint": null
|
|
11919
13379
|
},
|
|
11920
13380
|
{
|
|
11921
|
-
"flags": "--
|
|
11922
|
-
"description": "
|
|
13381
|
+
"flags": "--status <status>",
|
|
13382
|
+
"description": "done | blocked | failed (default: done)",
|
|
11923
13383
|
"required": true,
|
|
11924
|
-
"valueHint": "
|
|
13384
|
+
"valueHint": "status"
|
|
11925
13385
|
},
|
|
11926
13386
|
{
|
|
11927
|
-
"flags": "--
|
|
11928
|
-
"description": "
|
|
11929
|
-
"required":
|
|
11930
|
-
"valueHint":
|
|
13387
|
+
"flags": "--allow-unpushed",
|
|
13388
|
+
"description": "Let a builder report done with commits not on its upstream",
|
|
13389
|
+
"required": false,
|
|
13390
|
+
"valueHint": null
|
|
11931
13391
|
},
|
|
11932
13392
|
{
|
|
11933
|
-
"flags": "--
|
|
11934
|
-
"description": "
|
|
13393
|
+
"flags": "--verdict <value>",
|
|
13394
|
+
"description": "Critic or verifier done report: WOWED | IMPRESSED | NOT_YET | PASS | DEFECTS",
|
|
11935
13395
|
"required": true,
|
|
11936
|
-
"valueHint": "
|
|
13396
|
+
"valueHint": "value"
|
|
11937
13397
|
},
|
|
11938
13398
|
{
|
|
11939
|
-
"flags": "--
|
|
11940
|
-
"description": "
|
|
13399
|
+
"flags": "--defects <n>",
|
|
13400
|
+
"description": "Defect count (default: the verdict file's defects array length)",
|
|
11941
13401
|
"required": true,
|
|
11942
|
-
"valueHint": "
|
|
13402
|
+
"valueHint": "n"
|
|
11943
13403
|
},
|
|
11944
13404
|
{
|
|
11945
|
-
"flags": "--
|
|
11946
|
-
"description": "
|
|
13405
|
+
"flags": "--verdict-file <path>",
|
|
13406
|
+
"description": "The verdict JSON the lane wrote",
|
|
11947
13407
|
"required": true,
|
|
11948
|
-
"valueHint": "
|
|
11949
|
-
},
|
|
11950
|
-
{
|
|
11951
|
-
"flags": "--json",
|
|
11952
|
-
"description": "Print { id, created }",
|
|
11953
|
-
"required": false,
|
|
11954
|
-
"valueHint": null
|
|
13408
|
+
"valueHint": "path"
|
|
11955
13409
|
}
|
|
11956
13410
|
],
|
|
11957
13411
|
"aliases": [],
|
|
11958
13412
|
"category": "CLI"
|
|
11959
13413
|
},
|
|
13414
|
+
{
|
|
13415
|
+
"id": "pan-lane-stop",
|
|
13416
|
+
"path": ["lane", "stop"],
|
|
13417
|
+
"display": "/pan lane stop",
|
|
13418
|
+
"description": "Stop a lane through the conversation stop door",
|
|
13419
|
+
"args": [{
|
|
13420
|
+
"name": "lane",
|
|
13421
|
+
"required": true,
|
|
13422
|
+
"variadic": false
|
|
13423
|
+
}],
|
|
13424
|
+
"options": [],
|
|
13425
|
+
"aliases": [],
|
|
13426
|
+
"category": "CLI"
|
|
13427
|
+
},
|
|
13428
|
+
{
|
|
13429
|
+
"id": "pan-lane-reap",
|
|
13430
|
+
"path": ["lane", "reap"],
|
|
13431
|
+
"display": "/pan lane reap",
|
|
13432
|
+
"description": "Remove a lane's directory and archive its conversation (never kills, never discards work)",
|
|
13433
|
+
"args": [{
|
|
13434
|
+
"name": "lane",
|
|
13435
|
+
"required": true,
|
|
13436
|
+
"variadic": false
|
|
13437
|
+
}],
|
|
13438
|
+
"options": [{
|
|
13439
|
+
"flags": "--park",
|
|
13440
|
+
"description": "Save uncommitted work to a verified patch before removing a dirty worktree",
|
|
13441
|
+
"required": false,
|
|
13442
|
+
"valueHint": null
|
|
13443
|
+
}, {
|
|
13444
|
+
"flags": "--keep",
|
|
13445
|
+
"description": "Keep the conversation listed instead of archiving it",
|
|
13446
|
+
"required": false,
|
|
13447
|
+
"valueHint": null
|
|
13448
|
+
}],
|
|
13449
|
+
"aliases": [],
|
|
13450
|
+
"category": "CLI"
|
|
13451
|
+
},
|
|
11960
13452
|
{
|
|
11961
13453
|
"id": "pan-flywheel",
|
|
11962
13454
|
"path": ["flywheel"],
|
|
@@ -12163,7 +13655,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
12163
13655
|
},
|
|
12164
13656
|
{
|
|
12165
13657
|
"flags": "--agent-harness <harness>",
|
|
12166
|
-
"description": "Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, opencode, muse, or user",
|
|
13658
|
+
"description": "Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, opencode, muse, prime-agent, or user",
|
|
12167
13659
|
"required": true,
|
|
12168
13660
|
"valueHint": "harness"
|
|
12169
13661
|
},
|
|
@@ -13093,6 +14585,21 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
13093
14585
|
"aliases": [],
|
|
13094
14586
|
"category": "Core"
|
|
13095
14587
|
},
|
|
14588
|
+
{
|
|
14589
|
+
"id": "pan-doctor-github-quota",
|
|
14590
|
+
"path": ["doctor", "github-quota"],
|
|
14591
|
+
"display": "/pan doctor github-quota",
|
|
14592
|
+
"description": "Show GitHub API quota use per caller, active pauses, and skipped projects",
|
|
14593
|
+
"args": [],
|
|
14594
|
+
"options": [{
|
|
14595
|
+
"flags": "--json",
|
|
14596
|
+
"description": "Print JSON",
|
|
14597
|
+
"required": false,
|
|
14598
|
+
"valueHint": null
|
|
14599
|
+
}],
|
|
14600
|
+
"aliases": [],
|
|
14601
|
+
"category": "Core"
|
|
14602
|
+
},
|
|
13096
14603
|
{
|
|
13097
14604
|
"id": "pan-resources",
|
|
13098
14605
|
"path": ["resources"],
|
|
@@ -13642,6 +15149,11 @@ const DirectoryPause = Schema.Struct({
|
|
|
13642
15149
|
reason: Schema.NullOr(Schema.String),
|
|
13643
15150
|
since: Schema.NullOr(Schema.String)
|
|
13644
15151
|
});
|
|
15152
|
+
/** A provider error (billing, usage limit, ...) detected at the end of a transcript (PAN-4222). */
|
|
15153
|
+
const DirectoryProviderError = Schema.Struct({
|
|
15154
|
+
message: Schema.String,
|
|
15155
|
+
at: Schema.String
|
|
15156
|
+
});
|
|
13645
15157
|
const DirectoryEntry = Schema.Struct({
|
|
13646
15158
|
id: Schema.String,
|
|
13647
15159
|
kind: DirectoryEntryKind,
|
|
@@ -13666,7 +15178,29 @@ const DirectoryEntry = Schema.Struct({
|
|
|
13666
15178
|
source: DirectoryEntrySource,
|
|
13667
15179
|
transcript: Schema.NullOr(DirectoryTranscriptRef),
|
|
13668
15180
|
/** The pause gate from state.json, native agents only (PAN-4197). */
|
|
13669
|
-
pause: Schema.optional(DirectoryPause)
|
|
15181
|
+
pause: Schema.optional(DirectoryPause),
|
|
15182
|
+
/** PAN-4223: gauntlet lane facts; conversation entries that are lanes only. */
|
|
15183
|
+
lane: Schema.optional(Schema.Struct({
|
|
15184
|
+
run: Schema.String,
|
|
15185
|
+
key: Schema.String,
|
|
15186
|
+
role: Schema.String,
|
|
15187
|
+
iteration: Schema.Number,
|
|
15188
|
+
reportStatus: Schema.NullOr(Schema.Literals([
|
|
15189
|
+
"done",
|
|
15190
|
+
"blocked",
|
|
15191
|
+
"failed"
|
|
15192
|
+
])),
|
|
15193
|
+
/** Critic/verifier: its verdict (or `pending`); builder: the newest critic verdict. */
|
|
15194
|
+
verdict: Schema.optional(Schema.NullOr(Schema.String)),
|
|
15195
|
+
/** Critic/verifier: the judged builder's legacy conversation id. */
|
|
15196
|
+
criticOf: Schema.optional(Schema.Number)
|
|
15197
|
+
})),
|
|
15198
|
+
/** PAN-4223: the predecessor's legacy conversation id; successors only (links to /conv/<id>). */
|
|
15199
|
+
continuesFrom: Schema.optional(Schema.Number),
|
|
15200
|
+
/** The id runtime events (agentRuntimeById) are keyed under, when it differs from `id` (PAN-4222). */
|
|
15201
|
+
runtimeId: Schema.optional(Schema.String),
|
|
15202
|
+
/** A provider error detected at the transcript's end, conversations only (PAN-4222). */
|
|
15203
|
+
providerError: Schema.optional(DirectoryProviderError)
|
|
13670
15204
|
});
|
|
13671
15205
|
/**
|
|
13672
15206
|
* `window`: live entries plus finished ones active inside `windowHours`.
|
|
@@ -13763,6 +15297,73 @@ function isConfiguredPullRequestRepo(ref, repos) {
|
|
|
13763
15297
|
return repos.some((repo) => repo.host === ref.host && repo.repository === ref.repository);
|
|
13764
15298
|
}
|
|
13765
15299
|
//#endregion
|
|
13766
|
-
|
|
15300
|
+
//#region src/conversation-rows.ts
|
|
15301
|
+
/**
|
|
15302
|
+
* Conversation-row classifiers shared by the dashboard server (`src/lib`) and
|
|
15303
|
+
* the frontend (PAN-4301). One rule per question: which rows are singleton
|
|
15304
|
+
* runners, and what a lane conversation is doing right now (D10).
|
|
15305
|
+
*/
|
|
15306
|
+
/** Singleton runners spawn under their bare id (see src/lib/agents/identity.ts normalizeAgentId). */
|
|
15307
|
+
const SINGLETON_AGENT_IDS = new Set(["flywheel-orchestrator", "sequencer-runner"]);
|
|
15308
|
+
function isSingletonConversation(row) {
|
|
15309
|
+
return SINGLETON_AGENT_IDS.has(row.name.toLowerCase()) || row.issueId != null && SINGLETON_AGENT_IDS.has(row.issueId.toLowerCase());
|
|
15310
|
+
}
|
|
15311
|
+
/** D10 `starting`: not alive, not ended, created less than this long ago. */
|
|
15312
|
+
const LANE_STARTING_GRACE_MS = 3 * 6e4;
|
|
15313
|
+
/** D10, first match wins. */
|
|
15314
|
+
function laneActivityOf(row, now) {
|
|
15315
|
+
if (row.archivedAt != null) return "stopped";
|
|
15316
|
+
if (row.spawnError) return "failed-to-start";
|
|
15317
|
+
if (row.sessionAlive) {
|
|
15318
|
+
if ((row.pendingInputCount ?? 0) > 0) return "needs-you";
|
|
15319
|
+
if (row.isWorking) return "working";
|
|
15320
|
+
return "idle";
|
|
15321
|
+
}
|
|
15322
|
+
if (row.status === "active" && now - Date.parse(row.createdAt) < 18e4) return "starting";
|
|
15323
|
+
return "stopped";
|
|
15324
|
+
}
|
|
15325
|
+
//#endregion
|
|
15326
|
+
//#region src/environment.ts
|
|
15327
|
+
/** Wire protocol version a client and server must agree on. */
|
|
15328
|
+
const ENVIRONMENT_PROTOCOL_VERSION = 1;
|
|
15329
|
+
const EnvironmentId = Schema.String.pipe(Schema.brand("EnvironmentId"));
|
|
15330
|
+
const EnvironmentCapabilities = Schema.Struct({
|
|
15331
|
+
/** `POST /api/pairing/*` is available. */
|
|
15332
|
+
pairing: Schema.Boolean,
|
|
15333
|
+
/** `GET/DELETE /api/devices` is available. */
|
|
15334
|
+
deviceSessions: Schema.Boolean,
|
|
15335
|
+
/** `/ws/*` upgrades require a credential (PAN-1166). */
|
|
15336
|
+
terminalAuth: Schema.Boolean
|
|
15337
|
+
});
|
|
15338
|
+
const EnvironmentDescriptor = Schema.Struct({
|
|
15339
|
+
descriptorVersion: Schema.Literal(1),
|
|
15340
|
+
environmentId: EnvironmentId,
|
|
15341
|
+
label: Schema.String,
|
|
15342
|
+
platform: Schema.Struct({
|
|
15343
|
+
os: Schema.String,
|
|
15344
|
+
arch: Schema.String
|
|
15345
|
+
}),
|
|
15346
|
+
/** Exact package version of the serving Overdeck. */
|
|
15347
|
+
serverVersion: Schema.String,
|
|
15348
|
+
/** The server's `ENVIRONMENT_PROTOCOL_VERSION`. */
|
|
15349
|
+
protocolVersion: Schema.Number,
|
|
15350
|
+
capabilities: EnvironmentCapabilities
|
|
15351
|
+
});
|
|
15352
|
+
/** A server-local id qualified by the environment that owns it. */
|
|
15353
|
+
const ScopedRef = (localId) => Schema.Struct({
|
|
15354
|
+
environmentId: EnvironmentId,
|
|
15355
|
+
localId
|
|
15356
|
+
});
|
|
15357
|
+
const ScopedProjectRef = ScopedRef(Schema.String);
|
|
15358
|
+
const ScopedIssueRef = ScopedRef(Schema.String);
|
|
15359
|
+
const ScopedAgentRef = ScopedRef(Schema.String);
|
|
15360
|
+
const ScopedConversationRef = ScopedRef(Schema.String);
|
|
15361
|
+
const ScopedTerminalRef = ScopedRef(Schema.String);
|
|
15362
|
+
/** True only when the server speaks exactly the client's protocol version. */
|
|
15363
|
+
function isProtocolCompatible(descriptor, clientProtocolVersion) {
|
|
15364
|
+
return descriptor.protocolVersion === clientProtocolVersion;
|
|
15365
|
+
}
|
|
15366
|
+
//#endregion
|
|
15367
|
+
export { ACP_BEHAVIOR, AGENT_ROLES, Activity, ActivityDetailedEvent, ActivityEntryEvent, ActivityTtsEvent, ActivityUpdatedEvent, AdmissionState, AgentActivityChangedEvent, AgentChannelReply, AgentChannelReplyEvent, AgentCompletedEvent, AgentContextSaturationChangedEvent, AgentCreatedEvent, AgentCurrentIssueSetEvent, AgentDirectoryResponse, AgentEnrichmentChangedEvent, AgentHealthKind, AgentHealthSnapshot, AgentHealthStatus, AgentHeartbeatDeadEvent, AgentHookFiredEvent, AgentId, AgentMessageReceivedEvent, AgentModelSetEvent, AgentOutput, AgentOutputReceivedEvent, AgentPermissionRequestedEvent, AgentPermissionResolvedEvent, AgentResolution, AgentResolutionChangedEvent, AgentRuntimeSnapshot, AgentSnapshot, AgentStartedEvent, AgentStateRestoredEvent, AgentStatus, AgentStatusChangedEvent, AgentStoppedEvent, AgentThinkingStartedEvent, AgentThinkingStoppedEvent, AgentTurnDiffCompletedEvent, AgentWaitingClearedEvent, AgentWaitingStartedEvent, ArtifactAgentHarness, ArtifactAgentRole, ArtifactCreateResponse, ArtifactDetailResponse, ArtifactHash, ArtifactId, ArtifactLifecycleState, ArtifactListEntry, ArtifactListResponse, ArtifactMetadata, ArtifactPublishResponse, ArtifactSlug, ArtifactStatusResponse, ArtifactUnshareResponse, ArtifactUrls, ArtifactValidationCode, ArtifactValidationFinding, ArtifactValidationResult, BackendPane, BackendPaneChangedEvent, BackendPaneRemovedEvent, BeadsFreshnessChangedEvent, CHANNEL_REPLY_KIND_VALUES, CLAUDE_CODE_BEHAVIOR, CODEX_BEHAVIOR, COMPANION_TERMINAL_CLOSE_BODY_KEYS, COMPANION_TERMINAL_OPEN_BODY_KEYS, COMPOSER_COMMAND_INSERT_OVERRIDES, COMPOSER_COMMAND_MANIFEST, COMPOSER_COMMAND_VARIANTS, CONTEXT_LAYER_KINDS, CONTEXT_PREVIEW_HARNESSES, ChannelPermissionRequestSnapshot, ChannelReplyArtifactRef, ChannelReplyKind, ChatMessage, ClaudeChannelPermissionBehavior, CompactBoundary, ContextEditableLayerRecord, ContextHarnessPreviews, ContextLayerDraft, ContextLayerKind, ContextLayerSaveRequest, ContextLayerSaveResponse, ContextLayerTarget, ContextLayersResponse, ContextPreviewDiagnostic, ContextPreviewHarness, ContextPreviewRequest, ContextPreviewResponse, ContextProjectSummary, ContextSyncRequest, ContextSyncResponse, ContextSyncTarget, ContextUsage, ContextWorkspaceSummary, ConversationCompactingChangedEvent, ConversationCostSummary, ConversationCreatedEvent, ConversationEvent, ConversationFilter, ConversationMovedEvent, ConversationPermissionChangedEvent, ConversationPullRequests, ConversationPullRequestsChangedEvent, ConversationResponse, ConversationTitleChangedEvent, CostEventRecordedEvent, DEFAULT_EFFORT, DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE, DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT, DashboardLifecycleCompletedEvent, DashboardLifecycleFailedEvent, DashboardLifecycleStartedEvent, DashboardSnapshot, DeepWipeRpc, DeployStalenessSnapshot, DerivedBranchState, DerivedIssueState, DerivedPrState, DerivedWorkStart, DirectoryEntry, DirectoryEntryKind, DirectoryEntryLocation, DirectoryEntrySource, DirectoryEntryState, DirectoryPause, DirectoryPauseBy, DirectoryProviderError, DirectoryScope, DirectoryTranscriptRef, DiscoveredSessionSnapshot, DomainEvent, EDITORS, EFFORT_LEVELS, ENVIRONMENT_PROTOCOL_VERSION, EditorIdSchema, EffortLevelSchema, EmbedProgressEvent, EmbedProgressSnapshot, EmbedSessionsRpc, EnrichCompleteEvent, EnrichProgressEvent, EnrichProgressSnapshot, EnrichSessionsRpc, EnrichStatsSnapshot, EnvironmentCapabilities, EnvironmentDescriptor, EnvironmentId, ExtractionProviderConfig, ExtractionProviderTarget, FeatureNode, FeatureRegistryEntry, FeatureRegistryStatus, FlywheelAgent, FlywheelAgentStatus, FlywheelAgentSummary, FlywheelBugRateCriterion, FlywheelConversationSummary, FlywheelDerivedStatus, FlywheelEffort, FlywheelFreshness, FlywheelHarness, FlywheelHeadline, FlywheelHttpUrl, FlywheelInFlightRow, FlywheelJournalSummary, FlywheelLastTick, FlywheelOrchestrator, FlywheelOrderBookSummary, FlywheelOrders, FlywheelP0Criterion, FlywheelParkedItem, FlywheelPipelineItem, FlywheelPipelineStatus, FlywheelPipelineVerb, FlywheelPolicies, FlywheelRunId, FlywheelRunState, FlywheelScope, FlywheelStats, FlywheelStatsCriterionStatus, FlywheelStatsTrend, FlywheelStatsWindow, FlywheelStatus, FlywheelSubstrateBug, FlywheelSubstrateBugRow, FlywheelSubstrateBugStatus, FlywheelSubstrateSeverity, FlywheelSuggestion, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSystemStatus, GITHUB_QUOTA_BUCKETS, GITHUB_QUOTA_CALLERS, GITHUB_QUOTA_POOLS, GetAvailableEditorsRpc, GetConversationCostByWorkspaceRpc, GetConversationCostRpc, GetConversationStatsRpc, GetDiscoveredSessionRpc, GetSessionsFeedFacetsRpc, GetSnapshotRpc, GitHubQuotaBucket, GitHubQuotaCaller, GitHubQuotaCallerUsage, GitHubQuotaChangedEvent, GitHubQuotaPause, GitHubQuotaPool, GitHubQuotaSample, GitHubQuotaSnapshot, GitHubQuotaUsage, GitHubRateLimitKind, GlobalContextLayerRecord, GlobalContextLayerTarget, HOOK_INVENTORY, HealthReason, HealthState, HostHealthMetrics, HostPlatform, HygieneFinding, HygienePullRequest, HygieneReport, INITIAL_READ_MODEL_STATE, ISSUE_ATTENTIONS, ISSUE_STATES, ISSUE_STATE_PRECEDENCE, IssueAttention, IssueId, IssueState, IssueStateChangedEvent, IssueStatusChangedEvent, IssueTransitionedEvent, IssuesDeltaEvent, IssuesSnapshotEvent, IssuesUpdatedEvent, KIMI_CODE_BEHAVIOR, KNOWN_HARNESSES, LANE_STARTING_GRACE_MS, LegacySystemHealthSummary, LegacyWebhookRelaySummary, LinearMcpAuthCallbackRelayedEvent, LinearMcpAuthHealthyEvent, LinearMcpAuthNotifiedEvent, LinearMcpAuthRequiredEvent, ListDiscoveredSessionsRpc, ListSessionsFeedRpc, MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH, MAX_CHANNEL_REPLY_ARTIFACT_REFS, MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH, MAX_CHANNEL_REPLY_SUMMARY_LENGTH, MEMBERSHIP_UNAVAILABLE_REASONS, MUSE_BEHAVIOR, MemoryAgentRole, MemoryHealthChangedEvent, MemoryIdentity, MemoryObservation, MemoryObservationCreatedEvent, MemoryResetMarkerCreatedEvent, MemoryRollupTriggeredEvent, MemoryStatus, MemoryStatusPhase, MemoryStatusUpdatedEvent, MemoryTokenUsage, MergeReadyEvent, ModelOrigin, ModelOriginEntry, NON_ESSENTIAL_GITHUB_CALLERS, OHMYPI_BEHAVIOR, OPENCODE_BEHAVIOR, OVERDECK_AGENT_PROTOCOL_VERSION, OVERDECK_DASHBOARD_PROTOCOL_VERSION, OpenInEditorInput, OperatorInterventionEvent, OrderBook, OrderBookIndexEntry, OrderBookItem, OrderBookLane, OrderBookPosture, OrderBookSettings, OrderBookStatus, PIPELINE_MEMBERSHIP_LOADING_CODE, PRIME_AGENT_BEHAVIOR, PanRpcError, PanRpcGroup, PendingTurn, PipelineReviewCompletedEvent, PipelineReviewStartedEvent, PipelineTestCompletedEvent, PipelineTestStartedEvent, PipelineVerificationFailedEvent, PipelineVerificationStartedEvent, PlanItemStatusChangedEvent, PlanItemsUnblockedEvent, PlanSubitemStatusChangedEvent, PlanningFailedEvent, PlanningStartedEvent, PlanningSyncEvent, PrChecksState, PrReviewState, ProjectCiHeadObservedEvent, ProjectCiSnapshot, ProjectCiSuite, ProjectCiSuiteObservedEvent, ProjectContextLayerRecord, ProjectContextLayerTarget, ProjectDeployChangedEvent, ProjectDeployPhase, ProjectDeploySnapshot, ProjectSessionTree, ProposedPlan, PullRequestKey, PullRequestLink, PullRequestLinkListing, PullRequestLinkSource, PullRequestLinkedConversation, PullRequestSnapshot, PullRequestState, RagDecision, RagDecisionSource, ReadFileAtPathInput, ReadFileAtPathResult, ReadFileAtPathRpc, ReadWorkspaceFileInput, ReadWorkspaceFileResult, ReadWorkspaceFileRpc, ReplayEventsRpc, ResetMarker, ResetMarkerScope, ResizeTerminalRpc, ResolveFilePathExistsInput, ResolveFilePathExistsResult, ResolveFilePathExistsRpc, ResourceStats, ResourcesUpdatedEvent, RestartGateChangedEvent, RestartGateKind, RestartGateOutcome, RestartGateRequest, RestartGateSnapshot, ReviewApprovedEvent, ReviewCoordinatorDiedEvent, ReviewCoordinatorStartedEvent, ReviewReviewerCompletedEvent, ReviewReviewerStartedEvent, ReviewSpecialistTimedOutEvent, ReviewVerdictDispatchedEvent, ReviewVerdictRejectedEvent, ReviewVerdictRestoreBlockedEvent, ReviewerRoundMetadata, ReviewerRoundSummary, Role, SINGLETON_AGENT_IDS, ScanCompleteEvent, ScanConversationsRpc, ScanProgressEvent, ScanProgressSnapshot, ScanResult, ScanStartedEvent, ScopedAgentRef, ScopedConversationRef, ScopedIssueRef, ScopedProjectRef, ScopedRef, ScopedTerminalRef, SearchConversationsRpc, SendTerminalInputRpc, SequenceNumber, ServiceHealthSnapshot, ServiceHealthStatus, SessionNode, SessionNodePresence, SessionNodeType, SessionTreeDelta, SessionsFeedFacetsSnapshot, SessionsFeedRowSnapshot, SessionsFeedSource, ShadowInferenceUpdateEvent, ShellOpenInEditorRpc, SpecialistCompletedEvent, SpecialistFailedEvent, SpecialistLifecycle, SpecialistStartedEvent, StartAgentRpc, StartPlanningRpc, SubagentHumanInput, SubagentSummary, SubscribeAgentOutputRpc, SubscribeConversationMessagesRpc, SubscribeDomainEventsRpc, SubscribeIssueEventsRpc, SubscribeProjectSessionTreeRpc, SubscribeTerminalRpc, SubstrateBugFiledEvent, SweepEscalatedEvent, SweepRecommendationEvent, SweepScanEvent, SystemHealthConsumer, SystemHealthSeverityChangedEvent, SystemHealthSnapshot, SystemHeartbeatEvent, TELEMETRY_CLI_VERBS, TELEMETRY_EVENT_CATALOG, TELEMETRY_EVENT_NAMES, TELEMETRY_PROPERTY_DOMAINS, TERMINAL_BACKEND_NAMES, TerminalCloseRpc, TerminalOpenRpc, TerminalOutput, TerminalResizeRpc, TerminalWriteRpc, TestPassedEvent, ThinkingState, TickMarker, TickMarkerPhase, TurnDiffFileChange, TurnDiffSummary, TurnEndAssessment, WIRED_HOOK_INVENTORY, WIRED_HOOK_NAMES, WS_METHODS, WaitingReason, WaitingState, WorkCompletedEvent, WorkLogEntry, WorkspaceAbortedEvent, WorkspaceArtifactsResponse, WorkspaceContextLayerRecord, WorkspaceContextLayerTarget, WorkspaceCreatedEvent, WorkspaceDeletedEvent, WorkspaceDestroyedEvent, WorkspaceWipeStartedEvent, WriteFileAtPathInput, WriteFileAtPathResult, WriteFileAtPathRpc, applyEvent, applyEvents, applyIssueDelta, bucketQuotaPoints, bucketQuotaRemaining, canonicalPullRequestUrl, companionTerminalKindFor, compareEffort, compareIssueIds, createIssueDelta, decodeFlywheelDerivedStatus, decodeFlywheelStats, deriveProjectCi, encodeFlywheelStats, getHarness, getHarnessBehavior, getMaxMemoryObservationsPerIssue, getMaxTurnDiffSummariesPerAgent, getRuntimeBehavior, indexPanesByAgentKey, isAgentRole, isAgentSessionName, isChannelReplyKind, isConfiguredPullRequestRepo, isEffortLevel, isIssueAttention, isIssueState, isProtocolCompatible, isSingletonConversation, isTerminalBackendName, isTerminalTurnDiffSummaryStatus, laneActivityOf, normalizeChannelReplyPayload, omitTurnDiffSummariesForAgent, paneAgentKey, parsePullRequestRef, projectLegacySystemHealthSummary, repoFromRemoteUrl, resolveEffectivePullRequest, syncSnapshot, trimMemoryObservations, trimTurnDiffSummaries, withPaneLivenessAlias };
|
|
13767
15368
|
|
|
13768
15369
|
//# sourceMappingURL=index.mjs.map
|