@agentdock/wire 0.0.90 → 0.0.92
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/activityPreferences.js +1 -2
- package/dist/agentCapabilities.d.ts +2 -0
- package/dist/agentCapabilities.js +1 -199
- package/dist/agentCommonEnv.js +1 -20
- package/dist/agentInstallGuide.js +1 -81
- package/dist/bgTask.js +1 -128
- package/dist/checkpointSchemas.d.ts +142 -98
- package/dist/checkpointSchemas.js +1 -46
- package/dist/controlLevel.js +1 -11
- package/dist/edition.js +1 -13
- package/dist/envelope.d.ts +5668 -563
- package/dist/envelope.js +1 -77
- package/dist/errorMessage.js +1 -6
- package/dist/events.d.ts +2053 -324
- package/dist/events.js +1 -107
- package/dist/features.d.ts +3 -1
- package/dist/features.js +1 -123
- package/dist/feedback.d.ts +2 -2
- package/dist/feedback.js +1 -61
- package/dist/fileWhitelist.js +1 -189
- package/dist/inboundEvents.d.ts +531 -0
- package/dist/inboundEvents.js +1 -0
- package/dist/index.d.ts +11 -5
- package/dist/index.js +1 -73
- package/dist/interactionEvents.d.ts +153 -106
- package/dist/interactionEvents.js +1 -111
- package/dist/legacyProtocol.d.ts +512 -272
- package/dist/legacyProtocol.js +1 -30
- package/dist/license.js +1 -28
- package/dist/machine.d.ts +108 -62
- package/dist/machine.js +1 -66
- package/dist/messageMeta.d.ts +34 -28
- package/dist/messageMeta.js +1 -60
- package/dist/messages.d.ts +34900 -1862
- package/dist/messages.js +1 -35
- package/dist/notification.d.ts +48 -0
- package/dist/notification.js +1 -0
- package/dist/ops.d.ts +165 -122
- package/dist/ops.js +1 -74
- package/dist/pairing.d.ts +4 -4
- package/dist/pairing.js +1 -150
- package/dist/permissionSubject.js +1 -68
- package/dist/protocol.js +1 -7
- package/dist/rpc.d.ts +749 -189
- package/dist/rpc.js +1 -269
- package/dist/scheduledTasks.d.ts +619 -304
- package/dist/scheduledTasks.js +1 -188
- package/dist/semver.js +1 -60
- package/dist/sessionResult.d.ts +31 -17
- package/dist/sessionResult.js +1 -23
- package/dist/socketEvents.d.ts +7 -0
- package/dist/socketEvents.js +1 -55
- package/dist/sourceMetadata.d.ts +44 -0
- package/dist/sourceMetadata.js +1 -0
- package/dist/spawnError.d.ts +21 -17
- package/dist/spawnError.js +1 -31
- package/dist/stats.d.ts +73 -73
- package/dist/stats.js +1 -117
- package/dist/sync.d.ts +2165 -819
- package/dist/sync.js +1 -99
- package/dist/taskResult.js +1 -113
- package/dist/telemetry.d.ts +120 -64
- package/dist/telemetry.js +1 -115
- package/dist/utils.js +1 -2
- package/package.json +1 -1
- package/dist/activityPreferences.d.ts.map +0 -1
- package/dist/activityPreferences.js.map +0 -1
- package/dist/agentCapabilities.d.ts.map +0 -1
- package/dist/agentCapabilities.js.map +0 -1
- package/dist/agentCommonEnv.d.ts.map +0 -1
- package/dist/agentCommonEnv.js.map +0 -1
- package/dist/agentInstallGuide.d.ts.map +0 -1
- package/dist/agentInstallGuide.js.map +0 -1
- package/dist/bgTask.d.ts.map +0 -1
- package/dist/bgTask.js.map +0 -1
- package/dist/checkpointSchemas.d.ts.map +0 -1
- package/dist/checkpointSchemas.js.map +0 -1
- package/dist/controlLevel.d.ts.map +0 -1
- package/dist/controlLevel.js.map +0 -1
- package/dist/edition.d.ts.map +0 -1
- package/dist/edition.js.map +0 -1
- package/dist/envelope.d.ts.map +0 -1
- package/dist/envelope.js.map +0 -1
- package/dist/errorMessage.d.ts.map +0 -1
- package/dist/errorMessage.js.map +0 -1
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js.map +0 -1
- package/dist/features.d.ts.map +0 -1
- package/dist/features.js.map +0 -1
- package/dist/feedback.d.ts.map +0 -1
- package/dist/feedback.js.map +0 -1
- package/dist/fileWhitelist.d.ts.map +0 -1
- package/dist/fileWhitelist.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interactionEvents.d.ts.map +0 -1
- package/dist/interactionEvents.js.map +0 -1
- package/dist/legacyProtocol.d.ts.map +0 -1
- package/dist/legacyProtocol.js.map +0 -1
- package/dist/license.d.ts.map +0 -1
- package/dist/license.js.map +0 -1
- package/dist/machine.d.ts.map +0 -1
- package/dist/machine.js.map +0 -1
- package/dist/messageMeta.d.ts.map +0 -1
- package/dist/messageMeta.js.map +0 -1
- package/dist/messages.d.ts.map +0 -1
- package/dist/messages.js.map +0 -1
- package/dist/ops.d.ts.map +0 -1
- package/dist/ops.js.map +0 -1
- package/dist/pairing.d.ts.map +0 -1
- package/dist/pairing.js.map +0 -1
- package/dist/permissionSubject.d.ts.map +0 -1
- package/dist/permissionSubject.js.map +0 -1
- package/dist/protocol.d.ts.map +0 -1
- package/dist/protocol.js.map +0 -1
- package/dist/rpc.d.ts.map +0 -1
- package/dist/rpc.js.map +0 -1
- package/dist/scheduledTasks.d.ts.map +0 -1
- package/dist/scheduledTasks.js.map +0 -1
- package/dist/semver.d.ts.map +0 -1
- package/dist/semver.js.map +0 -1
- package/dist/sessionResult.d.ts.map +0 -1
- package/dist/sessionResult.js.map +0 -1
- package/dist/socketEvents.d.ts.map +0 -1
- package/dist/socketEvents.js.map +0 -1
- package/dist/spawnError.d.ts.map +0 -1
- package/dist/spawnError.js.map +0 -1
- package/dist/stats.d.ts.map +0 -1
- package/dist/stats.js.map +0 -1
- package/dist/sync.d.ts.map +0 -1
- package/dist/sync.js.map +0 -1
- package/dist/taskResult.d.ts.map +0 -1
- package/dist/taskResult.js.map +0 -1
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js.map +0 -1
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
//# sourceMappingURL=activityPreferences.js.map
|
|
1
|
+
"use strict";export{};
|
|
@@ -30,6 +30,8 @@ export interface AgentCapability {
|
|
|
30
30
|
readonly supportsInSessionModelSwitch: boolean;
|
|
31
31
|
/** Whether the agent supports switching permission mode mid-session (without restart). */
|
|
32
32
|
readonly supportsInSessionModeSwitch: boolean;
|
|
33
|
+
/** Whether the agent supports real-time context window usage queries (getContextUsage). */
|
|
34
|
+
readonly supportsContextUsageQuery: boolean;
|
|
33
35
|
/** ACP agent — model/mode lists come from daemon cache, not static config. */
|
|
34
36
|
readonly usesAcpConfig: boolean;
|
|
35
37
|
/** Static model options for non-ACP agents (Claude, Codex). Empty = use server catalog or ACP. */
|
|
@@ -1,199 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Agent capability matrix — static mapping of which features each CLI agent supports.
|
|
3
|
-
*
|
|
4
|
-
* Web UI uses this to conditionally show/hide spawn parameters
|
|
5
|
-
* (model, systemPrompt, tools, permissions, etc.) based on the selected agent.
|
|
6
|
-
*/
|
|
7
|
-
// ── Per-agent permission modes ──────────────────────────────────────
|
|
8
|
-
const CLAUDE_PERMISSION_MODES = [
|
|
9
|
-
{ value: 'default', labelKey: 'permissionDefault' },
|
|
10
|
-
{ value: 'acceptEdits', labelKey: 'permissionAutoEdit' },
|
|
11
|
-
{ value: 'auto', labelKey: 'permissionAuto' },
|
|
12
|
-
{ value: 'plan', labelKey: 'permissionPlan' },
|
|
13
|
-
{ value: 'bypassPermissions', labelKey: 'permissionFullAuto' },
|
|
14
|
-
];
|
|
15
|
-
// ── Per-agent static models (non-ACP agents) ──────────────────────
|
|
16
|
-
const CLAUDE_MODELS = [
|
|
17
|
-
{ value: 'sonnet', label: 'Sonnet' },
|
|
18
|
-
{ value: 'opus', label: 'Opus' },
|
|
19
|
-
{ value: 'haiku', label: 'Haiku' },
|
|
20
|
-
];
|
|
21
|
-
// ── Capability matrix ───────────────────────────────────────────────
|
|
22
|
-
export const AGENT_CAPABILITIES = {
|
|
23
|
-
claude: {
|
|
24
|
-
controlLevel: 3,
|
|
25
|
-
supportsModel: true,
|
|
26
|
-
supportsSystemPrompt: true,
|
|
27
|
-
supportsToolConfig: true,
|
|
28
|
-
supportsMcpConfig: true,
|
|
29
|
-
supportsPermissionMode: true,
|
|
30
|
-
supportsResume: true,
|
|
31
|
-
supportsMaxTurns: true,
|
|
32
|
-
supportsSlashClear: true,
|
|
33
|
-
supportsSlashCompact: true,
|
|
34
|
-
supportsInSessionModelSwitch: true,
|
|
35
|
-
supportsInSessionModeSwitch: true,
|
|
36
|
-
usesAcpConfig: false,
|
|
37
|
-
staticModels: CLAUDE_MODELS,
|
|
38
|
-
permissionModes: CLAUDE_PERMISSION_MODES,
|
|
39
|
-
defaultPermissionMode: 'default',
|
|
40
|
-
},
|
|
41
|
-
copilot: {
|
|
42
|
-
controlLevel: 3,
|
|
43
|
-
supportsModel: true,
|
|
44
|
-
supportsSystemPrompt: false,
|
|
45
|
-
supportsToolConfig: true,
|
|
46
|
-
supportsMcpConfig: true,
|
|
47
|
-
supportsPermissionMode: true,
|
|
48
|
-
supportsResume: true,
|
|
49
|
-
supportsMaxTurns: false,
|
|
50
|
-
supportsSlashClear: true,
|
|
51
|
-
supportsSlashCompact: false,
|
|
52
|
-
supportsInSessionModelSwitch: false, // ACP setConfigOption 不支持 env/custom 来源模型
|
|
53
|
-
supportsInSessionModeSwitch: true,
|
|
54
|
-
usesAcpConfig: true,
|
|
55
|
-
staticModels: [],
|
|
56
|
-
permissionModes: [],
|
|
57
|
-
defaultPermissionMode: '',
|
|
58
|
-
},
|
|
59
|
-
opencode: {
|
|
60
|
-
controlLevel: 3,
|
|
61
|
-
supportsModel: true,
|
|
62
|
-
supportsSystemPrompt: true,
|
|
63
|
-
supportsToolConfig: true,
|
|
64
|
-
supportsMcpConfig: true,
|
|
65
|
-
supportsPermissionMode: false,
|
|
66
|
-
supportsResume: true,
|
|
67
|
-
supportsMaxTurns: false,
|
|
68
|
-
supportsSlashClear: true,
|
|
69
|
-
supportsSlashCompact: false,
|
|
70
|
-
supportsInSessionModelSwitch: false, // ACP setConfigOption 不支持 env/custom 来源模型
|
|
71
|
-
supportsInSessionModeSwitch: true,
|
|
72
|
-
usesAcpConfig: true,
|
|
73
|
-
staticModels: [],
|
|
74
|
-
permissionModes: [],
|
|
75
|
-
defaultPermissionMode: '',
|
|
76
|
-
},
|
|
77
|
-
codex: {
|
|
78
|
-
controlLevel: 2,
|
|
79
|
-
supportsModel: true,
|
|
80
|
-
supportsSystemPrompt: true,
|
|
81
|
-
supportsToolConfig: false,
|
|
82
|
-
supportsMcpConfig: false,
|
|
83
|
-
supportsPermissionMode: true,
|
|
84
|
-
supportsResume: true,
|
|
85
|
-
supportsMaxTurns: false,
|
|
86
|
-
supportsSlashClear: true,
|
|
87
|
-
supportsSlashCompact: true,
|
|
88
|
-
supportsInSessionModelSwitch: false, // Codex App Server 协议无 mid-thread 模型切换机制
|
|
89
|
-
supportsInSessionModeSwitch: true,
|
|
90
|
-
usesAcpConfig: true,
|
|
91
|
-
staticModels: [],
|
|
92
|
-
permissionModes: [],
|
|
93
|
-
defaultPermissionMode: '',
|
|
94
|
-
},
|
|
95
|
-
gemini: {
|
|
96
|
-
controlLevel: 3,
|
|
97
|
-
supportsModel: true,
|
|
98
|
-
supportsSystemPrompt: false,
|
|
99
|
-
supportsToolConfig: false,
|
|
100
|
-
supportsMcpConfig: true,
|
|
101
|
-
supportsPermissionMode: false,
|
|
102
|
-
supportsResume: false,
|
|
103
|
-
supportsMaxTurns: false,
|
|
104
|
-
supportsSlashClear: true,
|
|
105
|
-
supportsSlashCompact: false,
|
|
106
|
-
supportsInSessionModelSwitch: false,
|
|
107
|
-
supportsInSessionModeSwitch: false,
|
|
108
|
-
usesAcpConfig: true,
|
|
109
|
-
staticModels: [],
|
|
110
|
-
permissionModes: [],
|
|
111
|
-
defaultPermissionMode: 'bypassPermissions',
|
|
112
|
-
},
|
|
113
|
-
hermes: {
|
|
114
|
-
controlLevel: 3,
|
|
115
|
-
supportsModel: true,
|
|
116
|
-
supportsSystemPrompt: false,
|
|
117
|
-
supportsToolConfig: false,
|
|
118
|
-
supportsMcpConfig: true,
|
|
119
|
-
supportsPermissionMode: true,
|
|
120
|
-
supportsResume: true,
|
|
121
|
-
supportsMaxTurns: false,
|
|
122
|
-
supportsSlashClear: true,
|
|
123
|
-
supportsSlashCompact: false,
|
|
124
|
-
supportsInSessionModelSwitch: false, // ACP setConfigOption 不支持 env/custom 来源模型
|
|
125
|
-
supportsInSessionModeSwitch: true,
|
|
126
|
-
usesAcpConfig: true,
|
|
127
|
-
staticModels: [],
|
|
128
|
-
permissionModes: [
|
|
129
|
-
{ value: 'default', labelKey: 'permissionDefault' },
|
|
130
|
-
{ value: 'acceptEdits', labelKey: 'permissionAutoEdit' },
|
|
131
|
-
{ value: 'bypassPermissions', labelKey: 'permissionFullAuto' },
|
|
132
|
-
],
|
|
133
|
-
defaultPermissionMode: 'default',
|
|
134
|
-
},
|
|
135
|
-
openclaw: {
|
|
136
|
-
controlLevel: 3,
|
|
137
|
-
supportsModel: true,
|
|
138
|
-
supportsSystemPrompt: false,
|
|
139
|
-
supportsToolConfig: false,
|
|
140
|
-
supportsMcpConfig: false,
|
|
141
|
-
supportsPermissionMode: false,
|
|
142
|
-
supportsResume: false,
|
|
143
|
-
supportsMaxTurns: false,
|
|
144
|
-
supportsSlashClear: true,
|
|
145
|
-
supportsSlashCompact: false,
|
|
146
|
-
supportsInSessionModelSwitch: false,
|
|
147
|
-
supportsInSessionModeSwitch: false,
|
|
148
|
-
usesAcpConfig: true,
|
|
149
|
-
staticModels: [],
|
|
150
|
-
permissionModes: [],
|
|
151
|
-
defaultPermissionMode: '',
|
|
152
|
-
},
|
|
153
|
-
};
|
|
154
|
-
// ── Dynamic mode overrides (from ACP configOptions at runtime) ─────
|
|
155
|
-
let dynamicModes = {};
|
|
156
|
-
/** Update dynamic modes for an ACP agent (called by daemon when session reports modes). */
|
|
157
|
-
export function updateDynamicModes(agentType, modes) {
|
|
158
|
-
if (modes.length === 0)
|
|
159
|
-
return;
|
|
160
|
-
dynamicModes = {
|
|
161
|
-
...dynamicModes,
|
|
162
|
-
[agentType]: modes.map((m) => ({ value: m.id, labelKey: m.label })),
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
/** Get dynamic modes for an agent, or null if none reported. */
|
|
166
|
-
export function getDynamicModes(agentType) {
|
|
167
|
-
return dynamicModes[agentType] ?? null;
|
|
168
|
-
}
|
|
169
|
-
/** Get capability for an agent, falling back to minimal (Level 0) for unknown agents. */
|
|
170
|
-
export function getAgentCapability(agentType) {
|
|
171
|
-
return (AGENT_CAPABILITIES[agentType] ?? {
|
|
172
|
-
controlLevel: 0,
|
|
173
|
-
supportsModel: false,
|
|
174
|
-
supportsSystemPrompt: false,
|
|
175
|
-
supportsToolConfig: false,
|
|
176
|
-
supportsMcpConfig: false,
|
|
177
|
-
supportsPermissionMode: false,
|
|
178
|
-
supportsResume: false,
|
|
179
|
-
supportsMaxTurns: false,
|
|
180
|
-
supportsSlashClear: false,
|
|
181
|
-
supportsSlashCompact: false,
|
|
182
|
-
supportsInSessionModelSwitch: false,
|
|
183
|
-
supportsInSessionModeSwitch: false,
|
|
184
|
-
usesAcpConfig: false,
|
|
185
|
-
staticModels: [],
|
|
186
|
-
permissionModes: [],
|
|
187
|
-
defaultPermissionMode: 'default',
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Normalize a Claude model ID so that dot-separated versions (e.g. `claude-opus-4.6`)
|
|
192
|
-
* match the hyphen-separated form returned by the API (e.g. `claude-opus-4-6`).
|
|
193
|
-
*
|
|
194
|
-
* Safe to call on any string — non-Claude IDs pass through unchanged.
|
|
195
|
-
*/
|
|
196
|
-
export function normalizeModelId(id) {
|
|
197
|
-
return id.replace(/(\d+)\.(\d+)/g, '$1-$2');
|
|
198
|
-
}
|
|
199
|
-
//# sourceMappingURL=agentCapabilities.js.map
|
|
1
|
+
"use strict";const p=[{value:"default",labelKey:"permissionDefault"},{value:"acceptEdits",labelKey:"permissionAutoEdit"},{value:"auto",labelKey:"permissionAuto"},{value:"plan",labelKey:"permissionPlan"},{value:"bypassPermissions",labelKey:"permissionFullAuto"}],r=[{value:"sonnet",label:"Sonnet"},{value:"opus",label:"Opus"},{value:"haiku",label:"Haiku"}];export const AGENT_CAPABILITIES={claude:{controlLevel:3,supportsModel:!0,supportsSystemPrompt:!0,supportsToolConfig:!0,supportsMcpConfig:!0,supportsPermissionMode:!0,supportsResume:!0,supportsMaxTurns:!0,supportsSlashClear:!0,supportsSlashCompact:!0,supportsInSessionModelSwitch:!0,supportsInSessionModeSwitch:!0,supportsContextUsageQuery:!0,usesAcpConfig:!1,staticModels:r,permissionModes:p,defaultPermissionMode:"default"},copilot:{controlLevel:3,supportsModel:!0,supportsSystemPrompt:!1,supportsToolConfig:!0,supportsMcpConfig:!0,supportsPermissionMode:!0,supportsResume:!0,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!1,supportsInSessionModelSwitch:!1,supportsInSessionModeSwitch:!0,supportsContextUsageQuery:!1,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:""},opencode:{controlLevel:3,supportsModel:!0,supportsSystemPrompt:!0,supportsToolConfig:!0,supportsMcpConfig:!0,supportsPermissionMode:!1,supportsResume:!0,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!1,supportsInSessionModelSwitch:!0,supportsInSessionModeSwitch:!0,supportsContextUsageQuery:!1,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:""},codex:{controlLevel:2,supportsModel:!0,supportsSystemPrompt:!0,supportsToolConfig:!1,supportsMcpConfig:!1,supportsPermissionMode:!0,supportsResume:!0,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!0,supportsInSessionModelSwitch:!0,supportsInSessionModeSwitch:!0,supportsContextUsageQuery:!1,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:""},gemini:{controlLevel:3,supportsModel:!0,supportsSystemPrompt:!1,supportsToolConfig:!1,supportsMcpConfig:!0,supportsPermissionMode:!1,supportsResume:!1,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!1,supportsInSessionModelSwitch:!1,supportsInSessionModeSwitch:!1,supportsContextUsageQuery:!1,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:"bypassPermissions"},hermes:{controlLevel:3,supportsModel:!0,supportsSystemPrompt:!1,supportsToolConfig:!1,supportsMcpConfig:!0,supportsPermissionMode:!0,supportsResume:!0,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!1,supportsInSessionModelSwitch:!1,supportsInSessionModeSwitch:!0,supportsContextUsageQuery:!1,usesAcpConfig:!0,staticModels:[],permissionModes:[{value:"default",labelKey:"permissionDefault"},{value:"acceptEdits",labelKey:"permissionAutoEdit"},{value:"bypassPermissions",labelKey:"permissionFullAuto"}],defaultPermissionMode:"default"},openclaw:{controlLevel:3,supportsModel:!0,supportsSystemPrompt:!1,supportsToolConfig:!1,supportsMcpConfig:!1,supportsPermissionMode:!1,supportsResume:!1,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!1,supportsInSessionModelSwitch:!1,supportsInSessionModeSwitch:!1,supportsContextUsageQuery:!1,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:""}};let e={};export function updateDynamicModes(s,o){o.length!==0&&(e={...e,[s]:o.map(t=>({value:t.id,labelKey:t.label}))})}export function getDynamicModes(s){return e[s]??null}export function getAgentCapability(s){return AGENT_CAPABILITIES[s]??{controlLevel:0,supportsModel:!1,supportsSystemPrompt:!1,supportsToolConfig:!1,supportsMcpConfig:!1,supportsPermissionMode:!1,supportsResume:!1,supportsMaxTurns:!1,supportsSlashClear:!1,supportsSlashCompact:!1,supportsInSessionModelSwitch:!1,supportsInSessionModeSwitch:!1,supportsContextUsageQuery:!1,usesAcpConfig:!1,staticModels:[],permissionModes:[],defaultPermissionMode:"default"}}export function normalizeModelId(s){return s.replace(/(\d+)\.(\d+)/g,"$1-$2")}
|
package/dist/agentCommonEnv.js
CHANGED
|
@@ -1,20 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Common environment variables for each agent.
|
|
3
|
-
*
|
|
4
|
-
* Only agents that use a single-provider API key are listed here.
|
|
5
|
-
* Multi-provider agents (opencode, hermes, openclaw) configure keys
|
|
6
|
-
* through their own config files, so they are intentionally omitted.
|
|
7
|
-
* Copilot authenticates via OAuth (`gh auth login`), not env vars.
|
|
8
|
-
*/
|
|
9
|
-
export const AGENT_COMMON_ENV_VARS = {
|
|
10
|
-
claude: [
|
|
11
|
-
{ key: 'ANTHROPIC_API_KEY', placeholder: 'sk-ant-...' },
|
|
12
|
-
{ key: 'ANTHROPIC_BASE_URL', placeholder: 'https://api.anthropic.com' },
|
|
13
|
-
],
|
|
14
|
-
codex: [
|
|
15
|
-
{ key: 'OPENAI_API_KEY', placeholder: 'sk-...' },
|
|
16
|
-
{ key: 'OPENAI_BASE_URL', placeholder: 'https://api.openai.com/v1' },
|
|
17
|
-
],
|
|
18
|
-
gemini: [{ key: 'GEMINI_API_KEY', placeholder: 'AIza...' }],
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=agentCommonEnv.js.map
|
|
1
|
+
"use strict";export const AGENT_COMMON_ENV_VARS={claude:[{key:"ANTHROPIC_API_KEY",placeholder:"sk-ant-..."},{key:"ANTHROPIC_BASE_URL",placeholder:"https://api.anthropic.com"}],codex:[{key:"OPENAI_API_KEY",placeholder:"sk-..."},{key:"OPENAI_BASE_URL",placeholder:"https://api.openai.com/v1"}],gemini:[{key:"GEMINI_API_KEY",placeholder:"AIza..."}]};
|
|
@@ -1,81 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Per-agent install instructions for the web UI.
|
|
3
|
-
*
|
|
4
|
-
* Display-only data — the actual gating logic lives in daemon's registry.
|
|
5
|
-
* Wire only has the strings so the web can render install/upgrade instructions.
|
|
6
|
-
*/
|
|
7
|
-
export const AGENT_INSTALL_GUIDE = {
|
|
8
|
-
claude: {
|
|
9
|
-
minVersion: '2.1.0',
|
|
10
|
-
install: {
|
|
11
|
-
darwin: 'curl -fsSL https://claude.ai/install.sh | bash',
|
|
12
|
-
linux: 'curl -fsSL https://claude.ai/install.sh | bash',
|
|
13
|
-
win32: 'irm https://claude.ai/install.ps1 | iex',
|
|
14
|
-
},
|
|
15
|
-
upgradeUrl: 'https://code.claude.com/docs/en/overview',
|
|
16
|
-
},
|
|
17
|
-
copilot: {
|
|
18
|
-
minVersion: '1.0.5',
|
|
19
|
-
install: {
|
|
20
|
-
darwin: 'See https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli',
|
|
21
|
-
linux: 'See https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli',
|
|
22
|
-
win32: 'See https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli',
|
|
23
|
-
},
|
|
24
|
-
upgradeUrl: 'https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli',
|
|
25
|
-
},
|
|
26
|
-
codex: {
|
|
27
|
-
minVersion: '0.100.0',
|
|
28
|
-
install: {
|
|
29
|
-
darwin: 'npm install -g @openai/codex',
|
|
30
|
-
linux: 'npm install -g @openai/codex',
|
|
31
|
-
win32: 'npm install -g @openai/codex',
|
|
32
|
-
},
|
|
33
|
-
upgradeUrl: 'https://github.com/openai/codex',
|
|
34
|
-
},
|
|
35
|
-
gemini: {
|
|
36
|
-
minVersion: '0.38.0',
|
|
37
|
-
install: {
|
|
38
|
-
darwin: 'npm install -g @google/gemini-cli',
|
|
39
|
-
linux: 'npm install -g @google/gemini-cli',
|
|
40
|
-
win32: 'npm install -g @google/gemini-cli',
|
|
41
|
-
},
|
|
42
|
-
upgradeUrl: 'https://github.com/google-gemini/gemini-cli',
|
|
43
|
-
},
|
|
44
|
-
opencode: {
|
|
45
|
-
minVersion: '0.1.0',
|
|
46
|
-
install: {
|
|
47
|
-
darwin: 'curl -fsSL https://opencode.ai/install | bash',
|
|
48
|
-
linux: 'curl -fsSL https://opencode.ai/install | bash',
|
|
49
|
-
win32: 'npm install -g opencode-ai',
|
|
50
|
-
},
|
|
51
|
-
upgradeUrl: 'https://opencode.ai',
|
|
52
|
-
},
|
|
53
|
-
hermes: {
|
|
54
|
-
minVersion: '0.10.0',
|
|
55
|
-
install: {
|
|
56
|
-
darwin: 'curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash',
|
|
57
|
-
linux: 'curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash',
|
|
58
|
-
win32: 'Install WSL2, then inside WSL: curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash',
|
|
59
|
-
},
|
|
60
|
-
upgradeUrl: 'https://github.com/NousResearch/hermes-agent',
|
|
61
|
-
},
|
|
62
|
-
openclaw: {
|
|
63
|
-
minVersion: '2026.4.0',
|
|
64
|
-
install: {
|
|
65
|
-
darwin: 'npm install -g openclaw',
|
|
66
|
-
linux: 'npm install -g openclaw',
|
|
67
|
-
win32: 'Install WSL2, then inside WSL: npm install -g openclaw',
|
|
68
|
-
},
|
|
69
|
-
upgradeUrl: 'https://docs.openclaw.ai',
|
|
70
|
-
},
|
|
71
|
-
custom: {
|
|
72
|
-
minVersion: '0.0.0',
|
|
73
|
-
install: {
|
|
74
|
-
darwin: 'Install the custom agent CLI per its documentation',
|
|
75
|
-
linux: 'Install the custom agent CLI per its documentation',
|
|
76
|
-
win32: 'Install the custom agent CLI per its documentation',
|
|
77
|
-
},
|
|
78
|
-
upgradeUrl: '',
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
//# sourceMappingURL=agentInstallGuide.js.map
|
|
1
|
+
"use strict";export const AGENT_INSTALL_GUIDE={claude:{minVersion:"2.1.0",install:{darwin:"curl -fsSL https://claude.ai/install.sh | bash",linux:"curl -fsSL https://claude.ai/install.sh | bash",win32:"irm https://claude.ai/install.ps1 | iex"},upgradeUrl:"https://code.claude.com/docs/en/overview"},copilot:{minVersion:"1.0.5",install:{darwin:"See https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli",linux:"See https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli",win32:"See https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli"},upgradeUrl:"https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli"},codex:{minVersion:"0.100.0",install:{darwin:"npm install -g @openai/codex",linux:"npm install -g @openai/codex",win32:"npm install -g @openai/codex"},upgradeUrl:"https://github.com/openai/codex"},gemini:{minVersion:"0.38.0",install:{darwin:"npm install -g @google/gemini-cli",linux:"npm install -g @google/gemini-cli",win32:"npm install -g @google/gemini-cli"},upgradeUrl:"https://github.com/google-gemini/gemini-cli"},opencode:{minVersion:"0.1.0",install:{darwin:"curl -fsSL https://opencode.ai/install | bash",linux:"curl -fsSL https://opencode.ai/install | bash",win32:"npm install -g opencode-ai"},upgradeUrl:"https://opencode.ai"},hermes:{minVersion:"0.10.0",install:{darwin:"curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash",linux:"curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash",win32:"Install WSL2, then inside WSL: curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash"},upgradeUrl:"https://github.com/NousResearch/hermes-agent"},openclaw:{minVersion:"2026.4.0",install:{darwin:"npm install -g openclaw",linux:"npm install -g openclaw",win32:"Install WSL2, then inside WSL: npm install -g openclaw"},upgradeUrl:"https://docs.openclaw.ai"},custom:{minVersion:"0.0.0",install:{darwin:"Install the custom agent CLI per its documentation",linux:"Install the custom agent CLI per its documentation",win32:"Install the custom agent CLI per its documentation"},upgradeUrl:""}};
|
package/dist/bgTask.js
CHANGED
|
@@ -1,128 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// service-envelope micro-protocol carried in SessionServiceEvent.text.
|
|
3
|
-
//
|
|
4
|
-
// Wire format (colon-separated, taskId URI-encoded so its own colons never split):
|
|
5
|
-
// bg-task:started:<encodedTaskId>:<desc>
|
|
6
|
-
// bg-task:progress:<encodedTaskId>:<summary>
|
|
7
|
-
// bg-task:completed:<encodedTaskId>:<usage>[:<summary>]
|
|
8
|
-
// bg-task:failed:<encodedTaskId>:<usage>[:<summary>]
|
|
9
|
-
// bg-task:stopped:<encodedTaskId>:<usage>[:<summary>]
|
|
10
|
-
//
|
|
11
|
-
// started/progress have NO usage segment; completed/failed/stopped carry a
|
|
12
|
-
// <usage> segment then an optional <summary>.
|
|
13
|
-
//
|
|
14
|
-
// <usage> is a comma-compact triple `<totalTokens>[,<durationMs>,<toolUses>]`:
|
|
15
|
-
// - "1234" → totalTokens=1234, durationMs=0, toolUses=0
|
|
16
|
-
// - "1234,58000,12" → totalTokens=1234, durationMs=58000, toolUses=12
|
|
17
|
-
// Emitting the bare token count when duration/tools are absent keeps the wire
|
|
18
|
-
// form byte-identical to the pre-extension format (backward compatible: old
|
|
19
|
-
// single-number lines parse with duration/tools = 0). durationMs and toolUses
|
|
20
|
-
// come from the ACP task usage (see daemon acpTypes.ts) and let the web show
|
|
21
|
-
// wall-clock time and tool-call count without any extra DB/encryption cost —
|
|
22
|
-
// the terminal event is emitted once regardless. Keeping this shape in one
|
|
23
|
-
// encode/parse pair prevents the daemon emitter and the two web parsers from
|
|
24
|
-
// drifting apart.
|
|
25
|
-
/** Common prefix for every bg-task service envelope. */
|
|
26
|
-
export const BG_TASK_PREFIX = 'bg-task:';
|
|
27
|
-
const BG_TASK_ACTIONS = new Set(['started', 'progress', 'completed', 'failed', 'stopped']);
|
|
28
|
-
function isBgTaskAction(s) {
|
|
29
|
-
return BG_TASK_ACTIONS.has(s);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Encode a bg-task lifecycle event into its service-envelope text form.
|
|
33
|
-
* taskId is URI-encoded so its (rare) colons never break the fixed-segment parser.
|
|
34
|
-
*/
|
|
35
|
-
export function encodeBgTask(input) {
|
|
36
|
-
const encodedTaskId = encodeURIComponent(input.taskId);
|
|
37
|
-
if (input.action === 'started') {
|
|
38
|
-
return `${BG_TASK_PREFIX}started:${encodedTaskId}:${input.desc ?? ''}`;
|
|
39
|
-
}
|
|
40
|
-
if (input.action === 'progress') {
|
|
41
|
-
return `${BG_TASK_PREFIX}progress:${encodedTaskId}:${input.summary ?? ''}`;
|
|
42
|
-
}
|
|
43
|
-
// completed / failed / stopped: <usage>[:<summary>]
|
|
44
|
-
const usage = encodeUsage(input.totalTokens ?? 0, input.durationMs ?? 0, input.toolUses ?? 0);
|
|
45
|
-
const summaryPart = input.summary ? `:${input.summary}` : '';
|
|
46
|
-
return `${BG_TASK_PREFIX}${input.action}:${encodedTaskId}:${usage}${summaryPart}`;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Encode the comma-compact usage triple. Emits the bare token count when
|
|
50
|
-
* duration and tools are both 0 so the wire form stays byte-identical to the
|
|
51
|
-
* pre-extension single-number format.
|
|
52
|
-
*/
|
|
53
|
-
function encodeUsage(totalTokens, durationMs, toolUses) {
|
|
54
|
-
if (durationMs === 0 && toolUses === 0)
|
|
55
|
-
return String(totalTokens);
|
|
56
|
-
return `${totalTokens},${durationMs},${toolUses}`;
|
|
57
|
-
}
|
|
58
|
-
/** Parse the comma-compact usage segment. Missing parts default to 0. */
|
|
59
|
-
function parseUsage(segment) {
|
|
60
|
-
const parts = segment.split(',');
|
|
61
|
-
const num = (s) => {
|
|
62
|
-
const n = Number(s);
|
|
63
|
-
return Number.isFinite(n) && n > 0 ? n : 0;
|
|
64
|
-
};
|
|
65
|
-
return {
|
|
66
|
-
totalTokens: num(parts[0]),
|
|
67
|
-
durationMs: num(parts[1]),
|
|
68
|
-
toolUses: num(parts[2]),
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
function decodeTaskId(encoded) {
|
|
72
|
-
try {
|
|
73
|
-
return decodeURIComponent(encoded);
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
// SILENT-CATCH-OK: Malformed percent-encoding — fall back to the raw value.
|
|
77
|
-
return encoded;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Parse a bg-task service-envelope text back into structured fields.
|
|
82
|
-
* Returns null when `text` is not a recognized bg-task line.
|
|
83
|
-
*
|
|
84
|
-
* Pure decoding only — business rules (e.g. "empty progress summary must not
|
|
85
|
-
* overwrite the started desc") stay in the caller.
|
|
86
|
-
*/
|
|
87
|
-
export function parseBgTask(text) {
|
|
88
|
-
if (!text.startsWith(BG_TASK_PREFIX))
|
|
89
|
-
return null;
|
|
90
|
-
const body = text.slice(BG_TASK_PREFIX.length);
|
|
91
|
-
const a1 = body.indexOf(':');
|
|
92
|
-
if (a1 < 0)
|
|
93
|
-
return null;
|
|
94
|
-
const raw = body.slice(0, a1);
|
|
95
|
-
if (!isBgTaskAction(raw))
|
|
96
|
-
return null;
|
|
97
|
-
const action = raw;
|
|
98
|
-
const after = body.slice(a1 + 1);
|
|
99
|
-
const a2 = after.indexOf(':');
|
|
100
|
-
const encodedTaskId = a2 < 0 ? after : after.slice(0, a2);
|
|
101
|
-
if (!encodedTaskId)
|
|
102
|
-
return null;
|
|
103
|
-
const taskId = decodeTaskId(encodedTaskId);
|
|
104
|
-
const rest = a2 < 0 ? '' : after.slice(a2 + 1);
|
|
105
|
-
switch (action) {
|
|
106
|
-
case 'started':
|
|
107
|
-
return { action, taskId, desc: rest };
|
|
108
|
-
case 'progress':
|
|
109
|
-
return { action, taskId, summary: rest };
|
|
110
|
-
case 'completed':
|
|
111
|
-
case 'failed':
|
|
112
|
-
case 'stopped': {
|
|
113
|
-
// rest = <usage>[:<summary>] where <usage> = <tokens>[,<durationMs>,<toolUses>]
|
|
114
|
-
const a3 = rest.indexOf(':');
|
|
115
|
-
const usageStr = a3 < 0 ? rest : rest.slice(0, a3);
|
|
116
|
-
const summary = a3 < 0 ? '' : rest.slice(a3 + 1);
|
|
117
|
-
const { totalTokens, durationMs, toolUses } = parseUsage(usageStr);
|
|
118
|
-
return { action, taskId, totalTokens, durationMs, toolUses, summary };
|
|
119
|
-
}
|
|
120
|
-
default:
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/** True when `text` is a started or progress line (internal lifecycle, hidden from the flow). */
|
|
125
|
-
export function isBgTaskLifecycleLine(text) {
|
|
126
|
-
return (text.startsWith(`${BG_TASK_PREFIX}started:`) || text.startsWith(`${BG_TASK_PREFIX}progress:`));
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=bgTask.js.map
|
|
1
|
+
"use strict";export const BG_TASK_PREFIX="bg-task:";const k=new Set(["started","progress","completed","failed","stopped"]);function T(s){return k.has(s)}export function encodeBgTask(s){const e=encodeURIComponent(s.taskId);if(s.action==="started")return`${BG_TASK_PREFIX}started:${e}:${s.desc??""}`;if(s.action==="progress")return`${BG_TASK_PREFIX}progress:${e}:${s.summary??""}`;const t=p(s.totalTokens??0,s.durationMs??0,s.toolUses??0),n=s.summary?`:${s.summary}`:"";return`${BG_TASK_PREFIX}${s.action}:${e}:${t}${n}`}function p(s,e,t){return e===0&&t===0?String(s):`${s},${e},${t}`}function y(s){const e=s.split(","),t=n=>{const r=Number(n);return Number.isFinite(r)&&r>0?r:0};return{totalTokens:t(e[0]),durationMs:t(e[1]),toolUses:t(e[2])}}function I(s){try{return decodeURIComponent(s)}catch{return s}}export function parseBgTask(s){if(!s.startsWith(BG_TASK_PREFIX))return null;const e=s.slice(BG_TASK_PREFIX.length),t=e.indexOf(":");if(t<0)return null;const n=e.slice(0,t);if(!T(n))return null;const r=n,c=e.slice(t+1),a=c.indexOf(":"),d=a<0?c:c.slice(0,a);if(!d)return null;const u=I(d),o=a<0?"":c.slice(a+1);switch(r){case"started":return{action:r,taskId:u,desc:o};case"progress":return{action:r,taskId:u,summary:o};case"completed":case"failed":case"stopped":{const i=o.indexOf(":"),l=i<0?o:o.slice(0,i),f=i<0?"":o.slice(i+1),{totalTokens:m,durationMs:$,toolUses:g}=y(l);return{action:r,taskId:u,totalTokens:m,durationMs:$,toolUses:g,summary:f}}default:return null}}export function isBgTaskLifecycleLine(s){return s.startsWith(`${BG_TASK_PREFIX}started:`)||s.startsWith(`${BG_TASK_PREFIX}progress:`)}
|