@agentdock/wire 0.0.37 → 0.0.39
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/agentCapabilities.js +1 -195
- package/dist/agentCommonEnv.js +1 -20
- package/dist/agentInstallGuide.js +1 -81
- package/dist/checkpointSchemas.js +1 -46
- package/dist/controlLevel.js +1 -11
- package/dist/edition.d.ts +5 -0
- package/dist/edition.js +1 -0
- package/dist/envelope.js +1 -78
- package/dist/errorMessage.js +1 -6
- package/dist/events.js +1 -97
- package/dist/features.d.ts +2 -0
- package/dist/features.js +1 -112
- package/dist/feedback.js +1 -26
- package/dist/index.d.ts +13 -4
- package/dist/index.js +1 -60
- package/dist/interactionEvents.js +1 -108
- package/dist/legacyProtocol.js +1 -30
- package/dist/license.d.ts +52 -0
- package/dist/license.js +1 -0
- package/dist/machine.d.ts +34 -0
- package/dist/machine.js +1 -56
- package/dist/messageMeta.js +1 -60
- package/dist/messages.d.ts +8 -8
- package/dist/messages.js +1 -35
- package/dist/ops.js +1 -74
- package/dist/pairing.js +1 -115
- package/dist/protocol.js +1 -7
- package/dist/rpc.d.ts +7 -7
- package/dist/rpc.js +1 -230
- package/dist/scheduledTasks.js +1 -81
- package/dist/semver.js +1 -60
- package/dist/sessionResult.js +1 -23
- package/dist/socketEvents.d.ts +1 -0
- package/dist/socketEvents.js +1 -43
- package/dist/spawnError.js +1 -31
- package/dist/stats.d.ts +28 -0
- package/dist/stats.js +1 -115
- package/dist/sync.d.ts +23 -23
- package/dist/sync.js +1 -78
- package/dist/telemetry.js +1 -80
- package/dist/utils.js +1 -2
- package/package.json +1 -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/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/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/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/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/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/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,195 +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: false,
|
|
49
|
-
supportsMaxTurns: false,
|
|
50
|
-
supportsSlashClear: true,
|
|
51
|
-
supportsSlashCompact: false,
|
|
52
|
-
supportsInSessionModelSwitch: true,
|
|
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: false,
|
|
67
|
-
supportsMaxTurns: false,
|
|
68
|
-
supportsSlashClear: true,
|
|
69
|
-
supportsSlashCompact: false,
|
|
70
|
-
supportsInSessionModelSwitch: true,
|
|
71
|
-
supportsInSessionModeSwitch: false,
|
|
72
|
-
usesAcpConfig: true,
|
|
73
|
-
staticModels: [],
|
|
74
|
-
permissionModes: [],
|
|
75
|
-
defaultPermissionMode: '',
|
|
76
|
-
},
|
|
77
|
-
codex: {
|
|
78
|
-
controlLevel: 2,
|
|
79
|
-
supportsModel: true,
|
|
80
|
-
supportsSystemPrompt: false,
|
|
81
|
-
supportsToolConfig: false,
|
|
82
|
-
supportsMcpConfig: false,
|
|
83
|
-
supportsPermissionMode: true,
|
|
84
|
-
supportsResume: true,
|
|
85
|
-
supportsMaxTurns: false,
|
|
86
|
-
supportsSlashClear: true,
|
|
87
|
-
supportsSlashCompact: false,
|
|
88
|
-
supportsInSessionModelSwitch: true,
|
|
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: false,
|
|
119
|
-
supportsPermissionMode: false,
|
|
120
|
-
supportsResume: false,
|
|
121
|
-
supportsMaxTurns: false,
|
|
122
|
-
supportsSlashClear: true,
|
|
123
|
-
supportsSlashCompact: false,
|
|
124
|
-
supportsInSessionModelSwitch: false,
|
|
125
|
-
supportsInSessionModeSwitch: false,
|
|
126
|
-
usesAcpConfig: true,
|
|
127
|
-
staticModels: [],
|
|
128
|
-
permissionModes: [],
|
|
129
|
-
defaultPermissionMode: '',
|
|
130
|
-
},
|
|
131
|
-
openclaw: {
|
|
132
|
-
controlLevel: 3,
|
|
133
|
-
supportsModel: true,
|
|
134
|
-
supportsSystemPrompt: false,
|
|
135
|
-
supportsToolConfig: false,
|
|
136
|
-
supportsMcpConfig: false,
|
|
137
|
-
supportsPermissionMode: false,
|
|
138
|
-
supportsResume: false,
|
|
139
|
-
supportsMaxTurns: false,
|
|
140
|
-
supportsSlashClear: true,
|
|
141
|
-
supportsSlashCompact: false,
|
|
142
|
-
supportsInSessionModelSwitch: false,
|
|
143
|
-
supportsInSessionModeSwitch: false,
|
|
144
|
-
usesAcpConfig: true,
|
|
145
|
-
staticModels: [],
|
|
146
|
-
permissionModes: [],
|
|
147
|
-
defaultPermissionMode: '',
|
|
148
|
-
},
|
|
149
|
-
};
|
|
150
|
-
// ── Dynamic mode overrides (from ACP configOptions at runtime) ─────
|
|
151
|
-
let dynamicModes = {};
|
|
152
|
-
/** Update dynamic modes for an ACP agent (called by daemon when session reports modes). */
|
|
153
|
-
export function updateDynamicModes(agentType, modes) {
|
|
154
|
-
if (modes.length === 0)
|
|
155
|
-
return;
|
|
156
|
-
dynamicModes = {
|
|
157
|
-
...dynamicModes,
|
|
158
|
-
[agentType]: modes.map((m) => ({ value: m.id, labelKey: m.label })),
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
/** Get dynamic modes for an agent, or null if none reported. */
|
|
162
|
-
export function getDynamicModes(agentType) {
|
|
163
|
-
return dynamicModes[agentType] ?? null;
|
|
164
|
-
}
|
|
165
|
-
/** Get capability for an agent, falling back to minimal (Level 0) for unknown agents. */
|
|
166
|
-
export function getAgentCapability(agentType) {
|
|
167
|
-
return (AGENT_CAPABILITIES[agentType] ?? {
|
|
168
|
-
controlLevel: 0,
|
|
169
|
-
supportsModel: false,
|
|
170
|
-
supportsSystemPrompt: false,
|
|
171
|
-
supportsToolConfig: false,
|
|
172
|
-
supportsMcpConfig: false,
|
|
173
|
-
supportsPermissionMode: false,
|
|
174
|
-
supportsResume: false,
|
|
175
|
-
supportsMaxTurns: false,
|
|
176
|
-
supportsSlashClear: false,
|
|
177
|
-
supportsSlashCompact: false,
|
|
178
|
-
supportsInSessionModelSwitch: false,
|
|
179
|
-
supportsInSessionModeSwitch: false,
|
|
180
|
-
usesAcpConfig: false,
|
|
181
|
-
staticModels: [],
|
|
182
|
-
permissionModes: [],
|
|
183
|
-
defaultPermissionMode: 'default',
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Normalize a Claude model ID so that dot-separated versions (e.g. `claude-opus-4.6`)
|
|
188
|
-
* match the hyphen-separated form returned by the API (e.g. `claude-opus-4-6`).
|
|
189
|
-
*
|
|
190
|
-
* Safe to call on any string — non-Claude IDs pass through unchanged.
|
|
191
|
-
*/
|
|
192
|
-
export function normalizeModelId(id) {
|
|
193
|
-
return id.replace(/(\d+)\.(\d+)/g, '$1-$2');
|
|
194
|
-
}
|
|
195
|
-
//# 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,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:!0,supportsInSessionModeSwitch:!0,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,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:""},codex:{controlLevel:2,supportsModel:!0,supportsSystemPrompt:!1,supportsToolConfig:!1,supportsMcpConfig:!1,supportsPermissionMode:!0,supportsResume:!0,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!1,supportsInSessionModelSwitch:!0,supportsInSessionModeSwitch:!0,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,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:"bypassPermissions"},hermes:{controlLevel:3,supportsModel:!0,supportsSystemPrompt:!1,supportsToolConfig:!1,supportsMcpConfig:!1,supportsPermissionMode:!1,supportsResume:!0,supportsMaxTurns:!1,supportsSlashClear:!0,supportsSlashCompact:!1,supportsInSessionModelSwitch:!1,supportsInSessionModeSwitch:!1,usesAcpConfig:!0,staticModels:[],permissionModes:[],defaultPermissionMode:""},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,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,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: '1.0.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: '0.1.0',
|
|
19
|
-
install: {
|
|
20
|
-
darwin: 'curl -fsSL https://claude.ai/install.sh | bash # then: see https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli',
|
|
21
|
-
linux: 'curl -fsSL https://claude.ai/install.sh | bash # then: see https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli',
|
|
22
|
-
win32: 'irm https://claude.ai/install.ps1 | iex # then: 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.43.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.1.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.1.0',
|
|
55
|
-
install: {
|
|
56
|
-
darwin: 'npm install -g hermes-agent',
|
|
57
|
-
linux: 'npm install -g hermes-agent',
|
|
58
|
-
win32: 'npm install -g hermes-agent',
|
|
59
|
-
},
|
|
60
|
-
upgradeUrl: '',
|
|
61
|
-
},
|
|
62
|
-
openclaw: {
|
|
63
|
-
minVersion: '2026.4.0',
|
|
64
|
-
install: {
|
|
65
|
-
darwin: 'npm install -g openclaw',
|
|
66
|
-
linux: 'npm install -g openclaw',
|
|
67
|
-
win32: '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:"1.0.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:"0.1.0",install:{darwin:"curl -fsSL https://claude.ai/install.sh | bash # then: see https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli",linux:"curl -fsSL https://claude.ai/install.sh | bash # then: see https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli",win32:"irm https://claude.ai/install.ps1 | iex # then: 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.43.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.1.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.1.0",install:{darwin:"npm install -g hermes-agent",linux:"npm install -g hermes-agent",win32:"npm install -g hermes-agent"},upgradeUrl:""},openclaw:{minVersion:"2026.4.0",install:{darwin:"npm install -g openclaw",linux:"npm install -g openclaw",win32:"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:""}};
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export const ROLLBACK_MODES = ['code', 'conversation', 'both'];
|
|
3
|
-
export const CheckpointListParamsSchema = z.object({
|
|
4
|
-
claudeSessionId: z.string().min(1),
|
|
5
|
-
});
|
|
6
|
-
export const CheckpointEntrySchema = z.object({
|
|
7
|
-
messageId: z.string(),
|
|
8
|
-
timestamp: z.string(),
|
|
9
|
-
trackedFileCount: z.number().int().nonnegative(),
|
|
10
|
-
sequence: z.number().int().nonnegative(),
|
|
11
|
-
});
|
|
12
|
-
export const CheckpointListResultSchema = z.object({
|
|
13
|
-
checkpoints: z.array(CheckpointEntrySchema),
|
|
14
|
-
});
|
|
15
|
-
export const CheckpointDiffParamsSchema = z.object({
|
|
16
|
-
claudeSessionId: z.string().min(1),
|
|
17
|
-
messageId: z.string().min(1),
|
|
18
|
-
});
|
|
19
|
-
export const FileDiffEntrySchema = z.object({
|
|
20
|
-
filePath: z.string(),
|
|
21
|
-
status: z.enum(['modified', 'deleted', 'created']),
|
|
22
|
-
currentSize: z.number().int().nonnegative(),
|
|
23
|
-
snapshotSize: z.number().int().nonnegative(),
|
|
24
|
-
});
|
|
25
|
-
export const CheckpointDiffResultSchema = z.object({
|
|
26
|
-
files: z.array(FileDiffEntrySchema),
|
|
27
|
-
hasExternalChanges: z.boolean(),
|
|
28
|
-
externallyModifiedFiles: z.array(z.string()),
|
|
29
|
-
});
|
|
30
|
-
export const CheckpointRollbackParamsSchema = z.object({
|
|
31
|
-
claudeSessionId: z.string().min(1),
|
|
32
|
-
messageId: z.string().min(1).optional(),
|
|
33
|
-
timestamp: z.string().optional(),
|
|
34
|
-
mode: z.enum(ROLLBACK_MODES).optional().default('code'),
|
|
35
|
-
force: z.boolean().optional().default(false),
|
|
36
|
-
});
|
|
37
|
-
export const CheckpointRollbackResultSchema = z.object({
|
|
38
|
-
restoredCount: z.number().int().nonnegative(),
|
|
39
|
-
deletedCount: z.number().int().nonnegative(),
|
|
40
|
-
skippedFiles: z.array(z.string()),
|
|
41
|
-
truncatedMessageCount: z.number().int().nonnegative().optional(),
|
|
42
|
-
pivotTimestamp: z.string().optional(),
|
|
43
|
-
pivotMessageUuid: z.string().optional(),
|
|
44
|
-
mode: z.enum(ROLLBACK_MODES).optional(),
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=checkpointSchemas.js.map
|
|
1
|
+
"use strict";import{z as e}from"zod";export const ROLLBACK_MODES=["code","conversation","both"],CheckpointListParamsSchema=e.object({claudeSessionId:e.string().min(1)}),CheckpointEntrySchema=e.object({messageId:e.string(),timestamp:e.string(),trackedFileCount:e.number().int().nonnegative(),sequence:e.number().int().nonnegative()}),CheckpointListResultSchema=e.object({checkpoints:e.array(CheckpointEntrySchema)}),CheckpointDiffParamsSchema=e.object({claudeSessionId:e.string().min(1),messageId:e.string().min(1)}),FileDiffEntrySchema=e.object({filePath:e.string(),status:e.enum(["modified","deleted","created"]),currentSize:e.number().int().nonnegative(),snapshotSize:e.number().int().nonnegative()}),CheckpointDiffResultSchema=e.object({files:e.array(FileDiffEntrySchema),hasExternalChanges:e.boolean(),externallyModifiedFiles:e.array(e.string())}),CheckpointRollbackParamsSchema=e.object({claudeSessionId:e.string().min(1),messageId:e.string().min(1).optional(),timestamp:e.string().optional(),mode:e.enum(ROLLBACK_MODES).optional().default("code"),force:e.boolean().optional().default(!1)}),CheckpointRollbackResultSchema=e.object({restoredCount:e.number().int().nonnegative(),deletedCount:e.number().int().nonnegative(),skippedFiles:e.array(e.string()),truncatedMessageCount:e.number().int().nonnegative().optional(),pivotTimestamp:e.string().optional(),pivotMessageUuid:e.string().optional(),mode:e.enum(ROLLBACK_MODES).optional()});
|
package/dist/controlLevel.js
CHANGED
|
@@ -1,11 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
/**
|
|
3
|
-
* Control depth level for CLI tools.
|
|
4
|
-
*
|
|
5
|
-
* Level 3: Full control — bidirectional ACP, per-tool permissions, resume (Claude Code, OpenCode)
|
|
6
|
-
* Level 2: High control — JSONL + resume + pre-configured permissions (Codex CLI)
|
|
7
|
-
* Level 1: Read-only monitoring — JSONL + no resume + binary permissions (Gemini, Qwen)
|
|
8
|
-
* Level 0: Minimal — plain text + no multi-turn (Aider, not recommended)
|
|
9
|
-
*/
|
|
10
|
-
export const ControlLevel = z.union([z.literal(3), z.literal(2), z.literal(1), z.literal(0)]);
|
|
11
|
-
//# sourceMappingURL=controlLevel.js.map
|
|
1
|
+
"use strict";import{z as l}from"zod";export const ControlLevel=l.union([l.literal(3),l.literal(2),l.literal(1),l.literal(0)]);
|
package/dist/edition.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";export const EDITIONS=["personal","enterprise"];export function getEdition(){const n=process.env.EDITION||"personal",e=EDITIONS.find(r=>r===n);if(!e)throw new Error(`Invalid EDITION="${n}". Must be one of: ${EDITIONS.join(", ")}`);return e}export function isEnterprise(){return getEdition()==="enterprise"}
|
package/dist/envelope.js
CHANGED
|
@@ -1,78 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Session envelope schema — aligned with Happy sessionProtocol.
|
|
3
|
-
*
|
|
4
|
-
* Wraps a SessionEvent with metadata (id, time, role, turn, subagent).
|
|
5
|
-
*/
|
|
6
|
-
import { z } from 'zod';
|
|
7
|
-
import { isCuid } from '@paralleldrive/cuid2';
|
|
8
|
-
import { createId } from './utils.js';
|
|
9
|
-
import { SessionEventSchema } from './events.js';
|
|
10
|
-
export const SessionRoleSchema = z.enum(['user', 'agent']);
|
|
11
|
-
export const SessionEnvelopeSchema = z
|
|
12
|
-
.object({
|
|
13
|
-
id: z.string(),
|
|
14
|
-
time: z.number(),
|
|
15
|
-
role: SessionRoleSchema,
|
|
16
|
-
turn: z.string().optional(),
|
|
17
|
-
subagent: z
|
|
18
|
-
.string()
|
|
19
|
-
.refine((value) => isCuid(value), { message: 'subagent must be a cuid2 value' })
|
|
20
|
-
.optional(),
|
|
21
|
-
/** Claude CLI message UUID — used for precise conversation rollback. */
|
|
22
|
-
messageUuid: z.string().optional(),
|
|
23
|
-
ev: SessionEventSchema,
|
|
24
|
-
})
|
|
25
|
-
.superRefine((envelope, ctx) => {
|
|
26
|
-
if (envelope.ev.t === 'service' && envelope.role !== 'agent') {
|
|
27
|
-
ctx.addIssue({
|
|
28
|
-
code: z.ZodIssueCode.custom,
|
|
29
|
-
message: 'service events must use role "agent"',
|
|
30
|
-
path: ['role'],
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
if ((envelope.ev.t === 'start' || envelope.ev.t === 'stop') && envelope.role !== 'agent') {
|
|
34
|
-
ctx.addIssue({
|
|
35
|
-
code: z.ZodIssueCode.custom,
|
|
36
|
-
message: `${envelope.ev.t} events must use role "agent"`,
|
|
37
|
-
path: ['role'],
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
if ((envelope.ev.t === 'question' || envelope.ev.t === 'permission-request') &&
|
|
41
|
-
envelope.role !== 'agent') {
|
|
42
|
-
ctx.addIssue({
|
|
43
|
-
code: z.ZodIssueCode.custom,
|
|
44
|
-
message: `${envelope.ev.t} events must use role "agent"`,
|
|
45
|
-
path: ['role'],
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
if (envelope.ev.t === 'answer' && envelope.role !== 'user') {
|
|
49
|
-
ctx.addIssue({
|
|
50
|
-
code: z.ZodIssueCode.custom,
|
|
51
|
-
message: 'answer events must use role "user"',
|
|
52
|
-
path: ['role'],
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
/**
|
|
57
|
-
* Create a SessionEnvelope by direct construction (hot path).
|
|
58
|
-
*
|
|
59
|
-
* Skips Zod `.parse()` for performance — the discriminated union with
|
|
60
|
-
* 14 variants + 4 superRefine checks is expensive on every streaming token.
|
|
61
|
-
* Validation still happens at ingress boundaries (server API handlers).
|
|
62
|
-
*/
|
|
63
|
-
export function createEnvelope(role, ev, opts = {}) {
|
|
64
|
-
const envelope = {
|
|
65
|
-
id: opts.id ?? createId(),
|
|
66
|
-
time: opts.time ?? Date.now(),
|
|
67
|
-
role,
|
|
68
|
-
ev,
|
|
69
|
-
};
|
|
70
|
-
if (opts.turn)
|
|
71
|
-
envelope.turn = opts.turn;
|
|
72
|
-
if (opts.subagent)
|
|
73
|
-
envelope.subagent = opts.subagent;
|
|
74
|
-
if (opts.messageUuid)
|
|
75
|
-
envelope.messageUuid = opts.messageUuid;
|
|
76
|
-
return envelope;
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=envelope.js.map
|
|
1
|
+
"use strict";import{z as s}from"zod";import{isCuid as o}from"@paralleldrive/cuid2";import{createId as a}from"./utils.js";import{SessionEventSchema as i}from"./events.js";export const SessionRoleSchema=s.enum(["user","agent"]),SessionEnvelopeSchema=s.object({id:s.string(),time:s.number(),role:SessionRoleSchema,turn:s.string().optional(),subagent:s.string().refine(e=>o(e),{message:"subagent must be a cuid2 value"}).optional(),messageUuid:s.string().optional(),ev:i}).superRefine((e,r)=>{e.ev.t==="service"&&e.role!=="agent"&&r.addIssue({code:s.ZodIssueCode.custom,message:'service events must use role "agent"',path:["role"]}),(e.ev.t==="start"||e.ev.t==="stop")&&e.role!=="agent"&&r.addIssue({code:s.ZodIssueCode.custom,message:`${e.ev.t} events must use role "agent"`,path:["role"]}),(e.ev.t==="question"||e.ev.t==="permission-request")&&e.role!=="agent"&&r.addIssue({code:s.ZodIssueCode.custom,message:`${e.ev.t} events must use role "agent"`,path:["role"]}),e.ev.t==="answer"&&e.role!=="user"&&r.addIssue({code:s.ZodIssueCode.custom,message:'answer events must use role "user"',path:["role"]})});export function createEnvelope(e,r,t={}){const u={id:t.id??a(),time:t.time??Date.now(),role:e,ev:r};return t.turn&&(u.turn=t.turn),t.subagent&&(u.subagent=t.subagent),t.messageUuid&&(u.messageUuid=t.messageUuid),u}
|
package/dist/errorMessage.js
CHANGED
package/dist/events.js
CHANGED
|
@@ -1,97 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Session event schemas — aligned with Happy sessionProtocol.
|
|
3
|
-
*
|
|
4
|
-
* Event types: text, service, tool-call-start, tool-call-end,
|
|
5
|
-
* file, turn-start, turn-end, start, stop.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { SessionQuestionEventSchema, SessionPermissionRequestEventSchema, SessionAnswerEventSchema, SessionPermissionResolvedEventSchema, } from './interactionEvents.js';
|
|
9
|
-
export const SessionTextEventSchema = z.object({
|
|
10
|
-
t: z.literal('text'),
|
|
11
|
-
text: z.string(),
|
|
12
|
-
thinking: z.boolean().optional(),
|
|
13
|
-
});
|
|
14
|
-
export const SessionServiceEventSchema = z.object({
|
|
15
|
-
t: z.literal('service'),
|
|
16
|
-
text: z.string(),
|
|
17
|
-
});
|
|
18
|
-
export const SessionToolCallStartEventSchema = z.object({
|
|
19
|
-
t: z.literal('tool-call-start'),
|
|
20
|
-
call: z.string(),
|
|
21
|
-
name: z.string(),
|
|
22
|
-
title: z.string(),
|
|
23
|
-
description: z.string(),
|
|
24
|
-
args: z.record(z.string(), z.unknown()),
|
|
25
|
-
});
|
|
26
|
-
export const SessionToolCallEndEventSchema = z.object({
|
|
27
|
-
t: z.literal('tool-call-end'),
|
|
28
|
-
call: z.string(),
|
|
29
|
-
/** Tool output text (may be truncated at source). */
|
|
30
|
-
result: z.string().optional(),
|
|
31
|
-
/** True when the tool returned an error result. */
|
|
32
|
-
error: z.boolean().optional(),
|
|
33
|
-
});
|
|
34
|
-
export const SessionFileEventSchema = z.object({
|
|
35
|
-
t: z.literal('file'),
|
|
36
|
-
ref: z.string(),
|
|
37
|
-
name: z.string(),
|
|
38
|
-
size: z.number(),
|
|
39
|
-
image: z
|
|
40
|
-
.object({
|
|
41
|
-
width: z.number(),
|
|
42
|
-
height: z.number(),
|
|
43
|
-
thumbhash: z.string(),
|
|
44
|
-
})
|
|
45
|
-
.optional(),
|
|
46
|
-
});
|
|
47
|
-
export const SessionTurnStartEventSchema = z.object({
|
|
48
|
-
t: z.literal('turn-start'),
|
|
49
|
-
});
|
|
50
|
-
export const SessionTurnEndStatusSchema = z.enum(['completed', 'failed', 'cancelled']);
|
|
51
|
-
/** Token usage stats reported at turn end. */
|
|
52
|
-
export const TurnUsageSchema = z.object({
|
|
53
|
-
inputTokens: z.number().int().nonnegative(),
|
|
54
|
-
outputTokens: z.number().int().nonnegative(),
|
|
55
|
-
cacheReadTokens: z.number().int().nonnegative().optional(),
|
|
56
|
-
cacheWriteTokens: z.number().int().nonnegative().optional(),
|
|
57
|
-
});
|
|
58
|
-
export const SessionTurnEndEventSchema = z.object({
|
|
59
|
-
t: z.literal('turn-end'),
|
|
60
|
-
status: SessionTurnEndStatusSchema,
|
|
61
|
-
usage: TurnUsageSchema.optional(),
|
|
62
|
-
model: z.string().optional(),
|
|
63
|
-
});
|
|
64
|
-
export const SessionStartEventSchema = z.object({
|
|
65
|
-
t: z.literal('start'),
|
|
66
|
-
title: z.string().optional(),
|
|
67
|
-
});
|
|
68
|
-
export const SessionStopEventSchema = z.object({
|
|
69
|
-
t: z.literal('stop'),
|
|
70
|
-
});
|
|
71
|
-
/** User-sent image stored inline in envelope (base64). */
|
|
72
|
-
export const SessionImageEventSchema = z.object({
|
|
73
|
-
t: z.literal('image'),
|
|
74
|
-
/** Base64-encoded image data. */
|
|
75
|
-
data: z.string(),
|
|
76
|
-
/** MIME type: image/jpeg, image/png, image/gif, image/webp. */
|
|
77
|
-
mediaType: z.string(),
|
|
78
|
-
});
|
|
79
|
-
export const SessionEventSchema = z.discriminatedUnion('t', [
|
|
80
|
-
SessionTextEventSchema,
|
|
81
|
-
SessionServiceEventSchema,
|
|
82
|
-
SessionToolCallStartEventSchema,
|
|
83
|
-
SessionToolCallEndEventSchema,
|
|
84
|
-
SessionFileEventSchema,
|
|
85
|
-
SessionTurnStartEventSchema,
|
|
86
|
-
SessionTurnEndEventSchema,
|
|
87
|
-
SessionStartEventSchema,
|
|
88
|
-
SessionStopEventSchema,
|
|
89
|
-
SessionQuestionEventSchema,
|
|
90
|
-
SessionPermissionRequestEventSchema,
|
|
91
|
-
SessionAnswerEventSchema,
|
|
92
|
-
SessionPermissionResolvedEventSchema,
|
|
93
|
-
SessionImageEventSchema,
|
|
94
|
-
]);
|
|
95
|
-
// Re-export interaction event schemas for convenience
|
|
96
|
-
export { SessionQuestionEventSchema, SessionPermissionRequestEventSchema, SessionAnswerEventSchema, SessionPermissionResolvedEventSchema, PermissionActionSchema, ImageAttachmentSchema, } from './interactionEvents.js';
|
|
97
|
-
//# sourceMappingURL=events.js.map
|
|
1
|
+
"use strict";import{z as e}from"zod";import{SessionQuestionEventSchema as t,SessionPermissionRequestEventSchema as n,SessionAnswerEventSchema as o,SessionPermissionResolvedEventSchema as s}from"./interactionEvents.js";export const SessionTextEventSchema=e.object({t:e.literal("text"),text:e.string(),thinking:e.boolean().optional()}),SessionServiceEventSchema=e.object({t:e.literal("service"),text:e.string()}),SessionToolCallStartEventSchema=e.object({t:e.literal("tool-call-start"),call:e.string(),name:e.string(),title:e.string(),description:e.string(),args:e.record(e.string(),e.unknown())}),SessionToolCallEndEventSchema=e.object({t:e.literal("tool-call-end"),call:e.string(),result:e.string().optional(),error:e.boolean().optional()}),SessionFileEventSchema=e.object({t:e.literal("file"),ref:e.string(),name:e.string(),size:e.number(),image:e.object({width:e.number(),height:e.number(),thumbhash:e.string()}).optional()}),SessionTurnStartEventSchema=e.object({t:e.literal("turn-start")}),SessionTurnEndStatusSchema=e.enum(["completed","failed","cancelled"]),TurnUsageSchema=e.object({inputTokens:e.number().int().nonnegative(),outputTokens:e.number().int().nonnegative(),cacheReadTokens:e.number().int().nonnegative().optional(),cacheWriteTokens:e.number().int().nonnegative().optional()}),SessionTurnEndEventSchema=e.object({t:e.literal("turn-end"),status:SessionTurnEndStatusSchema,usage:TurnUsageSchema.optional(),model:e.string().optional()}),SessionStartEventSchema=e.object({t:e.literal("start"),title:e.string().optional()}),SessionStopEventSchema=e.object({t:e.literal("stop")}),SessionImageEventSchema=e.object({t:e.literal("image"),data:e.string(),mediaType:e.string()}),SessionEventSchema=e.discriminatedUnion("t",[SessionTextEventSchema,SessionServiceEventSchema,SessionToolCallStartEventSchema,SessionToolCallEndEventSchema,SessionFileEventSchema,SessionTurnStartEventSchema,SessionTurnEndEventSchema,SessionStartEventSchema,SessionStopEventSchema,t,n,o,s,SessionImageEventSchema]);export{SessionQuestionEventSchema,SessionPermissionRequestEventSchema,SessionAnswerEventSchema,SessionPermissionResolvedEventSchema,PermissionActionSchema,ImageAttachmentSchema}from"./interactionEvents.js";
|
package/dist/features.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface FeatureDefinition {
|
|
|
12
12
|
readonly requiredMethods: readonly string[];
|
|
13
13
|
/** Version where this feature was first introduced. */
|
|
14
14
|
readonly sinceVersion: string;
|
|
15
|
+
/** Edition(s) this feature applies to. Undefined = both editions. */
|
|
16
|
+
readonly edition?: 'personal' | 'enterprise';
|
|
15
17
|
/** Sub-features gated by daemon version within this parent feature. */
|
|
16
18
|
readonly subFeatures?: readonly SubFeatureDefinition[];
|
|
17
19
|
}
|