@robota-sdk/agent-session 3.0.0-beta.85 → 3.0.0-beta.87
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 +48 -9
- package/README.md +7 -7
- package/dist/node/index.cjs +10 -9
- package/dist/node/index.d.cts +17 -10
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.ts +17 -10
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +10 -9
- package/dist/node/index.js.map +1 -1
- package/package.json +13 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# @robota-sdk/agent-session
|
|
2
2
|
|
|
3
|
+
## 3.0.0-beta.87
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 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.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 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.
|
|
12
|
+
- 7d9cc66: Retain typed resource and audio observations alongside structured tool results through history, durable receipts, recovery, size admission, and session persistence. Preserve opaque resource references without fetching them, project embedded text and explicit unsupported binary/audio diagnostics into provider requests and compaction transcripts, and validate persisted observation shapes on reload.
|
|
13
|
+
- 7d9cc66: Retain registered tool source attribution in observations and preserve ordered outcome receipts independently of conversation summaries.
|
|
14
|
+
- 7d9cc66: Retain mixed tool observations alongside structured results through live session events and history
|
|
15
|
+
display. The shared app renderer previews inline raster images and keeps resource URIs inert, with
|
|
16
|
+
explicit diagnostics for unsupported media instead of silently dropping it.
|
|
17
|
+
- 7d9cc66: Retain registered attribution on refused and interrupted call receipts without replacing the source of actual or recovered settlements, and project undispatched registered calls into live and restored presentation history.
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
- Updated dependencies [66af868]
|
|
20
|
+
- Updated dependencies [7d9cc66]
|
|
21
|
+
- Updated dependencies [7d9cc66]
|
|
22
|
+
- Updated dependencies [7d9cc66]
|
|
23
|
+
- Updated dependencies [7d9cc66]
|
|
24
|
+
- Updated dependencies [7d9cc66]
|
|
25
|
+
- Updated dependencies [7d9cc66]
|
|
26
|
+
- Updated dependencies [7d9cc66]
|
|
27
|
+
- Updated dependencies [7d9cc66]
|
|
28
|
+
- @robota-sdk/agent-core@3.0.0-beta.87
|
|
29
|
+
- @robota-sdk/agent-file-authority@3.0.0-beta.87
|
|
30
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.87
|
|
31
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.87
|
|
32
|
+
|
|
33
|
+
## 3.0.0-beta.86
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- @robota-sdk/agent-core@3.0.0-beta.86
|
|
38
|
+
- @robota-sdk/agent-file-authority@3.0.0-beta.86
|
|
39
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.86
|
|
40
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.86
|
|
41
|
+
|
|
3
42
|
## 3.0.0-beta.85
|
|
4
43
|
|
|
5
44
|
### Minor Changes
|
|
@@ -149,7 +188,7 @@
|
|
|
149
188
|
The tool reaches only files inside the workspace whose path does not look like it holds secrets
|
|
150
189
|
(`.env*`, `~/.ssh`, keys and credentials), and it does not exist in a turn a peer's message started.
|
|
151
190
|
- The receiving operator approves every file. A received file is kept as an inert copy (mode 0600)
|
|
152
|
-
under
|
|
191
|
+
under `$PRODUCT_USER_STATE_DIR/peer-files/<sender>/`. It is never run and never placed in the model's context.
|
|
153
192
|
The conversation is told only its name, size and sha256. A name that leaves that directory is
|
|
154
193
|
refused, a symbolic link is never written through, and nothing is overwritten.
|
|
155
194
|
- Transfers travel on a channel of their own (a separate connection on this host, a separate data
|
|
@@ -432,7 +471,7 @@
|
|
|
432
471
|
with an advisor. Sending history to a destination (provider type and endpoint host) the main model
|
|
433
472
|
does not already use needs a one-time consent per destination, kept in the user settings file; a
|
|
434
473
|
refusal is remembered for the session. The organization's `allowedProviders` applies, and
|
|
435
|
-
`
|
|
474
|
+
`PRODUCT_DISABLE_ADVISOR=1` turns it off completely. In-process subagents inherit the advisor, bound
|
|
436
475
|
to their own conversation; child-process subagents do not get it.
|
|
437
476
|
|
|
438
477
|
**`@robota-sdk/agent-framework` is `major` for one reason: `ICommandHostSessionAccess` gains a
|
|
@@ -487,8 +526,8 @@
|
|
|
487
526
|
construction alongside `allow` and `deny`.
|
|
488
527
|
- **Never auto-approved, bypass included:** removing a critical path with `rm`/`rmdir` (the root, a
|
|
489
528
|
top-level directory, home, the working directory or a parent), and a modify-class write into
|
|
490
|
-
`.git`, `.
|
|
491
|
-
Files inside an isolated worktree (
|
|
529
|
+
`.git`, `.Robota`, `.claude`, `.agents`, `.mcp.json`, `.gitconfig`, `.npmrc` or a shell rc file.
|
|
530
|
+
Files inside an isolated worktree (`$PRODUCT_PROJECT_STATE_DIR/worktrees/<name>/…`) are ordinary files. With no
|
|
492
531
|
approver attached, an ask is a denial.
|
|
493
532
|
- **A ceiling is checked before bypass and before any ask.** A subagent's `inherit-allowlist` ceiling
|
|
494
533
|
is now the parent's _effective_ rules, read live at spawn: settings, preset lists and command
|
|
@@ -608,7 +647,7 @@
|
|
|
608
647
|
the session-owned compaction trigger unchanged to PreCompact, PostCompact, logging, and callbacks.
|
|
609
648
|
- 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:
|
|
610
649
|
|
|
611
|
-
- `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the
|
|
650
|
+
- `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the agent configuration factory, making the core seam reachable from the consuming layer.
|
|
612
651
|
- `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.
|
|
613
652
|
- `agent-cli`: the default command set registers `/compact`, so end users regain the actionable hint.
|
|
614
653
|
- `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.
|
|
@@ -851,7 +890,7 @@
|
|
|
851
890
|
### Patch Changes
|
|
852
891
|
|
|
853
892
|
- DQ-AUDIT-002 — consolidate duplicated domain data onto single owners: one model-pricing SSOT in agent-core (`MODEL_PRICES`/`lookupModelPrice`/`calculateModelCost`/`estimateBlendedCostPer1000`) consumed by agent-command and agent-plugin (drops two embedded/stale price tables); the `len/4` token estimator replaced by core `CONTEXT_ESTIMATE_CHARS_PER_TOKEN`; TUI `TContextState` derived from core `IContextWindowState`; dead pass-through re-exports removed from agent-session.
|
|
854
|
-
- DQ-AUDIT-006 — error/observability hygiene: replace raw `throw new Error()` on core-service and provider hot paths with typed `
|
|
893
|
+
- DQ-AUDIT-006 — error/observability hygiene: replace raw `throw new Error()` on core-service and provider hot paths with typed `AgentRuntimeError` subclasses (`ConfigurationError`/`ValidationError`) so error-handling can branch on category/recoverable; surface fire-and-forget hook failures via `logger.warn` instead of silent `.catch(() => {})`; wire the error-handling plugin's `totalRetries`/`successfulRecoveries` stats to real counters.
|
|
855
894
|
- 576af62: Fix `ConfigurationError: Agent must be fully initialized before changing model configuration` when running `/preset` (or any live model re-apply) on a fresh interactive session before the first message. The Robota agent initialized lazily on the first `run()`, but `setModel` requires full initialization. `Session.applyModelOptions` now awaits the new idempotent `Robota.ensureReady()` before `setModel`, and the preset live-switch path (`applyPresetToSession` → `executePresetCommand`) is async end-to-end. Adds a real cold-session regression test (no mocked Robota).
|
|
856
895
|
- Updated dependencies
|
|
857
896
|
- Updated dependencies
|
|
@@ -867,7 +906,7 @@
|
|
|
867
906
|
|
|
868
907
|
- **Preset system (PRESET-001~017):** new `@robota-sdk/agent-preset` package layering framework
|
|
869
908
|
assembly options into named, selectable profiles (`default`, `autonomous-builder`, `careful-reviewer`,
|
|
870
|
-
`neutral-executor`) plus user-authored external presets loaded from
|
|
909
|
+
`neutral-executor`) plus user-authored external presets loaded from `$PRODUCT_USER_STATE_DIR/presets/*.json`.
|
|
871
910
|
- **Live preset switching:** `/preset` command (list + active marker + switch) and a TUI active-preset
|
|
872
911
|
display. Switching live re-applies permission posture, model/effort, persona, command-module
|
|
873
912
|
selection, parallel-subagents gating, and a self-verification system-prompt section via the single
|
|
@@ -998,7 +1037,7 @@
|
|
|
998
1037
|
|
|
999
1038
|
### Patch Changes
|
|
1000
1039
|
|
|
1001
|
-
- Refresh package docs and
|
|
1040
|
+
- Refresh package docs and Robota.io content for the beta 57 feature set.
|
|
1002
1041
|
- Updated dependencies
|
|
1003
1042
|
- @robota-sdk/agent-core@3.0.0-beta.58
|
|
1004
1043
|
|
|
@@ -1391,7 +1430,7 @@
|
|
|
1391
1430
|
|
|
1392
1431
|
- Refactor examples and improve resource management
|
|
1393
1432
|
- Simplified examples from 18+ files to 4 core examples (basic conversation, tool calling, multi-providers, advanced features)
|
|
1394
|
-
- Added proper resource cleanup with `
|
|
1433
|
+
- Added proper resource cleanup with `Robota.close()` method to prevent hanging processes
|
|
1395
1434
|
- Implemented `ToolProviderManager.close()` for proper tool provider cleanup
|
|
1396
1435
|
- Added BaseAIProvider abstract class with common functionality for all AI providers
|
|
1397
1436
|
- Updated package.json scripts and README documentation for better user experience
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @robota-sdk/agent-session
|
|
2
2
|
|
|
3
|
-
Session lifecycle for the Robota SDK. A `Session` wraps a `
|
|
3
|
+
Session lifecycle for the Robota SDK. A `Session` wraps a `ConversationAgent` agent from
|
|
4
4
|
`@robota-sdk/agent-core` and adds permission-gated tool execution, lifecycle hooks, context-window
|
|
5
5
|
tracking, conversation compaction, session logs and optional persistence.
|
|
6
6
|
|
|
@@ -161,7 +161,7 @@ This API alone does not provide arbitrary-effect recovery or durable Roundtable
|
|
|
161
161
|
|
|
162
162
|
| Export | Kind | Description |
|
|
163
163
|
| ------------------------------------------------------------------------------------------------------------ | ------------------- | ---------------------------------------------------------------------------------------- |
|
|
164
|
-
| `Session` | Class | Wraps `
|
|
164
|
+
| `Session` | Class | Wraps `ConversationAgent` with permissions, hooks, compaction, logging and persistence |
|
|
165
165
|
| `ISessionOptions`, `ISessionRunOptions`, `ISessionShutdownOptions` | Types | Constructor, run and shutdown options |
|
|
166
166
|
| `SessionBusyError`, `TurnClaim` | Classes | The refusal of a concurrent turn, and the identity of the running turn |
|
|
167
167
|
| `PermissionEnforcer` | Class | Tool permission checks, hook execution and output truncation |
|
|
@@ -188,11 +188,11 @@ This API alone does not provide arbitrary-effect recovery or durable Roundtable
|
|
|
188
188
|
|
|
189
189
|
`IContextWindowState` (the `getContextState()` result) is exported by `@robota-sdk/agent-core`.
|
|
190
190
|
|
|
191
|
-
## Session vs
|
|
191
|
+
## Session vs ConversationAgent
|
|
192
192
|
|
|
193
|
-
- **`
|
|
193
|
+
- **`ConversationAgent`** (`agent-core`): the raw agent — conversation, tools and plugins. No permissions, no
|
|
194
194
|
hooks.
|
|
195
|
-
- **`Session`** (this package): `
|
|
195
|
+
- **`Session`** (this package): `ConversationAgent` plus permissions, hooks, compaction, logging and
|
|
196
196
|
persistence. `@robota-sdk/agent-framework` builds its sessions from it.
|
|
197
197
|
|
|
198
198
|
## Persistence
|
|
@@ -241,7 +241,7 @@ checks the conversion on disposable files without touching your sessions.
|
|
|
241
241
|
|
|
242
242
|
## Dependencies
|
|
243
243
|
|
|
244
|
-
- `@robota-sdk/agent-core` —
|
|
244
|
+
- `@robota-sdk/agent-core` — `ConversationAgent`, permissions, hooks and core types
|
|
245
245
|
- `@robota-sdk/agent-interface-session` — the session record and store contracts
|
|
246
246
|
- `@robota-sdk/agent-interface-execution` — background task contracts stored in the session record
|
|
247
247
|
- `@robota-sdk/agent-file-authority` — bounded, root-relative file reads for log payloads
|
|
@@ -253,4 +253,4 @@ checks the conversion on disposable files without touching your sessions.
|
|
|
253
253
|
|
|
254
254
|
## License
|
|
255
255
|
|
|
256
|
-
|
|
256
|
+
This package is dual-licensed under the [GNU AGPL-3.0](../../LICENSE) or a [commercial license](../../COMMERCIAL.md). See [LICENSING.md](../../LICENSING.md).
|