@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.cjs
CHANGED
|
@@ -61,6 +61,27 @@ const BackendPane = effect.Schema.Struct({
|
|
|
61
61
|
/** Working directory of the pane (the issue workspace path). */
|
|
62
62
|
workspace: effect.Schema.optional(effect.Schema.String)
|
|
63
63
|
});
|
|
64
|
+
/**
|
|
65
|
+
* The agent id a pane answers for (PAN-4320). On Herdr `id` (`w1:p1`) and
|
|
66
|
+
* `terminalId` (`term_…`) are backend handles, never agent ids, so the
|
|
67
|
+
* `agentId` token decides; tmux panes carry `agentId` = session name.
|
|
68
|
+
*/
|
|
69
|
+
function paneAgentKey(pane) {
|
|
70
|
+
return pane.agentId ?? pane.terminalId ?? pane.id;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Panes by agent key. When two panes answer for one agent (a restarted Herdr
|
|
74
|
+
* agent beside its exited pane), a non-exited pane wins, never the reverse.
|
|
75
|
+
*/
|
|
76
|
+
function indexPanesByAgentKey(panes) {
|
|
77
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
78
|
+
for (const pane of panes) {
|
|
79
|
+
const key = paneAgentKey(pane);
|
|
80
|
+
const prior = byKey.get(key);
|
|
81
|
+
if (!prior || prior.state === "exited" && pane.state !== "exited") byKey.set(key, pane);
|
|
82
|
+
}
|
|
83
|
+
return byKey;
|
|
84
|
+
}
|
|
64
85
|
//#endregion
|
|
65
86
|
//#region src/derived-issue-state.ts
|
|
66
87
|
/**
|
|
@@ -86,7 +107,8 @@ const IssueState = effect.Schema.Literals([
|
|
|
86
107
|
const IssueAttention = effect.Schema.Literals([
|
|
87
108
|
"needs-you",
|
|
88
109
|
"stuck",
|
|
89
|
-
"api-error"
|
|
110
|
+
"api-error",
|
|
111
|
+
"work-not-started"
|
|
90
112
|
]);
|
|
91
113
|
/** Latest review decision on the PR, as the forge reports it. */
|
|
92
114
|
const PrReviewState = effect.Schema.Literals([
|
|
@@ -109,7 +131,9 @@ const DerivedPrState = effect.Schema.Struct({
|
|
|
109
131
|
reviewState: PrReviewState,
|
|
110
132
|
checks: PrChecksState,
|
|
111
133
|
/** Forge mergeability. `null` when the forge has not computed it yet. */
|
|
112
|
-
mergeable: effect.Schema.NullOr(effect.Schema.Boolean)
|
|
134
|
+
mergeable: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
135
|
+
/** Present only when true; survives state: closed (PAN-4290). */
|
|
136
|
+
merged: effect.Schema.optional(effect.Schema.Boolean)
|
|
113
137
|
});
|
|
114
138
|
/** The issue's feature branch as git reports it. */
|
|
115
139
|
const DerivedBranchState = effect.Schema.Struct({
|
|
@@ -117,6 +141,16 @@ const DerivedBranchState = effect.Schema.Struct({
|
|
|
117
141
|
aheadOfMain: effect.Schema.Number,
|
|
118
142
|
pushed: effect.Schema.Boolean
|
|
119
143
|
});
|
|
144
|
+
/** The workspace journal's read on a post-planning auto-start (PAN-4399). */
|
|
145
|
+
const DerivedWorkStart = effect.Schema.Struct({
|
|
146
|
+
status: effect.Schema.Literals(["retrying", "not-started"]),
|
|
147
|
+
/** ISO time of the journal entry the status was read from. */
|
|
148
|
+
at: effect.Schema.String,
|
|
149
|
+
error: effect.Schema.optional(effect.Schema.String),
|
|
150
|
+
nextRetryAt: effect.Schema.optional(effect.Schema.String),
|
|
151
|
+
/** The retry is journaled but not actually running because the Deacon is frozen (PAN-4210). Present only when true. */
|
|
152
|
+
held: effect.Schema.optional(effect.Schema.Literal(true))
|
|
153
|
+
});
|
|
120
154
|
/** Everything the dashboard needs to render an issue's pipeline position. */
|
|
121
155
|
const DerivedIssueState = effect.Schema.Struct({
|
|
122
156
|
issueId: effect.Schema.String,
|
|
@@ -129,7 +163,9 @@ const DerivedIssueState = effect.Schema.Struct({
|
|
|
129
163
|
* precedence — could not be ruled in or out. Present only in that case; an
|
|
130
164
|
* unresolved tracker read is never reported as an open issue.
|
|
131
165
|
*/
|
|
132
|
-
trackerUnknown: effect.Schema.optional(effect.Schema.Literal(true))
|
|
166
|
+
trackerUnknown: effect.Schema.optional(effect.Schema.Literal(true)),
|
|
167
|
+
/** A deferred or gave-up post-planning auto-start read from the workspace journal (PAN-4399). */
|
|
168
|
+
workStart: effect.Schema.optional(DerivedWorkStart)
|
|
133
169
|
});
|
|
134
170
|
const ISSUE_STATES = [
|
|
135
171
|
"backlog",
|
|
@@ -157,7 +193,8 @@ const ISSUE_STATE_PRECEDENCE = [
|
|
|
157
193
|
const ISSUE_ATTENTIONS = [
|
|
158
194
|
"needs-you",
|
|
159
195
|
"stuck",
|
|
160
|
-
"api-error"
|
|
196
|
+
"api-error",
|
|
197
|
+
"work-not-started"
|
|
161
198
|
];
|
|
162
199
|
function isIssueState(value) {
|
|
163
200
|
return typeof value === "string" && ISSUE_STATES.includes(value);
|
|
@@ -166,6 +203,119 @@ function isIssueAttention(value) {
|
|
|
166
203
|
return typeof value === "string" && ISSUE_ATTENTIONS.includes(value);
|
|
167
204
|
}
|
|
168
205
|
//#endregion
|
|
206
|
+
//#region src/github-quota.ts
|
|
207
|
+
/**
|
|
208
|
+
* The closed list of logical GitHub callers. A call made outside any
|
|
209
|
+
* `withGitHubCaller` context is recorded as `other` (or `app-rest` when it
|
|
210
|
+
* goes through the GitHub App REST door).
|
|
211
|
+
*/
|
|
212
|
+
const GITHUB_QUOTA_CALLERS = [
|
|
213
|
+
"pipeline-membership",
|
|
214
|
+
"pr-cache",
|
|
215
|
+
"pr-sync",
|
|
216
|
+
"ci-repair",
|
|
217
|
+
"issue-poller",
|
|
218
|
+
"close-out",
|
|
219
|
+
"tracker-client",
|
|
220
|
+
"app-rest",
|
|
221
|
+
"quota-sampler",
|
|
222
|
+
"agent",
|
|
223
|
+
"other"
|
|
224
|
+
];
|
|
225
|
+
const GitHubQuotaCaller = effect.Schema.Literals(GITHUB_QUOTA_CALLERS);
|
|
226
|
+
/**
|
|
227
|
+
* Read-model pollers whose data can be stale for minutes without harm. Only
|
|
228
|
+
* these callers are skipped while a pause is active; every other caller
|
|
229
|
+
* (merge, verdict recording, tracker writes, agents) is essential and never
|
|
230
|
+
* paused.
|
|
231
|
+
*/
|
|
232
|
+
const NON_ESSENTIAL_GITHUB_CALLERS = new Set([
|
|
233
|
+
"pipeline-membership",
|
|
234
|
+
"pr-cache",
|
|
235
|
+
"pr-sync",
|
|
236
|
+
"ci-repair",
|
|
237
|
+
"issue-poller",
|
|
238
|
+
"close-out"
|
|
239
|
+
]);
|
|
240
|
+
/**
|
|
241
|
+
* The GitHub identity whose limit a call spends: `user` is the `gh` CLI token,
|
|
242
|
+
* `pat` is the `GITHUB_TOKEN` personal access token, `app` is a GitHub App
|
|
243
|
+
* installation token.
|
|
244
|
+
*/
|
|
245
|
+
const GITHUB_QUOTA_POOLS = [
|
|
246
|
+
"user",
|
|
247
|
+
"pat",
|
|
248
|
+
"app"
|
|
249
|
+
];
|
|
250
|
+
const GitHubQuotaPool = effect.Schema.Literals(GITHUB_QUOTA_POOLS);
|
|
251
|
+
/** The limit counter inside a pool. `rest` is what GitHub calls `core`. */
|
|
252
|
+
const GITHUB_QUOTA_BUCKETS = ["graphql", "rest"];
|
|
253
|
+
const GitHubQuotaBucket = effect.Schema.Literals(GITHUB_QUOTA_BUCKETS);
|
|
254
|
+
/** Primary = the hourly budget; secondary = GitHub's burst/abuse limit. */
|
|
255
|
+
const GitHubRateLimitKind = effect.Schema.Literals(["primary", "secondary"]);
|
|
256
|
+
/** Points spent and calls made in one bucket. */
|
|
257
|
+
const GitHubQuotaUsage = effect.Schema.Struct({
|
|
258
|
+
points: effect.Schema.Number,
|
|
259
|
+
calls: effect.Schema.Number
|
|
260
|
+
});
|
|
261
|
+
/** One caller's metered usage over the last hour. */
|
|
262
|
+
const GitHubQuotaCallerUsage = effect.Schema.Struct({
|
|
263
|
+
caller: GitHubQuotaCaller,
|
|
264
|
+
graphql: GitHubQuotaUsage,
|
|
265
|
+
rest: GitHubQuotaUsage,
|
|
266
|
+
/** True when any counted call had an estimated (not GitHub-reported) cost. */
|
|
267
|
+
estimated: effect.Schema.Boolean
|
|
268
|
+
});
|
|
269
|
+
/** The latest `/rate_limit` (or header) reading for one pool and bucket. */
|
|
270
|
+
const GitHubQuotaSample = effect.Schema.Struct({
|
|
271
|
+
pool: GitHubQuotaPool,
|
|
272
|
+
bucket: GitHubQuotaBucket,
|
|
273
|
+
/** ISO time the sample was taken. */
|
|
274
|
+
ts: effect.Schema.String,
|
|
275
|
+
remaining: effect.Schema.Number,
|
|
276
|
+
limit: effect.Schema.Number,
|
|
277
|
+
/** ISO time the bucket's hourly window resets. */
|
|
278
|
+
resetAt: effect.Schema.optional(effect.Schema.String)
|
|
279
|
+
});
|
|
280
|
+
/** An active pause on one pool and bucket (`~/.overdeck/github-quota/pause.json`). */
|
|
281
|
+
const GitHubQuotaPause = effect.Schema.Struct({
|
|
282
|
+
pool: GitHubQuotaPool,
|
|
283
|
+
bucket: GitHubQuotaBucket,
|
|
284
|
+
kind: GitHubRateLimitKind,
|
|
285
|
+
/** The caller whose refused call started the pause. */
|
|
286
|
+
caller: GitHubQuotaCaller,
|
|
287
|
+
/** ISO time the pause started. */
|
|
288
|
+
since: effect.Schema.String,
|
|
289
|
+
/** ISO time the pause ends. */
|
|
290
|
+
until: effect.Schema.String
|
|
291
|
+
});
|
|
292
|
+
/**
|
|
293
|
+
* The operator-facing quota view — identical to the body of
|
|
294
|
+
* `GET /api/github-quota`, so the pill, the banner and the CLI read one shape.
|
|
295
|
+
* Derived runtime state: published with `emitOnly`, never persisted.
|
|
296
|
+
*/
|
|
297
|
+
const GitHubQuotaSnapshot = effect.Schema.Struct({
|
|
298
|
+
/** ISO time the snapshot was built. */
|
|
299
|
+
generatedAt: effect.Schema.String,
|
|
300
|
+
/** The `gh` account login. Local display only; never sent to telemetry. */
|
|
301
|
+
login: effect.Schema.NullOr(effect.Schema.String),
|
|
302
|
+
/** Per-caller usage in the last hour, highest total points first. */
|
|
303
|
+
callers: effect.Schema.Array(GitHubQuotaCallerUsage),
|
|
304
|
+
/** The latest sample per pool and bucket. */
|
|
305
|
+
samples: effect.Schema.Array(GitHubQuotaSample),
|
|
306
|
+
/** Active pauses; empty when GitHub calls are not paused. */
|
|
307
|
+
pauses: effect.Schema.Array(GitHubQuotaPause),
|
|
308
|
+
/** True when this machine's own metered usage cannot explain a primary limit. */
|
|
309
|
+
ownUsageLow: effect.Schema.Boolean,
|
|
310
|
+
/** User-pool GraphQL points the latest sample shows spent but no metered caller claims. */
|
|
311
|
+
unattributed: effect.Schema.Number,
|
|
312
|
+
/** Refusals observed in the last hour. */
|
|
313
|
+
refusals: effect.Schema.Struct({
|
|
314
|
+
primary: effect.Schema.Number,
|
|
315
|
+
secondary: effect.Schema.Number
|
|
316
|
+
})
|
|
317
|
+
});
|
|
318
|
+
//#endregion
|
|
169
319
|
//#region src/types.ts
|
|
170
320
|
const IssueId = effect.Schema.String;
|
|
171
321
|
const MEMBERSHIP_UNAVAILABLE_REASONS = [
|
|
@@ -222,7 +372,8 @@ const KNOWN_HARNESSES = new Set([
|
|
|
222
372
|
"acp",
|
|
223
373
|
"kimi-code",
|
|
224
374
|
"opencode",
|
|
225
|
-
"muse"
|
|
375
|
+
"muse",
|
|
376
|
+
"prime-agent"
|
|
226
377
|
]);
|
|
227
378
|
/**
|
|
228
379
|
* Normalize a snapshot's runtime field to a known Harness value.
|
|
@@ -321,6 +472,7 @@ const AgentRuntimeSnapshot = effect.Schema.Struct({
|
|
|
321
472
|
activity: Activity,
|
|
322
473
|
lastActivity: effect.Schema.String,
|
|
323
474
|
currentTool: effect.Schema.optional(effect.Schema.String),
|
|
475
|
+
currentToolDescription: effect.Schema.optional(effect.Schema.String),
|
|
324
476
|
thinking: effect.Schema.optional(ThinkingState),
|
|
325
477
|
waiting: effect.Schema.optional(WaitingState),
|
|
326
478
|
claudeSessionId: effect.Schema.optional(effect.Schema.String),
|
|
@@ -345,6 +497,13 @@ const ChannelPermissionRequestSnapshot = effect.Schema.Struct({
|
|
|
345
497
|
inputPreview: effect.Schema.String,
|
|
346
498
|
createdAt: effect.Schema.String
|
|
347
499
|
});
|
|
500
|
+
/** PAN-4371 — advisory Jev reading of why an idle agent ended its turn. kind is a string (append-only store). */
|
|
501
|
+
const TurnEndAssessment = effect.Schema.Struct({
|
|
502
|
+
kind: effect.Schema.String,
|
|
503
|
+
confidence: effect.Schema.Number,
|
|
504
|
+
needsAnswer: effect.Schema.Boolean,
|
|
505
|
+
model: effect.Schema.String
|
|
506
|
+
});
|
|
348
507
|
const AgentSnapshot = effect.Schema.Struct({
|
|
349
508
|
id: AgentId,
|
|
350
509
|
issueId: IssueId,
|
|
@@ -407,6 +566,7 @@ const AgentSnapshot = effect.Schema.Struct({
|
|
|
407
566
|
})),
|
|
408
567
|
resolution: effect.Schema.optional(AgentResolution),
|
|
409
568
|
resolutionCount: effect.Schema.optional(effect.Schema.Number),
|
|
569
|
+
turnEndAssessment: effect.Schema.optional(TurnEndAssessment),
|
|
410
570
|
runtimeSnapshotSequence: effect.Schema.optional(SequenceNumber)
|
|
411
571
|
});
|
|
412
572
|
/** PAN-3151: A recorded cycle in the review convergence tracking series */
|
|
@@ -584,6 +744,8 @@ const DashboardSnapshot = effect.Schema.Struct({
|
|
|
584
744
|
embedProgressBySessionId: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, EmbedProgressSnapshot)),
|
|
585
745
|
ciByProjectKey: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, ProjectCiSnapshot)),
|
|
586
746
|
restartGate: effect.Schema.optional(RestartGateSnapshot),
|
|
747
|
+
/** PAN-4264 — GitHub API quota use, samples and pauses; derived, never stored. */
|
|
748
|
+
githubQuota: effect.Schema.optional(GitHubQuotaSnapshot),
|
|
587
749
|
/** PAN-3751 — in-flight deploys keyed by project key. */
|
|
588
750
|
deployByProjectKey: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, ProjectDeploySnapshot)),
|
|
589
751
|
timestamp: effect.Schema.String
|
|
@@ -1457,6 +1619,20 @@ const RestartGateChangedEvent = effect.Schema.Struct({
|
|
|
1457
1619
|
payload: RestartGateSnapshot
|
|
1458
1620
|
});
|
|
1459
1621
|
/**
|
|
1622
|
+
* The GitHub API quota view changed (PAN-4264).
|
|
1623
|
+
*
|
|
1624
|
+
* The payload is the complete snapshot, so the reducer is a plain replace.
|
|
1625
|
+
* The server derives it from the quota ledger and pause file under
|
|
1626
|
+
* `~/.overdeck/github-quota/` and emits it in-memory only, like
|
|
1627
|
+
* `restart_gate.changed`: it is never persisted and never replayed at boot.
|
|
1628
|
+
*/
|
|
1629
|
+
const GitHubQuotaChangedEvent = effect.Schema.Struct({
|
|
1630
|
+
type: effect.Schema.Literal("github_quota.changed"),
|
|
1631
|
+
sequence: SequenceNumber,
|
|
1632
|
+
timestamp: effect.Schema.String,
|
|
1633
|
+
payload: GitHubQuotaSnapshot
|
|
1634
|
+
});
|
|
1635
|
+
/**
|
|
1460
1636
|
* The set of in-flight project deploys changed (PAN-3751).
|
|
1461
1637
|
*
|
|
1462
1638
|
* The payload is the COMPLETE projection keyed by project key, so the reducer
|
|
@@ -1648,7 +1824,8 @@ const AgentEnrichmentChangedEvent = effect.Schema.Struct({
|
|
|
1648
1824
|
plan: effect.Schema.String
|
|
1649
1825
|
})),
|
|
1650
1826
|
resolution: effect.Schema.optional(AgentResolution),
|
|
1651
|
-
resolutionCount: effect.Schema.optional(effect.Schema.Number)
|
|
1827
|
+
resolutionCount: effect.Schema.optional(effect.Schema.Number),
|
|
1828
|
+
turnEndAssessment: effect.Schema.optional(TurnEndAssessment)
|
|
1652
1829
|
})
|
|
1653
1830
|
});
|
|
1654
1831
|
/** New — agent created in database */
|
|
@@ -1671,6 +1848,7 @@ const AgentActivityChangedEvent = effect.Schema.Struct({
|
|
|
1671
1848
|
agentId: AgentId,
|
|
1672
1849
|
activity: Activity,
|
|
1673
1850
|
currentTool: effect.Schema.optional(effect.Schema.String),
|
|
1851
|
+
toolDescription: effect.Schema.optional(effect.Schema.String),
|
|
1674
1852
|
hookName: effect.Schema.optional(effect.Schema.String)
|
|
1675
1853
|
})
|
|
1676
1854
|
});
|
|
@@ -2773,6 +2951,7 @@ const DomainEvent = effect.Schema.Union([
|
|
|
2773
2951
|
ProjectCiSuiteObservedEvent,
|
|
2774
2952
|
ProjectCiHeadObservedEvent,
|
|
2775
2953
|
RestartGateChangedEvent,
|
|
2954
|
+
GitHubQuotaChangedEvent,
|
|
2776
2955
|
ProjectDeployChangedEvent,
|
|
2777
2956
|
AgentCreatedEvent,
|
|
2778
2957
|
AgentEnrichmentChangedEvent,
|
|
@@ -3163,13 +3342,23 @@ const WorkLogEntry = effect.Schema.Struct({
|
|
|
3163
3342
|
toolInput: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, effect.Schema.Unknown)),
|
|
3164
3343
|
sequence: effect.Schema.optional(effect.Schema.Number)
|
|
3165
3344
|
});
|
|
3345
|
+
/** A human-origin message read from a subagent's own sidechain transcript (PAN-4247). */
|
|
3346
|
+
const SubagentHumanInput = effect.Schema.Struct({
|
|
3347
|
+
id: effect.Schema.String,
|
|
3348
|
+
text: effect.Schema.String,
|
|
3349
|
+
createdAt: effect.Schema.String
|
|
3350
|
+
});
|
|
3166
3351
|
const SubagentSummary = effect.Schema.Struct({
|
|
3167
3352
|
agentId: effect.Schema.String,
|
|
3168
3353
|
agentType: effect.Schema.String,
|
|
3169
3354
|
description: effect.Schema.String,
|
|
3170
3355
|
toolUseId: effect.Schema.String,
|
|
3171
3356
|
spawnDepth: effect.Schema.Number,
|
|
3172
|
-
status: effect.Schema.Literals(["running", "done"])
|
|
3357
|
+
status: effect.Schema.Literals(["running", "done"]),
|
|
3358
|
+
/** True for a background subagent, launched with `requestShape: "background"` (PAN-4247). */
|
|
3359
|
+
background: effect.Schema.optional(effect.Schema.Boolean),
|
|
3360
|
+
/** Recent human-origin sidechain inputs, most useful when a message routed into this subagent instead of the main conversation (PAN-4247). */
|
|
3361
|
+
humanInputs: effect.Schema.optional(effect.Schema.Array(SubagentHumanInput))
|
|
3173
3362
|
});
|
|
3174
3363
|
/**
|
|
3175
3364
|
* Response shape for GET /api/agents/:id/conversation.
|
|
@@ -3678,6 +3867,7 @@ const INITIAL_READ_MODEL_STATE = {
|
|
|
3678
3867
|
embedProgressBySessionId: {},
|
|
3679
3868
|
ciByProjectKey: {},
|
|
3680
3869
|
restartGate: null,
|
|
3870
|
+
githubQuota: null,
|
|
3681
3871
|
deployByProjectKey: {},
|
|
3682
3872
|
agentIdBySessionId: {},
|
|
3683
3873
|
dashboardLifecycle: {
|
|
@@ -3809,6 +3999,7 @@ function syncSnapshot(state, snapshot) {
|
|
|
3809
3999
|
embedProgressBySessionId: snapshot.embedProgressBySessionId ?? {},
|
|
3810
4000
|
ciByProjectKey: snapshot.ciByProjectKey ?? state.ciByProjectKey,
|
|
3811
4001
|
restartGate: snapshot.restartGate ?? state.restartGate,
|
|
4002
|
+
githubQuota: snapshot.githubQuota ?? state.githubQuota,
|
|
3812
4003
|
deployByProjectKey: snapshot.deployByProjectKey ?? state.deployByProjectKey,
|
|
3813
4004
|
agentIdBySessionId
|
|
3814
4005
|
};
|
|
@@ -3888,7 +4079,8 @@ function applyEvent(state, event) {
|
|
|
3888
4079
|
pendingAskUserQuestion: event.payload.pendingAskUserQuestion,
|
|
3889
4080
|
pendingProposedPlan: event.payload.pendingProposedPlan,
|
|
3890
4081
|
resolution: event.payload.resolution,
|
|
3891
|
-
resolutionCount: event.payload.resolutionCount
|
|
4082
|
+
resolutionCount: event.payload.resolutionCount,
|
|
4083
|
+
turnEndAssessment: event.payload.turnEndAssessment
|
|
3892
4084
|
}
|
|
3893
4085
|
}
|
|
3894
4086
|
};
|
|
@@ -3913,6 +4105,7 @@ function applyEvent(state, event) {
|
|
|
3913
4105
|
...prevRuntime,
|
|
3914
4106
|
activity: "stopped",
|
|
3915
4107
|
currentTool: void 0,
|
|
4108
|
+
currentToolDescription: void 0,
|
|
3916
4109
|
thinking: void 0,
|
|
3917
4110
|
waiting: void 0,
|
|
3918
4111
|
channelReply: void 0,
|
|
@@ -4025,6 +4218,7 @@ function applyEvent(state, event) {
|
|
|
4025
4218
|
delete base["pendingInputKinds"];
|
|
4026
4219
|
delete base["pendingAskUserQuestion"];
|
|
4027
4220
|
delete base["pendingProposedPlan"];
|
|
4221
|
+
delete base["turnEndAssessment"];
|
|
4028
4222
|
}
|
|
4029
4223
|
return base;
|
|
4030
4224
|
})();
|
|
@@ -4056,6 +4250,7 @@ function applyEvent(state, event) {
|
|
|
4056
4250
|
...prevRuntime,
|
|
4057
4251
|
activity: "stopped",
|
|
4058
4252
|
currentTool: void 0,
|
|
4253
|
+
currentToolDescription: void 0,
|
|
4059
4254
|
thinking: void 0,
|
|
4060
4255
|
waiting: void 0,
|
|
4061
4256
|
channelReply: void 0,
|
|
@@ -4224,6 +4419,11 @@ function applyEvent(state, event) {
|
|
|
4224
4419
|
...event.payload.lastOutcome === void 0 ? {} : { lastOutcome: event.payload.lastOutcome }
|
|
4225
4420
|
}
|
|
4226
4421
|
};
|
|
4422
|
+
case "github_quota.changed": return {
|
|
4423
|
+
...state,
|
|
4424
|
+
sequence: Math.max(state.sequence, event.sequence),
|
|
4425
|
+
githubQuota: event.payload
|
|
4426
|
+
};
|
|
4227
4427
|
case "project.deploy_changed": return {
|
|
4228
4428
|
...state,
|
|
4229
4429
|
sequence: Math.max(state.sequence, event.sequence),
|
|
@@ -4477,12 +4677,13 @@ function applyEvent(state, event) {
|
|
|
4477
4677
|
sequence: Math.max(state.sequence, event.sequence)
|
|
4478
4678
|
};
|
|
4479
4679
|
case "agent.activity_changed": {
|
|
4480
|
-
const { agentId, activity, currentTool } = event.payload;
|
|
4680
|
+
const { agentId, activity, currentTool, toolDescription } = event.payload;
|
|
4481
4681
|
const prev = state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence);
|
|
4482
4682
|
const next = {
|
|
4483
4683
|
...prev,
|
|
4484
4684
|
activity,
|
|
4485
4685
|
currentTool: activity === "working" ? currentTool : void 0,
|
|
4686
|
+
currentToolDescription: activity === "working" ? toolDescription : void 0,
|
|
4486
4687
|
thinking: activity === "thinking" ? prev.thinking : void 0,
|
|
4487
4688
|
waiting: activity === "waiting" ? prev.waiting : void 0,
|
|
4488
4689
|
channelReply: activity === "working" ? void 0 : prev.channelReply,
|
|
@@ -4505,6 +4706,7 @@ function applyEvent(state, event) {
|
|
|
4505
4706
|
...state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence),
|
|
4506
4707
|
activity: "thinking",
|
|
4507
4708
|
currentTool: void 0,
|
|
4709
|
+
currentToolDescription: void 0,
|
|
4508
4710
|
thinking: {
|
|
4509
4711
|
since: event.timestamp,
|
|
4510
4712
|
lastToolAt
|
|
@@ -4553,6 +4755,7 @@ function applyEvent(state, event) {
|
|
|
4553
4755
|
...state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence),
|
|
4554
4756
|
activity: "waiting",
|
|
4555
4757
|
currentTool: void 0,
|
|
4758
|
+
currentToolDescription: void 0,
|
|
4556
4759
|
thinking: void 0,
|
|
4557
4760
|
waiting: {
|
|
4558
4761
|
reason,
|
|
@@ -5109,6 +5312,30 @@ function deriveProjectCi(record) {
|
|
|
5109
5312
|
};
|
|
5110
5313
|
}
|
|
5111
5314
|
//#endregion
|
|
5315
|
+
//#region src/effort.ts
|
|
5316
|
+
/**
|
|
5317
|
+
* Canonical reasoning-effort levels, end to end. `xhigh` was added in Opus 4.7
|
|
5318
|
+
* (between `high` and `max`); `max` predates it (Opus 4.6+/Sonnet 4.6). This is
|
|
5319
|
+
* the single source of truth for the enum — every other copy in the codebase
|
|
5320
|
+
* derives from it.
|
|
5321
|
+
*/
|
|
5322
|
+
const EFFORT_LEVELS = [
|
|
5323
|
+
"low",
|
|
5324
|
+
"medium",
|
|
5325
|
+
"high",
|
|
5326
|
+
"xhigh",
|
|
5327
|
+
"max"
|
|
5328
|
+
];
|
|
5329
|
+
const DEFAULT_EFFORT = "high";
|
|
5330
|
+
const EffortLevelSchema = effect.Schema.Literals(EFFORT_LEVELS);
|
|
5331
|
+
function isEffortLevel(value) {
|
|
5332
|
+
return typeof value === "string" && EFFORT_LEVELS.includes(value);
|
|
5333
|
+
}
|
|
5334
|
+
/** Compares two effort levels by rank; negative when `a` is lower than `b`. */
|
|
5335
|
+
function compareEffort(a, b) {
|
|
5336
|
+
return EFFORT_LEVELS.indexOf(a) - EFFORT_LEVELS.indexOf(b);
|
|
5337
|
+
}
|
|
5338
|
+
//#endregion
|
|
5112
5339
|
//#region src/flywheel.ts
|
|
5113
5340
|
const FlywheelRunId = effect.Schema.String.check(effect.Schema.isPattern(/^RUN-\d+$/));
|
|
5114
5341
|
const FlywheelHttpUrl = effect.Schema.String.check(effect.Schema.isPattern(/^https?:\/\/\S+$/i));
|
|
@@ -5120,15 +5347,10 @@ const FlywheelHarness = effect.Schema.Literals([
|
|
|
5120
5347
|
"acp",
|
|
5121
5348
|
"kimi-code",
|
|
5122
5349
|
"opencode",
|
|
5123
|
-
"muse"
|
|
5124
|
-
|
|
5125
|
-
const FlywheelEffort = effect.Schema.Literals([
|
|
5126
|
-
"low",
|
|
5127
|
-
"medium",
|
|
5128
|
-
"high",
|
|
5129
|
-
"xhigh",
|
|
5130
|
-
"max"
|
|
5350
|
+
"muse",
|
|
5351
|
+
"prime-agent"
|
|
5131
5352
|
]);
|
|
5353
|
+
const FlywheelEffort = EffortLevelSchema;
|
|
5132
5354
|
const FlywheelOrchestrator = effect.Schema.Struct({
|
|
5133
5355
|
harness: FlywheelHarness,
|
|
5134
5356
|
model: effect.Schema.String,
|
|
@@ -5389,6 +5611,8 @@ const FlywheelConversationSummary = effect.Schema.Struct({
|
|
|
5389
5611
|
model: effect.Schema.NullOr(effect.Schema.String),
|
|
5390
5612
|
harness: effect.Schema.NullOr(effect.Schema.String),
|
|
5391
5613
|
cwd: effect.Schema.String,
|
|
5614
|
+
/** When the conversation row was created — the page's elapsed run time. */
|
|
5615
|
+
createdAt: effect.Schema.String,
|
|
5392
5616
|
sessionAlive: effect.Schema.Boolean
|
|
5393
5617
|
});
|
|
5394
5618
|
const FlywheelLastTick = effect.Schema.Struct({
|
|
@@ -5410,11 +5634,28 @@ const FlywheelJournalSummary = effect.Schema.Struct({
|
|
|
5410
5634
|
type: effect.Schema.String,
|
|
5411
5635
|
source: effect.Schema.optional(effect.Schema.String)
|
|
5412
5636
|
});
|
|
5637
|
+
/** One live agent pane in the flywheel's project, as the backend inventory reports it. */
|
|
5638
|
+
const FlywheelAgentSummary = effect.Schema.Struct({
|
|
5639
|
+
issueId: effect.Schema.String,
|
|
5640
|
+
role: effect.Schema.String,
|
|
5641
|
+
harness: effect.Schema.String,
|
|
5642
|
+
model: effect.Schema.String,
|
|
5643
|
+
state: effect.Schema.String,
|
|
5644
|
+
agentId: effect.Schema.optional(effect.Schema.String)
|
|
5645
|
+
});
|
|
5413
5646
|
const FlywheelInFlightRow = effect.Schema.Struct({
|
|
5414
5647
|
issueId: effect.Schema.String,
|
|
5648
|
+
/** The tracker's title, or `null` when no tracker answered for this issue. */
|
|
5649
|
+
title: effect.Schema.NullOr(effect.Schema.String),
|
|
5415
5650
|
state: IssueState,
|
|
5416
5651
|
attention: effect.Schema.optional(IssueAttention),
|
|
5417
5652
|
pr: effect.Schema.optional(DerivedPrState),
|
|
5653
|
+
/** Set when no configured tracker answered: the state is a guess, not a fact. */
|
|
5654
|
+
trackerUnknown: effect.Schema.optional(effect.Schema.Literal(true)),
|
|
5655
|
+
/** Live agent panes on this issue. `working` with 0 means nobody is driving it. */
|
|
5656
|
+
liveAgents: effect.Schema.Number,
|
|
5657
|
+
/** The loop named this id in its newest tick marker's in-flight list. */
|
|
5658
|
+
inTick: effect.Schema.Boolean,
|
|
5418
5659
|
lastJournal: effect.Schema.NullOr(FlywheelJournalSummary)
|
|
5419
5660
|
});
|
|
5420
5661
|
const FlywheelOrderBookSummary = effect.Schema.Struct({
|
|
@@ -5431,6 +5672,13 @@ const FlywheelDerivedStatus = effect.Schema.Struct({
|
|
|
5431
5672
|
freshness: effect.Schema.NullOr(FlywheelFreshness),
|
|
5432
5673
|
policies: FlywheelPolicies,
|
|
5433
5674
|
inFlight: effect.Schema.Array(FlywheelInFlightRow),
|
|
5675
|
+
/** Every live agent on an in-flight issue, by issue then role. */
|
|
5676
|
+
agents: effect.Schema.Array(FlywheelAgentSummary),
|
|
5677
|
+
/**
|
|
5678
|
+
* Which list the header counts: `tick` when a running loop named its own
|
|
5679
|
+
* in-flight ids, `census` when the rows are just the feature workspaces.
|
|
5680
|
+
*/
|
|
5681
|
+
inFlightSource: effect.Schema.Literals(["tick", "census"]),
|
|
5434
5682
|
orderBook: effect.Schema.NullOr(FlywheelOrderBookSummary),
|
|
5435
5683
|
projectRoot: effect.Schema.String,
|
|
5436
5684
|
generatedAt: effect.Schema.String
|
|
@@ -5496,7 +5744,8 @@ const CONTEXT_PREVIEW_HARNESSES = [
|
|
|
5496
5744
|
"acp",
|
|
5497
5745
|
"kimi-code",
|
|
5498
5746
|
"opencode",
|
|
5499
|
-
"muse"
|
|
5747
|
+
"muse",
|
|
5748
|
+
"prime-agent"
|
|
5500
5749
|
];
|
|
5501
5750
|
const ContextLayerKind = effect.Schema.Literals(CONTEXT_LAYER_KINDS);
|
|
5502
5751
|
const ContextPreviewHarness = effect.Schema.Literals(CONTEXT_PREVIEW_HARNESSES);
|
|
@@ -5606,6 +5855,7 @@ const ContextHarnessPreviews = effect.Schema.Struct({
|
|
|
5606
5855
|
"kimi-code": effect.Schema.String,
|
|
5607
5856
|
opencode: effect.Schema.optional(effect.Schema.String),
|
|
5608
5857
|
muse: effect.Schema.String,
|
|
5858
|
+
"prime-agent": effect.Schema.String,
|
|
5609
5859
|
fullPrompt: effect.Schema.String
|
|
5610
5860
|
});
|
|
5611
5861
|
const ContextPreviewDiagnostic = effect.Schema.Struct({
|
|
@@ -5664,6 +5914,7 @@ const ArtifactAgentHarness = effect.Schema.Literals([
|
|
|
5664
5914
|
"kimi-code",
|
|
5665
5915
|
"opencode",
|
|
5666
5916
|
"muse",
|
|
5917
|
+
"prime-agent",
|
|
5667
5918
|
"user"
|
|
5668
5919
|
]);
|
|
5669
5920
|
const ArtifactLifecycleState = effect.Schema.Literals([
|
|
@@ -5841,7 +6092,8 @@ const CLAUDE_CODE_BEHAVIOR = {
|
|
|
5841
6092
|
usesCodexHome: false,
|
|
5842
6093
|
injectsPromptTimeMemory: false,
|
|
5843
6094
|
workAgentMode: "claude-code",
|
|
5844
|
-
readyTimeoutSeconds: 30
|
|
6095
|
+
readyTimeoutSeconds: 30,
|
|
6096
|
+
steerKind: "send-now-keys"
|
|
5845
6097
|
};
|
|
5846
6098
|
const OHMYPI_BEHAVIOR = {
|
|
5847
6099
|
displayName: "Pi",
|
|
@@ -5863,7 +6115,14 @@ const OHMYPI_BEHAVIOR = {
|
|
|
5863
6115
|
usesCodexHome: false,
|
|
5864
6116
|
injectsPromptTimeMemory: true,
|
|
5865
6117
|
workAgentMode: "ohmypi-rpc",
|
|
5866
|
-
readyTimeoutSeconds: 120
|
|
6118
|
+
readyTimeoutSeconds: 120,
|
|
6119
|
+
steerKind: "control-channel",
|
|
6120
|
+
effortLevels: [
|
|
6121
|
+
"low",
|
|
6122
|
+
"medium",
|
|
6123
|
+
"high",
|
|
6124
|
+
"xhigh"
|
|
6125
|
+
]
|
|
5867
6126
|
};
|
|
5868
6127
|
const CODEX_BEHAVIOR = {
|
|
5869
6128
|
displayName: "Codex",
|
|
@@ -5885,7 +6144,8 @@ const CODEX_BEHAVIOR = {
|
|
|
5885
6144
|
usesCodexHome: true,
|
|
5886
6145
|
injectsPromptTimeMemory: false,
|
|
5887
6146
|
workAgentMode: "codex-work-tui",
|
|
5888
|
-
readyTimeoutSeconds: 30
|
|
6147
|
+
readyTimeoutSeconds: 30,
|
|
6148
|
+
steerKind: null
|
|
5889
6149
|
};
|
|
5890
6150
|
const ACP_BEHAVIOR = {
|
|
5891
6151
|
displayName: "ACP",
|
|
@@ -5907,7 +6167,8 @@ const ACP_BEHAVIOR = {
|
|
|
5907
6167
|
usesCodexHome: false,
|
|
5908
6168
|
injectsPromptTimeMemory: false,
|
|
5909
6169
|
workAgentMode: "acp-host",
|
|
5910
|
-
readyTimeoutSeconds: 30
|
|
6170
|
+
readyTimeoutSeconds: 30,
|
|
6171
|
+
steerKind: null
|
|
5911
6172
|
};
|
|
5912
6173
|
const KIMI_CODE_BEHAVIOR = {
|
|
5913
6174
|
displayName: "Kimi Code",
|
|
@@ -5929,7 +6190,8 @@ const KIMI_CODE_BEHAVIOR = {
|
|
|
5929
6190
|
usesCodexHome: false,
|
|
5930
6191
|
injectsPromptTimeMemory: false,
|
|
5931
6192
|
workAgentMode: "kimi-code-tui",
|
|
5932
|
-
readyTimeoutSeconds: 60
|
|
6193
|
+
readyTimeoutSeconds: 60,
|
|
6194
|
+
steerKind: null
|
|
5933
6195
|
};
|
|
5934
6196
|
const OPENCODE_BEHAVIOR = {
|
|
5935
6197
|
...ACP_BEHAVIOR,
|
|
@@ -5958,7 +6220,37 @@ const MUSE_BEHAVIOR = {
|
|
|
5958
6220
|
usesCodexHome: false,
|
|
5959
6221
|
injectsPromptTimeMemory: false,
|
|
5960
6222
|
workAgentMode: "muse-tui",
|
|
5961
|
-
readyTimeoutSeconds: 60
|
|
6223
|
+
readyTimeoutSeconds: 60,
|
|
6224
|
+
steerKind: null,
|
|
6225
|
+
effortLevels: [
|
|
6226
|
+
"low",
|
|
6227
|
+
"medium",
|
|
6228
|
+
"high",
|
|
6229
|
+
"xhigh"
|
|
6230
|
+
]
|
|
6231
|
+
};
|
|
6232
|
+
const PRIME_AGENT_BEHAVIOR = {
|
|
6233
|
+
displayName: "Prime Agent",
|
|
6234
|
+
nativeCommands: [],
|
|
6235
|
+
executableName: "prime-agent",
|
|
6236
|
+
processNames: ["prime-agent"],
|
|
6237
|
+
launchCommandKind: "prime-agent-host",
|
|
6238
|
+
deliveryKind: "prime-agent-host-rpc",
|
|
6239
|
+
readinessKind: "prime-agent-host-ready",
|
|
6240
|
+
transcriptKind: "prime-agent-jsonl",
|
|
6241
|
+
sessionIdSource: "prime-agent-session-id",
|
|
6242
|
+
contextLayerKind: "prime-agent",
|
|
6243
|
+
feedKind: "prime_agent",
|
|
6244
|
+
supportsPtySupervisor: false,
|
|
6245
|
+
supportsChannelsBridge: false,
|
|
6246
|
+
supportsConversationStreaming: true,
|
|
6247
|
+
supportsPatchProjection: false,
|
|
6248
|
+
usesRpcFifo: false,
|
|
6249
|
+
usesCodexHome: false,
|
|
6250
|
+
injectsPromptTimeMemory: false,
|
|
6251
|
+
workAgentMode: "prime-agent-host",
|
|
6252
|
+
readyTimeoutSeconds: 60,
|
|
6253
|
+
steerKind: null
|
|
5962
6254
|
};
|
|
5963
6255
|
const BEHAVIORS = {
|
|
5964
6256
|
"opencode": OPENCODE_BEHAVIOR,
|
|
@@ -5967,7 +6259,8 @@ const BEHAVIORS = {
|
|
|
5967
6259
|
codex: CODEX_BEHAVIOR,
|
|
5968
6260
|
acp: ACP_BEHAVIOR,
|
|
5969
6261
|
"kimi-code": KIMI_CODE_BEHAVIOR,
|
|
5970
|
-
muse: MUSE_BEHAVIOR
|
|
6262
|
+
muse: MUSE_BEHAVIOR,
|
|
6263
|
+
"prime-agent": PRIME_AGENT_BEHAVIOR
|
|
5971
6264
|
};
|
|
5972
6265
|
function getHarnessBehavior(harness) {
|
|
5973
6266
|
if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
|
|
@@ -5976,6 +6269,7 @@ function getHarnessBehavior(harness) {
|
|
|
5976
6269
|
if (harness === "acp") return ACP_BEHAVIOR;
|
|
5977
6270
|
if (harness === "kimi-code") return KIMI_CODE_BEHAVIOR;
|
|
5978
6271
|
if (harness === "muse") return MUSE_BEHAVIOR;
|
|
6272
|
+
if (harness === "prime-agent") return PRIME_AGENT_BEHAVIOR;
|
|
5979
6273
|
return CLAUDE_CODE_BEHAVIOR;
|
|
5980
6274
|
}
|
|
5981
6275
|
function getRuntimeBehavior(runtime) {
|
|
@@ -6090,7 +6384,10 @@ const TELEMETRY_EVENT_NAMES = [
|
|
|
6090
6384
|
"agent_question_answered",
|
|
6091
6385
|
"server_boot",
|
|
6092
6386
|
"cli_command_run",
|
|
6093
|
-
"pipeline_stage_changed"
|
|
6387
|
+
"pipeline_stage_changed",
|
|
6388
|
+
"github_quota_sample",
|
|
6389
|
+
"github_rate_limited",
|
|
6390
|
+
"instance_heartbeat"
|
|
6094
6391
|
];
|
|
6095
6392
|
const TELEMETRY_CLI_VERBS = [
|
|
6096
6393
|
"abort",
|
|
@@ -6207,6 +6504,19 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
6207
6504
|
"handoff",
|
|
6208
6505
|
"plain"
|
|
6209
6506
|
],
|
|
6507
|
+
github_caller: [
|
|
6508
|
+
"pipeline_membership",
|
|
6509
|
+
"pr_cache",
|
|
6510
|
+
"pr_sync",
|
|
6511
|
+
"ci_repair",
|
|
6512
|
+
"issue_poller",
|
|
6513
|
+
"close_out",
|
|
6514
|
+
"tracker_client",
|
|
6515
|
+
"app_rest",
|
|
6516
|
+
"quota_sampler",
|
|
6517
|
+
"agent",
|
|
6518
|
+
"other"
|
|
6519
|
+
],
|
|
6210
6520
|
harness: [
|
|
6211
6521
|
"claude-code",
|
|
6212
6522
|
"ohmypi",
|
|
@@ -6214,7 +6524,8 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
6214
6524
|
"acp",
|
|
6215
6525
|
"kimi-code",
|
|
6216
6526
|
"opencode",
|
|
6217
|
-
"muse"
|
|
6527
|
+
"muse",
|
|
6528
|
+
"prime-agent"
|
|
6218
6529
|
],
|
|
6219
6530
|
merge_kind: ["pipeline"],
|
|
6220
6531
|
model_family: [
|
|
@@ -6238,7 +6549,26 @@ const TELEMETRY_PROPERTY_DOMAINS = {
|
|
|
6238
6549
|
"clone",
|
|
6239
6550
|
"existing",
|
|
6240
6551
|
"new"
|
|
6241
|
-
]
|
|
6552
|
+
],
|
|
6553
|
+
quota_points_bucket: [
|
|
6554
|
+
"0",
|
|
6555
|
+
"1-49",
|
|
6556
|
+
"50-199",
|
|
6557
|
+
"200-499",
|
|
6558
|
+
"500-999",
|
|
6559
|
+
"1000-2499",
|
|
6560
|
+
"2500+"
|
|
6561
|
+
],
|
|
6562
|
+
quota_remaining_bucket: [
|
|
6563
|
+
"0",
|
|
6564
|
+
"1-99",
|
|
6565
|
+
"100-499",
|
|
6566
|
+
"500-999",
|
|
6567
|
+
"1000-2499",
|
|
6568
|
+
"2500+",
|
|
6569
|
+
"unknown"
|
|
6570
|
+
],
|
|
6571
|
+
rate_limit_kind: ["primary", "secondary"]
|
|
6242
6572
|
};
|
|
6243
6573
|
const TELEMETRY_EVENT_CATALOG = {
|
|
6244
6574
|
dashboard_tab_viewed: { tab: "dashboard_tab" },
|
|
@@ -6281,8 +6611,65 @@ const TELEMETRY_EVENT_CATALOG = {
|
|
|
6281
6611
|
stage: "pipeline_stage",
|
|
6282
6612
|
harness: "harness",
|
|
6283
6613
|
model: "model_family"
|
|
6614
|
+
},
|
|
6615
|
+
github_quota_sample: {
|
|
6616
|
+
graphql_pipeline_membership: "quota_points_bucket",
|
|
6617
|
+
rest_pipeline_membership: "quota_points_bucket",
|
|
6618
|
+
graphql_pr_cache: "quota_points_bucket",
|
|
6619
|
+
rest_pr_cache: "quota_points_bucket",
|
|
6620
|
+
graphql_pr_sync: "quota_points_bucket",
|
|
6621
|
+
rest_pr_sync: "quota_points_bucket",
|
|
6622
|
+
graphql_ci_repair: "quota_points_bucket",
|
|
6623
|
+
rest_ci_repair: "quota_points_bucket",
|
|
6624
|
+
graphql_issue_poller: "quota_points_bucket",
|
|
6625
|
+
rest_issue_poller: "quota_points_bucket",
|
|
6626
|
+
graphql_close_out: "quota_points_bucket",
|
|
6627
|
+
rest_close_out: "quota_points_bucket",
|
|
6628
|
+
graphql_tracker_client: "quota_points_bucket",
|
|
6629
|
+
rest_tracker_client: "quota_points_bucket",
|
|
6630
|
+
graphql_app_rest: "quota_points_bucket",
|
|
6631
|
+
rest_app_rest: "quota_points_bucket",
|
|
6632
|
+
graphql_agent: "quota_points_bucket",
|
|
6633
|
+
rest_agent: "quota_points_bucket",
|
|
6634
|
+
graphql_other: "quota_points_bucket",
|
|
6635
|
+
rest_other: "quota_points_bucket",
|
|
6636
|
+
graphql_unattributed: "quota_points_bucket",
|
|
6637
|
+
min_remaining_graphql: "quota_remaining_bucket",
|
|
6638
|
+
min_remaining_rest: "quota_remaining_bucket",
|
|
6639
|
+
primary_limit_errors: "count_bucket",
|
|
6640
|
+
secondary_limit_errors: "count_bucket"
|
|
6641
|
+
},
|
|
6642
|
+
github_rate_limited: {
|
|
6643
|
+
caller: "github_caller",
|
|
6644
|
+
kind: "rate_limit_kind",
|
|
6645
|
+
own_usage_low: "boolean"
|
|
6646
|
+
},
|
|
6647
|
+
instance_heartbeat: {
|
|
6648
|
+
project_count: "count_bucket",
|
|
6649
|
+
active_agent_count: "count_bucket",
|
|
6650
|
+
dashboard_running: "boolean"
|
|
6284
6651
|
}
|
|
6285
6652
|
};
|
|
6653
|
+
/** PAN-4264: GitHub quota points as a coarse bucket (raw counts are never sent). */
|
|
6654
|
+
function bucketQuotaPoints(points) {
|
|
6655
|
+
if (!(points > 0)) return "0";
|
|
6656
|
+
if (points < 50) return "1-49";
|
|
6657
|
+
if (points < 200) return "50-199";
|
|
6658
|
+
if (points < 500) return "200-499";
|
|
6659
|
+
if (points < 1e3) return "500-999";
|
|
6660
|
+
if (points < 2500) return "1000-2499";
|
|
6661
|
+
return "2500+";
|
|
6662
|
+
}
|
|
6663
|
+
/** PAN-4264: GitHub quota remaining as a coarse bucket; `unknown` without a sample. */
|
|
6664
|
+
function bucketQuotaRemaining(remaining) {
|
|
6665
|
+
if (remaining === void 0 || !Number.isFinite(remaining)) return "unknown";
|
|
6666
|
+
if (remaining <= 0) return "0";
|
|
6667
|
+
if (remaining < 100) return "1-99";
|
|
6668
|
+
if (remaining < 500) return "100-499";
|
|
6669
|
+
if (remaining < 1e3) return "500-999";
|
|
6670
|
+
if (remaining < 2500) return "1000-2499";
|
|
6671
|
+
return "2500+";
|
|
6672
|
+
}
|
|
6286
6673
|
//#endregion
|
|
6287
6674
|
//#region src/composer-commands.generated.ts
|
|
6288
6675
|
const COMPOSER_COMMAND_MANIFEST = [
|
|
@@ -6510,168 +6897,451 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6510
6897
|
"id": "pan-skills",
|
|
6511
6898
|
"path": ["skills"],
|
|
6512
6899
|
"display": "/pan skills",
|
|
6513
|
-
"description": "List and
|
|
6900
|
+
"description": "List skills and set per-level on/off overrides",
|
|
6514
6901
|
"args": [],
|
|
6515
|
-
"options": [
|
|
6516
|
-
"flags": "--json",
|
|
6517
|
-
"description": "Output as JSON",
|
|
6518
|
-
"required": false,
|
|
6519
|
-
"valueHint": null
|
|
6520
|
-
}],
|
|
6902
|
+
"options": [],
|
|
6521
6903
|
"aliases": [],
|
|
6522
6904
|
"category": "Core"
|
|
6523
6905
|
},
|
|
6524
6906
|
{
|
|
6525
|
-
"id": "pan-
|
|
6526
|
-
"path": ["
|
|
6527
|
-
"display": "/pan
|
|
6528
|
-
"description": "List
|
|
6907
|
+
"id": "pan-skills-list",
|
|
6908
|
+
"path": ["skills", "list"],
|
|
6909
|
+
"display": "/pan skills list",
|
|
6910
|
+
"description": "List skills with effective on/off state and its source",
|
|
6529
6911
|
"args": [],
|
|
6530
6912
|
"options": [
|
|
6531
6913
|
{
|
|
6532
|
-
"flags": "--
|
|
6533
|
-
"description": "
|
|
6534
|
-
"required":
|
|
6535
|
-
"valueHint":
|
|
6914
|
+
"flags": "--project <key>",
|
|
6915
|
+
"description": "Resolve for a project",
|
|
6916
|
+
"required": true,
|
|
6917
|
+
"valueHint": "key"
|
|
6536
6918
|
},
|
|
6537
6919
|
{
|
|
6538
|
-
"flags": "--
|
|
6539
|
-
"description": "
|
|
6540
|
-
"required":
|
|
6541
|
-
"valueHint":
|
|
6920
|
+
"flags": "--issue <id>",
|
|
6921
|
+
"description": "Resolve for an issue",
|
|
6922
|
+
"required": true,
|
|
6923
|
+
"valueHint": "id"
|
|
6542
6924
|
},
|
|
6543
6925
|
{
|
|
6544
6926
|
"flags": "--json",
|
|
6545
6927
|
"description": "Output as JSON",
|
|
6546
6928
|
"required": false,
|
|
6547
6929
|
"valueHint": null
|
|
6548
|
-
}
|
|
6930
|
+
}
|
|
6931
|
+
],
|
|
6932
|
+
"aliases": [],
|
|
6933
|
+
"category": "Core"
|
|
6934
|
+
},
|
|
6935
|
+
{
|
|
6936
|
+
"id": "pan-skills-set",
|
|
6937
|
+
"path": ["skills", "set"],
|
|
6938
|
+
"display": "/pan skills set",
|
|
6939
|
+
"description": "Set a skill (<skill> <state>) or a pack (--pack <id> <state>) on, off, or inherit",
|
|
6940
|
+
"args": [{
|
|
6941
|
+
"name": "args",
|
|
6942
|
+
"required": true,
|
|
6943
|
+
"variadic": true
|
|
6944
|
+
}],
|
|
6945
|
+
"options": [
|
|
6549
6946
|
{
|
|
6550
|
-
"flags": "--
|
|
6551
|
-
"description": "
|
|
6947
|
+
"flags": "--project <key>",
|
|
6948
|
+
"description": "Project override",
|
|
6552
6949
|
"required": true,
|
|
6553
|
-
"valueHint": "
|
|
6950
|
+
"valueHint": "key"
|
|
6554
6951
|
},
|
|
6555
6952
|
{
|
|
6556
|
-
"flags": "--
|
|
6557
|
-
"description": "
|
|
6558
|
-
"required":
|
|
6559
|
-
"valueHint":
|
|
6953
|
+
"flags": "--issue <id>",
|
|
6954
|
+
"description": "Issue override",
|
|
6955
|
+
"required": true,
|
|
6956
|
+
"valueHint": "id"
|
|
6560
6957
|
},
|
|
6561
6958
|
{
|
|
6562
|
-
"flags": "--
|
|
6563
|
-
"description": "
|
|
6564
|
-
"required":
|
|
6565
|
-
"valueHint":
|
|
6959
|
+
"flags": "--pack <id>",
|
|
6960
|
+
"description": "Set a whole skill pack instead of one skill",
|
|
6961
|
+
"required": true,
|
|
6962
|
+
"valueHint": "id"
|
|
6566
6963
|
}
|
|
6567
6964
|
],
|
|
6568
6965
|
"aliases": [],
|
|
6569
|
-
"category": "
|
|
6966
|
+
"category": "Core"
|
|
6570
6967
|
},
|
|
6571
6968
|
{
|
|
6572
|
-
"id": "pan-
|
|
6573
|
-
"path": ["
|
|
6574
|
-
"display": "/pan
|
|
6575
|
-
"description": "
|
|
6969
|
+
"id": "pan-skills-pack",
|
|
6970
|
+
"path": ["skills", "pack"],
|
|
6971
|
+
"display": "/pan skills pack",
|
|
6972
|
+
"description": "Register, update, and cache external skill packs pinned to a commit",
|
|
6973
|
+
"args": [],
|
|
6974
|
+
"options": [],
|
|
6975
|
+
"aliases": [],
|
|
6976
|
+
"category": "Core"
|
|
6977
|
+
},
|
|
6978
|
+
{
|
|
6979
|
+
"id": "pan-skills-pack-add",
|
|
6980
|
+
"path": [
|
|
6981
|
+
"skills",
|
|
6982
|
+
"pack",
|
|
6983
|
+
"add"
|
|
6984
|
+
],
|
|
6985
|
+
"display": "/pan skills pack add",
|
|
6986
|
+
"description": "Register a git skill pack at the commit a ref resolves to (enables nothing)",
|
|
6576
6987
|
"args": [{
|
|
6577
6988
|
"name": "id",
|
|
6578
6989
|
"required": true,
|
|
6579
6990
|
"variadic": false
|
|
6991
|
+
}, {
|
|
6992
|
+
"name": "url",
|
|
6993
|
+
"required": true,
|
|
6994
|
+
"variadic": false
|
|
6580
6995
|
}],
|
|
6581
6996
|
"options": [
|
|
6582
6997
|
{
|
|
6583
|
-
"flags": "--
|
|
6584
|
-
"description": "
|
|
6585
|
-
"required":
|
|
6586
|
-
"valueHint":
|
|
6587
|
-
},
|
|
6588
|
-
{
|
|
6589
|
-
"flags": "--context",
|
|
6590
|
-
"description": "Context engineering state only",
|
|
6591
|
-
"required": false,
|
|
6592
|
-
"valueHint": null
|
|
6998
|
+
"flags": "--ref <ref>",
|
|
6999
|
+
"description": "Tag or branch to pin",
|
|
7000
|
+
"required": true,
|
|
7001
|
+
"valueHint": "ref"
|
|
6593
7002
|
},
|
|
6594
7003
|
{
|
|
6595
|
-
"flags": "--
|
|
6596
|
-
"description": "
|
|
6597
|
-
"required":
|
|
6598
|
-
"valueHint":
|
|
7004
|
+
"flags": "--adapter <adapter>",
|
|
7005
|
+
"description": "plain or claude-plugin",
|
|
7006
|
+
"required": true,
|
|
7007
|
+
"valueHint": "adapter"
|
|
6599
7008
|
},
|
|
6600
7009
|
{
|
|
6601
|
-
"flags": "--
|
|
6602
|
-
"description": "
|
|
7010
|
+
"flags": "--yes",
|
|
7011
|
+
"description": "Trust the resolved commit without asking",
|
|
6603
7012
|
"required": false,
|
|
6604
7013
|
"valueHint": null
|
|
6605
7014
|
}
|
|
6606
7015
|
],
|
|
6607
7016
|
"aliases": [],
|
|
6608
|
-
"category": "
|
|
7017
|
+
"category": "Core"
|
|
6609
7018
|
},
|
|
6610
7019
|
{
|
|
6611
|
-
"id": "pan-
|
|
6612
|
-
"path": [
|
|
6613
|
-
|
|
6614
|
-
|
|
7020
|
+
"id": "pan-skills-pack-update",
|
|
7021
|
+
"path": [
|
|
7022
|
+
"skills",
|
|
7023
|
+
"pack",
|
|
7024
|
+
"update"
|
|
7025
|
+
],
|
|
7026
|
+
"display": "/pan skills pack update",
|
|
7027
|
+
"description": "Move a pack to the commit its ref (or --ref) now resolves to",
|
|
6615
7028
|
"args": [{
|
|
6616
7029
|
"name": "id",
|
|
6617
7030
|
"required": true,
|
|
6618
7031
|
"variadic": false
|
|
6619
7032
|
}],
|
|
6620
7033
|
"options": [{
|
|
6621
|
-
"flags": "
|
|
6622
|
-
"description": "
|
|
7034
|
+
"flags": "--ref <ref>",
|
|
7035
|
+
"description": "Switch to a different tag or branch",
|
|
6623
7036
|
"required": true,
|
|
6624
|
-
"valueHint": "
|
|
7037
|
+
"valueHint": "ref"
|
|
7038
|
+
}, {
|
|
7039
|
+
"flags": "--yes",
|
|
7040
|
+
"description": "Trust the new commit without asking",
|
|
7041
|
+
"required": false,
|
|
7042
|
+
"valueHint": null
|
|
6625
7043
|
}],
|
|
6626
7044
|
"aliases": [],
|
|
6627
|
-
"category": "
|
|
7045
|
+
"category": "Core"
|
|
6628
7046
|
},
|
|
6629
7047
|
{
|
|
6630
|
-
"id": "pan-
|
|
6631
|
-
"path": [
|
|
6632
|
-
|
|
6633
|
-
|
|
7048
|
+
"id": "pan-skills-pack-list",
|
|
7049
|
+
"path": [
|
|
7050
|
+
"skills",
|
|
7051
|
+
"pack",
|
|
7052
|
+
"list"
|
|
7053
|
+
],
|
|
7054
|
+
"display": "/pan skills pack list",
|
|
7055
|
+
"description": "List registered skill packs",
|
|
6634
7056
|
"args": [],
|
|
6635
|
-
"options": [
|
|
7057
|
+
"options": [{
|
|
7058
|
+
"flags": "--json",
|
|
7059
|
+
"description": "Output as JSON",
|
|
7060
|
+
"required": false,
|
|
7061
|
+
"valueHint": null
|
|
7062
|
+
}, {
|
|
7063
|
+
"flags": "--offline",
|
|
7064
|
+
"description": "Skip the update check (no network)",
|
|
7065
|
+
"required": false,
|
|
7066
|
+
"valueHint": null
|
|
7067
|
+
}],
|
|
6636
7068
|
"aliases": [],
|
|
6637
|
-
"category": "
|
|
7069
|
+
"category": "Core"
|
|
6638
7070
|
},
|
|
6639
7071
|
{
|
|
6640
|
-
"id": "pan-
|
|
6641
|
-
"path": [
|
|
6642
|
-
|
|
6643
|
-
|
|
7072
|
+
"id": "pan-skills-pack-remove",
|
|
7073
|
+
"path": [
|
|
7074
|
+
"skills",
|
|
7075
|
+
"pack",
|
|
7076
|
+
"remove"
|
|
7077
|
+
],
|
|
7078
|
+
"display": "/pan skills pack remove",
|
|
7079
|
+
"description": "Unregister a pack, clear its global toggles, and delete its cache",
|
|
6644
7080
|
"args": [{
|
|
6645
7081
|
"name": "id",
|
|
6646
7082
|
"required": true,
|
|
6647
7083
|
"variadic": false
|
|
6648
7084
|
}],
|
|
6649
|
-
"options": [
|
|
6650
|
-
"flags": "-m, --message <text>",
|
|
6651
|
-
"description": "Message describing the fixes applied",
|
|
6652
|
-
"required": true,
|
|
6653
|
-
"valueHint": "text"
|
|
6654
|
-
}],
|
|
7085
|
+
"options": [],
|
|
6655
7086
|
"aliases": [],
|
|
6656
|
-
"category": "
|
|
7087
|
+
"category": "Core"
|
|
6657
7088
|
},
|
|
6658
7089
|
{
|
|
6659
|
-
"id": "pan-
|
|
6660
|
-
"path": [
|
|
6661
|
-
|
|
6662
|
-
|
|
7090
|
+
"id": "pan-skills-pack-sync",
|
|
7091
|
+
"path": [
|
|
7092
|
+
"skills",
|
|
7093
|
+
"pack",
|
|
7094
|
+
"sync"
|
|
7095
|
+
],
|
|
7096
|
+
"display": "/pan skills pack sync",
|
|
7097
|
+
"description": "Re-fetch packs and extract their trusted commits (all packs when omitted)",
|
|
6663
7098
|
"args": [{
|
|
6664
7099
|
"name": "id",
|
|
6665
|
-
"required":
|
|
7100
|
+
"required": false,
|
|
6666
7101
|
"variadic": false
|
|
6667
7102
|
}],
|
|
6668
7103
|
"options": [],
|
|
6669
7104
|
"aliases": [],
|
|
6670
|
-
"category": "
|
|
7105
|
+
"category": "Core"
|
|
6671
7106
|
},
|
|
6672
7107
|
{
|
|
6673
|
-
"id": "pan-
|
|
6674
|
-
"path": [
|
|
7108
|
+
"id": "pan-skills-pack-gc",
|
|
7109
|
+
"path": [
|
|
7110
|
+
"skills",
|
|
7111
|
+
"pack",
|
|
7112
|
+
"gc"
|
|
7113
|
+
],
|
|
7114
|
+
"display": "/pan skills pack gc",
|
|
7115
|
+
"description": "Remove unused skill pack mounts and dangling launch links",
|
|
7116
|
+
"args": [],
|
|
7117
|
+
"options": [{
|
|
7118
|
+
"flags": "--max-age-days <n>",
|
|
7119
|
+
"description": "Keep unused mounts younger than this",
|
|
7120
|
+
"required": true,
|
|
7121
|
+
"valueHint": "n"
|
|
7122
|
+
}],
|
|
7123
|
+
"aliases": [],
|
|
7124
|
+
"category": "Core"
|
|
7125
|
+
},
|
|
7126
|
+
{
|
|
7127
|
+
"id": "pan-pair",
|
|
7128
|
+
"path": ["pair"],
|
|
7129
|
+
"display": "/pan pair",
|
|
7130
|
+
"description": "Print a one-time URL that pairs another device with this dashboard (see configuration/remote-access.mdx)",
|
|
7131
|
+
"args": [],
|
|
7132
|
+
"options": [
|
|
7133
|
+
{
|
|
7134
|
+
"flags": "--label <name>",
|
|
7135
|
+
"description": "Name to record for the pairing in the activity log",
|
|
7136
|
+
"required": true,
|
|
7137
|
+
"valueHint": "name"
|
|
7138
|
+
},
|
|
7139
|
+
{
|
|
7140
|
+
"flags": "--url <base>",
|
|
7141
|
+
"description": "Base URL the other device can reach (default: this dashboard's API URL)",
|
|
7142
|
+
"required": true,
|
|
7143
|
+
"valueHint": "base"
|
|
7144
|
+
},
|
|
7145
|
+
{
|
|
7146
|
+
"flags": "--json",
|
|
7147
|
+
"description": "Print { url, credential, expiresAt } as JSON",
|
|
7148
|
+
"required": false,
|
|
7149
|
+
"valueHint": null
|
|
7150
|
+
}
|
|
7151
|
+
],
|
|
7152
|
+
"aliases": [],
|
|
7153
|
+
"category": "CLI"
|
|
7154
|
+
},
|
|
7155
|
+
{
|
|
7156
|
+
"id": "pan-devices",
|
|
7157
|
+
"path": ["devices"],
|
|
7158
|
+
"display": "/pan devices",
|
|
7159
|
+
"description": "List or revoke paired devices (see configuration/remote-access.mdx)",
|
|
7160
|
+
"args": [],
|
|
7161
|
+
"options": [],
|
|
7162
|
+
"aliases": [],
|
|
7163
|
+
"category": "CLI"
|
|
7164
|
+
},
|
|
7165
|
+
{
|
|
7166
|
+
"id": "pan-devices-list",
|
|
7167
|
+
"path": ["devices", "list"],
|
|
7168
|
+
"display": "/pan devices list",
|
|
7169
|
+
"description": "List paired devices with created, last-used and revoked times",
|
|
7170
|
+
"args": [],
|
|
7171
|
+
"options": [{
|
|
7172
|
+
"flags": "--json",
|
|
7173
|
+
"description": "Print the devices as JSON",
|
|
7174
|
+
"required": false,
|
|
7175
|
+
"valueHint": null
|
|
7176
|
+
}],
|
|
7177
|
+
"aliases": [],
|
|
7178
|
+
"category": "CLI"
|
|
7179
|
+
},
|
|
7180
|
+
{
|
|
7181
|
+
"id": "pan-devices-revoke",
|
|
7182
|
+
"path": ["devices", "revoke"],
|
|
7183
|
+
"display": "/pan devices revoke",
|
|
7184
|
+
"description": "Revoke a paired device and close its live connections",
|
|
7185
|
+
"args": [{
|
|
7186
|
+
"name": "id",
|
|
7187
|
+
"required": true,
|
|
7188
|
+
"variadic": false
|
|
7189
|
+
}],
|
|
7190
|
+
"options": [],
|
|
7191
|
+
"aliases": [],
|
|
7192
|
+
"category": "CLI"
|
|
7193
|
+
},
|
|
7194
|
+
{
|
|
7195
|
+
"id": "pan-issues",
|
|
7196
|
+
"path": ["issues"],
|
|
7197
|
+
"display": "/pan issues",
|
|
7198
|
+
"description": "List and triage work across configured trackers",
|
|
7199
|
+
"args": [],
|
|
7200
|
+
"options": [
|
|
7201
|
+
{
|
|
7202
|
+
"flags": "--all",
|
|
7203
|
+
"description": "Include closed issues",
|
|
7204
|
+
"required": false,
|
|
7205
|
+
"valueHint": null
|
|
7206
|
+
},
|
|
7207
|
+
{
|
|
7208
|
+
"flags": "--mine",
|
|
7209
|
+
"description": "Show only my assigned issues",
|
|
7210
|
+
"required": false,
|
|
7211
|
+
"valueHint": null
|
|
7212
|
+
},
|
|
7213
|
+
{
|
|
7214
|
+
"flags": "--json",
|
|
7215
|
+
"description": "Output as JSON",
|
|
7216
|
+
"required": false,
|
|
7217
|
+
"valueHint": null
|
|
7218
|
+
},
|
|
7219
|
+
{
|
|
7220
|
+
"flags": "--tracker <type>",
|
|
7221
|
+
"description": "Query specific tracker (linear/github/gitlab)",
|
|
7222
|
+
"required": true,
|
|
7223
|
+
"valueHint": "type"
|
|
7224
|
+
},
|
|
7225
|
+
{
|
|
7226
|
+
"flags": "--all-trackers",
|
|
7227
|
+
"description": "Query all configured trackers",
|
|
7228
|
+
"required": false,
|
|
7229
|
+
"valueHint": null
|
|
7230
|
+
},
|
|
7231
|
+
{
|
|
7232
|
+
"flags": "--triage",
|
|
7233
|
+
"description": "Show triage queue",
|
|
7234
|
+
"required": false,
|
|
7235
|
+
"valueHint": null
|
|
7236
|
+
}
|
|
7237
|
+
],
|
|
7238
|
+
"aliases": [],
|
|
7239
|
+
"category": "Lifecycle"
|
|
7240
|
+
},
|
|
7241
|
+
{
|
|
7242
|
+
"id": "pan-show",
|
|
7243
|
+
"path": ["show"],
|
|
7244
|
+
"display": "/pan show",
|
|
7245
|
+
"description": "Unified lens: derived issue state, CV, context, health for one issue",
|
|
7246
|
+
"args": [{
|
|
7247
|
+
"name": "id",
|
|
7248
|
+
"required": true,
|
|
7249
|
+
"variadic": false
|
|
7250
|
+
}],
|
|
7251
|
+
"options": [
|
|
7252
|
+
{
|
|
7253
|
+
"flags": "--cv",
|
|
7254
|
+
"description": "Agent work history only",
|
|
7255
|
+
"required": false,
|
|
7256
|
+
"valueHint": null
|
|
7257
|
+
},
|
|
7258
|
+
{
|
|
7259
|
+
"flags": "--context",
|
|
7260
|
+
"description": "Context engineering state only",
|
|
7261
|
+
"required": false,
|
|
7262
|
+
"valueHint": null
|
|
7263
|
+
},
|
|
7264
|
+
{
|
|
7265
|
+
"flags": "--health",
|
|
7266
|
+
"description": "Health + heartbeat only",
|
|
7267
|
+
"required": false,
|
|
7268
|
+
"valueHint": null
|
|
7269
|
+
},
|
|
7270
|
+
{
|
|
7271
|
+
"flags": "--json",
|
|
7272
|
+
"description": "Output as JSON",
|
|
7273
|
+
"required": false,
|
|
7274
|
+
"valueHint": null
|
|
7275
|
+
}
|
|
7276
|
+
],
|
|
7277
|
+
"aliases": [],
|
|
7278
|
+
"category": "Observation"
|
|
7279
|
+
},
|
|
7280
|
+
{
|
|
7281
|
+
"id": "pan-open",
|
|
7282
|
+
"path": ["open"],
|
|
7283
|
+
"display": "/pan open",
|
|
7284
|
+
"description": "Open an issue workspace in your preferred editor",
|
|
7285
|
+
"args": [{
|
|
7286
|
+
"name": "id",
|
|
7287
|
+
"required": true,
|
|
7288
|
+
"variadic": false
|
|
7289
|
+
}],
|
|
7290
|
+
"options": [{
|
|
7291
|
+
"flags": "-e, --editor <editor>",
|
|
7292
|
+
"description": "Editor to use (cursor, windsurf, vscode, zed, etc.)",
|
|
7293
|
+
"required": true,
|
|
7294
|
+
"valueHint": "editor"
|
|
7295
|
+
}],
|
|
7296
|
+
"aliases": [],
|
|
7297
|
+
"category": "Observation"
|
|
7298
|
+
},
|
|
7299
|
+
{
|
|
7300
|
+
"id": "pan-review",
|
|
7301
|
+
"path": ["review"],
|
|
7302
|
+
"display": "/pan review",
|
|
7303
|
+
"description": "Review-loop management: request re-review, abort reviewers, restart a round",
|
|
7304
|
+
"args": [],
|
|
7305
|
+
"options": [],
|
|
7306
|
+
"aliases": [],
|
|
7307
|
+
"category": "Review"
|
|
7308
|
+
},
|
|
7309
|
+
{
|
|
7310
|
+
"id": "pan-review-request",
|
|
7311
|
+
"path": ["review", "request"],
|
|
7312
|
+
"display": "/pan review request",
|
|
7313
|
+
"description": "Request re-review after fixing feedback",
|
|
7314
|
+
"args": [{
|
|
7315
|
+
"name": "id",
|
|
7316
|
+
"required": true,
|
|
7317
|
+
"variadic": false
|
|
7318
|
+
}],
|
|
7319
|
+
"options": [{
|
|
7320
|
+
"flags": "-m, --message <text>",
|
|
7321
|
+
"description": "Message describing the fixes applied",
|
|
7322
|
+
"required": true,
|
|
7323
|
+
"valueHint": "text"
|
|
7324
|
+
}],
|
|
7325
|
+
"aliases": [],
|
|
7326
|
+
"category": "Review"
|
|
7327
|
+
},
|
|
7328
|
+
{
|
|
7329
|
+
"id": "pan-review-abort",
|
|
7330
|
+
"path": ["review", "abort"],
|
|
7331
|
+
"display": "/pan review abort",
|
|
7332
|
+
"description": "Kill all running reviewer sessions and leave the worker idle",
|
|
7333
|
+
"args": [{
|
|
7334
|
+
"name": "id",
|
|
7335
|
+
"required": true,
|
|
7336
|
+
"variadic": false
|
|
7337
|
+
}],
|
|
7338
|
+
"options": [],
|
|
7339
|
+
"aliases": [],
|
|
7340
|
+
"category": "Review"
|
|
7341
|
+
},
|
|
7342
|
+
{
|
|
7343
|
+
"id": "pan-review-restart",
|
|
7344
|
+
"path": ["review", "restart"],
|
|
6675
7345
|
"display": "/pan review restart",
|
|
6676
7346
|
"description": "Resume review and re-dispatch reviewers missing a report",
|
|
6677
7347
|
"args": [{
|
|
@@ -6773,7 +7443,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6773
7443
|
},
|
|
6774
7444
|
{
|
|
6775
7445
|
"flags": "--harness <harness>",
|
|
6776
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse (defaults to role/provider settings)",
|
|
7446
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)",
|
|
6777
7447
|
"required": true,
|
|
6778
7448
|
"valueHint": "harness"
|
|
6779
7449
|
},
|
|
@@ -6835,6 +7505,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6835
7505
|
"description": "Bypass the PRD-first gate for a genuinely trivial issue (loud; prefer writing the PRD)",
|
|
6836
7506
|
"required": false,
|
|
6837
7507
|
"valueHint": null
|
|
7508
|
+
},
|
|
7509
|
+
{
|
|
7510
|
+
"flags": "--critic",
|
|
7511
|
+
"description": "Require an independent different-family plan critique before promotion (automatic for architecture, substrate-improvement and security labels)",
|
|
7512
|
+
"required": false,
|
|
7513
|
+
"valueHint": null
|
|
6838
7514
|
}
|
|
6839
7515
|
],
|
|
6840
7516
|
"aliases": [],
|
|
@@ -6873,7 +7549,17 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6873
7549
|
"required": true,
|
|
6874
7550
|
"variadic": false
|
|
6875
7551
|
}],
|
|
6876
|
-
"options": [
|
|
7552
|
+
"options": [{
|
|
7553
|
+
"flags": "--force",
|
|
7554
|
+
"description": "Deliver even to a critic or verifier lane that already filed its verdict",
|
|
7555
|
+
"required": false,
|
|
7556
|
+
"valueHint": null
|
|
7557
|
+
}, {
|
|
7558
|
+
"flags": "--steer",
|
|
7559
|
+
"description": "Interrupt the running turn and send now (Claude Code send-now; Ctrl+X Ctrl+S)",
|
|
7560
|
+
"required": false,
|
|
7561
|
+
"valueHint": null
|
|
7562
|
+
}],
|
|
6877
7563
|
"aliases": [],
|
|
6878
7564
|
"category": "Lifecycle"
|
|
6879
7565
|
},
|
|
@@ -7031,6 +7717,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7031
7717
|
"required": true,
|
|
7032
7718
|
"valueHint": "path"
|
|
7033
7719
|
},
|
|
7720
|
+
{
|
|
7721
|
+
"flags": "--allow-primary",
|
|
7722
|
+
"description": "Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)",
|
|
7723
|
+
"required": false,
|
|
7724
|
+
"valueHint": null
|
|
7725
|
+
},
|
|
7034
7726
|
{
|
|
7035
7727
|
"flags": "--project <key>",
|
|
7036
7728
|
"description": "Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project",
|
|
@@ -7080,6 +7772,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7080
7772
|
"required": true,
|
|
7081
7773
|
"valueHint": "path"
|
|
7082
7774
|
},
|
|
7775
|
+
{
|
|
7776
|
+
"flags": "--allow-primary",
|
|
7777
|
+
"description": "Operator only: allow --cwd to be a project's primary checkout (refused for agent sessions)",
|
|
7778
|
+
"required": false,
|
|
7779
|
+
"valueHint": null
|
|
7780
|
+
},
|
|
7083
7781
|
{
|
|
7084
7782
|
"flags": "--project <key>",
|
|
7085
7783
|
"description": "Project (yaml key or display name) for the new conversation; defaults to inheriting the source conversation's project",
|
|
@@ -7452,7 +8150,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7452
8150
|
},
|
|
7453
8151
|
{
|
|
7454
8152
|
"flags": "--harness <harness>",
|
|
7455
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse (defaults to role/provider settings)",
|
|
8153
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)",
|
|
7456
8154
|
"required": true,
|
|
7457
8155
|
"valueHint": "harness"
|
|
7458
8156
|
},
|
|
@@ -7530,7 +8228,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7530
8228
|
},
|
|
7531
8229
|
{
|
|
7532
8230
|
"flags": "--skip-freshness",
|
|
7533
|
-
"description": "Bypass the plan-freshness preflight and spawn even if the plan names files
|
|
8231
|
+
"description": "Bypass the plan-freshness preflight and spawn even if the plan names files deleted since it was written",
|
|
7534
8232
|
"required": false,
|
|
7535
8233
|
"valueHint": null
|
|
7536
8234
|
}
|
|
@@ -7557,7 +8255,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7557
8255
|
},
|
|
7558
8256
|
{
|
|
7559
8257
|
"flags": "--harness <harness>",
|
|
7560
|
-
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse (defaults to role/provider settings)",
|
|
8258
|
+
"description": "Coding-agent harness: claude-code | pi | codex | acp | kimi-code | opencode | muse | prime-agent (defaults to role/provider settings)",
|
|
7561
8259
|
"required": true,
|
|
7562
8260
|
"valueHint": "harness"
|
|
7563
8261
|
},
|
|
@@ -7910,6 +8608,11 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7910
8608
|
"description": "Print JSON",
|
|
7911
8609
|
"required": false,
|
|
7912
8610
|
"valueHint": null
|
|
8611
|
+
}, {
|
|
8612
|
+
"flags": "--steal",
|
|
8613
|
+
"description": "Claim even when a running agent holds this item or an overlapping one (foreman/operator override)",
|
|
8614
|
+
"required": false,
|
|
8615
|
+
"valueHint": null
|
|
7913
8616
|
}],
|
|
7914
8617
|
"aliases": [],
|
|
7915
8618
|
"category": "Lifecycle"
|
|
@@ -8568,542 +9271,972 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8568
9271
|
"category": "Workspace"
|
|
8569
9272
|
},
|
|
8570
9273
|
{
|
|
8571
|
-
"id": "pan-
|
|
8572
|
-
"path": ["
|
|
8573
|
-
"display": "/pan
|
|
8574
|
-
"description": "
|
|
9274
|
+
"id": "pan-vault",
|
|
9275
|
+
"path": ["vault"],
|
|
9276
|
+
"display": "/pan vault",
|
|
9277
|
+
"description": "Session Vault: encrypted off-machine storage and cross-machine resume for agent conversations",
|
|
8575
9278
|
"args": [],
|
|
8576
9279
|
"options": [],
|
|
8577
9280
|
"aliases": [],
|
|
8578
|
-
"category": "
|
|
9281
|
+
"category": "CLI"
|
|
8579
9282
|
},
|
|
8580
9283
|
{
|
|
8581
|
-
"id": "pan-
|
|
8582
|
-
"path": ["
|
|
8583
|
-
"display": "/pan
|
|
8584
|
-
"description": "
|
|
9284
|
+
"id": "pan-vault-setup",
|
|
9285
|
+
"path": ["vault", "setup"],
|
|
9286
|
+
"display": "/pan vault setup",
|
|
9287
|
+
"description": "Enable the vault against your own git remote and print the recovery phrase once",
|
|
8585
9288
|
"args": [{
|
|
8586
|
-
"name": "
|
|
8587
|
-
"required":
|
|
9289
|
+
"name": "git-url",
|
|
9290
|
+
"required": true,
|
|
8588
9291
|
"variadic": false
|
|
8589
9292
|
}],
|
|
8590
9293
|
"options": [
|
|
8591
9294
|
{
|
|
8592
|
-
"flags": "--
|
|
8593
|
-
"description": "
|
|
8594
|
-
"required":
|
|
8595
|
-
"valueHint":
|
|
9295
|
+
"flags": "--hooks",
|
|
9296
|
+
"description": "Also register the Claude Code Stop hook that saves after each turn",
|
|
9297
|
+
"required": false,
|
|
9298
|
+
"valueHint": null
|
|
8596
9299
|
},
|
|
8597
9300
|
{
|
|
8598
|
-
"flags": "--
|
|
8599
|
-
"description": "
|
|
9301
|
+
"flags": "--passphrase-file <path>",
|
|
9302
|
+
"description": "Also enable passphrase unlock with the passphrase in this file",
|
|
8600
9303
|
"required": true,
|
|
8601
|
-
"valueHint": "
|
|
9304
|
+
"valueHint": "path"
|
|
8602
9305
|
},
|
|
8603
9306
|
{
|
|
8604
|
-
"flags": "--
|
|
8605
|
-
"description": "
|
|
9307
|
+
"flags": "--generate-passphrase",
|
|
9308
|
+
"description": "Also enable passphrase unlock with a generated 6-word passphrase, printed once",
|
|
8606
9309
|
"required": false,
|
|
8607
9310
|
"valueHint": null
|
|
8608
|
-
}
|
|
9311
|
+
},
|
|
9312
|
+
{
|
|
9313
|
+
"flags": "--no-passphrase",
|
|
9314
|
+
"description": "Do not offer passphrase unlock",
|
|
9315
|
+
"required": false,
|
|
9316
|
+
"valueHint": null
|
|
9317
|
+
}
|
|
8609
9318
|
],
|
|
8610
9319
|
"aliases": [],
|
|
8611
|
-
"category": "
|
|
9320
|
+
"category": "CLI"
|
|
8612
9321
|
},
|
|
8613
9322
|
{
|
|
8614
|
-
"id": "pan-
|
|
8615
|
-
"path": ["
|
|
8616
|
-
"display": "/pan
|
|
8617
|
-
"description": "
|
|
9323
|
+
"id": "pan-vault-join",
|
|
9324
|
+
"path": ["vault", "join"],
|
|
9325
|
+
"display": "/pan vault join",
|
|
9326
|
+
"description": "Join an existing vault from another machine with the vault passphrase or the recovery phrase",
|
|
8618
9327
|
"args": [{
|
|
8619
|
-
"name": "
|
|
8620
|
-
"required":
|
|
9328
|
+
"name": "git-url",
|
|
9329
|
+
"required": true,
|
|
8621
9330
|
"variadic": false
|
|
8622
9331
|
}],
|
|
8623
|
-
"options": [
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
9332
|
+
"options": [{
|
|
9333
|
+
"flags": "--phrase-file <path>",
|
|
9334
|
+
"description": "Read the 24-word recovery phrase from a file instead of prompting",
|
|
9335
|
+
"required": true,
|
|
9336
|
+
"valueHint": "path"
|
|
9337
|
+
}, {
|
|
9338
|
+
"flags": "--passphrase-file <path>",
|
|
9339
|
+
"description": "Read the vault passphrase from a file instead of prompting",
|
|
9340
|
+
"required": true,
|
|
9341
|
+
"valueHint": "path"
|
|
9342
|
+
}],
|
|
8634
9343
|
"aliases": [],
|
|
8635
|
-
"category": "
|
|
9344
|
+
"category": "CLI"
|
|
8636
9345
|
},
|
|
8637
9346
|
{
|
|
8638
|
-
"id": "pan-
|
|
8639
|
-
"path": ["
|
|
8640
|
-
"display": "/pan
|
|
8641
|
-
"description": "
|
|
9347
|
+
"id": "pan-vault-passphrase",
|
|
9348
|
+
"path": ["vault", "passphrase"],
|
|
9349
|
+
"display": "/pan vault passphrase",
|
|
9350
|
+
"description": "Turn passphrase unlock for new machines on (set) or off (remove); the vault key stays the same",
|
|
8642
9351
|
"args": [],
|
|
8643
9352
|
"options": [],
|
|
8644
9353
|
"aliases": [],
|
|
8645
|
-
"category": "
|
|
9354
|
+
"category": "CLI"
|
|
8646
9355
|
},
|
|
8647
9356
|
{
|
|
8648
|
-
"id": "pan-
|
|
9357
|
+
"id": "pan-vault-passphrase-set",
|
|
8649
9358
|
"path": [
|
|
8650
|
-
"
|
|
8651
|
-
"
|
|
8652
|
-
"
|
|
9359
|
+
"vault",
|
|
9360
|
+
"passphrase",
|
|
9361
|
+
"set"
|
|
8653
9362
|
],
|
|
8654
|
-
"display": "/pan
|
|
8655
|
-
"description": "
|
|
9363
|
+
"display": "/pan vault passphrase set",
|
|
9364
|
+
"description": "Wrap the vault key under a passphrase so a new machine can join without the recovery phrase",
|
|
8656
9365
|
"args": [],
|
|
8657
|
-
"options": [
|
|
8658
|
-
|
|
8659
|
-
|
|
8660
|
-
},
|
|
8661
|
-
{
|
|
8662
|
-
"id": "pan-tts-voices-show",
|
|
8663
|
-
"path": [
|
|
8664
|
-
"tts",
|
|
8665
|
-
"voices",
|
|
8666
|
-
"show"
|
|
8667
|
-
],
|
|
8668
|
-
"display": "/pan tts voices show",
|
|
8669
|
-
"description": "Show saved TTS voice details",
|
|
8670
|
-
"args": [{
|
|
8671
|
-
"name": "name",
|
|
9366
|
+
"options": [{
|
|
9367
|
+
"flags": "--passphrase-file <path>",
|
|
9368
|
+
"description": "Read the passphrase from a file instead of prompting",
|
|
8672
9369
|
"required": true,
|
|
8673
|
-
"
|
|
9370
|
+
"valueHint": "path"
|
|
9371
|
+
}, {
|
|
9372
|
+
"flags": "--generate",
|
|
9373
|
+
"description": "Generate a 6-word passphrase and print it once",
|
|
9374
|
+
"required": false,
|
|
9375
|
+
"valueHint": null
|
|
8674
9376
|
}],
|
|
8675
|
-
"options": [],
|
|
8676
9377
|
"aliases": [],
|
|
8677
|
-
"category": "
|
|
9378
|
+
"category": "CLI"
|
|
8678
9379
|
},
|
|
8679
9380
|
{
|
|
8680
|
-
"id": "pan-
|
|
9381
|
+
"id": "pan-vault-passphrase-remove",
|
|
8681
9382
|
"path": [
|
|
8682
|
-
"
|
|
8683
|
-
"
|
|
8684
|
-
"
|
|
9383
|
+
"vault",
|
|
9384
|
+
"passphrase",
|
|
9385
|
+
"remove"
|
|
8685
9386
|
],
|
|
8686
|
-
"display": "/pan
|
|
8687
|
-
"description": "
|
|
8688
|
-
"args": [
|
|
8689
|
-
"name": "name",
|
|
8690
|
-
"required": true,
|
|
8691
|
-
"variadic": false
|
|
8692
|
-
}, {
|
|
8693
|
-
"name": "text",
|
|
8694
|
-
"required": false,
|
|
8695
|
-
"variadic": false
|
|
8696
|
-
}],
|
|
9387
|
+
"display": "/pan vault passphrase remove",
|
|
9388
|
+
"description": "Delete the passphrase unlock object; joining then needs the recovery phrase",
|
|
9389
|
+
"args": [],
|
|
8697
9390
|
"options": [],
|
|
8698
9391
|
"aliases": [],
|
|
8699
|
-
"category": "
|
|
9392
|
+
"category": "CLI"
|
|
8700
9393
|
},
|
|
8701
9394
|
{
|
|
8702
|
-
"id": "pan-
|
|
8703
|
-
"path": [
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
9395
|
+
"id": "pan-vault-rotate-key",
|
|
9396
|
+
"path": ["vault", "rotate-key"],
|
|
9397
|
+
"display": "/pan vault rotate-key",
|
|
9398
|
+
"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",
|
|
9399
|
+
"args": [],
|
|
9400
|
+
"options": [
|
|
9401
|
+
{
|
|
9402
|
+
"flags": "--yes",
|
|
9403
|
+
"description": "Rotate without the confirmation prompt",
|
|
9404
|
+
"required": false,
|
|
9405
|
+
"valueHint": null
|
|
9406
|
+
},
|
|
9407
|
+
{
|
|
9408
|
+
"flags": "--passphrase-file <path>",
|
|
9409
|
+
"description": "Re-wrap passphrase unlock under the new key with the passphrase in this file",
|
|
9410
|
+
"required": true,
|
|
9411
|
+
"valueHint": "path"
|
|
9412
|
+
},
|
|
9413
|
+
{
|
|
9414
|
+
"flags": "--generate-passphrase",
|
|
9415
|
+
"description": "Re-wrap passphrase unlock under the new key with a generated 6-word passphrase, printed once",
|
|
9416
|
+
"required": false,
|
|
9417
|
+
"valueHint": null
|
|
9418
|
+
},
|
|
9419
|
+
{
|
|
9420
|
+
"flags": "--no-passphrase",
|
|
9421
|
+
"description": "Turn passphrase unlock off",
|
|
9422
|
+
"required": false,
|
|
9423
|
+
"valueHint": null
|
|
9424
|
+
}
|
|
8707
9425
|
],
|
|
8708
|
-
"display": "/pan tts voices delete",
|
|
8709
|
-
"description": "Delete a saved TTS voice",
|
|
8710
|
-
"args": [{
|
|
8711
|
-
"name": "name",
|
|
8712
|
-
"required": true,
|
|
8713
|
-
"variadic": false
|
|
8714
|
-
}],
|
|
8715
|
-
"options": [],
|
|
8716
9426
|
"aliases": [],
|
|
8717
|
-
"category": "
|
|
9427
|
+
"category": "CLI"
|
|
8718
9428
|
},
|
|
8719
9429
|
{
|
|
8720
|
-
"id": "pan-
|
|
8721
|
-
"path": [
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
|
|
8729
|
-
"
|
|
8730
|
-
"required": true,
|
|
8731
|
-
"variadic": false
|
|
9430
|
+
"id": "pan-vault-status",
|
|
9431
|
+
"path": ["vault", "status"],
|
|
9432
|
+
"display": "/pan vault status",
|
|
9433
|
+
"description": "Show backend, this machine, owned records, last sync and the machine list",
|
|
9434
|
+
"args": [],
|
|
9435
|
+
"options": [{
|
|
9436
|
+
"flags": "--json",
|
|
9437
|
+
"description": "Output in JSON format",
|
|
9438
|
+
"required": false,
|
|
9439
|
+
"valueHint": null
|
|
8732
9440
|
}],
|
|
8733
|
-
"options": [],
|
|
8734
9441
|
"aliases": [],
|
|
8735
|
-
"category": "
|
|
9442
|
+
"category": "CLI"
|
|
8736
9443
|
},
|
|
8737
9444
|
{
|
|
8738
|
-
"id": "pan-
|
|
8739
|
-
"path": [
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
"map"
|
|
8743
|
-
],
|
|
8744
|
-
"display": "/pan tts voices map",
|
|
8745
|
-
"description": "Map a TTS event key to a saved voice",
|
|
9445
|
+
"id": "pan-vault-save",
|
|
9446
|
+
"path": ["vault", "save"],
|
|
9447
|
+
"display": "/pan vault save",
|
|
9448
|
+
"description": "Settle one transcript (by session id or path) or many into the vault",
|
|
8746
9449
|
"args": [{
|
|
8747
|
-
"name": "
|
|
8748
|
-
"required":
|
|
8749
|
-
"variadic": false
|
|
8750
|
-
}, {
|
|
8751
|
-
"name": "name",
|
|
8752
|
-
"required": true,
|
|
9450
|
+
"name": "session-id-or-path",
|
|
9451
|
+
"required": false,
|
|
8753
9452
|
"variadic": false
|
|
8754
9453
|
}],
|
|
8755
|
-
"options": [],
|
|
8756
|
-
"aliases": [],
|
|
8757
|
-
"category": "Core"
|
|
8758
|
-
},
|
|
8759
|
-
{
|
|
8760
|
-
"id": "pan-tts-start",
|
|
8761
|
-
"path": ["tts", "start"],
|
|
8762
|
-
"display": "/pan tts start",
|
|
8763
|
-
"description": "Start the local Qwen TTS daemon",
|
|
8764
|
-
"args": [],
|
|
8765
9454
|
"options": [
|
|
8766
9455
|
{
|
|
8767
|
-
"flags": "--
|
|
8768
|
-
"description": "
|
|
9456
|
+
"flags": "--all",
|
|
9457
|
+
"description": "Settle every discovered transcript",
|
|
8769
9458
|
"required": false,
|
|
8770
9459
|
"valueHint": null
|
|
8771
9460
|
},
|
|
8772
9461
|
{
|
|
8773
|
-
"flags": "--
|
|
8774
|
-
"description": "
|
|
8775
|
-
"required":
|
|
8776
|
-
"valueHint":
|
|
9462
|
+
"flags": "--since <date>",
|
|
9463
|
+
"description": "With --all: only transcripts modified on or after this date",
|
|
9464
|
+
"required": true,
|
|
9465
|
+
"valueHint": "date"
|
|
8777
9466
|
},
|
|
8778
9467
|
{
|
|
8779
|
-
"flags": "--
|
|
8780
|
-
"description": "
|
|
8781
|
-
"required":
|
|
8782
|
-
"valueHint":
|
|
9468
|
+
"flags": "--harness <harness>",
|
|
9469
|
+
"description": "With --all: only this harness (claude-code, codex, ...)",
|
|
9470
|
+
"required": true,
|
|
9471
|
+
"valueHint": "harness"
|
|
8783
9472
|
},
|
|
8784
9473
|
{
|
|
8785
|
-
"flags": "--
|
|
8786
|
-
"description": "
|
|
8787
|
-
"required":
|
|
8788
|
-
"valueHint":
|
|
9474
|
+
"flags": "--hook",
|
|
9475
|
+
"description": "Claude Code Stop-hook mode: read {session_id, transcript_path} JSON from stdin, print nothing, exit 0",
|
|
9476
|
+
"required": false,
|
|
9477
|
+
"valueHint": null
|
|
8789
9478
|
}
|
|
8790
9479
|
],
|
|
8791
9480
|
"aliases": [],
|
|
8792
|
-
"category": "
|
|
8793
|
-
},
|
|
8794
|
-
{
|
|
8795
|
-
"id": "pan-tts-stop",
|
|
8796
|
-
"path": ["tts", "stop"],
|
|
8797
|
-
"display": "/pan tts stop",
|
|
8798
|
-
"description": "Stop the local Qwen TTS daemon",
|
|
8799
|
-
"args": [],
|
|
8800
|
-
"options": [],
|
|
8801
|
-
"aliases": [],
|
|
8802
|
-
"category": "Core"
|
|
9481
|
+
"category": "CLI"
|
|
8803
9482
|
},
|
|
8804
9483
|
{
|
|
8805
|
-
"id": "pan-
|
|
8806
|
-
"path": ["
|
|
8807
|
-
"display": "/pan
|
|
8808
|
-
"description": "
|
|
9484
|
+
"id": "pan-vault-sync",
|
|
9485
|
+
"path": ["vault", "sync"],
|
|
9486
|
+
"display": "/pan vault sync",
|
|
9487
|
+
"description": "Settle owned transcripts that grew, register this machine and refresh the list",
|
|
8809
9488
|
"args": [],
|
|
8810
9489
|
"options": [],
|
|
8811
9490
|
"aliases": [],
|
|
8812
|
-
"category": "
|
|
9491
|
+
"category": "CLI"
|
|
8813
9492
|
},
|
|
8814
9493
|
{
|
|
8815
|
-
"id": "pan-
|
|
8816
|
-
"path": ["
|
|
8817
|
-
"display": "/pan
|
|
8818
|
-
"description": "
|
|
9494
|
+
"id": "pan-vault-list",
|
|
9495
|
+
"path": ["vault", "list"],
|
|
9496
|
+
"display": "/pan vault list",
|
|
9497
|
+
"description": "List saved conversations from the local cache (never contacts the backend)",
|
|
8819
9498
|
"args": [],
|
|
8820
9499
|
"options": [{
|
|
8821
|
-
"flags": "--
|
|
8822
|
-
"description": "
|
|
9500
|
+
"flags": "--json",
|
|
9501
|
+
"description": "Output in JSON format",
|
|
8823
9502
|
"required": false,
|
|
8824
9503
|
"valueHint": null
|
|
8825
|
-
}, {
|
|
8826
|
-
"flags": "--timeout-ms <ms>",
|
|
8827
|
-
"description": "Health wait timeout in milliseconds",
|
|
8828
|
-
"required": true,
|
|
8829
|
-
"valueHint": "ms"
|
|
8830
9504
|
}],
|
|
8831
9505
|
"aliases": [],
|
|
8832
|
-
"category": "
|
|
8833
|
-
},
|
|
8834
|
-
{
|
|
8835
|
-
"id": "pan-tts-install-systemd",
|
|
8836
|
-
"path": ["tts", "install-systemd"],
|
|
8837
|
-
"display": "/pan tts install-systemd",
|
|
8838
|
-
"description": "Install a user systemd unit for the local Qwen TTS daemon",
|
|
8839
|
-
"args": [],
|
|
8840
|
-
"options": [],
|
|
8841
|
-
"aliases": [],
|
|
8842
|
-
"category": "Core"
|
|
9506
|
+
"category": "CLI"
|
|
8843
9507
|
},
|
|
8844
9508
|
{
|
|
8845
|
-
"id": "pan-
|
|
8846
|
-
"path": ["
|
|
8847
|
-
"display": "/pan
|
|
8848
|
-
"description": "
|
|
9509
|
+
"id": "pan-vault-show",
|
|
9510
|
+
"path": ["vault", "show"],
|
|
9511
|
+
"display": "/pan vault show",
|
|
9512
|
+
"description": "Print a saved conversation read-only with its versions",
|
|
8849
9513
|
"args": [{
|
|
8850
|
-
"name": "
|
|
8851
|
-
"required":
|
|
9514
|
+
"name": "id",
|
|
9515
|
+
"required": true,
|
|
8852
9516
|
"variadic": false
|
|
8853
9517
|
}],
|
|
8854
9518
|
"options": [{
|
|
8855
|
-
"flags": "--
|
|
8856
|
-
"description": "
|
|
9519
|
+
"flags": "--json",
|
|
9520
|
+
"description": "Output in JSON format",
|
|
8857
9521
|
"required": false,
|
|
8858
9522
|
"valueHint": null
|
|
8859
9523
|
}],
|
|
8860
9524
|
"aliases": [],
|
|
8861
|
-
"category": "
|
|
8862
|
-
},
|
|
8863
|
-
{
|
|
8864
|
-
"id": "pan-release",
|
|
8865
|
-
"path": ["release"],
|
|
8866
|
-
"display": "/pan release",
|
|
8867
|
-
"description": "Intentional release flow for stable and canary publishes",
|
|
8868
|
-
"args": [],
|
|
8869
|
-
"options": [],
|
|
8870
|
-
"aliases": [],
|
|
8871
|
-
"category": "Flywheel"
|
|
9525
|
+
"category": "CLI"
|
|
8872
9526
|
},
|
|
8873
9527
|
{
|
|
8874
|
-
"id": "pan-
|
|
8875
|
-
"path": ["
|
|
8876
|
-
"display": "/pan
|
|
8877
|
-
"description": "
|
|
8878
|
-
"args": [
|
|
8879
|
-
|
|
8880
|
-
"aliases": [],
|
|
8881
|
-
"category": "Flywheel"
|
|
8882
|
-
},
|
|
8883
|
-
{
|
|
8884
|
-
"id": "pan-release-stable",
|
|
8885
|
-
"path": ["release", "stable"],
|
|
8886
|
-
"display": "/pan release stable",
|
|
8887
|
-
"description": "Create a stable release commit and tag",
|
|
8888
|
-
"args": [],
|
|
8889
|
-
"options": [{
|
|
8890
|
-
"flags": "--version <version>",
|
|
8891
|
-
"description": "Stable semver version (x.y.z)",
|
|
9528
|
+
"id": "pan-vault-resume",
|
|
9529
|
+
"path": ["vault", "resume"],
|
|
9530
|
+
"display": "/pan vault resume",
|
|
9531
|
+
"description": "Continue a saved conversation here: <id> or <id>@<version>; adopts it and launches the harness",
|
|
9532
|
+
"args": [{
|
|
9533
|
+
"name": "id",
|
|
8892
9534
|
"required": true,
|
|
8893
|
-
"
|
|
8894
|
-
}, {
|
|
8895
|
-
"flags": "--skip-tests",
|
|
8896
|
-
"description": "Skip the test suite in preflight (build + guards still run)",
|
|
8897
|
-
"required": false,
|
|
8898
|
-
"valueHint": null
|
|
9535
|
+
"variadic": false
|
|
8899
9536
|
}],
|
|
9537
|
+
"options": [
|
|
9538
|
+
{
|
|
9539
|
+
"flags": "--cwd <dir>",
|
|
9540
|
+
"description": "Working directory to resume in (default: the saved cwd)",
|
|
9541
|
+
"required": true,
|
|
9542
|
+
"valueHint": "dir"
|
|
9543
|
+
},
|
|
9544
|
+
{
|
|
9545
|
+
"flags": "--no-launch",
|
|
9546
|
+
"description": "Print the launch command instead of running it",
|
|
9547
|
+
"required": false,
|
|
9548
|
+
"valueHint": null
|
|
9549
|
+
},
|
|
9550
|
+
{
|
|
9551
|
+
"flags": "--on-drift <choice>",
|
|
9552
|
+
"description": "When the cwd state differs from the saved state: continue | note | cancel",
|
|
9553
|
+
"required": true,
|
|
9554
|
+
"valueHint": "choice"
|
|
9555
|
+
},
|
|
9556
|
+
{
|
|
9557
|
+
"flags": "--no-code",
|
|
9558
|
+
"description": "Do not apply the saved code snapshot; only continue the conversation",
|
|
9559
|
+
"required": false,
|
|
9560
|
+
"valueHint": null
|
|
9561
|
+
},
|
|
9562
|
+
{
|
|
9563
|
+
"flags": "--worktree <dir>",
|
|
9564
|
+
"description": "Apply the code snapshot into a new git worktree at <dir> instead of the target checkout",
|
|
9565
|
+
"required": true,
|
|
9566
|
+
"valueHint": "dir"
|
|
9567
|
+
}
|
|
9568
|
+
],
|
|
8900
9569
|
"aliases": [],
|
|
8901
|
-
"category": "
|
|
9570
|
+
"category": "CLI"
|
|
8902
9571
|
},
|
|
8903
9572
|
{
|
|
8904
|
-
"id": "pan-
|
|
8905
|
-
"path": ["
|
|
8906
|
-
"display": "/pan
|
|
8907
|
-
"description": "
|
|
8908
|
-
"args": [
|
|
9573
|
+
"id": "pan-vault-exclude",
|
|
9574
|
+
"path": ["vault", "exclude"],
|
|
9575
|
+
"display": "/pan vault exclude",
|
|
9576
|
+
"description": "Exclude conversations by cwd path, git origin or session id; an excluded saved record becomes a tombstone",
|
|
9577
|
+
"args": [{
|
|
9578
|
+
"name": "path",
|
|
9579
|
+
"required": false,
|
|
9580
|
+
"variadic": false
|
|
9581
|
+
}],
|
|
8909
9582
|
"options": [{
|
|
8910
|
-
"flags": "--
|
|
8911
|
-
"description": "
|
|
9583
|
+
"flags": "--origin <url>",
|
|
9584
|
+
"description": "Exclude conversations whose git origin is this URL",
|
|
8912
9585
|
"required": true,
|
|
8913
|
-
"valueHint": "
|
|
9586
|
+
"valueHint": "url"
|
|
8914
9587
|
}, {
|
|
8915
|
-
"flags": "--
|
|
8916
|
-
"description": "
|
|
8917
|
-
"required":
|
|
8918
|
-
"valueHint":
|
|
9588
|
+
"flags": "--session <id>",
|
|
9589
|
+
"description": "Exclude one session by native session id or vault id",
|
|
9590
|
+
"required": true,
|
|
9591
|
+
"valueHint": "id"
|
|
8919
9592
|
}],
|
|
8920
9593
|
"aliases": [],
|
|
8921
|
-
"category": "
|
|
9594
|
+
"category": "CLI"
|
|
8922
9595
|
},
|
|
8923
9596
|
{
|
|
8924
|
-
"id": "pan-
|
|
8925
|
-
"path": ["
|
|
8926
|
-
"display": "/pan
|
|
8927
|
-
"description": "
|
|
8928
|
-
"args": [
|
|
9597
|
+
"id": "pan-vault-include",
|
|
9598
|
+
"path": ["vault", "include"],
|
|
9599
|
+
"display": "/pan vault include",
|
|
9600
|
+
"description": "Remove an exclusion added with pan vault exclude",
|
|
9601
|
+
"args": [{
|
|
9602
|
+
"name": "path",
|
|
9603
|
+
"required": false,
|
|
9604
|
+
"variadic": false
|
|
9605
|
+
}],
|
|
8929
9606
|
"options": [{
|
|
8930
|
-
"flags": "--
|
|
8931
|
-
"description": "
|
|
9607
|
+
"flags": "--origin <url>",
|
|
9608
|
+
"description": "Include conversations whose git origin is this URL again",
|
|
8932
9609
|
"required": true,
|
|
8933
|
-
"valueHint": "
|
|
9610
|
+
"valueHint": "url"
|
|
9611
|
+
}, {
|
|
9612
|
+
"flags": "--session <id>",
|
|
9613
|
+
"description": "Include one session again",
|
|
9614
|
+
"required": true,
|
|
9615
|
+
"valueHint": "id"
|
|
8934
9616
|
}],
|
|
8935
9617
|
"aliases": [],
|
|
8936
|
-
"category": "
|
|
9618
|
+
"category": "CLI"
|
|
8937
9619
|
},
|
|
8938
9620
|
{
|
|
8939
|
-
"id": "pan-
|
|
8940
|
-
"path": ["
|
|
8941
|
-
"display": "/pan
|
|
8942
|
-
"description": "
|
|
9621
|
+
"id": "pan-vault-allow-secret",
|
|
9622
|
+
"path": ["vault", "allow-secret"],
|
|
9623
|
+
"display": "/pan vault allow-secret",
|
|
9624
|
+
"description": "Allow one blocked transcript line, or the blocked code lines of one file, for that record only",
|
|
8943
9625
|
"args": [{
|
|
8944
|
-
"name": "
|
|
8945
|
-
"required":
|
|
9626
|
+
"name": "id-or-path",
|
|
9627
|
+
"required": true,
|
|
8946
9628
|
"variadic": false
|
|
8947
9629
|
}, {
|
|
8948
|
-
"name": "
|
|
9630
|
+
"name": "line",
|
|
8949
9631
|
"required": false,
|
|
8950
9632
|
"variadic": false
|
|
8951
9633
|
}],
|
|
8952
9634
|
"options": [{
|
|
8953
|
-
"flags": "--
|
|
8954
|
-
"description": "
|
|
9635
|
+
"flags": "--file <path>",
|
|
9636
|
+
"description": "Allow the blocked lines of this file in the code snapshot (path relative to the repository root)",
|
|
8955
9637
|
"required": true,
|
|
8956
9638
|
"valueHint": "path"
|
|
8957
9639
|
}],
|
|
8958
9640
|
"aliases": [],
|
|
8959
|
-
"category": "
|
|
9641
|
+
"category": "CLI"
|
|
8960
9642
|
},
|
|
8961
9643
|
{
|
|
8962
|
-
"id": "pan-
|
|
8963
|
-
"path": ["
|
|
8964
|
-
"display": "/pan
|
|
8965
|
-
"description": "
|
|
9644
|
+
"id": "pan-vault-evict",
|
|
9645
|
+
"path": ["vault", "evict"],
|
|
9646
|
+
"display": "/pan vault evict",
|
|
9647
|
+
"description": "Review the pending-deletion batch (default) or act on it; nothing is deleted without --confirm",
|
|
8966
9648
|
"args": [],
|
|
8967
|
-
"options": [
|
|
9649
|
+
"options": [
|
|
9650
|
+
{
|
|
9651
|
+
"flags": "--review",
|
|
9652
|
+
"description": "Scan and print the batch with its fingerprint (default)",
|
|
9653
|
+
"required": false,
|
|
9654
|
+
"valueHint": null
|
|
9655
|
+
},
|
|
9656
|
+
{
|
|
9657
|
+
"flags": "--confirm <fingerprint>",
|
|
9658
|
+
"description": "Delete the reviewed files if the batch still matches this fingerprint",
|
|
9659
|
+
"required": true,
|
|
9660
|
+
"valueHint": "fingerprint"
|
|
9661
|
+
},
|
|
9662
|
+
{
|
|
9663
|
+
"flags": "--decline <vaultId>",
|
|
9664
|
+
"description": "Remove an entry from the batch and do not offer it again",
|
|
9665
|
+
"required": true,
|
|
9666
|
+
"valueHint": "vaultId"
|
|
9667
|
+
},
|
|
9668
|
+
{
|
|
9669
|
+
"flags": "--reoffer <vaultId>",
|
|
9670
|
+
"description": "Allow a declined entry to be offered again",
|
|
9671
|
+
"required": true,
|
|
9672
|
+
"valueHint": "vaultId"
|
|
9673
|
+
},
|
|
9674
|
+
{
|
|
9675
|
+
"flags": "--clear",
|
|
9676
|
+
"description": "Empty the batch without deleting or declining anything",
|
|
9677
|
+
"required": false,
|
|
9678
|
+
"valueHint": null
|
|
9679
|
+
}
|
|
9680
|
+
],
|
|
8968
9681
|
"aliases": [],
|
|
8969
|
-
"category": "
|
|
9682
|
+
"category": "CLI"
|
|
8970
9683
|
},
|
|
8971
9684
|
{
|
|
8972
|
-
"id": "pan-
|
|
8973
|
-
"path": ["
|
|
8974
|
-
"display": "/pan
|
|
8975
|
-
"description": "
|
|
9685
|
+
"id": "pan-vault-restore",
|
|
9686
|
+
"path": ["vault", "restore"],
|
|
9687
|
+
"display": "/pan vault restore",
|
|
9688
|
+
"description": "Rebuild an evicted transcript byte for byte at its original path",
|
|
8976
9689
|
"args": [{
|
|
8977
|
-
"name": "
|
|
9690
|
+
"name": "id",
|
|
8978
9691
|
"required": true,
|
|
8979
9692
|
"variadic": false
|
|
8980
9693
|
}],
|
|
8981
|
-
"options": [
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
},
|
|
8985
|
-
{
|
|
8986
|
-
"id": "pan-rollout-retry",
|
|
8987
|
-
"path": ["rollout", "retry"],
|
|
8988
|
-
"display": "/pan rollout retry",
|
|
8989
|
-
"description": "Re-run the release engine for an issue and print the resulting status",
|
|
8990
|
-
"args": [{
|
|
8991
|
-
"name": "issueId",
|
|
9694
|
+
"options": [{
|
|
9695
|
+
"flags": "--to <path>",
|
|
9696
|
+
"description": "Write the rebuilt file here instead of the recorded path",
|
|
8992
9697
|
"required": true,
|
|
8993
|
-
"
|
|
9698
|
+
"valueHint": "path"
|
|
8994
9699
|
}],
|
|
8995
|
-
"options": [],
|
|
8996
9700
|
"aliases": [],
|
|
8997
|
-
"category": "
|
|
9701
|
+
"category": "CLI"
|
|
8998
9702
|
},
|
|
8999
9703
|
{
|
|
9000
|
-
"id": "pan-
|
|
9001
|
-
"path": ["
|
|
9002
|
-
"display": "/pan
|
|
9003
|
-
"description": "
|
|
9704
|
+
"id": "pan-test",
|
|
9705
|
+
"path": ["test"],
|
|
9706
|
+
"display": "/pan test",
|
|
9707
|
+
"description": "Test running and management",
|
|
9004
9708
|
"args": [],
|
|
9005
9709
|
"options": [],
|
|
9006
9710
|
"aliases": [],
|
|
9007
|
-
"category": "
|
|
9711
|
+
"category": "Core"
|
|
9008
9712
|
},
|
|
9009
9713
|
{
|
|
9010
|
-
"id": "pan-
|
|
9011
|
-
"path": ["
|
|
9012
|
-
"display": "/pan
|
|
9013
|
-
"description": "
|
|
9714
|
+
"id": "pan-test-run",
|
|
9715
|
+
"path": ["test", "run"],
|
|
9716
|
+
"display": "/pan test run",
|
|
9717
|
+
"description": "Run tests for a project or workspace",
|
|
9014
9718
|
"args": [{
|
|
9015
|
-
"name": "
|
|
9016
|
-
"required":
|
|
9719
|
+
"name": "target",
|
|
9720
|
+
"required": false,
|
|
9017
9721
|
"variadic": false
|
|
9018
9722
|
}],
|
|
9019
9723
|
"options": [
|
|
9020
9724
|
{
|
|
9021
|
-
"flags": "--project <
|
|
9022
|
-
"description": "Project
|
|
9023
|
-
"required": true,
|
|
9024
|
-
"valueHint": "id"
|
|
9025
|
-
},
|
|
9026
|
-
{
|
|
9027
|
-
"flags": "--workspace <id|name>",
|
|
9028
|
-
"description": "Workspace id or name",
|
|
9029
|
-
"required": true,
|
|
9030
|
-
"valueHint": "id|name"
|
|
9031
|
-
},
|
|
9032
|
-
{
|
|
9033
|
-
"flags": "--issue <id>",
|
|
9034
|
-
"description": "Issue ID",
|
|
9035
|
-
"required": true,
|
|
9036
|
-
"valueHint": "id"
|
|
9037
|
-
},
|
|
9038
|
-
{
|
|
9039
|
-
"flags": "--tag <tag>",
|
|
9040
|
-
"description": "Filter by tag",
|
|
9725
|
+
"flags": "--project <name>",
|
|
9726
|
+
"description": "Project name from registry",
|
|
9041
9727
|
"required": true,
|
|
9042
|
-
"valueHint": "
|
|
9043
|
-
},
|
|
9044
|
-
{
|
|
9045
|
-
"flags": "--sibling",
|
|
9046
|
-
"description": "Search same-project sibling issues instead of the selected issue",
|
|
9047
|
-
"required": false,
|
|
9048
|
-
"valueHint": null
|
|
9049
|
-
},
|
|
9050
|
-
{
|
|
9051
|
-
"flags": "--global",
|
|
9052
|
-
"description": "Search across all registered projects instead of just one",
|
|
9053
|
-
"required": false,
|
|
9054
|
-
"valueHint": null
|
|
9055
|
-
},
|
|
9056
|
-
{
|
|
9057
|
-
"flags": "--target [path]",
|
|
9058
|
-
"description": "Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global",
|
|
9059
|
-
"required": false,
|
|
9060
|
-
"valueHint": "path"
|
|
9061
|
-
},
|
|
9062
|
-
{
|
|
9063
|
-
"flags": "--include-archived",
|
|
9064
|
-
"description": "Include observations hidden by reset markers",
|
|
9065
|
-
"required": false,
|
|
9066
|
-
"valueHint": null
|
|
9728
|
+
"valueHint": "name"
|
|
9067
9729
|
},
|
|
9068
9730
|
{
|
|
9069
|
-
"flags": "--
|
|
9070
|
-
"description": "
|
|
9731
|
+
"flags": "--tests <names>",
|
|
9732
|
+
"description": "Comma-separated test names to run",
|
|
9071
9733
|
"required": true,
|
|
9072
|
-
"valueHint": "
|
|
9734
|
+
"valueHint": "names"
|
|
9073
9735
|
},
|
|
9074
9736
|
{
|
|
9075
|
-
"flags": "--
|
|
9076
|
-
"description": "
|
|
9737
|
+
"flags": "--no-notify",
|
|
9738
|
+
"description": "Skip desktop notification",
|
|
9077
9739
|
"required": false,
|
|
9078
9740
|
"valueHint": null
|
|
9079
9741
|
}
|
|
9080
9742
|
],
|
|
9081
9743
|
"aliases": [],
|
|
9082
|
-
"category": "
|
|
9744
|
+
"category": "Core"
|
|
9083
9745
|
},
|
|
9084
9746
|
{
|
|
9085
|
-
"id": "pan-
|
|
9086
|
-
"path": ["
|
|
9087
|
-
"display": "/pan
|
|
9088
|
-
"description": "
|
|
9747
|
+
"id": "pan-test-list",
|
|
9748
|
+
"path": ["test", "list"],
|
|
9749
|
+
"display": "/pan test list",
|
|
9750
|
+
"description": "List configured tests for a project",
|
|
9089
9751
|
"args": [{
|
|
9090
|
-
"name": "
|
|
9752
|
+
"name": "project",
|
|
9091
9753
|
"required": false,
|
|
9092
9754
|
"variadic": false
|
|
9093
9755
|
}],
|
|
9094
|
-
"options": [
|
|
9095
|
-
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
|
|
9101
|
-
|
|
9102
|
-
|
|
9103
|
-
|
|
9104
|
-
|
|
9105
|
-
|
|
9106
|
-
|
|
9756
|
+
"options": [],
|
|
9757
|
+
"aliases": [],
|
|
9758
|
+
"category": "Core"
|
|
9759
|
+
},
|
|
9760
|
+
{
|
|
9761
|
+
"id": "pan-tts",
|
|
9762
|
+
"path": ["tts"],
|
|
9763
|
+
"display": "/pan tts",
|
|
9764
|
+
"description": "Local TTS daemon helpers",
|
|
9765
|
+
"args": [],
|
|
9766
|
+
"options": [],
|
|
9767
|
+
"aliases": [],
|
|
9768
|
+
"category": "Core"
|
|
9769
|
+
},
|
|
9770
|
+
{
|
|
9771
|
+
"id": "pan-tts-voices",
|
|
9772
|
+
"path": ["tts", "voices"],
|
|
9773
|
+
"display": "/pan tts voices",
|
|
9774
|
+
"description": "List and inspect saved TTS voices",
|
|
9775
|
+
"args": [],
|
|
9776
|
+
"options": [],
|
|
9777
|
+
"aliases": [],
|
|
9778
|
+
"category": "Core"
|
|
9779
|
+
},
|
|
9780
|
+
{
|
|
9781
|
+
"id": "pan-tts-voices-list",
|
|
9782
|
+
"path": [
|
|
9783
|
+
"tts",
|
|
9784
|
+
"voices",
|
|
9785
|
+
"list"
|
|
9786
|
+
],
|
|
9787
|
+
"display": "/pan tts voices list",
|
|
9788
|
+
"description": "List saved TTS voices",
|
|
9789
|
+
"args": [],
|
|
9790
|
+
"options": [],
|
|
9791
|
+
"aliases": [],
|
|
9792
|
+
"category": "Core"
|
|
9793
|
+
},
|
|
9794
|
+
{
|
|
9795
|
+
"id": "pan-tts-voices-show",
|
|
9796
|
+
"path": [
|
|
9797
|
+
"tts",
|
|
9798
|
+
"voices",
|
|
9799
|
+
"show"
|
|
9800
|
+
],
|
|
9801
|
+
"display": "/pan tts voices show",
|
|
9802
|
+
"description": "Show saved TTS voice details",
|
|
9803
|
+
"args": [{
|
|
9804
|
+
"name": "name",
|
|
9805
|
+
"required": true,
|
|
9806
|
+
"variadic": false
|
|
9807
|
+
}],
|
|
9808
|
+
"options": [],
|
|
9809
|
+
"aliases": [],
|
|
9810
|
+
"category": "Core"
|
|
9811
|
+
},
|
|
9812
|
+
{
|
|
9813
|
+
"id": "pan-tts-voices-play",
|
|
9814
|
+
"path": [
|
|
9815
|
+
"tts",
|
|
9816
|
+
"voices",
|
|
9817
|
+
"play"
|
|
9818
|
+
],
|
|
9819
|
+
"display": "/pan tts voices play",
|
|
9820
|
+
"description": "Speak with a saved TTS voice",
|
|
9821
|
+
"args": [{
|
|
9822
|
+
"name": "name",
|
|
9823
|
+
"required": true,
|
|
9824
|
+
"variadic": false
|
|
9825
|
+
}, {
|
|
9826
|
+
"name": "text",
|
|
9827
|
+
"required": false,
|
|
9828
|
+
"variadic": false
|
|
9829
|
+
}],
|
|
9830
|
+
"options": [],
|
|
9831
|
+
"aliases": [],
|
|
9832
|
+
"category": "Core"
|
|
9833
|
+
},
|
|
9834
|
+
{
|
|
9835
|
+
"id": "pan-tts-voices-delete",
|
|
9836
|
+
"path": [
|
|
9837
|
+
"tts",
|
|
9838
|
+
"voices",
|
|
9839
|
+
"delete"
|
|
9840
|
+
],
|
|
9841
|
+
"display": "/pan tts voices delete",
|
|
9842
|
+
"description": "Delete a saved TTS voice",
|
|
9843
|
+
"args": [{
|
|
9844
|
+
"name": "name",
|
|
9845
|
+
"required": true,
|
|
9846
|
+
"variadic": false
|
|
9847
|
+
}],
|
|
9848
|
+
"options": [],
|
|
9849
|
+
"aliases": [],
|
|
9850
|
+
"category": "Core"
|
|
9851
|
+
},
|
|
9852
|
+
{
|
|
9853
|
+
"id": "pan-tts-voices-set-default",
|
|
9854
|
+
"path": [
|
|
9855
|
+
"tts",
|
|
9856
|
+
"voices",
|
|
9857
|
+
"set-default"
|
|
9858
|
+
],
|
|
9859
|
+
"display": "/pan tts voices set-default",
|
|
9860
|
+
"description": "Set the system TTS voice",
|
|
9861
|
+
"args": [{
|
|
9862
|
+
"name": "name",
|
|
9863
|
+
"required": true,
|
|
9864
|
+
"variadic": false
|
|
9865
|
+
}],
|
|
9866
|
+
"options": [],
|
|
9867
|
+
"aliases": [],
|
|
9868
|
+
"category": "Core"
|
|
9869
|
+
},
|
|
9870
|
+
{
|
|
9871
|
+
"id": "pan-tts-voices-map",
|
|
9872
|
+
"path": [
|
|
9873
|
+
"tts",
|
|
9874
|
+
"voices",
|
|
9875
|
+
"map"
|
|
9876
|
+
],
|
|
9877
|
+
"display": "/pan tts voices map",
|
|
9878
|
+
"description": "Map a TTS event key to a saved voice",
|
|
9879
|
+
"args": [{
|
|
9880
|
+
"name": "event",
|
|
9881
|
+
"required": true,
|
|
9882
|
+
"variadic": false
|
|
9883
|
+
}, {
|
|
9884
|
+
"name": "name",
|
|
9885
|
+
"required": true,
|
|
9886
|
+
"variadic": false
|
|
9887
|
+
}],
|
|
9888
|
+
"options": [],
|
|
9889
|
+
"aliases": [],
|
|
9890
|
+
"category": "Core"
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
"id": "pan-tts-start",
|
|
9894
|
+
"path": ["tts", "start"],
|
|
9895
|
+
"display": "/pan tts start",
|
|
9896
|
+
"description": "Start the local Qwen TTS daemon",
|
|
9897
|
+
"args": [],
|
|
9898
|
+
"options": [
|
|
9899
|
+
{
|
|
9900
|
+
"flags": "--detach",
|
|
9901
|
+
"description": "Run the daemon detached in the background",
|
|
9902
|
+
"required": false,
|
|
9903
|
+
"valueHint": null
|
|
9904
|
+
},
|
|
9905
|
+
{
|
|
9906
|
+
"flags": "--foreground",
|
|
9907
|
+
"description": "Run the daemon in the foreground",
|
|
9908
|
+
"required": false,
|
|
9909
|
+
"valueHint": null
|
|
9910
|
+
},
|
|
9911
|
+
{
|
|
9912
|
+
"flags": "--no-wait-for-health",
|
|
9913
|
+
"description": "Return without waiting for /health",
|
|
9914
|
+
"required": false,
|
|
9915
|
+
"valueHint": null
|
|
9916
|
+
},
|
|
9917
|
+
{
|
|
9918
|
+
"flags": "--timeout-ms <ms>",
|
|
9919
|
+
"description": "Health wait timeout in milliseconds",
|
|
9920
|
+
"required": true,
|
|
9921
|
+
"valueHint": "ms"
|
|
9922
|
+
}
|
|
9923
|
+
],
|
|
9924
|
+
"aliases": [],
|
|
9925
|
+
"category": "Core"
|
|
9926
|
+
},
|
|
9927
|
+
{
|
|
9928
|
+
"id": "pan-tts-stop",
|
|
9929
|
+
"path": ["tts", "stop"],
|
|
9930
|
+
"display": "/pan tts stop",
|
|
9931
|
+
"description": "Stop the local Qwen TTS daemon",
|
|
9932
|
+
"args": [],
|
|
9933
|
+
"options": [],
|
|
9934
|
+
"aliases": [],
|
|
9935
|
+
"category": "Core"
|
|
9936
|
+
},
|
|
9937
|
+
{
|
|
9938
|
+
"id": "pan-tts-status",
|
|
9939
|
+
"path": ["tts", "status"],
|
|
9940
|
+
"display": "/pan tts status",
|
|
9941
|
+
"description": "Show local Qwen TTS daemon status",
|
|
9942
|
+
"args": [],
|
|
9943
|
+
"options": [],
|
|
9944
|
+
"aliases": [],
|
|
9945
|
+
"category": "Core"
|
|
9946
|
+
},
|
|
9947
|
+
{
|
|
9948
|
+
"id": "pan-tts-restart",
|
|
9949
|
+
"path": ["tts", "restart"],
|
|
9950
|
+
"display": "/pan tts restart",
|
|
9951
|
+
"description": "Restart the local Qwen TTS daemon",
|
|
9952
|
+
"args": [],
|
|
9953
|
+
"options": [{
|
|
9954
|
+
"flags": "--no-wait-for-health",
|
|
9955
|
+
"description": "Return without waiting for /health",
|
|
9956
|
+
"required": false,
|
|
9957
|
+
"valueHint": null
|
|
9958
|
+
}, {
|
|
9959
|
+
"flags": "--timeout-ms <ms>",
|
|
9960
|
+
"description": "Health wait timeout in milliseconds",
|
|
9961
|
+
"required": true,
|
|
9962
|
+
"valueHint": "ms"
|
|
9963
|
+
}],
|
|
9964
|
+
"aliases": [],
|
|
9965
|
+
"category": "Core"
|
|
9966
|
+
},
|
|
9967
|
+
{
|
|
9968
|
+
"id": "pan-tts-install-systemd",
|
|
9969
|
+
"path": ["tts", "install-systemd"],
|
|
9970
|
+
"display": "/pan tts install-systemd",
|
|
9971
|
+
"description": "Install a user systemd unit for the local Qwen TTS daemon",
|
|
9972
|
+
"args": [],
|
|
9973
|
+
"options": [],
|
|
9974
|
+
"aliases": [],
|
|
9975
|
+
"category": "Core"
|
|
9976
|
+
},
|
|
9977
|
+
{
|
|
9978
|
+
"id": "pan-tts-test",
|
|
9979
|
+
"path": ["tts", "test"],
|
|
9980
|
+
"display": "/pan tts test",
|
|
9981
|
+
"description": "Speak a test phrase using the configured system (priority) voice",
|
|
9982
|
+
"args": [{
|
|
9983
|
+
"name": "text",
|
|
9984
|
+
"required": false,
|
|
9985
|
+
"variadic": false
|
|
9986
|
+
}],
|
|
9987
|
+
"options": [{
|
|
9988
|
+
"flags": "--status",
|
|
9989
|
+
"description": "Use the status voice instead of the system (priority) voice",
|
|
9990
|
+
"required": false,
|
|
9991
|
+
"valueHint": null
|
|
9992
|
+
}],
|
|
9993
|
+
"aliases": [],
|
|
9994
|
+
"category": "Core"
|
|
9995
|
+
},
|
|
9996
|
+
{
|
|
9997
|
+
"id": "pan-release",
|
|
9998
|
+
"path": ["release"],
|
|
9999
|
+
"display": "/pan release",
|
|
10000
|
+
"description": "Intentional release flow for stable and canary publishes",
|
|
10001
|
+
"args": [],
|
|
10002
|
+
"options": [],
|
|
10003
|
+
"aliases": [],
|
|
10004
|
+
"category": "Flywheel"
|
|
10005
|
+
},
|
|
10006
|
+
{
|
|
10007
|
+
"id": "pan-release-check",
|
|
10008
|
+
"path": ["release", "check"],
|
|
10009
|
+
"display": "/pan release check",
|
|
10010
|
+
"description": "Run release preflight checks",
|
|
10011
|
+
"args": [],
|
|
10012
|
+
"options": [],
|
|
10013
|
+
"aliases": [],
|
|
10014
|
+
"category": "Flywheel"
|
|
10015
|
+
},
|
|
10016
|
+
{
|
|
10017
|
+
"id": "pan-release-stable",
|
|
10018
|
+
"path": ["release", "stable"],
|
|
10019
|
+
"display": "/pan release stable",
|
|
10020
|
+
"description": "Create a stable release commit and tag",
|
|
10021
|
+
"args": [],
|
|
10022
|
+
"options": [{
|
|
10023
|
+
"flags": "--version <version>",
|
|
10024
|
+
"description": "Stable semver version (x.y.z)",
|
|
10025
|
+
"required": true,
|
|
10026
|
+
"valueHint": "version"
|
|
10027
|
+
}, {
|
|
10028
|
+
"flags": "--skip-tests",
|
|
10029
|
+
"description": "Skip the test suite in preflight (build + guards still run)",
|
|
10030
|
+
"required": false,
|
|
10031
|
+
"valueHint": null
|
|
10032
|
+
}],
|
|
10033
|
+
"aliases": [],
|
|
10034
|
+
"category": "Flywheel"
|
|
10035
|
+
},
|
|
10036
|
+
{
|
|
10037
|
+
"id": "pan-release-canary",
|
|
10038
|
+
"path": ["release", "canary"],
|
|
10039
|
+
"display": "/pan release canary",
|
|
10040
|
+
"description": "Create a canary release commit and tag",
|
|
10041
|
+
"args": [],
|
|
10042
|
+
"options": [{
|
|
10043
|
+
"flags": "--version <version>",
|
|
10044
|
+
"description": "Canary semver version (x.y.z-canary.n)",
|
|
10045
|
+
"required": true,
|
|
10046
|
+
"valueHint": "version"
|
|
10047
|
+
}, {
|
|
10048
|
+
"flags": "--skip-tests",
|
|
10049
|
+
"description": "Skip the test suite in preflight (build + guards still run)",
|
|
10050
|
+
"required": false,
|
|
10051
|
+
"valueHint": null
|
|
10052
|
+
}],
|
|
10053
|
+
"aliases": [],
|
|
10054
|
+
"category": "Flywheel"
|
|
10055
|
+
},
|
|
10056
|
+
{
|
|
10057
|
+
"id": "pan-release-sourcemaps",
|
|
10058
|
+
"path": ["release", "sourcemaps"],
|
|
10059
|
+
"display": "/pan release sourcemaps",
|
|
10060
|
+
"description": "Upload the built dashboard sourcemaps to PostHog",
|
|
10061
|
+
"args": [],
|
|
10062
|
+
"options": [{
|
|
10063
|
+
"flags": "--version <version>",
|
|
10064
|
+
"description": "Release version associated with the built dashboard",
|
|
10065
|
+
"required": true,
|
|
10066
|
+
"valueHint": "version"
|
|
10067
|
+
}],
|
|
10068
|
+
"aliases": [],
|
|
10069
|
+
"category": "Flywheel"
|
|
10070
|
+
},
|
|
10071
|
+
{
|
|
10072
|
+
"id": "pan-release-notes",
|
|
10073
|
+
"path": ["release", "notes"],
|
|
10074
|
+
"display": "/pan release notes",
|
|
10075
|
+
"description": "Draft release notes from git history",
|
|
10076
|
+
"args": [{
|
|
10077
|
+
"name": "from",
|
|
10078
|
+
"required": false,
|
|
10079
|
+
"variadic": false
|
|
10080
|
+
}, {
|
|
10081
|
+
"name": "to",
|
|
10082
|
+
"required": false,
|
|
10083
|
+
"variadic": false
|
|
10084
|
+
}],
|
|
10085
|
+
"options": [{
|
|
10086
|
+
"flags": "--write <path>",
|
|
10087
|
+
"description": "Write the generated notes to a file",
|
|
10088
|
+
"required": true,
|
|
10089
|
+
"valueHint": "path"
|
|
10090
|
+
}],
|
|
10091
|
+
"aliases": [],
|
|
10092
|
+
"category": "Flywheel"
|
|
10093
|
+
},
|
|
10094
|
+
{
|
|
10095
|
+
"id": "pan-rollout",
|
|
10096
|
+
"path": ["rollout"],
|
|
10097
|
+
"display": "/pan rollout",
|
|
10098
|
+
"description": "Post-merge release status and retry",
|
|
10099
|
+
"args": [],
|
|
10100
|
+
"options": [],
|
|
10101
|
+
"aliases": [],
|
|
10102
|
+
"category": "Flywheel"
|
|
10103
|
+
},
|
|
10104
|
+
{
|
|
10105
|
+
"id": "pan-rollout-status",
|
|
10106
|
+
"path": ["rollout", "status"],
|
|
10107
|
+
"display": "/pan rollout status",
|
|
10108
|
+
"description": "Print the release set for an issue (overall + per-component status)",
|
|
10109
|
+
"args": [{
|
|
10110
|
+
"name": "issueId",
|
|
10111
|
+
"required": true,
|
|
10112
|
+
"variadic": false
|
|
10113
|
+
}],
|
|
10114
|
+
"options": [],
|
|
10115
|
+
"aliases": [],
|
|
10116
|
+
"category": "Flywheel"
|
|
10117
|
+
},
|
|
10118
|
+
{
|
|
10119
|
+
"id": "pan-rollout-retry",
|
|
10120
|
+
"path": ["rollout", "retry"],
|
|
10121
|
+
"display": "/pan rollout retry",
|
|
10122
|
+
"description": "Re-run the release engine for an issue and print the resulting status",
|
|
10123
|
+
"args": [{
|
|
10124
|
+
"name": "issueId",
|
|
10125
|
+
"required": true,
|
|
10126
|
+
"variadic": false
|
|
10127
|
+
}],
|
|
10128
|
+
"options": [],
|
|
10129
|
+
"aliases": [],
|
|
10130
|
+
"category": "Flywheel"
|
|
10131
|
+
},
|
|
10132
|
+
{
|
|
10133
|
+
"id": "pan-memory",
|
|
10134
|
+
"path": ["memory"],
|
|
10135
|
+
"display": "/pan memory",
|
|
10136
|
+
"description": "Search and inspect Overdeck memory",
|
|
10137
|
+
"args": [],
|
|
10138
|
+
"options": [],
|
|
10139
|
+
"aliases": [],
|
|
10140
|
+
"category": "Observation"
|
|
10141
|
+
},
|
|
10142
|
+
{
|
|
10143
|
+
"id": "pan-memory-search",
|
|
10144
|
+
"path": ["memory", "search"],
|
|
10145
|
+
"display": "/pan memory search",
|
|
10146
|
+
"description": "Search memory observations",
|
|
10147
|
+
"args": [{
|
|
10148
|
+
"name": "query",
|
|
10149
|
+
"required": true,
|
|
10150
|
+
"variadic": false
|
|
10151
|
+
}],
|
|
10152
|
+
"options": [
|
|
10153
|
+
{
|
|
10154
|
+
"flags": "--project <id>",
|
|
10155
|
+
"description": "Project ID",
|
|
10156
|
+
"required": true,
|
|
10157
|
+
"valueHint": "id"
|
|
10158
|
+
},
|
|
10159
|
+
{
|
|
10160
|
+
"flags": "--workspace <id|name>",
|
|
10161
|
+
"description": "Workspace id or name",
|
|
10162
|
+
"required": true,
|
|
10163
|
+
"valueHint": "id|name"
|
|
10164
|
+
},
|
|
10165
|
+
{
|
|
10166
|
+
"flags": "--issue <id>",
|
|
10167
|
+
"description": "Issue ID",
|
|
10168
|
+
"required": true,
|
|
10169
|
+
"valueHint": "id"
|
|
10170
|
+
},
|
|
10171
|
+
{
|
|
10172
|
+
"flags": "--tag <tag>",
|
|
10173
|
+
"description": "Filter by tag",
|
|
10174
|
+
"required": true,
|
|
10175
|
+
"valueHint": "tag"
|
|
10176
|
+
},
|
|
10177
|
+
{
|
|
10178
|
+
"flags": "--sibling",
|
|
10179
|
+
"description": "Search same-project sibling issues instead of the selected issue",
|
|
10180
|
+
"required": false,
|
|
10181
|
+
"valueHint": null
|
|
10182
|
+
},
|
|
10183
|
+
{
|
|
10184
|
+
"flags": "--global",
|
|
10185
|
+
"description": "Search across all registered projects instead of just one",
|
|
10186
|
+
"required": false,
|
|
10187
|
+
"valueHint": null
|
|
10188
|
+
},
|
|
10189
|
+
{
|
|
10190
|
+
"flags": "--target [path]",
|
|
10191
|
+
"description": "Search all workspaces whose path targets a directory (bare flag = cwd); mutually exclusive with --workspace/--issue/--global",
|
|
10192
|
+
"required": false,
|
|
10193
|
+
"valueHint": "path"
|
|
10194
|
+
},
|
|
10195
|
+
{
|
|
10196
|
+
"flags": "--include-archived",
|
|
10197
|
+
"description": "Include observations hidden by reset markers",
|
|
10198
|
+
"required": false,
|
|
10199
|
+
"valueHint": null
|
|
10200
|
+
},
|
|
10201
|
+
{
|
|
10202
|
+
"flags": "--limit <n>",
|
|
10203
|
+
"description": "Maximum results",
|
|
10204
|
+
"required": true,
|
|
10205
|
+
"valueHint": "n"
|
|
10206
|
+
},
|
|
10207
|
+
{
|
|
10208
|
+
"flags": "--json",
|
|
10209
|
+
"description": "Output JSON",
|
|
10210
|
+
"required": false,
|
|
10211
|
+
"valueHint": null
|
|
10212
|
+
}
|
|
10213
|
+
],
|
|
10214
|
+
"aliases": [],
|
|
10215
|
+
"category": "Observation"
|
|
10216
|
+
},
|
|
10217
|
+
{
|
|
10218
|
+
"id": "pan-memory-status",
|
|
10219
|
+
"path": ["memory", "status"],
|
|
10220
|
+
"display": "/pan memory status",
|
|
10221
|
+
"description": "Show current memory status for an issue, a workspace, or the current directory",
|
|
10222
|
+
"args": [{
|
|
10223
|
+
"name": "issue",
|
|
10224
|
+
"required": false,
|
|
10225
|
+
"variadic": false
|
|
10226
|
+
}],
|
|
10227
|
+
"options": [
|
|
10228
|
+
{
|
|
10229
|
+
"flags": "--project <id>",
|
|
10230
|
+
"description": "Project ID",
|
|
10231
|
+
"required": true,
|
|
10232
|
+
"valueHint": "id"
|
|
10233
|
+
},
|
|
10234
|
+
{
|
|
10235
|
+
"flags": "--workspace <id|name>",
|
|
10236
|
+
"description": "Workspace id or name instead of an issue positional",
|
|
10237
|
+
"required": true,
|
|
10238
|
+
"valueHint": "id|name"
|
|
10239
|
+
},
|
|
9107
10240
|
{
|
|
9108
10241
|
"flags": "--history <n>",
|
|
9109
10242
|
"description": "Also print up to N archived statuses, newest first (max 50)",
|
|
@@ -10654,6 +11787,20 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10654
11787
|
"aliases": [],
|
|
10655
11788
|
"category": "Admin"
|
|
10656
11789
|
},
|
|
11790
|
+
{
|
|
11791
|
+
"id": "pan-admin-config-tiers",
|
|
11792
|
+
"path": [
|
|
11793
|
+
"admin",
|
|
11794
|
+
"config",
|
|
11795
|
+
"tiers"
|
|
11796
|
+
],
|
|
11797
|
+
"display": "/pan admin config tiers",
|
|
11798
|
+
"description": "Show the effective model per tiered_execution tier and whether it overrides roles.work",
|
|
11799
|
+
"args": [],
|
|
11800
|
+
"options": [],
|
|
11801
|
+
"aliases": [],
|
|
11802
|
+
"category": "Admin"
|
|
11803
|
+
},
|
|
10657
11804
|
{
|
|
10658
11805
|
"id": "pan-admin-hooks",
|
|
10659
11806
|
"path": ["admin", "hooks"],
|
|
@@ -11527,6 +12674,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11527
12674
|
"description": "Skip Herdr terminal backend install/verify (tmux-only hosts)",
|
|
11528
12675
|
"required": false,
|
|
11529
12676
|
"valueHint": null
|
|
12677
|
+
},
|
|
12678
|
+
{
|
|
12679
|
+
"flags": "--skip-ollama",
|
|
12680
|
+
"description": "Skip Ollama local-model detection and optional gemma4:12b pull",
|
|
12681
|
+
"required": false,
|
|
12682
|
+
"valueHint": null
|
|
11530
12683
|
}
|
|
11531
12684
|
],
|
|
11532
12685
|
"aliases": [],
|
|
@@ -11607,141 +12760,427 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11607
12760
|
"valueHint": "path"
|
|
11608
12761
|
}],
|
|
11609
12762
|
"aliases": [],
|
|
11610
|
-
"category": "Lifecycle"
|
|
12763
|
+
"category": "Lifecycle"
|
|
12764
|
+
},
|
|
12765
|
+
{
|
|
12766
|
+
"id": "pan-scope-approve",
|
|
12767
|
+
"path": ["scope", "approve"],
|
|
12768
|
+
"display": "/pan scope approve",
|
|
12769
|
+
"description": "Move xBRIEF to active/ and set status approved",
|
|
12770
|
+
"args": [{
|
|
12771
|
+
"name": "issueId",
|
|
12772
|
+
"required": true,
|
|
12773
|
+
"variadic": false
|
|
12774
|
+
}],
|
|
12775
|
+
"options": [{
|
|
12776
|
+
"flags": "--project <path>",
|
|
12777
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12778
|
+
"required": true,
|
|
12779
|
+
"valueHint": "path"
|
|
12780
|
+
}],
|
|
12781
|
+
"aliases": [],
|
|
12782
|
+
"category": "Lifecycle"
|
|
12783
|
+
},
|
|
12784
|
+
{
|
|
12785
|
+
"id": "pan-scope-complete",
|
|
12786
|
+
"path": ["scope", "complete"],
|
|
12787
|
+
"display": "/pan scope complete",
|
|
12788
|
+
"description": "Move xBRIEF to completed/",
|
|
12789
|
+
"args": [{
|
|
12790
|
+
"name": "issueId",
|
|
12791
|
+
"required": true,
|
|
12792
|
+
"variadic": false
|
|
12793
|
+
}],
|
|
12794
|
+
"options": [{
|
|
12795
|
+
"flags": "--project <path>",
|
|
12796
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12797
|
+
"required": true,
|
|
12798
|
+
"valueHint": "path"
|
|
12799
|
+
}],
|
|
12800
|
+
"aliases": [],
|
|
12801
|
+
"category": "Lifecycle"
|
|
12802
|
+
},
|
|
12803
|
+
{
|
|
12804
|
+
"id": "pan-scope-cancel",
|
|
12805
|
+
"path": ["scope", "cancel"],
|
|
12806
|
+
"display": "/pan scope cancel",
|
|
12807
|
+
"description": "Move xBRIEF to cancelled/",
|
|
12808
|
+
"args": [{
|
|
12809
|
+
"name": "issueId",
|
|
12810
|
+
"required": true,
|
|
12811
|
+
"variadic": false
|
|
12812
|
+
}],
|
|
12813
|
+
"options": [{
|
|
12814
|
+
"flags": "--project <path>",
|
|
12815
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12816
|
+
"required": true,
|
|
12817
|
+
"valueHint": "path"
|
|
12818
|
+
}],
|
|
12819
|
+
"aliases": [],
|
|
12820
|
+
"category": "Lifecycle"
|
|
12821
|
+
},
|
|
12822
|
+
{
|
|
12823
|
+
"id": "pan-scope-restore",
|
|
12824
|
+
"path": ["scope", "restore"],
|
|
12825
|
+
"display": "/pan scope restore",
|
|
12826
|
+
"description": "Restore xBRIEF from completed/ or cancelled/ to active/",
|
|
12827
|
+
"args": [{
|
|
12828
|
+
"name": "issueId",
|
|
12829
|
+
"required": true,
|
|
12830
|
+
"variadic": false
|
|
12831
|
+
}],
|
|
12832
|
+
"options": [{
|
|
12833
|
+
"flags": "--project <path>",
|
|
12834
|
+
"description": "Project path (defaults to resolved from issue)",
|
|
12835
|
+
"required": true,
|
|
12836
|
+
"valueHint": "path"
|
|
12837
|
+
}],
|
|
12838
|
+
"aliases": [],
|
|
12839
|
+
"category": "Lifecycle"
|
|
12840
|
+
},
|
|
12841
|
+
{
|
|
12842
|
+
"id": "pan-spawn",
|
|
12843
|
+
"path": ["spawn"],
|
|
12844
|
+
"display": "/pan spawn",
|
|
12845
|
+
"description": "Create a worker pane for one xBRIEF item in its own item worktree",
|
|
12846
|
+
"args": [],
|
|
12847
|
+
"options": [
|
|
12848
|
+
{
|
|
12849
|
+
"flags": "--issue <id>",
|
|
12850
|
+
"description": "Issue the worker belongs to",
|
|
12851
|
+
"required": true,
|
|
12852
|
+
"valueHint": "id"
|
|
12853
|
+
},
|
|
12854
|
+
{
|
|
12855
|
+
"flags": "--item <item>",
|
|
12856
|
+
"description": "xBRIEF item the worker takes",
|
|
12857
|
+
"required": true,
|
|
12858
|
+
"valueHint": "item"
|
|
12859
|
+
},
|
|
12860
|
+
{
|
|
12861
|
+
"flags": "--model <model>",
|
|
12862
|
+
"description": "Model the worker runs on",
|
|
12863
|
+
"required": true,
|
|
12864
|
+
"valueHint": "model"
|
|
12865
|
+
},
|
|
12866
|
+
{
|
|
12867
|
+
"flags": "--harness <harness>",
|
|
12868
|
+
"description": "Coding-agent harness (default: claude-code)",
|
|
12869
|
+
"required": true,
|
|
12870
|
+
"valueHint": "harness"
|
|
12871
|
+
},
|
|
12872
|
+
{
|
|
12873
|
+
"flags": "--shared",
|
|
12874
|
+
"description": "Run the worker in the issue workspace instead of an item worktree (foreman/operator only; serial use)",
|
|
12875
|
+
"required": false,
|
|
12876
|
+
"valueHint": null
|
|
12877
|
+
}
|
|
12878
|
+
],
|
|
12879
|
+
"aliases": [],
|
|
12880
|
+
"category": "CLI"
|
|
12881
|
+
},
|
|
12882
|
+
{
|
|
12883
|
+
"id": "pan-worker",
|
|
12884
|
+
"path": ["worker"],
|
|
12885
|
+
"display": "/pan worker",
|
|
12886
|
+
"description": "Registered workers: spawn an issue-linked agent and get its report back; register external agents",
|
|
12887
|
+
"args": [],
|
|
12888
|
+
"options": [],
|
|
12889
|
+
"aliases": [],
|
|
12890
|
+
"category": "CLI"
|
|
12891
|
+
},
|
|
12892
|
+
{
|
|
12893
|
+
"id": "pan-worker-run",
|
|
12894
|
+
"path": ["worker", "run"],
|
|
12895
|
+
"display": "/pan worker run",
|
|
12896
|
+
"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)",
|
|
12897
|
+
"args": [],
|
|
12898
|
+
"options": [
|
|
12899
|
+
{
|
|
12900
|
+
"flags": "--issue <id>",
|
|
12901
|
+
"description": "Issue the worker belongs to (required)",
|
|
12902
|
+
"required": true,
|
|
12903
|
+
"valueHint": "id"
|
|
12904
|
+
},
|
|
12905
|
+
{
|
|
12906
|
+
"flags": "--prompt <text>",
|
|
12907
|
+
"description": "The brief, inline",
|
|
12908
|
+
"required": true,
|
|
12909
|
+
"valueHint": "text"
|
|
12910
|
+
},
|
|
12911
|
+
{
|
|
12912
|
+
"flags": "--brief <file>",
|
|
12913
|
+
"description": "The brief, from a file",
|
|
12914
|
+
"required": true,
|
|
12915
|
+
"valueHint": "file"
|
|
12916
|
+
},
|
|
12917
|
+
{
|
|
12918
|
+
"flags": "--model <model>",
|
|
12919
|
+
"description": "Model override (default: roles.worker.model)",
|
|
12920
|
+
"required": true,
|
|
12921
|
+
"valueHint": "model"
|
|
12922
|
+
},
|
|
12923
|
+
{
|
|
12924
|
+
"flags": "--harness <harness>",
|
|
12925
|
+
"description": "Harness override (default: routed from the model)",
|
|
12926
|
+
"required": true,
|
|
12927
|
+
"valueHint": "harness"
|
|
12928
|
+
},
|
|
12929
|
+
{
|
|
12930
|
+
"flags": "--read-only",
|
|
12931
|
+
"description": "Run in the issue workspace with git writes blocked",
|
|
12932
|
+
"required": false,
|
|
12933
|
+
"valueHint": null
|
|
12934
|
+
},
|
|
12935
|
+
{
|
|
12936
|
+
"flags": "--cwd <path>",
|
|
12937
|
+
"description": "Working directory inside the issue workspace",
|
|
12938
|
+
"required": true,
|
|
12939
|
+
"valueHint": "path"
|
|
12940
|
+
},
|
|
12941
|
+
{
|
|
12942
|
+
"flags": "--parent <id>",
|
|
12943
|
+
"description": "Spawning agent or conversation (default: $OVERDECK_AGENT_ID, then $OVERDECK_CONVERSATION)",
|
|
12944
|
+
"required": true,
|
|
12945
|
+
"valueHint": "id"
|
|
12946
|
+
},
|
|
12947
|
+
{
|
|
12948
|
+
"flags": "--name <label>",
|
|
12949
|
+
"description": "Label shown in the Agents Directory",
|
|
12950
|
+
"required": true,
|
|
12951
|
+
"valueHint": "label"
|
|
12952
|
+
},
|
|
12953
|
+
{
|
|
12954
|
+
"flags": "--detach",
|
|
12955
|
+
"description": "Print the worker id and return without waiting",
|
|
12956
|
+
"required": false,
|
|
12957
|
+
"valueHint": null
|
|
12958
|
+
},
|
|
12959
|
+
{
|
|
12960
|
+
"flags": "--timeout <seconds>",
|
|
12961
|
+
"description": "Stop waiting after this many seconds (exit 3; the worker keeps running)",
|
|
12962
|
+
"required": true,
|
|
12963
|
+
"valueHint": "seconds"
|
|
12964
|
+
},
|
|
12965
|
+
{
|
|
12966
|
+
"flags": "--stop-after-report",
|
|
12967
|
+
"description": "Stop the worker after its first report",
|
|
12968
|
+
"required": false,
|
|
12969
|
+
"valueHint": null
|
|
12970
|
+
}
|
|
12971
|
+
],
|
|
12972
|
+
"aliases": [],
|
|
12973
|
+
"category": "CLI"
|
|
11611
12974
|
},
|
|
11612
12975
|
{
|
|
11613
|
-
"id": "pan-
|
|
11614
|
-
"path": ["
|
|
11615
|
-
"display": "/pan
|
|
11616
|
-
"description": "
|
|
12976
|
+
"id": "pan-worker-wait",
|
|
12977
|
+
"path": ["worker", "wait"],
|
|
12978
|
+
"display": "/pan worker wait",
|
|
12979
|
+
"description": "Wait for a worker's report (same exit codes as run); the status line names its seq",
|
|
11617
12980
|
"args": [{
|
|
11618
|
-
"name": "
|
|
12981
|
+
"name": "worker-id",
|
|
11619
12982
|
"required": true,
|
|
11620
12983
|
"variadic": false
|
|
11621
12984
|
}],
|
|
11622
12985
|
"options": [{
|
|
11623
|
-
"flags": "--
|
|
11624
|
-
"description": "
|
|
11625
|
-
"required": true,
|
|
11626
|
-
"valueHint": "path"
|
|
11627
|
-
}],
|
|
11628
|
-
"aliases": [],
|
|
11629
|
-
"category": "Lifecycle"
|
|
11630
|
-
},
|
|
11631
|
-
{
|
|
11632
|
-
"id": "pan-scope-complete",
|
|
11633
|
-
"path": ["scope", "complete"],
|
|
11634
|
-
"display": "/pan scope complete",
|
|
11635
|
-
"description": "Move xBRIEF to completed/",
|
|
11636
|
-
"args": [{
|
|
11637
|
-
"name": "issueId",
|
|
12986
|
+
"flags": "--after <seq>",
|
|
12987
|
+
"description": "Return the next report after this seq (default: the newest report, whenever written)",
|
|
11638
12988
|
"required": true,
|
|
11639
|
-
"
|
|
11640
|
-
}
|
|
11641
|
-
|
|
11642
|
-
"
|
|
11643
|
-
"description": "Project path (defaults to resolved from issue)",
|
|
12989
|
+
"valueHint": "seq"
|
|
12990
|
+
}, {
|
|
12991
|
+
"flags": "--timeout <seconds>",
|
|
12992
|
+
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11644
12993
|
"required": true,
|
|
11645
|
-
"valueHint": "
|
|
12994
|
+
"valueHint": "seconds"
|
|
11646
12995
|
}],
|
|
11647
12996
|
"aliases": [],
|
|
11648
|
-
"category": "
|
|
12997
|
+
"category": "CLI"
|
|
11649
12998
|
},
|
|
11650
12999
|
{
|
|
11651
|
-
"id": "pan-
|
|
11652
|
-
"path": ["
|
|
11653
|
-
"display": "/pan
|
|
11654
|
-
"description": "
|
|
13000
|
+
"id": "pan-worker-report",
|
|
13001
|
+
"path": ["worker", "report"],
|
|
13002
|
+
"display": "/pan worker report",
|
|
13003
|
+
"description": "Record a worker's report (run by the worker itself)",
|
|
11655
13004
|
"args": [{
|
|
11656
|
-
"name": "
|
|
13005
|
+
"name": "worker-id",
|
|
11657
13006
|
"required": true,
|
|
11658
13007
|
"variadic": false
|
|
11659
13008
|
}],
|
|
11660
|
-
"options": [
|
|
11661
|
-
|
|
11662
|
-
|
|
11663
|
-
|
|
11664
|
-
|
|
11665
|
-
|
|
13009
|
+
"options": [
|
|
13010
|
+
{
|
|
13011
|
+
"flags": "--file <path>",
|
|
13012
|
+
"description": "Read the Markdown report from a file",
|
|
13013
|
+
"required": true,
|
|
13014
|
+
"valueHint": "path"
|
|
13015
|
+
},
|
|
13016
|
+
{
|
|
13017
|
+
"flags": "--stdin",
|
|
13018
|
+
"description": "Read the Markdown report from stdin",
|
|
13019
|
+
"required": false,
|
|
13020
|
+
"valueHint": null
|
|
13021
|
+
},
|
|
13022
|
+
{
|
|
13023
|
+
"flags": "--status <status>",
|
|
13024
|
+
"description": "done | blocked | failed (default: done)",
|
|
13025
|
+
"required": true,
|
|
13026
|
+
"valueHint": "status"
|
|
13027
|
+
}
|
|
13028
|
+
],
|
|
11666
13029
|
"aliases": [],
|
|
11667
|
-
"category": "
|
|
13030
|
+
"category": "CLI"
|
|
11668
13031
|
},
|
|
11669
13032
|
{
|
|
11670
|
-
"id": "pan-
|
|
11671
|
-
"path": ["
|
|
11672
|
-
"display": "/pan
|
|
11673
|
-
"description": "
|
|
11674
|
-
"args": [
|
|
11675
|
-
|
|
11676
|
-
|
|
11677
|
-
|
|
11678
|
-
|
|
11679
|
-
|
|
11680
|
-
|
|
11681
|
-
|
|
11682
|
-
|
|
11683
|
-
|
|
11684
|
-
|
|
13033
|
+
"id": "pan-worker-list",
|
|
13034
|
+
"path": ["worker", "list"],
|
|
13035
|
+
"display": "/pan worker list",
|
|
13036
|
+
"description": "List workers with their parent, live state and newest report",
|
|
13037
|
+
"args": [],
|
|
13038
|
+
"options": [
|
|
13039
|
+
{
|
|
13040
|
+
"flags": "--issue <id>",
|
|
13041
|
+
"description": "Only this issue's workers",
|
|
13042
|
+
"required": true,
|
|
13043
|
+
"valueHint": "id"
|
|
13044
|
+
},
|
|
13045
|
+
{
|
|
13046
|
+
"flags": "--parent <id>",
|
|
13047
|
+
"description": "Only workers of this parent",
|
|
13048
|
+
"required": true,
|
|
13049
|
+
"valueHint": "id"
|
|
13050
|
+
},
|
|
13051
|
+
{
|
|
13052
|
+
"flags": "--json",
|
|
13053
|
+
"description": "Print JSON",
|
|
13054
|
+
"required": false,
|
|
13055
|
+
"valueHint": null
|
|
13056
|
+
}
|
|
13057
|
+
],
|
|
11685
13058
|
"aliases": [],
|
|
11686
|
-
"category": "
|
|
13059
|
+
"category": "CLI"
|
|
11687
13060
|
},
|
|
11688
13061
|
{
|
|
11689
|
-
"id": "pan-
|
|
11690
|
-
"path": ["
|
|
11691
|
-
"display": "/pan
|
|
11692
|
-
"description": "
|
|
13062
|
+
"id": "pan-worker-register",
|
|
13063
|
+
"path": ["worker", "register"],
|
|
13064
|
+
"display": "/pan worker register",
|
|
13065
|
+
"description": "Record an agent another tool launched so the Agents Directory shows it (read-only; prints its id)",
|
|
11693
13066
|
"args": [],
|
|
11694
13067
|
"options": [
|
|
11695
13068
|
{
|
|
11696
|
-
"flags": "--
|
|
11697
|
-
"description": "
|
|
13069
|
+
"flags": "--source <name>",
|
|
13070
|
+
"description": "Who launched it ([a-z0-9-], not codex-plugin) (required)",
|
|
13071
|
+
"required": true,
|
|
13072
|
+
"valueHint": "name"
|
|
13073
|
+
},
|
|
13074
|
+
{
|
|
13075
|
+
"flags": "--external-id <id>",
|
|
13076
|
+
"description": "The launcher's id for it (required)",
|
|
11698
13077
|
"required": true,
|
|
11699
13078
|
"valueHint": "id"
|
|
11700
13079
|
},
|
|
11701
13080
|
{
|
|
11702
|
-
"flags": "--
|
|
11703
|
-
"description": "
|
|
13081
|
+
"flags": "--harness <harness>",
|
|
13082
|
+
"description": "codex, claude-code, … (required)",
|
|
11704
13083
|
"required": true,
|
|
11705
|
-
"valueHint": "
|
|
13084
|
+
"valueHint": "harness"
|
|
11706
13085
|
},
|
|
11707
13086
|
{
|
|
11708
13087
|
"flags": "--model <model>",
|
|
11709
|
-
"description": "Model
|
|
13088
|
+
"description": "Model it runs",
|
|
11710
13089
|
"required": true,
|
|
11711
13090
|
"valueHint": "model"
|
|
11712
13091
|
},
|
|
11713
13092
|
{
|
|
11714
|
-
"flags": "--
|
|
11715
|
-
"description": "
|
|
13093
|
+
"flags": "--cwd <path>",
|
|
13094
|
+
"description": "Its working directory",
|
|
11716
13095
|
"required": true,
|
|
11717
|
-
"valueHint": "
|
|
13096
|
+
"valueHint": "path"
|
|
13097
|
+
},
|
|
13098
|
+
{
|
|
13099
|
+
"flags": "--issue <id>",
|
|
13100
|
+
"description": "Issue it works on",
|
|
13101
|
+
"required": true,
|
|
13102
|
+
"valueHint": "id"
|
|
13103
|
+
},
|
|
13104
|
+
{
|
|
13105
|
+
"flags": "--parent <id>",
|
|
13106
|
+
"description": "Spawning agent id, conversation tmux session, or claude-session:<uuid>",
|
|
13107
|
+
"required": true,
|
|
13108
|
+
"valueHint": "id"
|
|
13109
|
+
},
|
|
13110
|
+
{
|
|
13111
|
+
"flags": "--label <text>",
|
|
13112
|
+
"description": "Label shown in the Agents Directory",
|
|
13113
|
+
"required": true,
|
|
13114
|
+
"valueHint": "text"
|
|
13115
|
+
},
|
|
13116
|
+
{
|
|
13117
|
+
"flags": "--pid <n>",
|
|
13118
|
+
"description": "Its process id (liveness is read from it)",
|
|
13119
|
+
"required": true,
|
|
13120
|
+
"valueHint": "n"
|
|
13121
|
+
},
|
|
13122
|
+
{
|
|
13123
|
+
"flags": "--transcript <path>",
|
|
13124
|
+
"description": "Its transcript file",
|
|
13125
|
+
"required": true,
|
|
13126
|
+
"valueHint": "path"
|
|
13127
|
+
},
|
|
13128
|
+
{
|
|
13129
|
+
"flags": "--session-id <id>",
|
|
13130
|
+
"description": "Its session or thread id",
|
|
13131
|
+
"required": true,
|
|
13132
|
+
"valueHint": "id"
|
|
13133
|
+
},
|
|
13134
|
+
{
|
|
13135
|
+
"flags": "--json",
|
|
13136
|
+
"description": "Print { id, created }",
|
|
13137
|
+
"required": false,
|
|
13138
|
+
"valueHint": null
|
|
11718
13139
|
}
|
|
11719
13140
|
],
|
|
11720
13141
|
"aliases": [],
|
|
11721
13142
|
"category": "CLI"
|
|
11722
13143
|
},
|
|
11723
13144
|
{
|
|
11724
|
-
"id": "pan-
|
|
11725
|
-
"path": ["
|
|
11726
|
-
"display": "/pan
|
|
11727
|
-
"description": "
|
|
13145
|
+
"id": "pan-lane",
|
|
13146
|
+
"path": ["lane"],
|
|
13147
|
+
"display": "/pan lane",
|
|
13148
|
+
"description": "Gauntlet lanes: launch, list, show, wait on, report from, stop and reap lane conversations",
|
|
11728
13149
|
"args": [],
|
|
11729
13150
|
"options": [],
|
|
11730
13151
|
"aliases": [],
|
|
11731
13152
|
"category": "CLI"
|
|
11732
13153
|
},
|
|
11733
13154
|
{
|
|
11734
|
-
"id": "pan-
|
|
11735
|
-
"path": ["
|
|
11736
|
-
"display": "/pan
|
|
11737
|
-
"description": "
|
|
13155
|
+
"id": "pan-lane-start",
|
|
13156
|
+
"path": ["lane", "start"],
|
|
13157
|
+
"display": "/pan lane start",
|
|
13158
|
+
"description": "Launch a lane conversation under the calling conversation (any harness)",
|
|
11738
13159
|
"args": [],
|
|
11739
13160
|
"options": [
|
|
11740
13161
|
{
|
|
11741
|
-
"flags": "--
|
|
11742
|
-
"description": "
|
|
13162
|
+
"flags": "--key <key>",
|
|
13163
|
+
"description": "Lane key inside the run (required unless --for)",
|
|
13164
|
+
"required": true,
|
|
13165
|
+
"valueHint": "key"
|
|
13166
|
+
},
|
|
13167
|
+
{
|
|
13168
|
+
"flags": "--for <builder-key>",
|
|
13169
|
+
"description": "Critic (required) or verifier: the builder lane judged; --key defaults to it",
|
|
13170
|
+
"required": true,
|
|
13171
|
+
"valueHint": "builder-key"
|
|
13172
|
+
},
|
|
13173
|
+
{
|
|
13174
|
+
"flags": "--role <role>",
|
|
13175
|
+
"description": "builder | critic | verifier | play | orchestrator (required)",
|
|
13176
|
+
"required": true,
|
|
13177
|
+
"valueHint": "role"
|
|
13178
|
+
},
|
|
13179
|
+
{
|
|
13180
|
+
"flags": "--brief <file>",
|
|
13181
|
+
"description": "The brief, from a file",
|
|
11743
13182
|
"required": true,
|
|
11744
|
-
"valueHint": "
|
|
13183
|
+
"valueHint": "file"
|
|
11745
13184
|
},
|
|
11746
13185
|
{
|
|
11747
13186
|
"flags": "--prompt <text>",
|
|
@@ -11750,62 +13189,92 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11750
13189
|
"valueHint": "text"
|
|
11751
13190
|
},
|
|
11752
13191
|
{
|
|
11753
|
-
"flags": "--
|
|
11754
|
-
"description": "
|
|
13192
|
+
"flags": "--run <key>",
|
|
13193
|
+
"description": "Run key (required from a root; inherited inside an orchestrator lane)",
|
|
11755
13194
|
"required": true,
|
|
11756
|
-
"valueHint": "
|
|
13195
|
+
"valueHint": "key"
|
|
13196
|
+
},
|
|
13197
|
+
{
|
|
13198
|
+
"flags": "--parent <conv>",
|
|
13199
|
+
"description": "Launching conversation (default: $OVERDECK_CONVERSATION)",
|
|
13200
|
+
"required": true,
|
|
13201
|
+
"valueHint": "conv"
|
|
13202
|
+
},
|
|
13203
|
+
{
|
|
13204
|
+
"flags": "--project <key>",
|
|
13205
|
+
"description": "Project (default: the parent's project)",
|
|
13206
|
+
"required": true,
|
|
13207
|
+
"valueHint": "key"
|
|
11757
13208
|
},
|
|
11758
13209
|
{
|
|
11759
13210
|
"flags": "--model <model>",
|
|
11760
|
-
"description": "Model
|
|
13211
|
+
"description": "Model (default: projects.<key>.gauntlet.roles.<role>.model)",
|
|
11761
13212
|
"required": true,
|
|
11762
13213
|
"valueHint": "model"
|
|
11763
13214
|
},
|
|
11764
13215
|
{
|
|
11765
13216
|
"flags": "--harness <harness>",
|
|
11766
|
-
"description": "Harness
|
|
13217
|
+
"description": "Harness (default: role config, else routed from the model)",
|
|
11767
13218
|
"required": true,
|
|
11768
13219
|
"valueHint": "harness"
|
|
11769
13220
|
},
|
|
11770
13221
|
{
|
|
11771
|
-
"flags": "--
|
|
11772
|
-
"description": "
|
|
11773
|
-
"required":
|
|
11774
|
-
"valueHint":
|
|
13222
|
+
"flags": "--effort <effort>",
|
|
13223
|
+
"description": "low | medium | high",
|
|
13224
|
+
"required": true,
|
|
13225
|
+
"valueHint": "effort"
|
|
11775
13226
|
},
|
|
11776
13227
|
{
|
|
11777
|
-
"flags": "--
|
|
11778
|
-
"description": "
|
|
13228
|
+
"flags": "--title <title>",
|
|
13229
|
+
"description": "Conversation title (default: <run> <key> · <role>)",
|
|
11779
13230
|
"required": true,
|
|
11780
|
-
"valueHint": "
|
|
13231
|
+
"valueHint": "title"
|
|
11781
13232
|
},
|
|
11782
13233
|
{
|
|
11783
|
-
"flags": "--
|
|
11784
|
-
"description": "
|
|
13234
|
+
"flags": "--branch <branch>",
|
|
13235
|
+
"description": "Builder branch (default: <run>/<key>, <run>/<key>-i<n> after)",
|
|
11785
13236
|
"required": true,
|
|
11786
|
-
"valueHint": "
|
|
13237
|
+
"valueHint": "branch"
|
|
11787
13238
|
},
|
|
11788
13239
|
{
|
|
11789
|
-
"flags": "--
|
|
11790
|
-
"description": "
|
|
13240
|
+
"flags": "--from <ref>",
|
|
13241
|
+
"description": "Base ref for a new builder branch",
|
|
11791
13242
|
"required": true,
|
|
11792
|
-
"valueHint": "
|
|
13243
|
+
"valueHint": "ref"
|
|
11793
13244
|
},
|
|
11794
13245
|
{
|
|
11795
|
-
"flags": "--
|
|
11796
|
-
"description": "
|
|
13246
|
+
"flags": "--at <ref>",
|
|
13247
|
+
"description": "Commit a critic or verifier judges (default with --for: the builder's newest done head)",
|
|
13248
|
+
"required": true,
|
|
13249
|
+
"valueHint": "ref"
|
|
13250
|
+
},
|
|
13251
|
+
{
|
|
13252
|
+
"flags": "--reuse",
|
|
13253
|
+
"description": "Continue in the directory of the latest earlier lane with the same run, key and role",
|
|
11797
13254
|
"required": false,
|
|
11798
13255
|
"valueHint": null
|
|
11799
13256
|
},
|
|
11800
13257
|
{
|
|
11801
|
-
"flags": "--
|
|
11802
|
-
"description": "Stop
|
|
11803
|
-
"required":
|
|
11804
|
-
"valueHint":
|
|
13258
|
+
"flags": "--replace",
|
|
13259
|
+
"description": "Stop the live lane with the same run, key and role first",
|
|
13260
|
+
"required": false,
|
|
13261
|
+
"valueHint": null
|
|
11805
13262
|
},
|
|
11806
13263
|
{
|
|
11807
|
-
"flags": "--
|
|
11808
|
-
"description": "
|
|
13264
|
+
"flags": "--force",
|
|
13265
|
+
"description": "Launch even while the host is CPU-saturated",
|
|
13266
|
+
"required": false,
|
|
13267
|
+
"valueHint": null
|
|
13268
|
+
},
|
|
13269
|
+
{
|
|
13270
|
+
"flags": "--no-wait",
|
|
13271
|
+
"description": "Return without waiting for the lane to start",
|
|
13272
|
+
"required": false,
|
|
13273
|
+
"valueHint": null
|
|
13274
|
+
},
|
|
13275
|
+
{
|
|
13276
|
+
"flags": "--json",
|
|
13277
|
+
"description": "Print the launch result as JSON",
|
|
11809
13278
|
"required": false,
|
|
11810
13279
|
"valueHint": null
|
|
11811
13280
|
}
|
|
@@ -11814,84 +13283,60 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11814
13283
|
"category": "CLI"
|
|
11815
13284
|
},
|
|
11816
13285
|
{
|
|
11817
|
-
"id": "pan-
|
|
11818
|
-
"path": ["
|
|
11819
|
-
"display": "/pan
|
|
11820
|
-
"description": "
|
|
11821
|
-
"args": [
|
|
11822
|
-
"name": "worker-id",
|
|
11823
|
-
"required": true,
|
|
11824
|
-
"variadic": false
|
|
11825
|
-
}],
|
|
11826
|
-
"options": [{
|
|
11827
|
-
"flags": "--after <seq>",
|
|
11828
|
-
"description": "Return the next report after this seq (default: the newest report, whenever written)",
|
|
11829
|
-
"required": true,
|
|
11830
|
-
"valueHint": "seq"
|
|
11831
|
-
}, {
|
|
11832
|
-
"flags": "--timeout <seconds>",
|
|
11833
|
-
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11834
|
-
"required": true,
|
|
11835
|
-
"valueHint": "seconds"
|
|
11836
|
-
}],
|
|
11837
|
-
"aliases": [],
|
|
11838
|
-
"category": "CLI"
|
|
11839
|
-
},
|
|
11840
|
-
{
|
|
11841
|
-
"id": "pan-worker-report",
|
|
11842
|
-
"path": ["worker", "report"],
|
|
11843
|
-
"display": "/pan worker report",
|
|
11844
|
-
"description": "Record a worker's report (run by the worker itself)",
|
|
11845
|
-
"args": [{
|
|
11846
|
-
"name": "worker-id",
|
|
11847
|
-
"required": true,
|
|
11848
|
-
"variadic": false
|
|
11849
|
-
}],
|
|
13286
|
+
"id": "pan-lane-list",
|
|
13287
|
+
"path": ["lane", "list"],
|
|
13288
|
+
"display": "/pan lane list",
|
|
13289
|
+
"description": "List lanes with their activity, newest report, git facts and cost",
|
|
13290
|
+
"args": [],
|
|
11850
13291
|
"options": [
|
|
11851
13292
|
{
|
|
11852
|
-
"flags": "--
|
|
11853
|
-
"description": "
|
|
13293
|
+
"flags": "--run <key>",
|
|
13294
|
+
"description": "Only this run's lanes",
|
|
11854
13295
|
"required": true,
|
|
11855
|
-
"valueHint": "
|
|
13296
|
+
"valueHint": "key"
|
|
11856
13297
|
},
|
|
11857
13298
|
{
|
|
11858
|
-
"flags": "--
|
|
11859
|
-
"description": "
|
|
11860
|
-
"required":
|
|
11861
|
-
"valueHint":
|
|
13299
|
+
"flags": "--parent <conv>",
|
|
13300
|
+
"description": "Only lanes launched by this conversation",
|
|
13301
|
+
"required": true,
|
|
13302
|
+
"valueHint": "conv"
|
|
11862
13303
|
},
|
|
11863
13304
|
{
|
|
11864
|
-
"flags": "--
|
|
11865
|
-
"description": "
|
|
11866
|
-
"required":
|
|
11867
|
-
"valueHint":
|
|
13305
|
+
"flags": "--json",
|
|
13306
|
+
"description": "Print JSON",
|
|
13307
|
+
"required": false,
|
|
13308
|
+
"valueHint": null
|
|
11868
13309
|
}
|
|
11869
13310
|
],
|
|
11870
13311
|
"aliases": [],
|
|
11871
13312
|
"category": "CLI"
|
|
11872
13313
|
},
|
|
11873
13314
|
{
|
|
11874
|
-
"id": "pan-
|
|
11875
|
-
"path": ["
|
|
11876
|
-
"display": "/pan
|
|
11877
|
-
"description": "
|
|
11878
|
-
"args": [
|
|
13315
|
+
"id": "pan-lane-show",
|
|
13316
|
+
"path": ["lane", "show"],
|
|
13317
|
+
"display": "/pan lane show",
|
|
13318
|
+
"description": "Print the builder → critic chain of a run and key, then one line per lane",
|
|
13319
|
+
"args": [{
|
|
13320
|
+
"name": "lane",
|
|
13321
|
+
"required": false,
|
|
13322
|
+
"variadic": false
|
|
13323
|
+
}],
|
|
11879
13324
|
"options": [
|
|
11880
13325
|
{
|
|
11881
|
-
"flags": "--
|
|
11882
|
-
"description": "
|
|
13326
|
+
"flags": "--run <key>",
|
|
13327
|
+
"description": "Run key (with --key)",
|
|
11883
13328
|
"required": true,
|
|
11884
|
-
"valueHint": "
|
|
13329
|
+
"valueHint": "key"
|
|
11885
13330
|
},
|
|
11886
13331
|
{
|
|
11887
|
-
"flags": "--
|
|
11888
|
-
"description": "
|
|
13332
|
+
"flags": "--key <key>",
|
|
13333
|
+
"description": "Lane key (with --run)",
|
|
11889
13334
|
"required": true,
|
|
11890
|
-
"valueHint": "
|
|
13335
|
+
"valueHint": "key"
|
|
11891
13336
|
},
|
|
11892
13337
|
{
|
|
11893
13338
|
"flags": "--json",
|
|
11894
|
-
"description": "Print
|
|
13339
|
+
"description": "Print { run, key, steps }",
|
|
11895
13340
|
"required": false,
|
|
11896
13341
|
"valueHint": null
|
|
11897
13342
|
}
|
|
@@ -11900,88 +13345,135 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11900
13345
|
"category": "CLI"
|
|
11901
13346
|
},
|
|
11902
13347
|
{
|
|
11903
|
-
"id": "pan-
|
|
11904
|
-
"path": ["
|
|
11905
|
-
"display": "/pan
|
|
11906
|
-
"description": "
|
|
11907
|
-
"args": [
|
|
13348
|
+
"id": "pan-lane-wait",
|
|
13349
|
+
"path": ["lane", "wait"],
|
|
13350
|
+
"display": "/pan lane wait",
|
|
13351
|
+
"description": "Wait for a lane report (exit 0 done, 4 blocked/failed, 2 no report, 3 timeout, 1 error)",
|
|
13352
|
+
"args": [{
|
|
13353
|
+
"name": "lane",
|
|
13354
|
+
"required": false,
|
|
13355
|
+
"variadic": false
|
|
13356
|
+
}],
|
|
11908
13357
|
"options": [
|
|
11909
13358
|
{
|
|
11910
|
-
"flags": "--
|
|
11911
|
-
"description": "
|
|
13359
|
+
"flags": "--run <key>",
|
|
13360
|
+
"description": "Wait for the next report of any lane in this run",
|
|
11912
13361
|
"required": true,
|
|
11913
|
-
"valueHint": "
|
|
13362
|
+
"valueHint": "key"
|
|
11914
13363
|
},
|
|
11915
13364
|
{
|
|
11916
|
-
"flags": "--
|
|
11917
|
-
"description": "
|
|
13365
|
+
"flags": "--parent <conv>",
|
|
13366
|
+
"description": "Wait for the next report of any lane launched by this conversation",
|
|
11918
13367
|
"required": true,
|
|
11919
|
-
"valueHint": "
|
|
13368
|
+
"valueHint": "conv"
|
|
11920
13369
|
},
|
|
11921
13370
|
{
|
|
11922
|
-
"flags": "--
|
|
11923
|
-
"description": "
|
|
13371
|
+
"flags": "--after <seq-or-cursor>",
|
|
13372
|
+
"description": "Report seq for one lane; cursor <atMs>.<name>.<seq> for a run or parent",
|
|
11924
13373
|
"required": true,
|
|
11925
|
-
"valueHint": "
|
|
13374
|
+
"valueHint": "seq-or-cursor"
|
|
11926
13375
|
},
|
|
11927
13376
|
{
|
|
11928
|
-
"flags": "--
|
|
11929
|
-
"description": "
|
|
13377
|
+
"flags": "--timeout <seconds>",
|
|
13378
|
+
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11930
13379
|
"required": true,
|
|
11931
|
-
"valueHint": "
|
|
11932
|
-
}
|
|
13380
|
+
"valueHint": "seconds"
|
|
13381
|
+
}
|
|
13382
|
+
],
|
|
13383
|
+
"aliases": [],
|
|
13384
|
+
"category": "CLI"
|
|
13385
|
+
},
|
|
13386
|
+
{
|
|
13387
|
+
"id": "pan-lane-report",
|
|
13388
|
+
"path": ["lane", "report"],
|
|
13389
|
+
"display": "/pan lane report",
|
|
13390
|
+
"description": "Record this lane's report (run inside the lane)",
|
|
13391
|
+
"args": [],
|
|
13392
|
+
"options": [
|
|
11933
13393
|
{
|
|
11934
|
-
"flags": "--
|
|
11935
|
-
"description": "
|
|
13394
|
+
"flags": "--file <path>",
|
|
13395
|
+
"description": "Read the Markdown report from a file",
|
|
11936
13396
|
"required": true,
|
|
11937
13397
|
"valueHint": "path"
|
|
11938
13398
|
},
|
|
11939
13399
|
{
|
|
11940
|
-
"flags": "--
|
|
11941
|
-
"description": "
|
|
11942
|
-
"required":
|
|
11943
|
-
"valueHint":
|
|
13400
|
+
"flags": "--stdin",
|
|
13401
|
+
"description": "Read the Markdown report from stdin",
|
|
13402
|
+
"required": false,
|
|
13403
|
+
"valueHint": null
|
|
11944
13404
|
},
|
|
11945
13405
|
{
|
|
11946
|
-
"flags": "--
|
|
11947
|
-
"description": "
|
|
13406
|
+
"flags": "--status <status>",
|
|
13407
|
+
"description": "done | blocked | failed (default: done)",
|
|
11948
13408
|
"required": true,
|
|
11949
|
-
"valueHint": "
|
|
13409
|
+
"valueHint": "status"
|
|
11950
13410
|
},
|
|
11951
13411
|
{
|
|
11952
|
-
"flags": "--
|
|
11953
|
-
"description": "
|
|
11954
|
-
"required":
|
|
11955
|
-
"valueHint":
|
|
13412
|
+
"flags": "--allow-unpushed",
|
|
13413
|
+
"description": "Let a builder report done with commits not on its upstream",
|
|
13414
|
+
"required": false,
|
|
13415
|
+
"valueHint": null
|
|
11956
13416
|
},
|
|
11957
13417
|
{
|
|
11958
|
-
"flags": "--
|
|
11959
|
-
"description": "
|
|
13418
|
+
"flags": "--verdict <value>",
|
|
13419
|
+
"description": "Critic or verifier done report: WOWED | IMPRESSED | NOT_YET | PASS | DEFECTS",
|
|
11960
13420
|
"required": true,
|
|
11961
|
-
"valueHint": "
|
|
13421
|
+
"valueHint": "value"
|
|
11962
13422
|
},
|
|
11963
13423
|
{
|
|
11964
|
-
"flags": "--
|
|
11965
|
-
"description": "
|
|
13424
|
+
"flags": "--defects <n>",
|
|
13425
|
+
"description": "Defect count (default: the verdict file's defects array length)",
|
|
11966
13426
|
"required": true,
|
|
11967
|
-
"valueHint": "
|
|
13427
|
+
"valueHint": "n"
|
|
11968
13428
|
},
|
|
11969
13429
|
{
|
|
11970
|
-
"flags": "--
|
|
11971
|
-
"description": "
|
|
13430
|
+
"flags": "--verdict-file <path>",
|
|
13431
|
+
"description": "The verdict JSON the lane wrote",
|
|
11972
13432
|
"required": true,
|
|
11973
|
-
"valueHint": "
|
|
11974
|
-
},
|
|
11975
|
-
{
|
|
11976
|
-
"flags": "--json",
|
|
11977
|
-
"description": "Print { id, created }",
|
|
11978
|
-
"required": false,
|
|
11979
|
-
"valueHint": null
|
|
13433
|
+
"valueHint": "path"
|
|
11980
13434
|
}
|
|
11981
13435
|
],
|
|
11982
13436
|
"aliases": [],
|
|
11983
13437
|
"category": "CLI"
|
|
11984
13438
|
},
|
|
13439
|
+
{
|
|
13440
|
+
"id": "pan-lane-stop",
|
|
13441
|
+
"path": ["lane", "stop"],
|
|
13442
|
+
"display": "/pan lane stop",
|
|
13443
|
+
"description": "Stop a lane through the conversation stop door",
|
|
13444
|
+
"args": [{
|
|
13445
|
+
"name": "lane",
|
|
13446
|
+
"required": true,
|
|
13447
|
+
"variadic": false
|
|
13448
|
+
}],
|
|
13449
|
+
"options": [],
|
|
13450
|
+
"aliases": [],
|
|
13451
|
+
"category": "CLI"
|
|
13452
|
+
},
|
|
13453
|
+
{
|
|
13454
|
+
"id": "pan-lane-reap",
|
|
13455
|
+
"path": ["lane", "reap"],
|
|
13456
|
+
"display": "/pan lane reap",
|
|
13457
|
+
"description": "Remove a lane's directory and archive its conversation (never kills, never discards work)",
|
|
13458
|
+
"args": [{
|
|
13459
|
+
"name": "lane",
|
|
13460
|
+
"required": true,
|
|
13461
|
+
"variadic": false
|
|
13462
|
+
}],
|
|
13463
|
+
"options": [{
|
|
13464
|
+
"flags": "--park",
|
|
13465
|
+
"description": "Save uncommitted work to a verified patch before removing a dirty worktree",
|
|
13466
|
+
"required": false,
|
|
13467
|
+
"valueHint": null
|
|
13468
|
+
}, {
|
|
13469
|
+
"flags": "--keep",
|
|
13470
|
+
"description": "Keep the conversation listed instead of archiving it",
|
|
13471
|
+
"required": false,
|
|
13472
|
+
"valueHint": null
|
|
13473
|
+
}],
|
|
13474
|
+
"aliases": [],
|
|
13475
|
+
"category": "CLI"
|
|
13476
|
+
},
|
|
11985
13477
|
{
|
|
11986
13478
|
"id": "pan-flywheel",
|
|
11987
13479
|
"path": ["flywheel"],
|
|
@@ -12188,7 +13680,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
12188
13680
|
},
|
|
12189
13681
|
{
|
|
12190
13682
|
"flags": "--agent-harness <harness>",
|
|
12191
|
-
"description": "Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, opencode, muse, or user",
|
|
13683
|
+
"description": "Agent harness: claude-code, pi, ohmypi, codex, acp, kimi-code, opencode, muse, prime-agent, or user",
|
|
12192
13684
|
"required": true,
|
|
12193
13685
|
"valueHint": "harness"
|
|
12194
13686
|
},
|
|
@@ -13118,6 +14610,21 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
13118
14610
|
"aliases": [],
|
|
13119
14611
|
"category": "Core"
|
|
13120
14612
|
},
|
|
14613
|
+
{
|
|
14614
|
+
"id": "pan-doctor-github-quota",
|
|
14615
|
+
"path": ["doctor", "github-quota"],
|
|
14616
|
+
"display": "/pan doctor github-quota",
|
|
14617
|
+
"description": "Show GitHub API quota use per caller, active pauses, and skipped projects",
|
|
14618
|
+
"args": [],
|
|
14619
|
+
"options": [{
|
|
14620
|
+
"flags": "--json",
|
|
14621
|
+
"description": "Print JSON",
|
|
14622
|
+
"required": false,
|
|
14623
|
+
"valueHint": null
|
|
14624
|
+
}],
|
|
14625
|
+
"aliases": [],
|
|
14626
|
+
"category": "Core"
|
|
14627
|
+
},
|
|
13121
14628
|
{
|
|
13122
14629
|
"id": "pan-resources",
|
|
13123
14630
|
"path": ["resources"],
|
|
@@ -13667,6 +15174,11 @@ const DirectoryPause = effect.Schema.Struct({
|
|
|
13667
15174
|
reason: effect.Schema.NullOr(effect.Schema.String),
|
|
13668
15175
|
since: effect.Schema.NullOr(effect.Schema.String)
|
|
13669
15176
|
});
|
|
15177
|
+
/** A provider error (billing, usage limit, ...) detected at the end of a transcript (PAN-4222). */
|
|
15178
|
+
const DirectoryProviderError = effect.Schema.Struct({
|
|
15179
|
+
message: effect.Schema.String,
|
|
15180
|
+
at: effect.Schema.String
|
|
15181
|
+
});
|
|
13670
15182
|
const DirectoryEntry = effect.Schema.Struct({
|
|
13671
15183
|
id: effect.Schema.String,
|
|
13672
15184
|
kind: DirectoryEntryKind,
|
|
@@ -13691,7 +15203,29 @@ const DirectoryEntry = effect.Schema.Struct({
|
|
|
13691
15203
|
source: DirectoryEntrySource,
|
|
13692
15204
|
transcript: effect.Schema.NullOr(DirectoryTranscriptRef),
|
|
13693
15205
|
/** The pause gate from state.json, native agents only (PAN-4197). */
|
|
13694
|
-
pause: effect.Schema.optional(DirectoryPause)
|
|
15206
|
+
pause: effect.Schema.optional(DirectoryPause),
|
|
15207
|
+
/** PAN-4223: gauntlet lane facts; conversation entries that are lanes only. */
|
|
15208
|
+
lane: effect.Schema.optional(effect.Schema.Struct({
|
|
15209
|
+
run: effect.Schema.String,
|
|
15210
|
+
key: effect.Schema.String,
|
|
15211
|
+
role: effect.Schema.String,
|
|
15212
|
+
iteration: effect.Schema.Number,
|
|
15213
|
+
reportStatus: effect.Schema.NullOr(effect.Schema.Literals([
|
|
15214
|
+
"done",
|
|
15215
|
+
"blocked",
|
|
15216
|
+
"failed"
|
|
15217
|
+
])),
|
|
15218
|
+
/** Critic/verifier: its verdict (or `pending`); builder: the newest critic verdict. */
|
|
15219
|
+
verdict: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.String)),
|
|
15220
|
+
/** Critic/verifier: the judged builder's legacy conversation id. */
|
|
15221
|
+
criticOf: effect.Schema.optional(effect.Schema.Number)
|
|
15222
|
+
})),
|
|
15223
|
+
/** PAN-4223: the predecessor's legacy conversation id; successors only (links to /conv/<id>). */
|
|
15224
|
+
continuesFrom: effect.Schema.optional(effect.Schema.Number),
|
|
15225
|
+
/** The id runtime events (agentRuntimeById) are keyed under, when it differs from `id` (PAN-4222). */
|
|
15226
|
+
runtimeId: effect.Schema.optional(effect.Schema.String),
|
|
15227
|
+
/** A provider error detected at the transcript's end, conversations only (PAN-4222). */
|
|
15228
|
+
providerError: effect.Schema.optional(DirectoryProviderError)
|
|
13695
15229
|
});
|
|
13696
15230
|
/**
|
|
13697
15231
|
* `window`: live entries plus finished ones active inside `windowHours`.
|
|
@@ -13788,6 +15322,73 @@ function isConfiguredPullRequestRepo(ref, repos) {
|
|
|
13788
15322
|
return repos.some((repo) => repo.host === ref.host && repo.repository === ref.repository);
|
|
13789
15323
|
}
|
|
13790
15324
|
//#endregion
|
|
15325
|
+
//#region src/conversation-rows.ts
|
|
15326
|
+
/**
|
|
15327
|
+
* Conversation-row classifiers shared by the dashboard server (`src/lib`) and
|
|
15328
|
+
* the frontend (PAN-4301). One rule per question: which rows are singleton
|
|
15329
|
+
* runners, and what a lane conversation is doing right now (D10).
|
|
15330
|
+
*/
|
|
15331
|
+
/** Singleton runners spawn under their bare id (see src/lib/agents/identity.ts normalizeAgentId). */
|
|
15332
|
+
const SINGLETON_AGENT_IDS = new Set(["flywheel-orchestrator", "sequencer-runner"]);
|
|
15333
|
+
function isSingletonConversation(row) {
|
|
15334
|
+
return SINGLETON_AGENT_IDS.has(row.name.toLowerCase()) || row.issueId != null && SINGLETON_AGENT_IDS.has(row.issueId.toLowerCase());
|
|
15335
|
+
}
|
|
15336
|
+
/** D10 `starting`: not alive, not ended, created less than this long ago. */
|
|
15337
|
+
const LANE_STARTING_GRACE_MS = 3 * 6e4;
|
|
15338
|
+
/** D10, first match wins. */
|
|
15339
|
+
function laneActivityOf(row, now) {
|
|
15340
|
+
if (row.archivedAt != null) return "stopped";
|
|
15341
|
+
if (row.spawnError) return "failed-to-start";
|
|
15342
|
+
if (row.sessionAlive) {
|
|
15343
|
+
if ((row.pendingInputCount ?? 0) > 0) return "needs-you";
|
|
15344
|
+
if (row.isWorking) return "working";
|
|
15345
|
+
return "idle";
|
|
15346
|
+
}
|
|
15347
|
+
if (row.status === "active" && now - Date.parse(row.createdAt) < 18e4) return "starting";
|
|
15348
|
+
return "stopped";
|
|
15349
|
+
}
|
|
15350
|
+
//#endregion
|
|
15351
|
+
//#region src/environment.ts
|
|
15352
|
+
/** Wire protocol version a client and server must agree on. */
|
|
15353
|
+
const ENVIRONMENT_PROTOCOL_VERSION = 1;
|
|
15354
|
+
const EnvironmentId = effect.Schema.String.pipe(effect.Schema.brand("EnvironmentId"));
|
|
15355
|
+
const EnvironmentCapabilities = effect.Schema.Struct({
|
|
15356
|
+
/** `POST /api/pairing/*` is available. */
|
|
15357
|
+
pairing: effect.Schema.Boolean,
|
|
15358
|
+
/** `GET/DELETE /api/devices` is available. */
|
|
15359
|
+
deviceSessions: effect.Schema.Boolean,
|
|
15360
|
+
/** `/ws/*` upgrades require a credential (PAN-1166). */
|
|
15361
|
+
terminalAuth: effect.Schema.Boolean
|
|
15362
|
+
});
|
|
15363
|
+
const EnvironmentDescriptor = effect.Schema.Struct({
|
|
15364
|
+
descriptorVersion: effect.Schema.Literal(1),
|
|
15365
|
+
environmentId: EnvironmentId,
|
|
15366
|
+
label: effect.Schema.String,
|
|
15367
|
+
platform: effect.Schema.Struct({
|
|
15368
|
+
os: effect.Schema.String,
|
|
15369
|
+
arch: effect.Schema.String
|
|
15370
|
+
}),
|
|
15371
|
+
/** Exact package version of the serving Overdeck. */
|
|
15372
|
+
serverVersion: effect.Schema.String,
|
|
15373
|
+
/** The server's `ENVIRONMENT_PROTOCOL_VERSION`. */
|
|
15374
|
+
protocolVersion: effect.Schema.Number,
|
|
15375
|
+
capabilities: EnvironmentCapabilities
|
|
15376
|
+
});
|
|
15377
|
+
/** A server-local id qualified by the environment that owns it. */
|
|
15378
|
+
const ScopedRef = (localId) => effect.Schema.Struct({
|
|
15379
|
+
environmentId: EnvironmentId,
|
|
15380
|
+
localId
|
|
15381
|
+
});
|
|
15382
|
+
const ScopedProjectRef = ScopedRef(effect.Schema.String);
|
|
15383
|
+
const ScopedIssueRef = ScopedRef(effect.Schema.String);
|
|
15384
|
+
const ScopedAgentRef = ScopedRef(effect.Schema.String);
|
|
15385
|
+
const ScopedConversationRef = ScopedRef(effect.Schema.String);
|
|
15386
|
+
const ScopedTerminalRef = ScopedRef(effect.Schema.String);
|
|
15387
|
+
/** True only when the server speaks exactly the client's protocol version. */
|
|
15388
|
+
function isProtocolCompatible(descriptor, clientProtocolVersion) {
|
|
15389
|
+
return descriptor.protocolVersion === clientProtocolVersion;
|
|
15390
|
+
}
|
|
15391
|
+
//#endregion
|
|
13791
15392
|
exports.ACP_BEHAVIOR = ACP_BEHAVIOR;
|
|
13792
15393
|
exports.AGENT_ROLES = AGENT_ROLES;
|
|
13793
15394
|
exports.Activity = Activity;
|
|
@@ -13899,6 +15500,7 @@ exports.ConversationPullRequestsChangedEvent = ConversationPullRequestsChangedEv
|
|
|
13899
15500
|
exports.ConversationResponse = ConversationResponse;
|
|
13900
15501
|
exports.ConversationTitleChangedEvent = ConversationTitleChangedEvent;
|
|
13901
15502
|
exports.CostEventRecordedEvent = CostEventRecordedEvent;
|
|
15503
|
+
exports.DEFAULT_EFFORT = DEFAULT_EFFORT;
|
|
13902
15504
|
exports.DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE = DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE;
|
|
13903
15505
|
exports.DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT = DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT;
|
|
13904
15506
|
exports.DashboardLifecycleCompletedEvent = DashboardLifecycleCompletedEvent;
|
|
@@ -13910,6 +15512,7 @@ exports.DeployStalenessSnapshot = DeployStalenessSnapshot;
|
|
|
13910
15512
|
exports.DerivedBranchState = DerivedBranchState;
|
|
13911
15513
|
exports.DerivedIssueState = DerivedIssueState;
|
|
13912
15514
|
exports.DerivedPrState = DerivedPrState;
|
|
15515
|
+
exports.DerivedWorkStart = DerivedWorkStart;
|
|
13913
15516
|
exports.DirectoryEntry = DirectoryEntry;
|
|
13914
15517
|
exports.DirectoryEntryKind = DirectoryEntryKind;
|
|
13915
15518
|
exports.DirectoryEntryLocation = DirectoryEntryLocation;
|
|
@@ -13917,12 +15520,16 @@ exports.DirectoryEntrySource = DirectoryEntrySource;
|
|
|
13917
15520
|
exports.DirectoryEntryState = DirectoryEntryState;
|
|
13918
15521
|
exports.DirectoryPause = DirectoryPause;
|
|
13919
15522
|
exports.DirectoryPauseBy = DirectoryPauseBy;
|
|
15523
|
+
exports.DirectoryProviderError = DirectoryProviderError;
|
|
13920
15524
|
exports.DirectoryScope = DirectoryScope;
|
|
13921
15525
|
exports.DirectoryTranscriptRef = DirectoryTranscriptRef;
|
|
13922
15526
|
exports.DiscoveredSessionSnapshot = DiscoveredSessionSnapshot;
|
|
13923
15527
|
exports.DomainEvent = DomainEvent;
|
|
13924
15528
|
exports.EDITORS = EDITORS;
|
|
15529
|
+
exports.EFFORT_LEVELS = EFFORT_LEVELS;
|
|
15530
|
+
exports.ENVIRONMENT_PROTOCOL_VERSION = ENVIRONMENT_PROTOCOL_VERSION;
|
|
13925
15531
|
exports.EditorIdSchema = EditorIdSchema;
|
|
15532
|
+
exports.EffortLevelSchema = EffortLevelSchema;
|
|
13926
15533
|
exports.EmbedProgressEvent = EmbedProgressEvent;
|
|
13927
15534
|
exports.EmbedProgressSnapshot = EmbedProgressSnapshot;
|
|
13928
15535
|
exports.EmbedSessionsRpc = EmbedSessionsRpc;
|
|
@@ -13931,6 +15538,9 @@ exports.EnrichProgressEvent = EnrichProgressEvent;
|
|
|
13931
15538
|
exports.EnrichProgressSnapshot = EnrichProgressSnapshot;
|
|
13932
15539
|
exports.EnrichSessionsRpc = EnrichSessionsRpc;
|
|
13933
15540
|
exports.EnrichStatsSnapshot = EnrichStatsSnapshot;
|
|
15541
|
+
exports.EnvironmentCapabilities = EnvironmentCapabilities;
|
|
15542
|
+
exports.EnvironmentDescriptor = EnvironmentDescriptor;
|
|
15543
|
+
exports.EnvironmentId = EnvironmentId;
|
|
13934
15544
|
exports.ExtractionProviderConfig = ExtractionProviderConfig;
|
|
13935
15545
|
exports.ExtractionProviderTarget = ExtractionProviderTarget;
|
|
13936
15546
|
exports.FeatureNode = FeatureNode;
|
|
@@ -13938,6 +15548,7 @@ exports.FeatureRegistryEntry = FeatureRegistryEntry;
|
|
|
13938
15548
|
exports.FeatureRegistryStatus = FeatureRegistryStatus;
|
|
13939
15549
|
exports.FlywheelAgent = FlywheelAgent;
|
|
13940
15550
|
exports.FlywheelAgentStatus = FlywheelAgentStatus;
|
|
15551
|
+
exports.FlywheelAgentSummary = FlywheelAgentSummary;
|
|
13941
15552
|
exports.FlywheelBugRateCriterion = FlywheelBugRateCriterion;
|
|
13942
15553
|
exports.FlywheelConversationSummary = FlywheelConversationSummary;
|
|
13943
15554
|
exports.FlywheelDerivedStatus = FlywheelDerivedStatus;
|
|
@@ -13974,6 +15585,9 @@ exports.FlywheelSuggestion = FlywheelSuggestion;
|
|
|
13974
15585
|
exports.FlywheelSuggestionAction = FlywheelSuggestionAction;
|
|
13975
15586
|
exports.FlywheelSuggestionPriority = FlywheelSuggestionPriority;
|
|
13976
15587
|
exports.FlywheelSystemStatus = FlywheelSystemStatus;
|
|
15588
|
+
exports.GITHUB_QUOTA_BUCKETS = GITHUB_QUOTA_BUCKETS;
|
|
15589
|
+
exports.GITHUB_QUOTA_CALLERS = GITHUB_QUOTA_CALLERS;
|
|
15590
|
+
exports.GITHUB_QUOTA_POOLS = GITHUB_QUOTA_POOLS;
|
|
13977
15591
|
exports.GetAvailableEditorsRpc = GetAvailableEditorsRpc;
|
|
13978
15592
|
exports.GetConversationCostByWorkspaceRpc = GetConversationCostByWorkspaceRpc;
|
|
13979
15593
|
exports.GetConversationCostRpc = GetConversationCostRpc;
|
|
@@ -13981,6 +15595,16 @@ exports.GetConversationStatsRpc = GetConversationStatsRpc;
|
|
|
13981
15595
|
exports.GetDiscoveredSessionRpc = GetDiscoveredSessionRpc;
|
|
13982
15596
|
exports.GetSessionsFeedFacetsRpc = GetSessionsFeedFacetsRpc;
|
|
13983
15597
|
exports.GetSnapshotRpc = GetSnapshotRpc;
|
|
15598
|
+
exports.GitHubQuotaBucket = GitHubQuotaBucket;
|
|
15599
|
+
exports.GitHubQuotaCaller = GitHubQuotaCaller;
|
|
15600
|
+
exports.GitHubQuotaCallerUsage = GitHubQuotaCallerUsage;
|
|
15601
|
+
exports.GitHubQuotaChangedEvent = GitHubQuotaChangedEvent;
|
|
15602
|
+
exports.GitHubQuotaPause = GitHubQuotaPause;
|
|
15603
|
+
exports.GitHubQuotaPool = GitHubQuotaPool;
|
|
15604
|
+
exports.GitHubQuotaSample = GitHubQuotaSample;
|
|
15605
|
+
exports.GitHubQuotaSnapshot = GitHubQuotaSnapshot;
|
|
15606
|
+
exports.GitHubQuotaUsage = GitHubQuotaUsage;
|
|
15607
|
+
exports.GitHubRateLimitKind = GitHubRateLimitKind;
|
|
13984
15608
|
exports.GlobalContextLayerRecord = GlobalContextLayerRecord;
|
|
13985
15609
|
exports.GlobalContextLayerTarget = GlobalContextLayerTarget;
|
|
13986
15610
|
exports.HOOK_INVENTORY = HOOK_INVENTORY;
|
|
@@ -14006,6 +15630,7 @@ exports.IssuesSnapshotEvent = IssuesSnapshotEvent;
|
|
|
14006
15630
|
exports.IssuesUpdatedEvent = IssuesUpdatedEvent;
|
|
14007
15631
|
exports.KIMI_CODE_BEHAVIOR = KIMI_CODE_BEHAVIOR;
|
|
14008
15632
|
exports.KNOWN_HARNESSES = KNOWN_HARNESSES;
|
|
15633
|
+
exports.LANE_STARTING_GRACE_MS = LANE_STARTING_GRACE_MS;
|
|
14009
15634
|
exports.LegacySystemHealthSummary = LegacySystemHealthSummary;
|
|
14010
15635
|
exports.LegacyWebhookRelaySummary = LegacyWebhookRelaySummary;
|
|
14011
15636
|
exports.LinearMcpAuthCallbackRelayedEvent = LinearMcpAuthCallbackRelayedEvent;
|
|
@@ -14034,6 +15659,7 @@ exports.MemoryTokenUsage = MemoryTokenUsage;
|
|
|
14034
15659
|
exports.MergeReadyEvent = MergeReadyEvent;
|
|
14035
15660
|
exports.ModelOrigin = ModelOrigin;
|
|
14036
15661
|
exports.ModelOriginEntry = ModelOriginEntry;
|
|
15662
|
+
exports.NON_ESSENTIAL_GITHUB_CALLERS = NON_ESSENTIAL_GITHUB_CALLERS;
|
|
14037
15663
|
exports.OHMYPI_BEHAVIOR = OHMYPI_BEHAVIOR;
|
|
14038
15664
|
exports.OPENCODE_BEHAVIOR = OPENCODE_BEHAVIOR;
|
|
14039
15665
|
exports.OVERDECK_AGENT_PROTOCOL_VERSION = OVERDECK_AGENT_PROTOCOL_VERSION;
|
|
@@ -14048,6 +15674,7 @@ exports.OrderBookPosture = OrderBookPosture;
|
|
|
14048
15674
|
exports.OrderBookSettings = OrderBookSettings;
|
|
14049
15675
|
exports.OrderBookStatus = OrderBookStatus;
|
|
14050
15676
|
exports.PIPELINE_MEMBERSHIP_LOADING_CODE = PIPELINE_MEMBERSHIP_LOADING_CODE;
|
|
15677
|
+
exports.PRIME_AGENT_BEHAVIOR = PRIME_AGENT_BEHAVIOR;
|
|
14051
15678
|
exports.PanRpcError = PanRpcError;
|
|
14052
15679
|
exports.PanRpcGroup = PanRpcGroup;
|
|
14053
15680
|
exports.PendingTurn = PendingTurn;
|
|
@@ -14117,12 +15744,19 @@ exports.ReviewVerdictRestoreBlockedEvent = ReviewVerdictRestoreBlockedEvent;
|
|
|
14117
15744
|
exports.ReviewerRoundMetadata = ReviewerRoundMetadata;
|
|
14118
15745
|
exports.ReviewerRoundSummary = ReviewerRoundSummary;
|
|
14119
15746
|
exports.Role = Role;
|
|
15747
|
+
exports.SINGLETON_AGENT_IDS = SINGLETON_AGENT_IDS;
|
|
14120
15748
|
exports.ScanCompleteEvent = ScanCompleteEvent;
|
|
14121
15749
|
exports.ScanConversationsRpc = ScanConversationsRpc;
|
|
14122
15750
|
exports.ScanProgressEvent = ScanProgressEvent;
|
|
14123
15751
|
exports.ScanProgressSnapshot = ScanProgressSnapshot;
|
|
14124
15752
|
exports.ScanResult = ScanResult;
|
|
14125
15753
|
exports.ScanStartedEvent = ScanStartedEvent;
|
|
15754
|
+
exports.ScopedAgentRef = ScopedAgentRef;
|
|
15755
|
+
exports.ScopedConversationRef = ScopedConversationRef;
|
|
15756
|
+
exports.ScopedIssueRef = ScopedIssueRef;
|
|
15757
|
+
exports.ScopedProjectRef = ScopedProjectRef;
|
|
15758
|
+
exports.ScopedRef = ScopedRef;
|
|
15759
|
+
exports.ScopedTerminalRef = ScopedTerminalRef;
|
|
14126
15760
|
exports.SearchConversationsRpc = SearchConversationsRpc;
|
|
14127
15761
|
exports.SendTerminalInputRpc = SendTerminalInputRpc;
|
|
14128
15762
|
exports.SequenceNumber = SequenceNumber;
|
|
@@ -14143,6 +15777,7 @@ exports.SpecialistLifecycle = SpecialistLifecycle;
|
|
|
14143
15777
|
exports.SpecialistStartedEvent = SpecialistStartedEvent;
|
|
14144
15778
|
exports.StartAgentRpc = StartAgentRpc;
|
|
14145
15779
|
exports.StartPlanningRpc = StartPlanningRpc;
|
|
15780
|
+
exports.SubagentHumanInput = SubagentHumanInput;
|
|
14146
15781
|
exports.SubagentSummary = SubagentSummary;
|
|
14147
15782
|
exports.SubscribeAgentOutputRpc = SubscribeAgentOutputRpc;
|
|
14148
15783
|
exports.SubscribeConversationMessagesRpc = SubscribeConversationMessagesRpc;
|
|
@@ -14174,6 +15809,7 @@ exports.TickMarker = TickMarker;
|
|
|
14174
15809
|
exports.TickMarkerPhase = TickMarkerPhase;
|
|
14175
15810
|
exports.TurnDiffFileChange = TurnDiffFileChange;
|
|
14176
15811
|
exports.TurnDiffSummary = TurnDiffSummary;
|
|
15812
|
+
exports.TurnEndAssessment = TurnEndAssessment;
|
|
14177
15813
|
exports.WIRED_HOOK_INVENTORY = WIRED_HOOK_INVENTORY;
|
|
14178
15814
|
exports.WIRED_HOOK_NAMES = WIRED_HOOK_NAMES;
|
|
14179
15815
|
exports.WS_METHODS = WS_METHODS;
|
|
@@ -14195,8 +15831,11 @@ exports.WriteFileAtPathRpc = WriteFileAtPathRpc;
|
|
|
14195
15831
|
exports.applyEvent = applyEvent;
|
|
14196
15832
|
exports.applyEvents = applyEvents;
|
|
14197
15833
|
exports.applyIssueDelta = applyIssueDelta;
|
|
15834
|
+
exports.bucketQuotaPoints = bucketQuotaPoints;
|
|
15835
|
+
exports.bucketQuotaRemaining = bucketQuotaRemaining;
|
|
14198
15836
|
exports.canonicalPullRequestUrl = canonicalPullRequestUrl;
|
|
14199
15837
|
exports.companionTerminalKindFor = companionTerminalKindFor;
|
|
15838
|
+
exports.compareEffort = compareEffort;
|
|
14200
15839
|
exports.compareIssueIds = compareIssueIds;
|
|
14201
15840
|
exports.createIssueDelta = createIssueDelta;
|
|
14202
15841
|
exports.decodeFlywheelDerivedStatus = decodeFlywheelDerivedStatus;
|
|
@@ -14208,16 +15847,22 @@ exports.getHarnessBehavior = getHarnessBehavior;
|
|
|
14208
15847
|
exports.getMaxMemoryObservationsPerIssue = getMaxMemoryObservationsPerIssue;
|
|
14209
15848
|
exports.getMaxTurnDiffSummariesPerAgent = getMaxTurnDiffSummariesPerAgent;
|
|
14210
15849
|
exports.getRuntimeBehavior = getRuntimeBehavior;
|
|
15850
|
+
exports.indexPanesByAgentKey = indexPanesByAgentKey;
|
|
14211
15851
|
exports.isAgentRole = isAgentRole;
|
|
14212
15852
|
exports.isAgentSessionName = isAgentSessionName;
|
|
14213
15853
|
exports.isChannelReplyKind = isChannelReplyKind;
|
|
14214
15854
|
exports.isConfiguredPullRequestRepo = isConfiguredPullRequestRepo;
|
|
15855
|
+
exports.isEffortLevel = isEffortLevel;
|
|
14215
15856
|
exports.isIssueAttention = isIssueAttention;
|
|
14216
15857
|
exports.isIssueState = isIssueState;
|
|
15858
|
+
exports.isProtocolCompatible = isProtocolCompatible;
|
|
15859
|
+
exports.isSingletonConversation = isSingletonConversation;
|
|
14217
15860
|
exports.isTerminalBackendName = isTerminalBackendName;
|
|
14218
15861
|
exports.isTerminalTurnDiffSummaryStatus = isTerminalTurnDiffSummaryStatus;
|
|
15862
|
+
exports.laneActivityOf = laneActivityOf;
|
|
14219
15863
|
exports.normalizeChannelReplyPayload = normalizeChannelReplyPayload;
|
|
14220
15864
|
exports.omitTurnDiffSummariesForAgent = omitTurnDiffSummariesForAgent;
|
|
15865
|
+
exports.paneAgentKey = paneAgentKey;
|
|
14221
15866
|
exports.parsePullRequestRef = parsePullRequestRef;
|
|
14222
15867
|
exports.projectLegacySystemHealthSummary = projectLegacySystemHealthSummary;
|
|
14223
15868
|
exports.repoFromRemoteUrl = repoFromRemoteUrl;
|