@robota-sdk/agent-product 3.0.0-beta.82 → 3.0.0-beta.83

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +309 -0
  2. package/package.json +13 -8
package/CHANGELOG.md ADDED
@@ -0,0 +1,309 @@
1
+ # @robota-sdk/agent-product
2
+
3
+ ## 3.0.0-beta.83
4
+
5
+ ### Patch Changes
6
+
7
+ - 57280bf: Every published package now declares `"engines": { "node": ">=22.12.0" }`. Before, 27 of the 38
8
+ packages declared no floor (`agent-core`, `agent-tools` and every provider among them),
9
+ `agent-session` and `agent-file-authority` declared `>=20.19.0`, and the other nine declared
10
+ `>=22.0.0`, so a consumer on Node 20 saw at most a warning from a transitive dependency.
11
+
12
+ Why 22.12: `agent-cli` and `agent-ui-terminal` need Node 22 through `ink` 7, and the CommonJS entries
13
+ of `agent-tools` and its dependents, `agent-transport`/`node` and its dependents, and
14
+ `agent-ui-terminal` `require()` ESM-only dependencies (`p-limit`, `jose`, `chalk`), which Node 22
15
+ supports unflagged only from 22.12. `engines` is advisory unless the consumer enables `engine-strict`.
16
+
17
+ No code changes: `tsdown` now reads `node22.12.0` as its build target from the field.
18
+
19
+ - 18c0d5c: Every published package now exports `./package.json`, so `require('<package>/package.json')` and
20
+ `import('<package>/package.json', { with: { type: 'json' } })` work instead of failing with
21
+ `ERR_PACKAGE_PATH_NOT_EXPORTED`, and each tarball now ships the package's `CHANGELOG.md`.
22
+ - Updated dependencies [3c81769]
23
+ - Updated dependencies [724fabb]
24
+ - Updated dependencies [997f2fb]
25
+ - Updated dependencies [bfe8ed5]
26
+ - Updated dependencies [e689c8e]
27
+ - Updated dependencies [4241fc5]
28
+ - Updated dependencies [4f49d14]
29
+ - Updated dependencies [7b72344]
30
+ - Updated dependencies [6ae3f28]
31
+ - Updated dependencies [9721162]
32
+ - Updated dependencies [be0e53c]
33
+ - Updated dependencies [57f57f5]
34
+ - Updated dependencies [ba822c1]
35
+ - Updated dependencies [9721162]
36
+ - Updated dependencies [6e6b06b]
37
+ - Updated dependencies [7d77ce4]
38
+ - Updated dependencies [8bd5fac]
39
+ - Updated dependencies [57280bf]
40
+ - Updated dependencies [5033dd9]
41
+ - Updated dependencies [18c0d5c]
42
+ - Updated dependencies [dbd888d]
43
+ - Updated dependencies [1887e54]
44
+ - Updated dependencies [caaab20]
45
+ - Updated dependencies [f01868f]
46
+ - Updated dependencies [e8779c9]
47
+ - Updated dependencies [5a0ee96]
48
+ - @robota-sdk/agent-framework@3.0.0-beta.83
49
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.83
50
+ - @robota-sdk/agent-core@3.0.0-beta.83
51
+ - @robota-sdk/agent-capability-pack@3.0.0-beta.83
52
+ - @robota-sdk/agent-preset@3.0.0-beta.83
53
+
54
+ ## 3.0.0-beta.82
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [c7f9203]
59
+ - @robota-sdk/agent-core@3.0.0-beta.82
60
+ - @robota-sdk/agent-framework@3.0.0-beta.82
61
+ - @robota-sdk/agent-capability-pack@3.0.0-beta.82
62
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.82
63
+ - @robota-sdk/agent-preset@3.0.0-beta.82
64
+
65
+ ## 3.0.0-beta.81
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies [3038eb7]
70
+ - Updated dependencies [02b7452]
71
+ - Updated dependencies [ec5e477]
72
+ - Updated dependencies [007fd90]
73
+ - Updated dependencies [18b52cc]
74
+ - Updated dependencies [9843fe6]
75
+ - @robota-sdk/agent-core@3.0.0-beta.81
76
+ - @robota-sdk/agent-framework@3.0.0-beta.81
77
+ - @robota-sdk/agent-capability-pack@3.0.0-beta.81
78
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.81
79
+ - @robota-sdk/agent-preset@3.0.0-beta.81
80
+
81
+ ## 3.0.0-beta.80
82
+
83
+ ### Minor Changes
84
+
85
+ - 378c585: ARCH-005 Stage S1 — the external product-composition layer. Three new published packages plus a minimal
86
+ `agent-preset` addition:
87
+
88
+ - **`@robota-sdk/agent-capability-pack`** (new) — the additive capability-bundle contract
89
+ (`ICapabilityPack`) and the pure `mergeCapabilityPacks` merger (base ⊕ packs in profile order, with a
90
+ `{ merged, rejected }` conflict channel — never a silent override). The additive analog of
91
+ `agent-preset`; contract + pure fold, no IO.
92
+ - **`@robota-sdk/agent-product`** (new) — the product-assembly kernel. `assembleProduct(profile)` is a pure,
93
+ deterministic, IO-free fold over `IProductProfile` with zero product-specific branching: it resolves
94
+ presets via a per-call instance-scoped registry, merges additive packs, and DELEGATES runtime
95
+ construction to `agent-framework`'s `buildRuntimeSession` seam (never re-implemented). Its neutrality is
96
+ enforced by three mechanical guards (dependency-graph neutrality, purity/no-IO, no product-name
97
+ conditionals), coupling the amended project-structure L129 carve-out to the guards.
98
+ - **`@robota-sdk/pack-coding`** (new) — robota's coding capability as one `ICapabilityPack` (the built-in
99
+ coding tools, the `/shell` + `/editor` command modules, and the coding subagents) — the additive-axis
100
+ proof and robota's first pack.
101
+ - **`@robota-sdk/agent-preset`** — adds `createPresetRegistry`, a per-call instance-scoped resolver that
102
+ never mutates the module-level external-preset global (consumed by `assembleProduct`).
103
+
104
+ `agent-framework` and `agent-core` are unchanged. The CLI is not yet wired to `assembleProduct` (that is
105
+ Stage S2).
106
+
107
+ - 4c5148e: ARCH-005 Stage S2 — `robota` is now expressed as an `IProductProfile` and assembled by `assembleProduct`;
108
+ the hand-wired composition root in `agent-cli` is gone.
109
+
110
+ - **`@robota-sdk/agent-product`** — provider construction returns IN-KERNEL. `assembleProduct` builds the
111
+ provider from `providerDefinitions` + the shell's already-resolved `providerSettings` via agent-core's
112
+ pure `createProviderFromConfig`; `provider` is now an OPTIONAL injected override. Both are optional, so a
113
+ Mode A profile can carry only `providerDefinitions`. The fold stays pure and IO-free — every
114
+ settings/env/file read still happens in the shell. Adds `IAssembledProduct.buildRuntimeOptions`, the pure
115
+ overlay `buildRuntime` delegates through, and `IAssembledProduct.providerDefinitions`.
116
+ **Breaking for pre-release consumers:** `IProductProfile.providerDefinitions` is now required and
117
+ `IProductProfile.provider` / `IAssembledProduct.provider` are now optional.
118
+ - **`@robota-sdk/agent-framework`** — a scoped, additive session seam: `agentDefinitions` on
119
+ `TInteractiveSessionOptions` / `ICreateSessionOptions`, composed into the built-in agent tier ahead of
120
+ `BUILT_IN_AGENTS`, so capability-pack subagents actually reach the runtime. Precedence: discovered
121
+ project/user definitions > injected > built-in. `AgentDefinitionLoader` now dedupes within that tier
122
+ (first wins). Absent ⇒ unchanged behavior.
123
+ - **`@robota-sdk/agent-transport` / `@robota-sdk/agent-transport-tui`** — forward the optional
124
+ `agentDefinitions` through the headless and TUI channels so every robota surface carries the seam.
125
+ - **`@robota-sdk/agent-cli`** — `robota`'s identity (branding, provider surface, presets,
126
+ `packs: [codingPack]`, base command modules, injected transports/runners/subagent factory) is declared as
127
+ data in a product profile and folded by `assembleProduct`. The coding command modules (`/shell`,
128
+ `/editor`) now come from `pack-coding` rather than the base set, so the pack is load-bearing. What remains
129
+ in the CLI is product-shell only: arg parsing, settings/file IO, terminal notices, first-run/init/
130
+ `--configure`, memory + session-resume UX, and print/serve/TUI mode dispatch.
131
+
132
+ End-user `robota` behavior is unchanged in substance — the assembled command-module set, provider surface,
133
+ tool set, subagent roster, and preset resolution all match the pre-change assembly — with one accepted
134
+ cosmetic delta: `/shell` and `/editor` now appear at the END of `/help` output and of the slash-command
135
+ autocomplete popup rather than mid-list, because they arrive from `pack-coding` and both surfaces render in
136
+ module-insertion order. Same commands, same behavior, different position.
137
+
138
+ - 37af5dc: ARCH-006 + ARCH-007 — the capability-pack TOOL axis reaches parity with the command and subagent axes,
139
+ and `robota` consumes the composition kernel's RUNTIME SEAM instead of only its materials.
140
+
141
+ - **`@robota-sdk/agent-framework` (ARCH-006)** — the default tool set is no longer hard-coded.
142
+ `createSession` accepts `defaultTools`, which REPLACES the `createDefaultTools()` tier (`[]` suppresses
143
+ it entirely) — the tool-axis mirror of NEUT-003's `builtInAgents` seam for subagents. The assembled
144
+ list `defaultTools ⊕ additionalTools ⊕ goalTool` is now **deduplicated by tool name, first occurrence
145
+ wins**, the same rule `AgentDefinitionLoader` applies within the subagent built-in tier. So a
146
+ contributed tool with a NEW name is additive, a contributed tool that mirrors a framework default is
147
+ deduped rather than listed twice, and a product can hand its whole tool surface to its capability
148
+ packs. A name collision keeps the framework default and drops the contribution: the default tier is
149
+ built WITH the session context (`cwd` supplies `agent-tools`' working-directory path guard, plus the
150
+ sandbox client and retrieval adapter) and an already-constructed contribution carries none of it, so
151
+ replacement is expressible only through the explicit `defaultTools` seam — never as a side effect of a
152
+ collision. The edit-checkpoint wrap now covers the assembled set, so a pack-contributed `Write`/`Edit`
153
+ is checkpointed too. Option threaded through `ICreateSessionOptions` / `IInitOptions` /
154
+ `IInteractiveSessionStandardOptions`. Absent `defaultTools` and absent a duplicate name, every existing
155
+ path is byte-identical.
156
+ - **`@robota-sdk/agent-product` (ARCH-007)** — `buildRuntimeOptions` no longer overwrites a
157
+ caller-supplied `commandModules`. A shell that has already narrowed the merged `base ⊕ packs` superset
158
+ (as `robota` does with its preset's enabled/disabled delta) keeps that selection; the assembled set is
159
+ overlaid only when the caller left it unset — the same rule `permissionMode` already followed.
160
+ - **`@robota-sdk/agent-cli` (ARCH-007)** — `startCli` now routes through
161
+ `product.buildRuntimeOptions(...)`. The shell resolves its own session inputs and the kernel lays the
162
+ product-owned materials on top: the packs' tools (`additionalTools`), the packs' subagents
163
+ (`agentDefinitions`), and the default preset's permission posture when `--permission-mode` left it
164
+ unset. The hand-threaded `product.subagents` path and the three per-surface
165
+ `args.permissionMode ?? resolvedPreset.permissionMode` expressions are gone — every surface binds to
166
+ the one kernel result.
167
+
168
+ End-user `robota` behavior is unchanged: the assembled command-module set, provider surface, tool set,
169
+ subagent roster, preset resolution, and permission posture all match the pre-change assembly.
170
+
171
+ - d157f4b: ARCH-008 — `robota` resolves presets through the composition kernel's per-call registry, so there is one
172
+ preset resolution path instead of two.
173
+
174
+ - **`@robota-sdk/agent-product`** — `IProductProfile` gains two optional fields. `presetRegistry` lets a
175
+ consumer hand in an `IPresetRegistry` it already built (`createPresetRegistry`); when present the
176
+ assembler ADOPTS that instance instead of building a second, equivalent one, so `product.presets` is
177
+ that very object. This is the seam for a shell that must resolve a preset BEFORE it can build its
178
+ profile — a preset can carry the `model` and `agentName` the profile is itself constructed from, so
179
+ "resolve, then assemble" is a real ordering constraint. `presetContext` carries the override layers
180
+ (`cliOverrides` / `explicit`) used when resolving `defaultPresetId`, so `product.defaultPreset` is the
181
+ caller's full resolution rather than a variant missing its overrides. R8 is unaffected: the registry is
182
+ still instance-scoped and no module-level state is read or mutated. Both fields are optional and the
183
+ existing `presets` + `defaultPresetId` shape behaves exactly as before.
184
+ - **`@robota-sdk/agent-cli`** — `resolveCliPreset` is replaced by `resolveShellPreset(externalPresets,
185
+ args, settingsPreset)`, which builds the per-call registry, resolves over it, and returns
186
+ `{ registry, presetId, context, options }` as one value. `createRobotaProfile` takes that whole value,
187
+ so the shell cannot hand the kernel a registry, id, or override context other than the ones it actually
188
+ resolved with. `robota`'s startup path no longer reads `agent-preset`'s module-global resolver; that
189
+ registry remains only as the in-session `/preset` DISCOVERY surface, which is executed inside the
190
+ session and has no handle on the assembled product. Both surfaces are fed by the one
191
+ `loadExternalPresets()` call, so they cannot disagree.
192
+
193
+ End-user `robota` behavior is unchanged: the same preset resolves to the same options, external presets
194
+ in `~/.robota/presets/*.json` remain visible to both `--preset <id>` and `/preset`, and the assembled
195
+ command-module set, provider surface, tool set, subagent roster, and permission posture are untouched.
196
+
197
+ - 2d3b2c0: ARCH-027 makes product and capability-pack composition contracts exhaustive and observable. Capability
198
+ pack merging now preserves accepted `id`/`title`/`description` metadata, rejects later duplicate pack ids
199
+ atomically through `rejectedPacks`, and includes the contributor `packId` on every capability collision.
200
+ `assembleProduct` projects all three result channels losslessly.
201
+
202
+ This is a beta-line breaking contract correction: `IProductProfile.providerOverride` is removed because
203
+ provider-name selection belongs to the shell's settings resolution, and capability rejection values now
204
+ require `packId`.
205
+
206
+ - 90e7a10: The default background observer warning code and exported `OBSERVER_FAILURE_WARNING_CODE` value
207
+ change from `ROBOTA_BACKGROUND_OBSERVER_FAILURE` to `BACKGROUND_OBSERVER_FAILURE`. Hosts matching
208
+ the old warning code should match the new neutral code or provide `observerFailureWarningCode` in
209
+ their background manager or session options. The Robota CLI supplies its existing code explicitly
210
+ across print, goal, serve, MCP, and TUI sessions.
211
+
212
+ ### Patch Changes
213
+
214
+ - 4f3c075: Assemble complete, verified package generations before switching build output; preserve the previous generation on build failure and pack only verified regular-file images. Include copied CLI web assets in affected-build ordering and artifact transfer. Preserve the CLI version in managed build paths. Public runtime contracts remain compatible (patch).
215
+ - Updated dependencies [9c19c50]
216
+ - Updated dependencies [7b6234c]
217
+ - Updated dependencies [5307f8a]
218
+ - Updated dependencies [b462ee7]
219
+ - Updated dependencies [08a9bd6]
220
+ - Updated dependencies [37b4bd7]
221
+ - Updated dependencies [818f0c8]
222
+ - Updated dependencies [4eea54b]
223
+ - Updated dependencies [1698be4]
224
+ - Updated dependencies [a5961c9]
225
+ - Updated dependencies [9368d00]
226
+ - Updated dependencies [d4189b9]
227
+ - Updated dependencies [9edae52]
228
+ - Updated dependencies [4078a72]
229
+ - Updated dependencies [4c73a0b]
230
+ - Updated dependencies [af2f2ad]
231
+ - Updated dependencies [267af5f]
232
+ - Updated dependencies [196a900]
233
+ - Updated dependencies [f336838]
234
+ - Updated dependencies [34e50f0]
235
+ - Updated dependencies [722e88a]
236
+ - Updated dependencies [a5cc36e]
237
+ - Updated dependencies [d23c848]
238
+ - Updated dependencies [b70fa3d]
239
+ - Updated dependencies [2711ec6]
240
+ - Updated dependencies [4dd45cc]
241
+ - Updated dependencies [378c585]
242
+ - Updated dependencies [4c5148e]
243
+ - Updated dependencies [37af5dc]
244
+ - Updated dependencies [807d161]
245
+ - Updated dependencies [fec722f]
246
+ - Updated dependencies [e82215f]
247
+ - Updated dependencies [52b7346]
248
+ - Updated dependencies [9db63ee]
249
+ - Updated dependencies [b078afa]
250
+ - Updated dependencies [2ebff01]
251
+ - Updated dependencies [9db63ee]
252
+ - Updated dependencies [2ebff01]
253
+ - Updated dependencies [2d3b2c0]
254
+ - Updated dependencies [b078afa]
255
+ - Updated dependencies [2d3b2c0]
256
+ - Updated dependencies [baa6863]
257
+ - Updated dependencies [2d3b2c0]
258
+ - Updated dependencies [2d3b2c0]
259
+ - Updated dependencies [3a8876b]
260
+ - Updated dependencies [4772067]
261
+ - Updated dependencies [7b85767]
262
+ - Updated dependencies [0f98419]
263
+ - Updated dependencies [64ba748]
264
+ - Updated dependencies [9fbab1b]
265
+ - Updated dependencies [d312755]
266
+ - Updated dependencies [a009f5b]
267
+ - Updated dependencies [1e3f91a]
268
+ - Updated dependencies [4f3c075]
269
+ - Updated dependencies [475e085]
270
+ - Updated dependencies [e477440]
271
+ - Updated dependencies [9dcb5da]
272
+ - Updated dependencies [a95ca85]
273
+ - Updated dependencies [b6d14ce]
274
+ - Updated dependencies [0382a51]
275
+ - Updated dependencies [93d061d]
276
+ - Updated dependencies [39554a1]
277
+ - Updated dependencies [d28430a]
278
+ - Updated dependencies [bed26ea]
279
+ - Updated dependencies [fe48835]
280
+ - Updated dependencies [1e40b5b]
281
+ - Updated dependencies [7669851]
282
+ - Updated dependencies [4b76cfa]
283
+ - Updated dependencies [d9bd9ec]
284
+ - Updated dependencies [8865acf]
285
+ - Updated dependencies [90e7a10]
286
+ - Updated dependencies [fcb0da3]
287
+ - Updated dependencies [07b627f]
288
+ - Updated dependencies [d0de5b2]
289
+ - Updated dependencies [9665c6e]
290
+ - Updated dependencies [44393be]
291
+ - Updated dependencies [c7fa299]
292
+ - Updated dependencies [5134b3b]
293
+ - Updated dependencies [dd444c1]
294
+ - Updated dependencies [1f57e7f]
295
+ - Updated dependencies [833afe1]
296
+ - Updated dependencies [d6b9404]
297
+ - Updated dependencies [7863b16]
298
+ - Updated dependencies [fde558e]
299
+ - Updated dependencies [db5c439]
300
+ - Updated dependencies [4a01a87]
301
+ - Updated dependencies [cbee54e]
302
+ - Updated dependencies [5c5ff23]
303
+ - Updated dependencies [9814afc]
304
+ - Updated dependencies [242a644]
305
+ - @robota-sdk/agent-framework@3.0.0-beta.80
306
+ - @robota-sdk/agent-core@3.0.0-beta.80
307
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.80
308
+ - @robota-sdk/agent-capability-pack@3.0.0-beta.80
309
+ - @robota-sdk/agent-preset@3.0.0-beta.80
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robota-sdk/agent-product",
3
- "version": "3.0.0-beta.82",
3
+ "version": "3.0.0-beta.83",
4
4
  "description": "The product-assembly kernel for the Robota SDK: assembleProduct — a pure, IO-free fold over IProductProfile that delegates runtime construction to agent-framework",
5
5
  "type": "module",
6
6
  "main": "dist/node/index.js",
@@ -28,7 +28,8 @@
28
28
  "default": "./dist/node/index.cjs"
29
29
  }
