@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.
Files changed (58) hide show
  1. package/content/01-getting-started/01-introduction.md +15 -15
  2. package/content/01-getting-started/02-quickstart.md +2 -2
  3. package/content/02-server-sdk/01-overview.md +11 -7
  4. package/content/02-server-sdk/02-sessions.md +8 -8
  5. package/content/02-server-sdk/03-tools.md +11 -11
  6. package/content/02-server-sdk/04-streaming.md +1 -1
  7. package/content/02-server-sdk/05-cli.md +15 -15
  8. package/content/02-server-sdk/06-workers.md +10 -10
  9. package/content/02-server-sdk/07-debugging.md +7 -7
  10. package/content/02-server-sdk/08-computer.md +26 -8
  11. package/content/03-client-sdk/01-overview.md +11 -11
  12. package/content/03-client-sdk/03-streaming.md +3 -3
  13. package/content/03-client-sdk/04-execution-blocks.md +1 -1
  14. package/content/03-client-sdk/05-socket-transport.md +5 -5
  15. package/content/03-client-sdk/06-http-transport.md +5 -5
  16. package/content/03-client-sdk/07-structured-output.md +3 -3
  17. package/content/03-client-sdk/08-file-uploads.md +2 -2
  18. package/content/03-client-sdk/09-error-handling.md +3 -3
  19. package/content/03-client-sdk/10-client-tools.md +3 -3
  20. package/content/04-protocol/01-overview.md +18 -18
  21. package/content/04-protocol/02-input-resources.md +1 -1
  22. package/content/04-protocol/03-triggers.md +1 -1
  23. package/content/04-protocol/04-tools.md +6 -6
  24. package/content/04-protocol/05-skills.md +5 -5
  25. package/content/04-protocol/06-handlers.md +3 -0
  26. package/content/04-protocol/07-agent-config.md +66 -11
  27. package/content/04-protocol/09-skills-advanced.md +18 -18
  28. package/content/04-protocol/10-types.md +22 -22
  29. package/content/04-protocol/11-workers.md +31 -30
  30. package/content/04-protocol/12-references.md +10 -10
  31. package/content/04-protocol/13-mcp-servers.md +63 -6
  32. package/content/05-api-reference/02-sessions.md +2 -2
  33. package/content/06-examples/02-nextjs-chat.md +3 -3
  34. package/content/06-examples/03-socket-chat.md +3 -3
  35. package/dist/chunk-PD34BHI2.js +1523 -0
  36. package/dist/chunk-PD34BHI2.js.map +1 -0
  37. package/dist/content.js +1 -1
  38. package/dist/docs.json +39 -48
  39. package/dist/index.js +1 -1
  40. package/dist/search-index.json +1 -1
  41. package/dist/search.js +1 -1
  42. package/dist/search.js.map +1 -1
  43. package/dist/sections.json +39 -56
  44. package/package.json +1 -1
  45. package/content/07-migration/01-v1-to-v2.md +0 -366
  46. package/content/07-migration/_meta.md +0 -4
  47. package/dist/chunk-4XCEGHY7.js +0 -1549
  48. package/dist/chunk-4XCEGHY7.js.map +0 -1
  49. package/dist/chunk-BVJLZYTT.js +0 -1549
  50. package/dist/chunk-BVJLZYTT.js.map +0 -1
  51. package/dist/chunk-O5XHIDDC.js +0 -1549
  52. package/dist/chunk-O5XHIDDC.js.map +0 -1
  53. package/dist/chunk-PKBPANXP.js +0 -1549
  54. package/dist/chunk-PKBPANXP.js.map +0 -1
  55. package/dist/chunk-Q2SRPPSB.js +0 -1549
  56. package/dist/chunk-Q2SRPPSB.js.map +0 -1
  57. package/dist/chunk-WYHGKCEV.js +0 -1549
  58. 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 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.
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 they're auto-discovered from each MCP server at runtime.
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 different projects can connect to the same MCP server with different credentials.
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 even if those are available on the main agent.
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 they don't inherit from a parent interactive agent.
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` 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.
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/platform/agents/clxyz123`), or use the [CLI](/docs/server-sdk/cli) (`octavus sync ./agents/my-agent`) for local development workflows.
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 clearing an already expired session succeeds without error.
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) Define agent behavior
358
- - [Messages](/docs/client-sdk/messages) Rich message rendering
359
- - [Streaming](/docs/client-sdk/streaming) Advanced streaming UI
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) Advanced socket patterns
408
- - [Protocol Overview](/docs/protocol/overview) Define agent behavior
409
- - [Tools](/docs/protocol/tools) Building tool handlers
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