@jini-ai/daemon 0.6.3 → 0.6.5

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,3 +1,11 @@
1
+ ## 0.6.5 — 2026-10-14
2
+
3
+ - Express 5 accepted: the optional `express` peer is now `^4.21.0 || ^5.0.0` (1442d875), so an Express 5 host no longer hits ERESOLVE.
4
+
5
+ ## 0.6.4 — 2026-10-13
6
+
7
+ - ACP runs forward the run's `permissionMode` to `attachAcpSession`, so a `bypass` run allows each ACP tool request once and a restricted run rejects it, instead of failing on the first permission request. Peer `@jini-ai/agent-runtime` floor is now `^0.4.10`.
8
+
1
9
  ## 0.6.3 — 2026-10-13
2
10
 
3
11
  - `createAgentExecutor` accepts `codexDisablePlugins` and `piGracefulShutdownMs`; absent, they resolve once from `hostEnv` (`CODEX_DISABLE_PLUGINS`, `PI_GRACEFUL_SHUTDOWN_MS`). Peer `@jini-ai/agent-runtime` floor is now `^0.4.7`.
@@ -158,6 +158,7 @@ interface RunAcpDispatchInput {
158
158
  readonly child: ChildProcess;
159
159
  readonly prompt: string;
160
160
  readonly cwd: string;
161
+ readonly permissionMode: 'bypass' | 'restricted' | undefined;
161
162
  readonly model: string | undefined;
162
163
  readonly modelCatalog?: ModelCatalogSnapshot;
163
164
  readonly imagePaths: readonly string[];
@@ -892,7 +892,7 @@ function wireAcpLifecycle(ctx) {
892
892
  if (event === 'error') {
893
893
  enqueueEmit(() => lifecycle.emit({ runId: runId, input: { event: 'error', data: translateAcpError(payload) } }));
894
894
  }
895
- } }, { cwd: ctx.cwd, ...(ctx.model !== undefined ? { model: ctx.model } : {}), ...(ctx.imagePaths.length > 0 ? { imagePaths: [...ctx.imagePaths] } : {}), ...(ctx.envFormat !== undefined ? { envFormat: ctx.envFormat } : {}),
895
+ } }, { cwd: ctx.cwd, ...(ctx.permissionMode !== undefined ? { permissionMode: ctx.permissionMode } : {}), ...(ctx.model !== undefined ? { model: ctx.model } : {}), ...(ctx.imagePaths.length > 0 ? { imagePaths: [...ctx.imagePaths] } : {}), ...(ctx.envFormat !== undefined ? { envFormat: ctx.envFormat } : {}),
896
896
  // Spread-when-present rather than always: passing `mcpServers: []` is not the same as passing
897
897
  // nothing for every downstream ACP agent, and "no bridge configured" must stay byte-identical
898
898
  // to before this field existed.
@@ -1045,6 +1045,7 @@ export async function runAcpDispatch({ input, deps }) {
1045
1045
  lifecycle: deps.lifecycle,
1046
1046
  prompt: input.prompt,
1047
1047
  cwd: input.cwd,
1048
+ permissionMode: input.permissionMode,
1048
1049
  model: input.model,
1049
1050
  ...(input.modelCatalog ? { modelCatalog: input.modelCatalog } : {}),
1050
1051
  imagePaths: input.imagePaths,
@@ -1013,6 +1013,7 @@ export function createAgentExecutor(requiredArgs, optionalArgs = {}) {
1013
1013
  // sending byte-identical text and never receive the overlay twice.
1014
1014
  prompt: `${overlayDelivery.promptPrefix}${input.prompt}`,
1015
1015
  cwd: input.cwd,
1016
+ permissionMode: input.permissionMode,
1016
1017
  model: input.model,
1017
1018
  modelCatalog,
1018
1019
  imagePaths: input.imagePaths ?? [],
@@ -24,7 +24,7 @@
24
24
  * for why only the VALUE is ever blanked, never the surrounding text.
25
25
  *
26
26
  * Architectural role: `src/assistant` composition-layer adapter, same layer as
27
- * `tool-executor-audit.ts` and `tool-failure-recovery.ts`. Depends only on the Tovu policy
27
+ * `tool-executor-audit.ts` and `tool-failure-recovery.ts`. Depends only on the host policy
28
28
  * adapter over `@jini-ai/diagnostics/redaction/secrets-only` and `@jini-ai/daemon`'s `ToolExecutor` shape.
29
29
  */
30
30
  import type { ToolExecutionResult, ToolExecutor } from "../tool-executor.js";
@@ -24,7 +24,7 @@
24
24
  * for why only the VALUE is ever blanked, never the surrounding text.
25
25
  *
26
26
  * Architectural role: `src/assistant` composition-layer adapter, same layer as
27
- * `tool-executor-audit.ts` and `tool-failure-recovery.ts`. Depends only on the Tovu policy
27
+ * `tool-executor-audit.ts` and `tool-failure-recovery.ts`. Depends only on the host policy
28
28
  * adapter over `@jini-ai/diagnostics/redaction/secrets-only` and `@jini-ai/daemon`'s `ToolExecutor` shape.
29
29
  */
30
30
  /** Matches a minted error ID anywhere in a string — exported for tests and for a later chat-side
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @file The one place Tovu's `ToolExecutor` decorator stack is composed.
2
+ * @file The one place the host's `ToolExecutor` decorator stack is composed.
3
3
  *
4
4
  * The order of these three wrappers is load-bearing in two different directions, and it was
5
5
  * previously spelled out only as an expression inside `agent-daemon-server.ts` — a module that boots
@@ -32,7 +32,7 @@
32
32
  * "completed" row the audit records for the call the transport actually made, losing the remedy
33
33
  * tool's own attempt from the trail entirely.
34
34
  *
35
- * Composed the SAME way for both of Tovu's tool-dispatch surfaces: the agent daemon's delegated-tool
35
+ * Composed the SAME way for both of the host's tool-dispatch surfaces: the agent daemon's delegated-tool
36
36
  * route and BYOK's `byok-tool-surface.ts` (as of 2026-09-06 — previously BYOK hand-assembled its own
37
37
  * second copy of this stack that never wrapped `withReadOnlyToolConstraint`, so a decorator known to
38
38
  * apply to "every read-only gateway" in fact applied to only one of the two; see that file's own
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @file The one place Tovu's `ToolExecutor` decorator stack is composed.
2
+ * @file The one place the host's `ToolExecutor` decorator stack is composed.
3
3
  *
4
4
  * The order of these three wrappers is load-bearing in two different directions, and it was
5
5
  * previously spelled out only as an expression inside `agent-daemon-server.ts` — a module that boots
@@ -32,7 +32,7 @@
32
32
  * "completed" row the audit records for the call the transport actually made, losing the remedy
33
33
  * tool's own attempt from the trail entirely.
34
34
  *
35
- * Composed the SAME way for both of Tovu's tool-dispatch surfaces: the agent daemon's delegated-tool
35
+ * Composed the SAME way for both of the host's tool-dispatch surfaces: the agent daemon's delegated-tool
36
36
  * route and BYOK's `byok-tool-surface.ts` (as of 2026-09-06 — previously BYOK hand-assembled its own
37
37
  * second copy of this stack that never wrapped `withReadOnlyToolConstraint`, so a decorator known to
38
38
  * apply to "every read-only gateway" in fact applied to only one of the two; see that file's own
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jini-ai/daemon",
3
- "version": "0.6.3",
3
+ "version": "0.6.5",
4
4
  "description": "The stateful agent daemon runtime: run lifecycle, durable event-log port, the tool-execution boundary, agent executor, terminal sessions, and routines.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -139,16 +139,16 @@
139
139
  "@types/pg": "8.23.1",
140
140
  "express": "^4.21.0",
141
141
  "@types/express": "^4.17.21",
142
- "@jini-ai/http-kit": "0.4.1",
143
- "@jini-ai/agent-runtime": "^0.4.7",
144
- "@jini-ai/chat": "0.5.8",
145
- "@jini-ai/core": "^0.4.4",
146
- "@jini-ai/platform": "^0.5.5",
142
+ "@jini-ai/http-kit": "0.4.2",
143
+ "@jini-ai/chat": "0.6.2",
144
+ "@jini-ai/core": "^0.4.6",
145
+ "@jini-ai/agent-runtime": "^0.4.11",
146
+ "@jini-ai/platform": "^0.5.7",
147
147
  "@jini-ai/protocol": "^0.4.4",
148
- "@jini-ai/db": "0.3.3"
148
+ "@jini-ai/db": "0.3.4"
149
149
  },
150
150
  "dependencies": {
151
- "@jini-ai/core": "^0.4.4",
151
+ "@jini-ai/core": "^0.4.6",
152
152
  "@jini-ai/protocol": "^0.4.4"
153
153
  },
154
154
  "peerDependencies": {
@@ -159,8 +159,8 @@
159
159
  "@electric-sql/pglite": "0.5.8",
160
160
  "pg": "^8.23.0",
161
161
  "@jini-ai/http-kit": "^0.4.0",
162
- "express": "^4.21.0",
163
- "@jini-ai/agent-runtime": "^0.4.7",
162
+ "express": "^4.21.0 || ^5.0.0",
163
+ "@jini-ai/agent-runtime": "^0.4.10",
164
164
  "@jini-ai/platform": "^0.5.5"
165
165
  },
166
166
  "peerDependenciesMeta": {