@octavus/docs 2.21.0 → 3.1.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.
- package/content/01-getting-started/01-introduction.md +15 -15
- package/content/01-getting-started/02-quickstart.md +2 -2
- package/content/02-server-sdk/01-overview.md +11 -7
- package/content/02-server-sdk/02-sessions.md +8 -8
- package/content/02-server-sdk/03-tools.md +11 -11
- package/content/02-server-sdk/04-streaming.md +1 -1
- package/content/02-server-sdk/05-cli.md +15 -15
- package/content/02-server-sdk/06-workers.md +10 -10
- package/content/02-server-sdk/07-debugging.md +7 -7
- package/content/02-server-sdk/08-computer.md +26 -8
- package/content/03-client-sdk/01-overview.md +11 -11
- package/content/03-client-sdk/03-streaming.md +3 -3
- package/content/03-client-sdk/04-execution-blocks.md +1 -1
- package/content/03-client-sdk/05-socket-transport.md +5 -5
- package/content/03-client-sdk/06-http-transport.md +5 -5
- package/content/03-client-sdk/07-structured-output.md +3 -3
- package/content/03-client-sdk/08-file-uploads.md +2 -2
- package/content/03-client-sdk/09-error-handling.md +3 -3
- package/content/03-client-sdk/10-client-tools.md +3 -3
- package/content/04-protocol/01-overview.md +18 -18
- package/content/04-protocol/02-input-resources.md +1 -1
- package/content/04-protocol/03-triggers.md +1 -1
- package/content/04-protocol/04-tools.md +6 -6
- package/content/04-protocol/05-skills.md +5 -5
- package/content/04-protocol/06-handlers.md +3 -0
- package/content/04-protocol/07-agent-config.md +66 -11
- package/content/04-protocol/09-skills-advanced.md +18 -18
- package/content/04-protocol/10-types.md +22 -22
- package/content/04-protocol/11-workers.md +31 -30
- package/content/04-protocol/12-references.md +10 -10
- package/content/04-protocol/13-mcp-servers.md +63 -6
- package/content/05-api-reference/02-sessions.md +2 -2
- package/content/06-examples/02-nextjs-chat.md +3 -3
- package/content/06-examples/03-socket-chat.md +3 -3
- package/dist/chunk-PD34BHI2.js +1523 -0
- package/dist/chunk-PD34BHI2.js.map +1 -0
- package/dist/content.js +1 -1
- package/dist/docs.json +39 -48
- package/dist/index.js +1 -1
- package/dist/search-index.json +1 -1
- package/dist/search.js +1 -1
- package/dist/search.js.map +1 -1
- package/dist/sections.json +39 -56
- package/package.json +1 -1
- package/content/07-migration/01-v1-to-v2.md +0 -366
- package/content/07-migration/_meta.md +0 -4
- package/dist/chunk-4XCEGHY7.js +0 -1549
- package/dist/chunk-4XCEGHY7.js.map +0 -1
- package/dist/chunk-BVJLZYTT.js +0 -1549
- package/dist/chunk-BVJLZYTT.js.map +0 -1
- package/dist/chunk-O5XHIDDC.js +0 -1549
- package/dist/chunk-O5XHIDDC.js.map +0 -1
- package/dist/chunk-PKBPANXP.js +0 -1549
- package/dist/chunk-PKBPANXP.js.map +0 -1
- package/dist/chunk-Q2SRPPSB.js +0 -1549
- package/dist/chunk-Q2SRPPSB.js.map +0 -1
- package/dist/chunk-WYHGKCEV.js +0 -1549
- package/dist/chunk-WYHGKCEV.js.map +0 -1
|
@@ -97,7 +97,7 @@ A server defined as `figma:` that exposes `get_design_context` produces:
|
|
|
97
97
|
|
|
98
98
|
- `figma__get_design_context`
|
|
99
99
|
|
|
100
|
-
The namespace is stripped before calling the MCP server
|
|
100
|
+
The namespace is stripped before calling the MCP server - the server receives the original tool name. This convention matches Anthropic's MCP integration in Claude Desktop and ensures tool names stay unique across servers.
|
|
101
101
|
|
|
102
102
|
### What the LLM Sees
|
|
103
103
|
|
|
@@ -122,7 +122,7 @@ Device MCP tools (auto-discovered):
|
|
|
122
122
|
filesystem__list_directory
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
-
You don't define individual MCP tool schemas in the protocol
|
|
125
|
+
You don't define individual MCP tool schemas in the protocol - they're auto-discovered from each MCP server at runtime.
|
|
126
126
|
|
|
127
127
|
## Remote MCP Servers
|
|
128
128
|
|
|
@@ -145,7 +145,7 @@ Remote MCP servers support multiple authentication methods:
|
|
|
145
145
|
| Bearer | Bearer token authentication |
|
|
146
146
|
| None | No authentication required |
|
|
147
147
|
|
|
148
|
-
Authentication is configured per-project
|
|
148
|
+
Authentication is configured per-project - different projects can connect to the same MCP server with different credentials.
|
|
149
149
|
|
|
150
150
|
## Device MCP Servers
|
|
151
151
|
|
|
@@ -199,11 +199,68 @@ handlers:
|
|
|
199
199
|
system: research-prompt
|
|
200
200
|
```
|
|
201
201
|
|
|
202
|
-
This thread can use Figma and browser tools, but not sentry or filesystem
|
|
202
|
+
This thread can use Figma and browser tools, but not sentry or filesystem - even if those are available on the main agent.
|
|
203
|
+
|
|
204
|
+
## On-Demand MCP Servers
|
|
205
|
+
|
|
206
|
+
By default, an agent can only call MCP tools whose namespace is listed in `mcpServers`. With `onDemandMcpServers`, a scope can opt into **every connected MCP of a given source** at runtime, without enumerating each one in the protocol.
|
|
207
|
+
|
|
208
|
+
Remote MCPs are connected at the project level from the Octavus dashboard. Normally, each connected MCP that the agent should be able to use has to be declared in the protocol - connecting a new MCP means editing the protocol and redeploying. `onDemandMcpServers` removes that round-trip: once a source is opted in, any MCP connected to the project under that source becomes available to the agent immediately.
|
|
209
|
+
|
|
210
|
+
Currently supported for `source: remote`.
|
|
211
|
+
|
|
212
|
+
### Protocol-level declaration
|
|
213
|
+
|
|
214
|
+
Add an `onDemandMcpServers:` section alongside `mcpServers:`, keyed by source. Each entry configures how the matched MCPs appear in tool lists:
|
|
215
|
+
|
|
216
|
+
```yaml
|
|
217
|
+
mcpServers:
|
|
218
|
+
figma:
|
|
219
|
+
description: Figma design tool integration
|
|
220
|
+
source: remote
|
|
221
|
+
display: description
|
|
222
|
+
|
|
223
|
+
onDemandMcpServers:
|
|
224
|
+
remote:
|
|
225
|
+
description: Additional connected integrations
|
|
226
|
+
display: name
|
|
227
|
+
contextRetention:
|
|
228
|
+
toolResults: { retainLast: 5 }
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Scope-level opt-in
|
|
232
|
+
|
|
233
|
+
The agent and individual `start-thread` blocks each choose whether to pick up on-demand MCPs, by listing the sources they want:
|
|
234
|
+
|
|
235
|
+
```yaml
|
|
236
|
+
agent:
|
|
237
|
+
mcpServers: [figma]
|
|
238
|
+
onDemandMcpServers: [remote]
|
|
239
|
+
|
|
240
|
+
handlers:
|
|
241
|
+
user-message:
|
|
242
|
+
focused:
|
|
243
|
+
block: start-thread
|
|
244
|
+
mcpServers: [figma]
|
|
245
|
+
# no onDemandMcpServers - this thread does NOT see on-demand MCPs
|
|
246
|
+
broad:
|
|
247
|
+
block: start-thread
|
|
248
|
+
mcpServers: [figma]
|
|
249
|
+
onDemandMcpServers: [remote]
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Rules
|
|
253
|
+
|
|
254
|
+
- A scope's tool list includes every **connected** MCP of any referenced source, whether or not any protocol declares that slug.
|
|
255
|
+
- Undeclared namespaces inherit `description`, `display`, and `contextRetention` from the per-source entry in `onDemandMcpServers`.
|
|
256
|
+
- Scopes decide independently - threads do not inherit `onDemandMcpServers` from their parent, the same rule as `mcpServers:`.
|
|
257
|
+
- Tool namespaces are always the connector's slug (for example `notion__search`, `linear__create_issue`). Source keys are never namespaces.
|
|
258
|
+
|
|
259
|
+
Workers opt into on-demand MCPs the same way: through `start-thread` blocks inside `steps`. A worker without a `start-thread` that lists a source won't see on-demand MCPs of that source.
|
|
203
260
|
|
|
204
261
|
## Workers
|
|
205
262
|
|
|
206
|
-
Workers can declare and use MCP servers using the same `mcpServers:` syntax. Workers resolve their own MCP connections independently
|
|
263
|
+
Workers can declare and use MCP servers using the same `mcpServers:` syntax. Workers resolve their own MCP connections independently - they don't inherit from a parent interactive agent.
|
|
207
264
|
|
|
208
265
|
```yaml
|
|
209
266
|
# Worker protocol
|
|
@@ -227,7 +284,7 @@ steps:
|
|
|
227
284
|
maxSteps: 10
|
|
228
285
|
```
|
|
229
286
|
|
|
230
|
-
Since workers don't have a global `agent:` section, MCP servers are scoped per-thread via `start-thread`
|
|
287
|
+
Since workers don't have a global `agent:` section, MCP servers are scoped per-thread via `start-thread` - the same way tools and skills work in workers. Remote MCP connections are project-scoped, so workers in the same project share the same OAuth connections.
|
|
231
288
|
|
|
232
289
|
See [Workers](/docs/protocol/workers) for the full worker protocol reference.
|
|
233
290
|
|
|
@@ -35,7 +35,7 @@ POST /api/agent-sessions
|
|
|
35
35
|
| `agentId` | string | Yes | Agent ID (the `id` field, not `slug`) |
|
|
36
36
|
| `input` | object | No | Input variables for the agent |
|
|
37
37
|
|
|
38
|
-
> **Getting the agent ID:** Copy the ID from the agent URL in the [platform](https://octavus.ai) (e.g., `octavus.ai/
|
|
38
|
+
> **Getting the agent ID:** Copy the ID from the agent URL in the [platform](https://octavus.ai) (e.g., `octavus.ai/projects/.../agents/clxyz123`), or use the [CLI](/docs/server-sdk/cli) (`octavus sync ./agents/my-agent`) for local development workflows.
|
|
39
39
|
|
|
40
40
|
### Response
|
|
41
41
|
|
|
@@ -216,7 +216,7 @@ curl -X POST https://octavus.ai/api/agent-sessions/:sessionId/restore \
|
|
|
216
216
|
|
|
217
217
|
Clear session state, transitioning it to `expired` status. The session can be restored afterwards with the [Restore Session](#restore-session) endpoint.
|
|
218
218
|
|
|
219
|
-
This is idempotent
|
|
219
|
+
This is idempotent - clearing an already expired session succeeds without error.
|
|
220
220
|
|
|
221
221
|
```
|
|
222
222
|
DELETE /api/agent-sessions/:sessionId
|
|
@@ -354,6 +354,6 @@ Tool handlers receive the parameters as `args`:
|
|
|
354
354
|
|
|
355
355
|
## Next Steps
|
|
356
356
|
|
|
357
|
-
- [Protocol Overview](/docs/protocol/overview)
|
|
358
|
-
- [Messages](/docs/client-sdk/messages)
|
|
359
|
-
- [Streaming](/docs/client-sdk/streaming)
|
|
357
|
+
- [Protocol Overview](/docs/protocol/overview) - Define agent behavior
|
|
358
|
+
- [Messages](/docs/client-sdk/messages) - Rich message rendering
|
|
359
|
+
- [Streaming](/docs/client-sdk/streaming) - Advanced streaming UI
|
|
@@ -404,6 +404,6 @@ const SockJS: typeof import('sockjs-client') = require('sockjs-client');
|
|
|
404
404
|
|
|
405
405
|
## Next Steps
|
|
406
406
|
|
|
407
|
-
- [Socket Transport](/docs/client-sdk/socket-transport)
|
|
408
|
-
- [Protocol Overview](/docs/protocol/overview)
|
|
409
|
-
- [Tools](/docs/protocol/tools)
|
|
407
|
+
- [Socket Transport](/docs/client-sdk/socket-transport) - Advanced socket patterns
|
|
408
|
+
- [Protocol Overview](/docs/protocol/overview) - Define agent behavior
|
|
409
|
+
- [Tools](/docs/protocol/tools) - Building tool handlers
|