makaron-cli 0.7.8 → 0.7.9
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/README.md +4 -2
- package/SKILL.md +4 -2
- package/bin/makaron.mjs +18 -3
- package/package.json +1 -1
- package/skills/makaron/SKILL.md +4 -2
package/README.md
CHANGED
|
@@ -140,6 +140,7 @@ Use this when another Agent needs to read what Makaron said, detect approval req
|
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
142
|
npx makaron-cli responses events <runId> --jsonl
|
|
143
|
+
# alias: npx makaron-cli responses timeline <runId> --jsonl
|
|
143
144
|
```
|
|
144
145
|
|
|
145
146
|
Events use only three factual types:
|
|
@@ -159,10 +160,11 @@ npx makaron-cli responses ask-user msg_1 --run <runId>
|
|
|
159
160
|
npx makaron-cli responses continue msg_1 --run <runId>
|
|
160
161
|
```
|
|
161
162
|
|
|
162
|
-
Wrappers can enforce
|
|
163
|
+
Important: approvals are a local Agent gate in v0. They are recorded by the CLI so wrappers and Skills can fail fast, but they do not pause or resume the remote Makaron runtime yet. Wrappers can enforce the local gate with:
|
|
163
164
|
|
|
164
165
|
```bash
|
|
165
|
-
npx makaron-cli responses events <runId> --jsonl
|
|
166
|
+
npx makaron-cli responses events <runId> --jsonl
|
|
167
|
+
# alias: npx makaron-cli responses timeline <runId> --jsonl --fail-on-unapproved
|
|
166
168
|
```
|
|
167
169
|
|
|
168
170
|
### Extract specific results
|
package/SKILL.md
CHANGED
|
@@ -132,6 +132,7 @@ Use this when another Agent needs to read what Makaron said, detect approval req
|
|
|
132
132
|
|
|
133
133
|
```bash
|
|
134
134
|
npx makaron-cli responses events <runId> --jsonl
|
|
135
|
+
# alias: npx makaron-cli responses timeline <runId> --jsonl
|
|
135
136
|
```
|
|
136
137
|
|
|
137
138
|
Events use only three factual types:
|
|
@@ -151,10 +152,11 @@ npx makaron-cli responses ask-user msg_1 --run <runId>
|
|
|
151
152
|
npx makaron-cli responses continue msg_1 --run <runId>
|
|
152
153
|
```
|
|
153
154
|
|
|
154
|
-
Wrappers can enforce
|
|
155
|
+
Important: approvals are a local Agent gate in v0. They are recorded by the CLI so wrappers and Skills can fail fast, but they do not pause or resume the remote Makaron runtime yet. Wrappers can enforce the local gate with:
|
|
155
156
|
|
|
156
157
|
```bash
|
|
157
|
-
npx makaron-cli responses events <runId> --jsonl
|
|
158
|
+
npx makaron-cli responses events <runId> --jsonl
|
|
159
|
+
# alias: npx makaron-cli responses timeline <runId> --jsonl --fail-on-unapproved
|
|
158
160
|
```
|
|
159
161
|
|
|
160
162
|
### Extract specific results
|
package/bin/makaron.mjs
CHANGED
|
@@ -447,11 +447,25 @@ function stableEventId(prefix, runId, seq, fallback) {
|
|
|
447
447
|
return fallback || `${prefix}_${runId}_${seq ?? Date.now()}`;
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
+
function inferRequiresApproval(text) {
|
|
451
|
+
if (!text) return false;
|
|
452
|
+
const normalized = text.toLowerCase().replace(/\s+/g, ' ').trim();
|
|
453
|
+
const approvalPhrases = [
|
|
454
|
+
/\bshall i\b.*\b(go ahead|proceed|continue|generate|create|submit|start)\b/,
|
|
455
|
+
/\bshould i\b.*\b(go ahead|proceed|continue|generate|create|submit|start)\b/,
|
|
456
|
+
/\bdo you want me to\b.*\b(go ahead|proceed|continue|generate|create|submit|start)\b/,
|
|
457
|
+
/\bconfirm\b.*\b(before|to)\b.*\b(generate|create|submit|proceed|continue)\b/,
|
|
458
|
+
/\bapprove\b.*\b(before|to)\b.*\b(generate|create|submit|proceed|continue)\b/,
|
|
459
|
+
/\bplease\b.*\b(confirm|approve)\b.*\b(generate|create|submit|proceed|continue)\b/,
|
|
460
|
+
];
|
|
461
|
+
return approvalPhrases.some(pattern => pattern.test(normalized));
|
|
462
|
+
}
|
|
463
|
+
|
|
450
464
|
function normalizeDialogueMessage(runId, projectId, ev) {
|
|
451
465
|
const data = ev.data || ev;
|
|
452
466
|
const text = data.text || data.message || data.content || data.statusText || '';
|
|
453
467
|
if (!text && ev.type !== 'tool_call') return null;
|
|
454
|
-
const requiresApproval = Boolean(data.requires_approval || data.requiresApproval || data.action_required || data.actionRequired);
|
|
468
|
+
const requiresApproval = Boolean(data.requires_approval || data.requiresApproval || data.action_required || data.actionRequired || inferRequiresApproval(text));
|
|
455
469
|
const message = {
|
|
456
470
|
type: 'message',
|
|
457
471
|
id: stableEventId('msg', runId, ev.seq, data.id || ev.id),
|
|
@@ -1226,9 +1240,9 @@ if (command === '--version' || command === '-v' || command === 'version') {
|
|
|
1226
1240
|
}
|
|
1227
1241
|
await watchRun(baseUrl, headers, runId, { interval, jsonl });
|
|
1228
1242
|
|
|
1229
|
-
} else if (sub === 'events') {
|
|
1243
|
+
} else if (sub === 'events' || sub === 'timeline') {
|
|
1230
1244
|
const runId = args[2];
|
|
1231
|
-
if (!runId) { console.error(
|
|
1245
|
+
if (!runId) { console.error(`Usage: makaron responses ${sub} <runId> [--jsonl] [--follow] [--interval <ms>] [--fail-on-unapproved]`); process.exit(1); }
|
|
1232
1246
|
let interval = 5000, jsonl = false, follow = false, failOnUnapproved = false;
|
|
1233
1247
|
for (let i = 3; i < args.length; i++) {
|
|
1234
1248
|
if (args[i] === '--jsonl') jsonl = true;
|
|
@@ -1276,6 +1290,7 @@ if (command === '--version' || command === '-v' || command === 'version') {
|
|
|
1276
1290
|
responses get <runId> --wait Poll until completed
|
|
1277
1291
|
responses get <runId> --pick <field> Extract: first_image_url, first_video_url, project_url, output
|
|
1278
1292
|
responses events <runId> --jsonl Emit message/approval/artifact events for external Agents
|
|
1293
|
+
responses timeline <runId> --jsonl Alias for responses events
|
|
1279
1294
|
responses approve <messageId> --run <runId> Record approval for a Makaron message
|
|
1280
1295
|
responses revise <messageId> --run <runId> Record revision request for a Makaron message
|
|
1281
1296
|
responses ask-user <messageId> --run <runId> Record that the user must decide
|
package/package.json
CHANGED
package/skills/makaron/SKILL.md
CHANGED
|
@@ -132,6 +132,7 @@ Use this when another Agent needs to read what Makaron said, detect approval req
|
|
|
132
132
|
|
|
133
133
|
```bash
|
|
134
134
|
npx makaron-cli responses events <runId> --jsonl
|
|
135
|
+
# alias: npx makaron-cli responses timeline <runId> --jsonl
|
|
135
136
|
```
|
|
136
137
|
|
|
137
138
|
Events use only three factual types:
|
|
@@ -151,10 +152,11 @@ npx makaron-cli responses ask-user msg_1 --run <runId>
|
|
|
151
152
|
npx makaron-cli responses continue msg_1 --run <runId>
|
|
152
153
|
```
|
|
153
154
|
|
|
154
|
-
Wrappers can enforce
|
|
155
|
+
Important: approvals are a local Agent gate in v0. They are recorded by the CLI so wrappers and Skills can fail fast, but they do not pause or resume the remote Makaron runtime yet. Wrappers can enforce the local gate with:
|
|
155
156
|
|
|
156
157
|
```bash
|
|
157
|
-
npx makaron-cli responses events <runId> --jsonl
|
|
158
|
+
npx makaron-cli responses events <runId> --jsonl
|
|
159
|
+
# alias: npx makaron-cli responses timeline <runId> --jsonl --fail-on-unapproved
|
|
158
160
|
```
|
|
159
161
|
|
|
160
162
|
### Extract specific results
|