@personaai/runtime 0.15.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,7 +5,12 @@ shared engine every framework adapter (`@personaai/adapters/express`, `@personaa
5
5
  to be a thin translation layer over — see
6
6
  [the SDK Ecosystem plan](https://github.com/hasanraiyan/agent-marketplace/blob/feat/ai/product-research/11-sdk-new/package-ecosystem.md).
7
7
 
8
- **v0.10.0.** Added full Workflows engine support (`POST /workflows/:id/stream`, `GET /workflows`, `POST /workflows/runs/:runId/cancel`, `GET /workflows/runs/:runId/resume`), `workflowsWrite` gated authoring capability, and `beforeWorkflowNode`/`afterWorkflowNode` lifecycle hooks. Unified adapter [`@personaai/adapters`](https://persona.hasanraiyan.me/guides/express/quickstart) provides `express`/`nextjs`/`nestjs` bindings. For non-covered hosts, see
8
+ **v0.15.0.** `/memory` and `/memory/file` now accept/return `scope: "workspace"` — an Agent's own
9
+ `/workspace/` files (the same persistent store its `write_file`/`read_file` tool calls use), scoped
10
+ by Agent + Subject rather than by Thread. Also includes full Workflows engine support
11
+ (`POST /workflows/:id/stream`, `GET /workflows`, `POST /workflows/runs/:runId/cancel`,
12
+ `GET /workflows/runs/:runId/resume`), `workflowsWrite` gated authoring capability, and
13
+ `beforeWorkflowNode`/`afterWorkflowNode` lifecycle hooks. Unified adapter [`@personaai/adapters`](https://persona.hasanraiyan.me/guides/express/quickstart) provides `express`/`nextjs`/`nestjs` bindings. For non-covered hosts, see
9
14
  [Quickstart](#quickstart) for how to run it directly against raw Node `http`, and
10
15
  [Not yet implemented](#not-yet-implemented) for what's missing before it's a complete Level 2
11
16
  runtime.
@@ -81,10 +86,10 @@ user; `resolveUser` returning `null` or throwing responds `401`.
81
86
  | --- | --- | --- |
82
87
  | `POST` | `/chat` | `client.chat.stream(agentId, {messages, threadId, resume, contextOverride})`, streamed out as SSE. `agentId`/`messages` required in the body. Response carries an `x-persona-run-id` header — see [Reconnect and resume](#reconnect-and-resume). |
83
88
  | `GET` | `/chat/:runId/resume` | Reattaches to the run started by the matching `POST /chat`. See [Reconnect and resume](#reconnect-and-resume). |
84
- | `GET` | `/threads` | `client.threads.list({page, limit})` |
89
+ | `GET` | `/threads` | `client.threads.list({page, limit})` — each item's `agentId` is populated as `{_id, name, avatar, slug, sandboxEnabled}` |
85
90
  | `POST` | `/threads` | `client.threads.create({agentId})` |
86
91
  | `POST` | `/threads/bulk-delete` | `client.threads.bulkDelete(ids)` |
87
- | `GET` | `/threads/:id` | `client.threads.get(id)` |
92
+ | `GET` | `/threads/:id` | `client.threads.get(id)` — `agentId` populated the same way as `list()`; check `sandboxEnabled` here to decide whether to show a Terminal-style UI for this Thread's Agent |
88
93
  | `PATCH` | `/threads/:id` | `client.threads.update(id, {title?, isArchived?})` |
89
94
  | `DELETE` | `/threads/:id` | `client.threads.delete(id)` → `204` |
90
95
  | `GET` | `/threads/:id/messages` | `client.threads.getMessages(id)` — full history + graph state, the same data `chat.stream()` resumes from; load a past conversation on page reopen. |
@@ -96,8 +101,8 @@ user; `resolveUser` returning `null` or throwing responds `401`.
96
101
  | `POST` | `/files/bulk-delete` | `client.files.bulkDelete(ids)` |
97
102
  | `GET` | `/files/:id` | `client.files.download(id)` — raw bytes, streamed through as `kind: 'binary'` |
98
103
  | `DELETE` | `/files/:id` | `client.files.delete(id)` → `204` |
99
- | `GET` | `/memory` | `client.memory.list()` |
100
- | `GET` | `/memory/file` | `client.memory.getFile({path, scope?, agentId?})` — `path` query param required |
104
+ | `GET` | `/memory` | `client.memory.list()` → `{userFiles, agentMemories, agentWorkspaces}` |
105
+ | `GET` | `/memory/file` | `client.memory.getFile({path, scope?, agentId?})` — `path` query param required. `scope` is `"user"` (default), `"agent"`, or `"workspace"` (an Agent's own `/workspace/` files); `"agent"`/`"workspace"` require `agentId`. |
101
106
  | `PUT` | `/memory/file` | `client.memory.writeFile({path, content, scope?, agentId?})` — creates or overwrites |
102
107
  | `DELETE` | `/memory/file` | `client.memory.deleteFile({path, scope?, agentId?})` → `204` |
103
108
  | `GET` | `/mcps/:id/oauth/owner/authorize` | `client.mcps.oauth.getOwnerAuthorizeUrl(id)` → `{url}` to redirect the Project owner to |
@@ -415,7 +420,7 @@ modes (`mode: 'development' | 'production'`, default `'production'` unless
415
420
 
416
421
  ## Not yet implemented
417
422
 
418
- This is v0.5.1. Every SDK resource now has a route (see [Routes](#routes)); what's left is either a
423
+ This is v0.15.0. Every SDK resource now has a route (see [Routes](#routes)); what's left is either a
419
424
  genuine unclosed gap or an intentional package boundary, not an oversight:
420
425
 
421
426
  - **Multi-instance reconnect/resume** — see
package/dist/index.cjs CHANGED
@@ -159,7 +159,7 @@ function evictStaleRuns(runs, now, graceMs = DEFAULT_RUN_GRACE_MS, maxTracked =
159
159
  }
160
160
 
161
161
  // src/version.ts
162
- var RUNTIME_VERSION = "0.10.0";
162
+ var RUNTIME_VERSION = "0.15.0";
163
163
 
164
164
  // src/routes/health.ts
165
165
  var alwaysOnCapabilities = {