deepspace 0.33.1 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +5 -1
  3. package/dist/{chunk-PZDVKSLI.js → chunk-ESEI3MMY.js} +2 -2
  4. package/dist/{chunk-PZDVKSLI.js.map → chunk-ESEI3MMY.js.map} +1 -1
  5. package/dist/chunk-ESYXTIV2.js +1957 -0
  6. package/dist/chunk-ESYXTIV2.js.map +1 -0
  7. package/dist/cli.js +151 -53
  8. package/dist/cli.js.map +1 -1
  9. package/dist/documentation-client-core.js +1 -1
  10. package/dist/documentation-default-renderer.cjs +1 -1
  11. package/dist/documentation-react.js +1 -1
  12. package/dist/documentation-runtime.js +10 -10
  13. package/dist/documentation-server-core.js +1 -1
  14. package/dist/documentation.js +47 -22
  15. package/dist/documentation.js.map +1 -1
  16. package/dist/expo.d.ts +83 -0
  17. package/dist/expo.js +242 -0
  18. package/dist/expo.js.map +1 -0
  19. package/dist/index.d.ts +110 -23
  20. package/dist/index.js +134 -53
  21. package/dist/index.js.map +1 -1
  22. package/dist/server.d.ts +205 -37
  23. package/dist/server.js +290 -97
  24. package/dist/server.js.map +1 -1
  25. package/dist/testing.js +45 -3
  26. package/dist/testing.js.map +1 -1
  27. package/dist/worker.d.ts +348 -48
  28. package/dist/worker.js +547 -110
  29. package/dist/worker.js.map +1 -1
  30. package/features/documents/feature.json +15 -0
  31. package/features/documents/src/DocumentsListPage.tsx +22 -8
  32. package/features/documents/src/InviteDialog.tsx +63 -42
  33. package/features/documents/src/__tests__/documents-find-invitee-action.test.ts +131 -0
  34. package/features/documents/src/__tests__/documents-invitee-lookup.test.ts +67 -0
  35. package/features/documents/src/documents-find-invitee-action.ts +56 -0
  36. package/features/documents/src/documents-invitee-lookup.ts +38 -0
  37. package/features/documents/src/documents-ui.css +10 -0
  38. package/package.json +29 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # deepspace
2
2
 
