@robota-sdk/agent-framework 3.0.0-beta.83 → 3.0.0-beta.85

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,135 @@
1
1
  # @robota-sdk/agent-framework
2
2
 
3
+ ## 3.0.0-beta.85
4
+
5
+ ### Minor Changes
6
+
7
+ - 193a0bc: `${CLAUDE_SKILL_DIR}` in a skill expands to the absolute folder its `SKILL.md` is in; it used to expand to an empty string. A skill's `` !`command` `` gets `CLAUDE_SKILL_DIR` and `CLAUDE_SESSION_ID` in its environment, so the shell expands them there too (`TShellExecFn` takes an optional `env`). Skills from host folders and a trusted project carry the folder, and bundle-plugin skills and commands record theirs. `ICommand` gains `skillDirectory`, and `IContributionSource` an optional `locate()` that names the absolute path of a root-relative one.
8
+ - 54e2848: `createQuery()` takes `model`, `allowedTools` and `deniedTools`, and the query function has `shutdown()`.
9
+
10
+ - `model` picks the model, so a query works with any provider without a settings file; before, it always asked for Anthropic's default model.
11
+ - `allowedTools` lets named tools (your own `additionalTools`, say) run in the `default` mode without a `permissionHandler`; `deniedTools` are never offered to the model.
12
+ - Calls on one query function run one at a time and each resolves with its own reply. Before, concurrent calls all resolved with the first turn's reply.
13
+ - `await query.shutdown()` ends the query's session; a call still running or waiting rejects, and so does every later one.
14
+
15
+ ### Patch Changes
16
+
17
+ - 4e11579: `runGroupChat` runs on the Roundtable core.
18
+
19
+ `runGroupChat`'s own `while` loop is replaced by a facade over `@robota-sdk/agent-roundtable`'s
20
+ `Roundtable`: one step id becomes one participant, the caller's `selectNextStep` policy is adapted
21
+ into a `TurnSelector`, and the core runs the only turn loop. The public contract
22
+ (`IGroupChatOrchestrationSpec`, `SelectNextStep`, `IGroupChatOrchestratorDeps`,
23
+ `IOrchestrationRunResult`) is unchanged, and so is the behavior it describes: the first speaker,
24
+ threaded whole-transcript prompts, the `maxTurns` bound and its error message and check order, empty
25
+ steps, the STARTED/STEP_STARTED/STEP_COMPLETED/COMPLETED/FAILED event sequence, per-step usage, and
26
+ the original error object thrown on failure — including for inputs the old loop tolerated only
27
+ because it never validated them, such as a non-finite or extremely large `maxTurns` or a step with no
28
+ usable model id.
29
+
30
+ A few differences are deliberate and small: the selector now receives a freshly built history array
31
+ on every call rather than a reference into a mutated one; a duplicate step id keeps only its last
32
+ definition and an empty step id can never be reached (both were already-unreachable edge cases in
33
+ the old loop); and a non-integer `maxTurns` is rounded up for the core's own internal turn ceiling,
34
+ though the selector's own bound check still compares the caller's exact value first. Reported step
35
+ usage comes back as a plain-data copy (same values; undefined-valued keys omitted), and a reading that
36
+ cannot be stored as finite JSON, such as one containing `NaN`, is left out of the step result instead
37
+ of failing the run. Each call keeps a small in-memory operation log for its conversation; it is bounded
38
+ per call and negligible at the default `maxTurns` (the step count).
39
+
40
+ - 3c1967f: Reloading plugins updates the live session's skill routing and model skill catalogue together
41
+ with command completion. Disabled plugins stop being executable after reload, and unreadable
42
+ settings clear the plugin skill snapshot. Hook changes require a new session.
43
+ - 5684612: A bundle plugin skill can use `${CLAUDE_PLUGIN_ROOT}`: it expands to the plugin's folder in the
44
+ skill's body, and `` !`command` `` preprocessing gets it in the environment, as plugin hooks already
45
+ did. Every skill's commands now get `CLAUDE_PLUGIN_ROOT` set (empty outside a plugin), so a value the
46
+ host process carries never stands in for it. A session also loads project plugins, skills and hooks
47
+ alike, only from a folder inside the trusted workspace; trust granted to one repository does not
48
+ extend to a plugin folder elsewhere.
49
+ - 6ee8725: A user settings file that does not parse no longer reads as "no plugin is disabled". Plugin settings
50
+ now refuse to read it: no plugin loads (skills, commands, hooks and themes alike), a plugin command
51
+ such as `/plugin enable` fails instead of rewriting the whole settings file with the plugin keys
52
+ alone, and `robota doctor` reports the plugin check as failed while still inspecting each installed
53
+ plugin. The CLI already refuses to start with such a file; this covers a session started later in
54
+ the same process.
55
+ - 6072e9a: Bundle plugin skills and commands now run. They were listed in the command menu, but typing one
56
+ answered "Unknown command", and the model could neither see nor activate them: the session's skill
57
+ router and the prompt's skill list read only the host's skill roots. A session now also loads the
58
+ skills and commands of the bundle plugins it may load, once, behind the same gates as plugin hooks
59
+ (not in a bare session, project plugins only in a trusted workspace, disabled plugins skipped). A
60
+ session's own skill of the same name wins, then the first plugin to name it.
61
+ - 2e07cad: A subagent and a fork-context skill now start in the permission mode their parent is in at that
62
+ moment. The runtime used to hand them the mode it was built with, so after a switch to `plan` a
63
+ subagent the model started, or a skill it ran in a fork, still ran in the earlier mode and could
64
+ edit. `IInProcessSubagentRunnerDeps` gains the optional `getParentPermissionMode`, which the session
65
+ wires to its live mode; the in-process and child-process runners read it at spawn and fall back to
66
+ `permissionMode` when it is absent.
67
+
68
+ In plan mode the model can no longer run `/workflows create` or `/workflows build`: both save to
69
+ the project, and `create` also runs the workflow. The user can still run them by hand.
70
+
71
+ - Updated dependencies [190f78f]
72
+ - Updated dependencies [41cca13]
73
+ - Updated dependencies [193a0bc]
74
+ - Updated dependencies [ada3841]
75
+ - Updated dependencies [5093a30]
76
+ - Updated dependencies [94b2c87]
77
+ - Updated dependencies [10597b2]
78
+ - Updated dependencies [3ab2eca]
79
+ - @robota-sdk/agent-roundtable@3.0.0-beta.85
80
+ - @robota-sdk/agent-core@3.0.0-beta.85
81
+ - @robota-sdk/agent-interface-command@3.0.0-beta.85
82
+ - @robota-sdk/agent-session@3.0.0-beta.85
83
+ - @robota-sdk/agent-executor@3.0.0-beta.85
84
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.85
85
+ - @robota-sdk/agent-interface-session@3.0.0-beta.85
86
+ - @robota-sdk/agent-interface-session-mobility@3.0.0-beta.85
87
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.85
88
+ - @robota-sdk/agent-tool-defaults@3.0.0-beta.85
89
+ - @robota-sdk/agent-tools@3.0.0-beta.85
90
+ - @robota-sdk/agent-file-authority@3.0.0-beta.85
91
+ - @robota-sdk/agent-interface-analytics@3.0.0-beta.85
92
+
93
+ ## 3.0.0-beta.84
94
+
95
+ ### Minor Changes
96
+
97
+ - e8d70ac: A first run finds a provider, instead of a dead end. `robota --serve` (and the daemon it starts) no
98
+ longer refuses when no provider is configured: it starts in setup mode, and the GUI's conversation area
99
+ shows a "Connect a model provider to start" panel with a "Set up provider" button in place of the
100
+ composer. Answering it configures and swaps in the first provider live, with no restart. A startup
101
+ failure now says why — `robota daemon start --json` and the desktop app's fatal screen report the
102
+ child's own reason instead of a generic "readiness channel closed", and the fatal screen gets a Try
103
+ again button. `trust status --json` and the desktop trust dialog list only sources whose state trust
104
+ would actually change, instead of naming one this platform could not determine; the dialog shows one
105
+ sentence and a collapsed Details section. `robota --serve --open` in an untrusted folder now asks at
106
+ the terminal (trust it, start Restricted, or quit) when someone is there to ask, instead of refusing
107
+ outright.
108
+
109
+ ### Patch Changes
110
+
111
+ - Updated dependencies [c7f213c]
112
+ - Updated dependencies [9f46375]
113
+ - Updated dependencies [9f46375]
114
+ - Updated dependencies [e8d70ac]
115
+ - Updated dependencies [9c6a8db]
116
+ - Updated dependencies [9c6a8db]
117
+ - Updated dependencies [9c6a8db]
118
+ - Updated dependencies [9c6a8db]
119
+ - Updated dependencies [9c6a8db]
120
+ - @robota-sdk/agent-tool-defaults@3.0.0-beta.84
121
+ - @robota-sdk/agent-core@3.0.0-beta.84
122
+ - @robota-sdk/agent-session@3.0.0-beta.84
123
+ - @robota-sdk/agent-interface-session@3.0.0-beta.84
124
+ - @robota-sdk/agent-interface-analytics@3.0.0-beta.84
125
+ - @robota-sdk/agent-tools@3.0.0-beta.84
126
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.84
127
+ - @robota-sdk/agent-interface-command@3.0.0-beta.84
128
+ - @robota-sdk/agent-executor@3.0.0-beta.84
129
+ - @robota-sdk/agent-interface-session-mobility@3.0.0-beta.84
130
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.84
131
+ - @robota-sdk/agent-file-authority@3.0.0-beta.84
132
+
3
133
  ## 3.0.0-beta.83
4
134
 
5
135
  ### Major Changes