@overdeck/contracts 0.60.0 → 0.61.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 +602 -26
- package/dist/index.d.ts +544 -497
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +576 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -30,6 +30,8 @@ effect_unstable_rpc_RpcGroup = __toESM(effect_unstable_rpc_RpcGroup, 1);
|
|
|
30
30
|
const BackendPane = effect.Schema.Struct({
|
|
31
31
|
/** Stable pane identity: the backend-native pane handle. */
|
|
32
32
|
id: effect.Schema.String,
|
|
33
|
+
/** Overdeck agent id: Herdr `agentId` token or live agent name; tmux session name (PAN-3920). */
|
|
34
|
+
agentId: effect.Schema.optional(effect.Schema.String),
|
|
33
35
|
/** Issue the pane belongs to; absent for operator conversations. */
|
|
34
36
|
issue: effect.Schema.optional(effect.Schema.String),
|
|
35
37
|
role: effect.Schema.Literals([
|
|
@@ -191,7 +193,8 @@ const Role = effect.Schema.Literals([
|
|
|
191
193
|
"flywheel",
|
|
192
194
|
"strike",
|
|
193
195
|
"sequencer",
|
|
194
|
-
"knowledge"
|
|
196
|
+
"knowledge",
|
|
197
|
+
"worker"
|
|
195
198
|
]);
|
|
196
199
|
const AgentResolution = effect.Schema.Literals([
|
|
197
200
|
"working",
|
|
@@ -5091,34 +5094,142 @@ const FlywheelStatsTrend = effect.Schema.Literals([
|
|
|
5091
5094
|
"down",
|
|
5092
5095
|
"flat"
|
|
5093
5096
|
]);
|
|
5094
|
-
const
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5097
|
+
const FlywheelSubstrateSeverity = effect.Schema.Literals([
|
|
5098
|
+
"P0",
|
|
5099
|
+
"P1",
|
|
5100
|
+
"P2",
|
|
5101
|
+
"unknown"
|
|
5102
|
+
]);
|
|
5103
|
+
const FlywheelStatsWindow = effect.Schema.Struct({
|
|
5104
|
+
days: effect.Schema.Number,
|
|
5105
|
+
since: effect.Schema.String,
|
|
5106
|
+
until: effect.Schema.String
|
|
5107
|
+
});
|
|
5108
|
+
/** c1: substrate bugs filed per merged PR in the window. */
|
|
5109
|
+
const FlywheelBugRateCriterion = effect.Schema.Struct({
|
|
5110
|
+
/** `null` when no PR merged in the window (the rate is undefined). */
|
|
5111
|
+
value: effect.Schema.NullOr(effect.Schema.Number),
|
|
5112
|
+
count: effect.Schema.Number,
|
|
5113
|
+
denominator: effect.Schema.Number,
|
|
5114
|
+
status: FlywheelStatsCriterionStatus,
|
|
5115
|
+
trend: FlywheelStatsTrend,
|
|
5116
|
+
dataSufficient: effect.Schema.Boolean
|
|
5117
|
+
});
|
|
5118
|
+
/** c2: P0 substrate bugs filed in the window. */
|
|
5119
|
+
const FlywheelP0Criterion = effect.Schema.Struct({
|
|
5120
|
+
value: effect.Schema.Number,
|
|
5100
5121
|
status: FlywheelStatsCriterionStatus,
|
|
5101
|
-
trend:
|
|
5102
|
-
sampleSize: effect.Schema.Number,
|
|
5122
|
+
trend: FlywheelStatsTrend,
|
|
5103
5123
|
dataSufficient: effect.Schema.Boolean
|
|
5104
5124
|
});
|
|
5105
|
-
const
|
|
5106
|
-
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
c6_timeConsistency: FlywheelStatsCriterion,
|
|
5112
|
-
c7_flake: FlywheelStatsCriterion
|
|
5125
|
+
const FlywheelSubstrateBugRow = effect.Schema.Struct({
|
|
5126
|
+
number: effect.Schema.Number,
|
|
5127
|
+
title: effect.Schema.String,
|
|
5128
|
+
createdAt: effect.Schema.String,
|
|
5129
|
+
closedAt: effect.Schema.NullOr(effect.Schema.String),
|
|
5130
|
+
severity: FlywheelSubstrateSeverity
|
|
5113
5131
|
});
|
|
5114
5132
|
const FlywheelStats = effect.Schema.Struct({
|
|
5115
|
-
window:
|
|
5133
|
+
window: FlywheelStatsWindow,
|
|
5116
5134
|
generatedAt: effect.Schema.String,
|
|
5117
|
-
criteria:
|
|
5135
|
+
criteria: effect.Schema.Struct({
|
|
5136
|
+
c1_bugRate: FlywheelBugRateCriterion,
|
|
5137
|
+
c2_p0Bugs: FlywheelP0Criterion
|
|
5138
|
+
}),
|
|
5139
|
+
bugs: effect.Schema.Array(FlywheelSubstrateBugRow)
|
|
5118
5140
|
});
|
|
5119
5141
|
const decodeFlywheelStats = effect.Schema.decodeUnknownSync(FlywheelStats);
|
|
5120
5142
|
const encodeFlywheelStats = effect.Schema.encodeSync(FlywheelStats);
|
|
5121
5143
|
//#endregion
|
|
5144
|
+
//#region src/flywheel-derived.ts
|
|
5145
|
+
/** The loop's phases, as the skill reports them in its tick marker. */
|
|
5146
|
+
const TickMarkerPhase = effect.Schema.Literals([
|
|
5147
|
+
"orient",
|
|
5148
|
+
"pick",
|
|
5149
|
+
"launch",
|
|
5150
|
+
"watch",
|
|
5151
|
+
"park",
|
|
5152
|
+
"idle",
|
|
5153
|
+
"stopping"
|
|
5154
|
+
]);
|
|
5155
|
+
/**
|
|
5156
|
+
* One parsed tick marker line:
|
|
5157
|
+
* `flywheel-tick: tick=<n> pick=<ID|none> phase=<phase> in-flight=<ID,…|none> needs-you=<text|none>`.
|
|
5158
|
+
*/
|
|
5159
|
+
const TickMarker = effect.Schema.Struct({
|
|
5160
|
+
tick: effect.Schema.Number,
|
|
5161
|
+
pick: effect.Schema.NullOr(effect.Schema.String),
|
|
5162
|
+
phase: TickMarkerPhase,
|
|
5163
|
+
inFlight: effect.Schema.Array(effect.Schema.String),
|
|
5164
|
+
needsYou: effect.Schema.NullOr(effect.Schema.String)
|
|
5165
|
+
});
|
|
5166
|
+
/** `running` = row + live session; `paused` = row, no live session; `idle` = no row. */
|
|
5167
|
+
const FlywheelRunState = effect.Schema.Literals([
|
|
5168
|
+
"running",
|
|
5169
|
+
"paused",
|
|
5170
|
+
"idle"
|
|
5171
|
+
]);
|
|
5172
|
+
/** Age of the last tick: ≤ 60 s live, ≤ 20 min breathing, older stalled. */
|
|
5173
|
+
const FlywheelFreshness = effect.Schema.Literals([
|
|
5174
|
+
"live",
|
|
5175
|
+
"breathing",
|
|
5176
|
+
"stalled"
|
|
5177
|
+
]);
|
|
5178
|
+
const FlywheelConversationSummary = effect.Schema.Struct({
|
|
5179
|
+
name: effect.Schema.String,
|
|
5180
|
+
id: effect.Schema.Number,
|
|
5181
|
+
title: effect.Schema.NullOr(effect.Schema.String),
|
|
5182
|
+
model: effect.Schema.NullOr(effect.Schema.String),
|
|
5183
|
+
harness: effect.Schema.NullOr(effect.Schema.String),
|
|
5184
|
+
cwd: effect.Schema.String,
|
|
5185
|
+
sessionAlive: effect.Schema.Boolean
|
|
5186
|
+
});
|
|
5187
|
+
const FlywheelLastTick = effect.Schema.Struct({
|
|
5188
|
+
tick: effect.Schema.Number,
|
|
5189
|
+
pick: effect.Schema.NullOr(effect.Schema.String),
|
|
5190
|
+
phase: TickMarkerPhase,
|
|
5191
|
+
inFlight: effect.Schema.Array(effect.Schema.String),
|
|
5192
|
+
needsYou: effect.Schema.NullOr(effect.Schema.String),
|
|
5193
|
+
/** The assistant message's `createdAt`. */
|
|
5194
|
+
at: effect.Schema.String
|
|
5195
|
+
});
|
|
5196
|
+
const FlywheelPolicies = effect.Schema.Struct({
|
|
5197
|
+
auto_pickup_backlog: effect.Schema.Boolean,
|
|
5198
|
+
require_uat_before_merge: effect.Schema.Boolean,
|
|
5199
|
+
merge_train_enabled: effect.Schema.Boolean
|
|
5200
|
+
});
|
|
5201
|
+
const FlywheelJournalSummary = effect.Schema.Struct({
|
|
5202
|
+
at: effect.Schema.String,
|
|
5203
|
+
type: effect.Schema.String,
|
|
5204
|
+
source: effect.Schema.optional(effect.Schema.String)
|
|
5205
|
+
});
|
|
5206
|
+
const FlywheelInFlightRow = effect.Schema.Struct({
|
|
5207
|
+
issueId: effect.Schema.String,
|
|
5208
|
+
state: IssueState,
|
|
5209
|
+
attention: effect.Schema.optional(IssueAttention),
|
|
5210
|
+
pr: effect.Schema.optional(DerivedPrState),
|
|
5211
|
+
lastJournal: effect.Schema.NullOr(FlywheelJournalSummary)
|
|
5212
|
+
});
|
|
5213
|
+
const FlywheelOrderBookSummary = effect.Schema.Struct({
|
|
5214
|
+
id: effect.Schema.String,
|
|
5215
|
+
name: effect.Schema.String,
|
|
5216
|
+
status: effect.Schema.String,
|
|
5217
|
+
landed: effect.Schema.Number,
|
|
5218
|
+
total: effect.Schema.Number
|
|
5219
|
+
});
|
|
5220
|
+
const FlywheelDerivedStatus = effect.Schema.Struct({
|
|
5221
|
+
run: FlywheelRunState,
|
|
5222
|
+
conversation: effect.Schema.NullOr(FlywheelConversationSummary),
|
|
5223
|
+
lastTick: effect.Schema.NullOr(FlywheelLastTick),
|
|
5224
|
+
freshness: effect.Schema.NullOr(FlywheelFreshness),
|
|
5225
|
+
policies: FlywheelPolicies,
|
|
5226
|
+
inFlight: effect.Schema.Array(FlywheelInFlightRow),
|
|
5227
|
+
orderBook: effect.Schema.NullOr(FlywheelOrderBookSummary),
|
|
5228
|
+
projectRoot: effect.Schema.String,
|
|
5229
|
+
generatedAt: effect.Schema.String
|
|
5230
|
+
});
|
|
5231
|
+
const decodeFlywheelDerivedStatus = effect.Schema.decodeUnknownSync(FlywheelDerivedStatus);
|
|
5232
|
+
//#endregion
|
|
5122
5233
|
//#region src/orders.ts
|
|
5123
5234
|
const OrderBookLane = effect.Schema.Literals(["A", "B"]);
|
|
5124
5235
|
const OrderBookStatus = effect.Schema.Literals([
|
|
@@ -9680,6 +9791,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
9680
9791
|
"required": false,
|
|
9681
9792
|
"valueHint": null
|
|
9682
9793
|
},
|
|
9794
|
+
{
|
|
9795
|
+
"flags": "--repair-ignore",
|
|
9796
|
+
"description": "Only remove Overdeck's legacy .pan/ line from .gitignore and commit that file (no copy)",
|
|
9797
|
+
"required": false,
|
|
9798
|
+
"valueHint": null
|
|
9799
|
+
},
|
|
9683
9800
|
{
|
|
9684
9801
|
"flags": "--state-root <dir>",
|
|
9685
9802
|
"description": "Override the state worktree root (tests / odd setups)",
|
|
@@ -9929,6 +10046,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
9929
10046
|
"required": true,
|
|
9930
10047
|
"valueHint": "notes"
|
|
9931
10048
|
},
|
|
10049
|
+
{
|
|
10050
|
+
"flags": "--tested-sha <sha>",
|
|
10051
|
+
"description": "Test/UAT only: the commit the run exercised (git rev-parse HEAD before the gates)",
|
|
10052
|
+
"required": true,
|
|
10053
|
+
"valueHint": "sha"
|
|
10054
|
+
},
|
|
9932
10055
|
{
|
|
9933
10056
|
"flags": "--run-id <runId>",
|
|
9934
10057
|
"description": "Review cycle ID used to deduplicate review feedback",
|
|
@@ -11377,11 +11500,273 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11377
11500
|
"aliases": [],
|
|
11378
11501
|
"category": "CLI"
|
|
11379
11502
|
},
|
|
11503
|
+
{
|
|
11504
|
+
"id": "pan-worker",
|
|
11505
|
+
"path": ["worker"],
|
|
11506
|
+
"display": "/pan worker",
|
|
11507
|
+
"description": "Registered workers: spawn an issue-linked agent and get its report back; register external agents",
|
|
11508
|
+
"args": [],
|
|
11509
|
+
"options": [],
|
|
11510
|
+
"aliases": [],
|
|
11511
|
+
"category": "CLI"
|
|
11512
|
+
},
|
|
11513
|
+
{
|
|
11514
|
+
"id": "pan-worker-run",
|
|
11515
|
+
"path": ["worker", "run"],
|
|
11516
|
+
"display": "/pan worker run",
|
|
11517
|
+
"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)",
|
|
11518
|
+
"args": [],
|
|
11519
|
+
"options": [
|
|
11520
|
+
{
|
|
11521
|
+
"flags": "--issue <id>",
|
|
11522
|
+
"description": "Issue the worker belongs to (required)",
|
|
11523
|
+
"required": true,
|
|
11524
|
+
"valueHint": "id"
|
|
11525
|
+
},
|
|
11526
|
+
{
|
|
11527
|
+
"flags": "--prompt <text>",
|
|
11528
|
+
"description": "The brief, inline",
|
|
11529
|
+
"required": true,
|
|
11530
|
+
"valueHint": "text"
|
|
11531
|
+
},
|
|
11532
|
+
{
|
|
11533
|
+
"flags": "--brief <file>",
|
|
11534
|
+
"description": "The brief, from a file",
|
|
11535
|
+
"required": true,
|
|
11536
|
+
"valueHint": "file"
|
|
11537
|
+
},
|
|
11538
|
+
{
|
|
11539
|
+
"flags": "--model <model>",
|
|
11540
|
+
"description": "Model override (default: roles.worker.model)",
|
|
11541
|
+
"required": true,
|
|
11542
|
+
"valueHint": "model"
|
|
11543
|
+
},
|
|
11544
|
+
{
|
|
11545
|
+
"flags": "--harness <harness>",
|
|
11546
|
+
"description": "Harness override (default: routed from the model)",
|
|
11547
|
+
"required": true,
|
|
11548
|
+
"valueHint": "harness"
|
|
11549
|
+
},
|
|
11550
|
+
{
|
|
11551
|
+
"flags": "--read-only",
|
|
11552
|
+
"description": "Run in the issue workspace with git writes blocked",
|
|
11553
|
+
"required": false,
|
|
11554
|
+
"valueHint": null
|
|
11555
|
+
},
|
|
11556
|
+
{
|
|
11557
|
+
"flags": "--cwd <path>",
|
|
11558
|
+
"description": "Working directory inside the issue workspace",
|
|
11559
|
+
"required": true,
|
|
11560
|
+
"valueHint": "path"
|
|
11561
|
+
},
|
|
11562
|
+
{
|
|
11563
|
+
"flags": "--parent <id>",
|
|
11564
|
+
"description": "Spawning agent or conversation (default: $OVERDECK_AGENT_ID, then $OVERDECK_CONVERSATION)",
|
|
11565
|
+
"required": true,
|
|
11566
|
+
"valueHint": "id"
|
|
11567
|
+
},
|
|
11568
|
+
{
|
|
11569
|
+
"flags": "--name <label>",
|
|
11570
|
+
"description": "Label shown in the Agents Directory",
|
|
11571
|
+
"required": true,
|
|
11572
|
+
"valueHint": "label"
|
|
11573
|
+
},
|
|
11574
|
+
{
|
|
11575
|
+
"flags": "--detach",
|
|
11576
|
+
"description": "Print the worker id and return without waiting",
|
|
11577
|
+
"required": false,
|
|
11578
|
+
"valueHint": null
|
|
11579
|
+
},
|
|
11580
|
+
{
|
|
11581
|
+
"flags": "--timeout <seconds>",
|
|
11582
|
+
"description": "Stop waiting after this many seconds (exit 3; the worker keeps running)",
|
|
11583
|
+
"required": true,
|
|
11584
|
+
"valueHint": "seconds"
|
|
11585
|
+
},
|
|
11586
|
+
{
|
|
11587
|
+
"flags": "--stop-after-report",
|
|
11588
|
+
"description": "Stop the worker after its first report",
|
|
11589
|
+
"required": false,
|
|
11590
|
+
"valueHint": null
|
|
11591
|
+
}
|
|
11592
|
+
],
|
|
11593
|
+
"aliases": [],
|
|
11594
|
+
"category": "CLI"
|
|
11595
|
+
},
|
|
11596
|
+
{
|
|
11597
|
+
"id": "pan-worker-wait",
|
|
11598
|
+
"path": ["worker", "wait"],
|
|
11599
|
+
"display": "/pan worker wait",
|
|
11600
|
+
"description": "Wait for a worker's report (same exit codes as run); the status line names its seq",
|
|
11601
|
+
"args": [{
|
|
11602
|
+
"name": "worker-id",
|
|
11603
|
+
"required": true,
|
|
11604
|
+
"variadic": false
|
|
11605
|
+
}],
|
|
11606
|
+
"options": [{
|
|
11607
|
+
"flags": "--after <seq>",
|
|
11608
|
+
"description": "Return the next report after this seq (default: the newest report, whenever written)",
|
|
11609
|
+
"required": true,
|
|
11610
|
+
"valueHint": "seq"
|
|
11611
|
+
}, {
|
|
11612
|
+
"flags": "--timeout <seconds>",
|
|
11613
|
+
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11614
|
+
"required": true,
|
|
11615
|
+
"valueHint": "seconds"
|
|
11616
|
+
}],
|
|
11617
|
+
"aliases": [],
|
|
11618
|
+
"category": "CLI"
|
|
11619
|
+
},
|
|
11620
|
+
{
|
|
11621
|
+
"id": "pan-worker-report",
|
|
11622
|
+
"path": ["worker", "report"],
|
|
11623
|
+
"display": "/pan worker report",
|
|
11624
|
+
"description": "Record a worker's report (run by the worker itself)",
|
|
11625
|
+
"args": [{
|
|
11626
|
+
"name": "worker-id",
|
|
11627
|
+
"required": true,
|
|
11628
|
+
"variadic": false
|
|
11629
|
+
}],
|
|
11630
|
+
"options": [
|
|
11631
|
+
{
|
|
11632
|
+
"flags": "--file <path>",
|
|
11633
|
+
"description": "Read the Markdown report from a file",
|
|
11634
|
+
"required": true,
|
|
11635
|
+
"valueHint": "path"
|
|
11636
|
+
},
|
|
11637
|
+
{
|
|
11638
|
+
"flags": "--stdin",
|
|
11639
|
+
"description": "Read the Markdown report from stdin",
|
|
11640
|
+
"required": false,
|
|
11641
|
+
"valueHint": null
|
|
11642
|
+
},
|
|
11643
|
+
{
|
|
11644
|
+
"flags": "--status <status>",
|
|
11645
|
+
"description": "done | blocked | failed (default: done)",
|
|
11646
|
+
"required": true,
|
|
11647
|
+
"valueHint": "status"
|
|
11648
|
+
}
|
|
11649
|
+
],
|
|
11650
|
+
"aliases": [],
|
|
11651
|
+
"category": "CLI"
|
|
11652
|
+
},
|
|
11653
|
+
{
|
|
11654
|
+
"id": "pan-worker-list",
|
|
11655
|
+
"path": ["worker", "list"],
|
|
11656
|
+
"display": "/pan worker list",
|
|
11657
|
+
"description": "List workers with their parent, live state and newest report",
|
|
11658
|
+
"args": [],
|
|
11659
|
+
"options": [
|
|
11660
|
+
{
|
|
11661
|
+
"flags": "--issue <id>",
|
|
11662
|
+
"description": "Only this issue's workers",
|
|
11663
|
+
"required": true,
|
|
11664
|
+
"valueHint": "id"
|
|
11665
|
+
},
|
|
11666
|
+
{
|
|
11667
|
+
"flags": "--parent <id>",
|
|
11668
|
+
"description": "Only workers of this parent",
|
|
11669
|
+
"required": true,
|
|
11670
|
+
"valueHint": "id"
|
|
11671
|
+
},
|
|
11672
|
+
{
|
|
11673
|
+
"flags": "--json",
|
|
11674
|
+
"description": "Print JSON",
|
|
11675
|
+
"required": false,
|
|
11676
|
+
"valueHint": null
|
|
11677
|
+
}
|
|
11678
|
+
],
|
|
11679
|
+
"aliases": [],
|
|
11680
|
+
"category": "CLI"
|
|
11681
|
+
},
|
|
11682
|
+
{
|
|
11683
|
+
"id": "pan-worker-register",
|
|
11684
|
+
"path": ["worker", "register"],
|
|
11685
|
+
"display": "/pan worker register",
|
|
11686
|
+
"description": "Record an agent another tool launched so the Agents Directory shows it (read-only; prints its id)",
|
|
11687
|
+
"args": [],
|
|
11688
|
+
"options": [
|
|
11689
|
+
{
|
|
11690
|
+
"flags": "--source <name>",
|
|
11691
|
+
"description": "Who launched it ([a-z0-9-], not codex-plugin) (required)",
|
|
11692
|
+
"required": true,
|
|
11693
|
+
"valueHint": "name"
|
|
11694
|
+
},
|
|
11695
|
+
{
|
|
11696
|
+
"flags": "--external-id <id>",
|
|
11697
|
+
"description": "The launcher's id for it (required)",
|
|
11698
|
+
"required": true,
|
|
11699
|
+
"valueHint": "id"
|
|
11700
|
+
},
|
|
11701
|
+
{
|
|
11702
|
+
"flags": "--harness <harness>",
|
|
11703
|
+
"description": "codex, claude-code, … (required)",
|
|
11704
|
+
"required": true,
|
|
11705
|
+
"valueHint": "harness"
|
|
11706
|
+
},
|
|
11707
|
+
{
|
|
11708
|
+
"flags": "--model <model>",
|
|
11709
|
+
"description": "Model it runs",
|
|
11710
|
+
"required": true,
|
|
11711
|
+
"valueHint": "model"
|
|
11712
|
+
},
|
|
11713
|
+
{
|
|
11714
|
+
"flags": "--cwd <path>",
|
|
11715
|
+
"description": "Its working directory",
|
|
11716
|
+
"required": true,
|
|
11717
|
+
"valueHint": "path"
|
|
11718
|
+
},
|
|
11719
|
+
{
|
|
11720
|
+
"flags": "--issue <id>",
|
|
11721
|
+
"description": "Issue it works on",
|
|
11722
|
+
"required": true,
|
|
11723
|
+
"valueHint": "id"
|
|
11724
|
+
},
|
|
11725
|
+
{
|
|
11726
|
+
"flags": "--parent <id>",
|
|
11727
|
+
"description": "Spawning agent id, conversation tmux session, or claude-session:<uuid>",
|
|
11728
|
+
"required": true,
|
|
11729
|
+
"valueHint": "id"
|
|
11730
|
+
},
|
|
11731
|
+
{
|
|
11732
|
+
"flags": "--label <text>",
|
|
11733
|
+
"description": "Label shown in the Agents Directory",
|
|
11734
|
+
"required": true,
|
|
11735
|
+
"valueHint": "text"
|
|
11736
|
+
},
|
|
11737
|
+
{
|
|
11738
|
+
"flags": "--pid <n>",
|
|
11739
|
+
"description": "Its process id (liveness is read from it)",
|
|
11740
|
+
"required": true,
|
|
11741
|
+
"valueHint": "n"
|
|
11742
|
+
},
|
|
11743
|
+
{
|
|
11744
|
+
"flags": "--transcript <path>",
|
|
11745
|
+
"description": "Its transcript file",
|
|
11746
|
+
"required": true,
|
|
11747
|
+
"valueHint": "path"
|
|
11748
|
+
},
|
|
11749
|
+
{
|
|
11750
|
+
"flags": "--session-id <id>",
|
|
11751
|
+
"description": "Its session or thread id",
|
|
11752
|
+
"required": true,
|
|
11753
|
+
"valueHint": "id"
|
|
11754
|
+
},
|
|
11755
|
+
{
|
|
11756
|
+
"flags": "--json",
|
|
11757
|
+
"description": "Print { id, created }",
|
|
11758
|
+
"required": false,
|
|
11759
|
+
"valueHint": null
|
|
11760
|
+
}
|
|
11761
|
+
],
|
|
11762
|
+
"aliases": [],
|
|
11763
|
+
"category": "CLI"
|
|
11764
|
+
},
|
|
11380
11765
|
{
|
|
11381
11766
|
"id": "pan-flywheel",
|
|
11382
11767
|
"path": ["flywheel"],
|
|
11383
11768
|
"display": "/pan flywheel",
|
|
11384
|
-
"description": "Start, stop, or
|
|
11769
|
+
"description": "Start, stop, pause, resume, or inspect the flywheel conversation",
|
|
11385
11770
|
"args": [],
|
|
11386
11771
|
"options": [],
|
|
11387
11772
|
"aliases": [],
|
|
@@ -11411,6 +11796,18 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11411
11796
|
"description": "Working directory (default: cwd)",
|
|
11412
11797
|
"required": true,
|
|
11413
11798
|
"valueHint": "path"
|
|
11799
|
+
},
|
|
11800
|
+
{
|
|
11801
|
+
"flags": "--orders <book-id>",
|
|
11802
|
+
"description": "Order book the flywheel works from",
|
|
11803
|
+
"required": true,
|
|
11804
|
+
"valueHint": "book-id"
|
|
11805
|
+
},
|
|
11806
|
+
{
|
|
11807
|
+
"flags": "--fresh",
|
|
11808
|
+
"description": "Replace a paused flywheel conversation instead of refusing",
|
|
11809
|
+
"required": false,
|
|
11810
|
+
"valueHint": null
|
|
11414
11811
|
}
|
|
11415
11812
|
],
|
|
11416
11813
|
"aliases": [],
|
|
@@ -11420,7 +11817,52 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11420
11817
|
"id": "pan-flywheel-stop",
|
|
11421
11818
|
"path": ["flywheel", "stop"],
|
|
11422
11819
|
"display": "/pan flywheel stop",
|
|
11423
|
-
"description": "
|
|
11820
|
+
"description": "Ask the loop to write its report, wait for it, then pause",
|
|
11821
|
+
"args": [],
|
|
11822
|
+
"options": [{
|
|
11823
|
+
"flags": "--timeout <ms>",
|
|
11824
|
+
"description": "How long to wait for the report (default 120000)",
|
|
11825
|
+
"required": true,
|
|
11826
|
+
"valueHint": "ms"
|
|
11827
|
+
}],
|
|
11828
|
+
"aliases": [],
|
|
11829
|
+
"category": "Flywheel"
|
|
11830
|
+
},
|
|
11831
|
+
{
|
|
11832
|
+
"id": "pan-flywheel-abort",
|
|
11833
|
+
"path": ["flywheel", "abort"],
|
|
11834
|
+
"display": "/pan flywheel abort",
|
|
11835
|
+
"description": "Stop the flywheel conversation without a report",
|
|
11836
|
+
"args": [],
|
|
11837
|
+
"options": [],
|
|
11838
|
+
"aliases": [],
|
|
11839
|
+
"category": "Flywheel"
|
|
11840
|
+
},
|
|
11841
|
+
{
|
|
11842
|
+
"id": "pan-flywheel-pause",
|
|
11843
|
+
"path": ["flywheel", "pause"],
|
|
11844
|
+
"display": "/pan flywheel pause",
|
|
11845
|
+
"description": "Stop the flywheel session, keeping its conversation and transcript",
|
|
11846
|
+
"args": [],
|
|
11847
|
+
"options": [],
|
|
11848
|
+
"aliases": [],
|
|
11849
|
+
"category": "Flywheel"
|
|
11850
|
+
},
|
|
11851
|
+
{
|
|
11852
|
+
"id": "pan-flywheel-resume",
|
|
11853
|
+
"path": ["flywheel", "resume"],
|
|
11854
|
+
"display": "/pan flywheel resume",
|
|
11855
|
+
"description": "Respawn a paused flywheel and re-send /pan-flywheel",
|
|
11856
|
+
"args": [],
|
|
11857
|
+
"options": [],
|
|
11858
|
+
"aliases": [],
|
|
11859
|
+
"category": "Flywheel"
|
|
11860
|
+
},
|
|
11861
|
+
{
|
|
11862
|
+
"id": "pan-flywheel-report",
|
|
11863
|
+
"path": ["flywheel", "report"],
|
|
11864
|
+
"display": "/pan flywheel report",
|
|
11865
|
+
"description": "Ask a running loop for its report, or print .pan/flywheel/report.md",
|
|
11424
11866
|
"args": [],
|
|
11425
11867
|
"options": [],
|
|
11426
11868
|
"aliases": [],
|
|
@@ -11430,7 +11872,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11430
11872
|
"id": "pan-flywheel-status",
|
|
11431
11873
|
"path": ["flywheel", "status"],
|
|
11432
11874
|
"display": "/pan flywheel status",
|
|
11433
|
-
"description": "
|
|
11875
|
+
"description": "Show the derived flywheel status: run, last tick, policies, in-flight issues, order book",
|
|
11434
11876
|
"args": [],
|
|
11435
11877
|
"options": [{
|
|
11436
11878
|
"flags": "--json",
|
|
@@ -11441,6 +11883,26 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11441
11883
|
"aliases": [],
|
|
11442
11884
|
"category": "Flywheel"
|
|
11443
11885
|
},
|
|
11886
|
+
{
|
|
11887
|
+
"id": "pan-flywheel-stats",
|
|
11888
|
+
"path": ["flywheel", "stats"],
|
|
11889
|
+
"display": "/pan flywheel stats",
|
|
11890
|
+
"description": "Substrate-bug discovery rate and P0 count, computed from the tracker and forge",
|
|
11891
|
+
"args": [],
|
|
11892
|
+
"options": [{
|
|
11893
|
+
"flags": "--json",
|
|
11894
|
+
"description": "Output as JSON",
|
|
11895
|
+
"required": false,
|
|
11896
|
+
"valueHint": null
|
|
11897
|
+
}, {
|
|
11898
|
+
"flags": "--window <days>",
|
|
11899
|
+
"description": "Window in days (default 30)",
|
|
11900
|
+
"required": true,
|
|
11901
|
+
"valueHint": "days"
|
|
11902
|
+
}],
|
|
11903
|
+
"aliases": [],
|
|
11904
|
+
"category": "Flywheel"
|
|
11905
|
+
},
|
|
11444
11906
|
{
|
|
11445
11907
|
"id": "pan-merge",
|
|
11446
11908
|
"path": ["merge"],
|
|
@@ -12913,6 +13375,97 @@ function isAgentRole(value) {
|
|
|
12913
13375
|
return typeof value === "string" && AGENT_ROLES.includes(value);
|
|
12914
13376
|
}
|
|
12915
13377
|
//#endregion
|
|
13378
|
+
//#region src/agent-directory.ts
|
|
13379
|
+
const DirectoryEntryKind = effect.Schema.Literals([
|
|
13380
|
+
"agent",
|
|
13381
|
+
"conversation",
|
|
13382
|
+
"subagent",
|
|
13383
|
+
"external"
|
|
13384
|
+
]);
|
|
13385
|
+
const DirectoryEntryState = effect.Schema.Literals([
|
|
13386
|
+
"working",
|
|
13387
|
+
"idle",
|
|
13388
|
+
"blocked",
|
|
13389
|
+
"done",
|
|
13390
|
+
"stopped",
|
|
13391
|
+
"unknown"
|
|
13392
|
+
]);
|
|
13393
|
+
const DirectoryEntrySource = effect.Schema.Literals([
|
|
13394
|
+
"overdeck",
|
|
13395
|
+
"pane",
|
|
13396
|
+
"conversation",
|
|
13397
|
+
"claude-subagent",
|
|
13398
|
+
"codex-subagent",
|
|
13399
|
+
"registered",
|
|
13400
|
+
"codex-plugin"
|
|
13401
|
+
]);
|
|
13402
|
+
const DirectoryTranscriptRef = effect.Schema.Union([
|
|
13403
|
+
effect.Schema.Struct({
|
|
13404
|
+
route: effect.Schema.Literal("agent"),
|
|
13405
|
+
agentId: effect.Schema.String
|
|
13406
|
+
}),
|
|
13407
|
+
effect.Schema.Struct({
|
|
13408
|
+
route: effect.Schema.Literal("agent-subagent"),
|
|
13409
|
+
agentId: effect.Schema.String,
|
|
13410
|
+
subagentId: effect.Schema.String
|
|
13411
|
+
}),
|
|
13412
|
+
effect.Schema.Struct({
|
|
13413
|
+
route: effect.Schema.Literal("conversation"),
|
|
13414
|
+
conversationName: effect.Schema.String
|
|
13415
|
+
}),
|
|
13416
|
+
effect.Schema.Struct({
|
|
13417
|
+
route: effect.Schema.Literal("conversation-subagent"),
|
|
13418
|
+
conversationName: effect.Schema.String,
|
|
13419
|
+
subagentId: effect.Schema.String
|
|
13420
|
+
})
|
|
13421
|
+
]);
|
|
13422
|
+
const DirectoryEntryLocation = effect.Schema.Literals(["local", "remote"]);
|
|
13423
|
+
const DirectoryEntry = effect.Schema.Struct({
|
|
13424
|
+
id: effect.Schema.String,
|
|
13425
|
+
kind: DirectoryEntryKind,
|
|
13426
|
+
label: effect.Schema.String,
|
|
13427
|
+
location: DirectoryEntryLocation,
|
|
13428
|
+
/** projects.yaml key; `unassigned` when none (D5). */
|
|
13429
|
+
projectKey: effect.Schema.String,
|
|
13430
|
+
/** Uppercase issue id, e.g. `PAN-3920`. */
|
|
13431
|
+
issueId: effect.Schema.NullOr(effect.Schema.String),
|
|
13432
|
+
/** The issue's title from the dashboard's tracker cache; null when unknown. */
|
|
13433
|
+
issueTitle: effect.Schema.NullOr(effect.Schema.String),
|
|
13434
|
+
parentId: effect.Schema.NullOr(effect.Schema.String),
|
|
13435
|
+
role: effect.Schema.NullOr(effect.Schema.String),
|
|
13436
|
+
/** `unknown` when not known. */
|
|
13437
|
+
harness: effect.Schema.String,
|
|
13438
|
+
/** `unknown` when not known. */
|
|
13439
|
+
model: effect.Schema.String,
|
|
13440
|
+
state: DirectoryEntryState,
|
|
13441
|
+
startedAt: effect.Schema.NullOr(effect.Schema.String),
|
|
13442
|
+
lastActivityAt: effect.Schema.NullOr(effect.Schema.String),
|
|
13443
|
+
costUsd: effect.Schema.NullOr(effect.Schema.Number),
|
|
13444
|
+
source: DirectoryEntrySource,
|
|
13445
|
+
transcript: effect.Schema.NullOr(DirectoryTranscriptRef)
|
|
13446
|
+
});
|
|
13447
|
+
const AgentDirectoryResponse = effect.Schema.Struct({
|
|
13448
|
+
generatedAt: effect.Schema.String,
|
|
13449
|
+
windowHours: effect.Schema.Number,
|
|
13450
|
+
entries: effect.Schema.Array(DirectoryEntry)
|
|
13451
|
+
});
|
|
13452
|
+
//#endregion
|
|
13453
|
+
//#region src/companion-terminal.ts
|
|
13454
|
+
/**
|
|
13455
|
+
* Which companion terminal a conversation gets, or `null` for "keep the
|
|
13456
|
+
* owner pane as TERMINAL". A Codex conversation still on the legacy
|
|
13457
|
+
* `codex.transport: tui` runs the native TUI in its owner pane; the server
|
|
13458
|
+
* adapter reports that as `unsupported` and points at the runtime pane.
|
|
13459
|
+
*/
|
|
13460
|
+
function companionTerminalKindFor(conversation) {
|
|
13461
|
+
if (conversation.harness === "opencode") return "opencode-attach";
|
|
13462
|
+
if (conversation.harness === "codex") return "codex-resume-remote";
|
|
13463
|
+
return null;
|
|
13464
|
+
}
|
|
13465
|
+
/** Body keys each mutation accepts. Anything else is rejected as target injection. */
|
|
13466
|
+
const COMPANION_TERMINAL_OPEN_BODY_KEYS = [];
|
|
13467
|
+
const COMPANION_TERMINAL_CLOSE_BODY_KEYS = ["generation"];
|
|
13468
|
+
//#endregion
|
|
12916
13469
|
exports.ACP_BEHAVIOR = ACP_BEHAVIOR;
|
|
12917
13470
|
exports.AGENT_ROLES = AGENT_ROLES;
|
|
12918
13471
|
exports.Activity = Activity;
|
|
@@ -12928,6 +13481,7 @@ exports.AgentCompletedEvent = AgentCompletedEvent;
|
|
|
12928
13481
|
exports.AgentContextSaturationChangedEvent = AgentContextSaturationChangedEvent;
|
|
12929
13482
|
exports.AgentCreatedEvent = AgentCreatedEvent;
|
|
12930
13483
|
exports.AgentCurrentIssueSetEvent = AgentCurrentIssueSetEvent;
|
|
13484
|
+
exports.AgentDirectoryResponse = AgentDirectoryResponse;
|
|
12931
13485
|
exports.AgentEnrichmentChangedEvent = AgentEnrichmentChangedEvent;
|
|
12932
13486
|
exports.AgentHealthKind = AgentHealthKind;
|
|
12933
13487
|
exports.AgentHealthSnapshot = AgentHealthSnapshot;
|
|
@@ -12980,6 +13534,8 @@ exports.BeadsFreshnessChangedEvent = BeadsFreshnessChangedEvent;
|
|
|
12980
13534
|
exports.CHANNEL_REPLY_KIND_VALUES = CHANNEL_REPLY_KIND_VALUES;
|
|
12981
13535
|
exports.CLAUDE_CODE_BEHAVIOR = CLAUDE_CODE_BEHAVIOR;
|
|
12982
13536
|
exports.CODEX_BEHAVIOR = CODEX_BEHAVIOR;
|
|
13537
|
+
exports.COMPANION_TERMINAL_CLOSE_BODY_KEYS = COMPANION_TERMINAL_CLOSE_BODY_KEYS;
|
|
13538
|
+
exports.COMPANION_TERMINAL_OPEN_BODY_KEYS = COMPANION_TERMINAL_OPEN_BODY_KEYS;
|
|
12983
13539
|
exports.COMPOSER_COMMAND_INSERT_OVERRIDES = COMPOSER_COMMAND_INSERT_OVERRIDES;
|
|
12984
13540
|
exports.COMPOSER_COMMAND_MANIFEST = COMPOSER_COMMAND_MANIFEST;
|
|
12985
13541
|
exports.COMPOSER_COMMAND_VARIANTS = COMPOSER_COMMAND_VARIANTS;
|
|
@@ -13030,6 +13586,12 @@ exports.DeployStalenessSnapshot = DeployStalenessSnapshot;
|
|
|
13030
13586
|
exports.DerivedBranchState = DerivedBranchState;
|
|
13031
13587
|
exports.DerivedIssueState = DerivedIssueState;
|
|
13032
13588
|
exports.DerivedPrState = DerivedPrState;
|
|
13589
|
+
exports.DirectoryEntry = DirectoryEntry;
|
|
13590
|
+
exports.DirectoryEntryKind = DirectoryEntryKind;
|
|
13591
|
+
exports.DirectoryEntryLocation = DirectoryEntryLocation;
|
|
13592
|
+
exports.DirectoryEntrySource = DirectoryEntrySource;
|
|
13593
|
+
exports.DirectoryEntryState = DirectoryEntryState;
|
|
13594
|
+
exports.DirectoryTranscriptRef = DirectoryTranscriptRef;
|
|
13033
13595
|
exports.DiscoveredSessionSnapshot = DiscoveredSessionSnapshot;
|
|
13034
13596
|
exports.DomainEvent = DomainEvent;
|
|
13035
13597
|
exports.EDITORS = EDITORS;
|
|
@@ -13049,28 +13611,38 @@ exports.FeatureRegistryEntry = FeatureRegistryEntry;
|
|
|
13049
13611
|
exports.FeatureRegistryStatus = FeatureRegistryStatus;
|
|
13050
13612
|
exports.FlywheelAgent = FlywheelAgent;
|
|
13051
13613
|
exports.FlywheelAgentStatus = FlywheelAgentStatus;
|
|
13614
|
+
exports.FlywheelBugRateCriterion = FlywheelBugRateCriterion;
|
|
13615
|
+
exports.FlywheelConversationSummary = FlywheelConversationSummary;
|
|
13616
|
+
exports.FlywheelDerivedStatus = FlywheelDerivedStatus;
|
|
13052
13617
|
exports.FlywheelEffort = FlywheelEffort;
|
|
13618
|
+
exports.FlywheelFreshness = FlywheelFreshness;
|
|
13053
13619
|
exports.FlywheelHarness = FlywheelHarness;
|
|
13054
13620
|
exports.FlywheelHeadline = FlywheelHeadline;
|
|
13055
13621
|
exports.FlywheelHttpUrl = FlywheelHttpUrl;
|
|
13622
|
+
exports.FlywheelInFlightRow = FlywheelInFlightRow;
|
|
13623
|
+
exports.FlywheelJournalSummary = FlywheelJournalSummary;
|
|
13624
|
+
exports.FlywheelLastTick = FlywheelLastTick;
|
|
13056
13625
|
exports.FlywheelOrchestrator = FlywheelOrchestrator;
|
|
13626
|
+
exports.FlywheelOrderBookSummary = FlywheelOrderBookSummary;
|
|
13057
13627
|
exports.FlywheelOrders = FlywheelOrders;
|
|
13628
|
+
exports.FlywheelP0Criterion = FlywheelP0Criterion;
|
|
13058
13629
|
exports.FlywheelParkedItem = FlywheelParkedItem;
|
|
13059
13630
|
exports.FlywheelPipelineItem = FlywheelPipelineItem;
|
|
13060
13631
|
exports.FlywheelPipelineStatus = FlywheelPipelineStatus;
|
|
13061
13632
|
exports.FlywheelPipelineVerb = FlywheelPipelineVerb;
|
|
13633
|
+
exports.FlywheelPolicies = FlywheelPolicies;
|
|
13062
13634
|
exports.FlywheelRunId = FlywheelRunId;
|
|
13635
|
+
exports.FlywheelRunState = FlywheelRunState;
|
|
13063
13636
|
exports.FlywheelScope = FlywheelScope;
|
|
13064
13637
|
exports.FlywheelStats = FlywheelStats;
|
|
13065
|
-
exports.FlywheelStatsCriteria = FlywheelStatsCriteria;
|
|
13066
|
-
exports.FlywheelStatsCriterion = FlywheelStatsCriterion;
|
|
13067
13638
|
exports.FlywheelStatsCriterionStatus = FlywheelStatsCriterionStatus;
|
|
13068
|
-
exports.FlywheelStatsCriterionValue = FlywheelStatsCriterionValue;
|
|
13069
|
-
exports.FlywheelStatsCriterionValueObject = FlywheelStatsCriterionValueObject;
|
|
13070
13639
|
exports.FlywheelStatsTrend = FlywheelStatsTrend;
|
|
13640
|
+
exports.FlywheelStatsWindow = FlywheelStatsWindow;
|
|
13071
13641
|
exports.FlywheelStatus = FlywheelStatus;
|
|
13072
13642
|
exports.FlywheelSubstrateBug = FlywheelSubstrateBug;
|
|
13643
|
+
exports.FlywheelSubstrateBugRow = FlywheelSubstrateBugRow;
|
|
13073
13644
|
exports.FlywheelSubstrateBugStatus = FlywheelSubstrateBugStatus;
|
|
13645
|
+
exports.FlywheelSubstrateSeverity = FlywheelSubstrateSeverity;
|
|
13074
13646
|
exports.FlywheelSuggestion = FlywheelSuggestion;
|
|
13075
13647
|
exports.FlywheelSuggestionAction = FlywheelSuggestionAction;
|
|
13076
13648
|
exports.FlywheelSuggestionPriority = FlywheelSuggestionPriority;
|
|
@@ -13260,6 +13832,8 @@ exports.TerminalResizeRpc = TerminalResizeRpc;
|
|
|
13260
13832
|
exports.TerminalWriteRpc = TerminalWriteRpc;
|
|
13261
13833
|
exports.TestPassedEvent = TestPassedEvent;
|
|
13262
13834
|
exports.ThinkingState = ThinkingState;
|
|
13835
|
+
exports.TickMarker = TickMarker;
|
|
13836
|
+
exports.TickMarkerPhase = TickMarkerPhase;
|
|
13263
13837
|
exports.TurnDiffFileChange = TurnDiffFileChange;
|
|
13264
13838
|
exports.TurnDiffSummary = TurnDiffSummary;
|
|
13265
13839
|
exports.WIRED_HOOK_INVENTORY = WIRED_HOOK_INVENTORY;
|
|
@@ -13283,8 +13857,10 @@ exports.WriteFileAtPathRpc = WriteFileAtPathRpc;
|
|
|
13283
13857
|
exports.applyEvent = applyEvent;
|
|
13284
13858
|
exports.applyEvents = applyEvents;
|
|
13285
13859
|
exports.applyIssueDelta = applyIssueDelta;
|
|
13860
|
+
exports.companionTerminalKindFor = companionTerminalKindFor;
|
|
13286
13861
|
exports.compareIssueIds = compareIssueIds;
|
|
13287
13862
|
exports.createIssueDelta = createIssueDelta;
|
|
13863
|
+
exports.decodeFlywheelDerivedStatus = decodeFlywheelDerivedStatus;
|
|
13288
13864
|
exports.decodeFlywheelStats = decodeFlywheelStats;
|
|
13289
13865
|
exports.deriveProjectCi = deriveProjectCi;
|
|
13290
13866
|
exports.encodeFlywheelStats = encodeFlywheelStats;
|