@overdeck/contracts 0.64.0 → 0.65.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 +532 -81
- package/dist/index.d.ts +149 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +532 -81
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -3195,6 +3195,30 @@ const OpenInEditorInput = Schema.Struct({
|
|
|
3195
3195
|
editor: EditorIdSchema
|
|
3196
3196
|
});
|
|
3197
3197
|
//#endregion
|
|
3198
|
+
//#region src/effort.ts
|
|
3199
|
+
/**
|
|
3200
|
+
* Canonical reasoning-effort levels, end to end. `xhigh` was added in Opus 4.7
|
|
3201
|
+
* (between `high` and `max`); `max` predates it (Opus 4.6+/Sonnet 4.6). This is
|
|
3202
|
+
* the single source of truth for the enum — every other copy in the codebase
|
|
3203
|
+
* derives from it.
|
|
3204
|
+
*/
|
|
3205
|
+
const EFFORT_LEVELS = [
|
|
3206
|
+
"low",
|
|
3207
|
+
"medium",
|
|
3208
|
+
"high",
|
|
3209
|
+
"xhigh",
|
|
3210
|
+
"max"
|
|
3211
|
+
];
|
|
3212
|
+
const DEFAULT_EFFORT = "high";
|
|
3213
|
+
const EffortLevelSchema = Schema.Literals(EFFORT_LEVELS);
|
|
3214
|
+
function isEffortLevel(value) {
|
|
3215
|
+
return typeof value === "string" && EFFORT_LEVELS.includes(value);
|
|
3216
|
+
}
|
|
3217
|
+
/** Compares two effort levels by rank; negative when `a` is lower than `b`. */
|
|
3218
|
+
function compareEffort(a, b) {
|
|
3219
|
+
return EFFORT_LEVELS.indexOf(a) - EFFORT_LEVELS.indexOf(b);
|
|
3220
|
+
}
|
|
3221
|
+
//#endregion
|
|
3198
3222
|
//#region src/rpc.ts
|
|
3199
3223
|
const WS_METHODS = {
|
|
3200
3224
|
scanConversations: "pan.scanConversations",
|
|
@@ -3280,6 +3304,8 @@ const ContextUsage = Schema.Struct({
|
|
|
3280
3304
|
maxObservedInputTokens: Schema.optional(Schema.Number),
|
|
3281
3305
|
/** Model the most recent assistant turn ran under (from JSONL). */
|
|
3282
3306
|
lastModel: Schema.optional(Schema.NullOr(Schema.String)),
|
|
3307
|
+
/** PAN-4255: effort observed in the transcript (assistant `effort` or an /effort confirmation). Claude Code only. */
|
|
3308
|
+
lastEffort: Schema.optional(Schema.NullOr(Schema.String)),
|
|
3283
3309
|
/** ISO timestamp of the most recent assistant turn. */
|
|
3284
3310
|
lastTurnAt: Schema.optional(Schema.NullOr(Schema.String))
|
|
3285
3311
|
});
|
|
@@ -3350,7 +3376,14 @@ const ConversationResponse = Schema.Struct({
|
|
|
3350
3376
|
proposedPlan: Schema.optional(ProposedPlan),
|
|
3351
3377
|
compactBoundaries: Schema.optional(Schema.Array(CompactBoundary)),
|
|
3352
3378
|
contextUsage: Schema.optional(Schema.NullOr(ContextUsage)),
|
|
3353
|
-
subagents: Schema.optional(Schema.Array(SubagentSummary))
|
|
3379
|
+
subagents: Schema.optional(Schema.Array(SubagentSummary)),
|
|
3380
|
+
/** PAN-4255: effort read from the agent's transcript (claude-code only). */
|
|
3381
|
+
observedEffort: Schema.optional(Schema.NullOr(EffortLevelSchema)),
|
|
3382
|
+
/** PAN-4255: the effort the agent was launched/pinned with and its EffortSource layer. */
|
|
3383
|
+
effortResolution: Schema.optional(Schema.NullOr(Schema.Struct({
|
|
3384
|
+
effort: EffortLevelSchema,
|
|
3385
|
+
source: Schema.String
|
|
3386
|
+
})))
|
|
3354
3387
|
});
|
|
3355
3388
|
const ConversationEvent = Schema.Union([
|
|
3356
3389
|
Schema.Struct({
|
|
@@ -3791,6 +3824,39 @@ const GetConversationStatsRpc = Rpc.make(WS_METHODS.getConversationStats, {
|
|
|
3791
3824
|
/** All Overdeck WebSocket RPC methods */
|
|
3792
3825
|
const PanRpcGroup = RpcGroup.make(SubscribeDomainEventsRpc, SubscribeIssueEventsRpc, SubscribeTerminalRpc, SubscribeAgentOutputRpc, GetSnapshotRpc, ReplayEventsRpc, ReadWorkspaceFileRpc, ReadFileAtPathRpc, WriteFileAtPathRpc, ResolveFilePathExistsRpc, TerminalOpenRpc, TerminalWriteRpc, TerminalResizeRpc, TerminalCloseRpc, StartPlanningRpc, StartAgentRpc, DeepWipeRpc, SendTerminalInputRpc, ResizeTerminalRpc, SubscribeConversationMessagesRpc, SubscribeProjectSessionTreeRpc, ShellOpenInEditorRpc, GetAvailableEditorsRpc, ScanConversationsRpc, SearchConversationsRpc, ListDiscoveredSessionsRpc, ListSessionsFeedRpc, GetSessionsFeedFacetsRpc, GetDiscoveredSessionRpc, EnrichSessionsRpc, EmbedSessionsRpc, GetConversationCostRpc, GetConversationCostByWorkspaceRpc, GetConversationStatsRpc);
|
|
3793
3826
|
//#endregion
|
|
3827
|
+
//#region src/agent-runtime-merge.ts
|
|
3828
|
+
function defaultRuntimeSnapshot(agentId, timestamp, sequence) {
|
|
3829
|
+
return {
|
|
3830
|
+
id: agentId,
|
|
3831
|
+
activity: "idle",
|
|
3832
|
+
lastActivity: timestamp,
|
|
3833
|
+
updatedAtSequence: sequence
|
|
3834
|
+
};
|
|
3835
|
+
}
|
|
3836
|
+
/**
|
|
3837
|
+
* Merge a snapshot's runtime map into the client's, per agent. A freshly booted
|
|
3838
|
+
* server may serve an older or missing entry; a client entry with a strictly
|
|
3839
|
+
* newer `lastActivity` (or an equal stamp with a higher `updatedAtSequence`)
|
|
3840
|
+
* survives, and an agent the snapshot omits keeps its entry.
|
|
3841
|
+
*/
|
|
3842
|
+
function mergeSnapshotRuntimeById(current, incoming) {
|
|
3843
|
+
if (!incoming) return { ...current };
|
|
3844
|
+
const merged = { ...current };
|
|
3845
|
+
for (const [agentId, next] of Object.entries(incoming)) {
|
|
3846
|
+
const held = current[agentId];
|
|
3847
|
+
merged[agentId] = held && heldIsNewer(held, next) ? held : next;
|
|
3848
|
+
}
|
|
3849
|
+
return merged;
|
|
3850
|
+
}
|
|
3851
|
+
/** Newer `lastActivity` wins; equal stamps fall to the higher `updatedAtSequence`. */
|
|
3852
|
+
function heldIsNewer(held, next) {
|
|
3853
|
+
const heldAt = Date.parse(held.lastActivity);
|
|
3854
|
+
const nextAt = Date.parse(next.lastActivity);
|
|
3855
|
+
if (heldAt > nextAt) return true;
|
|
3856
|
+
if (heldAt !== nextAt) return false;
|
|
3857
|
+
return Number.isFinite(held.updatedAtSequence) && Number.isFinite(next.updatedAtSequence) && held.updatedAtSequence > next.updatedAtSequence;
|
|
3858
|
+
}
|
|
3859
|
+
//#endregion
|
|
3794
3860
|
//#region src/issue-delta.ts
|
|
3795
3861
|
function createIssueDelta(previous, next) {
|
|
3796
3862
|
const changes = [];
|
|
@@ -3906,14 +3972,6 @@ function removeAgentFromSessionIndex(agentIdBySessionId, agentId) {
|
|
|
3906
3972
|
for (const [sessionId, id] of Object.entries(agentIdBySessionId ?? {})) if (id !== agentId) next[sessionId] = id;
|
|
3907
3973
|
return next;
|
|
3908
3974
|
}
|
|
3909
|
-
function defaultRuntimeSnapshot(agentId, timestamp, sequence) {
|
|
3910
|
-
return {
|
|
3911
|
-
id: agentId,
|
|
3912
|
-
activity: "idle",
|
|
3913
|
-
lastActivity: timestamp,
|
|
3914
|
-
updatedAtSequence: sequence
|
|
3915
|
-
};
|
|
3916
|
-
}
|
|
3917
3975
|
/**
|
|
3918
3976
|
* Bump runtimeSnapshotSequence on the corresponding AgentSnapshot (if present)
|
|
3919
3977
|
* so low-frequency subscribers can cheaply detect a runtime change. No-op if
|
|
@@ -3946,16 +4004,17 @@ function syncSnapshot(state, snapshot) {
|
|
|
3946
4004
|
channelPermissionRequestIdsByAgentId[request.agentId] = [...existing, request.requestId];
|
|
3947
4005
|
}
|
|
3948
4006
|
const memory = snapshot.memory;
|
|
4007
|
+
const agentRuntimeById = mergeSnapshotRuntimeById(state.agentRuntimeById, snapshot.agentRuntimeById);
|
|
3949
4008
|
const agentIdBySessionId = {};
|
|
3950
4009
|
for (const agent of snapshot.agents) if (agent.sessionId) agentIdBySessionId[agent.sessionId] = agent.id;
|
|
3951
|
-
for (const [agentId, runtime] of Object.entries(
|
|
4010
|
+
for (const [agentId, runtime] of Object.entries(agentRuntimeById)) if (runtime.claudeSessionId) agentIdBySessionId[runtime.claudeSessionId] = agentId;
|
|
3952
4011
|
return {
|
|
3953
4012
|
...state,
|
|
3954
4013
|
sequence: snapshot.sequence,
|
|
3955
4014
|
agentsById,
|
|
3956
4015
|
derivedIssueStateByIssueId,
|
|
3957
4016
|
backendPanesById,
|
|
3958
|
-
agentRuntimeById
|
|
4017
|
+
agentRuntimeById,
|
|
3959
4018
|
channelPermissionRequestsById,
|
|
3960
4019
|
channelPermissionRequestIdsByAgentId,
|
|
3961
4020
|
resolvedChannelPermissionDecisionsById: {},
|
|
@@ -5287,30 +5346,6 @@ function deriveProjectCi(record) {
|
|
|
5287
5346
|
};
|
|
5288
5347
|
}
|
|
5289
5348
|
//#endregion
|
|
5290
|
-
//#region src/effort.ts
|
|
5291
|
-
/**
|
|
5292
|
-
* Canonical reasoning-effort levels, end to end. `xhigh` was added in Opus 4.7
|
|
5293
|
-
* (between `high` and `max`); `max` predates it (Opus 4.6+/Sonnet 4.6). This is
|
|
5294
|
-
* the single source of truth for the enum — every other copy in the codebase
|
|
5295
|
-
* derives from it.
|
|
5296
|
-
*/
|
|
5297
|
-
const EFFORT_LEVELS = [
|
|
5298
|
-
"low",
|
|
5299
|
-
"medium",
|
|
5300
|
-
"high",
|
|
5301
|
-
"xhigh",
|
|
5302
|
-
"max"
|
|
5303
|
-
];
|
|
5304
|
-
const DEFAULT_EFFORT = "high";
|
|
5305
|
-
const EffortLevelSchema = Schema.Literals(EFFORT_LEVELS);
|
|
5306
|
-
function isEffortLevel(value) {
|
|
5307
|
-
return typeof value === "string" && EFFORT_LEVELS.includes(value);
|
|
5308
|
-
}
|
|
5309
|
-
/** Compares two effort levels by rank; negative when `a` is lower than `b`. */
|
|
5310
|
-
function compareEffort(a, b) {
|
|
5311
|
-
return EFFORT_LEVELS.indexOf(a) - EFFORT_LEVELS.indexOf(b);
|
|
5312
|
-
}
|
|
5313
|
-
//#endregion
|
|
5314
5349
|
//#region src/flywheel.ts
|
|
5315
5350
|
const FlywheelRunId = Schema.String.check(Schema.isPattern(/^RUN-\d+$/));
|
|
5316
5351
|
const FlywheelHttpUrl = Schema.String.check(Schema.isPattern(/^https?:\/\/\S+$/i));
|
|
@@ -6977,7 +7012,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
6977
7012
|
},
|
|
6978
7013
|
{
|
|
6979
7014
|
"flags": "--adapter <adapter>",
|
|
6980
|
-
"description": "plain or
|
|
7015
|
+
"description": "plain, claude-plugin, or deft-readonly",
|
|
6981
7016
|
"required": true,
|
|
6982
7017
|
"valueHint": "adapter"
|
|
6983
7018
|
},
|
|
@@ -7098,6 +7133,146 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7098
7133
|
"aliases": [],
|
|
7099
7134
|
"category": "Core"
|
|
7100
7135
|
},
|
|
7136
|
+
{
|
|
7137
|
+
"id": "pan-skills-pack-sageox",
|
|
7138
|
+
"path": [
|
|
7139
|
+
"skills",
|
|
7140
|
+
"pack",
|
|
7141
|
+
"sageox"
|
|
7142
|
+
],
|
|
7143
|
+
"display": "/pan skills pack sageox",
|
|
7144
|
+
"description": "SageOx pack state and per-project upload opt-in (PAN-2444)",
|
|
7145
|
+
"args": [],
|
|
7146
|
+
"options": [],
|
|
7147
|
+
"aliases": [],
|
|
7148
|
+
"category": "Core"
|
|
7149
|
+
},
|
|
7150
|
+
{
|
|
7151
|
+
"id": "pan-skills-pack-sageox-status",
|
|
7152
|
+
"path": [
|
|
7153
|
+
"skills",
|
|
7154
|
+
"pack",
|
|
7155
|
+
"sageox",
|
|
7156
|
+
"status"
|
|
7157
|
+
],
|
|
7158
|
+
"display": "/pan skills pack sageox status",
|
|
7159
|
+
"description": "Show, per project, the sageox pack state and the upload state",
|
|
7160
|
+
"args": [],
|
|
7161
|
+
"options": [{
|
|
7162
|
+
"flags": "--project <key>",
|
|
7163
|
+
"description": "Only this project",
|
|
7164
|
+
"required": true,
|
|
7165
|
+
"valueHint": "key"
|
|
7166
|
+
}, {
|
|
7167
|
+
"flags": "--json",
|
|
7168
|
+
"description": "Output as JSON",
|
|
7169
|
+
"required": false,
|
|
7170
|
+
"valueHint": null
|
|
7171
|
+
}],
|
|
7172
|
+
"aliases": [],
|
|
7173
|
+
"category": "Core"
|
|
7174
|
+
},
|
|
7175
|
+
{
|
|
7176
|
+
"id": "pan-skills-pack-sageox-upload",
|
|
7177
|
+
"path": [
|
|
7178
|
+
"skills",
|
|
7179
|
+
"pack",
|
|
7180
|
+
"sageox",
|
|
7181
|
+
"upload"
|
|
7182
|
+
],
|
|
7183
|
+
"display": "/pan skills pack sageox upload",
|
|
7184
|
+
"description": "Turn SageOx uploads on or off for a project (off by default)",
|
|
7185
|
+
"args": [{
|
|
7186
|
+
"name": "state",
|
|
7187
|
+
"required": true,
|
|
7188
|
+
"variadic": false
|
|
7189
|
+
}],
|
|
7190
|
+
"options": [{
|
|
7191
|
+
"flags": "--project <key>",
|
|
7192
|
+
"description": "Project key",
|
|
7193
|
+
"required": true,
|
|
7194
|
+
"valueHint": "key"
|
|
7195
|
+
}],
|
|
7196
|
+
"aliases": [],
|
|
7197
|
+
"category": "Core"
|
|
7198
|
+
},
|
|
7199
|
+
{
|
|
7200
|
+
"id": "pan-skills-deft",
|
|
7201
|
+
"path": ["skills", "deft"],
|
|
7202
|
+
"display": "/pan skills deft",
|
|
7203
|
+
"description": "Deft Directive detection, ownership report, and managed mode",
|
|
7204
|
+
"args": [],
|
|
7205
|
+
"options": [],
|
|
7206
|
+
"aliases": [],
|
|
7207
|
+
"category": "Core"
|
|
7208
|
+
},
|
|
7209
|
+
{
|
|
7210
|
+
"id": "pan-skills-deft-status",
|
|
7211
|
+
"path": [
|
|
7212
|
+
"skills",
|
|
7213
|
+
"deft",
|
|
7214
|
+
"status"
|
|
7215
|
+
],
|
|
7216
|
+
"display": "/pan skills deft status",
|
|
7217
|
+
"description": "Show Directive detection, the deft pack, the skill map, managed mode, and the ownership report",
|
|
7218
|
+
"args": [],
|
|
7219
|
+
"options": [{
|
|
7220
|
+
"flags": "--project <key>",
|
|
7221
|
+
"description": "Registered project (default: the current repo)",
|
|
7222
|
+
"required": true,
|
|
7223
|
+
"valueHint": "key"
|
|
7224
|
+
}, {
|
|
7225
|
+
"flags": "--json",
|
|
7226
|
+
"description": "Output as JSON",
|
|
7227
|
+
"required": false,
|
|
7228
|
+
"valueHint": null
|
|
7229
|
+
}],
|
|
7230
|
+
"aliases": [],
|
|
7231
|
+
"category": "Core"
|
|
7232
|
+
},
|
|
7233
|
+
{
|
|
7234
|
+
"id": "pan-skills-deft-enable",
|
|
7235
|
+
"path": [
|
|
7236
|
+
"skills",
|
|
7237
|
+
"deft",
|
|
7238
|
+
"enable"
|
|
7239
|
+
],
|
|
7240
|
+
"display": "/pan skills deft enable",
|
|
7241
|
+
"description": "Enable Deft managed mode for a Directive project after showing the ownership plan",
|
|
7242
|
+
"args": [],
|
|
7243
|
+
"options": [{
|
|
7244
|
+
"flags": "--project <key>",
|
|
7245
|
+
"description": "Registered project",
|
|
7246
|
+
"required": true,
|
|
7247
|
+
"valueHint": "key"
|
|
7248
|
+
}, {
|
|
7249
|
+
"flags": "--yes",
|
|
7250
|
+
"description": "Accept the printed plan without asking",
|
|
7251
|
+
"required": false,
|
|
7252
|
+
"valueHint": null
|
|
7253
|
+
}],
|
|
7254
|
+
"aliases": [],
|
|
7255
|
+
"category": "Core"
|
|
7256
|
+
},
|
|
7257
|
+
{
|
|
7258
|
+
"id": "pan-skills-deft-disable",
|
|
7259
|
+
"path": [
|
|
7260
|
+
"skills",
|
|
7261
|
+
"deft",
|
|
7262
|
+
"disable"
|
|
7263
|
+
],
|
|
7264
|
+
"display": "/pan skills deft disable",
|
|
7265
|
+
"description": "Disable Deft managed mode; project files are untouched",
|
|
7266
|
+
"args": [],
|
|
7267
|
+
"options": [{
|
|
7268
|
+
"flags": "--project <key>",
|
|
7269
|
+
"description": "Registered project",
|
|
7270
|
+
"required": true,
|
|
7271
|
+
"valueHint": "key"
|
|
7272
|
+
}],
|
|
7273
|
+
"aliases": [],
|
|
7274
|
+
"category": "Core"
|
|
7275
|
+
},
|
|
7101
7276
|
{
|
|
7102
7277
|
"id": "pan-pair",
|
|
7103
7278
|
"path": ["pair"],
|
|
@@ -7166,6 +7341,69 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7166
7341
|
"aliases": [],
|
|
7167
7342
|
"category": "CLI"
|
|
7168
7343
|
},
|
|
7344
|
+
{
|
|
7345
|
+
"id": "pan-token",
|
|
7346
|
+
"path": ["token"],
|
|
7347
|
+
"display": "/pan token",
|
|
7348
|
+
"description": "Create, list or revoke scoped access tokens (see configuration/remote-access.mdx)",
|
|
7349
|
+
"args": [],
|
|
7350
|
+
"options": [],
|
|
7351
|
+
"aliases": [],
|
|
7352
|
+
"category": "CLI"
|
|
7353
|
+
},
|
|
7354
|
+
{
|
|
7355
|
+
"id": "pan-token-create",
|
|
7356
|
+
"path": ["token", "create"],
|
|
7357
|
+
"display": "/pan token create",
|
|
7358
|
+
"description": "Create a scoped access token and print it once",
|
|
7359
|
+
"args": [{
|
|
7360
|
+
"name": "name",
|
|
7361
|
+
"required": true,
|
|
7362
|
+
"variadic": false
|
|
7363
|
+
}],
|
|
7364
|
+
"options": [{
|
|
7365
|
+
"flags": "--scopes <list>",
|
|
7366
|
+
"description": "Comma-separated scopes: read:events, read:state, read:conversations, tell, operate, admin",
|
|
7367
|
+
"required": true,
|
|
7368
|
+
"valueHint": "list"
|
|
7369
|
+
}, {
|
|
7370
|
+
"flags": "--json",
|
|
7371
|
+
"description": "Print { id, name, scopes, token } as JSON",
|
|
7372
|
+
"required": false,
|
|
7373
|
+
"valueHint": null
|
|
7374
|
+
}],
|
|
7375
|
+
"aliases": [],
|
|
7376
|
+
"category": "CLI"
|
|
7377
|
+
},
|
|
7378
|
+
{
|
|
7379
|
+
"id": "pan-token-list",
|
|
7380
|
+
"path": ["token", "list"],
|
|
7381
|
+
"display": "/pan token list",
|
|
7382
|
+
"description": "List access tokens with scopes and created, last-used and revoked times",
|
|
7383
|
+
"args": [],
|
|
7384
|
+
"options": [{
|
|
7385
|
+
"flags": "--json",
|
|
7386
|
+
"description": "Print the tokens as JSON",
|
|
7387
|
+
"required": false,
|
|
7388
|
+
"valueHint": null
|
|
7389
|
+
}],
|
|
7390
|
+
"aliases": [],
|
|
7391
|
+
"category": "CLI"
|
|
7392
|
+
},
|
|
7393
|
+
{
|
|
7394
|
+
"id": "pan-token-revoke",
|
|
7395
|
+
"path": ["token", "revoke"],
|
|
7396
|
+
"display": "/pan token revoke",
|
|
7397
|
+
"description": "Revoke an access token and close its live connections",
|
|
7398
|
+
"args": [{
|
|
7399
|
+
"name": "id",
|
|
7400
|
+
"required": true,
|
|
7401
|
+
"variadic": false
|
|
7402
|
+
}],
|
|
7403
|
+
"options": [],
|
|
7404
|
+
"aliases": [],
|
|
7405
|
+
"category": "CLI"
|
|
7406
|
+
},
|
|
7169
7407
|
{
|
|
7170
7408
|
"id": "pan-issues",
|
|
7171
7409
|
"path": ["issues"],
|
|
@@ -7300,6 +7538,25 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7300
7538
|
"aliases": [],
|
|
7301
7539
|
"category": "Review"
|
|
7302
7540
|
},
|
|
7541
|
+
{
|
|
7542
|
+
"id": "pan-review-waive-test-removal",
|
|
7543
|
+
"path": ["review", "waive-test-removal"],
|
|
7544
|
+
"display": "/pan review waive-test-removal",
|
|
7545
|
+
"description": "Operator-only: let a net test removal past the test-skip gate at the current head",
|
|
7546
|
+
"args": [{
|
|
7547
|
+
"name": "id",
|
|
7548
|
+
"required": true,
|
|
7549
|
+
"variadic": false
|
|
7550
|
+
}],
|
|
7551
|
+
"options": [{
|
|
7552
|
+
"flags": "--reason <text>",
|
|
7553
|
+
"description": "Why the removed tests are gone and nothing replaces them",
|
|
7554
|
+
"required": true,
|
|
7555
|
+
"valueHint": "text"
|
|
7556
|
+
}],
|
|
7557
|
+
"aliases": [],
|
|
7558
|
+
"category": "Review"
|
|
7559
|
+
},
|
|
7303
7560
|
{
|
|
7304
7561
|
"id": "pan-review-abort",
|
|
7305
7562
|
"path": ["review", "abort"],
|
|
@@ -7424,7 +7681,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7424
7681
|
},
|
|
7425
7682
|
{
|
|
7426
7683
|
"flags": "--effort <level>",
|
|
7427
|
-
"description": "Planning effort: low | medium | high",
|
|
7684
|
+
"description": "Planning effort: low | medium | high | xhigh | max",
|
|
7428
7685
|
"required": true,
|
|
7429
7686
|
"valueHint": "level"
|
|
7430
7687
|
},
|
|
@@ -7538,6 +7795,43 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7538
7795
|
"aliases": [],
|
|
7539
7796
|
"category": "Lifecycle"
|
|
7540
7797
|
},
|
|
7798
|
+
{
|
|
7799
|
+
"id": "pan-ask",
|
|
7800
|
+
"path": ["ask"],
|
|
7801
|
+
"display": "/pan ask",
|
|
7802
|
+
"description": "Ask the operator a blocking decision; it appears in the dashboard Needs-you",
|
|
7803
|
+
"args": [{
|
|
7804
|
+
"name": "id",
|
|
7805
|
+
"required": true,
|
|
7806
|
+
"variadic": false
|
|
7807
|
+
}, {
|
|
7808
|
+
"name": "question",
|
|
7809
|
+
"required": false,
|
|
7810
|
+
"variadic": false
|
|
7811
|
+
}],
|
|
7812
|
+
"options": [
|
|
7813
|
+
{
|
|
7814
|
+
"flags": "--option <label>",
|
|
7815
|
+
"description": "A choice the operator can pick (repeat 2-4 times)",
|
|
7816
|
+
"required": true,
|
|
7817
|
+
"valueHint": "label"
|
|
7818
|
+
},
|
|
7819
|
+
{
|
|
7820
|
+
"flags": "--context <text>",
|
|
7821
|
+
"description": "What you already tried or know, shown with the question",
|
|
7822
|
+
"required": true,
|
|
7823
|
+
"valueHint": "text"
|
|
7824
|
+
},
|
|
7825
|
+
{
|
|
7826
|
+
"flags": "--withdraw",
|
|
7827
|
+
"description": "Close your open decision request (answered another way, or no longer needed)",
|
|
7828
|
+
"required": false,
|
|
7829
|
+
"valueHint": null
|
|
7830
|
+
}
|
|
7831
|
+
],
|
|
7832
|
+
"aliases": [],
|
|
7833
|
+
"category": "CLI"
|
|
7834
|
+
},
|
|
7541
7835
|
{
|
|
7542
7836
|
"id": "pan-answer",
|
|
7543
7837
|
"path": ["answer"],
|
|
@@ -7686,6 +7980,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7686
7980
|
"required": true,
|
|
7687
7981
|
"valueHint": "model"
|
|
7688
7982
|
},
|
|
7983
|
+
{
|
|
7984
|
+
"flags": "--effort <level>",
|
|
7985
|
+
"description": "Reasoning effort for the new conversation: low, medium, high, xhigh or max; defaults to the source conversation's effort",
|
|
7986
|
+
"required": true,
|
|
7987
|
+
"valueHint": "level"
|
|
7988
|
+
},
|
|
7689
7989
|
{
|
|
7690
7990
|
"flags": "--cwd <path>",
|
|
7691
7991
|
"description": "Working directory for the summary-forked session",
|
|
@@ -7735,6 +8035,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7735
8035
|
"required": true,
|
|
7736
8036
|
"valueHint": "model"
|
|
7737
8037
|
},
|
|
8038
|
+
{
|
|
8039
|
+
"flags": "--effort <level>",
|
|
8040
|
+
"description": "Reasoning effort for the new conversation: low, medium, high, xhigh or max; defaults to the source conversation's effort",
|
|
8041
|
+
"required": true,
|
|
8042
|
+
"valueHint": "level"
|
|
8043
|
+
},
|
|
7738
8044
|
{
|
|
7739
8045
|
"flags": "--harness <harness>",
|
|
7740
8046
|
"description": "Ignored: harness is provider-default-only (PAN-1984)",
|
|
@@ -7794,6 +8100,24 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
7794
8100
|
"description": "Ignored: author harness is provider-default-only (PAN-1984)",
|
|
7795
8101
|
"required": true,
|
|
7796
8102
|
"valueHint": "harness"
|
|
8103
|
+
},
|
|
8104
|
+
{
|
|
8105
|
+
"flags": "--skill <name>",
|
|
8106
|
+
"description": "Turn this skill on for the new conversation only (repeatable); a pack skill is <pack>/<skill>",
|
|
8107
|
+
"required": true,
|
|
8108
|
+
"valueHint": "name"
|
|
8109
|
+
},
|
|
8110
|
+
{
|
|
8111
|
+
"flags": "--pack <id>",
|
|
8112
|
+
"description": "Turn every skill of this cached skill pack on for the new conversation only (repeatable)",
|
|
8113
|
+
"required": true,
|
|
8114
|
+
"valueHint": "id"
|
|
8115
|
+
},
|
|
8116
|
+
{
|
|
8117
|
+
"flags": "--hold",
|
|
8118
|
+
"description": "Create and launch the new conversation without sending the kickoff; start it with Send in the dashboard or pan handoff start <conv>",
|
|
8119
|
+
"required": false,
|
|
8120
|
+
"valueHint": null
|
|
7797
8121
|
}
|
|
7798
8122
|
],
|
|
7799
8123
|
"aliases": [],
|
|
@@ -8634,6 +8958,11 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8634
8958
|
"description": "Print JSON",
|
|
8635
8959
|
"required": false,
|
|
8636
8960
|
"valueHint": null
|
|
8961
|
+
}, {
|
|
8962
|
+
"flags": "--on <refs...>",
|
|
8963
|
+
"description": "Issues or PRs this item waits on (PAN-123, #45, owner/repo#45, PR URL); Overdeck wakes the agent when all have merged",
|
|
8964
|
+
"required": true,
|
|
8965
|
+
"valueHint": "refs..."
|
|
8637
8966
|
}],
|
|
8638
8967
|
"aliases": [],
|
|
8639
8968
|
"category": "Lifecycle"
|
|
@@ -10950,6 +11279,124 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10950
11279
|
"aliases": [],
|
|
10951
11280
|
"category": "Flywheel"
|
|
10952
11281
|
},
|
|
11282
|
+
{
|
|
11283
|
+
"id": "pan-models",
|
|
11284
|
+
"path": ["models"],
|
|
11285
|
+
"display": "/pan models",
|
|
11286
|
+
"description": "Model settings: provider presets",
|
|
11287
|
+
"args": [],
|
|
11288
|
+
"options": [],
|
|
11289
|
+
"aliases": [],
|
|
11290
|
+
"category": "CLI"
|
|
11291
|
+
},
|
|
11292
|
+
{
|
|
11293
|
+
"id": "pan-models-preset",
|
|
11294
|
+
"path": ["models", "preset"],
|
|
11295
|
+
"display": "/pan models preset",
|
|
11296
|
+
"description": "Apply eval-backed provider model presets (writes explicit values once; never auto-applies)",
|
|
11297
|
+
"args": [],
|
|
11298
|
+
"options": [],
|
|
11299
|
+
"aliases": [],
|
|
11300
|
+
"category": "CLI"
|
|
11301
|
+
},
|
|
11302
|
+
{
|
|
11303
|
+
"id": "pan-models-preset-list",
|
|
11304
|
+
"path": [
|
|
11305
|
+
"models",
|
|
11306
|
+
"preset",
|
|
11307
|
+
"list"
|
|
11308
|
+
],
|
|
11309
|
+
"display": "/pan models preset list",
|
|
11310
|
+
"description": "List presets, their versions and what was last applied",
|
|
11311
|
+
"args": [],
|
|
11312
|
+
"options": [{
|
|
11313
|
+
"flags": "--json",
|
|
11314
|
+
"description": "Print JSON",
|
|
11315
|
+
"required": false,
|
|
11316
|
+
"valueHint": null
|
|
11317
|
+
}],
|
|
11318
|
+
"aliases": [],
|
|
11319
|
+
"category": "CLI"
|
|
11320
|
+
},
|
|
11321
|
+
{
|
|
11322
|
+
"id": "pan-models-preset-show",
|
|
11323
|
+
"path": [
|
|
11324
|
+
"models",
|
|
11325
|
+
"preset",
|
|
11326
|
+
"show"
|
|
11327
|
+
],
|
|
11328
|
+
"display": "/pan models preset show",
|
|
11329
|
+
"description": "Show the per-setting diff a preset would make to config.yaml",
|
|
11330
|
+
"args": [{
|
|
11331
|
+
"name": "id",
|
|
11332
|
+
"required": true,
|
|
11333
|
+
"variadic": false
|
|
11334
|
+
}],
|
|
11335
|
+
"options": [{
|
|
11336
|
+
"flags": "--json",
|
|
11337
|
+
"description": "Print the plan JSON (same body as GET /api/model-presets/:id/plan)",
|
|
11338
|
+
"required": false,
|
|
11339
|
+
"valueHint": null
|
|
11340
|
+
}],
|
|
11341
|
+
"aliases": [],
|
|
11342
|
+
"category": "CLI"
|
|
11343
|
+
},
|
|
11344
|
+
{
|
|
11345
|
+
"id": "pan-models-preset-apply",
|
|
11346
|
+
"path": [
|
|
11347
|
+
"models",
|
|
11348
|
+
"preset",
|
|
11349
|
+
"apply"
|
|
11350
|
+
],
|
|
11351
|
+
"display": "/pan models preset apply",
|
|
11352
|
+
"description": "Apply a preset: print the diff, confirm, then write only the changed settings",
|
|
11353
|
+
"args": [{
|
|
11354
|
+
"name": "id",
|
|
11355
|
+
"required": true,
|
|
11356
|
+
"variadic": false
|
|
11357
|
+
}],
|
|
11358
|
+
"options": [
|
|
11359
|
+
{
|
|
11360
|
+
"flags": "--dry-run",
|
|
11361
|
+
"description": "Print the diff and write nothing",
|
|
11362
|
+
"required": false,
|
|
11363
|
+
"valueHint": null
|
|
11364
|
+
},
|
|
11365
|
+
{
|
|
11366
|
+
"flags": "--yes",
|
|
11367
|
+
"description": "Apply without the confirmation prompt",
|
|
11368
|
+
"required": false,
|
|
11369
|
+
"valueHint": null
|
|
11370
|
+
},
|
|
11371
|
+
{
|
|
11372
|
+
"flags": "--json",
|
|
11373
|
+
"description": "Print JSON",
|
|
11374
|
+
"required": false,
|
|
11375
|
+
"valueHint": null
|
|
11376
|
+
}
|
|
11377
|
+
],
|
|
11378
|
+
"aliases": [],
|
|
11379
|
+
"category": "CLI"
|
|
11380
|
+
},
|
|
11381
|
+
{
|
|
11382
|
+
"id": "pan-models-preset-undo",
|
|
11383
|
+
"path": [
|
|
11384
|
+
"models",
|
|
11385
|
+
"preset",
|
|
11386
|
+
"undo"
|
|
11387
|
+
],
|
|
11388
|
+
"display": "/pan models preset undo",
|
|
11389
|
+
"description": "Restore the values the last preset apply replaced",
|
|
11390
|
+
"args": [],
|
|
11391
|
+
"options": [{
|
|
11392
|
+
"flags": "--json",
|
|
11393
|
+
"description": "Print JSON",
|
|
11394
|
+
"required": false,
|
|
11395
|
+
"valueHint": null
|
|
11396
|
+
}],
|
|
11397
|
+
"aliases": [],
|
|
11398
|
+
"category": "CLI"
|
|
11399
|
+
},
|
|
10953
11400
|
{
|
|
10954
11401
|
"id": "pan-parked",
|
|
10955
11402
|
"path": ["parked"],
|
|
@@ -11824,29 +12271,6 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
11824
12271
|
"aliases": [],
|
|
11825
12272
|
"category": "Admin"
|
|
11826
12273
|
},
|
|
11827
|
-
{
|
|
11828
|
-
"id": "pan-admin-tldr",
|
|
11829
|
-
"path": ["admin", "tldr"],
|
|
11830
|
-
"display": "/pan admin tldr",
|
|
11831
|
-
"description": "TLDR daemon: status, start, stop, warm",
|
|
11832
|
-
"args": [{
|
|
11833
|
-
"name": "action",
|
|
11834
|
-
"required": false,
|
|
11835
|
-
"variadic": false
|
|
11836
|
-
}, {
|
|
11837
|
-
"name": "workspace",
|
|
11838
|
-
"required": false,
|
|
11839
|
-
"variadic": false
|
|
11840
|
-
}],
|
|
11841
|
-
"options": [{
|
|
11842
|
-
"flags": "--json",
|
|
11843
|
-
"description": "Output as JSON",
|
|
11844
|
-
"required": false,
|
|
11845
|
-
"valueHint": null
|
|
11846
|
-
}],
|
|
11847
|
-
"aliases": [],
|
|
11848
|
-
"category": "Admin"
|
|
11849
|
-
},
|
|
11850
12274
|
{
|
|
11851
12275
|
"id": "pan-admin-fpp",
|
|
11852
12276
|
"path": ["admin", "fpp"],
|
|
@@ -12844,6 +13268,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
12844
13268
|
"required": true,
|
|
12845
13269
|
"valueHint": "harness"
|
|
12846
13270
|
},
|
|
13271
|
+
{
|
|
13272
|
+
"flags": "--effort <level>",
|
|
13273
|
+
"description": "Reasoning effort: low | medium | high | xhigh | max (defaults to the item/plan metadata, then roles.worker.effort)",
|
|
13274
|
+
"required": true,
|
|
13275
|
+
"valueHint": "level"
|
|
13276
|
+
},
|
|
12847
13277
|
{
|
|
12848
13278
|
"flags": "--shared",
|
|
12849
13279
|
"description": "Run the worker in the issue workspace instead of an item worktree (foreman/operator only; serial use)",
|
|
@@ -12901,6 +13331,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
12901
13331
|
"required": true,
|
|
12902
13332
|
"valueHint": "harness"
|
|
12903
13333
|
},
|
|
13334
|
+
{
|
|
13335
|
+
"flags": "--effort <level>",
|
|
13336
|
+
"description": "Reasoning effort: low | medium | high | xhigh | max (defaults to roles.worker.effort)",
|
|
13337
|
+
"required": true,
|
|
13338
|
+
"valueHint": "level"
|
|
13339
|
+
},
|
|
12904
13340
|
{
|
|
12905
13341
|
"flags": "--read-only",
|
|
12906
13342
|
"description": "Run in the issue workspace with git writes blocked",
|
|
@@ -13878,26 +14314,17 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
13878
14314
|
"display": "/pan status",
|
|
13879
14315
|
"description": "Show running agents",
|
|
13880
14316
|
"args": [],
|
|
13881
|
-
"options": [
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
13885
|
-
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
|
|
13889
|
-
|
|
13890
|
-
|
|
13891
|
-
|
|
13892
|
-
"valueHint": null
|
|
13893
|
-
},
|
|
13894
|
-
{
|
|
13895
|
-
"flags": "--context",
|
|
13896
|
-
"description": "Show context window usage % for each agent",
|
|
13897
|
-
"required": false,
|
|
13898
|
-
"valueHint": null
|
|
13899
|
-
}
|
|
13900
|
-
],
|
|
14317
|
+
"options": [{
|
|
14318
|
+
"flags": "--json",
|
|
14319
|
+
"description": "Output as JSON",
|
|
14320
|
+
"required": false,
|
|
14321
|
+
"valueHint": null
|
|
14322
|
+
}, {
|
|
14323
|
+
"flags": "--context",
|
|
14324
|
+
"description": "Show context window usage % for each agent",
|
|
14325
|
+
"required": false,
|
|
14326
|
+
"valueHint": null
|
|
14327
|
+
}],
|
|
13901
14328
|
"aliases": [],
|
|
13902
14329
|
"category": "Core"
|
|
13903
14330
|
},
|
|
@@ -14061,7 +14488,7 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
14061
14488
|
"id": "pan-restart",
|
|
14062
14489
|
"path": ["restart"],
|
|
14063
14490
|
"display": "/pan restart",
|
|
14064
|
-
"description": "Restart a platform component (default: dashboard only — leaves CLIProxy
|
|
14491
|
+
"description": "Restart a platform component (default: dashboard only — leaves CLIProxy and Traefik running)",
|
|
14065
14492
|
"args": [],
|
|
14066
14493
|
"options": [
|
|
14067
14494
|
{
|
|
@@ -14766,6 +15193,26 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
14766
15193
|
"aliases": [],
|
|
14767
15194
|
"category": "Data"
|
|
14768
15195
|
},
|
|
15196
|
+
{
|
|
15197
|
+
"id": "pan-cost-effort",
|
|
15198
|
+
"path": ["cost", "effort"],
|
|
15199
|
+
"display": "/pan cost effort",
|
|
15200
|
+
"description": "Show costs grouped by reasoning effort",
|
|
15201
|
+
"args": [],
|
|
15202
|
+
"options": [{
|
|
15203
|
+
"flags": "-i, --issue <issueId>",
|
|
15204
|
+
"description": "Limit to one issue",
|
|
15205
|
+
"required": true,
|
|
15206
|
+
"valueHint": "issueId"
|
|
15207
|
+
}, {
|
|
15208
|
+
"flags": "--json",
|
|
15209
|
+
"description": "Print JSON",
|
|
15210
|
+
"required": false,
|
|
15211
|
+
"valueHint": null
|
|
15212
|
+
}],
|
|
15213
|
+
"aliases": [],
|
|
15214
|
+
"category": "Data"
|
|
15215
|
+
},
|
|
14769
15216
|
{
|
|
14770
15217
|
"id": "pan-cost-budget",
|
|
14771
15218
|
"path": ["cost", "budget"],
|
|
@@ -15171,6 +15618,10 @@ const DirectoryEntry = Schema.Struct({
|
|
|
15171
15618
|
harness: Schema.String,
|
|
15172
15619
|
/** `unknown` when not known. */
|
|
15173
15620
|
model: Schema.String,
|
|
15621
|
+
/** The launch effort from state.json, native agents only (PAN-4259). */
|
|
15622
|
+
effort: Schema.optional(EffortLevelSchema),
|
|
15623
|
+
/** Where `effort` came from (an EffortSource), native agents only. */
|
|
15624
|
+
effortSource: Schema.optional(Schema.String),
|
|
15174
15625
|
state: DirectoryEntryState,
|
|
15175
15626
|
startedAt: Schema.NullOr(Schema.String),
|
|
15176
15627
|
lastActivityAt: Schema.NullOr(Schema.String),
|