@agentproto/driver-agent-cli 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-YQHVLX6O.mjs → chunk-L6BRNMVP.mjs} +552 -62
- package/dist/chunk-L6BRNMVP.mjs.map +1 -0
- package/dist/index.d.ts +203 -14
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/manifest/index.d.ts +2 -2
- package/dist/manifest/index.mjs +2 -2
- package/dist/{schema-CCSzIDMJ.d.ts → schema-L-2rEB1H.d.ts} +314 -2
- package/package.json +2 -2
- package/dist/chunk-YQHVLX6O.mjs.map +0 -1
|
@@ -133,12 +133,36 @@ type AgentCliSetupStep = {
|
|
|
133
133
|
interface AgentCliSession {
|
|
134
134
|
mode?: AgentCliSessionMode;
|
|
135
135
|
idle_timeout_ms?: number;
|
|
136
|
+
/**
|
|
137
|
+
* Per-turn silence watchdog (ms) — distinct from `idle_timeout_ms`,
|
|
138
|
+
* which bounds time BETWEEN turns. This bounds true silence DURING a
|
|
139
|
+
* single turn: if the adapter goes this long with no activity signal
|
|
140
|
+
* and its `prompt` call still hasn't resolved, the ACP client
|
|
141
|
+
* synthesizes a `turn-end` with `reason: "watchdog-timeout"` instead
|
|
142
|
+
* of hanging forever (see `@agentproto/acp/client`'s
|
|
143
|
+
* `AcpClientOptions.turnIdleTimeoutMs`). Undefined (the default)
|
|
144
|
+
* disables the watchdog — set this only for adapters known to
|
|
145
|
+
* sometimes drop the final `prompt` response (e.g. hermes).
|
|
146
|
+
*/
|
|
147
|
+
turn_idle_timeout_ms?: number;
|
|
136
148
|
max_turns?: number;
|
|
137
149
|
context_carryover?: boolean;
|
|
138
150
|
}
|
|
139
151
|
interface AgentCliModels {
|
|
140
152
|
default?: string;
|
|
141
153
|
allowed?: string[];
|
|
154
|
+
/**
|
|
155
|
+
* Model-id patterns this adapter must NEVER route to, even when a caller
|
|
156
|
+
* passes the id explicitly (the `model` option is free-form, so `allowed`
|
|
157
|
+
* is only a curated menu and can't *prevent* an off-menu id). Each pattern
|
|
158
|
+
* matches case-insensitively against the requested model id and supports a
|
|
159
|
+
* single trailing `*` wildcard (prefix match); otherwise exact. A match is
|
|
160
|
+
* refused at compose time (`RuntimeConfigError`, code `model_denied`).
|
|
161
|
+
* Use to reserve a premium provider for a dedicated adapter — e.g. hermes
|
|
162
|
+
* denies `["anthropic/*", "claude-*"]` so Anthropic models stay exclusive
|
|
163
|
+
* to the claude-code adapter.
|
|
164
|
+
*/
|
|
165
|
+
deny?: string[];
|
|
142
166
|
env?: Record<string, string>;
|
|
143
167
|
/**
|
|
144
168
|
* How the host selects a model at session start:
|
|
@@ -170,6 +194,16 @@ interface AgentCliCapabilities {
|
|
|
170
194
|
*/
|
|
171
195
|
file_attach?: boolean;
|
|
172
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Support status for a declared mode. Absent ⇒ treated as `"active"`.
|
|
199
|
+
* active — the mode does what its description claims.
|
|
200
|
+
* noop — declared and accepted, but measured to have no effect
|
|
201
|
+
* (argv/env compose fine, but the observable outcome is
|
|
202
|
+
* identical to not passing it). Kept declared for honesty
|
|
203
|
+
* and so a future fix can flip it back to `active`.
|
|
204
|
+
* planned — declared as an intended surface but not wired yet.
|
|
205
|
+
*/
|
|
206
|
+
type AgentCliModeStatus = "active" | "noop" | "planned";
|
|
173
207
|
/**
|
|
174
208
|
* AIP-45 mode declaration — a mutually-exclusive operation profile
|
|
175
209
|
* the CLI exposes. The host picks at most ONE mode per turn via
|
|
@@ -179,8 +213,51 @@ interface AgentCliCapabilities {
|
|
|
179
213
|
interface AgentCliMode {
|
|
180
214
|
id: string;
|
|
181
215
|
description?: string;
|
|
216
|
+
/**
|
|
217
|
+
* Extra argv prepended BEFORE the manifest's default `bin_args` when
|
|
218
|
+
* this mode is active. Needed for CLIs whose global flags must
|
|
219
|
+
* precede a subcommand baked into `bin_args` (e.g. hermes'
|
|
220
|
+
* `--ignore-user-config` must come before `acp`, where
|
|
221
|
+
* `bin_args_append` would land it too late).
|
|
222
|
+
*/
|
|
223
|
+
bin_args_prepend?: string[];
|
|
182
224
|
bin_args_append?: string[];
|
|
183
225
|
env?: Record<string, string>;
|
|
226
|
+
/**
|
|
227
|
+
* Env keys to DELETE from the spawn env when this mode is active.
|
|
228
|
+
* Applied at the runtime's env-merge point (after the ambient
|
|
229
|
+
* process.env + mode/option env are combined), so a mode can scrub a
|
|
230
|
+
* credential that must never reach a non-native endpoint — e.g. a
|
|
231
|
+
* gateway mode scrubbing `ANTHROPIC_API_KEY` so it can't leak to a
|
|
232
|
+
* third-party Anthropic-compatible host (it would both 401 and expose
|
|
233
|
+
* the real key). Unlike `env`, this can't be expressed as a static
|
|
234
|
+
* set (a key set to "" is still present); deletion is the only safe
|
|
235
|
+
* semantics. Mirrors the in-code scrub `claude-sdk` does in
|
|
236
|
+
* `buildQueryOptions`; surfaced here so CLI-adapter gateway modes
|
|
237
|
+
* get the same auth hygiene without per-adapter code.
|
|
238
|
+
*/
|
|
239
|
+
env_unset?: string[];
|
|
240
|
+
/**
|
|
241
|
+
* Honest support status surfaced to clients (e.g. via `adapter_list`).
|
|
242
|
+
* Lets an adapter admit that a declared mode is a measured no-op or
|
|
243
|
+
* not-yet-wired instead of silently accepting it. Absent ⇒ `"active"`.
|
|
244
|
+
*/
|
|
245
|
+
status?: AgentCliModeStatus;
|
|
246
|
+
/** Human-readable reason backing `status` (e.g. what was measured). */
|
|
247
|
+
status_note?: string;
|
|
248
|
+
/**
|
|
249
|
+
* How the host activates this mode at session start:
|
|
250
|
+
* - "bin_args" (default) — apply via this mode's `bin_args_prepend` /
|
|
251
|
+
* `bin_args_append` / `env`, composed into argv/env at spawn time.
|
|
252
|
+
* Preserves every existing adapter's behavior unchanged.
|
|
253
|
+
* - "config" — this CLI has no argv/env surface for mode selection;
|
|
254
|
+
* instead the mode id is forwarded to the ACP arm's `connect({mode})`
|
|
255
|
+
* and applied via `session/set_config_option` with `configId:"mode"`
|
|
256
|
+
* after `newSession` (e.g. opencode). `bin_args_prepend` /
|
|
257
|
+
* `bin_args_append` / `env` are ignored for a mode declaring this.
|
|
258
|
+
* Omit → "bin_args".
|
|
259
|
+
*/
|
|
260
|
+
apply?: "bin_args" | "config";
|
|
184
261
|
}
|
|
185
262
|
type AgentCliOptionType = "boolean" | "integer" | "string" | "enum";
|
|
186
263
|
/**
|
|
@@ -199,6 +276,14 @@ interface AgentCliOption {
|
|
|
199
276
|
min?: number;
|
|
200
277
|
/** Inclusive upper bound when type === "integer". */
|
|
201
278
|
max?: number;
|
|
279
|
+
/**
|
|
280
|
+
* Argv template prepended BEFORE the manifest's default `bin_args`
|
|
281
|
+
* when the option has a non-default value. The literal token
|
|
282
|
+
* `{value}` is replaced with the option's value (stringified). Use
|
|
283
|
+
* for value-bearing global flags that must precede a subcommand
|
|
284
|
+
* (e.g. hermes' `--skills {value}`).
|
|
285
|
+
*/
|
|
286
|
+
bin_args_prepend?: string[];
|
|
202
287
|
/**
|
|
203
288
|
* Argv template appended when the option has a non-default value.
|
|
204
289
|
* The literal token `{value}` is replaced with the option's value
|
|
@@ -215,6 +300,63 @@ interface AgentCliOption {
|
|
|
215
300
|
* may contain `{value}` for templating.
|
|
216
301
|
*/
|
|
217
302
|
env?: Record<string, string>;
|
|
303
|
+
/**
|
|
304
|
+
* Env keys to DELETE from the spawn env when the option has a
|
|
305
|
+
* non-default value. Symmetric with `AgentCliMode.env_unset` and
|
|
306
|
+
* applied at the same runtime env-merge point. Lets a single option
|
|
307
|
+
* carry both the value it sets AND the credential it must displace —
|
|
308
|
+
* e.g. a `base_url` option pointing at a third-party Anthropic-
|
|
309
|
+
* compatible gateway should scrub the ambient `ANTHROPIC_API_KEY`
|
|
310
|
+
* so it can't leak, without forcing the operator to also pick a
|
|
311
|
+
* preset mode. The deletion runs before operator-supplied `opts.env`
|
|
312
|
+
* is merged, so a caller can still re-inject a specific key if they
|
|
313
|
+
* truly intend to.
|
|
314
|
+
*/
|
|
315
|
+
env_unset?: string[];
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* AIP-45 gateway-preset declaration — a backend an Anthropic/OpenAI-
|
|
319
|
+
* compatible client can front, declared by the adapter that knows how to
|
|
320
|
+
* drive it. The manifest authoring shape; the runtime normalizes it to a
|
|
321
|
+
* `ProviderPreset` (via the catalog's merge seam) so adapter-declared
|
|
322
|
+
* presets appear in `agentproto presets list` / `list_provider_presets`
|
|
323
|
+
* alongside the built-in registry. Data-only — no adapter projection
|
|
324
|
+
* (`env`/`env_unset`/`bin_args`) here; that stays in the adapter's modes
|
|
325
|
+
* and options, same as the built-in presets are projected today.
|
|
326
|
+
*/
|
|
327
|
+
interface AgentCliPresetDeclaration {
|
|
328
|
+
/**
|
|
329
|
+
* Stable preset id. SHOULD equal the mode id if the adapter projects
|
|
330
|
+
* this preset as a mode (e.g. `moonshot`, `openrouter`). Catalog
|
|
331
|
+
* dedupes built-in vs adapter-declared by id; an adapter-declared id
|
|
332
|
+
* that collides with a built-in is ignored in favor of the built-in
|
|
333
|
+
* (the registry is the source of truth for canonical providers).
|
|
334
|
+
*/
|
|
335
|
+
id: string;
|
|
336
|
+
/** Human label for the catalog UI ("Moonshot (Kimi)"). */
|
|
337
|
+
label: string;
|
|
338
|
+
/** Short description; surfaced in the catalog. */
|
|
339
|
+
description?: string;
|
|
340
|
+
/** API schema flavor — selects which adapter family can consume it. */
|
|
341
|
+
schemaFlavor: "anthropic" | "openai";
|
|
342
|
+
/** Base URL the client hits. */
|
|
343
|
+
baseUrl: string;
|
|
344
|
+
/**
|
|
345
|
+
* Conventional env var holding this provider's API key
|
|
346
|
+
* (e.g. MOONSHOT_API_KEY). Catalog status is derived from its presence
|
|
347
|
+
* in the daemon's environment ("ready" vs "available").
|
|
348
|
+
*/
|
|
349
|
+
keyEnv: string;
|
|
350
|
+
/**
|
|
351
|
+
* Env vars to scrub when this preset is active. Optional at the
|
|
352
|
+
* manifest level — an adapter that scrubs in code (like claude-sdk)
|
|
353
|
+
* may omit it. The catalog does not surface `scrubEnv` to clients.
|
|
354
|
+
*/
|
|
355
|
+
scrubEnv?: string[];
|
|
356
|
+
/** Conventional default model id for this provider, if any. */
|
|
357
|
+
defaultModel?: string;
|
|
358
|
+
/** Optional homepage/docs URL for the catalog UI. */
|
|
359
|
+
homepage?: string;
|
|
218
360
|
}
|
|
219
361
|
/**
|
|
220
362
|
* Built-in continuation strategy ids. Future custom strategies require
|
|
@@ -266,6 +408,58 @@ interface AgentCliExample {
|
|
|
266
408
|
prompt: string;
|
|
267
409
|
note?: string;
|
|
268
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* AIP-45 § Print protocol configuration.
|
|
413
|
+
*
|
|
414
|
+
* When `protocol: "print"`, this block declares the CLI's one-shot
|
|
415
|
+
* headless surface so the print arm can construct the correct argv and
|
|
416
|
+
* map the CLI's wire events to {@link StreamEvent}. Omit to use
|
|
417
|
+
* Claude Code defaults (backward-compatible).
|
|
418
|
+
*/
|
|
419
|
+
interface AgentCliPrintConfig {
|
|
420
|
+
/**
|
|
421
|
+
* How the prompt text is passed to the binary.
|
|
422
|
+
* - absent / `"positional"` — appended as the last positional arg
|
|
423
|
+
* (Claude: `claude --print ... <prompt>`).
|
|
424
|
+
* - a string — passed as `--<prompt_flag> <text>` before any trailing
|
|
425
|
+
* positional args (Mastra Code: `--prompt`).
|
|
426
|
+
*/
|
|
427
|
+
prompt_flag?: string;
|
|
428
|
+
/**
|
|
429
|
+
* Output format flags appended before the prompt. Defaults to
|
|
430
|
+
* `["--output-format", "stream-json"]` (Claude Code).
|
|
431
|
+
*
|
|
432
|
+
* Mastra Code uses `["--output", "jsonl"]`.
|
|
433
|
+
*/
|
|
434
|
+
output_format?: string[];
|
|
435
|
+
/**
|
|
436
|
+
* Extra flags inserted between `output_format` and the prompt.
|
|
437
|
+
* Claude Code uses `["--no-interactive"]`; Mastra Code omits this.
|
|
438
|
+
*/
|
|
439
|
+
pre_prompt?: string[];
|
|
440
|
+
/**
|
|
441
|
+
* Resume / continue flag for reattaching to a prior session.
|
|
442
|
+
*
|
|
443
|
+
* Claude: `{ flag: "--resume", kind: "value" }`
|
|
444
|
+
* Mastra: `{ flag: "--continue", kind: "boolean" }` — OR
|
|
445
|
+
* `{ flag: "--thread", kind: "value" }` for explicit thread id
|
|
446
|
+
*/
|
|
447
|
+
resume?: {
|
|
448
|
+
flag: string;
|
|
449
|
+
/** "value" = `--flag <sessionId>`, "boolean" = `--flag` (bare). */
|
|
450
|
+
kind: "value" | "boolean";
|
|
451
|
+
};
|
|
452
|
+
/**
|
|
453
|
+
* Which event taxonomy the CLI emits on stdout (JSONL / stream-json).
|
|
454
|
+
* The print arm picks the matching event mapper.
|
|
455
|
+
*
|
|
456
|
+
* - `"claude-stream-json"` (default) — Claude Code's
|
|
457
|
+
* `--output-format stream-json` taxonomy.
|
|
458
|
+
* - `"mastra-jsonl"` — Mastra Code's `--output jsonl` taxonomy
|
|
459
|
+
* (`AgentControllerEvent` shapes).
|
|
460
|
+
*/
|
|
461
|
+
event_schema?: "claude-stream-json" | "mastra-jsonl";
|
|
462
|
+
}
|
|
269
463
|
interface AgentCliDefinition {
|
|
270
464
|
name: string;
|
|
271
465
|
id: string;
|
|
@@ -287,6 +481,8 @@ interface AgentCliDefinition {
|
|
|
287
481
|
mcp?: AgentCliMcpBlock;
|
|
288
482
|
/** REQUIRED when protocol=proprietary. NPM package implementing AgentCliClient. */
|
|
289
483
|
adapter?: string;
|
|
484
|
+
/** OPTIONAL when protocol=print. Declares the one-shot CLI surface. */
|
|
485
|
+
print?: AgentCliPrintConfig;
|
|
290
486
|
session?: AgentCliSession;
|
|
291
487
|
models?: AgentCliModels;
|
|
292
488
|
capabilities?: AgentCliCapabilities;
|
|
@@ -294,6 +490,15 @@ interface AgentCliDefinition {
|
|
|
294
490
|
modes?: AgentCliMode[];
|
|
295
491
|
/** AIP-45 options (independent typed knobs). */
|
|
296
492
|
options?: AgentCliOption[];
|
|
493
|
+
/**
|
|
494
|
+
* AIP-45 gateway presets this adapter can drive. Adapter-declared
|
|
495
|
+
* presets are merged into the provider-preset catalog
|
|
496
|
+
* (`agentproto presets list` / `list_provider_presets`) alongside the
|
|
497
|
+
* built-in registry, deduped by id (built-in wins on collision). Lets
|
|
498
|
+
* an external adapter surface a gateway the built-in registry doesn't
|
|
499
|
+
* know about without patching `@agentproto/provider-presets`.
|
|
500
|
+
*/
|
|
501
|
+
presets?: AgentCliPresetDeclaration[];
|
|
297
502
|
/** AIP-45 continuation policy (how prior turns reach the CLI). */
|
|
298
503
|
continuation?: AgentCliContinuation;
|
|
299
504
|
requires?: AgentCliRequires;
|
|
@@ -350,6 +555,39 @@ interface AgentCliConnectOptions {
|
|
|
350
555
|
* `session/set_config_option` with `configId:"effort"` on ACP arms.
|
|
351
556
|
*/
|
|
352
557
|
effort?: string;
|
|
558
|
+
/**
|
|
559
|
+
* Mode to activate at session start, for ACP arms whose CLI models
|
|
560
|
+
* mode selection as a session config option rather than an argv/env
|
|
561
|
+
* surface (`AgentCliMode.apply === "config"`, e.g. opencode). Applied
|
|
562
|
+
* via `session/set_config_option` with `configId:"mode"` immediately
|
|
563
|
+
* after `newSession`, best-effort like `model`/`effort`. Adapters that
|
|
564
|
+
* apply mode via `bin_args`/`env` instead (claude-code) leave this
|
|
565
|
+
* unset and are unaffected.
|
|
566
|
+
*/
|
|
567
|
+
mode?: string;
|
|
568
|
+
/**
|
|
569
|
+
* Called on ANY adapter-process activity observed by the protocol
|
|
570
|
+
* arm — incoming ACP `session/update` notifications (even ones that
|
|
571
|
+
* don't translate into a `StreamEvent`) and outbound RPC calls
|
|
572
|
+
* (`newSession`/`loadSession`/`prompt`/`cancel`/`setSessionConfigOption`).
|
|
573
|
+
* Distinct from ring-buffer output: fires during long internal
|
|
574
|
+
* tool-call chains where no `StreamEvent` reaches the host, so a
|
|
575
|
+
* supervisor can tell "still working" apart from "gone quiet."
|
|
576
|
+
* Arms that don't model a stdio JSON-RPC channel (proprietary
|
|
577
|
+
* one-shots) MAY ignore this field.
|
|
578
|
+
*/
|
|
579
|
+
onActivity?: () => void;
|
|
580
|
+
/**
|
|
581
|
+
* Turn-idle watchdog, forwarded verbatim to the ACP arm's
|
|
582
|
+
* `createAcpClient({ turnIdleTimeoutMs })` (see
|
|
583
|
+
* `@agentproto/acp/client`'s `AcpClientOptions.turnIdleTimeoutMs` for
|
|
584
|
+
* the full contract). If a turn goes this many ms with no activity
|
|
585
|
+
* signal and the underlying adapter call still hasn't resolved, the
|
|
586
|
+
* arm synthesizes a `turn-end` event with `reason: "watchdog-timeout"`
|
|
587
|
+
* instead of hanging forever. Undefined disables the watchdog. Arms
|
|
588
|
+
* that don't model a stdio JSON-RPC channel MAY ignore this field.
|
|
589
|
+
*/
|
|
590
|
+
turnIdleTimeoutMs?: number;
|
|
353
591
|
}
|
|
354
592
|
/**
|
|
355
593
|
* Per-turn dispatch shape. Implemented by every protocol arm
|
|
@@ -422,6 +660,25 @@ interface AgentCliStartOptions {
|
|
|
422
660
|
* (e.g. the daemon's orchestration gateway) at spawn time.
|
|
423
661
|
*/
|
|
424
662
|
mcpServers?: AcpMcpServer[];
|
|
663
|
+
/**
|
|
664
|
+
* Called on any adapter-process activity (ACP JSON-RPC traffic in
|
|
665
|
+
* either direction). Forwarded verbatim to
|
|
666
|
+
* `protocolArm.connect({ onActivity })` — see
|
|
667
|
+
* {@link AgentCliConnectOptions.onActivity} for the full contract.
|
|
668
|
+
* Lets a host track session liveness independent of ring-buffer
|
|
669
|
+
* output, e.g. during a long internal tool-call chain.
|
|
670
|
+
*/
|
|
671
|
+
onActivity?: () => void;
|
|
672
|
+
/**
|
|
673
|
+
* Turn-idle watchdog timeout in ms, forwarded to
|
|
674
|
+
* `protocolArm.connect({ turnIdleTimeoutMs })` — see
|
|
675
|
+
* {@link AgentCliConnectOptions.turnIdleTimeoutMs}. When omitted here,
|
|
676
|
+
* `createAgentCliRuntime(...).start()` falls back to the manifest's
|
|
677
|
+
* `session.turn_idle_timeout_ms` (if the adapter declares one), so a
|
|
678
|
+
* host doesn't have to opt in per-call for an adapter that always
|
|
679
|
+
* wants this protection.
|
|
680
|
+
*/
|
|
681
|
+
turnIdleTimeoutMs?: number;
|
|
425
682
|
}
|
|
426
683
|
/**
|
|
427
684
|
* Operator-side runtime configuration. Mirrors the `runtime.config`
|
|
@@ -452,6 +709,15 @@ interface TurnContext {
|
|
|
452
709
|
}
|
|
453
710
|
interface AgentCliRuntimeSession {
|
|
454
711
|
readonly sessionId: string;
|
|
712
|
+
/**
|
|
713
|
+
* OS-level process id of the spawned child, when the runtime owns a
|
|
714
|
+
* real subprocess (every current arm — ACP, print — does). Lets a
|
|
715
|
+
* host compute a cheap `processAlive` liveness check
|
|
716
|
+
* (`process.kill(pid, 0)`) without adapter-specific forensics.
|
|
717
|
+
* Undefined for a future arm with no owned process (e.g. a
|
|
718
|
+
* WebSocket transport).
|
|
719
|
+
*/
|
|
720
|
+
readonly pid?: number;
|
|
455
721
|
send(message: unknown): AsyncIterable<StreamEvent>;
|
|
456
722
|
cancel(): Promise<void>;
|
|
457
723
|
close(): Promise<void>;
|
|
@@ -645,10 +911,10 @@ declare const agentCliFrontmatterSchema: z.ZodObject<{
|
|
|
645
911
|
sandbox: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
646
912
|
runner: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
|
|
647
913
|
protocol: z.ZodEnum<{
|
|
914
|
+
print: "print";
|
|
648
915
|
acp: "acp";
|
|
649
916
|
mcp: "mcp";
|
|
650
917
|
proprietary: "proprietary";
|
|
651
|
-
print: "print";
|
|
652
918
|
}>;
|
|
653
919
|
acp: z.ZodOptional<z.ZodString>;
|
|
654
920
|
mcp: z.ZodOptional<z.ZodObject<{
|
|
@@ -662,6 +928,22 @@ declare const agentCliFrontmatterSchema: z.ZodObject<{
|
|
|
662
928
|
url: z.ZodOptional<z.ZodString>;
|
|
663
929
|
}, z.core.$strict>>;
|
|
664
930
|
adapter: z.ZodOptional<z.ZodString>;
|
|
931
|
+
print: z.ZodOptional<z.ZodObject<{
|
|
932
|
+
prompt_flag: z.ZodOptional<z.ZodString>;
|
|
933
|
+
output_format: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
934
|
+
pre_prompt: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
935
|
+
resume: z.ZodOptional<z.ZodObject<{
|
|
936
|
+
flag: z.ZodString;
|
|
937
|
+
kind: z.ZodEnum<{
|
|
938
|
+
boolean: "boolean";
|
|
939
|
+
value: "value";
|
|
940
|
+
}>;
|
|
941
|
+
}, z.core.$strict>>;
|
|
942
|
+
event_schema: z.ZodOptional<z.ZodEnum<{
|
|
943
|
+
"claude-stream-json": "claude-stream-json";
|
|
944
|
+
"mastra-jsonl": "mastra-jsonl";
|
|
945
|
+
}>>;
|
|
946
|
+
}, z.core.$strict>>;
|
|
665
947
|
session: z.ZodOptional<z.ZodObject<{
|
|
666
948
|
mode: z.ZodDefault<z.ZodEnum<{
|
|
667
949
|
ephemeral: "ephemeral";
|
|
@@ -669,12 +951,14 @@ declare const agentCliFrontmatterSchema: z.ZodObject<{
|
|
|
669
951
|
resumable: "resumable";
|
|
670
952
|
}>>;
|
|
671
953
|
idle_timeout_ms: z.ZodDefault<z.ZodNumber>;
|
|
954
|
+
turn_idle_timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
672
955
|
max_turns: z.ZodOptional<z.ZodNumber>;
|
|
673
956
|
context_carryover: z.ZodDefault<z.ZodBoolean>;
|
|
674
957
|
}, z.core.$strict>>;
|
|
675
958
|
models: z.ZodOptional<z.ZodObject<{
|
|
676
959
|
default: z.ZodOptional<z.ZodString>;
|
|
677
960
|
allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
961
|
+
deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
678
962
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
679
963
|
apply: z.ZodOptional<z.ZodEnum<{
|
|
680
964
|
config: "config";
|
|
@@ -694,8 +978,20 @@ declare const agentCliFrontmatterSchema: z.ZodObject<{
|
|
|
694
978
|
modes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
695
979
|
id: z.ZodString;
|
|
696
980
|
description: z.ZodOptional<z.ZodString>;
|
|
981
|
+
bin_args_prepend: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
697
982
|
bin_args_append: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
698
983
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
984
|
+
env_unset: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
985
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
986
|
+
active: "active";
|
|
987
|
+
noop: "noop";
|
|
988
|
+
planned: "planned";
|
|
989
|
+
}>>;
|
|
990
|
+
status_note: z.ZodOptional<z.ZodString>;
|
|
991
|
+
apply: z.ZodOptional<z.ZodEnum<{
|
|
992
|
+
config: "config";
|
|
993
|
+
bin_args: "bin_args";
|
|
994
|
+
}>>;
|
|
699
995
|
}, z.core.$strict>>>;
|
|
700
996
|
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
701
997
|
id: z.ZodString;
|
|
@@ -710,9 +1006,25 @@ declare const agentCliFrontmatterSchema: z.ZodObject<{
|
|
|
710
1006
|
default: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
|
|
711
1007
|
min: z.ZodOptional<z.ZodNumber>;
|
|
712
1008
|
max: z.ZodOptional<z.ZodNumber>;
|
|
1009
|
+
bin_args_prepend: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
713
1010
|
bin_args_template: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
714
1011
|
bin_args_append_when_true: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
715
1012
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1013
|
+
env_unset: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1014
|
+
}, z.core.$strict>>>;
|
|
1015
|
+
presets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1016
|
+
id: z.ZodString;
|
|
1017
|
+
label: z.ZodString;
|
|
1018
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1019
|
+
schemaFlavor: z.ZodEnum<{
|
|
1020
|
+
anthropic: "anthropic";
|
|
1021
|
+
openai: "openai";
|
|
1022
|
+
}>;
|
|
1023
|
+
baseUrl: z.ZodString;
|
|
1024
|
+
keyEnv: z.ZodString;
|
|
1025
|
+
scrubEnv: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1026
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
1027
|
+
homepage: z.ZodOptional<z.ZodString>;
|
|
716
1028
|
}, z.core.$strict>>>;
|
|
717
1029
|
continuation: z.ZodOptional<z.ZodObject<{
|
|
718
1030
|
default: z.ZodEnum<{
|
|
@@ -774,4 +1086,4 @@ declare const runtimeConfigSchema: z.ZodObject<{
|
|
|
774
1086
|
}, z.core.$strict>;
|
|
775
1087
|
type RuntimeConfigInput = z.infer<typeof runtimeConfigSchema>;
|
|
776
1088
|
|
|
777
|
-
export { type AgentCliHandle as A,
|
|
1089
|
+
export { type AgentCliHandle as A, type AgentCliVersionCheck as B, type ContinuationStrategyId as C, type RuntimeConfigInput as D, agentCliFrontmatterSchema as E, runtimeConfigSchema as F, type RuntimeConfig as R, type TurnContext as T, type AgentCliRuntime as a, type AgentCliDefinition as b, type AgentCliClient as c, type AgentCliPrintConfig as d, type AgentCliRuntimeSession as e, type AgentCliStartOptions as f, type ContinuationKeyScope as g, type AgentCliAuth as h, type AgentCliCapabilities as i, type AgentCliConnectOptions as j, type AgentCliContinuation as k, type AgentCliFrontmatter as l, type AgentCliInstallMethod as m, type AgentCliMcpBlock as n, type AgentCliMode as o, type AgentCliModels as p, type AgentCliOption as q, type AgentCliOptionType as r, type AgentCliPinnedSessionTuning as s, type AgentCliPresetDeclaration as t, type AgentCliProtocol as u, type AgentCliSession as v, type AgentCliSessionMode as w, type AgentCliSetupPersist as x, type AgentCliSetupSkipIf as y, type AgentCliSetupStep as z };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentproto/driver-agent-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "@agentproto/driver-agent-cli — AIP-45 AGENT-CLI.md reference implementation. Multi-protocol runner that loads an AGENT-CLI.md manifest, spawns the binary, and dispatches turns through an ACP / MCP / proprietary arm. ACP arm delegates to @agentproto/acp; emits the canonical StreamEvent taxonomy regardless of underlying protocol.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agentproto",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"gray-matter": "^4.0.3",
|
|
55
55
|
"zod": "^4.4.3",
|
|
56
|
-
"@agentproto/acp": "0.
|
|
56
|
+
"@agentproto/acp": "0.4.0",
|
|
57
57
|
"@agentproto/define-doctype": "0.1.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|