30
30
  }
31
- }
31
+ },
32
+ "./package.json": "./package.json"
32
33
  },
33
34
  "repository": {
34
35
  "type": "git",
@@ -38,15 +39,19 @@
38
39
  "bugs": {
39
40
  "url": "https://github.com/woojubb/robota/issues"
40
41
  },
42
+ "engines": {
43
+ "node": ">=22.12.0"
44
+ },
41
45
  "files": [
42
- "dist"
46
+ "dist",
47
+ "CHANGELOG.md"
43
48
  ],
44
49
  "dependencies": {
45
- "@robota-sdk/agent-capability-pack": "3.0.0-beta.82",
46
- "@robota-sdk/agent-core": "3.0.0-beta.82",
47
- "@robota-sdk/agent-framework": "3.0.0-beta.82",
48
- "@robota-sdk/agent-interface-transport": "3.0.0-beta.82",
49
- "@robota-sdk/agent-preset": "3.0.0-beta.82"
50
+ "@robota-sdk/agent-capability-pack": "3.0.0-beta.83",
51
+ "@robota-sdk/agent-core": "3.0.0-beta.83",
52
+ "@robota-sdk/agent-framework": "3.0.0-beta.83",
53
+ "@robota-sdk/agent-interface-transport": "3.0.0-beta.83",
54
+ "@robota-sdk/agent-preset": "3.0.0-beta.83"
50
55
  },
51
56
  "devDependencies": {
52
57
  "rimraf": "^5.0.10",