3
+ ## 0.35.0
4
+
5
+ ### Minor Changes
6
+
7
+ - `deepspace/expo`: closing the sign-in sheet now throws `DeepSpaceSignInCancelledError` (`code: 'sign_in_cancelled'`), so apps can tell it apart from a failed sign-in and skip the error message.
8
+ - Add the `medical` plane: `DEEPSPACE_ENV=medical` selects DeepSpace Medical's services on deepspacemedical.com, pages on deepspacemedical.app and deepspacemedical.com resolve to the medical plane instead of production, and the sign-in overlay links to the plane's own privacy policy. Every plane's URLs now come from one table, exported from `deepspace/worker` as `PLANES` along with `isRestrictedPlane`. The CLI omits the dashboard line on a plane without a dashboard.
9
+
10
+ ### Patch Changes
11
+
12
+ - Use neutral example values (`myapp://auth/callback`, `example.app.space`) in the Expo client's docs and the app template's native-callback comments.
13
+
14
+ ## 0.34.0
15
+
16
+ ### Minor Changes
17
+
18
+ - Give Claude Anthropic's hosted code-execution sandbox through the DeepSpace proxy, so an agent can read, edit and create real files (Word, Excel, PowerPoint, PDF, charts). New `deepspace/worker` helpers: `codeExecutionTool()`, `callableFromSandbox(tool)` (sandbox code may call the app's own tool), `sandboxUpload(file)`, `reuseSandbox(containerId)`, `forwardSandboxContainer`, `sandboxOutputs(steps)`, and `sandboxFiles(env)` for upload/download/list/delete. Files and containers are private to the calling user by default, or shared across the app with `createDeepSpaceAI(env, 'anthropic', { sandboxScope: 'app' })`; another app can never reach them. `createDeepSpaceAI` now sends the app's identity with every call.
19
+
20
+ **Breaking:** the SDK moves to AI SDK 7 (`ai` 7.0.107, `@ai-sdk/anthropic` 4, `@ai-sdk/openai` 4, `@ai-sdk/openai-compatible` 3). Apps must bump their own `ai` to the same version and migrate their AI code; `deepspace app update` lists the steps (migration `2026-09-ai-sdk-7`).
21
+
22
+ - Add the `deepspace/expo` client entry for Expo 57 with PKCE-protected OAuth,
23
+ SecureStore-backed sessions, JWT refresh, authenticated app requests, and
24
+ scaffolded native auth routes.
25
+ - Refresh the model lineup: Claude Opus 5.5 (now the default for agents and direct generation), Claude Fable 5.1, GPT-6 Sol and GPT-6 Luna join Claude Sonnet 5 and Haiku 4.5 in the model picker; GPT-6 Astra and Cerebras Qwen 3.8 27B are available for direct generation. Claude Opus 5, Claude Fable 5 and GPT-5.6 Sol/Terra/Luna leave the picker but still resolve by id on the server, so apps that pass them keep working; a chat panel whose saved choice was one of them falls back to the default. The new default costs more per token than Sonnet 5 ($4/$20 vs $2/$10 per million); pass a model id to keep Sonnet 5. The platform's `anthropic/chat-completion` and `openai/chat-completion` integrations now default to Claude Opus 5.5 and GPT-6 Sol and bill each token class at its own rate instead of the output rate.
26
+
27
+ ### Patch Changes
28
+
29
+ - `deepspace agent invoke` now carries the structured `detail` an app attaches to any refused call (for example which of two 409s a conflict is, or a 503's retry guidance) in both the human line and the `--json` failure envelope, redacted, so an agent can act on the app's stated reason.
30
+ - Display token-priced integrations as readable per-million-token rates in the CLI.
31
+ - Raise two dependency floors for the September 2026 security advisories. hono moves to ^4.13.7 in the SDK's dependencies and the scaffold template: 4.13.5 is the first release fixing query parsing past the URL fragment, `toSSG()` path containment, and unbounded dot-notation nesting in `parseBody()`, and 4.13.7 adds the `hono/jsx` escaping fix. smol-toml moves to ^1.7.1 in the SDK's dependencies, the first release fixing the `parse()` infinite loop on a trailing comment inside an array or inline table (GHSA-7w5x-hrqm-74c2); the CLI parses `wrangler.toml` with it.
32
+ - Documents feature: an ordinary member who owns a document can now share it by email — the invite dialog resolves the address through a new owner-only server action (`documents-find-invitee`, installed with the feature) instead of a client-side read that only ever worked for the app owner, and its "People with access" list is drawn from the roster so member owners can manage collaborators. Bulleted and numbered lists in the editor render their markers again, and a refused "New document" write is reported instead of being an unhandled rejection.
33
+
34
+ Runtime (every app on this release): the record room's `user.update` frame is now only the presence heartbeat it always was on the SDK client — it no longer takes an `email`, `name`, or `imageUrl`; those are the identity the auth plane verified at connect (`email` is the key invites resolve on, `name`/`imageUrl` are what a share dialog shows about a collaborator), so a member can no longer be resolved in, or pose as, another user — and `registerUser` / the `users.register` tool store the email trimmed and lowercased so exact-match lookups agree with what the auth plane writes.
35
+
36
+ Reach: new installs, and re-installs of the feature. `deepspace add documents` on an app that already has it adds the action and the lookup module and registers the action, but keeps every feature file that already exists — delete the copied documents files you have not customized before re-running it — at least `src/pages/documents/InviteDialog.tsx` (member sharing), `src/pages/documents/documents-ui.css` (list markers) and `src/pages/documents/index.tsx` (refused-create toast), which are the three files these fixes change.
37
+
38
+ - Show free-tier and paid-tier integration prices in the CLI cost prompt.
39
+ - Allow selected JobRoom job types to run beyond the 15-minute alarm limit using `backgroundJobTypes`.
40
+ - `createDeepSpaceAI` fixes for the AI SDK 7 providers. GPT-6 Sol and Luna agents work again: `@ai-sdk/openai` 4 drops `reasoningEffort: 'none'` for GPT-6, and OpenAI refuses function tools on Chat Completions without it, so the SDK restores it for GPT-5.6/GPT-6 Sol, Terra and Luna tool calls that carry no effort.
41
+
42
+ Anthropic calls with no `maxOutputTokens` now default to 64K output tokens instead of the model's ceiling (128K for Claude 5), reducing upfront credit holds. Billing still uses actual usage. Explicit `maxOutputTokens` values override the SDK default.
43
+
44
+ Adaptive thinking shares this limit with the response. With `thinking.type: 'enabled'`, the provider adds `budgetTokens` to the output allowance, capped at the model's ceiling.
45
+
46
+ - SEO-ready scaffolds. New apps prerender their public pages to static HTML at `vite build` — the same build-time approach deep.space uses, now shipped as app code: `prerender.ts` at the app root and an explicit page list in `src/prerender-entry.tsx`. The build stamps each page's title, description, canonical, and Open Graph tags from `src/seo.ts`, writes `sitemap.xml` and a plain `_spa.html` shell for client routes, and appends the `Sitemap:` line to `public/robots.txt` (or publishes `Disallow: /` when `noindex` is set), so crawlers that do not execute JavaScript (Bing, link unfurlers, AI answer engines) read real content. `src/main.tsx` hydrates a prerendered page instead of repainting it, and the worker's client-route fallback serves the shell before `/`. The `<Seo>` head component ships in the app as well (`src/components/Seo.tsx`), keeping the SDK client chunk out of the landing bundle. `deepspace deploy` passes `DEEPSPACE_SITE_ORIGIN` to the build so staging resolves canonical URLs to `spacestest.com`. Existing apps are unchanged: the prerender is scaffold code, copied into new apps only, and the SDK build path is untouched.
47
+ - Allow auth workers to declare server-owned user fields and populate them in a before-create hook.
48
+
3
49
  ## 0.33.1
4
50
 
5
51
  ### Patch Changes
package/README.md CHANGED
@@ -28,7 +28,7 @@ npm install deepspace
28
28
 
29
29
  ## Entry points
30
30
 
31
- The package has seven supported import paths:
31
+ The package has ten supported import paths:
32
32
 
33
33
  - **`deepspace`** — the React client SDK (hooks, providers, auth, storage,
34
34
  messaging, theme). Runs in the browser.
@@ -38,6 +38,10 @@ The package has seven supported import paths:
38
38
  - **`deepspace/server`** — app-server helpers for actions, billing, and room
39
39
  handlers.
40
40
  - **`deepspace/testing`** — Playwright fixtures for multi-user tests.
41
+ - **`deepspace/testing/mcp`** — dependency-free MCP wire client.
42
+ - **`deepspace/build`** — Node-only app build helpers.
43
+ - **`deepspace/expo`** — Expo 57 native auth client with PKCE,
44
+ SecureStore-backed sessions, JWT refresh, and authenticated requests.
41
45
  - **`deepspace/documentation`** — documentation compiler and runtime helpers.
42
46
  - **`deepspace/documentation/react`** — documentation React components.
43
47
 
@@ -1274,7 +1274,7 @@ function renderInlineMarkdown(value) {
1274
1274
  import { useEffect as useEffect6, useRef as useRef5, useState as useState5 } from "react";
1275
1275
 
1276
1276
  // package.json
1277
- var version = "0.33.1";
1277
+ var version = "0.34.0";
1278
1278
 
1279
1279
  // src/documentation/runtime/navigation.tsx
1280
1280
  import { Fragment as Fragment4, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
@@ -1954,4 +1954,4 @@ export {
1954
1954
  DefaultDocumentation,
1955
1955
  DocumentationContent
1956
1956
  };
1957
- //# sourceMappingURL=chunk-PZDVKSLI.js.map
1957
+ //# sourceMappingURL=chunk-ESEI3MMY.js.map