genaicode 2.4.2 → 2.5.2
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/CHANGELOG.md +14 -0
- package/README.md +1 -1
- package/dist/agents/drivers/muse-live.d.ts +2 -3
- package/dist/agents/drivers/muse-live.js +107 -13
- package/dist/agents/drivers/muse-live.js.map +1 -1
- package/docs/agents.md +4 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 2.5.1 — 2026-09-24
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- `museLive()` now answers approvals: `onApproval` decides each request (and each stage of a
|
|
10
|
+
multi-stage one) through Muse's `approval/decide`. Before, requests were refused
|
|
11
|
+
unanswered and stayed pending.
|
|
12
|
+
|
|
13
|
+
## 2.5.0 — 2026-09-24
|
|
14
|
+
|
|
5
15
|
### Added
|
|
6
16
|
|
|
7
17
|
- Drivers `vibe()` for Mistral Vibe (`--output streaming`) and `antigravity()` for the
|
|
@@ -11,6 +21,10 @@
|
|
|
11
21
|
|
|
12
22
|
- `codex()`: a failed MCP tool call's `tool-end` event carries the error message as `output`.
|
|
13
23
|
|
|
24
|
+
### Notes
|
|
25
|
+
|
|
26
|
+
- 2.4.2 was published from the same code.
|
|
27
|
+
|
|
14
28
|
## 2.4.1 — 2026-09-24
|
|
15
29
|
|
|
16
30
|
### Notes
|
package/README.md
CHANGED
|
@@ -116,7 +116,7 @@ const result = await run.result; // { status, ok, text, sessionId, usage, error,
|
|
|
116
116
|
| opencode | `opencode()` | `provider/model` ids, variants |
|
|
117
117
|
| Mistral Vibe | `vibe()` | agent profile, max turns, max price |
|
|
118
118
|
| Antigravity CLI | `antigravity()` | sandbox, effort, usage |
|
|
119
|
-
| Muse | `muse()`, `museLive()` | max turns; live: `steer()
|
|
119
|
+
| Muse | `muse()`, `museLive()` | max turns; live: `steer()`, approvals |
|
|
120
120
|
| Your own CLI/API | `cliAgent()`, `hostedAgent()` | plug in any JSON-lines CLI or hosted agent |
|
|
121
121
|
|
|
122
122
|
On top of the drivers:
|
|
@@ -8,9 +8,8 @@ export interface MuseLiveOptions {
|
|
|
8
8
|
requestTimeoutMs?: number;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* Muse over its JSON-RPC server (`muse serve`). Supports `steer()
|
|
12
|
-
*
|
|
13
|
-
* part of this driver yet, so `capabilities.approvals` is false.
|
|
11
|
+
* Muse over its JSON-RPC server (`muse serve`). Supports `steer()` and routes
|
|
12
|
+
* approval requests to `task.onApproval`; without one, each request is denied.
|
|
14
13
|
*/
|
|
15
14
|
export declare function museLive(options?: MuseLiveOptions): CodingAgent;
|
|
16
15
|
/** Map one `muse serve` notification to agent events. */
|
|
@@ -3,15 +3,14 @@ import { RpcError } from '../rpc.js';
|
|
|
3
3
|
import { isObject, stringField } from './json.js';
|
|
4
4
|
const TOOL_KINDS = new Set(['commandExecution', 'toolCall', 'mcpToolCall', 'fileChange']);
|
|
5
5
|
/**
|
|
6
|
-
* Muse over its JSON-RPC server (`muse serve`). Supports `steer()
|
|
7
|
-
*
|
|
8
|
-
* part of this driver yet, so `capabilities.approvals` is false.
|
|
6
|
+
* Muse over its JSON-RPC server (`muse serve`). Supports `steer()` and routes
|
|
7
|
+
* approval requests to `task.onApproval`; without one, each request is denied.
|
|
9
8
|
*/
|
|
10
9
|
export function museLive(options = {}) {
|
|
11
10
|
return liveAgent({
|
|
12
11
|
name: 'muse',
|
|
13
12
|
command: options.command ?? 'muse',
|
|
14
|
-
capabilities: { effort: ['minimal', 'low', 'medium', 'high', 'xhigh', 'max'], approvals:
|
|
13
|
+
capabilities: { effort: ['minimal', 'low', 'medium', 'high', 'xhigh', 'max'], approvals: true },
|
|
15
14
|
args: (task) => [
|
|
16
15
|
'serve',
|
|
17
16
|
...((options.trustWorkspace ?? true) ? ['--trust-workspace'] : []),
|
|
@@ -29,9 +28,14 @@ async function driveMuse(session, options) {
|
|
|
29
28
|
const finished = new Promise((resolve) => {
|
|
30
29
|
finish = resolve;
|
|
31
30
|
});
|
|
31
|
+
const approvals = museApprovals(session, () => ids.session, timeout);
|
|
32
32
|
session.onNotification((method, params) => {
|
|
33
33
|
if (ids.session === undefined || stringField(params, 'sessionId') !== ids.session)
|
|
34
34
|
return;
|
|
35
|
+
if (method === 'approval/requested')
|
|
36
|
+
return approvals.requested(params);
|
|
37
|
+
if (method === 'approval/updated')
|
|
38
|
+
return approvals.updated(params);
|
|
35
39
|
if (method === 'turn/completed') {
|
|
36
40
|
if (ids.turn && stringField(params, 'turnId') && stringField(params, 'turnId') !== ids.turn)
|
|
37
41
|
return;
|
|
@@ -46,15 +50,11 @@ async function driveMuse(session, options) {
|
|
|
46
50
|
session.emit(event);
|
|
47
51
|
});
|
|
48
52
|
session.onRequest((method, params) => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
kind: 'other',
|
|
55
|
-
detail: params,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
53
|
+
// The server-request form of an approval wants only a presentation receipt; the
|
|
54
|
+
// decision goes back as an `approval/decide` command, as for the notification form.
|
|
55
|
+
if (method === 'approval/request' && stringField(params, 'sessionId') === ids.session) {
|
|
56
|
+
approvals.requested(params);
|
|
57
|
+
return {};
|
|
58
58
|
}
|
|
59
59
|
throw new RpcError('This client cannot grant this request.', -32601);
|
|
60
60
|
});
|
|
@@ -89,6 +89,100 @@ async function driveMuse(session, options) {
|
|
|
89
89
|
});
|
|
90
90
|
return finished;
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Muse's approval round trip: an `approval/requested` notification (or `approval/request`
|
|
94
|
+
* server request) offers server-minted choices, and the client answers with an
|
|
95
|
+
* `approval/decide` command naming one of them. A multi-stage approval advances through
|
|
96
|
+
* `approval/updated` with a new `currentRequirementId`, and each stage is decided once.
|
|
97
|
+
*/
|
|
98
|
+
function museApprovals(session, sessionId, timeout) {
|
|
99
|
+
const decided = new Set();
|
|
100
|
+
const closed = new Set();
|
|
101
|
+
const requests = new Map();
|
|
102
|
+
const stages = new Map();
|
|
103
|
+
const decide = async (params) => {
|
|
104
|
+
const approvalId = stringField(params, 'approvalId');
|
|
105
|
+
const requirement = isObject(params.currentRequirementId) ? params.currentRequirementId : undefined;
|
|
106
|
+
const choices = Array.isArray(params.availableChoices) ? params.availableChoices.filter(isChoice) : [];
|
|
107
|
+
if (!approvalId || !requirement)
|
|
108
|
+
return;
|
|
109
|
+
const stageKey = `${approvalId} ${stringField(requirement, 'approvalId')}:${String(requirement.sourceIndex)}`;
|
|
110
|
+
if (decided.has(stageKey) || closed.has(approvalId))
|
|
111
|
+
return;
|
|
112
|
+
decided.add(stageKey);
|
|
113
|
+
const stage = (stages.get(approvalId) ?? 0) + 1;
|
|
114
|
+
stages.set(approvalId, stage);
|
|
115
|
+
const decision = await session.approve(museApprovalRequest(params, stage === 1 ? approvalId : `${approvalId}/${stage}`));
|
|
116
|
+
// Approving for the session or for good would grant more than was asked: deny instead.
|
|
117
|
+
let choice = pickChoice(choices, decision);
|
|
118
|
+
if (!choice && decision === 'approve') {
|
|
119
|
+
choice = pickChoice(choices, 'deny');
|
|
120
|
+
session.emit({ type: 'error', message: `Muse offered no one-time approval for ${approvalId}; denying it.` });
|
|
121
|
+
}
|
|
122
|
+
if (!choice) {
|
|
123
|
+
session.emit({ type: 'error', message: `Muse offered no choice that denies approval ${approvalId}.` });
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const ack = await session.rpc.request('approval/decide', {
|
|
127
|
+
sessionId: sessionId(),
|
|
128
|
+
approvalId,
|
|
129
|
+
choiceId: choice.choiceId,
|
|
130
|
+
requirementId: requirement,
|
|
131
|
+
commandId: uuidv7(),
|
|
132
|
+
}, timeout);
|
|
133
|
+
// `terminal: true`: this decision closed the whole approval, so no later stage needs one.
|
|
134
|
+
if (isObject(ack) && ack.terminal === true)
|
|
135
|
+
closed.add(approvalId);
|
|
136
|
+
};
|
|
137
|
+
const run = (params) => void decide(params).catch((error) => session.emit({
|
|
138
|
+
type: 'error',
|
|
139
|
+
message: `Answering a Muse approval failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
140
|
+
}));
|
|
141
|
+
return {
|
|
142
|
+
requested(params) {
|
|
143
|
+
if (!isObject(params))
|
|
144
|
+
return;
|
|
145
|
+
const approvalId = stringField(params, 'approvalId');
|
|
146
|
+
if (approvalId)
|
|
147
|
+
requests.set(approvalId, params);
|
|
148
|
+
run(params);
|
|
149
|
+
},
|
|
150
|
+
updated(params) {
|
|
151
|
+
if (!isObject(params))
|
|
152
|
+
return;
|
|
153
|
+
const approvalId = stringField(params, 'approvalId');
|
|
154
|
+
const original = approvalId ? requests.get(approvalId) : undefined;
|
|
155
|
+
if (!original || (isObject(params.change) && params.change.kind === 'alreadyTerminal'))
|
|
156
|
+
return;
|
|
157
|
+
// The update carries the new stage; the tool and its arguments stay those of the request.
|
|
158
|
+
run({ ...original, ...params });
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function isChoice(value) {
|
|
163
|
+
return isObject(value) && typeof value.choiceId === 'string' && typeof value.decision === 'string';
|
|
164
|
+
}
|
|
165
|
+
/** The narrowest matching choice: approve once rather than for the session, deny once rather than for good. */
|
|
166
|
+
function pickChoice(choices, decision) {
|
|
167
|
+
const wanted = decision === 'approve' ? ['approved'] : ['denied', 'abort'];
|
|
168
|
+
const matching = choices.filter((choice) => wanted.includes(choice.decision));
|
|
169
|
+
return matching.find((choice) => choice.scope === 'once') ?? matching[0];
|
|
170
|
+
}
|
|
171
|
+
function museApprovalRequest(params, id) {
|
|
172
|
+
const subject = isObject(params.subject) ? params.subject : {};
|
|
173
|
+
const subjectKind = stringField(subject, 'kind');
|
|
174
|
+
const access = stringField(subject, 'access');
|
|
175
|
+
const kind = subjectKind === 'shell' || subjectKind === 'process'
|
|
176
|
+
? 'command'
|
|
177
|
+
: subjectKind === 'fileAccess' && access !== undefined && access !== 'read'
|
|
178
|
+
? 'file-change'
|
|
179
|
+
: 'other';
|
|
180
|
+
const summary = stringField(subject, 'command') ??
|
|
181
|
+
stringField(subject, 'path') ??
|
|
182
|
+
stringField(subject, 'target') ??
|
|
183
|
+
stringField(params, 'toolName');
|
|
184
|
+
return { id, kind, ...(summary ? { summary } : {}), detail: params };
|
|
185
|
+
}
|
|
92
186
|
/** Map one `muse serve` notification to agent events. */
|
|
93
187
|
export function museNotification(method, params) {
|
|
94
188
|
const item = isObject(params) && isObject(params.item) ? params.item : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muse-live.js","sourceRoot":"","sources":["../../../src/agents/drivers/muse-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAoB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAWlD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;AAE1F
|
|
1
|
+
{"version":3,"file":"muse-live.js","sourceRoot":"","sources":["../../../src/agents/drivers/muse-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAoB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAWlD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;AAE1F;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,UAA2B,EAAE;IACpD,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM;QAClC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;QAC/F,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACd,OAAO;YACP,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;SAC1B;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;KAChD,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAoB,EAAE,OAAwB;IACrE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC;IACnD,2EAA2E;IAC3E,MAAM,GAAG,GAAwC,EAAE,CAAC;IACpD,IAAI,MAAM,GAAoC,GAAG,EAAE,GAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,EAAE;QACrD,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAErE,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACxC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,OAAO;YAAE,OAAO;QAC1F,IAAI,MAAM,KAAK,oBAAoB;YAAE,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,kBAAkB;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI;gBAAE,OAAO;YACpG,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAClF,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,MAAM,CACJ,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,aAAa,QAAQ,IAAI,OAAO,GAAG,EAAE,CAC7G,CAAC;YACF,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnC,gFAAgF;QAChF,oFAAoF;QACpF,IAAI,MAAM,KAAK,kBAAkB,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YACtF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,wCAAwC,EAAE,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,OAAO,CACf,YAAY,EACZ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAC9F,OAAO,CACR,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAE1B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAC/B,eAAe,EACf;QACE,SAAS,EAAE,MAAM,EAAE;QACnB,aAAa,EAAE,IAAI,CAAC,GAAG;QACvB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,YAAY,EAAE,WAAW;KAC1B,EACD,OAAO,CACR,CAAC;IACF,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5F,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAC/B,YAAY,EACZ;QACE,SAAS;QACT,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,EAAE;QACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,EACD,OAAO,CACR,CAAC;IACF,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;IAClB,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAE/D,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAC3B,YAAY,EACZ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAC9E,OAAO,CACR,CAAC;QACF,IAAI,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,MAAM;YACvC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAQD;;;;;GAKG;AACH,SAAS,aAAa,CAAC,OAAoB,EAAE,SAAmC,EAAE,OAAe;IAC/F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,MAAM,MAAM,GAAG,KAAK,EAAE,MAA+B,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;YAAE,OAAO;QACxC,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9G,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAC5D,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtB,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CACpC,mBAAmB,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CACjF,CAAC;QACF,uFAAuF;QACvF,IAAI,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,yCAAyC,UAAU,eAAe,EAAE,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,+CAA+C,UAAU,GAAG,EAAE,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CACnC,iBAAiB,EACjB;YACE,SAAS,EAAE,SAAS,EAAE;YACtB,UAAU;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,MAAM,EAAE;SACpB,EACD,OAAO,CACR,CAAC;QACF,0FAA0F;QAC1F,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,MAA+B,EAAE,EAAE,CAC9C,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAC3C,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;KACvG,CAAC,CACH,CAAC;IAEJ,OAAO;QACL,SAAS,CAAC,MAAe;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACrD,IAAI,UAAU;gBAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,CAAC;QACd,CAAC;QACD,OAAO,CAAC,MAAe;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC;gBAAE,OAAO;YAC/F,0FAA0F;YAC1F,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACrG,CAAC;AAED,+GAA+G;AAC/G,SAAS,UAAU,CAAC,OAAqB,EAAE,QAA0B;IACnE,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA+B,EAAE,EAAU;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,IAAI,GACR,WAAW,KAAK,OAAO,IAAI,WAAW,KAAK,SAAS;QAClD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,WAAW,KAAK,YAAY,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM;YACzE,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,OAAO,CAAC;IAChB,MAAM,OAAO,GACX,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC;QAC/B,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC9B,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACvE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAe;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,gBAAgB,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC;QACnD,IAAI,MAAM,KAAK,cAAc;YAAE,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,IAAI,MAAM,KAAK,gBAAgB;YAC7B,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/docs/agents.md
CHANGED
|
@@ -82,7 +82,7 @@ Vendor events that have no mapping are dropped.
|
|
|
82
82
|
| `codex(options?)` | `codex` | `exec --json` | `sandbox` defaults to `workspace-write`; effort via `model_reasoning_effort` |
|
|
83
83
|
| `muse(options?)` | `muse` | `exec --json --trust-workspace` | `maxTurns` maps to `--max-model-steps` |
|
|
84
84
|
| `codexLive(options?)` | `codex` | `app-server` (JSON-RPC) | `steer()`, approvals, MCP. See [Live sessions](#live-sessions-steering-and-approvals) |
|
|
85
|
-
| `museLive(options?)` | `muse` | `serve` (JSON-RPC) | `steer()
|
|
85
|
+
| `museLive(options?)` | `muse` | `serve` (JSON-RPC) | `steer()`, approvals. See [Live sessions](#live-sessions-steering-and-approvals) |
|
|
86
86
|
| `gemini(options?)` | `gemini` | `--output-format stream-json --prompt=…` | `approvalMode` defaults to `auto_edit`; `--skip-trust` unless `trustWorkspace: false` |
|
|
87
87
|
| `cursor(options?)` | `cursor-agent` | `-p --output-format stream-json` | `--force --approve-mcps` by default (`--trust` if `force: false`); `partialOutput` |
|
|
88
88
|
| `opencode(options?)` | `opencode` | `run --format json` | `model` is `provider/model`; `effort` maps to `--variant`; `autoApprove` adds `--auto` |
|
|
@@ -120,8 +120,9 @@ const result = await run.result;
|
|
|
120
120
|
- `onApproval` is asked for each permission request. It gets a `command`, `file-change` or
|
|
121
121
|
`other` request and returns `'approve'` or `'deny'`. If `onApproval` is missing or throws, the
|
|
122
122
|
request is denied. Codex runs with approval policy `never` when no `onApproval` is set.
|
|
123
|
-
- `museLive()`
|
|
124
|
-
|
|
123
|
+
- `museLive()` answers each approval with one of the choices Muse offers: the `once`
|
|
124
|
+
approve or deny choice where there is one. A multi-stage approval asks `onApproval` once
|
|
125
|
+
per stage; later stages get ids like `ap-1/2`.
|
|
125
126
|
- The task ends when the agent reports its turn complete. The server is then stopped. An exit
|
|
126
127
|
before that point is a failure, even with exit code 0.
|
|
127
128
|
|