@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.mjs
CHANGED
|
@@ -5,6 +5,8 @@ import * as RpcGroup from "effect/unstable/rpc/RpcGroup";
|
|
|
5
5
|
const BackendPane = Schema.Struct({
|
|
6
6
|
/** Stable pane identity: the backend-native pane handle. */
|
|
7
7
|
id: Schema.String,
|
|
8
|
+
/** Overdeck agent id: Herdr `agentId` token or live agent name; tmux session name (PAN-3920). */
|
|
9
|
+
agentId: Schema.optional(Schema.String),
|
|
8
10
|
/** Issue the pane belongs to; absent for operator conversations. */
|
|
9
11
|
issue: Schema.optional(Schema.String),
|
|
10
12
|
role: Schema.Literals([
|
|
@@ -166,7 +168,8 @@ const Role = Schema.Literals([
|
|
|
166
168
|
"flywheel",
|
|
167
169
|
"strike",
|
|
168
170
|
"sequencer",
|
|
169
|
-
"knowledge"
|
|
171
|
+
"knowledge",
|
|
172
|
+
"worker"
|
|
170
173
|
]);
|
|
171
174
|
const AgentResolution = Schema.Literals([
|
|
172
175
|
"working",
|
|
@@ -5066,34 +5069,142 @@ const FlywheelStatsTrend = Schema.Literals([
|
|
|
5066
5069
|
"down",
|
|
5067
5070
|
"flat"
|
|
5068
5071
|
]);
|
|
5069
|
-
const
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5072
|
+
const FlywheelSubstrateSeverity = Schema.Literals([
|
|
5073
|
+
"P0",
|
|
5074
|
+
"P1",
|
|
5075
|
+
"P2",
|
|
5076
|
+
"unknown"
|
|
5077
|
+
]);
|
|
5078
|
+
const FlywheelStatsWindow = Schema.Struct({
|
|
5079
|
+
days: Schema.Number,
|
|
5080
|
+
since: Schema.String,
|
|
5081
|
+
until: Schema.String
|
|
5082
|
+
});
|
|
5083
|
+
/** c1: substrate bugs filed per merged PR in the window. */
|
|
5084
|
+
const FlywheelBugRateCriterion = Schema.Struct({
|
|
5085
|
+
/** `null` when no PR merged in the window (the rate is undefined). */
|
|
5086
|
+
value: Schema.NullOr(Schema.Number),
|
|
5087
|
+
count: Schema.Number,
|
|
5088
|
+
denominator: Schema.Number,
|
|
5089
|
+
status: FlywheelStatsCriterionStatus,
|
|
5090
|
+
trend: FlywheelStatsTrend,
|
|
5091
|
+
dataSufficient: Schema.Boolean
|
|
5092
|
+
});
|
|
5093
|
+
/** c2: P0 substrate bugs filed in the window. */
|
|
5094
|
+
const FlywheelP0Criterion = Schema.Struct({
|
|
5095
|
+
value: Schema.Number,
|
|
5075
5096
|
status: FlywheelStatsCriterionStatus,
|
|
5076
|
-
trend:
|
|
5077
|
-
sampleSize: Schema.Number,
|
|
5097
|
+
trend: FlywheelStatsTrend,
|
|
5078
5098
|
dataSufficient: Schema.Boolean
|
|
5079
5099
|
});
|
|
5080
|
-
const
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
c6_timeConsistency: FlywheelStatsCriterion,
|
|
5087
|
-
c7_flake: FlywheelStatsCriterion
|
|
5100
|
+
const FlywheelSubstrateBugRow = Schema.Struct({
|
|
5101
|
+
number: Schema.Number,
|
|
5102
|
+
title: Schema.String,
|
|
5103
|
+
createdAt: Schema.String,
|
|
5104
|
+
closedAt: Schema.NullOr(Schema.String),
|
|
5105
|
+
severity: FlywheelSubstrateSeverity
|
|
5088
5106
|
});
|
|
5089
5107
|
const FlywheelStats = Schema.Struct({
|
|
5090
|
-
window:
|
|
5108
|
+
window: FlywheelStatsWindow,
|
|
5091
5109
|
generatedAt: Schema.String,
|
|
5092
|
-
criteria:
|
|
5110
|
+
criteria: Schema.Struct({
|
|
5111
|
+
c1_bugRate: FlywheelBugRateCriterion,
|
|
5112
|
+
c2_p0Bugs: FlywheelP0Criterion
|
|
5113
|
+
}),
|
|
5114
|
+
bugs: Schema.Array(FlywheelSubstrateBugRow)
|
|
5093
5115
|
});
|
|
5094
5116
|
const decodeFlywheelStats = Schema.decodeUnknownSync(FlywheelStats);
|
|
5095
5117
|
const encodeFlywheelStats = Schema.encodeSync(FlywheelStats);
|
|
5096
5118
|
//#endregion
|
|
5119
|
+
//#region src/flywheel-derived.ts
|
|
5120
|
+
/** The loop's phases, as the skill reports them in its tick marker. */
|
|
5121
|
+
const TickMarkerPhase = Schema.Literals([
|
|
5122
|
+
"orient",
|
|
5123
|
+
"pick",
|
|
5124
|
+
"launch",
|
|
5125
|
+
"watch",
|
|
5126
|
+
"park",
|
|
5127
|
+
"idle",
|
|
5128
|
+
"stopping"
|
|
5129
|
+
]);
|
|
5130
|
+
/**
|
|
5131
|
+
* One parsed tick marker line:
|
|
5132
|
+
* `flywheel-tick: tick=<n> pick=<ID|none> phase=<phase> in-flight=<ID,…|none> needs-you=<text|none>`.
|
|
5133
|
+
*/
|
|
5134
|
+
const TickMarker = Schema.Struct({
|
|
5135
|
+
tick: Schema.Number,
|
|
5136
|
+
pick: Schema.NullOr(Schema.String),
|
|
5137
|
+
phase: TickMarkerPhase,
|
|
5138
|
+
inFlight: Schema.Array(Schema.String),
|
|
5139
|
+
needsYou: Schema.NullOr(Schema.String)
|
|
5140
|
+
});
|
|
5141
|
+
/** `running` = row + live session; `paused` = row, no live session; `idle` = no row. */
|
|
5142
|
+
const FlywheelRunState = Schema.Literals([
|
|
5143
|
+
"running",
|
|
5144
|
+
"paused",
|
|
5145
|
+
"idle"
|
|
5146
|
+
]);
|
|
5147
|
+
/** Age of the last tick: ≤ 60 s live, ≤ 20 min breathing, older stalled. */
|
|
5148
|
+
const FlywheelFreshness = Schema.Literals([
|
|
5149
|
+
"live",
|
|
5150
|
+
"breathing",
|
|
5151
|
+
"stalled"
|
|
5152
|
+
]);
|
|
5153
|
+
const FlywheelConversationSummary = Schema.Struct({
|
|
5154
|
+
name: Schema.String,
|
|
5155
|
+
id: Schema.Number,
|
|
5156
|
+
title: Schema.NullOr(Schema.String),
|
|
5157
|
+
model: Schema.NullOr(Schema.String),
|
|
5158
|
+
harness: Schema.NullOr(Schema.String),
|
|
5159
|
+
cwd: Schema.String,
|
|
5160
|
+
sessionAlive: Schema.Boolean
|
|
5161
|
+
});
|
|
5162
|
+
const FlywheelLastTick = Schema.Struct({
|
|
5163
|
+
tick: Schema.Number,
|
|
5164
|
+
pick: Schema.NullOr(Schema.String),
|
|
5165
|
+
phase: TickMarkerPhase,
|
|
5166
|
+
inFlight: Schema.Array(Schema.String),
|
|
5167
|
+
needsYou: Schema.NullOr(Schema.String),
|
|
5168
|
+
/** The assistant message's `createdAt`. */
|
|
5169
|
+
at: Schema.String
|
|
5170
|
+
});
|
|
5171
|
+
const FlywheelPolicies = Schema.Struct({
|
|
5172
|
+
auto_pickup_backlog: Schema.Boolean,
|
|
5173
|
+
require_uat_before_merge: Schema.Boolean,
|
|
5174
|
+
merge_train_enabled: Schema.Boolean
|
|
5175
|
+
});
|
|
5176
|
+
const FlywheelJournalSummary = Schema.Struct({
|
|
5177
|
+
at: Schema.String,
|
|
5178
|
+
type: Schema.String,
|
|
5179
|
+
source: Schema.optional(Schema.String)
|
|
5180
|
+
});
|
|
5181
|
+
const FlywheelInFlightRow = Schema.Struct({
|
|
5182
|
+
issueId: Schema.String,
|
|
5183
|
+
state: IssueState,
|
|
5184
|
+
attention: Schema.optional(IssueAttention),
|
|
5185
|
+
pr: Schema.optional(DerivedPrState),
|
|
5186
|
+
lastJournal: Schema.NullOr(FlywheelJournalSummary)
|
|
5187
|
+
});
|
|
5188
|
+
const FlywheelOrderBookSummary = Schema.Struct({
|
|
5189
|
+
id: Schema.String,
|
|
5190
|
+
name: Schema.String,
|
|
5191
|
+
status: Schema.String,
|
|
5192
|
+
landed: Schema.Number,
|
|
5193
|
+
total: Schema.Number
|
|
5194
|
+
});
|
|
5195
|
+
const FlywheelDerivedStatus = Schema.Struct({
|
|
5196
|
+
run: FlywheelRunState,
|
|
5197
|
+
conversation: Schema.NullOr(FlywheelConversationSummary),
|
|
5198
|
+
lastTick: Schema.NullOr(FlywheelLastTick),
|
|
5199
|
+
freshness: Schema.NullOr(FlywheelFreshness),
|
|
5200
|
+
policies: FlywheelPolicies,
|
|
5201
|
+
inFlight: Schema.Array(FlywheelInFlightRow),
|
|
5202
|
+
orderBook: Schema.NullOr(FlywheelOrderBookSummary),
|
|
5203
|
+
projectRoot: Schema.String,
|
|
5204
|
+
generatedAt: Schema.String
|
|
5205
|
+
});
|
|
5206
|
+
const decodeFlywheelDerivedStatus = Schema.decodeUnknownSync(FlywheelDerivedStatus);
|
|
5207
|
+
//#endregion
|
|
5097
5208
|
//#region src/orders.ts
|
|
5098
5209
|
const OrderBookLane = Schema.Literals(["A", "B"]);
|
|
5099
5210
|
const OrderBookStatus = Schema.Literals([
|
|
@@ -9655,6 +9766,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
9655
9766
|
"required": false,
|
|
9656
9767
|
"valueHint": null
|
|
9657
9768
|
},
|
|
9769
|
+
{
|
|
9770
|
+
"flags": "--repair-ignore",
|
|
9771
|
+
"description": "Only remove Overdeck's legacy .pan/ line from .gitignore and commit that file (no copy)",
|
|
9772
|
+
"required": false,
|
|
9773
|
+
"valueHint": null
|
|
9774
|
+
},
|
|
9658
9775
|
{
|
|
9659
9776
|
"flags": "--state-root <dir>",
|
|
9660
9777
|
"description": "Override the state worktree root (tests / odd setups)",
|
|
@@ -9904,6 +10021,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
9904
10021
|
"required": true,
|
|
9905
10022
|
"valueHint": "notes"
|
|
9906
10023
|
},
|
|
10024
|
+
{
|
|
10025
|
+
"flags": "--tested-sha <sha>",
|
|
10026
|
+
"description": "Test/UAT only: the commit the run exercised (git rev-parse HEAD before the gates)",
|
|
10027
|
+
"required": true,
|
|
10028
|
+
"valueHint": "sha"
|
|
10029
|
+
},
|
|
9907
10030
|
{
|
|
9908
10031
|
"flags": "--run-id <runId>",
|
|
9909
10032
|
"description": "Review cycle ID used to deduplicate review feedback",
|
|
@@ -11352,11 +11475,273 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11352
11475
|
"aliases": [],
|
|
11353
11476
|
"category": "CLI"
|
|
11354
11477
|
},
|
|
11478
|
+
{
|
|
11479
|
+
"id": "pan-worker",
|
|
11480
|
+
"path": ["worker"],
|
|
11481
|
+
"display": "/pan worker",
|
|
11482
|
+
"description": "Registered workers: spawn an issue-linked agent and get its report back; register external agents",
|
|
11483
|
+
"args": [],
|
|
11484
|
+
"options": [],
|
|
11485
|
+
"aliases": [],
|
|
11486
|
+
"category": "CLI"
|
|
11487
|
+
},
|
|
11488
|
+
{
|
|
11489
|
+
"id": "pan-worker-run",
|
|
11490
|
+
"path": ["worker", "run"],
|
|
11491
|
+
"display": "/pan worker run",
|
|
11492
|
+
"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)",
|
|
11493
|
+
"args": [],
|
|
11494
|
+
"options": [
|
|
11495
|
+
{
|
|
11496
|
+
"flags": "--issue <id>",
|
|
11497
|
+
"description": "Issue the worker belongs to (required)",
|
|
11498
|
+
"required": true,
|
|
11499
|
+
"valueHint": "id"
|
|
11500
|
+
},
|
|
11501
|
+
{
|
|
11502
|
+
"flags": "--prompt <text>",
|
|
11503
|
+
"description": "The brief, inline",
|
|
11504
|
+
"required": true,
|
|
11505
|
+
"valueHint": "text"
|
|
11506
|
+
},
|
|
11507
|
+
{
|
|
11508
|
+
"flags": "--brief <file>",
|
|
11509
|
+
"description": "The brief, from a file",
|
|
11510
|
+
"required": true,
|
|
11511
|
+
"valueHint": "file"
|
|
11512
|
+
},
|
|
11513
|
+
{
|
|
11514
|
+
"flags": "--model <model>",
|
|
11515
|
+
"description": "Model override (default: roles.worker.model)",
|
|
11516
|
+
"required": true,
|
|
11517
|
+
"valueHint": "model"
|
|
11518
|
+
},
|
|
11519
|
+
{
|
|
11520
|
+
"flags": "--harness <harness>",
|
|
11521
|
+
"description": "Harness override (default: routed from the model)",
|
|
11522
|
+
"required": true,
|
|
11523
|
+
"valueHint": "harness"
|
|
11524
|
+
},
|
|
11525
|
+
{
|
|
11526
|
+
"flags": "--read-only",
|
|
11527
|
+
"description": "Run in the issue workspace with git writes blocked",
|
|
11528
|
+
"required": false,
|
|
11529
|
+
"valueHint": null
|
|
11530
|
+
},
|
|
11531
|
+
{
|
|
11532
|
+
"flags": "--cwd <path>",
|
|
11533
|
+
"description": "Working directory inside the issue workspace",
|
|
11534
|
+
"required": true,
|
|
11535
|
+
"valueHint": "path"
|
|
11536
|
+
},
|
|
11537
|
+
{
|
|
11538
|
+
"flags": "--parent <id>",
|
|
11539
|
+
"description": "Spawning agent or conversation (default: $OVERDECK_AGENT_ID, then $OVERDECK_CONVERSATION)",
|
|
11540
|
+
"required": true,
|
|
11541
|
+
"valueHint": "id"
|
|
11542
|
+
},
|
|
11543
|
+
{
|
|
11544
|
+
"flags": "--name <label>",
|
|
11545
|
+
"description": "Label shown in the Agents Directory",
|
|
11546
|
+
"required": true,
|
|
11547
|
+
"valueHint": "label"
|
|
11548
|
+
},
|
|
11549
|
+
{
|
|
11550
|
+
"flags": "--detach",
|
|
11551
|
+
"description": "Print the worker id and return without waiting",
|
|
11552
|
+
"required": false,
|
|
11553
|
+
"valueHint": null
|
|
11554
|
+
},
|
|
11555
|
+
{
|
|
11556
|
+
"flags": "--timeout <seconds>",
|
|
11557
|
+
"description": "Stop waiting after this many seconds (exit 3; the worker keeps running)",
|
|
11558
|
+
"required": true,
|
|
11559
|
+
"valueHint": "seconds"
|
|
11560
|
+
},
|
|
11561
|
+
{
|
|
11562
|
+
"flags": "--stop-after-report",
|
|
11563
|
+
"description": "Stop the worker after its first report",
|
|
11564
|
+
"required": false,
|
|
11565
|
+
"valueHint": null
|
|
11566
|
+
}
|
|
11567
|
+
],
|
|
11568
|
+
"aliases": [],
|
|
11569
|
+
"category": "CLI"
|
|
11570
|
+
},
|
|
11571
|
+
{
|
|
11572
|
+
"id": "pan-worker-wait",
|
|
11573
|
+
"path": ["worker", "wait"],
|
|
11574
|
+
"display": "/pan worker wait",
|
|
11575
|
+
"description": "Wait for a worker's report (same exit codes as run); the status line names its seq",
|
|
11576
|
+
"args": [{
|
|
11577
|
+
"name": "worker-id",
|
|
11578
|
+
"required": true,
|
|
11579
|
+
"variadic": false
|
|
11580
|
+
}],
|
|
11581
|
+
"options": [{
|
|
11582
|
+
"flags": "--after <seq>",
|
|
11583
|
+
"description": "Return the next report after this seq (default: the newest report, whenever written)",
|
|
11584
|
+
"required": true,
|
|
11585
|
+
"valueHint": "seq"
|
|
11586
|
+
}, {
|
|
11587
|
+
"flags": "--timeout <seconds>",
|
|
11588
|
+
"description": "Stop waiting after this many seconds (exit 3)",
|
|
11589
|
+
"required": true,
|
|
11590
|
+
"valueHint": "seconds"
|
|
11591
|
+
}],
|
|
11592
|
+
"aliases": [],
|
|
11593
|
+
"category": "CLI"
|
|
11594
|
+
},
|
|
11595
|
+
{
|
|
11596
|
+
"id": "pan-worker-report",
|
|
11597
|
+
"path": ["worker", "report"],
|
|
11598
|
+
"display": "/pan worker report",
|
|
11599
|
+
"description": "Record a worker's report (run by the worker itself)",
|
|
11600
|
+
"args": [{
|
|
11601
|
+
"name": "worker-id",
|
|
11602
|
+
"required": true,
|
|
11603
|
+
"variadic": false
|
|
11604
|
+
}],
|
|
11605
|
+
"options": [
|
|
11606
|
+
{
|
|
11607
|
+
"flags": "--file <path>",
|
|
11608
|
+
"description": "Read the Markdown report from a file",
|
|
11609
|
+
"required": true,
|
|
11610
|
+
"valueHint": "path"
|
|
11611
|
+
},
|
|
11612
|
+
{
|
|
11613
|
+
"flags": "--stdin",
|
|
11614
|
+
"description": "Read the Markdown report from stdin",
|
|
11615
|
+
"required": false,
|
|
11616
|
+
"valueHint": null
|
|
11617
|
+
},
|
|
11618
|
+
{
|
|
11619
|
+
"flags": "--status <status>",
|
|
11620
|
+
"description": "done | blocked | failed (default: done)",
|
|
11621
|
+
"required": true,
|
|
11622
|
+
"valueHint": "status"
|
|
11623
|
+
}
|
|
11624
|
+
],
|
|
11625
|
+
"aliases": [],
|
|
11626
|
+
"category": "CLI"
|
|
11627
|
+
},
|
|
11628
|
+
{
|
|
11629
|
+
"id": "pan-worker-list",
|
|
11630
|
+
"path": ["worker", "list"],
|
|
11631
|
+
"display": "/pan worker list",
|
|
11632
|
+
"description": "List workers with their parent, live state and newest report",
|
|
11633
|
+
"args": [],
|
|
11634
|
+
"options": [
|
|
11635
|
+
{
|
|
11636
|
+
"flags": "--issue <id>",
|
|
11637
|
+
"description": "Only this issue's workers",
|
|
11638
|
+
"required": true,
|
|
11639
|
+
"valueHint": "id"
|
|
11640
|
+
},
|
|
11641
|
+
{
|
|
11642
|
+
"flags": "--parent <id>",
|
|
11643
|
+
"description": "Only workers of this parent",
|
|
11644
|
+
"required": true,
|
|
11645
|
+
"valueHint": "id"
|
|
11646
|
+
},
|
|
11647
|
+
{
|
|
11648
|
+
"flags": "--json",
|
|
11649
|
+
"description": "Print JSON",
|
|
11650
|
+
"required": false,
|
|
11651
|
+
"valueHint": null
|
|
11652
|
+
}
|
|
11653
|
+
],
|
|
11654
|
+
"aliases": [],
|
|
11655
|
+
"category": "CLI"
|
|
11656
|
+
},
|
|
11657
|
+
{
|
|
11658
|
+
"id": "pan-worker-register",
|
|
11659
|
+
"path": ["worker", "register"],
|
|
11660
|
+
"display": "/pan worker register",
|
|
11661
|
+
"description": "Record an agent another tool launched so the Agents Directory shows it (read-only; prints its id)",
|
|
11662
|
+
"args": [],
|
|
11663
|
+
"options": [
|
|
11664
|
+
{
|
|
11665
|
+
"flags": "--source <name>",
|
|
11666
|
+
"description": "Who launched it ([a-z0-9-], not codex-plugin) (required)",
|
|
11667
|
+
"required": true,
|
|
11668
|
+
"valueHint": "name"
|
|
11669
|
+
},
|
|
11670
|
+
{
|
|
11671
|
+
"flags": "--external-id <id>",
|
|
11672
|
+
"description": "The launcher's id for it (required)",
|
|
11673
|
+
"required": true,
|
|
11674
|
+
"valueHint": "id"
|
|
11675
|
+
},
|
|
11676
|
+
{
|
|
11677
|
+
"flags": "--harness <harness>",
|
|
11678
|
+
"description": "codex, claude-code, … (required)",
|
|
11679
|
+
"required": true,
|
|
11680
|
+
"valueHint": "harness"
|
|
11681
|
+
},
|
|
11682
|
+
{
|
|
11683
|
+
"flags": "--model <model>",
|
|
11684
|
+
"description": "Model it runs",
|
|
11685
|
+
"required": true,
|
|
11686
|
+
"valueHint": "model"
|
|
11687
|
+
},
|
|
11688
|
+
{
|
|
11689
|
+
"flags": "--cwd <path>",
|
|
11690
|
+
"description": "Its working directory",
|
|
11691
|
+
"required": true,
|
|
11692
|
+
"valueHint": "path"
|
|
11693
|
+
},
|
|
11694
|
+
{
|
|
11695
|
+
"flags": "--issue <id>",
|
|
11696
|
+
"description": "Issue it works on",
|
|
11697
|
+
"required": true,
|
|
11698
|
+
"valueHint": "id"
|
|
11699
|
+
},
|
|
11700
|
+
{
|
|
11701
|
+
"flags": "--parent <id>",
|
|
11702
|
+
"description": "Spawning agent id, conversation tmux session, or claude-session:<uuid>",
|
|
11703
|
+
"required": true,
|
|
11704
|
+
"valueHint": "id"
|
|
11705
|
+
},
|
|
11706
|
+
{
|
|
11707
|
+
"flags": "--label <text>",
|
|
11708
|
+
"description": "Label shown in the Agents Directory",
|
|
11709
|
+
"required": true,
|
|
11710
|
+
"valueHint": "text"
|
|
11711
|
+
},
|
|
11712
|
+
{
|
|
11713
|
+
"flags": "--pid <n>",
|
|
11714
|
+
"description": "Its process id (liveness is read from it)",
|
|
11715
|
+
"required": true,
|
|
11716
|
+
"valueHint": "n"
|
|
11717
|
+
},
|
|
11718
|
+
{
|
|
11719
|
+
"flags": "--transcript <path>",
|
|
11720
|
+
"description": "Its transcript file",
|
|
11721
|
+
"required": true,
|
|
11722
|
+
"valueHint": "path"
|
|
11723
|
+
},
|
|
11724
|
+
{
|
|
11725
|
+
"flags": "--session-id <id>",
|
|
11726
|
+
"description": "Its session or thread id",
|
|
11727
|
+
"required": true,
|
|
11728
|
+
"valueHint": "id"
|
|
11729
|
+
},
|
|
11730
|
+
{
|
|
11731
|
+
"flags": "--json",
|
|
11732
|
+
"description": "Print { id, created }",
|
|
11733
|
+
"required": false,
|
|
11734
|
+
"valueHint": null
|
|
11735
|
+
}
|
|
11736
|
+
],
|
|
11737
|
+
"aliases": [],
|
|
11738
|
+
"category": "CLI"
|
|
11739
|
+
},
|
|
11355
11740
|
{
|
|
11356
11741
|
"id": "pan-flywheel",
|
|
11357
11742
|
"path": ["flywheel"],
|
|
11358
11743
|
"display": "/pan flywheel",
|
|
11359
|
-
"description": "Start, stop, or
|
|
11744
|
+
"description": "Start, stop, pause, resume, or inspect the flywheel conversation",
|
|
11360
11745
|
"args": [],
|
|
11361
11746
|
"options": [],
|
|
11362
11747
|
"aliases": [],
|
|
@@ -11386,6 +11771,18 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11386
11771
|
"description": "Working directory (default: cwd)",
|
|
11387
11772
|
"required": true,
|
|
11388
11773
|
"valueHint": "path"
|
|
11774
|
+
},
|
|
11775
|
+
{
|
|
11776
|
+
"flags": "--orders <book-id>",
|
|
11777
|
+
"description": "Order book the flywheel works from",
|
|
11778
|
+
"required": true,
|
|
11779
|
+
"valueHint": "book-id"
|
|
11780
|
+
},
|
|
11781
|
+
{
|
|
11782
|
+
"flags": "--fresh",
|
|
11783
|
+
"description": "Replace a paused flywheel conversation instead of refusing",
|
|
11784
|
+
"required": false,
|
|
11785
|
+
"valueHint": null
|
|
11389
11786
|
}
|
|
11390
11787
|
],
|
|
11391
11788
|
"aliases": [],
|
|
@@ -11395,7 +11792,52 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11395
11792
|
"id": "pan-flywheel-stop",
|
|
11396
11793
|
"path": ["flywheel", "stop"],
|
|
11397
11794
|
"display": "/pan flywheel stop",
|
|
11398
|
-
"description": "
|
|
11795
|
+
"description": "Ask the loop to write its report, wait for it, then pause",
|
|
11796
|
+
"args": [],
|
|
11797
|
+
"options": [{
|
|
11798
|
+
"flags": "--timeout <ms>",
|
|
11799
|
+
"description": "How long to wait for the report (default 120000)",
|
|
11800
|
+
"required": true,
|
|
11801
|
+
"valueHint": "ms"
|
|
11802
|
+
}],
|
|
11803
|
+
"aliases": [],
|
|
11804
|
+
"category": "Flywheel"
|
|
11805
|
+
},
|
|
11806
|
+
{
|
|
11807
|
+
"id": "pan-flywheel-abort",
|
|
11808
|
+
"path": ["flywheel", "abort"],
|
|
11809
|
+
"display": "/pan flywheel abort",
|
|
11810
|
+
"description": "Stop the flywheel conversation without a report",
|
|
11811
|
+
"args": [],
|
|
11812
|
+
"options": [],
|
|
11813
|
+
"aliases": [],
|
|
11814
|
+
"category": "Flywheel"
|
|
11815
|
+
},
|
|
11816
|
+
{
|
|
11817
|
+
"id": "pan-flywheel-pause",
|
|
11818
|
+
"path": ["flywheel", "pause"],
|
|
11819
|
+
"display": "/pan flywheel pause",
|
|
11820
|
+
"description": "Stop the flywheel session, keeping its conversation and transcript",
|
|
11821
|
+
"args": [],
|
|
11822
|
+
"options": [],
|
|
11823
|
+
"aliases": [],
|
|
11824
|
+
"category": "Flywheel"
|
|
11825
|
+
},
|
|
11826
|
+
{
|
|
11827
|
+
"id": "pan-flywheel-resume",
|
|
11828
|
+
"path": ["flywheel", "resume"],
|
|
11829
|
+
"display": "/pan flywheel resume",
|
|
11830
|
+
"description": "Respawn a paused flywheel and re-send /pan-flywheel",
|
|
11831
|
+
"args": [],
|
|
11832
|
+
"options": [],
|
|
11833
|
+
"aliases": [],
|
|
11834
|
+
"category": "Flywheel"
|
|
11835
|
+
},
|
|
11836
|
+
{
|
|
11837
|
+
"id": "pan-flywheel-report",
|
|
11838
|
+
"path": ["flywheel", "report"],
|
|
11839
|
+
"display": "/pan flywheel report",
|
|
11840
|
+
"description": "Ask a running loop for its report, or print .pan/flywheel/report.md",
|
|
11399
11841
|
"args": [],
|
|
11400
11842
|
"options": [],
|
|
11401
11843
|
"aliases": [],
|
|
@@ -11405,7 +11847,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11405
11847
|
"id": "pan-flywheel-status",
|
|
11406
11848
|
"path": ["flywheel", "status"],
|
|
11407
11849
|
"display": "/pan flywheel status",
|
|
11408
|
-
"description": "
|
|
11850
|
+
"description": "Show the derived flywheel status: run, last tick, policies, in-flight issues, order book",
|
|
11409
11851
|
"args": [],
|
|
11410
11852
|
"options": [{
|
|
11411
11853
|
"flags": "--json",
|
|
@@ -11416,6 +11858,26 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11416
11858
|
"aliases": [],
|
|
11417
11859
|
"category": "Flywheel"
|
|
11418
11860
|
},
|
|
11861
|
+
{
|
|
11862
|
+
"id": "pan-flywheel-stats",
|
|
11863
|
+
"path": ["flywheel", "stats"],
|
|
11864
|
+
"display": "/pan flywheel stats",
|
|
11865
|
+
"description": "Substrate-bug discovery rate and P0 count, computed from the tracker and forge",
|
|
11866
|
+
"args": [],
|
|
11867
|
+
"options": [{
|
|
11868
|
+
"flags": "--json",
|
|
11869
|
+
"description": "Output as JSON",
|
|
11870
|
+
"required": false,
|
|
11871
|
+
"valueHint": null
|
|
11872
|
+
}, {
|
|
11873
|
+
"flags": "--window <days>",
|
|
11874
|
+
"description": "Window in days (default 30)",
|
|
11875
|
+
"required": true,
|
|
11876
|
+
"valueHint": "days"
|
|
11877
|
+
}],
|
|
11878
|
+
"aliases": [],
|
|
11879
|
+
"category": "Flywheel"
|
|
11880
|
+
},
|
|
11419
11881
|
{
|
|
11420
11882
|
"id": "pan-merge",
|
|
11421
11883
|
"path": ["merge"],
|
|
@@ -12888,6 +13350,97 @@ function isAgentRole(value) {
|
|
|
12888
13350
|
return typeof value === "string" && AGENT_ROLES.includes(value);
|
|
12889
13351
|
}
|
|
12890
13352
|
//#endregion
|
|
12891
|
-
|
|
13353
|
+
//#region src/agent-directory.ts
|
|
13354
|
+
const DirectoryEntryKind = Schema.Literals([
|
|
13355
|
+
"agent",
|
|
13356
|
+
"conversation",
|
|
13357
|
+
"subagent",
|
|
13358
|
+
"external"
|
|
13359
|
+
]);
|
|
13360
|
+
const DirectoryEntryState = Schema.Literals([
|
|
13361
|
+
"working",
|
|
13362
|
+
"idle",
|
|
13363
|
+
"blocked",
|
|
13364
|
+
"done",
|
|
13365
|
+
"stopped",
|
|
13366
|
+
"unknown"
|
|
13367
|
+
]);
|
|
13368
|
+
const DirectoryEntrySource = Schema.Literals([
|
|
13369
|
+
"overdeck",
|
|
13370
|
+
"pane",
|
|
13371
|
+
"conversation",
|
|
13372
|
+
"claude-subagent",
|
|
13373
|
+
"codex-subagent",
|
|
13374
|
+
"registered",
|
|
13375
|
+
"codex-plugin"
|
|
13376
|
+
]);
|
|
13377
|
+
const DirectoryTranscriptRef = Schema.Union([
|
|
13378
|
+
Schema.Struct({
|
|
13379
|
+
route: Schema.Literal("agent"),
|
|
13380
|
+
agentId: Schema.String
|
|
13381
|
+
}),
|
|
13382
|
+
Schema.Struct({
|
|
13383
|
+
route: Schema.Literal("agent-subagent"),
|
|
13384
|
+
agentId: Schema.String,
|
|
13385
|
+
subagentId: Schema.String
|
|
13386
|
+
}),
|
|
13387
|
+
Schema.Struct({
|
|
13388
|
+
route: Schema.Literal("conversation"),
|
|
13389
|
+
conversationName: Schema.String
|
|
13390
|
+
}),
|
|
13391
|
+
Schema.Struct({
|
|
13392
|
+
route: Schema.Literal("conversation-subagent"),
|
|
13393
|
+
conversationName: Schema.String,
|
|
13394
|
+
subagentId: Schema.String
|
|
13395
|
+
})
|
|
13396
|
+
]);
|
|
13397
|
+
const DirectoryEntryLocation = Schema.Literals(["local", "remote"]);
|
|
13398
|
+
const DirectoryEntry = Schema.Struct({
|
|
13399
|
+
id: Schema.String,
|
|
13400
|
+
kind: DirectoryEntryKind,
|
|
13401
|
+
label: Schema.String,
|
|
13402
|
+
location: DirectoryEntryLocation,
|
|
13403
|
+
/** projects.yaml key; `unassigned` when none (D5). */
|
|
13404
|
+
projectKey: Schema.String,
|
|
13405
|
+
/** Uppercase issue id, e.g. `PAN-3920`. */
|
|
13406
|
+
issueId: Schema.NullOr(Schema.String),
|
|
13407
|
+
/** The issue's title from the dashboard's tracker cache; null when unknown. */
|
|
13408
|
+
issueTitle: Schema.NullOr(Schema.String),
|
|
13409
|
+
parentId: Schema.NullOr(Schema.String),
|
|
13410
|
+
role: Schema.NullOr(Schema.String),
|
|
13411
|
+
/** `unknown` when not known. */
|
|
13412
|
+
harness: Schema.String,
|
|
13413
|
+
/** `unknown` when not known. */
|
|
13414
|
+
model: Schema.String,
|
|
13415
|
+
state: DirectoryEntryState,
|
|
13416
|
+
startedAt: Schema.NullOr(Schema.String),
|
|
13417
|
+
lastActivityAt: Schema.NullOr(Schema.String),
|
|
13418
|
+
costUsd: Schema.NullOr(Schema.Number),
|
|
13419
|
+
source: DirectoryEntrySource,
|
|
13420
|
+
transcript: Schema.NullOr(DirectoryTranscriptRef)
|
|
13421
|
+
});
|
|
13422
|
+
const AgentDirectoryResponse = Schema.Struct({
|
|
13423
|
+
generatedAt: Schema.String,
|
|
13424
|
+
windowHours: Schema.Number,
|
|
13425
|
+
entries: Schema.Array(DirectoryEntry)
|
|
13426
|
+
});
|
|
13427
|
+
//#endregion
|
|
13428
|
+
//#region src/companion-terminal.ts
|
|
13429
|
+
/**
|
|
13430
|
+
* Which companion terminal a conversation gets, or `null` for "keep the
|
|
13431
|
+
* owner pane as TERMINAL". A Codex conversation still on the legacy
|
|
13432
|
+
* `codex.transport: tui` runs the native TUI in its owner pane; the server
|
|
13433
|
+
* adapter reports that as `unsupported` and points at the runtime pane.
|
|
13434
|
+
*/
|
|
13435
|
+
function companionTerminalKindFor(conversation) {
|
|
13436
|
+
if (conversation.harness === "opencode") return "opencode-attach";
|
|
13437
|
+
if (conversation.harness === "codex") return "codex-resume-remote";
|
|
13438
|
+
return null;
|
|
13439
|
+
}
|
|
13440
|
+
/** Body keys each mutation accepts. Anything else is rejected as target injection. */
|
|
13441
|
+
const COMPANION_TERMINAL_OPEN_BODY_KEYS = [];
|
|
13442
|
+
const COMPANION_TERMINAL_CLOSE_BODY_KEYS = ["generation"];
|
|
13443
|
+
//#endregion
|
|
13444
|
+
export { ACP_BEHAVIOR, AGENT_ROLES, Activity, ActivityDetailedEvent, ActivityEntryEvent, ActivityTtsEvent, ActivityUpdatedEvent, AdmissionState, AgentActivityChangedEvent, AgentChannelReply, AgentChannelReplyEvent, AgentCompletedEvent, AgentContextSaturationChangedEvent, AgentCreatedEvent, AgentCurrentIssueSetEvent, AgentDirectoryResponse, AgentEnrichmentChangedEvent, AgentHealthKind, AgentHealthSnapshot, AgentHealthStatus, AgentHeartbeatDeadEvent, AgentHookFiredEvent, AgentId, AgentMessageReceivedEvent, AgentModelSetEvent, AgentOutput, AgentOutputReceivedEvent, AgentPermissionRequestedEvent, AgentPermissionResolvedEvent, AgentResolution, AgentResolutionChangedEvent, AgentRuntimeSnapshot, AgentSnapshot, AgentStartedEvent, AgentStateRestoredEvent, AgentStatus, AgentStatusChangedEvent, AgentStoppedEvent, AgentThinkingStartedEvent, AgentThinkingStoppedEvent, AgentTurnDiffCompletedEvent, AgentWaitingClearedEvent, AgentWaitingStartedEvent, ArtifactAgentHarness, ArtifactAgentRole, ArtifactCreateResponse, ArtifactDetailResponse, ArtifactHash, ArtifactId, ArtifactLifecycleState, ArtifactListEntry, ArtifactListResponse, ArtifactMetadata, ArtifactPublishResponse, ArtifactSlug, ArtifactStatusResponse, ArtifactUnshareResponse, ArtifactUrls, ArtifactValidationCode, ArtifactValidationFinding, ArtifactValidationResult, BackendPane, BackendPaneChangedEvent, BackendPaneRemovedEvent, BeadsFreshnessChangedEvent, CHANNEL_REPLY_KIND_VALUES, CLAUDE_CODE_BEHAVIOR, CODEX_BEHAVIOR, COMPANION_TERMINAL_CLOSE_BODY_KEYS, COMPANION_TERMINAL_OPEN_BODY_KEYS, COMPOSER_COMMAND_INSERT_OVERRIDES, COMPOSER_COMMAND_MANIFEST, COMPOSER_COMMAND_VARIANTS, CONTEXT_LAYER_KINDS, CONTEXT_PREVIEW_HARNESSES, ChannelPermissionRequestSnapshot, ChannelReplyArtifactRef, ChannelReplyKind, ChatMessage, ClaudeChannelPermissionBehavior, CompactBoundary, ContextEditableLayerRecord, ContextHarnessPreviews, ContextLayerDraft, ContextLayerKind, ContextLayerSaveRequest, ContextLayerSaveResponse, ContextLayerTarget, ContextLayersResponse, ContextPreviewDiagnostic, ContextPreviewHarness, ContextPreviewRequest, ContextPreviewResponse, ContextProjectSummary, ContextSyncRequest, ContextSyncResponse, ContextSyncTarget, ContextUsage, ContextWorkspaceSummary, ConversationCompactingChangedEvent, ConversationCostSummary, ConversationCreatedEvent, ConversationEvent, ConversationFilter, ConversationMovedEvent, ConversationPermissionChangedEvent, ConversationResponse, ConversationTitleChangedEvent, CostEventRecordedEvent, DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE, DEFAULT_MAX_TURN_DIFF_SUMMARIES_PER_AGENT, DashboardLifecycleCompletedEvent, DashboardLifecycleFailedEvent, DashboardLifecycleStartedEvent, DashboardSnapshot, DeepWipeRpc, DeployStalenessSnapshot, DerivedBranchState, DerivedIssueState, DerivedPrState, DirectoryEntry, DirectoryEntryKind, DirectoryEntryLocation, DirectoryEntrySource, DirectoryEntryState, DirectoryTranscriptRef, DiscoveredSessionSnapshot, DomainEvent, EDITORS, EditorIdSchema, EmbedProgressEvent, EmbedProgressSnapshot, EmbedSessionsRpc, EnrichCompleteEvent, EnrichProgressEvent, EnrichProgressSnapshot, EnrichSessionsRpc, EnrichStatsSnapshot, ExtractionProviderConfig, ExtractionProviderTarget, FeatureNode, FeatureRegistryEntry, FeatureRegistryStatus, FlywheelAgent, FlywheelAgentStatus, FlywheelBugRateCriterion, FlywheelConversationSummary, FlywheelDerivedStatus, FlywheelEffort, FlywheelFreshness, FlywheelHarness, FlywheelHeadline, FlywheelHttpUrl, FlywheelInFlightRow, FlywheelJournalSummary, FlywheelLastTick, FlywheelOrchestrator, FlywheelOrderBookSummary, FlywheelOrders, FlywheelP0Criterion, FlywheelParkedItem, FlywheelPipelineItem, FlywheelPipelineStatus, FlywheelPipelineVerb, FlywheelPolicies, FlywheelRunId, FlywheelRunState, FlywheelScope, FlywheelStats, FlywheelStatsCriterionStatus, FlywheelStatsTrend, FlywheelStatsWindow, FlywheelStatus, FlywheelSubstrateBug, FlywheelSubstrateBugRow, FlywheelSubstrateBugStatus, FlywheelSubstrateSeverity, FlywheelSuggestion, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSystemStatus, GetAvailableEditorsRpc, GetConversationCostByWorkspaceRpc, GetConversationCostRpc, GetConversationStatsRpc, GetDiscoveredSessionRpc, GetSessionsFeedFacetsRpc, GetSnapshotRpc, GlobalContextLayerRecord, GlobalContextLayerTarget, HOOK_INVENTORY, HealthReason, HealthState, HostHealthMetrics, HostPlatform, HygieneFinding, HygienePullRequest, HygieneReport, INITIAL_READ_MODEL_STATE, ISSUE_ATTENTIONS, ISSUE_STATES, ISSUE_STATE_PRECEDENCE, IssueAttention, IssueId, IssueState, IssueStateChangedEvent, IssueStatusChangedEvent, IssueTransitionedEvent, IssuesDeltaEvent, IssuesSnapshotEvent, IssuesUpdatedEvent, KIMI_CODE_BEHAVIOR, KNOWN_HARNESSES, LegacySystemHealthSummary, LegacyWebhookRelaySummary, LinearMcpAuthCallbackRelayedEvent, LinearMcpAuthHealthyEvent, LinearMcpAuthNotifiedEvent, LinearMcpAuthRequiredEvent, ListDiscoveredSessionsRpc, ListSessionsFeedRpc, MAX_CHANNEL_REPLY_ARTIFACT_LABEL_LENGTH, MAX_CHANNEL_REPLY_ARTIFACT_REFS, MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH, MAX_CHANNEL_REPLY_SUMMARY_LENGTH, MEMBERSHIP_UNAVAILABLE_REASONS, MUSE_BEHAVIOR, MemoryAgentRole, MemoryHealthChangedEvent, MemoryIdentity, MemoryObservation, MemoryObservationCreatedEvent, MemoryResetMarkerCreatedEvent, MemoryRollupTriggeredEvent, MemoryStatus, MemoryStatusPhase, MemoryStatusUpdatedEvent, MemoryTokenUsage, MergeReadyEvent, ModelOrigin, ModelOriginEntry, OHMYPI_BEHAVIOR, OPENCODE_BEHAVIOR, OVERDECK_AGENT_PROTOCOL_VERSION, OVERDECK_DASHBOARD_PROTOCOL_VERSION, OpenInEditorInput, OperatorInterventionEvent, OrderBook, OrderBookIndexEntry, OrderBookItem, OrderBookLane, OrderBookPosture, OrderBookSettings, OrderBookStatus, PanRpcError, PanRpcGroup, PendingTurn, PipelineReviewCompletedEvent, PipelineReviewStartedEvent, PipelineTestCompletedEvent, PipelineTestStartedEvent, PipelineVerificationFailedEvent, PipelineVerificationStartedEvent, PlanItemStatusChangedEvent, PlanItemsUnblockedEvent, PlanSubitemStatusChangedEvent, PlanningFailedEvent, PlanningStartedEvent, PlanningSyncEvent, PrChecksState, PrReviewState, ProjectCiHeadObservedEvent, ProjectCiSnapshot, ProjectCiSuite, ProjectCiSuiteObservedEvent, ProjectContextLayerRecord, ProjectContextLayerTarget, ProjectSessionTree, ProposedPlan, RagDecision, RagDecisionSource, ReadFileAtPathInput, ReadFileAtPathResult, ReadFileAtPathRpc, ReadWorkspaceFileInput, ReadWorkspaceFileResult, ReadWorkspaceFileRpc, ReplayEventsRpc, ResetMarker, ResetMarkerScope, ResizeTerminalRpc, ResolveFilePathExistsInput, ResolveFilePathExistsResult, ResolveFilePathExistsRpc, ResourceStats, ResourcesUpdatedEvent, RestartGateChangedEvent, RestartGateKind, RestartGateOutcome, RestartGateRequest, RestartGateSnapshot, ReviewApprovedEvent, ReviewCoordinatorDiedEvent, ReviewCoordinatorStartedEvent, ReviewReviewerCompletedEvent, ReviewReviewerStartedEvent, ReviewSpecialistTimedOutEvent, ReviewVerdictDispatchedEvent, ReviewVerdictRejectedEvent, ReviewVerdictRestoreBlockedEvent, ReviewerRoundMetadata, ReviewerRoundSummary, Role, ScanCompleteEvent, ScanConversationsRpc, ScanProgressEvent, ScanProgressSnapshot, ScanResult, ScanStartedEvent, SearchConversationsRpc, SendTerminalInputRpc, SequenceNumber, ServiceHealthSnapshot, ServiceHealthStatus, SessionNode, SessionNodePresence, SessionNodeType, SessionTreeDelta, SessionsFeedFacetsSnapshot, SessionsFeedRowSnapshot, SessionsFeedSource, ShadowInferenceUpdateEvent, ShellOpenInEditorRpc, SpecialistCompletedEvent, SpecialistFailedEvent, SpecialistLifecycle, SpecialistStartedEvent, StartAgentRpc, StartPlanningRpc, SubagentSummary, SubscribeAgentOutputRpc, SubscribeConversationMessagesRpc, SubscribeDomainEventsRpc, SubscribeIssueEventsRpc, SubscribeProjectSessionTreeRpc, SubscribeTerminalRpc, SubstrateBugFiledEvent, SweepEscalatedEvent, SweepRecommendationEvent, SweepScanEvent, SystemHealthConsumer, SystemHealthSeverityChangedEvent, SystemHealthSnapshot, SystemHeartbeatEvent, TELEMETRY_CLI_VERBS, TELEMETRY_EVENT_CATALOG, TELEMETRY_EVENT_NAMES, TELEMETRY_PROPERTY_DOMAINS, TERMINAL_BACKEND_NAMES, TerminalCloseRpc, TerminalOpenRpc, TerminalOutput, TerminalResizeRpc, TerminalWriteRpc, TestPassedEvent, ThinkingState, TickMarker, TickMarkerPhase, TurnDiffFileChange, TurnDiffSummary, WIRED_HOOK_INVENTORY, WIRED_HOOK_NAMES, WS_METHODS, WaitingReason, WaitingState, WorkCompletedEvent, WorkLogEntry, WorkspaceAbortedEvent, WorkspaceArtifactsResponse, WorkspaceContextLayerRecord, WorkspaceContextLayerTarget, WorkspaceCreatedEvent, WorkspaceDeletedEvent, WorkspaceDestroyedEvent, WorkspaceWipeStartedEvent, WriteFileAtPathInput, WriteFileAtPathResult, WriteFileAtPathRpc, applyEvent, applyEvents, applyIssueDelta, companionTerminalKindFor, compareIssueIds, createIssueDelta, decodeFlywheelDerivedStatus, decodeFlywheelStats, deriveProjectCi, encodeFlywheelStats, getHarness, getHarnessBehavior, getMaxMemoryObservationsPerIssue, getMaxTurnDiffSummariesPerAgent, getRuntimeBehavior, isAgentRole, isAgentSessionName, isChannelReplyKind, isIssueAttention, isIssueState, isTerminalBackendName, isTerminalTurnDiffSummaryStatus, normalizeChannelReplyPayload, omitTurnDiffSummariesForAgent, projectLegacySystemHealthSummary, syncSnapshot, trimMemoryObservations, trimTurnDiffSummaries };
|
|
12892
13445
|
|
|
12893
13446
|
//# sourceMappingURL=index.mjs.map
|