@robota-sdk/agent-session 3.0.0-beta.86 → 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 CHANGED
@@ -1,5 +1,35 @@
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
+
3
33
  ## 3.0.0-beta.86
4
34
 
5
35
  ### Patch Changes
@@ -158,7 +188,7 @@
158
188
  The tool reaches only files inside the workspace whose path does not look like it holds secrets
159
189
  (`.env*`, `~/.ssh`, keys and credentials), and it does not exist in a turn a peer's message started.
160
190
  - The receiving operator approves every file. A received file is kept as an inert copy (mode 0600)
161
- under `~/.robota/peer-files/<sender>/`. It is never run and never placed in the model's context.
191
+ under `$PRODUCT_USER_STATE_DIR/peer-files/<sender>/`. It is never run and never placed in the model's context.
162
192
  The conversation is told only its name, size and sha256. A name that leaves that directory is
163
193
  refused, a symbolic link is never written through, and nothing is overwritten.
164
194
  - Transfers travel on a channel of their own (a separate connection on this host, a separate data
@@ -441,7 +471,7 @@
441
471
  with an advisor. Sending history to a destination (provider type and endpoint host) the main model
442
472
  does not already use needs a one-time consent per destination, kept in the user settings file; a
443
473
  refusal is remembered for the session. The organization's `allowedProviders` applies, and
444
- `ROBOTA_DISABLE_ADVISOR=1` turns it off completely. In-process subagents inherit the advisor, bound
474
+ `PRODUCT_DISABLE_ADVISOR=1` turns it off completely. In-process subagents inherit the advisor, bound
445
475
  to their own conversation; child-process subagents do not get it.
446
476
 
447
477
  **`@robota-sdk/agent-framework` is `major` for one reason: `ICommandHostSessionAccess` gains a
@@ -496,8 +526,8 @@
496
526
  construction alongside `allow` and `deny`.
497
527
  - **Never auto-approved, bypass included:** removing a critical path with `rm`/`rmdir` (the root, a
498
528
  top-level directory, home, the working directory or a parent), and a modify-class write into
499
- `.git`, `.robota`, `.claude`, `.agents`, `.mcp.json`, `.gitconfig`, `.npmrc` or a shell rc file.
500
- Files inside an isolated worktree (`.robota/worktrees/<name>/…`) are ordinary files. With no
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
501
531
  approver attached, an ask is a denial.
502
532
  - **A ceiling is checked before bypass and before any ask.** A subagent's `inherit-allowlist` ceiling
503
533
  is now the parent's _effective_ rules, read live at spawn: settings, preset lists and command
@@ -617,7 +647,7 @@
617
647
  the session-owned compaction trigger unchanged to PreCompact, PostCompact, logging, and callbacks.
618
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:
619
649
 
620
- - `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the Robota agent config (`buildRobota`), making the core seam reachable from the consuming layer.
650
+ - `agent-session`: `ISessionOptions.contextCapacityHint` is forwarded into the agent configuration factory, making the core seam reachable from the consuming layer.
621
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.
622
652
  - `agent-cli`: the default command set registers `/compact`, so end users regain the actionable hint.
623
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.
@@ -860,7 +890,7 @@
860
890
  ### Patch Changes
861
891
 
862
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.
863
- - DQ-AUDIT-006 — error/observability hygiene: replace raw `throw new Error()` on core-service and provider hot paths with typed `RobotaError` 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.
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.
864
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).
865
895
  - Updated dependencies
866
896
  - Updated dependencies
@@ -876,7 +906,7 @@
876
906
 
877
907
  - **Preset system (PRESET-001~017):** new `@robota-sdk/agent-preset` package layering framework
878
908
  assembly options into named, selectable profiles (`default`, `autonomous-builder`, `careful-reviewer`,
879
- `neutral-executor`) plus user-authored external presets loaded from `~/.robota/presets/*.json`.
909
+ `neutral-executor`) plus user-authored external presets loaded from `$PRODUCT_USER_STATE_DIR/presets/*.json`.
880
910
  - **Live preset switching:** `/preset` command (list + active marker + switch) and a TUI active-preset
881
911
  display. Switching live re-applies permission posture, model/effort, persona, command-module
882
912
  selection, parallel-subagents gating, and a self-verification system-prompt section via the single
@@ -1007,7 +1037,7 @@
1007
1037
 
1008
1038
  ### Patch Changes
1009
1039
 
1010
- - Refresh package docs and robota.io content for the beta 57 feature set.
1040
+ - Refresh package docs and Robota.io content for the beta 57 feature set.
1011
1041
  - Updated dependencies
1012
1042
  - @robota-sdk/agent-core@3.0.0-beta.58
1013
1043
 
@@ -1400,7 +1430,7 @@
1400
1430
 
1401
1431
  - Refactor examples and improve resource management
1402
1432
  - Simplified examples from 18+ files to 4 core examples (basic conversation, tool calling, multi-providers, advanced features)
1403
- - Added proper resource cleanup with `robota.close()` method to prevent hanging processes
1433
+ - Added proper resource cleanup with `Robota.close()` method to prevent hanging processes
1404
1434
  - Implemented `ToolProviderManager.close()` for proper tool provider cleanup
1405
1435
  - Added BaseAIProvider abstract class with common functionality for all AI providers
1406
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 `Robota` agent from
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 `Robota` with permissions, hooks, compaction, logging and persistence |
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 Robota
191
+ ## Session vs ConversationAgent
192
192
 
193
- - **`Robota`** (`agent-core`): the raw agent — conversation, tools and plugins. No permissions, no
193
+ - **`ConversationAgent`** (`agent-core`): the raw agent — conversation, tools and plugins. No permissions, no
194
194
  hooks.
195
- - **`Session`** (this package): `Robota` plus permissions, hooks, compaction, logging and
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` — the `Robota` agent, permissions, hooks and core types
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
- Robota is dual-licensed under the [GNU AGPL-3.0](../../LICENSE) or a [commercial license](../../COMMERCIAL.md). See [LICENSING.md](../../LICENSING.md).
256
+ This package is dual-licensed under the [GNU AGPL-3.0](../../LICENSE) or a [commercial license](../../COMMERCIAL.md). See [LICENSING.md](../../LICENSING.md).