@overdeck/contracts 0.67.0 → 0.69.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 +668 -56
- package/dist/index.d.ts +1810 -144
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +639 -57
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -566,8 +566,7 @@ const AgentSnapshot = effect.Schema.Struct({
|
|
|
566
566
|
})),
|
|
567
567
|
resolution: effect.Schema.optional(AgentResolution),
|
|
568
568
|
resolutionCount: effect.Schema.optional(effect.Schema.Number),
|
|
569
|
-
turnEndAssessment: effect.Schema.optional(TurnEndAssessment)
|
|
570
|
-
runtimeSnapshotSequence: effect.Schema.optional(SequenceNumber)
|
|
569
|
+
turnEndAssessment: effect.Schema.optional(TurnEndAssessment)
|
|
571
570
|
});
|
|
572
571
|
/** PAN-3151: A recorded cycle in the review convergence tracking series */
|
|
573
572
|
const TurnDiffFileChange = effect.Schema.Struct({
|
|
@@ -3366,7 +3365,11 @@ const WorkLogEntry = effect.Schema.Struct({
|
|
|
3366
3365
|
toolTitle: effect.Schema.optional(effect.Schema.String),
|
|
3367
3366
|
/** Raw tool_use input dict — drives per-tool expanded rendering (PAN-1459). */
|
|
3368
3367
|
toolInput: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, effect.Schema.Unknown)),
|
|
3369
|
-
sequence: effect.Schema.optional(effect.Schema.Number)
|
|
3368
|
+
sequence: effect.Schema.optional(effect.Schema.Number),
|
|
3369
|
+
/** PAN-4558: UTF-8 byte length of a `result` the wire projection removed. */
|
|
3370
|
+
resultBytes: effect.Schema.optional(effect.Schema.Number),
|
|
3371
|
+
/** PAN-4558: the wire projection removed or cut a tool body; fetch the full entry on expand. */
|
|
3372
|
+
bodyOmitted: effect.Schema.optional(effect.Schema.Boolean)
|
|
3370
3373
|
});
|
|
3371
3374
|
/** A human-origin message read from a subagent's own sidechain transcript (PAN-4247). */
|
|
3372
3375
|
const SubagentHumanInput = effect.Schema.Struct({
|
|
@@ -3386,6 +3389,20 @@ const SubagentSummary = effect.Schema.Struct({
|
|
|
3386
3389
|
/** Recent human-origin sidechain inputs, most useful when a message routed into this subagent instead of the main conversation (PAN-4247). */
|
|
3387
3390
|
humanInputs: effect.Schema.optional(effect.Schema.Array(SubagentHumanInput))
|
|
3388
3391
|
});
|
|
3392
|
+
/** PAN-4558: where a windowed response or page sits in the whole transcript. */
|
|
3393
|
+
const ConversationWindow = effect.Schema.Struct({
|
|
3394
|
+
/** Encoded timeline key of the oldest contiguous entry; pass as `before=` for the next older page. */
|
|
3395
|
+
cursor: effect.Schema.NullOr(effect.Schema.String),
|
|
3396
|
+
hasOlder: effect.Schema.Boolean,
|
|
3397
|
+
/** `"<dev>:<ino>"` of the transcript file the window was read from. */
|
|
3398
|
+
transcript: effect.Schema.optional(effect.Schema.String)
|
|
3399
|
+
});
|
|
3400
|
+
/** PAN-4558: what a resubscribing client already holds. */
|
|
3401
|
+
const ConversationResume = effect.Schema.Struct({
|
|
3402
|
+
afterSequence: effect.Schema.Number,
|
|
3403
|
+
openIds: effect.Schema.Array(effect.Schema.String),
|
|
3404
|
+
transcript: effect.Schema.String
|
|
3405
|
+
});
|
|
3389
3406
|
/**
|
|
3390
3407
|
* Response shape for GET /api/agents/:id/conversation.
|
|
3391
3408
|
* Shared between the dashboard server route and the frontend TerminalPanel.
|
|
@@ -3408,7 +3425,9 @@ const ConversationResponse = effect.Schema.Struct({
|
|
|
3408
3425
|
effortResolution: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.Struct({
|
|
3409
3426
|
effort: EffortLevelSchema,
|
|
3410
3427
|
source: effect.Schema.String
|
|
3411
|
-
})))
|
|
3428
|
+
}))),
|
|
3429
|
+
/** PAN-4558: present on windowed and paged responses only. */
|
|
3430
|
+
window: effect.Schema.optional(ConversationWindow)
|
|
3412
3431
|
});
|
|
3413
3432
|
const ConversationEvent = effect.Schema.Union([
|
|
3414
3433
|
effect.Schema.Struct({
|
|
@@ -3424,7 +3443,9 @@ const ConversationEvent = effect.Schema.Union([
|
|
|
3424
3443
|
totalCost: effect.Schema.optional(effect.Schema.Number),
|
|
3425
3444
|
proposedPlan: effect.Schema.optional(ProposedPlan),
|
|
3426
3445
|
compactBoundaries: effect.Schema.optional(effect.Schema.Array(CompactBoundary)),
|
|
3427
|
-
contextUsage: effect.Schema.optional(effect.Schema.NullOr(ContextUsage))
|
|
3446
|
+
contextUsage: effect.Schema.optional(effect.Schema.NullOr(ContextUsage)),
|
|
3447
|
+
/** PAN-4558: set on windowed snapshots; older history is paged in by `window.cursor`. */
|
|
3448
|
+
window: effect.Schema.optional(ConversationWindow)
|
|
3428
3449
|
}),
|
|
3429
3450
|
effect.Schema.Struct({ kind: effect.Schema.Literal("discovering") }),
|
|
3430
3451
|
effect.Schema.Struct({
|
|
@@ -3486,10 +3507,17 @@ const GetSnapshotRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.getSnapshot, {
|
|
|
3486
3507
|
success: DashboardSnapshot,
|
|
3487
3508
|
error: PanRpcError
|
|
3488
3509
|
});
|
|
3510
|
+
/**
|
|
3511
|
+
* PAN-4559: the server answers this instead of events when the gap after
|
|
3512
|
+
* fromSequence exceeds its replay cap; the client re-bootstraps via getSnapshot.
|
|
3513
|
+
*/
|
|
3514
|
+
const ReplayTooFarBehind = effect.Schema.Struct({ tooFarBehind: effect.Schema.Literal(true) });
|
|
3515
|
+
/** Replay result: the missed events (unchanged array shape), or ReplayTooFarBehind. */
|
|
3516
|
+
const ReplayEventsResult = effect.Schema.Union([effect.Schema.Array(DomainEvent), ReplayTooFarBehind]);
|
|
3489
3517
|
/** 5. Replay events since a given sequence number (unary) */
|
|
3490
3518
|
const ReplayEventsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.replayEvents, {
|
|
3491
3519
|
payload: effect.Schema.Struct({ fromSequence: SequenceNumber }),
|
|
3492
|
-
success:
|
|
3520
|
+
success: ReplayEventsResult,
|
|
3493
3521
|
error: PanRpcError
|
|
3494
3522
|
});
|
|
3495
3523
|
/** 6. Open a terminal session / attach PTY (unary) */
|
|
@@ -3657,7 +3685,9 @@ const ResizeTerminalRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.resizeTerminal
|
|
|
3657
3685
|
const SubscribeConversationMessagesRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.subscribeConversationMessages, {
|
|
3658
3686
|
payload: effect.Schema.Struct({
|
|
3659
3687
|
conversationName: effect.Schema.String,
|
|
3660
|
-
agentId: effect.Schema.optional(effect.Schema.String)
|
|
3688
|
+
agentId: effect.Schema.optional(effect.Schema.String),
|
|
3689
|
+
/** PAN-4558: what the client already holds; the server sends only newer or newly settled rows. */
|
|
3690
|
+
resume: effect.Schema.optional(ConversationResume)
|
|
3661
3691
|
}),
|
|
3662
3692
|
success: ConversationEvent,
|
|
3663
3693
|
error: PanRpcError,
|
|
@@ -3997,23 +4027,6 @@ function removeAgentFromSessionIndex(agentIdBySessionId, agentId) {
|
|
|
3997
4027
|
for (const [sessionId, id] of Object.entries(agentIdBySessionId ?? {})) if (id !== agentId) next[sessionId] = id;
|
|
3998
4028
|
return next;
|
|
3999
4029
|
}
|
|
4000
|
-
/**
|
|
4001
|
-
* Bump runtimeSnapshotSequence on the corresponding AgentSnapshot (if present)
|
|
4002
|
-
* so low-frequency subscribers can cheaply detect a runtime change. No-op if
|
|
4003
|
-
* the agent has no lifecycle snapshot yet (a runtime event arrived before
|
|
4004
|
-
* agent.created — unusual but defensive).
|
|
4005
|
-
*/
|
|
4006
|
-
function bumpRuntimeSnapshotSequence(agentsById, agentId, sequence) {
|
|
4007
|
-
const agent = agentsById[agentId];
|
|
4008
|
-
if (!agent) return agentsById;
|
|
4009
|
-
return {
|
|
4010
|
-
...agentsById,
|
|
4011
|
-
[agentId]: {
|
|
4012
|
-
...agent,
|
|
4013
|
-
runtimeSnapshotSequence: sequence
|
|
4014
|
-
}
|
|
4015
|
-
};
|
|
4016
|
-
}
|
|
4017
4030
|
function syncSnapshot(state, snapshot) {
|
|
4018
4031
|
const agentsById = {};
|
|
4019
4032
|
for (const agent of snapshot.agents) agentsById[agent.id] = agent;
|
|
@@ -4755,8 +4768,7 @@ function applyEvent(state, event) {
|
|
|
4755
4768
|
agentRuntimeById: {
|
|
4756
4769
|
...state.agentRuntimeById,
|
|
4757
4770
|
[agentId]: next
|
|
4758
|
-
}
|
|
4759
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
4771
|
+
}
|
|
4760
4772
|
};
|
|
4761
4773
|
}
|
|
4762
4774
|
case "agent.thinking_started": {
|
|
@@ -4781,8 +4793,7 @@ function applyEvent(state, event) {
|
|
|
4781
4793
|
agentRuntimeById: {
|
|
4782
4794
|
...state.agentRuntimeById,
|
|
4783
4795
|
[agentId]: next
|
|
4784
|
-
}
|
|
4785
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
4796
|
+
}
|
|
4786
4797
|
};
|
|
4787
4798
|
}
|
|
4788
4799
|
case "agent.thinking_stopped": {
|
|
@@ -4804,8 +4815,7 @@ function applyEvent(state, event) {
|
|
|
4804
4815
|
agentRuntimeById: {
|
|
4805
4816
|
...state.agentRuntimeById,
|
|
4806
4817
|
[agentId]: next
|
|
4807
|
-
}
|
|
4808
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
4818
|
+
}
|
|
4809
4819
|
};
|
|
4810
4820
|
}
|
|
4811
4821
|
case "agent.waiting_started": {
|
|
@@ -4830,8 +4840,7 @@ function applyEvent(state, event) {
|
|
|
4830
4840
|
agentRuntimeById: {
|
|
4831
4841
|
...state.agentRuntimeById,
|
|
4832
4842
|
[agentId]: next
|
|
4833
|
-
}
|
|
4834
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
4843
|
+
}
|
|
4835
4844
|
};
|
|
4836
4845
|
}
|
|
4837
4846
|
case "agent.waiting_cleared": {
|
|
@@ -4853,8 +4862,7 @@ function applyEvent(state, event) {
|
|
|
4853
4862
|
agentRuntimeById: {
|
|
4854
4863
|
...state.agentRuntimeById,
|
|
4855
4864
|
[agentId]: next
|
|
4856
|
-
}
|
|
4857
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
4865
|
+
}
|
|
4858
4866
|
};
|
|
4859
4867
|
}
|
|
4860
4868
|
case "agent.permission_requested": {
|
|
@@ -4931,8 +4939,7 @@ function applyEvent(state, event) {
|
|
|
4931
4939
|
agentRuntimeById: {
|
|
4932
4940
|
...state.agentRuntimeById,
|
|
4933
4941
|
[agentId]: next
|
|
4934
|
-
}
|
|
4935
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
4942
|
+
}
|
|
4936
4943
|
};
|
|
4937
4944
|
}
|
|
4938
4945
|
case "agent.channel_reply": {
|
|
@@ -4955,8 +4962,7 @@ function applyEvent(state, event) {
|
|
|
4955
4962
|
agentRuntimeById: {
|
|
4956
4963
|
...state.agentRuntimeById,
|
|
4957
4964
|
[agentId]: next
|
|
4958
|
-
}
|
|
4959
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
4965
|
+
}
|
|
4960
4966
|
};
|
|
4961
4967
|
}
|
|
4962
4968
|
case "agent.model_set": {
|
|
@@ -4990,7 +4996,6 @@ function applyEvent(state, event) {
|
|
|
4990
4996
|
...state.agentRuntimeById,
|
|
4991
4997
|
[agentId]: next
|
|
4992
4998
|
},
|
|
4993
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence),
|
|
4994
4999
|
agentIdBySessionId: nextAgentIdBySessionId
|
|
4995
5000
|
};
|
|
4996
5001
|
}
|
|
@@ -5008,8 +5013,7 @@ function applyEvent(state, event) {
|
|
|
5008
5013
|
agentRuntimeById: {
|
|
5009
5014
|
...state.agentRuntimeById,
|
|
5010
5015
|
[agentId]: next
|
|
5011
|
-
}
|
|
5012
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
5016
|
+
}
|
|
5013
5017
|
};
|
|
5014
5018
|
}
|
|
5015
5019
|
case "agent.context_saturation_changed": {
|
|
@@ -5025,8 +5029,7 @@ function applyEvent(state, event) {
|
|
|
5025
5029
|
agentRuntimeById: {
|
|
5026
5030
|
...state.agentRuntimeById,
|
|
5027
5031
|
[agentId]: next
|
|
5028
|
-
}
|
|
5029
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
5032
|
+
}
|
|
5030
5033
|
};
|
|
5031
5034
|
}
|
|
5032
5035
|
case "agent.resolution_changed": {
|
|
@@ -5045,8 +5048,7 @@ function applyEvent(state, event) {
|
|
|
5045
5048
|
agentRuntimeById: {
|
|
5046
5049
|
...state.agentRuntimeById,
|
|
5047
5050
|
[agentId]: next
|
|
5048
|
-
}
|
|
5049
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
5051
|
+
}
|
|
5050
5052
|
};
|
|
5051
5053
|
}
|
|
5052
5054
|
case "agent.state_restored": {
|
|
@@ -5061,8 +5063,7 @@ function applyEvent(state, event) {
|
|
|
5061
5063
|
agentRuntimeById: {
|
|
5062
5064
|
...state.agentRuntimeById,
|
|
5063
5065
|
[agentId]: next
|
|
5064
|
-
}
|
|
5065
|
-
agentsById: bumpRuntimeSnapshotSequence(state.agentsById, agentId, event.sequence)
|
|
5066
|
+
}
|
|
5066
5067
|
};
|
|
5067
5068
|
}
|
|
5068
5069
|
case "activity.entry": {
|
|
@@ -6073,6 +6074,170 @@ const FeatureRegistryEntry = effect.Schema.Struct({
|
|
|
6073
6074
|
tags: effect.Schema.Array(effect.Schema.String)
|
|
6074
6075
|
});
|
|
6075
6076
|
//#endregion
|
|
6077
|
+
//#region src/harness-capabilities.ts
|
|
6078
|
+
const HARNESS_CAPABILITY_KEYS = [
|
|
6079
|
+
"contextChannel",
|
|
6080
|
+
"initialPromptMustLand",
|
|
6081
|
+
"stopRuntimeOnStartFailure",
|
|
6082
|
+
"resumeContractMustLand",
|
|
6083
|
+
"reapsPrivateDaemonOnStop",
|
|
6084
|
+
"attachmentDelivery",
|
|
6085
|
+
"nativeManualCompact",
|
|
6086
|
+
"paneInputGuard",
|
|
6087
|
+
"transcriptDeliveryReceipt",
|
|
6088
|
+
"hostEffortFlag",
|
|
6089
|
+
"binaryLabel",
|
|
6090
|
+
"installHint",
|
|
6091
|
+
"binaryConfigKey",
|
|
6092
|
+
"launchPreflight",
|
|
6093
|
+
"workspaceResolution",
|
|
6094
|
+
"correlatesBySessionId"
|
|
6095
|
+
];
|
|
6096
|
+
const CLAUDE_CODE_CAPABILITIES = {
|
|
6097
|
+
contextChannel: "append-system-prompt-file",
|
|
6098
|
+
initialPromptMustLand: false,
|
|
6099
|
+
stopRuntimeOnStartFailure: false,
|
|
6100
|
+
resumeContractMustLand: false,
|
|
6101
|
+
reapsPrivateDaemonOnStop: false,
|
|
6102
|
+
attachmentDelivery: "native",
|
|
6103
|
+
nativeManualCompact: true,
|
|
6104
|
+
paneInputGuard: true,
|
|
6105
|
+
transcriptDeliveryReceipt: true,
|
|
6106
|
+
hostEffortFlag: false,
|
|
6107
|
+
binaryLabel: "Claude Code",
|
|
6108
|
+
installHint: "curl -fsSL https://claude.ai/install.sh | bash",
|
|
6109
|
+
binaryConfigKey: null,
|
|
6110
|
+
launchPreflight: "claude-code-model-minimum",
|
|
6111
|
+
workspaceResolution: "claude-project-hash",
|
|
6112
|
+
correlatesBySessionId: false
|
|
6113
|
+
};
|
|
6114
|
+
const OHMYPI_CAPABILITIES = {
|
|
6115
|
+
contextChannel: "append-system-prompt",
|
|
6116
|
+
initialPromptMustLand: false,
|
|
6117
|
+
stopRuntimeOnStartFailure: false,
|
|
6118
|
+
resumeContractMustLand: false,
|
|
6119
|
+
reapsPrivateDaemonOnStop: false,
|
|
6120
|
+
attachmentDelivery: "inline-paths",
|
|
6121
|
+
nativeManualCompact: false,
|
|
6122
|
+
paneInputGuard: false,
|
|
6123
|
+
transcriptDeliveryReceipt: false,
|
|
6124
|
+
hostEffortFlag: false,
|
|
6125
|
+
binaryLabel: "OhMyPi",
|
|
6126
|
+
installHint: null,
|
|
6127
|
+
binaryConfigKey: null,
|
|
6128
|
+
launchPreflight: null,
|
|
6129
|
+
workspaceResolution: "first-message-only",
|
|
6130
|
+
correlatesBySessionId: true
|
|
6131
|
+
};
|
|
6132
|
+
const CODEX_CAPABILITIES = {
|
|
6133
|
+
contextChannel: "developer_instructions",
|
|
6134
|
+
initialPromptMustLand: false,
|
|
6135
|
+
stopRuntimeOnStartFailure: false,
|
|
6136
|
+
resumeContractMustLand: false,
|
|
6137
|
+
reapsPrivateDaemonOnStop: false,
|
|
6138
|
+
attachmentDelivery: "inline-paths",
|
|
6139
|
+
nativeManualCompact: false,
|
|
6140
|
+
paneInputGuard: false,
|
|
6141
|
+
transcriptDeliveryReceipt: false,
|
|
6142
|
+
hostEffortFlag: false,
|
|
6143
|
+
binaryLabel: "Codex CLI",
|
|
6144
|
+
installHint: null,
|
|
6145
|
+
binaryConfigKey: null,
|
|
6146
|
+
launchPreflight: null,
|
|
6147
|
+
workspaceResolution: "agent-dir",
|
|
6148
|
+
correlatesBySessionId: true
|
|
6149
|
+
};
|
|
6150
|
+
const ACP_CAPABILITIES = {
|
|
6151
|
+
contextChannel: "acp-initial-context",
|
|
6152
|
+
initialPromptMustLand: true,
|
|
6153
|
+
stopRuntimeOnStartFailure: true,
|
|
6154
|
+
resumeContractMustLand: false,
|
|
6155
|
+
reapsPrivateDaemonOnStop: false,
|
|
6156
|
+
attachmentDelivery: "inline-paths",
|
|
6157
|
+
nativeManualCompact: false,
|
|
6158
|
+
paneInputGuard: false,
|
|
6159
|
+
transcriptDeliveryReceipt: false,
|
|
6160
|
+
hostEffortFlag: false,
|
|
6161
|
+
binaryLabel: "Kimi Code CLI",
|
|
6162
|
+
installHint: null,
|
|
6163
|
+
binaryConfigKey: "acp.kimi.binaryPath",
|
|
6164
|
+
launchPreflight: null,
|
|
6165
|
+
workspaceResolution: "agent-dir",
|
|
6166
|
+
correlatesBySessionId: true
|
|
6167
|
+
};
|
|
6168
|
+
const KIMI_CODE_CAPABILITIES = {
|
|
6169
|
+
contextChannel: "initial-message-envelope",
|
|
6170
|
+
initialPromptMustLand: true,
|
|
6171
|
+
stopRuntimeOnStartFailure: true,
|
|
6172
|
+
resumeContractMustLand: true,
|
|
6173
|
+
reapsPrivateDaemonOnStop: false,
|
|
6174
|
+
attachmentDelivery: "inline-paths",
|
|
6175
|
+
nativeManualCompact: false,
|
|
6176
|
+
paneInputGuard: false,
|
|
6177
|
+
transcriptDeliveryReceipt: false,
|
|
6178
|
+
hostEffortFlag: false,
|
|
6179
|
+
binaryLabel: "Kimi Code CLI",
|
|
6180
|
+
installHint: null,
|
|
6181
|
+
binaryConfigKey: "kimiCode.binaryPath",
|
|
6182
|
+
launchPreflight: null,
|
|
6183
|
+
workspaceResolution: "first-message-only",
|
|
6184
|
+
correlatesBySessionId: true
|
|
6185
|
+
};
|
|
6186
|
+
const OPENCODE_CAPABILITIES = {
|
|
6187
|
+
contextChannel: "acp-initial-context",
|
|
6188
|
+
initialPromptMustLand: true,
|
|
6189
|
+
stopRuntimeOnStartFailure: true,
|
|
6190
|
+
resumeContractMustLand: false,
|
|
6191
|
+
reapsPrivateDaemonOnStop: false,
|
|
6192
|
+
attachmentDelivery: "inline-paths",
|
|
6193
|
+
nativeManualCompact: false,
|
|
6194
|
+
paneInputGuard: false,
|
|
6195
|
+
transcriptDeliveryReceipt: false,
|
|
6196
|
+
hostEffortFlag: true,
|
|
6197
|
+
binaryLabel: "OpenCode",
|
|
6198
|
+
installHint: null,
|
|
6199
|
+
binaryConfigKey: null,
|
|
6200
|
+
launchPreflight: null,
|
|
6201
|
+
workspaceResolution: "agent-dir",
|
|
6202
|
+
correlatesBySessionId: true
|
|
6203
|
+
};
|
|
6204
|
+
const MUSE_CAPABILITIES = {
|
|
6205
|
+
contextChannel: "append-system-prompt-file",
|
|
6206
|
+
initialPromptMustLand: false,
|
|
6207
|
+
stopRuntimeOnStartFailure: true,
|
|
6208
|
+
resumeContractMustLand: false,
|
|
6209
|
+
reapsPrivateDaemonOnStop: false,
|
|
6210
|
+
attachmentDelivery: "inline-paths",
|
|
6211
|
+
nativeManualCompact: false,
|
|
6212
|
+
paneInputGuard: false,
|
|
6213
|
+
transcriptDeliveryReceipt: false,
|
|
6214
|
+
hostEffortFlag: false,
|
|
6215
|
+
binaryLabel: "Muse Code",
|
|
6216
|
+
installHint: null,
|
|
6217
|
+
binaryConfigKey: null,
|
|
6218
|
+
launchPreflight: null,
|
|
6219
|
+
workspaceResolution: "first-message-only",
|
|
6220
|
+
correlatesBySessionId: true
|
|
6221
|
+
};
|
|
6222
|
+
const PRIME_AGENT_CAPABILITIES = {
|
|
6223
|
+
contextChannel: "prime-agent-append-system-prompt",
|
|
6224
|
+
initialPromptMustLand: true,
|
|
6225
|
+
stopRuntimeOnStartFailure: true,
|
|
6226
|
+
resumeContractMustLand: false,
|
|
6227
|
+
reapsPrivateDaemonOnStop: true,
|
|
6228
|
+
attachmentDelivery: "inline-paths",
|
|
6229
|
+
nativeManualCompact: false,
|
|
6230
|
+
paneInputGuard: false,
|
|
6231
|
+
transcriptDeliveryReceipt: false,
|
|
6232
|
+
hostEffortFlag: false,
|
|
6233
|
+
binaryLabel: "Prime Agent",
|
|
6234
|
+
installHint: null,
|
|
6235
|
+
binaryConfigKey: null,
|
|
6236
|
+
launchPreflight: null,
|
|
6237
|
+
workspaceResolution: "first-message-only",
|
|
6238
|
+
correlatesBySessionId: true
|
|
6239
|
+
};
|
|
6240
|
+
//#endregion
|
|
6076
6241
|
//#region src/harness-behavior.ts
|
|
6077
6242
|
const AGENT_SESSION_PREFIXES = [
|
|
6078
6243
|
"agent-",
|
|
@@ -6088,6 +6253,7 @@ function isAgentSessionName(name) {
|
|
|
6088
6253
|
}
|
|
6089
6254
|
const CLAUDE_CODE_BEHAVIOR = {
|
|
6090
6255
|
displayName: "Claude Code",
|
|
6256
|
+
capabilities: CLAUDE_CODE_CAPABILITIES,
|
|
6091
6257
|
nativeCommands: [
|
|
6092
6258
|
{
|
|
6093
6259
|
name: "/model",
|
|
@@ -6132,6 +6298,7 @@ const CLAUDE_CODE_BEHAVIOR = {
|
|
|
6132
6298
|
};
|
|
6133
6299
|
const OHMYPI_BEHAVIOR = {
|
|
6134
6300
|
displayName: "Pi",
|
|
6301
|
+
capabilities: OHMYPI_CAPABILITIES,
|
|
6135
6302
|
nativeCommands: [],
|
|
6136
6303
|
executableName: "omp",
|
|
6137
6304
|
processNames: ["omp"],
|
|
@@ -6161,6 +6328,7 @@ const OHMYPI_BEHAVIOR = {
|
|
|
6161
6328
|
};
|
|
6162
6329
|
const CODEX_BEHAVIOR = {
|
|
6163
6330
|
displayName: "Codex",
|
|
6331
|
+
capabilities: CODEX_CAPABILITIES,
|
|
6164
6332
|
nativeCommands: [],
|
|
6165
6333
|
executableName: "codex",
|
|
6166
6334
|
processNames: ["codex"],
|
|
@@ -6184,6 +6352,7 @@ const CODEX_BEHAVIOR = {
|
|
|
6184
6352
|
};
|
|
6185
6353
|
const ACP_BEHAVIOR = {
|
|
6186
6354
|
displayName: "ACP",
|
|
6355
|
+
capabilities: ACP_CAPABILITIES,
|
|
6187
6356
|
nativeCommands: [],
|
|
6188
6357
|
executableName: "acp-host",
|
|
6189
6358
|
processNames: ["acp-host", "kimi"],
|
|
@@ -6207,6 +6376,7 @@ const ACP_BEHAVIOR = {
|
|
|
6207
6376
|
};
|
|
6208
6377
|
const KIMI_CODE_BEHAVIOR = {
|
|
6209
6378
|
displayName: "Kimi Code",
|
|
6379
|
+
capabilities: KIMI_CODE_CAPABILITIES,
|
|
6210
6380
|
nativeCommands: [],
|
|
6211
6381
|
executableName: "kimi",
|
|
6212
6382
|
processNames: ["kimi"],
|
|
@@ -6231,12 +6401,14 @@ const KIMI_CODE_BEHAVIOR = {
|
|
|
6231
6401
|
const OPENCODE_BEHAVIOR = {
|
|
6232
6402
|
...ACP_BEHAVIOR,
|
|
6233
6403
|
displayName: "OpenCode",
|
|
6404
|
+
capabilities: OPENCODE_CAPABILITIES,
|
|
6234
6405
|
contextLayerKind: "opencode",
|
|
6235
6406
|
executableName: "opencode",
|
|
6236
6407
|
processNames: ["acp-host", "opencode"]
|
|
6237
6408
|
};
|
|
6238
6409
|
const MUSE_BEHAVIOR = {
|
|
6239
6410
|
displayName: "Muse Code",
|
|
6411
|
+
capabilities: MUSE_CAPABILITIES,
|
|
6240
6412
|
nativeCommands: [],
|
|
6241
6413
|
executableName: "muse",
|
|
6242
6414
|
processNames: ["muse", "muse-bin"],
|
|
@@ -6266,6 +6438,7 @@ const MUSE_BEHAVIOR = {
|
|
|
6266
6438
|
};
|
|
6267
6439
|
const PRIME_AGENT_BEHAVIOR = {
|
|
6268
6440
|
displayName: "Prime Agent",
|
|
6441
|
+
capabilities: PRIME_AGENT_CAPABILITIES,
|
|
6269
6442
|
nativeCommands: [],
|
|
6270
6443
|
executableName: "prime-agent",
|
|
6271
6444
|
processNames: ["prime-agent"],
|
|
@@ -6297,15 +6470,18 @@ const BEHAVIORS = {
|
|
|
6297
6470
|
muse: MUSE_BEHAVIOR,
|
|
6298
6471
|
"prime-agent": PRIME_AGENT_BEHAVIOR
|
|
6299
6472
|
};
|
|
6473
|
+
const LEGACY_PI_HARNESS = "pi";
|
|
6474
|
+
/** True for the legacy stored harness alias `pi` (PAN-1989), which now means ohmypi. */
|
|
6475
|
+
function isLegacyPiHarnessName(raw) {
|
|
6476
|
+
return raw === LEGACY_PI_HARNESS;
|
|
6477
|
+
}
|
|
6478
|
+
/** Map a stored or requested harness string to a RuntimeName; legacy `pi` → `ohmypi`; anything else → null. */
|
|
6479
|
+
function normalizeHarnessName(raw) {
|
|
6480
|
+
if (isLegacyPiHarnessName(raw)) return "ohmypi";
|
|
6481
|
+
return typeof raw === "string" && KNOWN_HARNESSES.has(raw) ? raw : null;
|
|
6482
|
+
}
|
|
6300
6483
|
function getHarnessBehavior(harness) {
|
|
6301
|
-
|
|
6302
|
-
if (harness === "codex") return CODEX_BEHAVIOR;
|
|
6303
|
-
if (harness === "opencode") return OPENCODE_BEHAVIOR;
|
|
6304
|
-
if (harness === "acp") return ACP_BEHAVIOR;
|
|
6305
|
-
if (harness === "kimi-code") return KIMI_CODE_BEHAVIOR;
|
|
6306
|
-
if (harness === "muse") return MUSE_BEHAVIOR;
|
|
6307
|
-
if (harness === "prime-agent") return PRIME_AGENT_BEHAVIOR;
|
|
6308
|
-
return CLAUDE_CODE_BEHAVIOR;
|
|
6484
|
+
return BEHAVIORS[normalizeHarnessName(harness) ?? "claude-code"];
|
|
6309
6485
|
}
|
|
6310
6486
|
function getRuntimeBehavior(runtime) {
|
|
6311
6487
|
return BEHAVIORS[runtime];
|
|
@@ -6624,7 +6800,8 @@ const TELEMETRY_EVENT_CATALOG = {
|
|
|
6624
6800
|
fork_intent: "fork_kind",
|
|
6625
6801
|
fork_mode: "fork_kind",
|
|
6626
6802
|
fast_summary: "boolean",
|
|
6627
|
-
launch_harness: "harness"
|
|
6803
|
+
launch_harness: "harness",
|
|
6804
|
+
fresh_start: "boolean"
|
|
6628
6805
|
},
|
|
6629
6806
|
plan_approved: { subject_kind: "decision_subject" },
|
|
6630
6807
|
plan_changes_requested: { subject_kind: "decision_subject" },
|
|
@@ -8143,6 +8320,12 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
8143
8320
|
"description": "Create and launch the new conversation without sending the kickoff; start it with Send in the dashboard or pan handoff start <conv>",
|
|
8144
8321
|
"required": false,
|
|
8145
8322
|
"valueHint": null
|
|
8323
|
+
},
|
|
8324
|
+
{
|
|
8325
|
+
"flags": "--fresh",
|
|
8326
|
+
"description": "Start a clean conversation: no handoff document, no summary, no parent link; the focus is its first message. Project, cwd, model and effort still default from the source",
|
|
8327
|
+
"required": false,
|
|
8328
|
+
"valueHint": null
|
|
8146
8329
|
}
|
|
8147
8330
|
],
|
|
8148
8331
|
"aliases": [],
|
|
@@ -10897,6 +11080,328 @@ const COMPOSER_COMMAND_MANIFEST = [
|
|
|
10897
11080
|
"aliases": [],
|
|
10898
11081
|
"category": "Observation"
|
|
10899
11082
|
},
|
|
11083
|
+
{
|
|
11084
|
+
"id": "pan-memory-show",
|
|
11085
|
+
"path": ["memory", "show"],
|
|
11086
|
+
"display": "/pan memory show",
|
|
11087
|
+
"description": "Print a curated memory fact",
|
|
11088
|
+
"args": [{
|
|
11089
|
+
"name": "id",
|
|
11090
|
+
"required": true,
|
|
11091
|
+
"variadic": false
|
|
11092
|
+
}],
|
|
11093
|
+
"options": [
|
|
11094
|
+
{
|
|
11095
|
+
"flags": "--project <key>",
|
|
11096
|
+
"description": "Project key (defaults to the project owning the cwd)",
|
|
11097
|
+
"required": true,
|
|
11098
|
+
"valueHint": "key"
|
|
11099
|
+
},
|
|
11100
|
+
{
|
|
11101
|
+
"flags": "--user",
|
|
11102
|
+
"description": "Read from the operator store (travels with you; synced when set up)",
|
|
11103
|
+
"required": false,
|
|
11104
|
+
"valueHint": null
|
|
11105
|
+
},
|
|
11106
|
+
{
|
|
11107
|
+
"flags": "--machine",
|
|
11108
|
+
"description": "Read from the machine store (this machine only)",
|
|
11109
|
+
"required": false,
|
|
11110
|
+
"valueHint": null
|
|
11111
|
+
},
|
|
11112
|
+
{
|
|
11113
|
+
"flags": "--here",
|
|
11114
|
+
"description": "Read from the cwd checkout's store instead of the primary checkout",
|
|
11115
|
+
"required": false,
|
|
11116
|
+
"valueHint": null
|
|
11117
|
+
}
|
|
11118
|
+
],
|
|
11119
|
+
"aliases": [],
|
|
11120
|
+
"category": "Observation"
|
|
11121
|
+
},
|
|
11122
|
+
{
|
|
11123
|
+
"id": "pan-memory-list",
|
|
11124
|
+
"path": ["memory", "list"],
|
|
11125
|
+
"display": "/pan memory list",
|
|
11126
|
+
"description": "List curated memory facts",
|
|
11127
|
+
"args": [],
|
|
11128
|
+
"options": [
|
|
11129
|
+
{
|
|
11130
|
+
"flags": "--type <type>",
|
|
11131
|
+
"description": "Filter by fact type (feedback|project|reference|user)",
|
|
11132
|
+
"required": true,
|
|
11133
|
+
"valueHint": "type"
|
|
11134
|
+
},
|
|
11135
|
+
{
|
|
11136
|
+
"flags": "--query <q>",
|
|
11137
|
+
"description": "Filter by a fact-matching query (see pan memory search)",
|
|
11138
|
+
"required": true,
|
|
11139
|
+
"valueHint": "q"
|
|
11140
|
+
},
|
|
11141
|
+
{
|
|
11142
|
+
"flags": "--review",
|
|
11143
|
+
"description": "Show only facts carrying a review marker (default: active facts only)",
|
|
11144
|
+
"required": false,
|
|
11145
|
+
"valueHint": null
|
|
11146
|
+
},
|
|
11147
|
+
{
|
|
11148
|
+
"flags": "--project <key>",
|
|
11149
|
+
"description": "Project key (defaults to the project owning the cwd)",
|
|
11150
|
+
"required": true,
|
|
11151
|
+
"valueHint": "key"
|
|
11152
|
+
},
|
|
11153
|
+
{
|
|
11154
|
+
"flags": "--user",
|
|
11155
|
+
"description": "List the operator store (travels with you; synced when set up)",
|
|
11156
|
+
"required": false,
|
|
11157
|
+
"valueHint": null
|
|
11158
|
+
},
|
|
11159
|
+
{
|
|
11160
|
+
"flags": "--machine",
|
|
11161
|
+
"description": "List the machine store (this machine only)",
|
|
11162
|
+
"required": false,
|
|
11163
|
+
"valueHint": null
|
|
11164
|
+
},
|
|
11165
|
+
{
|
|
11166
|
+
"flags": "--here",
|
|
11167
|
+
"description": "List the cwd checkout's store instead of the primary checkout",
|
|
11168
|
+
"required": false,
|
|
11169
|
+
"valueHint": null
|
|
11170
|
+
},
|
|
11171
|
+
{
|
|
11172
|
+
"flags": "--json",
|
|
11173
|
+
"description": "Output JSON",
|
|
11174
|
+
"required": false,
|
|
11175
|
+
"valueHint": null
|
|
11176
|
+
}
|
|
11177
|
+
],
|
|
11178
|
+
"aliases": [],
|
|
11179
|
+
"category": "Observation"
|
|
11180
|
+
},
|
|
11181
|
+
{
|
|
11182
|
+
"id": "pan-memory-add",
|
|
11183
|
+
"path": ["memory", "add"],
|
|
11184
|
+
"display": "/pan memory add",
|
|
11185
|
+
"description": "Add a curated memory fact",
|
|
11186
|
+
"args": [{
|
|
11187
|
+
"name": "id",
|
|
11188
|
+
"required": true,
|
|
11189
|
+
"variadic": false
|
|
11190
|
+
}],
|
|
11191
|
+
"options": [
|
|
11192
|
+
{
|
|
11193
|
+
"flags": "--type <type>",
|
|
11194
|
+
"description": "Fact type (feedback|project|reference|user)",
|
|
11195
|
+
"required": true,
|
|
11196
|
+
"valueHint": "type"
|
|
11197
|
+
},
|
|
11198
|
+
{
|
|
11199
|
+
"flags": "--description <text>",
|
|
11200
|
+
"description": "One-line index description (<= 200 chars)",
|
|
11201
|
+
"required": true,
|
|
11202
|
+
"valueHint": "text"
|
|
11203
|
+
},
|
|
11204
|
+
{
|
|
11205
|
+
"flags": "--title <text>",
|
|
11206
|
+
"description": "Fact title (defaults to the id, dashes as spaces, capitalized)",
|
|
11207
|
+
"required": true,
|
|
11208
|
+
"valueHint": "text"
|
|
11209
|
+
},
|
|
11210
|
+
{
|
|
11211
|
+
"flags": "--body <text>",
|
|
11212
|
+
"description": "Fact body",
|
|
11213
|
+
"required": true,
|
|
11214
|
+
"valueHint": "text"
|
|
11215
|
+
},
|
|
11216
|
+
{
|
|
11217
|
+
"flags": "--body-file <path>",
|
|
11218
|
+
"description": "Read the fact body from a file",
|
|
11219
|
+
"required": true,
|
|
11220
|
+
"valueHint": "path"
|
|
11221
|
+
},
|
|
11222
|
+
{
|
|
11223
|
+
"flags": "--tags <a,b>",
|
|
11224
|
+
"description": "Comma-separated tags",
|
|
11225
|
+
"required": true,
|
|
11226
|
+
"valueHint": "a,b"
|
|
11227
|
+
},
|
|
11228
|
+
{
|
|
11229
|
+
"flags": "--project <key>",
|
|
11230
|
+
"description": "Project key (defaults to the project owning the cwd)",
|
|
11231
|
+
"required": true,
|
|
11232
|
+
"valueHint": "key"
|
|
11233
|
+
},
|
|
11234
|
+
{
|
|
11235
|
+
"flags": "--user",
|
|
11236
|
+
"description": "Write to the operator store (travels with you; synced when set up)",
|
|
11237
|
+
"required": false,
|
|
11238
|
+
"valueHint": null
|
|
11239
|
+
},
|
|
11240
|
+
{
|
|
11241
|
+
"flags": "--machine",
|
|
11242
|
+
"description": "Write to the machine store (this machine only)",
|
|
11243
|
+
"required": false,
|
|
11244
|
+
"valueHint": null
|
|
11245
|
+
},
|
|
11246
|
+
{
|
|
11247
|
+
"flags": "--json",
|
|
11248
|
+
"description": "Output JSON",
|
|
11249
|
+
"required": false,
|
|
11250
|
+
"valueHint": null
|
|
11251
|
+
}
|
|
11252
|
+
],
|
|
11253
|
+
"aliases": [],
|
|
11254
|
+
"category": "Observation"
|
|
11255
|
+
},
|
|
11256
|
+
{
|
|
11257
|
+
"id": "pan-memory-edit",
|
|
11258
|
+
"path": ["memory", "edit"],
|
|
11259
|
+
"display": "/pan memory edit",
|
|
11260
|
+
"description": "Edit a curated memory fact",
|
|
11261
|
+
"args": [{
|
|
11262
|
+
"name": "id",
|
|
11263
|
+
"required": true,
|
|
11264
|
+
"variadic": false
|
|
11265
|
+
}],
|
|
11266
|
+
"options": [
|
|
11267
|
+
{
|
|
11268
|
+
"flags": "--type <type>",
|
|
11269
|
+
"description": "Fact type (feedback|project|reference|user)",
|
|
11270
|
+
"required": true,
|
|
11271
|
+
"valueHint": "type"
|
|
11272
|
+
},
|
|
11273
|
+
{
|
|
11274
|
+
"flags": "--title <text>",
|
|
11275
|
+
"description": "Fact title",
|
|
11276
|
+
"required": true,
|
|
11277
|
+
"valueHint": "text"
|
|
11278
|
+
},
|
|
11279
|
+
{
|
|
11280
|
+
"flags": "--description <text>",
|
|
11281
|
+
"description": "One-line index description (<= 200 chars)",
|
|
11282
|
+
"required": true,
|
|
11283
|
+
"valueHint": "text"
|
|
11284
|
+
},
|
|
11285
|
+
{
|
|
11286
|
+
"flags": "--body <text>",
|
|
11287
|
+
"description": "Fact body",
|
|
11288
|
+
"required": true,
|
|
11289
|
+
"valueHint": "text"
|
|
11290
|
+
},
|
|
11291
|
+
{
|
|
11292
|
+
"flags": "--body-file <path>",
|
|
11293
|
+
"description": "Read the fact body from a file",
|
|
11294
|
+
"required": true,
|
|
11295
|
+
"valueHint": "path"
|
|
11296
|
+
},
|
|
11297
|
+
{
|
|
11298
|
+
"flags": "--tags <a,b>",
|
|
11299
|
+
"description": "Comma-separated tags",
|
|
11300
|
+
"required": true,
|
|
11301
|
+
"valueHint": "a,b"
|
|
11302
|
+
},
|
|
11303
|
+
{
|
|
11304
|
+
"flags": "--clear-review",
|
|
11305
|
+
"description": "Remove the review marker, re-activating the fact",
|
|
11306
|
+
"required": false,
|
|
11307
|
+
"valueHint": null
|
|
11308
|
+
},
|
|
11309
|
+
{
|
|
11310
|
+
"flags": "--project <key>",
|
|
11311
|
+
"description": "Project key (defaults to the project owning the cwd)",
|
|
11312
|
+
"required": true,
|
|
11313
|
+
"valueHint": "key"
|
|
11314
|
+
},
|
|
11315
|
+
{
|
|
11316
|
+
"flags": "--user",
|
|
11317
|
+
"description": "Edit the operator store (travels with you; synced when set up)",
|
|
11318
|
+
"required": false,
|
|
11319
|
+
"valueHint": null
|
|
11320
|
+
},
|
|
11321
|
+
{
|
|
11322
|
+
"flags": "--machine",
|
|
11323
|
+
"description": "Edit the machine store (this machine only)",
|
|
11324
|
+
"required": false,
|
|
11325
|
+
"valueHint": null
|
|
11326
|
+
},
|
|
11327
|
+
{
|
|
11328
|
+
"flags": "--json",
|
|
11329
|
+
"description": "Output JSON",
|
|
11330
|
+
"required": false,
|
|
11331
|
+
"valueHint": null
|
|
11332
|
+
}
|
|
11333
|
+
],
|
|
11334
|
+
"aliases": [],
|
|
11335
|
+
"category": "Observation"
|
|
11336
|
+
},
|
|
11337
|
+
{
|
|
11338
|
+
"id": "pan-memory-retire",
|
|
11339
|
+
"path": ["memory", "retire"],
|
|
11340
|
+
"display": "/pan memory retire",
|
|
11341
|
+
"description": "Remove a curated memory fact (git history is the archive)",
|
|
11342
|
+
"args": [{
|
|
11343
|
+
"name": "id",
|
|
11344
|
+
"required": true,
|
|
11345
|
+
"variadic": false
|
|
11346
|
+
}],
|
|
11347
|
+
"options": [
|
|
11348
|
+
{
|
|
11349
|
+
"flags": "--project <key>",
|
|
11350
|
+
"description": "Project key (defaults to the project owning the cwd)",
|
|
11351
|
+
"required": true,
|
|
11352
|
+
"valueHint": "key"
|
|
11353
|
+
},
|
|
11354
|
+
{
|
|
11355
|
+
"flags": "--user",
|
|
11356
|
+
"description": "Retire from the operator store (travels with you; synced when set up)",
|
|
11357
|
+
"required": false,
|
|
11358
|
+
"valueHint": null
|
|
11359
|
+
},
|
|
11360
|
+
{
|
|
11361
|
+
"flags": "--machine",
|
|
11362
|
+
"description": "Retire from the machine store (this machine only)",
|
|
11363
|
+
"required": false,
|
|
11364
|
+
"valueHint": null
|
|
11365
|
+
},
|
|
11366
|
+
{
|
|
11367
|
+
"flags": "--json",
|
|
11368
|
+
"description": "Output JSON",
|
|
11369
|
+
"required": false,
|
|
11370
|
+
"valueHint": null
|
|
11371
|
+
}
|
|
11372
|
+
],
|
|
11373
|
+
"aliases": [],
|
|
11374
|
+
"category": "Observation"
|
|
11375
|
+
},
|
|
11376
|
+
{
|
|
11377
|
+
"id": "pan-memory-sync",
|
|
11378
|
+
"path": ["memory", "sync"],
|
|
11379
|
+
"display": "/pan memory sync",
|
|
11380
|
+
"description": "Sync the operator memory store with your private git remote",
|
|
11381
|
+
"args": [],
|
|
11382
|
+
"options": [
|
|
11383
|
+
{
|
|
11384
|
+
"flags": "--setup <git-url>",
|
|
11385
|
+
"description": "Turn on sync: use this private git repository as the remote, then sync",
|
|
11386
|
+
"required": true,
|
|
11387
|
+
"valueHint": "git-url"
|
|
11388
|
+
},
|
|
11389
|
+
{
|
|
11390
|
+
"flags": "--status",
|
|
11391
|
+
"description": "Show sync state without touching the network",
|
|
11392
|
+
"required": false,
|
|
11393
|
+
"valueHint": null
|
|
11394
|
+
},
|
|
11395
|
+
{
|
|
11396
|
+
"flags": "--json",
|
|
11397
|
+
"description": "Output JSON",
|
|
11398
|
+
"required": false,
|
|
11399
|
+
"valueHint": null
|
|
11400
|
+
}
|
|
11401
|
+
],
|
|
11402
|
+
"aliases": [],
|
|
11403
|
+
"category": "Observation"
|
|
11404
|
+
},
|
|
10900
11405
|
{
|
|
10901
11406
|
"id": "pan-briefing",
|
|
10902
11407
|
"path": ["briefing"],
|
|
@@ -15799,6 +16304,83 @@ function laneActivityOf(row, now) {
|
|
|
15799
16304
|
return "stopped";
|
|
15800
16305
|
}
|
|
15801
16306
|
//#endregion
|
|
16307
|
+
//#region src/conversation-window.ts
|
|
16308
|
+
/**
|
|
16309
|
+
* Conversation window contract shared by the dashboard server and the
|
|
16310
|
+
* frontend (PAN-4558). A cold open carries only the newest slice of a
|
|
16311
|
+
* transcript; older history is paged in by cursor. The constants bound every
|
|
16312
|
+
* open, and the timeline key gives entries one total order on both sides.
|
|
16313
|
+
*/
|
|
16314
|
+
/** Most timeline rows a window or page carries. */
|
|
16315
|
+
const CONVERSATION_WINDOW_MAX_ROWS = 75;
|
|
16316
|
+
/** Most encoded entry bytes a window carries (960 KiB, leaving 64 KiB for metadata). */
|
|
16317
|
+
const CONVERSATION_WINDOW_MAX_BYTES = 983040;
|
|
16318
|
+
/** Whole-payload ceiling for an initial HTTP body or first WS event. */
|
|
16319
|
+
const CONVERSATION_PAYLOAD_BUDGET_BYTES = 1048576;
|
|
16320
|
+
/** Default `limit` for a paged read. */
|
|
16321
|
+
const CONVERSATION_PAGE_DEFAULT_LIMIT = 75;
|
|
16322
|
+
/** Largest `limit` a paged read accepts; larger values clamp to it. */
|
|
16323
|
+
const CONVERSATION_PAGE_MAX_LIMIT = 200;
|
|
16324
|
+
/** A tool `result` (or `detail`/`toolInput` string) above this many UTF-8 bytes leaves the wire. */
|
|
16325
|
+
const TOOL_BODY_INLINE_MAX_BYTES = 4096;
|
|
16326
|
+
/** Characters kept from an oversized `detail`/`toolInput` string. */
|
|
16327
|
+
const TOOL_BODY_PREVIEW_CHARS = 512;
|
|
16328
|
+
/** Most open entry ids a resume may name. */
|
|
16329
|
+
const RESUME_OPEN_IDS_MAX = 200;
|
|
16330
|
+
/** Most open tool calls pinned into a window beyond its contiguous slice. */
|
|
16331
|
+
const WINDOW_PINNED_OPEN_TOOLS_MAX = 10;
|
|
16332
|
+
function timelineKeyOfMessage(m) {
|
|
16333
|
+
return [
|
|
16334
|
+
m.createdAt,
|
|
16335
|
+
m.sequence ?? 0,
|
|
16336
|
+
0,
|
|
16337
|
+
m.id
|
|
16338
|
+
];
|
|
16339
|
+
}
|
|
16340
|
+
function timelineKeyOfWork(e) {
|
|
16341
|
+
return [
|
|
16342
|
+
e.createdAt,
|
|
16343
|
+
e.sequence ?? 0,
|
|
16344
|
+
1,
|
|
16345
|
+
e.id
|
|
16346
|
+
];
|
|
16347
|
+
}
|
|
16348
|
+
function compareStrings(a, b) {
|
|
16349
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
16350
|
+
}
|
|
16351
|
+
/** Total order: createdAt (string compare), then sequence, then message before work, then id. */
|
|
16352
|
+
function compareTimelineKeys(a, b) {
|
|
16353
|
+
return compareStrings(a[0], b[0]) || a[1] - b[1] || a[2] - b[2] || compareStrings(a[3], b[3]);
|
|
16354
|
+
}
|
|
16355
|
+
function encodeTimelineCursor(key) {
|
|
16356
|
+
return JSON.stringify(key);
|
|
16357
|
+
}
|
|
16358
|
+
/** Returns null for anything that is not an encoded 4-tuple of string, finite number, 0|1, string. */
|
|
16359
|
+
function decodeTimelineCursor(cursor) {
|
|
16360
|
+
let value;
|
|
16361
|
+
try {
|
|
16362
|
+
value = JSON.parse(cursor);
|
|
16363
|
+
} catch {
|
|
16364
|
+
return null;
|
|
16365
|
+
}
|
|
16366
|
+
if (!Array.isArray(value) || value.length !== 4) return null;
|
|
16367
|
+
const [createdAt, sequence, kindRank, id] = value;
|
|
16368
|
+
if (typeof createdAt !== "string") return null;
|
|
16369
|
+
if (typeof sequence !== "number" || !Number.isFinite(sequence)) return null;
|
|
16370
|
+
if (kindRank !== 0 && kindRank !== 1) return null;
|
|
16371
|
+
if (typeof id !== "string") return null;
|
|
16372
|
+
return [
|
|
16373
|
+
createdAt,
|
|
16374
|
+
sequence,
|
|
16375
|
+
kindRank,
|
|
16376
|
+
id
|
|
16377
|
+
];
|
|
16378
|
+
}
|
|
16379
|
+
/** A tool entry has a result when it carries one inline or the wire projection elided it. */
|
|
16380
|
+
function hasToolResult(e) {
|
|
16381
|
+
return !!e.result || (e.resultBytes ?? 0) > 0;
|
|
16382
|
+
}
|
|
16383
|
+
//#endregion
|
|
15802
16384
|
//#region src/environment.ts
|
|
15803
16385
|
/** Wire protocol version a client and server must agree on. */
|
|
15804
16386
|
const ENVIRONMENT_PROTOCOL_VERSION = 1;
|
|
@@ -15841,6 +16423,7 @@ function isProtocolCompatible(descriptor, clientProtocolVersion) {
|
|
|
15841
16423
|
}
|
|
15842
16424
|
//#endregion
|
|
15843
16425
|
exports.ACP_BEHAVIOR = ACP_BEHAVIOR;
|
|
16426
|
+
exports.ACP_CAPABILITIES = ACP_CAPABILITIES;
|
|
15844
16427
|
exports.AGENT_ROLES = AGENT_ROLES;
|
|
15845
16428
|
exports.Activity = Activity;
|
|
15846
16429
|
exports.ActivityDetailedEvent = ActivityDetailedEvent;
|
|
@@ -15907,7 +16490,9 @@ exports.BackendPaneRemovedEvent = BackendPaneRemovedEvent;
|
|
|
15907
16490
|
exports.BeadsFreshnessChangedEvent = BeadsFreshnessChangedEvent;
|
|
15908
16491
|
exports.CHANNEL_REPLY_KIND_VALUES = CHANNEL_REPLY_KIND_VALUES;
|
|
15909
16492
|
exports.CLAUDE_CODE_BEHAVIOR = CLAUDE_CODE_BEHAVIOR;
|
|
16493
|
+
exports.CLAUDE_CODE_CAPABILITIES = CLAUDE_CODE_CAPABILITIES;
|
|
15910
16494
|
exports.CODEX_BEHAVIOR = CODEX_BEHAVIOR;
|
|
16495
|
+
exports.CODEX_CAPABILITIES = CODEX_CAPABILITIES;
|
|
15911
16496
|
exports.COMPANION_TERMINAL_CLOSE_BODY_KEYS = COMPANION_TERMINAL_CLOSE_BODY_KEYS;
|
|
15912
16497
|
exports.COMPANION_TERMINAL_OPEN_BODY_KEYS = COMPANION_TERMINAL_OPEN_BODY_KEYS;
|
|
15913
16498
|
exports.COMPOSER_COMMAND_INSERT_OVERRIDES = COMPOSER_COMMAND_INSERT_OVERRIDES;
|
|
@@ -15915,6 +16500,11 @@ exports.COMPOSER_COMMAND_MANIFEST = COMPOSER_COMMAND_MANIFEST;
|
|
|
15915
16500
|
exports.COMPOSER_COMMAND_VARIANTS = COMPOSER_COMMAND_VARIANTS;
|
|
15916
16501
|
exports.CONTEXT_LAYER_KINDS = CONTEXT_LAYER_KINDS;
|
|
15917
16502
|
exports.CONTEXT_PREVIEW_HARNESSES = CONTEXT_PREVIEW_HARNESSES;
|
|
16503
|
+
exports.CONVERSATION_PAGE_DEFAULT_LIMIT = CONVERSATION_PAGE_DEFAULT_LIMIT;
|
|
16504
|
+
exports.CONVERSATION_PAGE_MAX_LIMIT = CONVERSATION_PAGE_MAX_LIMIT;
|
|
16505
|
+
exports.CONVERSATION_PAYLOAD_BUDGET_BYTES = CONVERSATION_PAYLOAD_BUDGET_BYTES;
|
|
16506
|
+
exports.CONVERSATION_WINDOW_MAX_BYTES = CONVERSATION_WINDOW_MAX_BYTES;
|
|
16507
|
+
exports.CONVERSATION_WINDOW_MAX_ROWS = CONVERSATION_WINDOW_MAX_ROWS;
|
|
15918
16508
|
exports.ChannelPermissionRequestSnapshot = ChannelPermissionRequestSnapshot;
|
|
15919
16509
|
exports.ChannelReplyArtifactRef = ChannelReplyArtifactRef;
|
|
15920
16510
|
exports.ChannelReplyKind = ChannelReplyKind;
|
|
@@ -15949,7 +16539,9 @@ exports.ConversationPermissionChangedEvent = ConversationPermissionChangedEvent;
|
|
|
15949
16539
|
exports.ConversationPullRequests = ConversationPullRequests;
|
|
15950
16540
|
exports.ConversationPullRequestsChangedEvent = ConversationPullRequestsChangedEvent;
|
|
15951
16541
|
exports.ConversationResponse = ConversationResponse;
|
|
16542
|
+
exports.ConversationResume = ConversationResume;
|
|
15952
16543
|
exports.ConversationTitleChangedEvent = ConversationTitleChangedEvent;
|
|
16544
|
+
exports.ConversationWindow = ConversationWindow;
|
|
15953
16545
|
exports.CostEventRecordedEvent = CostEventRecordedEvent;
|
|
15954
16546
|
exports.DEFAULT_EFFORT = DEFAULT_EFFORT;
|
|
15955
16547
|
exports.DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE = DEFAULT_MAX_MEMORY_OBSERVATIONS_PER_ISSUE;
|
|
@@ -16058,6 +16650,7 @@ exports.GitHubQuotaUsage = GitHubQuotaUsage;
|
|
|
16058
16650
|
exports.GitHubRateLimitKind = GitHubRateLimitKind;
|
|
16059
16651
|
exports.GlobalContextLayerRecord = GlobalContextLayerRecord;
|
|
16060
16652
|
exports.GlobalContextLayerTarget = GlobalContextLayerTarget;
|
|
16653
|
+
exports.HARNESS_CAPABILITY_KEYS = HARNESS_CAPABILITY_KEYS;
|
|
16061
16654
|
exports.HOOK_INVENTORY = HOOK_INVENTORY;
|
|
16062
16655
|
exports.HealthReason = HealthReason;
|
|
16063
16656
|
exports.HealthState = HealthState;
|
|
@@ -16080,6 +16673,7 @@ exports.IssuesDeltaEvent = IssuesDeltaEvent;
|
|
|
16080
16673
|
exports.IssuesSnapshotEvent = IssuesSnapshotEvent;
|
|
16081
16674
|
exports.IssuesUpdatedEvent = IssuesUpdatedEvent;
|
|
16082
16675
|
exports.KIMI_CODE_BEHAVIOR = KIMI_CODE_BEHAVIOR;
|
|
16676
|
+
exports.KIMI_CODE_CAPABILITIES = KIMI_CODE_CAPABILITIES;
|
|
16083
16677
|
exports.KNOWN_HARNESSES = KNOWN_HARNESSES;
|
|
16084
16678
|
exports.LANE_STARTING_GRACE_MS = LANE_STARTING_GRACE_MS;
|
|
16085
16679
|
exports.LegacySystemHealthSummary = LegacySystemHealthSummary;
|
|
@@ -16096,6 +16690,7 @@ exports.MAX_CHANNEL_REPLY_ARTIFACT_URI_LENGTH = MAX_CHANNEL_REPLY_ARTIFACT_URI_L
|
|
|
16096
16690
|
exports.MAX_CHANNEL_REPLY_SUMMARY_LENGTH = MAX_CHANNEL_REPLY_SUMMARY_LENGTH;
|
|
16097
16691
|
exports.MEMBERSHIP_UNAVAILABLE_REASONS = MEMBERSHIP_UNAVAILABLE_REASONS;
|
|
16098
16692
|
exports.MUSE_BEHAVIOR = MUSE_BEHAVIOR;
|
|
16693
|
+
exports.MUSE_CAPABILITIES = MUSE_CAPABILITIES;
|
|
16099
16694
|
exports.MemoryAgentRole = MemoryAgentRole;
|
|
16100
16695
|
exports.MemoryHealthChangedEvent = MemoryHealthChangedEvent;
|
|
16101
16696
|
exports.MemoryIdentity = MemoryIdentity;
|
|
@@ -16112,7 +16707,9 @@ exports.ModelOrigin = ModelOrigin;
|
|
|
16112
16707
|
exports.ModelOriginEntry = ModelOriginEntry;
|
|
16113
16708
|
exports.NON_ESSENTIAL_GITHUB_CALLERS = NON_ESSENTIAL_GITHUB_CALLERS;
|
|
16114
16709
|
exports.OHMYPI_BEHAVIOR = OHMYPI_BEHAVIOR;
|
|
16710
|
+
exports.OHMYPI_CAPABILITIES = OHMYPI_CAPABILITIES;
|
|
16115
16711
|
exports.OPENCODE_BEHAVIOR = OPENCODE_BEHAVIOR;
|
|
16712
|
+
exports.OPENCODE_CAPABILITIES = OPENCODE_CAPABILITIES;
|
|
16116
16713
|
exports.OVERDECK_AGENT_PROTOCOL_VERSION = OVERDECK_AGENT_PROTOCOL_VERSION;
|
|
16117
16714
|
exports.OVERDECK_DASHBOARD_PROTOCOL_VERSION = OVERDECK_DASHBOARD_PROTOCOL_VERSION;
|
|
16118
16715
|
exports.OpenInEditorInput = OpenInEditorInput;
|
|
@@ -16126,6 +16723,7 @@ exports.OrderBookSettings = OrderBookSettings;
|
|
|
16126
16723
|
exports.OrderBookStatus = OrderBookStatus;
|
|
16127
16724
|
exports.PIPELINE_MEMBERSHIP_LOADING_CODE = PIPELINE_MEMBERSHIP_LOADING_CODE;
|
|
16128
16725
|
exports.PRIME_AGENT_BEHAVIOR = PRIME_AGENT_BEHAVIOR;
|
|
16726
|
+
exports.PRIME_AGENT_CAPABILITIES = PRIME_AGENT_CAPABILITIES;
|
|
16129
16727
|
exports.PanRpcError = PanRpcError;
|
|
16130
16728
|
exports.PanRpcGroup = PanRpcGroup;
|
|
16131
16729
|
exports.PendingTurn = PendingTurn;
|
|
@@ -16161,6 +16759,7 @@ exports.PullRequestLinkSource = PullRequestLinkSource;
|
|
|
16161
16759
|
exports.PullRequestLinkedConversation = PullRequestLinkedConversation;
|
|
16162
16760
|
exports.PullRequestSnapshot = PullRequestSnapshot;
|
|
16163
16761
|
exports.PullRequestState = PullRequestState;
|
|
16762
|
+
exports.RESUME_OPEN_IDS_MAX = RESUME_OPEN_IDS_MAX;
|
|
16164
16763
|
exports.RagDecision = RagDecision;
|
|
16165
16764
|
exports.RagDecisionSource = RagDecisionSource;
|
|
16166
16765
|
exports.ReadFileAtPathInput = ReadFileAtPathInput;
|
|
@@ -16169,7 +16768,9 @@ exports.ReadFileAtPathRpc = ReadFileAtPathRpc;
|
|
|
16169
16768
|
exports.ReadWorkspaceFileInput = ReadWorkspaceFileInput;
|
|
16170
16769
|
exports.ReadWorkspaceFileResult = ReadWorkspaceFileResult;
|
|
16171
16770
|
exports.ReadWorkspaceFileRpc = ReadWorkspaceFileRpc;
|
|
16771
|
+
exports.ReplayEventsResult = ReplayEventsResult;
|
|
16172
16772
|
exports.ReplayEventsRpc = ReplayEventsRpc;
|
|
16773
|
+
exports.ReplayTooFarBehind = ReplayTooFarBehind;
|
|
16173
16774
|
exports.ResetMarker = ResetMarker;
|
|
16174
16775
|
exports.ResetMarkerScope = ResetMarkerScope;
|
|
16175
16776
|
exports.ResizeTerminalRpc = ResizeTerminalRpc;
|
|
@@ -16249,6 +16850,8 @@ exports.TELEMETRY_EVENT_CATALOG = TELEMETRY_EVENT_CATALOG;
|
|
|
16249
16850
|
exports.TELEMETRY_EVENT_NAMES = TELEMETRY_EVENT_NAMES;
|
|
16250
16851
|
exports.TELEMETRY_PROPERTY_DOMAINS = TELEMETRY_PROPERTY_DOMAINS;
|
|
16251
16852
|
exports.TERMINAL_BACKEND_NAMES = TERMINAL_BACKEND_NAMES;
|
|
16853
|
+
exports.TOOL_BODY_INLINE_MAX_BYTES = TOOL_BODY_INLINE_MAX_BYTES;
|
|
16854
|
+
exports.TOOL_BODY_PREVIEW_CHARS = TOOL_BODY_PREVIEW_CHARS;
|
|
16252
16855
|
exports.TerminalCloseRpc = TerminalCloseRpc;
|
|
16253
16856
|
exports.TerminalOpenRpc = TerminalOpenRpc;
|
|
16254
16857
|
exports.TerminalOutput = TerminalOutput;
|
|
@@ -16261,6 +16864,7 @@ exports.TickMarkerPhase = TickMarkerPhase;
|
|
|
16261
16864
|
exports.TurnDiffFileChange = TurnDiffFileChange;
|
|
16262
16865
|
exports.TurnDiffSummary = TurnDiffSummary;
|
|
16263
16866
|
exports.TurnEndAssessment = TurnEndAssessment;
|
|
16867
|
+
exports.WINDOW_PINNED_OPEN_TOOLS_MAX = WINDOW_PINNED_OPEN_TOOLS_MAX;
|
|
16264
16868
|
exports.WIRED_HOOK_INVENTORY = WIRED_HOOK_INVENTORY;
|
|
16265
16869
|
exports.WIRED_HOOK_NAMES = WIRED_HOOK_NAMES;
|
|
16266
16870
|
exports.WS_METHODS = WS_METHODS;
|
|
@@ -16288,16 +16892,20 @@ exports.canonicalPullRequestUrl = canonicalPullRequestUrl;
|
|
|
16288
16892
|
exports.companionTerminalKindFor = companionTerminalKindFor;
|
|
16289
16893
|
exports.compareEffort = compareEffort;
|
|
16290
16894
|
exports.compareIssueIds = compareIssueIds;
|
|
16895
|
+
exports.compareTimelineKeys = compareTimelineKeys;
|
|
16291
16896
|
exports.createIssueDelta = createIssueDelta;
|
|
16292
16897
|
exports.decodeFlywheelDerivedStatus = decodeFlywheelDerivedStatus;
|
|
16293
16898
|
exports.decodeFlywheelStats = decodeFlywheelStats;
|
|
16899
|
+
exports.decodeTimelineCursor = decodeTimelineCursor;
|
|
16294
16900
|
exports.deriveProjectCi = deriveProjectCi;
|
|
16295
16901
|
exports.encodeFlywheelStats = encodeFlywheelStats;
|
|
16902
|
+
exports.encodeTimelineCursor = encodeTimelineCursor;
|
|
16296
16903
|
exports.getHarness = getHarness;
|
|
16297
16904
|
exports.getHarnessBehavior = getHarnessBehavior;
|
|
16298
16905
|
exports.getMaxMemoryObservationsPerIssue = getMaxMemoryObservationsPerIssue;
|
|
16299
16906
|
exports.getMaxTurnDiffSummariesPerAgent = getMaxTurnDiffSummariesPerAgent;
|
|
16300
16907
|
exports.getRuntimeBehavior = getRuntimeBehavior;
|
|
16908
|
+
exports.hasToolResult = hasToolResult;
|
|
16301
16909
|
exports.indexPanesByAgentKey = indexPanesByAgentKey;
|
|
16302
16910
|
exports.isAgentRole = isAgentRole;
|
|
16303
16911
|
exports.isAgentSessionName = isAgentSessionName;
|
|
@@ -16306,12 +16914,14 @@ exports.isConfiguredPullRequestRepo = isConfiguredPullRequestRepo;
|
|
|
16306
16914
|
exports.isEffortLevel = isEffortLevel;
|
|
16307
16915
|
exports.isIssueAttention = isIssueAttention;
|
|
16308
16916
|
exports.isIssueState = isIssueState;
|
|
16917
|
+
exports.isLegacyPiHarnessName = isLegacyPiHarnessName;
|
|
16309
16918
|
exports.isProtocolCompatible = isProtocolCompatible;
|
|
16310
16919
|
exports.isSingletonConversation = isSingletonConversation;
|
|
16311
16920
|
exports.isTerminalBackendName = isTerminalBackendName;
|
|
16312
16921
|
exports.isTerminalTurnDiffSummaryStatus = isTerminalTurnDiffSummaryStatus;
|
|
16313
16922
|
exports.laneActivityOf = laneActivityOf;
|
|
16314
16923
|
exports.normalizeChannelReplyPayload = normalizeChannelReplyPayload;
|
|
16924
|
+
exports.normalizeHarnessName = normalizeHarnessName;
|
|
16315
16925
|
exports.omitTurnDiffSummariesForAgent = omitTurnDiffSummariesForAgent;
|
|
16316
16926
|
exports.paneAgentKey = paneAgentKey;
|
|
16317
16927
|
exports.parsePullRequestRef = parsePullRequestRef;
|
|
@@ -16319,6 +16929,8 @@ exports.projectLegacySystemHealthSummary = projectLegacySystemHealthSummary;
|
|
|
16319
16929
|
exports.repoFromRemoteUrl = repoFromRemoteUrl;
|
|
16320
16930
|
exports.resolveEffectivePullRequest = resolveEffectivePullRequest;
|
|
16321
16931
|
exports.syncSnapshot = syncSnapshot;
|
|
16932
|
+
exports.timelineKeyOfMessage = timelineKeyOfMessage;
|
|
16933
|
+
exports.timelineKeyOfWork = timelineKeyOfWork;
|
|
16322
16934
|
exports.trimMemoryObservations = trimMemoryObservations;
|
|
16323
16935
|
exports.trimTurnDiffSummaries = trimTurnDiffSummaries;
|
|
16324
16936
|
exports.withPaneLivenessAlias = withPaneLivenessAlias;
|