@robota-sdk/agent-interface-execution 3.0.0-beta.81 → 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 +170 -0
  2. package/package.json +9 -4
package/CHANGELOG.md ADDED
@@ -0,0 +1,170 @@
1
+ # @robota-sdk/agent-interface-execution
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 [e689c8e]
23
+ - Updated dependencies [be0e53c]
24
+ - Updated dependencies [8bd5fac]
25
+ - Updated dependencies [57280bf]
26
+ - Updated dependencies [5033dd9]
27
+ - Updated dependencies [18c0d5c]
28
+ - Updated dependencies [dbd888d]
29
+ - Updated dependencies [1887e54]
30
+ - @robota-sdk/agent-core@3.0.0-beta.83
31
+
32
+ ## 3.0.0-beta.82
33
+
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies [c7f9203]
37
+ - @robota-sdk/agent-core@3.0.0-beta.82
38
+
39
+ ## 3.0.0-beta.81
40
+
41
+ ### Patch Changes
42
+
43
+ - Updated dependencies [3038eb7]
44
+ - Updated dependencies [02b7452]
45
+ - Updated dependencies [ec5e477]
46
+ - @robota-sdk/agent-core@3.0.0-beta.81
47
+
48
+ ## 3.0.0-beta.80
49
+
50
+ ### Major Changes
51
+
52
+ - 5307f8a: Discriminate `IBackgroundTaskResult` by kind, the same way `TBackgroundTaskRequest` already is:
53
+ `exitCode`/`signalCode` exist only on the `process` member and `usage` only on the `agent` member,
54
+ instead of being optional-and-unreachable on every kind. `IBackgroundTaskResult<K>` narrows to the
55
+ kind-specific member; called with no type argument it is still the full union, which is what
56
+ `IBackgroundTaskState.result` continues to hold (that field stays undiscriminated — a later change).
57
+ `ISubagentJobResult` is now derived as `Omit<IBackgroundTaskResult<'agent'>, 'kind'>` rather than a
58
+ hand-maintained `Omit<IBackgroundTaskResult, 'kind' | 'exitCode' | 'signalCode'>`.
59
+
60
+ `IBackgroundTaskHandle` gains the same kind parameter as `IBackgroundTaskStart`: a runner declared
61
+ for kind `K` resolves its handle's `result` to `IBackgroundTaskResult<K>`, so a caller that starts a
62
+ known-kind runner gets a correctly-narrowed result with no cast, and reading a cross-kind field on it
63
+ is a compile error. Consumers reading `state.result` through the generic (kind-erased) manager or
64
+ task-state path are unaffected in behavior, but a `.exitCode`/`.signalCode`/`.usage` read there must
65
+ now narrow on the result's own `kind` first, since the fallback default keeps `IBackgroundTaskResult`
66
+ as the full union rather than the previously flat, always-present shape.
67
+
68
+ `agent-session`'s session-record decoder now rejects a persisted result carrying a field outside its
69
+ own kind (e.g. an `'agent'` result with `exitCode`) as corrupt, reported at that field's own path —
70
+ the same corruption-reporting style the taskId/kind identity check already uses.
71
+
72
+ **Breaking for `@robota-sdk/agent-interface-execution` and `@robota-sdk/agent-executor`**: code that
73
+ read `exitCode`/`signalCode`/`usage` off an unnarrowed `IBackgroundTaskResult`, or that implemented
74
+ `IBackgroundTaskHandle`/a custom runner without specifying its kind parameter, needs to narrow on
75
+ `result.kind` (or specify the kind parameter) before those fields are visible again.
76
+
77
+ - b462ee7: Discriminate `IBackgroundTaskState` by kind, the same way `TBackgroundTaskRequest` and (as of the
78
+ prior change) `TBackgroundTaskResult` already are. Fields only one runner ever produces now live
79
+ only on that kind's member instead of being optional-and-cross-kind-reachable on every kind:
80
+
81
+ - `agent`-only: `agentType`, `isolation`, `resumeSessionId`, `promptPreview`, and the
82
+ worktree-isolation fields (`worktreePath`, `branchName`, `worktreeStatus`, `worktreeNextAction`,
83
+ `worktreeBaseRevision`, `parentWorktreeStatus`).
84
+ - `scheduled`-only: `schedule`, `nextFireAt`.
85
+ - Every kind except `agent`: `commandPreview` (a process command, an MCP tool-invocation summary, or
86
+ a schedule's shell command / wake instruction).
87
+ - `state.result` is now `IBackgroundTaskResult<K>` — correlated with `state.kind`, not the free
88
+ full-result union.
89
+
90
+ `pid`, `logPath`, and `transcriptPath` stay on the shared base rather than becoming agent- or
91
+ process-exclusive: the runner handle SPI already reports them for whichever runner's process
92
+ happens to produce them, and a subagent run via the worktree/child-process runner carries a `pid`
93
+ exactly as a `process`-kind task does. `timeoutReason` also stays base — session restore sets
94
+ `'stale_worker'` on any non-terminal, non-rearmable task regardless of kind, not only agent ones.
95
+
96
+ `IBackgroundTaskState<K>` narrows to the kind-specific member; called with no type argument it is
97
+ still the full union. The session-record decoder (`agent-session`) now rejects a persisted task
98
+ state carrying a field outside its own kind as corrupt, reported at that field's own path, the same
99
+ way it already rejects a `state.result` whose kind disagrees with `state.kind`.
100
+
101
+ **Breaking for `@robota-sdk/agent-interface-execution` and `@robota-sdk/agent-executor`**: code that
102
+ read a kind-specific field (e.g. `state.agentType`, `state.schedule`, `state.commandPreview`) off an
103
+ unnarrowed `IBackgroundTaskState` needs to narrow on `state.kind` first, since the fallback default
104
+ no longer carries every field on every kind. `agent-session`, `agent-framework`, and `agent-command`
105
+ land the corresponding narrowing at every read site the type change touched; no runtime behavior
106
+ changes there beyond the state decoder's new corruption checks.
107
+
108
+ ### Minor Changes
109
+
110
+ - 9c19c50: `/fork [name] [--same-dir]` copies the live conversation into a background session.
111
+
112
+ The session writes a copy of its own record under a fresh id — messages, system prompt, tool schemas
113
+ and full history, and deliberately not the sandbox snapshot, goal, plan or branch — then spawns a
114
+ background job carrying only `resumeSessionId`. The child restores that record itself, so no
115
+ conversation crosses the child-process boundary and the worker start payload's key set is unchanged.
116
+ The background panel gains an `attach` control that switches the terminal onto the forked session; it
117
+ is a view switch, never a merge, and a missing record or a terminal task is refused with the task's
118
+ own status.
119
+
120
+ **`@robota-sdk/agent-framework` is `major` for one reason: `ICommandHostSessionAccess` gains a
121
+ required member.** `forkSession({ name? })` is not optional, so an external implementation of that
122
+ role port stops compiling until it adds the method. Every other change in this set is additive:
123
+
124
+ - `agent-interface-execution` — `TExecutionControl` gains `'attach'`.
125
+ - `agent-interface-command` — `TCommandUiIntent` gains `{ type: 'switch-session'; sessionId }`.
126
+ - `agent-subagent-runner` — `ISubagentWorkerComposition` gains the optional `openSessionStore`, and
127
+ the worker resumes a record when the job names one. A composition that registers no store and
128
+ receives no `resumeSessionId` behaves exactly as before.
129
+ - `agent-framework` also gains the fork-record builder, `SessionTurnMemory`, and
130
+ `IAgentBackgroundTaskRequest.resumeSessionId?`; `loadSessionRecord` now returns
131
+ `restoredSystemPrompt`, which makes a record field that was written and never read take effect on
132
+ restore.
133
+ - `agent-executor`, `agent-command`, `agent-transport-tui`, `agent-cli` — the spawn input, the
134
+ `/fork` module and the attach control that carry it to the surface.
135
+
136
+ ### Patch Changes
137
+
138
+ - 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).
139
+ - Updated dependencies [7b6234c]
140
+ - Updated dependencies [4eea54b]
141
+ - Updated dependencies [1698be4]
142
+ - Updated dependencies [d4189b9]
143
+ - Updated dependencies [9edae52]
144
+ - Updated dependencies [4078a72]
145
+ - Updated dependencies [4c73a0b]
146
+ - Updated dependencies [196a900]
147
+ - Updated dependencies [f336838]
148
+ - Updated dependencies [34e50f0]
149
+ - Updated dependencies [722e88a]
150
+ - Updated dependencies [d23c848]
151
+ - Updated dependencies [fec722f]
152
+ - Updated dependencies [2d3b2c0]
153
+ - Updated dependencies [4772067]
154
+ - Updated dependencies [9fbab1b]
155
+ - Updated dependencies [a009f5b]
156
+ - Updated dependencies [4f3c075]
157
+ - Updated dependencies [475e085]
158
+ - Updated dependencies [e477440]
159
+ - Updated dependencies [9dcb5da]
160
+ - Updated dependencies [a95ca85]
161
+ - Updated dependencies [b6d14ce]
162
+ - Updated dependencies [0382a51]
163
+ - Updated dependencies [93d061d]
164
+ - Updated dependencies [39554a1]
165
+ - Updated dependencies [d28430a]
166
+ - Updated dependencies [07b627f]
167
+ - Updated dependencies [d0de5b2]
168
+ - Updated dependencies [d6b9404]
169
+ - Updated dependencies [9814afc]
170
+ - @robota-sdk/agent-core@3.0.0-beta.80
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robota-sdk/agent-interface-execution",
3
- "version": "3.0.0-beta.81",
3
+ "version": "3.0.0-beta.83",
4
4
  "description": "Execution contract interfaces for the Robota SDK — background tasks, job groups, subagent jobs and execution workspaces",
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,11 +39,15 @@
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-core": "3.0.0-beta.81"
50
+ "@robota-sdk/agent-core": "3.0.0-beta.83"
46
51
  },
47
52
  "devDependencies": {
48
53
  "rimraf": "^5.0.10",