@robota-sdk/agent-framework 3.0.0-beta.86 → 3.0.0-beta.88
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 +99 -19
- package/README.md +55 -10
- package/dist/node/{createInteractiveRuntime-BhC0t5ec.d.ts → createInteractiveRuntime-BMLlR29T.d.ts} +512 -313
- package/dist/node/createInteractiveRuntime-BMLlR29T.d.ts.map +1 -0
- package/dist/node/{createInteractiveRuntime-BnvMAmtV.d.cts → createInteractiveRuntime-CHR5gjdl.d.cts} +512 -313
- package/dist/node/createInteractiveRuntime-CHR5gjdl.d.cts.map +1 -0
- package/dist/node/index.cjs +26 -24
- package/dist/node/index.d.cts +43 -9
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.ts +42 -8
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +26 -24
- package/dist/node/index.js.map +1 -1
- package/dist/node/interactive-CT4ca0_q.cjs +130 -0
- package/dist/node/interactive-DZfVMwYx.js +131 -0
- package/dist/node/interactive-DZfVMwYx.js.map +1 -0
- package/dist/node/testing/index.cjs +2 -2
- package/dist/node/testing/index.d.cts +4 -4
- package/dist/node/testing/index.d.ts +3 -3
- package/dist/node/testing/index.js +2 -2
- package/dist/node/testing/index.js.map +1 -1
- package/package.json +29 -29
- package/dist/node/createInteractiveRuntime-BhC0t5ec.d.ts.map +0 -1
- package/dist/node/createInteractiveRuntime-BnvMAmtV.d.cts.map +0 -1
- package/dist/node/interactive-Ci_de-jv.js +0 -128
- package/dist/node/interactive-Ci_de-jv.js.map +0 -1
- package/dist/node/interactive-D5LjaQmC.cjs +0 -127
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# @robota-sdk/agent-framework
|
|
2
2
|
|
|
3
|
+
## 3.0.0-beta.88
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [d994f60]
|
|
8
|
+
- @robota-sdk/agent-tools@3.0.0-beta.88
|
|
9
|
+
- @robota-sdk/agent-tool-defaults@3.0.0-beta.88
|
|
10
|
+
- @robota-sdk/agent-core@3.0.0-beta.88
|
|
11
|
+
- @robota-sdk/agent-executor@3.0.0-beta.88
|
|
12
|
+
- @robota-sdk/agent-file-authority@3.0.0-beta.88
|
|
13
|
+
- @robota-sdk/agent-interface-analytics@3.0.0-beta.88
|
|
14
|
+
- @robota-sdk/agent-interface-command@3.0.0-beta.88
|
|
15
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.88
|
|
16
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.88
|
|
17
|
+
- @robota-sdk/agent-interface-session-mobility@3.0.0-beta.88
|
|
18
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.88
|
|
19
|
+
- @robota-sdk/agent-roundtable@3.0.0-beta.88
|
|
20
|
+
- @robota-sdk/agent-session@3.0.0-beta.88
|
|
21
|
+
|
|
22
|
+
## 3.0.0-beta.87
|
|
23
|
+
|
|
24
|
+
### Minor Changes
|
|
25
|
+
|
|
26
|
+
- 7d9cc66: Keep host-declared inline human controls reachable during active turns. Plugin disable and uninstall can withdraw future dispatch without changing model invocation or host command policy.
|
|
27
|
+
- 7d9cc66: Expose declarative contribution descriptors for installed bundles and resolved MCP sources,
|
|
28
|
+
including source generations, host capability requirements and compatibility diagnostics.
|
|
29
|
+
Revalidate MCP approval, source identity and workspace trust before new dispatch, preserving
|
|
30
|
+
outcomes of calls already started and refusing retained tools after shutdown.
|
|
31
|
+
- 7d9cc66: Preserve an explicitly supplied host tool scheduling policy through session assembly and CLI presentation modes, retaining permission admission and conservative handling of undeclared resources.
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Release the migrated Robota product with its public SDK namespace, robota command, compatible SDK exports, internal product configuration, and verified CLI startup and delivery corrections.
|
|
36
|
+
- 7d9cc66: Load declared JSON and inline bundle MCP configurations with selected-source containment, ordered whole-server replacement and file provenance. Route packaged servers through normal CLI/app MCP startup with namespaced identities, existing trust/approval/authority gates, disable overlays and value-free compatibility diagnostics.
|
|
37
|
+
- 7d9cc66: Load external name-only plugin manifests without inventing optional metadata. Select the recorded
|
|
38
|
+
installed source instead of the lexically last cached directory, refusing invalid, missing or
|
|
39
|
+
ambiguous revisions. Check the installed identity as well as the manifest name for disablement.
|
|
40
|
+
- 7d9cc66: Add user-only project memory topic correction and forgetting, prevent automatic restoration after restart, refresh retained startup context, and reconcile semantic recall with current durable source content.
|
|
41
|
+
- 7d9cc66: Allow consumer eval metrics to require a perfect outcome independently of aggregate scores, and reject interrupted runs as successful evaluations.
|
|
42
|
+
- 7d9cc66: Add explicit MCP Skills selection, bounded supervisor access and persistent host content consent.
|
|
43
|
+
Users can inspect verified instructions, approve the exact content fingerprint and withdraw consent;
|
|
44
|
+
models can discover metadata only. Consent stays separate from server admission and model-turn activation.
|
|
45
|
+
- 7d9cc66: Route discovered MCP Skills through the shared skill command runtime with lazy verified content, source-bound invocation names, current user consent and execution-owned activation cleanup. Keep remote shell expressions inert and defer queued user skill reads until their own turn executes.
|
|
46
|
+
- 7d9cc66: Restore actual interactive tool observations, identities and outcomes from persisted event history.
|
|
47
|
+
Show denied calls as failed in live and restored GUI conversation views.
|
|
48
|
+
- 7d9cc66: Retain registered tool source attribution in observations and preserve ordered outcome receipts independently of conversation summaries.
|
|
49
|
+
- 7d9cc66: Expose verified skill supporting resources only within their owning turn or fork, using the current host consent and manifest.
|
|
50
|
+
- 7d9cc66: Retain mixed tool observations alongside structured results through live session events and history
|
|
51
|
+
display. The shared app renderer previews inline raster images and keeps resource URIs inert, with
|
|
52
|
+
explicit diagnostics for unsupported media instead of silently dropping it.
|
|
53
|
+
- 7d9cc66: Observe scheduler queue intervals separately from pre-dispatch admission, permission and tool work.
|
|
54
|
+
Preserve valid duration totals when live trace detail is bounded, reporting invalid evidence explicitly
|
|
55
|
+
through content-free console and OTLP traces without altering dispatch, recovery or settlement.
|
|
56
|
+
- Updated dependencies
|
|
57
|
+
- Updated dependencies [66af868]
|
|
58
|
+
- Updated dependencies [7d9cc66]
|
|
59
|
+
- Updated dependencies [7d9cc66]
|
|
60
|
+
- Updated dependencies [7d9cc66]
|
|
61
|
+
- Updated dependencies [7d9cc66]
|
|
62
|
+
- Updated dependencies [7d9cc66]
|
|
63
|
+
- Updated dependencies [7d9cc66]
|
|
64
|
+
- Updated dependencies [7d9cc66]
|
|
65
|
+
- Updated dependencies [7d9cc66]
|
|
66
|
+
- Updated dependencies [7d9cc66]
|
|
67
|
+
- Updated dependencies [7d9cc66]
|
|
68
|
+
- Updated dependencies [7d9cc66]
|
|
69
|
+
- @robota-sdk/agent-core@3.0.0-beta.87
|
|
70
|
+
- @robota-sdk/agent-executor@3.0.0-beta.87
|
|
71
|
+
- @robota-sdk/agent-file-authority@3.0.0-beta.87
|
|
72
|
+
- @robota-sdk/agent-interface-analytics@3.0.0-beta.87
|
|
73
|
+
- @robota-sdk/agent-interface-command@3.0.0-beta.87
|
|
74
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.87
|
|
75
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.87
|
|
76
|
+
- @robota-sdk/agent-interface-session-mobility@3.0.0-beta.87
|
|
77
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.87
|
|
78
|
+
- @robota-sdk/agent-roundtable@3.0.0-beta.87
|
|
79
|
+
- @robota-sdk/agent-session@3.0.0-beta.87
|
|
80
|
+
- @robota-sdk/agent-tool-defaults@3.0.0-beta.87
|
|
81
|
+
- @robota-sdk/agent-tools@3.0.0-beta.87
|
|
82
|
+
|
|
3
83
|
## 3.0.0-beta.86
|
|
4
84
|
|
|
5
85
|
### Patch Changes
|
|
@@ -275,7 +355,7 @@
|
|
|
275
355
|
- Session notices keep only `session-error` and `protocol-error`.
|
|
276
356
|
- The state gains `commandCatalog` and `sessionStatus`.
|
|
277
357
|
- `agent-command` registers `/theme` and `/keybindings` even without a terminal. They then answer
|
|
278
|
-
that they belong to the
|
|
358
|
+
that they belong to the Robota terminal, instead of being unknown.
|
|
279
359
|
- `agent-framework`:
|
|
280
360
|
- `InteractiveSession.getStatusSnapshot()`.
|
|
281
361
|
- The main-thread row previews the last chat message instead of the last record's type.
|
|
@@ -286,7 +366,7 @@
|
|
|
286
366
|
|
|
287
367
|
- **`agent-framework`:** `supportsWorkspaceProjectMutation(platform?)` tells a host in advance whether project writes can be proven to stay under the trusted root. The project writer uses the same answer, so the two cannot disagree.
|
|
288
368
|
- **`agent-cli`:**
|
|
289
|
-
- Where project writes cannot be proven safe, a trusted workspace keeps its sessions in the user session store (
|
|
369
|
+
- Where project writes cannot be proven safe, a trusted workspace keeps its sessions in the user session store (`$PRODUCT_USER_STATE_DIR/sessions`). They are listed for that workspace by their working directory, so `/resume`, the sessions sidebar, `--continue` and `robota session list` find them. Nothing is written under the project root.
|
|
290
370
|
- Before this, every save in a trusted git workspace on macOS was refused, and those surfaces listed nothing.
|
|
291
371
|
- Linux keeps trusted sessions in the project, as before.
|
|
292
372
|
- `robota session list`, `robota usage` and `robota session analyze` report such sessions as user sessions, never as project sessions.
|
|
@@ -407,7 +487,7 @@
|
|
|
407
487
|
stays inside the project (every platform but Linux), none is composed: a checkpoint could be
|
|
408
488
|
neither saved nor restored there.
|
|
409
489
|
- `agent-command` (patch): where a session has no checkpoints, `/rewind` says why: a restricted
|
|
410
|
-
workspace is told to run `robota trust --yes` and restart
|
|
490
|
+
workspace is told to run `robota trust --yes` and restart Robota, and a host that cannot write
|
|
411
491
|
the project safely says so. `/rewind list` reports this as a failed command instead of throwing.
|
|
412
492
|
- `agent-framework` (minor): a checkpoint operation on a session without a store throws
|
|
413
493
|
`EditCheckpointsUnavailableError`, whose `reason` is `host-cannot-write-project`,
|
|
@@ -442,7 +522,7 @@
|
|
|
442
522
|
under. `sandboxApprovalFor` is exported.
|
|
443
523
|
- `agent-subagent-runner` (minor): `ISubagentWorkerComposition` takes an optional `createSandbox`. The
|
|
444
524
|
worker builds that sandbox once and hands the same instance to `createTools` and to the session.
|
|
445
|
-
- `agent-cli` (patch):
|
|
525
|
+
- `agent-cli` (patch): Robota's worker composition builds the OS sandbox through `createSandbox`, so
|
|
446
526
|
a child-process subagent approves what its parent approves.
|
|
447
527
|
|
|
448
528
|
### Patch Changes
|
|
@@ -587,7 +667,7 @@
|
|
|
587
667
|
The tool reaches only files inside the workspace whose path does not look like it holds secrets
|
|
588
668
|
(`.env*`, `~/.ssh`, keys and credentials), and it does not exist in a turn a peer's message started.
|
|
589
669
|
- The receiving operator approves every file. A received file is kept as an inert copy (mode 0600)
|
|
590
|
-
under
|
|
670
|
+
under `$PRODUCT_USER_STATE_DIR/peer-files/<sender>/`. It is never run and never placed in the model's context.
|
|
591
671
|
The conversation is told only its name, size and sha256. A name that leaves that directory is
|
|
592
672
|
refused, a symbolic link is never written through, and nothing is overwritten.
|
|
593
673
|
- Transfers travel on a channel of their own (a separate connection on this host, a separate data
|
|
@@ -720,9 +800,9 @@
|
|
|
720
800
|
session on an earlier version cannot confirm, so its messages are refused; both sessions need this
|
|
721
801
|
version to message each other.
|
|
722
802
|
|
|
723
|
-
- ec5e477: Add a credential store port (`ICredentialStore` in `agent-core`) and keep the CLI's secrets behind it: the OS keychain through the optional `@napi-rs/keyring` binding (macOS Keychain, Windows Credential Manager, Linux Secret Service), else an owner-only file under
|
|
803
|
+
- ec5e477: Add a credential store port (`ICredentialStore` in `agent-core`) and keep the CLI's secrets behind it: the OS keychain through the optional `@napi-rs/keyring` binding (macOS Keychain, Windows Credential Manager, Linux Secret Service), else an owner-only file under `$PRODUCT_USER_STATE_DIR/credentials`. The backend is chosen at first use, recorded, and named by `/remote-control status`; a recorded keychain that stops working fails closed instead of degrading to the file.
|
|
724
804
|
|
|
725
|
-
The remote-control host identity key moves into the store. The old
|
|
805
|
+
The remote-control host identity key moves into the store. The old `$PRODUCT_USER_STATE_DIR/remote-host-identity.json` may have been copied by backups or dotfile sync, so it is not carried over: on the first run after upgrading a new host key is generated, the old file is removed, and the operator is told once that trusted devices must pair again.
|
|
726
806
|
|
|
727
807
|
- 18b52cc: Built-in commands are offered to the model deliberately, each described for the model, and never
|
|
728
808
|
with a trust, credential or permission-widening action.
|
|
@@ -873,7 +953,7 @@
|
|
|
873
953
|
with an advisor. Sending history to a destination (provider type and endpoint host) the main model
|
|
874
954
|
does not already use needs a one-time consent per destination, kept in the user settings file; a
|
|
875
955
|
refusal is remembered for the session. The organization's `allowedProviders` applies, and
|
|
876
|
-
`
|
|
956
|
+
`PRODUCT_DISABLE_ADVISOR=1` turns it off completely. In-process subagents inherit the advisor, bound
|
|
877
957
|
to their own conversation; child-process subagents do not get it.
|
|
878
958
|
|
|
879
959
|
**`@robota-sdk/agent-framework` is `major` for one reason: `ICommandHostSessionAccess` gains a
|
|
@@ -910,8 +990,8 @@
|
|
|
910
990
|
construction alongside `allow` and `deny`.
|
|
911
991
|
- **Never auto-approved, bypass included:** removing a critical path with `rm`/`rmdir` (the root, a
|
|
912
992
|
top-level directory, home, the working directory or a parent), and a modify-class write into
|
|
913
|
-
`.git`, `.
|
|
914
|
-
Files inside an isolated worktree (
|
|
993
|
+
`.git`, `.Robota`, `.claude`, `.agents`, `.mcp.json`, `.gitconfig`, `.npmrc` or a shell rc file.
|
|
994
|
+
Files inside an isolated worktree (`$PRODUCT_PROJECT_STATE_DIR/worktrees/<name>/…`) are ordinary files. With no
|
|
915
995
|
approver attached, an ask is a denial.
|
|
916
996
|
- **A ceiling is checked before bypass and before any ask.** A subagent's `inherit-allowlist` ceiling
|
|
917
997
|
is now the parent's _effective_ rules, read live at spawn: settings, preset lists and command
|
|
@@ -1205,7 +1285,7 @@
|
|
|
1205
1285
|
`createModelCommandToolProjection`, and `buildPromptWithFileReferences` for SDK consumers.
|
|
1206
1286
|
|
|
1207
1287
|
To preserve the previous identifiers, pass `modelCommandToolPrefix: 'robota_command_'` and
|
|
1208
|
-
`promptFileReferenceTag: '
|
|
1288
|
+
`promptFileReferenceTag: 'PRODUCT_file_references'` in session options, or pass those values to
|
|
1209
1289
|
the projection and prompt-format helpers. The Robota product profile supplies both values, so
|
|
1210
1290
|
the Robota CLI keeps its existing model tool names and prompt enclosure.
|
|
1211
1291
|
|
|
@@ -1326,10 +1406,10 @@
|
|
|
1326
1406
|
- 4078a72: Model fallback chain. `--fallback-model a,b` (or the `fallbackModel` settings array; the flag wins) names up to three models a turn moves to when its model is overloaded, unavailable or failing on the server. An entry is a provider profile, `profile:model`, a bare model on the primary's provider, or `default`. The move happens only before any output has streamed, lasts for the current turn, and is shown as a system note; entries that cannot be built are passed over and entries outside the organization's `allowedProviders` are dropped with a notice. `FallbackProvider` in agent-framework implements it over the session's provider; `IChatOptions` gains `executionId`, `onModelFallback` and `preserveContextWindow`, `IAIProvider` gains optional `resolveModelRoute`, and the execution loop emits a `provider_fallback` event and attributes requests, call observations, committed replies, the response cache and usage to the model that answered. A turn that ran on more than one model records per-model `modelShares` on its usage observation, which personal usage reports split by model and provider. A `/provider` switch keeps the chain, read again for the new primary.
|
|
1327
1407
|
- af2f2ad: `/cd <directory>` continues the conversation in another directory.
|
|
1328
1408
|
|
|
1329
|
-
- **A move is a new session in the target directory.** In the TUI,
|
|
1409
|
+
- **A move is a new session in the target directory.** In the TUI, Robota saves a copy of the
|
|
1330
1410
|
conversation where the target's session store will find it, ends the current run through its
|
|
1331
1411
|
normal end-of-life flow, and starts again in the target directory resuming that copy. The target's
|
|
1332
|
-
settings, trust decision, tools, skills and `AGENTS.md` apply, exactly as if
|
|
1412
|
+
settings, trust decision, tools, skills and `AGENTS.md` apply, exactly as if Robota had been
|
|
1333
1413
|
launched there. The process boundary makes the move atomic, so no tool call can straddle it.
|
|
1334
1414
|
- **The system prompt is kept as recorded**, so a provider's prompt cache survives. One appended
|
|
1335
1415
|
`<workspace-move>` message tells the model the new directory, and which project instructions now
|
|
@@ -1427,7 +1507,7 @@
|
|
|
1427
1507
|
- 2711ec6: One broken skill or agent file no longer stops the session.
|
|
1428
1508
|
|
|
1429
1509
|
Skill, command and agent definitions are shared with other hosts through `.claude`, and those hosts
|
|
1430
|
-
define fields of their own. The frontmatter decoder now validates only the fields
|
|
1510
|
+
define fields of their own. The frontmatter decoder now validates only the fields Robota owns and
|
|
1431
1511
|
ignores the rest (nested `metadata` entries included); a malformed value of an owned field is still
|
|
1432
1512
|
refused. A refused file is skipped with a single warning and still claims its name, so a
|
|
1433
1513
|
lower-priority definition cannot stand in for it. An empty `argument-hint` reads as no hint. When
|
|
@@ -1475,7 +1555,7 @@
|
|
|
1475
1555
|
project/user definitions > injected > built-in. `AgentDefinitionLoader` now dedupes within that tier
|
|
1476
1556
|
(first wins). Absent ⇒ unchanged behavior.
|
|
1477
1557
|
- **`@robota-sdk/agent-transport` / `@robota-sdk/agent-transport-tui`** — forward the optional
|
|
1478
|
-
`agentDefinitions` through the headless and TUI channels so every
|
|
1558
|
+
`agentDefinitions` through the headless and TUI channels so every Robota surface carries the seam.
|
|
1479
1559
|
- **`@robota-sdk/agent-cli`** — `robota`'s identity (branding, provider surface, presets,
|
|
1480
1560
|
`packs: [codingPack]`, base command modules, injected transports/runners/subagent factory) is declared as
|
|
1481
1561
|
data in a product profile and folded by `assembleProduct`. The coding command modules (`/shell`,
|
|
@@ -1578,7 +1658,7 @@
|
|
|
1578
1658
|
every `packages/*/src` production tree.
|
|
1579
1659
|
- 4b76cfa: NEUT-005 (wave 2): restore an actionable context-capacity hint at the surface tier, neutrally. The zero-dependency `agent-core` layer emits a product-neutral hard-capacity notice and exposes the `IAgentConfig.contextCapacityHint` seam (wave 1). This wave wires that seam end-to-end without baking product vocabulary into a neutral library:
|
|
1580
1660
|
|
|
1581
|
-
- `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the
|
|
1661
|
+
- `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the agent configuration factory, making the core seam reachable from the consuming layer.
|
|
1582
1662
|
- `agent-framework`: new `deriveContextCapacityHint(commandModules)` derives the concrete remediation wording from the surface's OWN registered command set (names a registered `compact` command → `"Run /compact and retry."`; `undefined` when none, leaving the neutral core default). It is applied automatically in interactive session assembly across the TUI, print, and `--serve` surfaces.
|
|
1583
1663
|
- `agent-cli`: the default command set registers `/compact`, so end users regain the actionable hint.
|
|
1584
1664
|
- `agent-interface-transport`: reworded the `'allow-project'` permission comment so it no longer hardcodes a storage path (the location is owned by the consuming layer), matching the `agent-session` twin.
|
|
@@ -1591,7 +1671,7 @@
|
|
|
1591
1671
|
constructor-injectable with the previous bilingual/dev set as the documented default; session-name
|
|
1592
1672
|
sanitizer is Unicode-aware (non-Latin titles preserved).
|
|
1593
1673
|
- 90e7a10: The default background observer warning code and exported `OBSERVER_FAILURE_WARNING_CODE` value
|
|
1594
|
-
change from `
|
|
1674
|
+
change from `PRODUCT_BACKGROUND_OBSERVER_FAILURE` to `BACKGROUND_OBSERVER_FAILURE`. Hosts matching
|
|
1595
1675
|
the old warning code should match the new neutral code or provide `observerFailureWarningCode` in
|
|
1596
1676
|
their background manager or session options. The Robota CLI supplies its existing code explicitly
|
|
1597
1677
|
across print, goal, serve, MCP, and TUI sessions.
|
|
@@ -1996,7 +2076,7 @@
|
|
|
1996
2076
|
|
|
1997
2077
|
- **Preset system (PRESET-001~017):** new `@robota-sdk/agent-preset` package layering framework
|
|
1998
2078
|
assembly options into named, selectable profiles (`default`, `autonomous-builder`, `careful-reviewer`,
|
|
1999
|
-
`neutral-executor`) plus user-authored external presets loaded from
|
|
2079
|
+
`neutral-executor`) plus user-authored external presets loaded from `$PRODUCT_USER_STATE_DIR/presets/*.json`.
|
|
2000
2080
|
- **Live preset switching:** `/preset` command (list + active marker + switch) and a TUI active-preset
|
|
2001
2081
|
display. Switching live re-applies permission posture, model/effort, persona, command-module
|
|
2002
2082
|
selection, parallel-subagents gating, and a self-verification system-prompt section via the single
|
|
@@ -2217,7 +2297,7 @@
|
|
|
2217
2297
|
|
|
2218
2298
|
### Patch Changes
|
|
2219
2299
|
|
|
2220
|
-
- Refresh package docs and
|
|
2300
|
+
- Refresh package docs and Robota.io content for the beta 57 feature set.
|
|
2221
2301
|
- Updated dependencies
|
|
2222
2302
|
- @robota-sdk/agent-core@3.0.0-beta.58
|
|
2223
2303
|
- @robota-sdk/agent-executor@3.0.0-beta.58
|
package/README.md
CHANGED
|
@@ -14,8 +14,8 @@ It has three main entry points:
|
|
|
14
14
|
one configuration, for headless and multi-session hosts.
|
|
15
15
|
|
|
16
16
|
The package has no React dependency, and it never imports a concrete provider: you create the
|
|
17
|
-
provider (for example from `@robota-sdk/agent-provider-anthropic`) and pass it in. The
|
|
18
|
-
(`@robota-sdk/agent-cli`) is a
|
|
17
|
+
provider (for example from `@robota-sdk/agent-provider-anthropic`) and pass it in. The configured CLI
|
|
18
|
+
(`@robota-sdk/agent-cli`) is a maintained agent interface built on this package.
|
|
19
19
|
|
|
20
20
|
For walkthroughs, see the [SDK guide](../../content/guide/sdk.md) and
|
|
21
21
|
[Building agents](../../content/guide/building-agents.md).
|
|
@@ -26,7 +26,7 @@ For walkthroughs, see the [SDK guide](../../content/guide/sdk.md) and
|
|
|
26
26
|
npm install @robota-sdk/agent-framework @robota-sdk/agent-provider-anthropic
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
Requires Node.js 22.12 or later. `InteractiveSession` and `createQuery` work with any
|
|
29
|
+
Requires Node.js 22.12 or later. `InteractiveSession` and `createQuery` work with any provider
|
|
30
30
|
package given a `model`; without one they use the settings files, or Anthropic's default model.
|
|
31
31
|
|
|
32
32
|
## Quick start
|
|
@@ -230,7 +230,7 @@ const session = runtime.createSession({ permissionMode: 'plan' });
|
|
|
230
230
|
|
|
231
231
|
`buildRuntimeSession()` is the one place a session is built from resolved options, and
|
|
232
232
|
`startRuntimeHost()` adds transport start/stop and a bounded shutdown on top of it; the CLI's
|
|
233
|
-
|
|
233
|
+
`<cli-name> --serve` uses both. `SessionPool` keeps several live sessions for a runtime that serves more
|
|
234
234
|
than one client. Headless output is available through `createHeadlessRunner` and
|
|
235
235
|
`createHeadlessTransport`, and `createProgrammaticAgent` drives a session from code.
|
|
236
236
|
|
|
@@ -378,15 +378,60 @@ that supports snapshots, `shutdown()` stores the sandbox snapshot ID, and resumi
|
|
|
378
378
|
| Self-hosting verification | `planSelfHostingVerification`, `transitionSelfHostingLoop` |
|
|
379
379
|
|
|
380
380
|
Bundle plugins use the Claude Code plugin layout: a directory with `.claude-plugin/plugin.json`
|
|
381
|
-
(`name
|
|
382
|
-
server configuration and agent definitions.
|
|
381
|
+
(`name` is required; `version` and `description` are optional) that can contribute skills,
|
|
382
|
+
commands, hooks, MCP server configuration and agent definitions. The loader selects the source
|
|
383
|
+
recorded in `installed_plugins.json`, validates its cache location and refuses invalid or missing
|
|
384
|
+
selected sources. Without a registry, a single cached revision is supported; multiple revisions
|
|
385
|
+
require an explicit installation record and are reported as `revision-unselected`. Cache directory
|
|
386
|
+
sorting never selects an execution source. Missing manifest versions remain absent. Enablement
|
|
387
|
+
checks both the installed identity and the manifest name, so renaming a manifest cannot bypass a
|
|
388
|
+
disabled installation. MCP dispatch revalidates this selection; other component lifetimes remain
|
|
389
|
+
owned by their host execution surfaces.
|
|
390
|
+
|
|
391
|
+
The loader also exposes a versioned `IContributionDescriptor` on each loaded bundle. It binds
|
|
392
|
+
installed identity, cache revision and source location to namespaced contributions and required
|
|
393
|
+
host capabilities without importing contributor code or exposing MCP credential values. A
|
|
394
|
+
supported declaration still requires host admission. Agent names without execution definitions
|
|
395
|
+
are unavailable; unconsumed custom component paths and invalid transports carry compatibility
|
|
396
|
+
diagnostics. The descriptor records host ownership of active-call policy; it does not establish
|
|
397
|
+
live retirement behavior for every component kind.
|
|
398
|
+
|
|
399
|
+
The documented MCP declaration subset supports `mcpServers` as a plugin-relative `./` JSON path,
|
|
400
|
+
an inline server map, or an ordered array of either. The default `.mcp.json` is read first; later
|
|
401
|
+
declarations replace whole server entries, with each winning entry retaining its declaring file.
|
|
402
|
+
Paths are checked against the selected installed revision, including symlinks. Unsupported paths
|
|
403
|
+
and malformed declarations produce value-free compatibility codes. Binary MCP bundles are not
|
|
404
|
+
supported by this adapter. See the [foreign manifest reference](https://code.claude.com/docs/en/plugins-reference).
|
|
405
|
+
|
|
406
|
+
CLI and app startup route these definitions through the existing `plugin` MCP source tier, with
|
|
407
|
+
`plugin-name:server-name` identities, ordinary precedence, workspace trust, approval and host stdio
|
|
408
|
+
authority. Inspection never connects. `${CLAUDE_PLUGIN_ROOT}` resolves to the selected plugin root;
|
|
409
|
+
other environment materialization remains owned by the MCP definition layer. Startup honors the
|
|
410
|
+
current disable overlay. Before each MCP call the host rereads enablement and the selected source;
|
|
411
|
+
disable, uninstall, source replacement or changed trust refuses new dispatch. Already dispatched
|
|
412
|
+
calls settle with their real outcomes. Fresh startup reuses durable approvals only when their
|
|
413
|
+
source identity and trust still match; a new revision cannot silently replace an in-flight tool.
|
|
414
|
+
|
|
415
|
+
The documented MCP declaration subset supports `mcpServers` as a plugin-relative `./` JSON path,
|
|
416
|
+
an inline server map, or an ordered array of either. The default `.mcp.json` is read first; later
|
|
417
|
+
declarations replace whole server entries, with each winning entry retaining its declaring file.
|
|
418
|
+
Paths are checked against the selected installed revision, including symlinks. Unsupported paths
|
|
419
|
+
and malformed declarations produce value-free compatibility codes. Binary MCP bundles are not
|
|
420
|
+
supported by this adapter. See the [foreign manifest reference](https://code.claude.com/docs/en/plugins-reference).
|
|
421
|
+
|
|
422
|
+
CLI and app startup route these definitions through the existing `plugin` MCP source tier, with
|
|
423
|
+
`plugin-name:server-name` identities, ordinary precedence, workspace trust, approval and host stdio
|
|
424
|
+
authority. Inspection never connects. `${CLAUDE_PLUGIN_ROOT}` resolves to the selected plugin root;
|
|
425
|
+
other environment materialization remains owned by the MCP definition layer. Startup honors the
|
|
426
|
+
current disable overlay; active-chain update/disable and restored-work revalidation still require
|
|
427
|
+
their separate lifecycle implementation.
|
|
383
428
|
|
|
384
429
|
## Settings
|
|
385
430
|
|
|
386
431
|
Settings are JSON files merged in the order the host gives them, later layers winning.
|
|
387
|
-
`$ENV:NAME` values in provider credentials are replaced with the environment variable. The
|
|
388
|
-
CLI reads
|
|
389
|
-
|
|
432
|
+
`$ENV:NAME` values in provider credentials are replaced with the environment variable. The configured
|
|
433
|
+
CLI reads `$PRODUCT_USER_STATE_DIR/settings.json`, `~/.claude/settings.json`, `$PRODUCT_PROJECT_STATE_DIR/settings.json`,
|
|
434
|
+
`$PRODUCT_PROJECT_STATE_DIR/settings.local.json`, `.claude/settings.json` and `.claude/settings.local.json`, in that
|
|
390
435
|
order; project files are read only in a trusted project.
|
|
391
436
|
|
|
392
437
|
```json
|
|
@@ -433,4 +478,4 @@ examples (no provider credentials needed).
|
|
|
433
478
|
|
|
434
479
|
## License
|
|
435
480
|
|
|
436
|
-
|
|
481
|
+
This package is dual-licensed under the [GNU AGPL-3.0](../../LICENSE) or a [commercial license](../../COMMERCIAL.md). See [LICENSING.md](../../LICENSING.md).
|