@robota-sdk/agent-session 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 +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.88
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- @robota-sdk/agent-core@3.0.0-beta.88
|
|
8
|
+
- @robota-sdk/agent-file-authority@3.0.0-beta.88
|
|
9
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.88
|
|
10
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.88
|
|
11
|
+
|
|
12
|
+
## 3.0.0-beta.87
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- 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.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 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.
|
|
21
|
+
- 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.
|
|
22
|
+
- 7d9cc66: Retain registered tool source attribution in observations and preserve ordered outcome receipts independently of conversation summaries.
|
|
23
|
+
- 7d9cc66: Retain mixed tool observations alongside structured results through live session events and history
|
|
24
|
+
display. The shared app renderer previews inline raster images and keeps resource URIs inert, with
|
|
25
|
+
explicit diagnostics for unsupported media instead of silently dropping it.
|
|
26
|
+
- 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.
|
|
27
|
+
- Updated dependencies
|
|
28
|
+
- Updated dependencies [66af868]
|
|
29
|
+
- Updated dependencies [7d9cc66]
|
|
30
|
+
- Updated dependencies [7d9cc66]
|
|
31
|
+
- Updated dependencies [7d9cc66]
|
|
32
|
+
- Updated dependencies [7d9cc66]
|
|
33
|
+
- Updated dependencies [7d9cc66]
|
|
34
|
+
- Updated dependencies [7d9cc66]
|
|
35
|
+
- Updated dependencies [7d9cc66]
|
|
36
|
+
- Updated dependencies [7d9cc66]
|
|
37
|
+
- @robota-sdk/agent-core@3.0.0-beta.87
|
|
38
|
+
- @robota-sdk/agent-file-authority@3.0.0-beta.87
|
|
39
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.87
|
|
40
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.87
|
|
41
|
+
|
|
3
42
|
## 3.0.0-beta.86
|
|
4
43
|
|
|
5
44
|
### Patch Changes
|
|
@@ -158,7 +197,7 @@
|
|
|
158
197
|
The tool reaches only files inside the workspace whose path does not look like it holds secrets
|
|
159
198
|
(`.env*`, `~/.ssh`, keys and credentials), and it does not exist in a turn a peer's message started.
|
|
160
199
|
- The receiving operator approves every file. A received file is kept as an inert copy (mode 0600)
|
|
161
|
-
under
|
|
200
|
+
under `$PRODUCT_USER_STATE_DIR/peer-files/<sender>/`. It is never run and never placed in the model's context.
|
|
162
201
|
The conversation is told only its name, size and sha256. A name that leaves that directory is
|
|
163
202
|
refused, a symbolic link is never written through, and nothing is overwritten.
|
|
164
203
|
- Transfers travel on a channel of their own (a separate connection on this host, a separate data
|
|
@@ -441,7 +480,7 @@
|
|
|
441
480
|
with an advisor. Sending history to a destination (provider type and endpoint host) the main model
|
|
442
481
|
does not already use needs a one-time consent per destination, kept in the user settings file; a
|
|
443
482
|
refusal is remembered for the session. The organization's `allowedProviders` applies, and
|
|
444
|
-
`
|
|
483
|
+
`PRODUCT_DISABLE_ADVISOR=1` turns it off completely. In-process subagents inherit the advisor, bound
|
|
445
484
|
to their own conversation; child-process subagents do not get it.
|
|
446
485
|
|
|
447
486
|
**`@robota-sdk/agent-framework` is `major` for one reason: `ICommandHostSessionAccess` gains a
|
|
@@ -496,8 +535,8 @@
|
|
|
496
535
|
construction alongside `allow` and `deny`.
|
|
497
536
|
- **Never auto-approved, bypass included:** removing a critical path with `rm`/`rmdir` (the root, a
|
|
498
537
|
top-level directory, home, the working directory or a parent), and a modify-class write into
|
|
499
|
-
`.git`, `.
|
|
500
|
-
Files inside an isolated worktree (
|
|
538
|
+
`.git`, `.Robota`, `.claude`, `.agents`, `.mcp.json`, `.gitconfig`, `.npmrc` or a shell rc file.
|
|
539
|
+
Files inside an isolated worktree (`$PRODUCT_PROJECT_STATE_DIR/worktrees/<name>/…`) are ordinary files. With no
|
|
501
540
|
approver attached, an ask is a denial.
|
|
502
541
|
- **A ceiling is checked before bypass and before any ask.** A subagent's `inherit-allowlist` ceiling
|
|
503
542
|
is now the parent's _effective_ rules, read live at spawn: settings, preset lists and command
|
|
@@ -617,7 +656,7 @@
|
|
|
617
656
|
the session-owned compaction trigger unchanged to PreCompact, PostCompact, logging, and callbacks.
|
|
618
657
|
- 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:
|
|
619
658
|
|
|
620
|
-
- `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the
|
|
659
|
+
- `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the agent configuration factory, making the core seam reachable from the consuming layer.
|
|
621
660
|
- `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.
|
|
622
661
|
- `agent-cli`: the default command set registers `/compact`, so end users regain the actionable hint.
|
|
623
662
|
- `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.
|
|
@@ -860,7 +899,7 @@
|
|
|
860
899
|
### Patch Changes
|
|
861
900
|
|
|
862
901
|
- 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.
|
|
863
|
-
- DQ-AUDIT-006 — error/observability hygiene: replace raw `throw new Error()` on core-service and provider hot paths with typed `
|
|
902
|
+
- 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.
|
|
864
903
|
- 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).
|
|
865
904
|
- Updated dependencies
|
|
866
905
|
- Updated dependencies
|
|
@@ -876,7 +915,7 @@
|
|
|
876
915
|
|
|
877
916
|
- **Preset system (PRESET-001~017):** new `@robota-sdk/agent-preset` package layering framework
|
|
878
917
|
assembly options into named, selectable profiles (`default`, `autonomous-builder`, `careful-reviewer`,
|
|
879
|
-
`neutral-executor`) plus user-authored external presets loaded from
|
|
918
|
+
`neutral-executor`) plus user-authored external presets loaded from `$PRODUCT_USER_STATE_DIR/presets/*.json`.
|
|
880
919
|
- **Live preset switching:** `/preset` command (list + active marker + switch) and a TUI active-preset
|
|
881
920
|
display. Switching live re-applies permission posture, model/effort, persona, command-module
|
|
882
921
|
selection, parallel-subagents gating, and a self-verification system-prompt section via the single
|
|
@@ -1007,7 +1046,7 @@
|
|
|
1007
1046
|
|
|
1008
1047
|
### Patch Changes
|
|
1009
1048
|
|
|
1010
|
-
- Refresh package docs and
|
|
1049
|
+
- Refresh package docs and Robota.io content for the beta 57 feature set.
|
|
1011
1050
|
- Updated dependencies
|
|
1012
1051
|
- @robota-sdk/agent-core@3.0.0-beta.58
|
|
1013
1052
|
|
|
@@ -1400,7 +1439,7 @@
|
|
|
1400
1439
|
|
|
1401
1440
|
- Refactor examples and improve resource management
|
|
1402
1441
|
- Simplified examples from 18+ files to 4 core examples (basic conversation, tool calling, multi-providers, advanced features)
|
|
1403
|
-
- Added proper resource cleanup with `
|
|
1442
|
+
- Added proper resource cleanup with `Robota.close()` method to prevent hanging processes
|
|
1404
1443
|
- Implemented `ToolProviderManager.close()` for proper tool provider cleanup
|
|
1405
1444
|
- Added BaseAIProvider abstract class with common functionality for all AI providers
|
|
1406
1445
|
- 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).
|