diff --git a/.changeset/dev-ready-timeout.md b/.changeset/dev-ready-timeout.md deleted file mode 100644 index f02e99de..00000000 --- a/.changeset/dev-ready-timeout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@dawn-ai/cli": patch ---- - -`dawn dev` startup readiness timeout is now configurable via `DAWN_DEV_READY_TIMEOUT_MS` (default unchanged at 5s). Also de-flakes the dev-command disposal test that raced child startup against the readiness window in CI. diff --git a/.changeset/execution-sandbox.md b/.changeset/execution-sandbox.md deleted file mode 100644 index 700dd1c6..00000000 --- a/.changeset/execution-sandbox.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@dawn-ai/sandbox": patch -"@dawn-ai/workspace": patch -"@dawn-ai/core": patch -"@dawn-ai/cli": patch -"@dawn-ai/langchain": patch ---- - -Add an opt-in execution sandbox: a provider-agnostic `SandboxProvider` contract -with a Docker reference (`dockerSandbox`), giving each conversation thread a -hard-isolated workspace (filesystem + shell + network). Enable via -`dawn.config.ts` `sandbox: { provider: dockerSandbox({ image }) }`; without it, -behavior is unchanged. Adds a typed `config()` helper. When sandboxed, the -materialized agent cache is bypassed so tools bind per-thread. Honest scope: -Docker's boundary (not a microVM); `allow`-mode network denylist is best-effort -in the Docker reference. New package `@dawn-ai/sandbox` (+ `@dawn-ai/sandbox/testing` -`fakeSandbox` and a provider conformance kit). diff --git a/.changeset/tool-approval-gating.md b/.changeset/tool-approval-gating.md deleted file mode 100644 index ec1bb10a..00000000 --- a/.changeset/tool-approval-gating.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@dawn-ai/sdk": patch -"@dawn-ai/permissions": patch -"@dawn-ai/core": patch -"@dawn-ai/cli": patch ---- - -Per-tool approval gating: `agent({ tools: { approve: ["deployProd"] } })` makes any named tool require a HITL permission prompt per call (`kind: "tool"` interrupt). Decisions persist name-level under the reserved `tool` key in `.dawn/permissions.json` (exact-name matching); pre-approve via `permissions.allow.tool`. `dawn check` validates `approve` names and warns on overlap with the internally-gated workspace tools, `deny`, and the unsupported `task` case. diff --git a/examples/chat/server/CHANGELOG.md b/examples/chat/server/CHANGELOG.md index e8b6e248..df08177c 100644 --- a/examples/chat/server/CHANGELOG.md +++ b/examples/chat/server/CHANGELOG.md @@ -1,5 +1,17 @@ # @dawn-example/chat-server +## 0.0.12 + +### Patch Changes + +- Updated dependencies [9d115de] +- Updated dependencies [4ede7b8] +- Updated dependencies [1d51b75] + - @dawn-ai/cli@0.8.6 + - @dawn-ai/core@0.8.6 + - @dawn-ai/langchain@0.8.6 + - @dawn-ai/sdk@0.8.6 + ## 0.0.11 ### Patch Changes diff --git a/examples/chat/server/package.json b/examples/chat/server/package.json index aacb685b..878f4637 100644 --- a/examples/chat/server/package.json +++ b/examples/chat/server/package.json @@ -1,7 +1,7 @@ { "name": "@dawn-example/chat-server", "private": true, - "version": "0.0.11", + "version": "0.0.12", "type": "module", "scripts": { "dev": "node node_modules/@dawn-ai/cli/dist/index.js dev --port 3001", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index d5a607db..a4b0f6bf 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,29 @@ # @dawn-ai/cli +## 0.8.6 + +### Patch Changes + +- 9d115de: `dawn dev` startup readiness timeout is now configurable via `DAWN_DEV_READY_TIMEOUT_MS` (default unchanged at 5s). Also de-flakes the dev-command disposal test that raced child startup against the readiness window in CI. +- 4ede7b8: Add an opt-in execution sandbox: a provider-agnostic `SandboxProvider` contract + with a Docker reference (`dockerSandbox`), giving each conversation thread a + hard-isolated workspace (filesystem + shell + network). Enable via + `dawn.config.ts` `sandbox: { provider: dockerSandbox({ image }) }`; without it, + behavior is unchanged. Adds a typed `config()` helper. When sandboxed, the + materialized agent cache is bypassed so tools bind per-thread. Honest scope: + Docker's boundary (not a microVM); `allow`-mode network denylist is best-effort + in the Docker reference. New package `@dawn-ai/sandbox` (+ `@dawn-ai/sandbox/testing` + `fakeSandbox` and a provider conformance kit). +- 1d51b75: Per-tool approval gating: `agent({ tools: { approve: ["deployProd"] } })` makes any named tool require a HITL permission prompt per call (`kind: "tool"` interrupt). Decisions persist name-level under the reserved `tool` key in `.dawn/permissions.json` (exact-name matching); pre-approve via `permissions.allow.tool`. `dawn check` validates `approve` names and warns on overlap with the internally-gated workspace tools, `deny`, and the unsupported `task` case. +- Updated dependencies [4ede7b8] +- Updated dependencies [1d51b75] + - @dawn-ai/core@0.8.6 + - @dawn-ai/langchain@0.8.6 + - @dawn-ai/permissions@0.8.6 + - @dawn-ai/langgraph@0.8.6 + - @dawn-ai/memory@0.8.6 + - @dawn-ai/sqlite-storage@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 47d98ac8..7d3c55b1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/cli", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/config-biome/CHANGELOG.md b/packages/config-biome/CHANGELOG.md index fa4aeb3c..9383eac7 100644 --- a/packages/config-biome/CHANGELOG.md +++ b/packages/config-biome/CHANGELOG.md @@ -1,5 +1,7 @@ # @dawn-ai/config-biome +## 0.8.6 + ## 0.8.5 ## 0.8.4 diff --git a/packages/config-biome/package.json b/packages/config-biome/package.json index eb0cf46e..4af02773 100644 --- a/packages/config-biome/package.json +++ b/packages/config-biome/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/config-biome", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/config-typescript/CHANGELOG.md b/packages/config-typescript/CHANGELOG.md index c4ba2a7a..82dfd99f 100644 --- a/packages/config-typescript/CHANGELOG.md +++ b/packages/config-typescript/CHANGELOG.md @@ -1,5 +1,7 @@ # @dawn-ai/config-typescript +## 0.8.6 + ## 0.8.5 ## 0.8.4 diff --git a/packages/config-typescript/package.json b/packages/config-typescript/package.json index 9e260468..f562ebbd 100644 --- a/packages/config-typescript/package.json +++ b/packages/config-typescript/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/config-typescript", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 34057195..f7628d2d 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,26 @@ # @dawn-ai/core +## 0.8.6 + +### Patch Changes + +- 4ede7b8: Add an opt-in execution sandbox: a provider-agnostic `SandboxProvider` contract + with a Docker reference (`dockerSandbox`), giving each conversation thread a + hard-isolated workspace (filesystem + shell + network). Enable via + `dawn.config.ts` `sandbox: { provider: dockerSandbox({ image }) }`; without it, + behavior is unchanged. Adds a typed `config()` helper. When sandboxed, the + materialized agent cache is bypassed so tools bind per-thread. Honest scope: + Docker's boundary (not a microVM); `allow`-mode network denylist is best-effort + in the Docker reference. New package `@dawn-ai/sandbox` (+ `@dawn-ai/sandbox/testing` + `fakeSandbox` and a provider conformance kit). +- 1d51b75: Per-tool approval gating: `agent({ tools: { approve: ["deployProd"] } })` makes any named tool require a HITL permission prompt per call (`kind: "tool"` interrupt). Decisions persist name-level under the reserved `tool` key in `.dawn/permissions.json` (exact-name matching); pre-approve via `permissions.allow.tool`. `dawn check` validates `approve` names and warns on overlap with the internally-gated workspace tools, `deny`, and the unsupported `task` case. +- Updated dependencies [4ede7b8] +- Updated dependencies [1d51b75] + - @dawn-ai/workspace@0.8.6 + - @dawn-ai/sdk@0.8.6 + - @dawn-ai/permissions@0.8.6 + - @dawn-ai/sqlite-storage@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 334abeda..2a7dd158 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/core", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/create-dawn-app/CHANGELOG.md b/packages/create-dawn-app/CHANGELOG.md index f43bc756..8e1785b5 100644 --- a/packages/create-dawn-app/CHANGELOG.md +++ b/packages/create-dawn-app/CHANGELOG.md @@ -1,5 +1,11 @@ # create-dawn-ai-app +## 0.8.6 + +### Patch Changes + +- @dawn-ai/devkit@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/create-dawn-app/package.json b/packages/create-dawn-app/package.json index 98710ad1..4a75e187 100644 --- a/packages/create-dawn-app/package.json +++ b/packages/create-dawn-app/package.json @@ -1,6 +1,6 @@ { "name": "create-dawn-ai-app", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/devkit/CHANGELOG.md b/packages/devkit/CHANGELOG.md index af606b17..42a9b0e0 100644 --- a/packages/devkit/CHANGELOG.md +++ b/packages/devkit/CHANGELOG.md @@ -1,5 +1,7 @@ # @dawn-ai/devkit +## 0.8.6 + ## 0.8.5 ## 0.8.4 diff --git a/packages/devkit/package.json b/packages/devkit/package.json index 9eeed8f1..a10a6805 100644 --- a/packages/devkit/package.json +++ b/packages/devkit/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/devkit", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/evals/CHANGELOG.md b/packages/evals/CHANGELOG.md index 4c8d279d..acacc0bd 100644 --- a/packages/evals/CHANGELOG.md +++ b/packages/evals/CHANGELOG.md @@ -1,5 +1,11 @@ # @dawn-ai/evals +## 0.8.6 + +### Patch Changes + +- @dawn-ai/testing@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/evals/package.json b/packages/evals/package.json index 3e0efe15..66a8b07f 100644 --- a/packages/evals/package.json +++ b/packages/evals/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/evals", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/langchain/CHANGELOG.md b/packages/langchain/CHANGELOG.md index 23db58c7..d7365492 100644 --- a/packages/langchain/CHANGELOG.md +++ b/packages/langchain/CHANGELOG.md @@ -1,5 +1,24 @@ # @dawn-ai/langchain +## 0.8.6 + +### Patch Changes + +- 4ede7b8: Add an opt-in execution sandbox: a provider-agnostic `SandboxProvider` contract + with a Docker reference (`dockerSandbox`), giving each conversation thread a + hard-isolated workspace (filesystem + shell + network). Enable via + `dawn.config.ts` `sandbox: { provider: dockerSandbox({ image }) }`; without it, + behavior is unchanged. Adds a typed `config()` helper. When sandboxed, the + materialized agent cache is bypassed so tools bind per-thread. Honest scope: + Docker's boundary (not a microVM); `allow`-mode network denylist is best-effort + in the Docker reference. New package `@dawn-ai/sandbox` (+ `@dawn-ai/sandbox/testing` + `fakeSandbox` and a provider conformance kit). +- Updated dependencies [4ede7b8] +- Updated dependencies [1d51b75] + - @dawn-ai/workspace@0.8.6 + - @dawn-ai/core@0.8.6 + - @dawn-ai/sdk@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/langchain/package.json b/packages/langchain/package.json index f642165d..bf712119 100644 --- a/packages/langchain/package.json +++ b/packages/langchain/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/langchain", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/langgraph/CHANGELOG.md b/packages/langgraph/CHANGELOG.md index fabf6bcd..4be46957 100644 --- a/packages/langgraph/CHANGELOG.md +++ b/packages/langgraph/CHANGELOG.md @@ -1,5 +1,12 @@ # @dawn-ai/langgraph +## 0.8.6 + +### Patch Changes + +- Updated dependencies [1d51b75] + - @dawn-ai/sdk@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/langgraph/package.json b/packages/langgraph/package.json index 96dd306e..557b8340 100644 --- a/packages/langgraph/package.json +++ b/packages/langgraph/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/langgraph", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/memory/CHANGELOG.md b/packages/memory/CHANGELOG.md index d3ed7f59..5cd0acf9 100644 --- a/packages/memory/CHANGELOG.md +++ b/packages/memory/CHANGELOG.md @@ -1,5 +1,11 @@ # @dawn-ai/memory +## 0.8.6 + +### Patch Changes + +- @dawn-ai/sqlite-storage@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/memory/package.json b/packages/memory/package.json index d3286cb8..ffbc8875 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/memory", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/permissions/CHANGELOG.md b/packages/permissions/CHANGELOG.md index d94eda3f..090d6e77 100644 --- a/packages/permissions/CHANGELOG.md +++ b/packages/permissions/CHANGELOG.md @@ -1,5 +1,11 @@ # @dawn-ai/permissions +## 0.8.6 + +### Patch Changes + +- 1d51b75: Per-tool approval gating: `agent({ tools: { approve: ["deployProd"] } })` makes any named tool require a HITL permission prompt per call (`kind: "tool"` interrupt). Decisions persist name-level under the reserved `tool` key in `.dawn/permissions.json` (exact-name matching); pre-approve via `permissions.allow.tool`. `dawn check` validates `approve` names and warns on overlap with the internally-gated workspace tools, `deny`, and the unsupported `task` case. + ## 0.8.5 ## 0.8.4 diff --git a/packages/permissions/package.json b/packages/permissions/package.json index f61677b2..3d4ffe9d 100644 --- a/packages/permissions/package.json +++ b/packages/permissions/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/permissions", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/sandbox/CHANGELOG.md b/packages/sandbox/CHANGELOG.md new file mode 100644 index 00000000..8cc5e001 --- /dev/null +++ b/packages/sandbox/CHANGELOG.md @@ -0,0 +1,17 @@ +# @dawn-ai/sandbox + +## 0.8.6 + +### Patch Changes + +- 4ede7b8: Add an opt-in execution sandbox: a provider-agnostic `SandboxProvider` contract + with a Docker reference (`dockerSandbox`), giving each conversation thread a + hard-isolated workspace (filesystem + shell + network). Enable via + `dawn.config.ts` `sandbox: { provider: dockerSandbox({ image }) }`; without it, + behavior is unchanged. Adds a typed `config()` helper. When sandboxed, the + materialized agent cache is bypassed so tools bind per-thread. Honest scope: + Docker's boundary (not a microVM); `allow`-mode network denylist is best-effort + in the Docker reference. New package `@dawn-ai/sandbox` (+ `@dawn-ai/sandbox/testing` + `fakeSandbox` and a provider conformance kit). +- Updated dependencies [4ede7b8] + - @dawn-ai/workspace@0.8.6 diff --git a/packages/sandbox/package.json b/packages/sandbox/package.json index f217a484..a887b0e2 100644 --- a/packages/sandbox/package.json +++ b/packages/sandbox/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/sandbox", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index f60ddc50..79e8c475 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -1,5 +1,11 @@ # @dawn-ai/sdk +## 0.8.6 + +### Patch Changes + +- 1d51b75: Per-tool approval gating: `agent({ tools: { approve: ["deployProd"] } })` makes any named tool require a HITL permission prompt per call (`kind: "tool"` interrupt). Decisions persist name-level under the reserved `tool` key in `.dawn/permissions.json` (exact-name matching); pre-approve via `permissions.allow.tool`. `dawn check` validates `approve` names and warns on overlap with the internally-gated workspace tools, `deny`, and the unsupported `task` case. + ## 0.8.5 ## 0.8.4 diff --git a/packages/sdk/package.json b/packages/sdk/package.json index f5fc93be..1fdf3159 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/sdk", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/sqlite-storage/CHANGELOG.md b/packages/sqlite-storage/CHANGELOG.md index 79f032ad..1b8f70af 100644 --- a/packages/sqlite-storage/CHANGELOG.md +++ b/packages/sqlite-storage/CHANGELOG.md @@ -1,5 +1,7 @@ # @dawn-ai/sqlite-storage +## 0.8.6 + ## 0.8.5 ## 0.8.4 diff --git a/packages/sqlite-storage/package.json b/packages/sqlite-storage/package.json index dac2af04..baefd697 100644 --- a/packages/sqlite-storage/package.json +++ b/packages/sqlite-storage/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/sqlite-storage", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/testing/CHANGELOG.md b/packages/testing/CHANGELOG.md index 6966325d..4ec3b314 100644 --- a/packages/testing/CHANGELOG.md +++ b/packages/testing/CHANGELOG.md @@ -1,5 +1,18 @@ # @dawn-ai/testing +## 0.8.6 + +### Patch Changes + +- Updated dependencies [9d115de] +- Updated dependencies [4ede7b8] +- Updated dependencies [1d51b75] + - @dawn-ai/cli@0.8.6 + - @dawn-ai/workspace@0.8.6 + - @dawn-ai/core@0.8.6 + - @dawn-ai/sdk@0.8.6 + - @dawn-ai/memory@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/testing/package.json b/packages/testing/package.json index f9386634..5508d750 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/testing", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/vite-plugin/CHANGELOG.md b/packages/vite-plugin/CHANGELOG.md index 42186715..aca6971f 100644 --- a/packages/vite-plugin/CHANGELOG.md +++ b/packages/vite-plugin/CHANGELOG.md @@ -1,5 +1,13 @@ # @dawn-ai/vite-plugin +## 0.8.6 + +### Patch Changes + +- Updated dependencies [4ede7b8] +- Updated dependencies [1d51b75] + - @dawn-ai/core@0.8.6 + ## 0.8.5 ### Patch Changes diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 542255f4..6ccd8f6e 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/vite-plugin", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT", diff --git a/packages/workspace/CHANGELOG.md b/packages/workspace/CHANGELOG.md index 45f4a209..c0133560 100644 --- a/packages/workspace/CHANGELOG.md +++ b/packages/workspace/CHANGELOG.md @@ -1,5 +1,19 @@ # @dawn-ai/workspace +## 0.8.6 + +### Patch Changes + +- 4ede7b8: Add an opt-in execution sandbox: a provider-agnostic `SandboxProvider` contract + with a Docker reference (`dockerSandbox`), giving each conversation thread a + hard-isolated workspace (filesystem + shell + network). Enable via + `dawn.config.ts` `sandbox: { provider: dockerSandbox({ image }) }`; without it, + behavior is unchanged. Adds a typed `config()` helper. When sandboxed, the + materialized agent cache is bypassed so tools bind per-thread. Honest scope: + Docker's boundary (not a microVM); `allow`-mode network denylist is best-effort + in the Docker reference. New package `@dawn-ai/sandbox` (+ `@dawn-ai/sandbox/testing` + `fakeSandbox` and a provider conformance kit). + ## 0.8.5 ## 0.8.4 diff --git a/packages/workspace/package.json b/packages/workspace/package.json index 22d2784d..a2c2f607 100644 --- a/packages/workspace/package.json +++ b/packages/workspace/package.json @@ -1,6 +1,6 @@ { "name": "@dawn-ai/workspace", - "version": "0.8.5", + "version": "0.8.6", "private": false, "type": "module", "license": "MIT",