diff --git a/.changeset/driver-sql-optional-natives.md b/.changeset/driver-sql-optional-natives.md deleted file mode 100644 index 6706b5a0cb..0000000000 --- a/.changeset/driver-sql-optional-natives.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@objectstack/driver-sql': patch ---- - -Promote native database client packages so npm consumers can boot without manual installs. - -- `better-sqlite3` is now an `optionalDependency` (prebuilt binaries cover the common case), so `npx @objectstack/cli start` boots a default SQLite database out-of-the-box. -- `pg`, `mysql2`, `sqlite3`, and `tedious` are declared as optional `peerDependencies` (`peerDependenciesMeta.optional = true`), removing install warnings while keeping the loader-on-demand pattern. - -Fixes: `Knex: Cannot find module 'better-sqlite3'` on fresh `npm install @objectstack/cli` followed by `objectstack start`. diff --git a/.changeset/embedder-openai-protocol.md b/.changeset/embedder-openai-protocol.md deleted file mode 100644 index b7a8b7d36c..0000000000 --- a/.changeset/embedder-openai-protocol.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -'@objectstack/spec': minor -'@objectstack/embedder-openai': minor -'@objectstack/knowledge-turso': minor ---- - -Introduce `IEmbedder` protocol and extract `@objectstack/embedder-openai` plugin. - -**What's new** - -- **`IEmbedder` contract** (`@objectstack/spec/contracts/embedder.ts`) — protocol-level interface for text → vector providers. One contract covers cloud APIs (OpenAI / 阿里通义 / 智谱 / 硅基流动 / 火山 Doubao / MiniMax), local Ollama daemons, and in-process embedders. -- **`@objectstack/embedder-openai`** — new package. Drop-in for any OpenAI-shape endpoint via `baseUrl`. Ships preset constants for 8 mainstream providers (`createOpenAIEmbedder({ preset: 'siliconflow', ... })`) and pre-baked dimensions for 16+ popular models. - -**Breaking changes (`@objectstack/knowledge-turso`)** - -- `OpenAIEmbeddingProvider` is **removed** — install `@objectstack/embedder-openai` and use `OpenAIEmbedder` instead (identical option shape). -- `EmbeddingProvider` type alias kept as a deprecated re-export of `IEmbedder` for smoother migration; will be removed in a future major. -- `HashEmbeddingProvider` is now an alias for the renamed `HashEmbedder` class — no functional change. - -**Migration** - -```diff -- import { OpenAIEmbeddingProvider } from '@objectstack/knowledge-turso'; -+ import { OpenAIEmbedder } from '@objectstack/embedder-openai'; - -- const embedding = new OpenAIEmbeddingProvider({ apiKey }); -+ const embedding = new OpenAIEmbedder({ apiKey }); -``` - -For 国内 providers, use presets: - -```ts -import { createOpenAIEmbedder } from '@objectstack/embedder-openai'; -const embedding = createOpenAIEmbedder({ - preset: 'siliconflow', // or 'dashscope', 'zhipu', 'doubao', 'ollama', … - apiKey: process.env.SILICONFLOW_API_KEY!, - model: 'BAAI/bge-m3', -}); -``` diff --git a/.changeset/embedder-runtime-bridge.md b/.changeset/embedder-runtime-bridge.md deleted file mode 100644 index be701da12b..0000000000 --- a/.changeset/embedder-runtime-bridge.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -'@objectstack/spec': minor -'@objectstack/service-ai': minor -'@objectstack/knowledge-turso': minor ---- - -Settings → runtime bridge: `embedder_*` settings now build a real -`IEmbedder` and register it as a kernel-level DI service. - -**`@objectstack/spec`** - -- Exports `EMBEDDER_SERVICE = 'embedder'` from `contracts/embedder.ts` - as the canonical DI token for the kernel-registered embedder. - -**`@objectstack/service-ai`** - -- Adds `@objectstack/embedder-openai` as an **optional peer dependency** - (matches the `@ai-sdk/*` provider plugins pattern). -- `AIServicePlugin.bindSettings()` now also: - - Reads `embedder_provider` / `embedder_api_key` / `embedder_model` / - `embedder_base_url` / `embedder_dimensions` from the `ai` namespace. - - Dynamically imports `@objectstack/embedder-openai` and constructs - an `OpenAIEmbedder` via `createOpenAIEmbedder({ preset, … })`. - - Registers / replaces the instance under `EMBEDDER_SERVICE`. When - the operator sets `embedder_provider = none`, the service is left - unset so adapters can fail fast with a clear message. - - Subscribes to `settings:changed` for the `ai` namespace so embedder - swaps go live without restart (mirrors the chat-adapter pattern). - - Overrides the manifest's fallback `ai/test_embedder` action with a - live one-shot `embed(['ping'])` round-trip against the form's - (possibly unsaved) values. Reports vector dims + latency. - -**`@objectstack/knowledge-turso`** - -- `KnowledgeTursoPlugin`'s `embedding` constructor option is now - **optional**. When omitted, the plugin resolves `EMBEDDER_SERVICE` - from the kernel at `start()` time — typically the embedder built by - `@objectstack/service-ai` from the `ai` settings namespace. -- Explicit `embedding` still wins when both are present (useful for - tests and multi-embedder setups). -- Logs `(embedder=, dims=)` on adapter registration so operators - can confirm wiring at a glance. -- When neither path resolves, the plugin warns with a one-line hint - pointing to `Settings → AI & Embedder` and no-ops gracefully (the - host kernel still boots). - -**Tests** - -- `service-ai`: +5 cases (now 85) covering `ai/test_embedder` action - registration, `provider=none` warning, missing-api-key error, - custom-provider-without-base-URL error, and the full happy path - (mocked fetch → embedder registered under `EMBEDDER_SERVICE` → - test_embedder action returns vector dims). -- `knowledge-turso`: new `plugin.test.ts` (+5 cases) covering deferred - construction, EMBEDDER_SERVICE fallback, explicit-wins precedence, - missing-both warn-and-noop, and missing-knowledge-service warn. - -End-to-end now possible: operator opens **Settings → AI & Embedder**, -picks 硅基流动 + paste API key + chooses `BAAI/bge-m3`, hits **Save**. -Within the same process, `EMBEDDER_SERVICE` is registered/replaced, -`KnowledgeTursoPlugin` (if started without an explicit embedder) -picks it up, and subsequent `knowledge.search()` calls embed via the -new provider — no restart, no env vars. diff --git a/.changeset/remove-service-cloud-dep.md b/.changeset/remove-service-cloud-dep.md deleted file mode 100644 index 4f12d77abb..0000000000 --- a/.changeset/remove-service-cloud-dep.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -'@objectstack/cli': patch -'@objectstack/runtime': patch ---- - -Remove residual coupling to the (already-extracted) `@objectstack/service-cloud` package. - -The cloud distribution was migrated to a separate repo a while back, but the open-core CLI still carried: - -- A dynamic `import('@objectstack/service-cloud')` in the boot-mode dispatch for `cloud` / `runtime` modes. -- A dev-mode auto-mount that tried to load `createSingleEnvironmentPlugin` from the cloud package (now fully covered by the built-in `RuntimeConfigPlugin`). -- An ambient `.d.ts` stub for `@objectstack/service-cloud`. -- A leftover empty `packages/services/service-cloud/` directory (only stale `dist/` + `node_modules/`). -- Several doc-comment references. - -All gone. The open-core CLI now supports `bootMode: 'standalone'` only — non-standalone modes throw a clear error pointing users to the cloud distribution. No runtime behavior change for standalone users. diff --git a/.changeset/runtime-promote-dyn-imports.md b/.changeset/runtime-promote-dyn-imports.md deleted file mode 100644 index 20c3d73c79..0000000000 --- a/.changeset/runtime-promote-dyn-imports.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -"@objectstack/runtime": patch -"@objectstack/cli": patch ---- - -Fix `npx @objectstack/cli start` crashing with `Cannot find package -'@objectstack/metadata'` (and friends). - -`@objectstack/runtime` dynamically `import()`s `@objectstack/metadata`, -`@objectstack/objectql`, and the storage drivers (`driver-memory`, -`driver-sql`, `driver-sqlite-wasm`, `driver-turso`) from -`createStandaloneStack` / `createDefaultHostConfig`, but they were only -listed in `devDependencies` — so when the package was installed from npm -(rather than the workspace) these imports failed at boot. - -They are now declared as real `dependencies`. `@objectstack/driver-mongodb` -remains an `optionalDependency` because the standalone stack only loads -it when the user passes a `mongodb://` URL (the failure path already has -a friendly error message). - -Also adds a small quick-start CLI command (`objectstack start`) that -auto-creates `~/.objectstack/{data,dist,auth-secret}`, boots an empty -kernel with Studio + marketplace mounted, and lets users install apps at -runtime — no `objectstack.config.ts` required. diff --git a/.changeset/setup-app-settings-pages.md b/.changeset/setup-app-settings-pages.md deleted file mode 100644 index 546dc25cdd..0000000000 --- a/.changeset/setup-app-settings-pages.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -'@objectstack/service-settings': minor -'@objectstack/platform-objects': minor ---- - -Setup App: complete the Configuration settings pages. - -**Setup App navigation** - -The Configuration group now lists every built-in settings namespace -(previously Storage was missing entirely, and Knowledge had no entry): - -- Branding · Email · **File Storage** · **AI & Embedder** · **Knowledge** · Feature Flags - -Order in the left-nav now matches `builtinSettingsManifests` so the -"All Settings" index and the left-nav stay aligned. - -**AI manifest — embedder section** - -`ai.manifest.ts` now ships an Embedder section in addition to the -existing chat-LLM section. Knobs: - -- `embedder_provider` — `none` (default) / `openai` / `azure` / - `dashscope` (阿里通义) / `zhipu` (智谱) / `siliconflow` (硅基流动) / - `doubao` (火山引擎) / `minimax` / `ollama` / `custom`. Preset list - mirrors `@objectstack/embedder-openai`'s `OPENAI_COMPATIBLE_PRESETS`. -- `embedder_api_key` — encrypted password. -- `embedder_model` — free text with documented examples per provider. -- `embedder_base_url` — visible for `custom` / `azure` only. -- `embedder_dimensions` — optional Matryoshka override. -- `embedder_batch_size` — `embed()` chunk batch size. -- Test action wired to `POST /api/settings/ai/test_embedder` — fallback - validates form completeness; real probe lives in `service-ai` / - `service-knowledge`. - -**New `knowledge` settings manifest** - -`knowledge.manifest.ts` is the canonical surface for RAG infrastructure: - -- `adapter` — `memory` / `turso` / `ragflow`. -- Turso group — `turso_url` (libsql://, file:, :memory:) + encrypted - `turso_auth_token`. Leaving URL blank means "reuse the tenant's - primary libSQL connection" — the recommended cloud setup. -- RAGFlow group — base URL + encrypted API key + default dataset id. -- Indexing defaults — `chunk_target`, `chunk_overlap`, `over_fetch`. -- Permissions — `enforce_rls` defaults to `true` (security-critical; - toggling off skips the platform's unique RLS re-check on every hit). -- Test action wired to `POST /api/settings/knowledge/test`. - -**Translations** - -Full `ai` and `knowledge` translation blocks added to both `en.ts` and -`zh-CN.ts`. Storage block had translations already. - -**Tests** - -- `ai.manifest.test.ts`: +5 cases covering embedder select, encryption, - test action wiring, and embedder handler validation across 5 provider - shapes (none / ollama / OpenAI-compatible cloud / custom / azure). -- `knowledge.manifest.test.ts`: 20 new cases covering manifest shape, - adapter selection, secret encryption, default `enforce_rls=true`, - test handler validation across all 3 adapters and payload merging. - -78/78 tests pass in `@objectstack/service-settings`. diff --git a/.changeset/turso-optional-peer.md b/.changeset/turso-optional-peer.md deleted file mode 100644 index 2224f48350..0000000000 --- a/.changeset/turso-optional-peer.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@objectstack/cli': patch -'@objectstack/runtime': patch ---- - -Make `@objectstack/driver-turso` an **optional peer dependency** so default `npx @objectstack/cli start` no longer installs `@libsql/client` (~5MB + native binaries) nor `libsql` native modules. - -Rationale: `objectstack start` defaults to `file:` URLs which route to `better-sqlite3` via `driver-sql` (10–15× faster than libsql for OLTP, see benchmarks). For RAG / vector workloads, `sqlite-vec` (~600KB) is the recommended local backend. Turso / libsql is only useful when the user explicitly opts in via `libsql://` / `https://` / `--database-driver turso`. - -Changes: -- `packages/cli/package.json`: moved `@objectstack/driver-turso` from `dependencies` to optional `peerDependencies` (`peerDependenciesMeta.optional = true`). npm 7+ does **not** auto-install optional peers; `optionalDependencies` would have still installed it. -- `packages/runtime/package.json`: same. -- All three dynamic-import sites for `driver-turso` (`runtime/src/standalone-stack.ts`, `runtime/src/cloud/artifact-environment-registry.ts`, `cli/src/commands/serve.ts`) now wrap the `import()` in try/catch with an actionable error message pointing users to `npm install @objectstack/driver-turso`. - -Verified in `/tmp/os-sim`: fresh `npm install @objectstack/cli` no longer contains `node_modules/@libsql`, `node_modules/libsql`, or `node_modules/@objectstack/driver-turso`. `objectstack start` boots cleanly with better-sqlite3; `--database libsql://…` produces the friendly error. diff --git a/apps/account/CHANGELOG.md b/apps/account/CHANGELOG.md index 8b24d91858..9db2463212 100644 --- a/apps/account/CHANGELOG.md +++ b/apps/account/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/account +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/client@7.0.0 + - @objectstack/client-react@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/apps/account/package.json b/apps/account/package.json index 9752bf5b58..730576ee0b 100644 --- a/apps/account/package.json +++ b/apps/account/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/account", - "version": "6.6.0", + "version": "7.0.0", "description": "ObjectStack Account - End-user account & organization self-service portal", "license": "Apache-2.0", "type": "module", diff --git a/examples/app-crm/CHANGELOG.md b/examples/app-crm/CHANGELOG.md index 24cacb1569..bc78408daf 100644 --- a/examples/app-crm/CHANGELOG.md +++ b/examples/app-crm/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/example-crm +## 4.0.21 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/spec@7.0.0 + - @objectstack/runtime@7.0.0 + ## 4.0.20 ### Patch Changes diff --git a/examples/app-crm/package.json b/examples/app-crm/package.json index 5c76d893b0..97cf6b564c 100644 --- a/examples/app-crm/package.json +++ b/examples/app-crm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-crm", - "version": "4.0.20", + "version": "4.0.21", "description": "Minimal CRM example — a smoke-test workspace that exercises the metadata loading pipeline (objects → views → app → dashboard → hook → flow → seed). For a full-featured enterprise CRM see https://github.com/objectstack-ai/hotcrm.", "license": "Apache-2.0", "private": true, diff --git a/examples/app-todo/CHANGELOG.md b/examples/app-todo/CHANGELOG.md index 4039475021..57452dd0ca 100644 --- a/examples/app-todo/CHANGELOG.md +++ b/examples/app-todo/CHANGELOG.md @@ -1,5 +1,24 @@ # @objectstack/example-todo +## 4.0.21 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/spec@7.0.0 + - @objectstack/service-ai@7.0.0 + - @objectstack/runtime@7.0.0 + - @objectstack/driver-sqlite-wasm@7.0.0 + - @objectstack/client@7.0.0 + - @objectstack/metadata@7.0.0 + - @objectstack/objectql@7.0.0 + - @objectstack/knowledge-memory@7.0.0 + - @objectstack/service-knowledge@7.0.0 + ## 4.0.20 ### Patch Changes diff --git a/examples/app-todo/package.json b/examples/app-todo/package.json index e5357d3ed2..3bb3cbc640 100644 --- a/examples/app-todo/package.json +++ b/examples/app-todo/package.json @@ -1,6 +1,6 @@ { "name": "@example/app-todo", - "version": "4.0.20", + "version": "4.0.21", "description": "Example Todo App using ObjectStack Protocol", "license": "Apache-2.0", "private": true, diff --git a/packages/adapters/express/CHANGELOG.md b/packages/adapters/express/CHANGELOG.md index e5f935fa1d..62dbe09c21 100644 --- a/packages/adapters/express/CHANGELOG.md +++ b/packages/adapters/express/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/express +## 7.0.0 + +### Patch Changes + +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/runtime@7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/adapters/express/package.json b/packages/adapters/express/package.json index 7648f4691f..2a76365182 100644 --- a/packages/adapters/express/package.json +++ b/packages/adapters/express/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/express", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/fastify/CHANGELOG.md b/packages/adapters/fastify/CHANGELOG.md index 322508b92e..c0a89f6fe9 100644 --- a/packages/adapters/fastify/CHANGELOG.md +++ b/packages/adapters/fastify/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/fastify +## 7.0.0 + +### Patch Changes + +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/runtime@7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/adapters/fastify/package.json b/packages/adapters/fastify/package.json index a313ce57d7..ca8b811703 100644 --- a/packages/adapters/fastify/package.json +++ b/packages/adapters/fastify/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/fastify", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/hono/CHANGELOG.md b/packages/adapters/hono/CHANGELOG.md index a4f2396312..7f95eb4d94 100644 --- a/packages/adapters/hono/CHANGELOG.md +++ b/packages/adapters/hono/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/hono +## 7.0.0 + +### Patch Changes + +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/runtime@7.0.0 + - @objectstack/plugin-hono-server@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/adapters/hono/package.json b/packages/adapters/hono/package.json index e445ab4ac1..f017a46c09 100644 --- a/packages/adapters/hono/package.json +++ b/packages/adapters/hono/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/hono", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nestjs/CHANGELOG.md b/packages/adapters/nestjs/CHANGELOG.md index f6cbfbca29..b0df6721b1 100644 --- a/packages/adapters/nestjs/CHANGELOG.md +++ b/packages/adapters/nestjs/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/nestjs +## 7.0.0 + +### Patch Changes + +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/runtime@7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/adapters/nestjs/package.json b/packages/adapters/nestjs/package.json index cce9fd9190..994f4b986d 100644 --- a/packages/adapters/nestjs/package.json +++ b/packages/adapters/nestjs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nestjs", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nextjs/CHANGELOG.md b/packages/adapters/nextjs/CHANGELOG.md index 3925c7e4c3..2048835f3d 100644 --- a/packages/adapters/nextjs/CHANGELOG.md +++ b/packages/adapters/nextjs/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/nextjs +## 7.0.0 + +### Patch Changes + +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/runtime@7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/adapters/nextjs/package.json b/packages/adapters/nextjs/package.json index 4fcadec0f3..cb60d96a01 100644 --- a/packages/adapters/nextjs/package.json +++ b/packages/adapters/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nextjs", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nuxt/CHANGELOG.md b/packages/adapters/nuxt/CHANGELOG.md index 6f509be741..54e6a5a990 100644 --- a/packages/adapters/nuxt/CHANGELOG.md +++ b/packages/adapters/nuxt/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/nuxt +## 7.0.0 + +### Patch Changes + +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/runtime@7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/adapters/nuxt/package.json b/packages/adapters/nuxt/package.json index 9f2c19192b..9eed0078ba 100644 --- a/packages/adapters/nuxt/package.json +++ b/packages/adapters/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nuxt", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/sveltekit/CHANGELOG.md b/packages/adapters/sveltekit/CHANGELOG.md index 5a2311fa9e..8c356265b2 100644 --- a/packages/adapters/sveltekit/CHANGELOG.md +++ b/packages/adapters/sveltekit/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/sveltekit +## 7.0.0 + +### Patch Changes + +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/runtime@7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/adapters/sveltekit/package.json b/packages/adapters/sveltekit/package.json index 0b07e744ee..06ac3b7db3 100644 --- a/packages/adapters/sveltekit/package.json +++ b/packages/adapters/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/sveltekit", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index ed0af61ca2..d1f5a2fc90 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,94 @@ # @objectstack/cli +## 7.0.0 + +### Patch Changes + +- c5efe15: Remove residual coupling to the (already-extracted) `@objectstack/service-cloud` package. + + The cloud distribution was migrated to a separate repo a while back, but the open-core CLI still carried: + + - A dynamic `import('@objectstack/service-cloud')` in the boot-mode dispatch for `cloud` / `runtime` modes. + - A dev-mode auto-mount that tried to load `createSingleEnvironmentPlugin` from the cloud package (now fully covered by the built-in `RuntimeConfigPlugin`). + - An ambient `.d.ts` stub for `@objectstack/service-cloud`. + - A leftover empty `packages/services/service-cloud/` directory (only stale `dist/` + `node_modules/`). + - Several doc-comment references. + + All gone. The open-core CLI now supports `bootMode: 'standalone'` only — non-standalone modes throw a clear error pointing users to the cloud distribution. No runtime behavior change for standalone users. + +- 4944f3a: Fix `npx @objectstack/cli start` crashing with `Cannot find package +'@objectstack/metadata'` (and friends). + + `@objectstack/runtime` dynamically `import()`s `@objectstack/metadata`, + `@objectstack/objectql`, and the storage drivers (`driver-memory`, + `driver-sql`, `driver-sqlite-wasm`, `driver-turso`) from + `createStandaloneStack` / `createDefaultHostConfig`, but they were only + listed in `devDependencies` — so when the package was installed from npm + (rather than the workspace) these imports failed at boot. + + They are now declared as real `dependencies`. `@objectstack/driver-mongodb` + remains an `optionalDependency` because the standalone stack only loads + it when the user passes a `mongodb://` URL (the failure path already has + a friendly error message). + + Also adds a small quick-start CLI command (`objectstack start`) that + auto-creates `~/.objectstack/{data,dist,auth-secret}`, boots an empty + kernel with Studio + marketplace mounted, and lets users install apps at + runtime — no `objectstack.config.ts` required. + +- e0c593f: Make `@objectstack/driver-turso` an **optional peer dependency** so default `npx @objectstack/cli start` no longer installs `@libsql/client` (~5MB + native binaries) nor `libsql` native modules. + + Rationale: `objectstack start` defaults to `file:` URLs which route to `better-sqlite3` via `driver-sql` (10–15× faster than libsql for OLTP, see benchmarks). For RAG / vector workloads, `sqlite-vec` (~600KB) is the recommended local backend. Turso / libsql is only useful when the user explicitly opts in via `libsql://` / `https://` / `--database-driver turso`. + + Changes: + + - `packages/cli/package.json`: moved `@objectstack/driver-turso` from `dependencies` to optional `peerDependencies` (`peerDependenciesMeta.optional = true`). npm 7+ does **not** auto-install optional peers; `optionalDependencies` would have still installed it. + - `packages/runtime/package.json`: same. + - All three dynamic-import sites for `driver-turso` (`runtime/src/standalone-stack.ts`, `runtime/src/cloud/artifact-environment-registry.ts`, `cli/src/commands/serve.ts`) now wrap the `import()` in try/catch with an actionable error message pointing users to `npm install @objectstack/driver-turso`. + + Verified in `/tmp/os-sim`: fresh `npm install @objectstack/cli` no longer contains `node_modules/@libsql`, `node_modules/libsql`, or `node_modules/@objectstack/driver-turso`. `objectstack start` boots cleanly with better-sqlite3; `--database libsql://…` produces the friendly error. + +- Updated dependencies [4944f3a] +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [4f9e9d4] +- Updated dependencies [e0c593f] + - @objectstack/driver-sql@7.0.0 + - @objectstack/spec@7.0.0 + - @objectstack/service-ai@7.0.0 + - @objectstack/runtime@7.0.0 + - @objectstack/service-settings@7.0.0 + - @objectstack/driver-sqlite-wasm@7.0.0 + - @objectstack/driver-turso@7.0.0 + - @objectstack/client@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/objectql@7.0.0 + - @objectstack/observability@7.0.0 + - @objectstack/driver-memory@7.0.0 + - @objectstack/driver-mongodb@7.0.0 + - @objectstack/plugin-approvals@7.0.0 + - @objectstack/plugin-audit@7.0.0 + - @objectstack/plugin-auth@7.0.0 + - @objectstack/plugin-email@7.0.0 + - @objectstack/plugin-hono-server@7.0.0 + - @objectstack/plugin-mcp-server@7.0.0 + - @objectstack/plugin-reports@7.0.0 + - @objectstack/plugin-security@7.0.0 + - @objectstack/plugin-sharing@7.0.0 + - @objectstack/plugin-webhooks@7.0.0 + - @objectstack/rest@7.0.0 + - @objectstack/service-analytics@7.0.0 + - @objectstack/service-automation@7.0.0 + - @objectstack/service-cache@7.0.0 + - @objectstack/service-feed@7.0.0 + - @objectstack/service-job@7.0.0 + - @objectstack/service-package@7.0.0 + - @objectstack/service-queue@7.0.0 + - @objectstack/service-realtime@7.0.0 + - @objectstack/service-storage@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 20851760d7..c3fc58219c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cli", - "version": "6.6.0", + "version": "7.0.0", "description": "Command Line Interface for ObjectStack Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/client-react/CHANGELOG.md b/packages/client-react/CHANGELOG.md index f8bbd586dd..b8d076b8d9 100644 --- a/packages/client-react/CHANGELOG.md +++ b/packages/client-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/client-react +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/client@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/client-react/package.json b/packages/client-react/package.json index 58d0df9826..62ac896209 100644 --- a/packages/client-react/package.json +++ b/packages/client-react/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client-react", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "React hooks for ObjectStack Client SDK", "main": "dist/index.js", diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index d9f3af1443..9f6586ecfb 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/client +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/client/package.json b/packages/client/package.json index 6efe61a8c3..d90f9b40d2 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Official Client SDK for ObjectStack Protocol", "main": "dist/index.js", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 8e08e47024..c2e31b778b 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/core +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 75d6192346..9e823730ef 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/core", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Microkernel Core for ObjectStack", "type": "module", diff --git a/packages/create-objectstack/CHANGELOG.md b/packages/create-objectstack/CHANGELOG.md index df783621b5..a1ee027259 100644 --- a/packages/create-objectstack/CHANGELOG.md +++ b/packages/create-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # create-objectstack +## 7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/create-objectstack/package.json b/packages/create-objectstack/package.json index 3a6dcab374..a66c30958a 100644 --- a/packages/create-objectstack/package.json +++ b/packages/create-objectstack/package.json @@ -1,6 +1,6 @@ { "name": "create-objectstack", - "version": "6.6.0", + "version": "7.0.0", "description": "Create a new ObjectStack project — npx create-objectstack", "bin": { "create-objectstack": "./bin/create-objectstack.js" diff --git a/packages/formula/CHANGELOG.md b/packages/formula/CHANGELOG.md index 308a88c7c9..7fd19497e6 100644 --- a/packages/formula/CHANGELOG.md +++ b/packages/formula/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/formula +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/formula/package.json b/packages/formula/package.json index 763a4a952c..0e90c7cb57 100644 --- a/packages/formula/package.json +++ b/packages/formula/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/formula", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "ObjectStack canonical expression engine — CEL (cel-js) + ObjectStack stdlib + dialect registry", "main": "dist/index.js", diff --git a/packages/metadata-core/CHANGELOG.md b/packages/metadata-core/CHANGELOG.md index f90899721b..1e23799363 100644 --- a/packages/metadata-core/CHANGELOG.md +++ b/packages/metadata-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @objectstack/metadata-core +## 7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/metadata-core/package.json b/packages/metadata-core/package.json index 7e5f7f28f8..8d536aef24 100644 --- a/packages/metadata-core/package.json +++ b/packages/metadata-core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-core", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Metadata Repository contracts: types, canonicalization, errors, interface (ADR-0008).", "type": "module", diff --git a/packages/metadata-fs/CHANGELOG.md b/packages/metadata-fs/CHANGELOG.md index 6ef55150b1..4eb3758737 100644 --- a/packages/metadata-fs/CHANGELOG.md +++ b/packages/metadata-fs/CHANGELOG.md @@ -1,5 +1,11 @@ # @objectstack/metadata-fs +## 7.0.0 + +### Patch Changes + +- @objectstack/metadata-core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/metadata-fs/package.json b/packages/metadata-fs/package.json index 89e3054b1a..524b5d30bd 100644 --- a/packages/metadata-fs/package.json +++ b/packages/metadata-fs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-fs", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "FileSystemRepository: Node-only Repository implementation backed by JSON files and a JSONL change log (ADR-0008).", "type": "module", diff --git a/packages/metadata/CHANGELOG.md b/packages/metadata/CHANGELOG.md index 8154ec067a..246da6a0c8 100644 --- a/packages/metadata/CHANGELOG.md +++ b/packages/metadata/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/metadata +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/types@7.0.0 + - @objectstack/metadata-core@7.0.0 + - @objectstack/metadata-fs@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 51d9db4782..4e3af31fcd 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Metadata loading, saving, and persistence for ObjectStack", "type": "module", diff --git a/packages/objectql/CHANGELOG.md b/packages/objectql/CHANGELOG.md index 15cff1979e..464c3a0cae 100644 --- a/packages/objectql/CHANGELOG.md +++ b/packages/objectql/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/objectql +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/formula@7.0.0 + - @objectstack/types@7.0.0 + - @objectstack/metadata-core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 4d7ca3d052..c7fa3129cb 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/objectql", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Isomorphic ObjectQL Engine for ObjectStack", "main": "dist/index.js", diff --git a/packages/observability/CHANGELOG.md b/packages/observability/CHANGELOG.md index a2ad62d5e3..f577bcfef8 100644 --- a/packages/observability/CHANGELOG.md +++ b/packages/observability/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/observability +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/observability/package.json b/packages/observability/package.json index d0be0f333b..8b29858e19 100644 --- a/packages/observability/package.json +++ b/packages/observability/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/observability", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Observability contracts and exporters for ObjectStack — MetricsRegistry, ErrorReporter, Logger plus noop/console/OTLP-HTTP exporters. Deployment-target neutral; runtime and services depend on this so the same instrumentation works on Cloudflare Workers, Node, and self-hosted Kubernetes.", "type": "module", diff --git a/packages/platform-objects/CHANGELOG.md b/packages/platform-objects/CHANGELOG.md index 303ca0a4ab..18295b2482 100644 --- a/packages/platform-objects/CHANGELOG.md +++ b/packages/platform-objects/CHANGELOG.md @@ -1,5 +1,75 @@ # @objectstack/platform-objects +## 7.0.0 + +### Minor Changes + +- 4f9e9d4: Setup App: complete the Configuration settings pages. + + **Setup App navigation** + + The Configuration group now lists every built-in settings namespace + (previously Storage was missing entirely, and Knowledge had no entry): + + - Branding · Email · **File Storage** · **AI & Embedder** · **Knowledge** · Feature Flags + + Order in the left-nav now matches `builtinSettingsManifests` so the + "All Settings" index and the left-nav stay aligned. + + **AI manifest — embedder section** + + `ai.manifest.ts` now ships an Embedder section in addition to the + existing chat-LLM section. Knobs: + + - `embedder_provider` — `none` (default) / `openai` / `azure` / + `dashscope` (阿里通义) / `zhipu` (智谱) / `siliconflow` (硅基流动) / + `doubao` (火山引擎) / `minimax` / `ollama` / `custom`. Preset list + mirrors `@objectstack/embedder-openai`'s `OPENAI_COMPATIBLE_PRESETS`. + - `embedder_api_key` — encrypted password. + - `embedder_model` — free text with documented examples per provider. + - `embedder_base_url` — visible for `custom` / `azure` only. + - `embedder_dimensions` — optional Matryoshka override. + - `embedder_batch_size` — `embed()` chunk batch size. + - Test action wired to `POST /api/settings/ai/test_embedder` — fallback + validates form completeness; real probe lives in `service-ai` / + `service-knowledge`. + + **New `knowledge` settings manifest** + + `knowledge.manifest.ts` is the canonical surface for RAG infrastructure: + + - `adapter` — `memory` / `turso` / `ragflow`. + - Turso group — `turso_url` (libsql://, file:, :memory:) + encrypted + `turso_auth_token`. Leaving URL blank means "reuse the tenant's + primary libSQL connection" — the recommended cloud setup. + - RAGFlow group — base URL + encrypted API key + default dataset id. + - Indexing defaults — `chunk_target`, `chunk_overlap`, `over_fetch`. + - Permissions — `enforce_rls` defaults to `true` (security-critical; + toggling off skips the platform's unique RLS re-check on every hit). + - Test action wired to `POST /api/settings/knowledge/test`. + + **Translations** + + Full `ai` and `knowledge` translation blocks added to both `en.ts` and + `zh-CN.ts`. Storage block had translations already. + + **Tests** + + - `ai.manifest.test.ts`: +5 cases covering embedder select, encryption, + test action wiring, and embedder handler validation across 5 provider + shapes (none / ollama / OpenAI-compatible cloud / custom / azure). + - `knowledge.manifest.test.ts`: 20 new cases covering manifest shape, + adapter selection, secret encryption, default `enforce_rls=true`, + test handler validation across all 3 adapters and payload merging. + + 78/78 tests pass in `@objectstack/service-settings`. + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/platform-objects/package.json b/packages/platform-objects/package.json index fdee9e9b9f..c7a4a05482 100644 --- a/packages/platform-objects/package.json +++ b/packages/platform-objects/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/platform-objects", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Core platform object schemas for ObjectStack — identity, security, audit, tenant, and metadata objects", "main": "dist/index.js", diff --git a/packages/plugins/driver-memory/CHANGELOG.md b/packages/plugins/driver-memory/CHANGELOG.md index 8d8693161e..661e6c37fe 100644 --- a/packages/plugins/driver-memory/CHANGELOG.md +++ b/packages/plugins/driver-memory/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/driver-memory +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/driver-memory/package.json b/packages/plugins/driver-memory/package.json index f073a476f6..f33168cc79 100644 --- a/packages/plugins/driver-memory/package.json +++ b/packages/plugins/driver-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-memory", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "In-Memory Driver for ObjectStack (Reference Implementation)", "main": "dist/index.js", diff --git a/packages/plugins/driver-mongodb/CHANGELOG.md b/packages/plugins/driver-mongodb/CHANGELOG.md index bdce01c344..ed21d026a2 100644 --- a/packages/plugins/driver-mongodb/CHANGELOG.md +++ b/packages/plugins/driver-mongodb/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/driver-mongodb +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/driver-mongodb/package.json b/packages/plugins/driver-mongodb/package.json index 9a8c61289f..390d267679 100644 --- a/packages/plugins/driver-mongodb/package.json +++ b/packages/plugins/driver-mongodb/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-mongodb", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "MongoDB Driver for ObjectStack - Native document database driver via official mongodb client", "main": "dist/index.js", diff --git a/packages/plugins/driver-sql/CHANGELOG.md b/packages/plugins/driver-sql/CHANGELOG.md index 0eb18b34df..1efb8aaf51 100644 --- a/packages/plugins/driver-sql/CHANGELOG.md +++ b/packages/plugins/driver-sql/CHANGELOG.md @@ -1,5 +1,21 @@ # @objectstack/driver-sql +## 7.0.0 + +### Patch Changes + +- 4944f3a: Promote native database client packages so npm consumers can boot without manual installs. + + - `better-sqlite3` is now an `optionalDependency` (prebuilt binaries cover the common case), so `npx @objectstack/cli start` boots a default SQLite database out-of-the-box. + - `pg`, `mysql2`, `sqlite3`, and `tedious` are declared as optional `peerDependencies` (`peerDependenciesMeta.optional = true`), removing install warnings while keeping the loader-on-demand pattern. + + Fixes: `Knex: Cannot find module 'better-sqlite3'` on fresh `npm install @objectstack/cli` followed by `objectstack start`. + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/driver-sql/package.json b/packages/plugins/driver-sql/package.json index b7bfcf451e..e00263efd6 100644 --- a/packages/plugins/driver-sql/package.json +++ b/packages/plugins/driver-sql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sql", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "SQL Driver for ObjectStack - Supports PostgreSQL, MySQL, SQLite via Knex", "main": "dist/index.js", @@ -33,10 +33,18 @@ "tedious": "^18.0.0" }, "peerDependenciesMeta": { - "mysql2": { "optional": true }, - "pg": { "optional": true }, - "sqlite3": { "optional": true }, - "tedious": { "optional": true } + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } }, "devDependencies": { "@types/node": "^25.9.1", diff --git a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md index 6a6ae19679..4d467cbc9b 100644 --- a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md +++ b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/driver-sqlite-wasm +## 7.0.0 + +### Patch Changes + +- Updated dependencies [4944f3a] +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/driver-sql@7.0.0 + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/driver-sqlite-wasm/package.json b/packages/plugins/driver-sqlite-wasm/package.json index 7fba03c808..042c0d5852 100644 --- a/packages/plugins/driver-sqlite-wasm/package.json +++ b/packages/plugins/driver-sqlite-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sqlite-wasm", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "WASM SQLite Driver for ObjectStack — runs in browser/WebContainer (StackBlitz) without native bindings", "keywords": [ diff --git a/packages/plugins/driver-turso/CHANGELOG.md b/packages/plugins/driver-turso/CHANGELOG.md index 8422fadb1f..e14f974253 100644 --- a/packages/plugins/driver-turso/CHANGELOG.md +++ b/packages/plugins/driver-turso/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/driver-turso +## 7.0.0 + +### Patch Changes + +- Updated dependencies [4944f3a] +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/driver-sql@7.0.0 + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/driver-turso/package.json b/packages/plugins/driver-turso/package.json index 592e171b10..b060cf8f44 100644 --- a/packages/plugins/driver-turso/package.json +++ b/packages/plugins/driver-turso/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-turso", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Turso/libSQL Driver for ObjectStack — Edge-first SQLite with embedded replicas and multi-tenancy", "keywords": [ diff --git a/packages/plugins/embedder-openai/CHANGELOG.md b/packages/plugins/embedder-openai/CHANGELOG.md new file mode 100644 index 0000000000..b4ddcd8dc6 --- /dev/null +++ b/packages/plugins/embedder-openai/CHANGELOG.md @@ -0,0 +1,45 @@ +# @objectstack/embedder-openai + +## 7.0.0 + +### Minor Changes + +- 430067b: Introduce `IEmbedder` protocol and extract `@objectstack/embedder-openai` plugin. + + **What's new** + + - **`IEmbedder` contract** (`@objectstack/spec/contracts/embedder.ts`) — protocol-level interface for text → vector providers. One contract covers cloud APIs (OpenAI / 阿里通义 / 智谱 / 硅基流动 / 火山 Doubao / MiniMax), local Ollama daemons, and in-process embedders. + - **`@objectstack/embedder-openai`** — new package. Drop-in for any OpenAI-shape endpoint via `baseUrl`. Ships preset constants for 8 mainstream providers (`createOpenAIEmbedder({ preset: 'siliconflow', ... })`) and pre-baked dimensions for 16+ popular models. + + **Breaking changes (`@objectstack/knowledge-turso`)** + + - `OpenAIEmbeddingProvider` is **removed** — install `@objectstack/embedder-openai` and use `OpenAIEmbedder` instead (identical option shape). + - `EmbeddingProvider` type alias kept as a deprecated re-export of `IEmbedder` for smoother migration; will be removed in a future major. + - `HashEmbeddingProvider` is now an alias for the renamed `HashEmbedder` class — no functional change. + + **Migration** + + ```diff + - import { OpenAIEmbeddingProvider } from '@objectstack/knowledge-turso'; + + import { OpenAIEmbedder } from '@objectstack/embedder-openai'; + + - const embedding = new OpenAIEmbeddingProvider({ apiKey }); + + const embedding = new OpenAIEmbedder({ apiKey }); + ``` + + For 国内 providers, use presets: + + ```ts + import { createOpenAIEmbedder } from "@objectstack/embedder-openai"; + const embedding = createOpenAIEmbedder({ + preset: "siliconflow", // or 'dashscope', 'zhipu', 'doubao', 'ollama', … + apiKey: process.env.SILICONFLOW_API_KEY!, + model: "BAAI/bge-m3", + }); + ``` + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 diff --git a/packages/plugins/embedder-openai/package.json b/packages/plugins/embedder-openai/package.json index 39b747877b..efd5e02a69 100644 --- a/packages/plugins/embedder-openai/package.json +++ b/packages/plugins/embedder-openai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/embedder-openai", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "OpenAI-compatible embedder for ObjectStack — works against OpenAI, 阿里通义 DashScope, 智谱 BigModel, 硅基流动 SiliconFlow, 火山引擎 Doubao, MiniMax, Ollama, and any drop-in OpenAI-shape endpoint.", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-memory/CHANGELOG.md b/packages/plugins/knowledge-memory/CHANGELOG.md index 805593bb33..ffe4bbb9b8 100644 --- a/packages/plugins/knowledge-memory/CHANGELOG.md +++ b/packages/plugins/knowledge-memory/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/knowledge-memory +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/service-knowledge@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/knowledge-memory/package.json b/packages/plugins/knowledge-memory/package.json index 4fad17a9cc..73f6aac1c6 100644 --- a/packages/plugins/knowledge-memory/package.json +++ b/packages/plugins/knowledge-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-memory", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "In-memory knowledge adapter for ObjectStack (dev / test reference implementation).", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-ragflow/CHANGELOG.md b/packages/plugins/knowledge-ragflow/CHANGELOG.md index 65f9ac5825..f1051ddb57 100644 --- a/packages/plugins/knowledge-ragflow/CHANGELOG.md +++ b/packages/plugins/knowledge-ragflow/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/knowledge-ragflow +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/service-knowledge@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/knowledge-ragflow/package.json b/packages/plugins/knowledge-ragflow/package.json index 7c5ea8ed05..2ee59746aa 100644 --- a/packages/plugins/knowledge-ragflow/package.json +++ b/packages/plugins/knowledge-ragflow/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-ragflow", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "RAGFlow knowledge adapter for ObjectStack — production-grade RAG via the Apache 2.0 RAGFlow REST API.", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-turso/CHANGELOG.md b/packages/plugins/knowledge-turso/CHANGELOG.md index dcea57003b..6a01ecfdde 100644 --- a/packages/plugins/knowledge-turso/CHANGELOG.md +++ b/packages/plugins/knowledge-turso/CHANGELOG.md @@ -1,5 +1,109 @@ # @objectstack/knowledge-turso +## 7.0.0 + +### Minor Changes + +- 430067b: Introduce `IEmbedder` protocol and extract `@objectstack/embedder-openai` plugin. + + **What's new** + + - **`IEmbedder` contract** (`@objectstack/spec/contracts/embedder.ts`) — protocol-level interface for text → vector providers. One contract covers cloud APIs (OpenAI / 阿里通义 / 智谱 / 硅基流动 / 火山 Doubao / MiniMax), local Ollama daemons, and in-process embedders. + - **`@objectstack/embedder-openai`** — new package. Drop-in for any OpenAI-shape endpoint via `baseUrl`. Ships preset constants for 8 mainstream providers (`createOpenAIEmbedder({ preset: 'siliconflow', ... })`) and pre-baked dimensions for 16+ popular models. + + **Breaking changes (`@objectstack/knowledge-turso`)** + + - `OpenAIEmbeddingProvider` is **removed** — install `@objectstack/embedder-openai` and use `OpenAIEmbedder` instead (identical option shape). + - `EmbeddingProvider` type alias kept as a deprecated re-export of `IEmbedder` for smoother migration; will be removed in a future major. + - `HashEmbeddingProvider` is now an alias for the renamed `HashEmbedder` class — no functional change. + + **Migration** + + ```diff + - import { OpenAIEmbeddingProvider } from '@objectstack/knowledge-turso'; + + import { OpenAIEmbedder } from '@objectstack/embedder-openai'; + + - const embedding = new OpenAIEmbeddingProvider({ apiKey }); + + const embedding = new OpenAIEmbedder({ apiKey }); + ``` + + For 国内 providers, use presets: + + ```ts + import { createOpenAIEmbedder } from "@objectstack/embedder-openai"; + const embedding = createOpenAIEmbedder({ + preset: "siliconflow", // or 'dashscope', 'zhipu', 'doubao', 'ollama', … + apiKey: process.env.SILICONFLOW_API_KEY!, + model: "BAAI/bge-m3", + }); + ``` + +- 4f9e9d4: Settings → runtime bridge: `embedder_*` settings now build a real + `IEmbedder` and register it as a kernel-level DI service. + + **`@objectstack/spec`** + + - Exports `EMBEDDER_SERVICE = 'embedder'` from `contracts/embedder.ts` + as the canonical DI token for the kernel-registered embedder. + + **`@objectstack/service-ai`** + + - Adds `@objectstack/embedder-openai` as an **optional peer dependency** + (matches the `@ai-sdk/*` provider plugins pattern). + - `AIServicePlugin.bindSettings()` now also: + - Reads `embedder_provider` / `embedder_api_key` / `embedder_model` / + `embedder_base_url` / `embedder_dimensions` from the `ai` namespace. + - Dynamically imports `@objectstack/embedder-openai` and constructs + an `OpenAIEmbedder` via `createOpenAIEmbedder({ preset, … })`. + - Registers / replaces the instance under `EMBEDDER_SERVICE`. When + the operator sets `embedder_provider = none`, the service is left + unset so adapters can fail fast with a clear message. + - Subscribes to `settings:changed` for the `ai` namespace so embedder + swaps go live without restart (mirrors the chat-adapter pattern). + - Overrides the manifest's fallback `ai/test_embedder` action with a + live one-shot `embed(['ping'])` round-trip against the form's + (possibly unsaved) values. Reports vector dims + latency. + + **`@objectstack/knowledge-turso`** + + - `KnowledgeTursoPlugin`'s `embedding` constructor option is now + **optional**. When omitted, the plugin resolves `EMBEDDER_SERVICE` + from the kernel at `start()` time — typically the embedder built by + `@objectstack/service-ai` from the `ai` settings namespace. + - Explicit `embedding` still wins when both are present (useful for + tests and multi-embedder setups). + - Logs `(embedder=, dims=)` on adapter registration so operators + can confirm wiring at a glance. + - When neither path resolves, the plugin warns with a one-line hint + pointing to `Settings → AI & Embedder` and no-ops gracefully (the + host kernel still boots). + + **Tests** + + - `service-ai`: +5 cases (now 85) covering `ai/test_embedder` action + registration, `provider=none` warning, missing-api-key error, + custom-provider-without-base-URL error, and the full happy path + (mocked fetch → embedder registered under `EMBEDDER_SERVICE` → + test_embedder action returns vector dims). + - `knowledge-turso`: new `plugin.test.ts` (+5 cases) covering deferred + construction, EMBEDDER_SERVICE fallback, explicit-wins precedence, + missing-both warn-and-noop, and missing-knowledge-service warn. + + End-to-end now possible: operator opens **Settings → AI & Embedder**, + picks 硅基流动 + paste API key + chooses `BAAI/bge-m3`, hits **Save**. + Within the same process, `EMBEDDER_SERVICE` is registered/replaced, + `KnowledgeTursoPlugin` (if started without an explicit embedder) + picks it up, and subsequent `knowledge.search()` calls embed via the + new provider — no restart, no env vars. + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/service-knowledge@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/knowledge-turso/package.json b/packages/plugins/knowledge-turso/package.json index f72dab33bf..7402d1a753 100644 --- a/packages/plugins/knowledge-turso/package.json +++ b/packages/plugins/knowledge-turso/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-turso", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Turso/libSQL native-vector knowledge adapter for ObjectStack — F32_BLOB + DiskANN.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-approvals/CHANGELOG.md b/packages/plugins/plugin-approvals/CHANGELOG.md index c7dc7a6cbf..9a98fbe077 100644 --- a/packages/plugins/plugin-approvals/CHANGELOG.md +++ b/packages/plugins/plugin-approvals/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/plugin-approvals +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/formula@7.0.0 + - @objectstack/metadata-core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-approvals/package.json b/packages/plugins/plugin-approvals/package.json index 385207f7dc..bd497f5bd7 100644 --- a/packages/plugins/plugin-approvals/package.json +++ b/packages/plugins/plugin-approvals/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-approvals", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Multi-step approval engine for ObjectStack — sys_approval_process + sys_approval_request + sys_approval_action + IApprovalService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-audit/CHANGELOG.md b/packages/plugins/plugin-audit/CHANGELOG.md index 36324939e4..2c2d08c652 100644 --- a/packages/plugins/plugin-audit/CHANGELOG.md +++ b/packages/plugins/plugin-audit/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-audit +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-audit/package.json b/packages/plugins/plugin-audit/package.json index ef34e27eb9..73c4a02d7e 100644 --- a/packages/plugins/plugin-audit/package.json +++ b/packages/plugins/plugin-audit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-audit", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Audit Plugin for ObjectStack — System audit log object and audit trail", "main": "dist/index.js", diff --git a/packages/plugins/plugin-auth/CHANGELOG.md b/packages/plugins/plugin-auth/CHANGELOG.md index c4f5e897ae..98b506b278 100644 --- a/packages/plugins/plugin-auth/CHANGELOG.md +++ b/packages/plugins/plugin-auth/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-auth/package.json b/packages/plugins/plugin-auth/package.json index b69325b22a..d4f00dfce8 100644 --- a/packages/plugins/plugin-auth/package.json +++ b/packages/plugins/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-auth", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Authentication & Identity Plugin for ObjectStack", "main": "dist/index.js", diff --git a/packages/plugins/plugin-dev/CHANGELOG.md b/packages/plugins/plugin-dev/CHANGELOG.md index 0508dd9fcd..339f01eed3 100644 --- a/packages/plugins/plugin-dev/CHANGELOG.md +++ b/packages/plugins/plugin-dev/CHANGELOG.md @@ -1,5 +1,25 @@ # @objectstack/plugin-dev +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/spec@7.0.0 + - @objectstack/runtime@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/objectql@7.0.0 + - @objectstack/driver-memory@7.0.0 + - @objectstack/plugin-auth@7.0.0 + - @objectstack/plugin-hono-server@7.0.0 + - @objectstack/plugin-security@7.0.0 + - @objectstack/rest@7.0.0 + - @objectstack/service-i18n@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-dev/package.json b/packages/plugins/plugin-dev/package.json index f2cbc146c0..0886dad18a 100644 --- a/packages/plugins/plugin-dev/package.json +++ b/packages/plugins/plugin-dev/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-dev", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Development Mode Plugin for ObjectStack — auto-enables all services with in-memory implementations", "main": "dist/index.js", diff --git a/packages/plugins/plugin-email/CHANGELOG.md b/packages/plugins/plugin-email/CHANGELOG.md index cdfb5a4a3e..a9769914f9 100644 --- a/packages/plugins/plugin-email/CHANGELOG.md +++ b/packages/plugins/plugin-email/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-email +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-email/package.json b/packages/plugins/plugin-email/package.json index bed6a2ae3b..3d03e0cf26 100644 --- a/packages/plugins/plugin-email/package.json +++ b/packages/plugins/plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-email", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Email service plugin for ObjectStack — IEmailService + transport-pluggable outbound delivery with sys_email persistence.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-hono-server/CHANGELOG.md b/packages/plugins/plugin-hono-server/CHANGELOG.md index c8e517e1e3..1083c42869 100644 --- a/packages/plugins/plugin-hono-server/CHANGELOG.md +++ b/packages/plugins/plugin-hono-server/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/plugin-hono-server +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-hono-server/package.json b/packages/plugins/plugin-hono-server/package.json index afeeaa0930..ee40eebfdd 100644 --- a/packages/plugins/plugin-hono-server/package.json +++ b/packages/plugins/plugin-hono-server/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-hono-server", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Standard Hono Server Adapter for ObjectStack Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-mcp-server/CHANGELOG.md b/packages/plugins/plugin-mcp-server/CHANGELOG.md index 66b70f0881..e3f712074b 100644 --- a/packages/plugins/plugin-mcp-server/CHANGELOG.md +++ b/packages/plugins/plugin-mcp-server/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/plugin-mcp-server +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-mcp-server/package.json b/packages/plugins/plugin-mcp-server/package.json index 404c1ab6d7..ca68fe88e3 100644 --- a/packages/plugins/plugin-mcp-server/package.json +++ b/packages/plugins/plugin-mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-mcp-server", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "MCP Runtime Server Plugin for ObjectStack — exposes AI tools, data resources, and agent prompts via the Model Context Protocol", "type": "module", diff --git a/packages/plugins/plugin-msw/CHANGELOG.md b/packages/plugins/plugin-msw/CHANGELOG.md index 8ea7ff576b..67aad10821 100644 --- a/packages/plugins/plugin-msw/CHANGELOG.md +++ b/packages/plugins/plugin-msw/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/plugin-msw +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [c5efe15] +- Updated dependencies [4944f3a] +- Updated dependencies [e0c593f] + - @objectstack/spec@7.0.0 + - @objectstack/runtime@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/objectql@7.0.0 + - @objectstack/types@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-msw/package.json b/packages/plugins/plugin-msw/package.json index 5968566e83..3a04de6dd7 100644 --- a/packages/plugins/plugin-msw/package.json +++ b/packages/plugins/plugin-msw/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-msw", - "version": "6.6.0", + "version": "7.0.0", "description": "MSW (Mock Service Worker) Plugin for ObjectStack Runtime", "license": "Apache-2.0", "main": "dist/index.js", diff --git a/packages/plugins/plugin-reports/CHANGELOG.md b/packages/plugins/plugin-reports/CHANGELOG.md index b370688639..4902d810f0 100644 --- a/packages/plugins/plugin-reports/CHANGELOG.md +++ b/packages/plugins/plugin-reports/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-reports +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-reports/package.json b/packages/plugins/plugin-reports/package.json index 34f9f17326..0273924b78 100644 --- a/packages/plugins/plugin-reports/package.json +++ b/packages/plugins/plugin-reports/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-reports", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Saved reports + scheduled email digests for ObjectStack — sys_saved_report + sys_report_schedule + IReportService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-security/CHANGELOG.md b/packages/plugins/plugin-security/CHANGELOG.md index f58bbebda5..b9edae14dc 100644 --- a/packages/plugins/plugin-security/CHANGELOG.md +++ b/packages/plugins/plugin-security/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-security +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-security/package.json b/packages/plugins/plugin-security/package.json index 2263e13ecf..dd93259ba8 100644 --- a/packages/plugins/plugin-security/package.json +++ b/packages/plugins/plugin-security/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-security", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Security Plugin for ObjectStack — RBAC, RLS, and Field-Level Security Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-sharing/CHANGELOG.md b/packages/plugins/plugin-sharing/CHANGELOG.md index 6fd5ccd890..ab16d2b89d 100644 --- a/packages/plugins/plugin-sharing/CHANGELOG.md +++ b/packages/plugins/plugin-sharing/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-sharing +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/objectql@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-sharing/package.json b/packages/plugins/plugin-sharing/package.json index ca9fc3d723..b5ce40cc88 100644 --- a/packages/plugins/plugin-sharing/package.json +++ b/packages/plugins/plugin-sharing/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-sharing", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Record-level sharing for ObjectStack — sys_record_share + middleware that enforces sharingModel + ISharingService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-webhooks/CHANGELOG.md b/packages/plugins/plugin-webhooks/CHANGELOG.md index f0ea81561f..2bf75e706c 100644 --- a/packages/plugins/plugin-webhooks/CHANGELOG.md +++ b/packages/plugins/plugin-webhooks/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-webhooks +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/service-cluster@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/plugins/plugin-webhooks/package.json b/packages/plugins/plugin-webhooks/package.json index efc631858e..a6b17f1622 100644 --- a/packages/plugins/plugin-webhooks/package.json +++ b/packages/plugins/plugin-webhooks/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-webhooks", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Persistent, cluster-aware webhook dispatcher. Durable outbox + per-partition cluster.lock for exactly-once-ish delivery across nodes. See content/docs/concepts/webhook-delivery.mdx.", "type": "module", diff --git a/packages/rest/CHANGELOG.md b/packages/rest/CHANGELOG.md index ae48bbde9d..c460158d3d 100644 --- a/packages/rest/CHANGELOG.md +++ b/packages/rest/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/rest +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/service-package@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/rest/package.json b/packages/rest/package.json index 5bc03342d3..a06e8c5bf2 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/rest", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "ObjectStack REST API Server - automatic REST endpoint generation from protocol", "type": "module", diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md index 8217eeb738..98ee014467 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -1,5 +1,73 @@ # @objectstack/runtime +## 7.0.0 + +### Patch Changes + +- c5efe15: Remove residual coupling to the (already-extracted) `@objectstack/service-cloud` package. + + The cloud distribution was migrated to a separate repo a while back, but the open-core CLI still carried: + + - A dynamic `import('@objectstack/service-cloud')` in the boot-mode dispatch for `cloud` / `runtime` modes. + - A dev-mode auto-mount that tried to load `createSingleEnvironmentPlugin` from the cloud package (now fully covered by the built-in `RuntimeConfigPlugin`). + - An ambient `.d.ts` stub for `@objectstack/service-cloud`. + - A leftover empty `packages/services/service-cloud/` directory (only stale `dist/` + `node_modules/`). + - Several doc-comment references. + + All gone. The open-core CLI now supports `bootMode: 'standalone'` only — non-standalone modes throw a clear error pointing users to the cloud distribution. No runtime behavior change for standalone users. + +- 4944f3a: Fix `npx @objectstack/cli start` crashing with `Cannot find package +'@objectstack/metadata'` (and friends). + + `@objectstack/runtime` dynamically `import()`s `@objectstack/metadata`, + `@objectstack/objectql`, and the storage drivers (`driver-memory`, + `driver-sql`, `driver-sqlite-wasm`, `driver-turso`) from + `createStandaloneStack` / `createDefaultHostConfig`, but they were only + listed in `devDependencies` — so when the package was installed from npm + (rather than the workspace) these imports failed at boot. + + They are now declared as real `dependencies`. `@objectstack/driver-mongodb` + remains an `optionalDependency` because the standalone stack only loads + it when the user passes a `mongodb://` URL (the failure path already has + a friendly error message). + + Also adds a small quick-start CLI command (`objectstack start`) that + auto-creates `~/.objectstack/{data,dist,auth-secret}`, boots an empty + kernel with Studio + marketplace mounted, and lets users install apps at + runtime — no `objectstack.config.ts` required. + +- e0c593f: Make `@objectstack/driver-turso` an **optional peer dependency** so default `npx @objectstack/cli start` no longer installs `@libsql/client` (~5MB + native binaries) nor `libsql` native modules. + + Rationale: `objectstack start` defaults to `file:` URLs which route to `better-sqlite3` via `driver-sql` (10–15× faster than libsql for OLTP, see benchmarks). For RAG / vector workloads, `sqlite-vec` (~600KB) is the recommended local backend. Turso / libsql is only useful when the user explicitly opts in via `libsql://` / `https://` / `--database-driver turso`. + + Changes: + + - `packages/cli/package.json`: moved `@objectstack/driver-turso` from `dependencies` to optional `peerDependencies` (`peerDependenciesMeta.optional = true`). npm 7+ does **not** auto-install optional peers; `optionalDependencies` would have still installed it. + - `packages/runtime/package.json`: same. + - All three dynamic-import sites for `driver-turso` (`runtime/src/standalone-stack.ts`, `runtime/src/cloud/artifact-environment-registry.ts`, `cli/src/commands/serve.ts`) now wrap the `import()` in try/catch with an actionable error message pointing users to `npm install @objectstack/driver-turso`. + + Verified in `/tmp/os-sim`: fresh `npm install @objectstack/cli` no longer contains `node_modules/@libsql`, `node_modules/libsql`, or `node_modules/@objectstack/driver-turso`. `objectstack start` boots cleanly with better-sqlite3; `--database libsql://…` produces the friendly error. + +- Updated dependencies [4944f3a] +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/driver-sql@7.0.0 + - @objectstack/spec@7.0.0 + - @objectstack/driver-sqlite-wasm@7.0.0 + - @objectstack/driver-turso@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/formula@7.0.0 + - @objectstack/metadata@7.0.0 + - @objectstack/objectql@7.0.0 + - @objectstack/observability@7.0.0 + - @objectstack/driver-memory@7.0.0 + - @objectstack/plugin-auth@7.0.0 + - @objectstack/plugin-security@7.0.0 + - @objectstack/rest@7.0.0 + - @objectstack/service-cluster@7.0.0 + - @objectstack/service-i18n@7.0.0 + - @objectstack/types@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 1416b77c7f..3728ad137c 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/runtime", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "ObjectStack Core Runtime & Query Engine", "type": "module", diff --git a/packages/services/service-ai/CHANGELOG.md b/packages/services/service-ai/CHANGELOG.md index fb7497538b..f15def5b44 100644 --- a/packages/services/service-ai/CHANGELOG.md +++ b/packages/services/service-ai/CHANGELOG.md @@ -1,5 +1,75 @@ # @objectstack/service-ai +## 7.0.0 + +### Minor Changes + +- 4f9e9d4: Settings → runtime bridge: `embedder_*` settings now build a real + `IEmbedder` and register it as a kernel-level DI service. + + **`@objectstack/spec`** + + - Exports `EMBEDDER_SERVICE = 'embedder'` from `contracts/embedder.ts` + as the canonical DI token for the kernel-registered embedder. + + **`@objectstack/service-ai`** + + - Adds `@objectstack/embedder-openai` as an **optional peer dependency** + (matches the `@ai-sdk/*` provider plugins pattern). + - `AIServicePlugin.bindSettings()` now also: + - Reads `embedder_provider` / `embedder_api_key` / `embedder_model` / + `embedder_base_url` / `embedder_dimensions` from the `ai` namespace. + - Dynamically imports `@objectstack/embedder-openai` and constructs + an `OpenAIEmbedder` via `createOpenAIEmbedder({ preset, … })`. + - Registers / replaces the instance under `EMBEDDER_SERVICE`. When + the operator sets `embedder_provider = none`, the service is left + unset so adapters can fail fast with a clear message. + - Subscribes to `settings:changed` for the `ai` namespace so embedder + swaps go live without restart (mirrors the chat-adapter pattern). + - Overrides the manifest's fallback `ai/test_embedder` action with a + live one-shot `embed(['ping'])` round-trip against the form's + (possibly unsaved) values. Reports vector dims + latency. + + **`@objectstack/knowledge-turso`** + + - `KnowledgeTursoPlugin`'s `embedding` constructor option is now + **optional**. When omitted, the plugin resolves `EMBEDDER_SERVICE` + from the kernel at `start()` time — typically the embedder built by + `@objectstack/service-ai` from the `ai` settings namespace. + - Explicit `embedding` still wins when both are present (useful for + tests and multi-embedder setups). + - Logs `(embedder=, dims=)` on adapter registration so operators + can confirm wiring at a glance. + - When neither path resolves, the plugin warns with a one-line hint + pointing to `Settings → AI & Embedder` and no-ops gracefully (the + host kernel still boots). + + **Tests** + + - `service-ai`: +5 cases (now 85) covering `ai/test_embedder` action + registration, `provider=none` warning, missing-api-key error, + custom-provider-without-base-URL error, and the full happy path + (mocked fetch → embedder registered under `EMBEDDER_SERVICE` → + test_embedder action returns vector dims). + - `knowledge-turso`: new `plugin.test.ts` (+5 cases) covering deferred + construction, EMBEDDER_SERVICE fallback, explicit-wins precedence, + missing-both warn-and-noop, and missing-knowledge-service warn. + + End-to-end now possible: operator opens **Settings → AI & Embedder**, + picks 硅基流动 + paste API key + chooses `BAAI/bge-m3`, hits **Save**. + Within the same process, `EMBEDDER_SERVICE` is registered/replaced, + `KnowledgeTursoPlugin` (if started without an explicit embedder) + picks it up, and subsequent `knowledge.search()` calls embed via the + new provider — no restart, no env vars. + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/embedder-openai@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-ai/package.json b/packages/services/service-ai/package.json index a4a0ee9b92..44efed094b 100644 --- a/packages/services/service-ai/package.json +++ b/packages/services/service-ai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-ai", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "AI Service for ObjectStack — implements IAIService with LLM adapter layer, conversation management, tool registry, and REST/SSE routes", "type": "module", diff --git a/packages/services/service-analytics/CHANGELOG.md b/packages/services/service-analytics/CHANGELOG.md index cc4b3b827b..0104f20e01 100644 --- a/packages/services/service-analytics/CHANGELOG.md +++ b/packages/services/service-analytics/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog — @objectstack/service-analytics +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-analytics/package.json b/packages/services/service-analytics/package.json index 4dd32fba15..899f6eb090 100644 --- a/packages/services/service-analytics/package.json +++ b/packages/services/service-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-analytics", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Analytics Service for ObjectStack — implements IAnalyticsService with multi-driver strategy pattern (NativeSQL, ObjectQL, InMemory)", "type": "module", diff --git a/packages/services/service-automation/CHANGELOG.md b/packages/services/service-automation/CHANGELOG.md index f06e1b7507..23b13307f7 100644 --- a/packages/services/service-automation/CHANGELOG.md +++ b/packages/services/service-automation/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-automation +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/formula@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-automation/package.json b/packages/services/service-automation/package.json index 04550263be..b91f830ec3 100644 --- a/packages/services/service-automation/package.json +++ b/packages/services/service-automation/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-automation", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Automation Service for ObjectStack — implements IAutomationService with plugin-based DAG flow execution engine", "type": "module", diff --git a/packages/services/service-cache/CHANGELOG.md b/packages/services/service-cache/CHANGELOG.md index f6d0008ceb..5649e75d42 100644 --- a/packages/services/service-cache/CHANGELOG.md +++ b/packages/services/service-cache/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-cache +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/observability@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-cache/package.json b/packages/services/service-cache/package.json index eb7d75b55d..c9db4beec0 100644 --- a/packages/services/service-cache/package.json +++ b/packages/services/service-cache/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cache", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Cache Service for ObjectStack — implements ICacheService with in-memory and Redis adapters", "type": "module", diff --git a/packages/services/service-cluster-redis/CHANGELOG.md b/packages/services/service-cluster-redis/CHANGELOG.md index 7ab30a1892..eecc5327da 100644 --- a/packages/services/service-cluster-redis/CHANGELOG.md +++ b/packages/services/service-cluster-redis/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-cluster-redis +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/service-cluster@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-cluster-redis/package.json b/packages/services/service-cluster-redis/package.json index b1c2777d35..53554de43e 100644 --- a/packages/services/service-cluster-redis/package.json +++ b/packages/services/service-cluster-redis/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster-redis", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Redis cluster driver for ObjectStack — implements IPubSub/ILock/IKV/ICounter against Redis using ioredis.", "type": "module", diff --git a/packages/services/service-cluster/CHANGELOG.md b/packages/services/service-cluster/CHANGELOG.md index e365798aac..5151a9548f 100644 --- a/packages/services/service-cluster/CHANGELOG.md +++ b/packages/services/service-cluster/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-cluster +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-cluster/package.json b/packages/services/service-cluster/package.json index e50ccf6334..9f0e59913d 100644 --- a/packages/services/service-cluster/package.json +++ b/packages/services/service-cluster/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Cluster Service for ObjectStack — pluggable PubSub/Lock/KV/Counter primitives. Memory driver included; postgres/redis drivers ship separately.", "type": "module", diff --git a/packages/services/service-feed/CHANGELOG.md b/packages/services/service-feed/CHANGELOG.md index c1020f3ac4..e5e03668f7 100644 --- a/packages/services/service-feed/CHANGELOG.md +++ b/packages/services/service-feed/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-feed +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-feed/package.json b/packages/services/service-feed/package.json index 3746dbf196..6be30bc938 100644 --- a/packages/services/service-feed/package.json +++ b/packages/services/service-feed/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-feed", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Feed/Chatter Service for ObjectStack — implements IFeedService with in-memory adapter for comments, reactions, field changes, and record subscriptions", "type": "module", diff --git a/packages/services/service-i18n/CHANGELOG.md b/packages/services/service-i18n/CHANGELOG.md index a61952338e..91d94598f1 100644 --- a/packages/services/service-i18n/CHANGELOG.md +++ b/packages/services/service-i18n/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-i18n +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-i18n/package.json b/packages/services/service-i18n/package.json index 258bcd9240..fcfd93aa74 100644 --- a/packages/services/service-i18n/package.json +++ b/packages/services/service-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-i18n", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "I18n Service for ObjectStack — implements II18nService with file-based locale loading", "type": "module", diff --git a/packages/services/service-job/CHANGELOG.md b/packages/services/service-job/CHANGELOG.md index bef9ec0c1a..b2c03b917d 100644 --- a/packages/services/service-job/CHANGELOG.md +++ b/packages/services/service-job/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/service-job +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-job/package.json b/packages/services/service-job/package.json index e38cadf566..31cee1df18 100644 --- a/packages/services/service-job/package.json +++ b/packages/services/service-job/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-job", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Job Service for ObjectStack — implements IJobService with setInterval and cron scheduling", "type": "module", diff --git a/packages/services/service-knowledge/CHANGELOG.md b/packages/services/service-knowledge/CHANGELOG.md index 0e0d431068..e6c5337677 100644 --- a/packages/services/service-knowledge/CHANGELOG.md +++ b/packages/services/service-knowledge/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-knowledge +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-knowledge/package.json b/packages/services/service-knowledge/package.json index 693b7b9c0f..14cfecd04b 100644 --- a/packages/services/service-knowledge/package.json +++ b/packages/services/service-knowledge/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-knowledge", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Knowledge Service for ObjectStack — orchestrator implementing IKnowledgeService over pluggable IKnowledgeAdapter backends (RAGFlow, LlamaIndex, Dify, in-memory).", "type": "module", diff --git a/packages/services/service-package/CHANGELOG.md b/packages/services/service-package/CHANGELOG.md index 44aa345096..b76e9c664b 100644 --- a/packages/services/service-package/CHANGELOG.md +++ b/packages/services/service-package/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-package +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-package/package.json b/packages/services/service-package/package.json index 4f8ce294eb..2e89dc07fb 100644 --- a/packages/services/service-package/package.json +++ b/packages/services/service-package/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-package", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Package management service for ObjectStack — publish, install, and manage packages", "type": "module", diff --git a/packages/services/service-queue/CHANGELOG.md b/packages/services/service-queue/CHANGELOG.md index 946a3f1eb1..4c42b5cab5 100644 --- a/packages/services/service-queue/CHANGELOG.md +++ b/packages/services/service-queue/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/service-queue +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-queue/package.json b/packages/services/service-queue/package.json index 2805fece67..716765f607 100644 --- a/packages/services/service-queue/package.json +++ b/packages/services/service-queue/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-queue", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Queue Service for ObjectStack — implements IQueueService with in-memory and BullMQ adapters", "type": "module", diff --git a/packages/services/service-realtime/CHANGELOG.md b/packages/services/service-realtime/CHANGELOG.md index c96912c567..f98499eec5 100644 --- a/packages/services/service-realtime/CHANGELOG.md +++ b/packages/services/service-realtime/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/service-realtime +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-realtime/package.json b/packages/services/service-realtime/package.json index 1b3da4f341..3d680e8438 100644 --- a/packages/services/service-realtime/package.json +++ b/packages/services/service-realtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-realtime", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Realtime Service for ObjectStack — implements IRealtimeService with WebSocket and in-memory pub/sub", "type": "module", diff --git a/packages/services/service-settings/CHANGELOG.md b/packages/services/service-settings/CHANGELOG.md index 7be01a3609..9d07b73897 100644 --- a/packages/services/service-settings/CHANGELOG.md +++ b/packages/services/service-settings/CHANGELOG.md @@ -1,5 +1,78 @@ # @objectstack/service-settings +## 7.0.0 + +### Minor Changes + +- 4f9e9d4: Setup App: complete the Configuration settings pages. + + **Setup App navigation** + + The Configuration group now lists every built-in settings namespace + (previously Storage was missing entirely, and Knowledge had no entry): + + - Branding · Email · **File Storage** · **AI & Embedder** · **Knowledge** · Feature Flags + + Order in the left-nav now matches `builtinSettingsManifests` so the + "All Settings" index and the left-nav stay aligned. + + **AI manifest — embedder section** + + `ai.manifest.ts` now ships an Embedder section in addition to the + existing chat-LLM section. Knobs: + + - `embedder_provider` — `none` (default) / `openai` / `azure` / + `dashscope` (阿里通义) / `zhipu` (智谱) / `siliconflow` (硅基流动) / + `doubao` (火山引擎) / `minimax` / `ollama` / `custom`. Preset list + mirrors `@objectstack/embedder-openai`'s `OPENAI_COMPATIBLE_PRESETS`. + - `embedder_api_key` — encrypted password. + - `embedder_model` — free text with documented examples per provider. + - `embedder_base_url` — visible for `custom` / `azure` only. + - `embedder_dimensions` — optional Matryoshka override. + - `embedder_batch_size` — `embed()` chunk batch size. + - Test action wired to `POST /api/settings/ai/test_embedder` — fallback + validates form completeness; real probe lives in `service-ai` / + `service-knowledge`. + + **New `knowledge` settings manifest** + + `knowledge.manifest.ts` is the canonical surface for RAG infrastructure: + + - `adapter` — `memory` / `turso` / `ragflow`. + - Turso group — `turso_url` (libsql://, file:, :memory:) + encrypted + `turso_auth_token`. Leaving URL blank means "reuse the tenant's + primary libSQL connection" — the recommended cloud setup. + - RAGFlow group — base URL + encrypted API key + default dataset id. + - Indexing defaults — `chunk_target`, `chunk_overlap`, `over_fetch`. + - Permissions — `enforce_rls` defaults to `true` (security-critical; + toggling off skips the platform's unique RLS re-check on every hit). + - Test action wired to `POST /api/settings/knowledge/test`. + + **Translations** + + Full `ai` and `knowledge` translation blocks added to both `en.ts` and + `zh-CN.ts`. Storage block had translations already. + + **Tests** + + - `ai.manifest.test.ts`: +5 cases covering embedder select, encryption, + test action wiring, and embedder handler validation across 5 provider + shapes (none / ollama / OpenAI-compatible cloud / custom / azure). + - `knowledge.manifest.test.ts`: 20 new cases covering manifest shape, + adapter selection, secret encryption, default `enforce_rls=true`, + test handler validation across all 3 adapters and payload merging. + + 78/78 tests pass in `@objectstack/service-settings`. + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/platform-objects@7.0.0 + - @objectstack/core@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-settings/package.json b/packages/services/service-settings/package.json index 18e53d2ac1..d889222700 100644 --- a/packages/services/service-settings/package.json +++ b/packages/services/service-settings/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-settings", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Settings service for ObjectStack — manifest registry + K/V resolver (Env > Tenant > User > Default) + REST routes. See ADR-0007.", "type": "module", diff --git a/packages/services/service-storage/CHANGELOG.md b/packages/services/service-storage/CHANGELOG.md index 7648219ea7..0d408a02fd 100644 --- a/packages/services/service-storage/CHANGELOG.md +++ b/packages/services/service-storage/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-storage +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + - @objectstack/core@7.0.0 + - @objectstack/observability@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/services/service-storage/package.json b/packages/services/service-storage/package.json index 662e701e4e..9a5c91ef49 100644 --- a/packages/services/service-storage/package.json +++ b/packages/services/service-storage/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-storage", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Storage Service for ObjectStack — implements IStorageService with local filesystem and S3 adapter skeleton", "type": "module", diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index dc79ed3cd9..1740885893 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -1,5 +1,101 @@ # @objectstack/spec +## 7.0.0 + +### Minor Changes + +- 430067b: Introduce `IEmbedder` protocol and extract `@objectstack/embedder-openai` plugin. + + **What's new** + + - **`IEmbedder` contract** (`@objectstack/spec/contracts/embedder.ts`) — protocol-level interface for text → vector providers. One contract covers cloud APIs (OpenAI / 阿里通义 / 智谱 / 硅基流动 / 火山 Doubao / MiniMax), local Ollama daemons, and in-process embedders. + - **`@objectstack/embedder-openai`** — new package. Drop-in for any OpenAI-shape endpoint via `baseUrl`. Ships preset constants for 8 mainstream providers (`createOpenAIEmbedder({ preset: 'siliconflow', ... })`) and pre-baked dimensions for 16+ popular models. + + **Breaking changes (`@objectstack/knowledge-turso`)** + + - `OpenAIEmbeddingProvider` is **removed** — install `@objectstack/embedder-openai` and use `OpenAIEmbedder` instead (identical option shape). + - `EmbeddingProvider` type alias kept as a deprecated re-export of `IEmbedder` for smoother migration; will be removed in a future major. + - `HashEmbeddingProvider` is now an alias for the renamed `HashEmbedder` class — no functional change. + + **Migration** + + ```diff + - import { OpenAIEmbeddingProvider } from '@objectstack/knowledge-turso'; + + import { OpenAIEmbedder } from '@objectstack/embedder-openai'; + + - const embedding = new OpenAIEmbeddingProvider({ apiKey }); + + const embedding = new OpenAIEmbedder({ apiKey }); + ``` + + For 国内 providers, use presets: + + ```ts + import { createOpenAIEmbedder } from "@objectstack/embedder-openai"; + const embedding = createOpenAIEmbedder({ + preset: "siliconflow", // or 'dashscope', 'zhipu', 'doubao', 'ollama', … + apiKey: process.env.SILICONFLOW_API_KEY!, + model: "BAAI/bge-m3", + }); + ``` + +- 4f9e9d4: Settings → runtime bridge: `embedder_*` settings now build a real + `IEmbedder` and register it as a kernel-level DI service. + + **`@objectstack/spec`** + + - Exports `EMBEDDER_SERVICE = 'embedder'` from `contracts/embedder.ts` + as the canonical DI token for the kernel-registered embedder. + + **`@objectstack/service-ai`** + + - Adds `@objectstack/embedder-openai` as an **optional peer dependency** + (matches the `@ai-sdk/*` provider plugins pattern). + - `AIServicePlugin.bindSettings()` now also: + - Reads `embedder_provider` / `embedder_api_key` / `embedder_model` / + `embedder_base_url` / `embedder_dimensions` from the `ai` namespace. + - Dynamically imports `@objectstack/embedder-openai` and constructs + an `OpenAIEmbedder` via `createOpenAIEmbedder({ preset, … })`. + - Registers / replaces the instance under `EMBEDDER_SERVICE`. When + the operator sets `embedder_provider = none`, the service is left + unset so adapters can fail fast with a clear message. + - Subscribes to `settings:changed` for the `ai` namespace so embedder + swaps go live without restart (mirrors the chat-adapter pattern). + - Overrides the manifest's fallback `ai/test_embedder` action with a + live one-shot `embed(['ping'])` round-trip against the form's + (possibly unsaved) values. Reports vector dims + latency. + + **`@objectstack/knowledge-turso`** + + - `KnowledgeTursoPlugin`'s `embedding` constructor option is now + **optional**. When omitted, the plugin resolves `EMBEDDER_SERVICE` + from the kernel at `start()` time — typically the embedder built by + `@objectstack/service-ai` from the `ai` settings namespace. + - Explicit `embedding` still wins when both are present (useful for + tests and multi-embedder setups). + - Logs `(embedder=, dims=)` on adapter registration so operators + can confirm wiring at a glance. + - When neither path resolves, the plugin warns with a one-line hint + pointing to `Settings → AI & Embedder` and no-ops gracefully (the + host kernel still boots). + + **Tests** + + - `service-ai`: +5 cases (now 85) covering `ai/test_embedder` action + registration, `provider=none` warning, missing-api-key error, + custom-provider-without-base-URL error, and the full happy path + (mocked fetch → embedder registered under `EMBEDDER_SERVICE` → + test_embedder action returns vector dims). + - `knowledge-turso`: new `plugin.test.ts` (+5 cases) covering deferred + construction, EMBEDDER_SERVICE fallback, explicit-wins precedence, + missing-both warn-and-noop, and missing-knowledge-service warn. + + End-to-end now possible: operator opens **Settings → AI & Embedder**, + picks 硅基流动 + paste API key + chooses `BAAI/bge-m3`, hits **Save**. + Within the same process, `EMBEDDER_SERVICE` is registered/replaced, + `KnowledgeTursoPlugin` (if started without an explicit embedder) + picks it up, and subsequent `knowledge.search()` calls embed via the + new provider — no restart, no env vars. + ## 6.6.0 ### Minor Changes diff --git a/packages/spec/package.json b/packages/spec/package.json index 8720c687e0..3df701b3aa 100644 --- a/packages/spec/package.json +++ b/packages/spec/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/spec", - "version": "6.6.0", + "version": "7.0.0", "description": "ObjectStack Protocol & Specification - TypeScript Interfaces, JSON Schemas, and Convention Configurations", "license": "Apache-2.0", "main": "dist/index.js", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 9ca54f61fa..33415f72e9 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/types +## 7.0.0 + +### Patch Changes + +- Updated dependencies [430067b] +- Updated dependencies [4f9e9d4] + - @objectstack/spec@7.0.0 + ## 6.6.0 ### Patch Changes diff --git a/packages/types/package.json b/packages/types/package.json index 01e83da653..c8be2573b3 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/types", - "version": "6.6.0", + "version": "7.0.0", "license": "Apache-2.0", "description": "Shared interfaces describing the ObjectStack Runtime environment", "main": "dist/index.js", diff --git a/packages/vscode-objectstack/CHANGELOG.md b/packages/vscode-objectstack/CHANGELOG.md index 117e82f191..bc3280859f 100644 --- a/packages/vscode-objectstack/CHANGELOG.md +++ b/packages/vscode-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # objectstack-vscode +## 7.0.0 + ## 6.6.0 ## 6.5.1 diff --git a/packages/vscode-objectstack/package.json b/packages/vscode-objectstack/package.json index 21d88243fe..b0b358aa27 100644 --- a/packages/vscode-objectstack/package.json +++ b/packages/vscode-objectstack/package.json @@ -2,7 +2,7 @@ "name": "objectstack-vscode", "displayName": "ObjectStack", "description": "ObjectStack Protocol — Autocomplete, validation, and inline diagnostics for .object.ts, .view.ts, and objectstack.config.ts files", - "version": "6.6.0", + "version": "7.0.0", "publisher": "objectstack", "license": "Apache-2.0", "repository": {