@octavus/docs 0.0.9 → 1.0.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 (177) hide show
  1. package/README.md +127 -0
  2. package/content/01-getting-started/01-introduction.md +3 -3
  3. package/content/01-getting-started/02-quickstart.md +40 -17
  4. package/content/02-server-sdk/01-overview.md +54 -11
  5. package/content/02-server-sdk/02-sessions.md +166 -15
  6. package/content/02-server-sdk/03-tools.md +21 -21
  7. package/content/02-server-sdk/04-streaming.md +50 -20
  8. package/content/02-server-sdk/05-cli.md +247 -0
  9. package/content/03-client-sdk/01-overview.md +65 -35
  10. package/content/03-client-sdk/02-messages.md +116 -8
  11. package/content/03-client-sdk/03-streaming.md +36 -17
  12. package/content/03-client-sdk/04-execution-blocks.md +8 -12
  13. package/content/03-client-sdk/05-socket-transport.md +161 -45
  14. package/content/03-client-sdk/06-http-transport.md +48 -24
  15. package/content/03-client-sdk/07-structured-output.md +412 -0
  16. package/content/03-client-sdk/08-file-uploads.md +473 -0
  17. package/content/03-client-sdk/09-error-handling.md +274 -0
  18. package/content/04-protocol/01-overview.md +24 -14
  19. package/content/04-protocol/02-input-resources.md +35 -35
  20. package/content/04-protocol/03-triggers.md +9 -11
  21. package/content/04-protocol/04-tools.md +63 -29
  22. package/content/04-protocol/05-skills.md +304 -0
  23. package/content/04-protocol/06-handlers.md +304 -0
  24. package/content/04-protocol/07-agent-config.md +334 -0
  25. package/content/04-protocol/{07-provider-options.md → 08-provider-options.md} +54 -35
  26. package/content/04-protocol/09-skills-advanced.md +439 -0
  27. package/content/04-protocol/10-types.md +719 -0
  28. package/content/05-api-reference/01-overview.md +20 -21
  29. package/content/05-api-reference/02-sessions.md +192 -37
  30. package/content/05-api-reference/03-agents.md +25 -37
  31. package/content/06-examples/01-overview.md +6 -4
  32. package/content/06-examples/02-nextjs-chat.md +28 -18
  33. package/content/06-examples/03-socket-chat.md +53 -30
  34. package/content/06-examples/_meta.md +0 -1
  35. package/dist/chunk-WJ2W3DUC.js +663 -0
  36. package/dist/chunk-WJ2W3DUC.js.map +1 -0
  37. package/dist/content.js +1 -1
  38. package/dist/docs.json +99 -36
  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 +99 -36
  44. package/package.json +12 -2
  45. package/content/04-protocol/05-handlers.md +0 -251
  46. package/content/04-protocol/06-agent-config.md +0 -242
  47. package/dist/chunk-232K4EME.js +0 -439
  48. package/dist/chunk-232K4EME.js.map +0 -1
  49. package/dist/chunk-2JDZLMS3.js +0 -439
  50. package/dist/chunk-2JDZLMS3.js.map +0 -1
  51. package/dist/chunk-2YMRODFE.js +0 -421
  52. package/dist/chunk-2YMRODFE.js.map +0 -1
  53. package/dist/chunk-2ZBPX5QB.js +0 -421
  54. package/dist/chunk-2ZBPX5QB.js.map +0 -1
  55. package/dist/chunk-3PIIST4D.js +0 -421
  56. package/dist/chunk-3PIIST4D.js.map +0 -1
  57. package/dist/chunk-42JETGDO.js +0 -421
  58. package/dist/chunk-42JETGDO.js.map +0 -1
  59. package/dist/chunk-4WWUKU4V.js +0 -421
  60. package/dist/chunk-4WWUKU4V.js.map +0 -1
  61. package/dist/chunk-5M7DS4DF.js +0 -519
  62. package/dist/chunk-5M7DS4DF.js.map +0 -1
  63. package/dist/chunk-6JQ3OMGF.js +0 -421
  64. package/dist/chunk-6JQ3OMGF.js.map +0 -1
  65. package/dist/chunk-7AOWCJHW.js +0 -421
  66. package/dist/chunk-7AOWCJHW.js.map +0 -1
  67. package/dist/chunk-7AS4ST73.js +0 -421
  68. package/dist/chunk-7AS4ST73.js.map +0 -1
  69. package/dist/chunk-7F5WOCIL.js +0 -421
  70. package/dist/chunk-7F5WOCIL.js.map +0 -1
  71. package/dist/chunk-7FPUAWSX.js +0 -421
  72. package/dist/chunk-7FPUAWSX.js.map +0 -1
  73. package/dist/chunk-7KXF63FV.js +0 -537
  74. package/dist/chunk-7KXF63FV.js.map +0 -1
  75. package/dist/chunk-APASMJBS.js +0 -421
  76. package/dist/chunk-APASMJBS.js.map +0 -1
  77. package/dist/chunk-BCEV3WV2.js +0 -421
  78. package/dist/chunk-BCEV3WV2.js.map +0 -1
  79. package/dist/chunk-CHGY4G27.js +0 -421
  80. package/dist/chunk-CHGY4G27.js.map +0 -1
  81. package/dist/chunk-CI7JDWKU.js +0 -421
  82. package/dist/chunk-CI7JDWKU.js.map +0 -1
  83. package/dist/chunk-CVFWWRL7.js +0 -421
  84. package/dist/chunk-CVFWWRL7.js.map +0 -1
  85. package/dist/chunk-EPDM2NIJ.js +0 -421
  86. package/dist/chunk-EPDM2NIJ.js.map +0 -1
  87. package/dist/chunk-ESGSYVGK.js +0 -421
  88. package/dist/chunk-ESGSYVGK.js.map +0 -1
  89. package/dist/chunk-GDCTM2SV.js +0 -421
  90. package/dist/chunk-GDCTM2SV.js.map +0 -1
  91. package/dist/chunk-GJ6FMIPD.js +0 -421
  92. package/dist/chunk-GJ6FMIPD.js.map +0 -1
  93. package/dist/chunk-H6JGSSAJ.js +0 -519
  94. package/dist/chunk-H6JGSSAJ.js.map +0 -1
  95. package/dist/chunk-IKQHGGUZ.js +0 -421
  96. package/dist/chunk-IKQHGGUZ.js.map +0 -1
  97. package/dist/chunk-IUKE3XDN.js +0 -421
  98. package/dist/chunk-IUKE3XDN.js.map +0 -1
  99. package/dist/chunk-J26MLMLN.js +0 -421
  100. package/dist/chunk-J26MLMLN.js.map +0 -1
  101. package/dist/chunk-J7BMB3ZW.js +0 -421
  102. package/dist/chunk-J7BMB3ZW.js.map +0 -1
  103. package/dist/chunk-JCBQRD5N.js +0 -421
  104. package/dist/chunk-JCBQRD5N.js.map +0 -1
  105. package/dist/chunk-JOB6YWEF.js +0 -421
  106. package/dist/chunk-JOB6YWEF.js.map +0 -1
  107. package/dist/chunk-JZRABTHU.js +0 -519
  108. package/dist/chunk-JZRABTHU.js.map +0 -1
  109. package/dist/chunk-K3GFQUMC.js +0 -421
  110. package/dist/chunk-K3GFQUMC.js.map +0 -1
  111. package/dist/chunk-LWYMRXBF.js +0 -421
  112. package/dist/chunk-LWYMRXBF.js.map +0 -1
  113. package/dist/chunk-M2R2NDPR.js +0 -421
  114. package/dist/chunk-M2R2NDPR.js.map +0 -1
  115. package/dist/chunk-MA3P7WCA.js +0 -421
  116. package/dist/chunk-MA3P7WCA.js.map +0 -1
  117. package/dist/chunk-MDMRCS4W.mjs +0 -421
  118. package/dist/chunk-MDMRCS4W.mjs.map +0 -1
  119. package/dist/chunk-MJXTA2R6.js +0 -421
  120. package/dist/chunk-MJXTA2R6.js.map +0 -1
  121. package/dist/chunk-NFVJQNDP.js +0 -421
  122. package/dist/chunk-NFVJQNDP.js.map +0 -1
  123. package/dist/chunk-O5TLYMQP.js +0 -421
  124. package/dist/chunk-O5TLYMQP.js.map +0 -1
  125. package/dist/chunk-OECAPVSX.js +0 -439
  126. package/dist/chunk-OECAPVSX.js.map +0 -1
  127. package/dist/chunk-OL5QDJ42.js +0 -483
  128. package/dist/chunk-OL5QDJ42.js.map +0 -1
  129. package/dist/chunk-PMOVVTHO.js +0 -519
  130. package/dist/chunk-PMOVVTHO.js.map +0 -1
  131. package/dist/chunk-QCHDPR2D.js +0 -421
  132. package/dist/chunk-QCHDPR2D.js.map +0 -1
  133. package/dist/chunk-R5MTVABN.js +0 -439
  134. package/dist/chunk-R5MTVABN.js.map +0 -1
  135. package/dist/chunk-RJ4H4YVA.js +0 -519
  136. package/dist/chunk-RJ4H4YVA.js.map +0 -1
  137. package/dist/chunk-S5U4IWCR.js +0 -439
  138. package/dist/chunk-S5U4IWCR.js.map +0 -1
  139. package/dist/chunk-SCKIOGKI.js +0 -421
  140. package/dist/chunk-SCKIOGKI.js.map +0 -1
  141. package/dist/chunk-TGJSIJYP.js +0 -421
  142. package/dist/chunk-TGJSIJYP.js.map +0 -1
  143. package/dist/chunk-TQJG6EBM.js +0 -537
  144. package/dist/chunk-TQJG6EBM.js.map +0 -1
  145. package/dist/chunk-TQZRBMU7.js +0 -421
  146. package/dist/chunk-TQZRBMU7.js.map +0 -1
  147. package/dist/chunk-TRL4RSEO.js +0 -421
  148. package/dist/chunk-TRL4RSEO.js.map +0 -1
  149. package/dist/chunk-TWUMRHQ7.js +0 -421
  150. package/dist/chunk-TWUMRHQ7.js.map +0 -1
  151. package/dist/chunk-UCJE36LL.js +0 -519
  152. package/dist/chunk-UCJE36LL.js.map +0 -1
  153. package/dist/chunk-VCASA6KL.js +0 -421
  154. package/dist/chunk-VCASA6KL.js.map +0 -1
  155. package/dist/chunk-VWPQ6ORV.js +0 -421
  156. package/dist/chunk-VWPQ6ORV.js.map +0 -1
  157. package/dist/chunk-WPXKIHLT.js +0 -421
  158. package/dist/chunk-WPXKIHLT.js.map +0 -1
  159. package/dist/chunk-WUNFFJ32.js +0 -421
  160. package/dist/chunk-WUNFFJ32.js.map +0 -1
  161. package/dist/chunk-WW7TRC7S.js +0 -519
  162. package/dist/chunk-WW7TRC7S.js.map +0 -1
  163. package/dist/chunk-XVSMRXBJ.js +0 -421
  164. package/dist/chunk-XVSMRXBJ.js.map +0 -1
  165. package/dist/chunk-YPPXXV3I.js +0 -421
  166. package/dist/chunk-YPPXXV3I.js.map +0 -1
  167. package/dist/chunk-ZKZVV4OQ.js +0 -421
  168. package/dist/chunk-ZKZVV4OQ.js.map +0 -1
  169. package/dist/chunk-ZOFEX73I.js +0 -421
  170. package/dist/chunk-ZOFEX73I.js.map +0 -1
  171. package/dist/content.mjs +0 -17
  172. package/dist/content.mjs.map +0 -1
  173. package/dist/index.mjs +0 -11
  174. package/dist/index.mjs.map +0 -1
  175. package/dist/search.mjs +0 -30
  176. package/dist/search.mjs.map +0 -1
  177. package/dist/types-BltYGlWI.d.ts +0 -36
@@ -10,6 +10,7 @@ This example builds a chat interface using SockJS for bidirectional communicatio
10
10
  ## What You're Building
11
11
 
12
12
  A chat interface that:
13
+
13
14
  - Uses SockJS for real-time streaming
14
15
  - Manages sessions server-side (client doesn't need sessionId)
15
16
  - Supports custom events alongside chat
@@ -35,12 +36,14 @@ flowchart LR
35
36
  ## Step 1: Install Dependencies
36
37
 
37
38
  **Server:**
39
+
38
40
  ```bash
39
41
  npm install @octavus/server-sdk sockjs express
40
42
  npm install -D @types/sockjs @types/express
41
43
  ```
42
44
 
43
45
  **Client:**
46
+
44
47
  ```bash
45
48
  npm install @octavus/react sockjs-client
46
49
  npm install -D @types/sockjs-client
@@ -182,7 +185,7 @@ server.listen(3001, () => {
182
185
 
183
186
  ```typescript
184
187
  // src/hooks/useOctavusSocket.ts
185
- import { useMemo } from 'react';
188
+ import { useEffect, useMemo } from 'react';
186
189
  import SockJS from 'sockjs-client';
187
190
  import { useOctavusChat, createSocketTransport, type SocketLike } from '@octavus/react';
188
191
 
@@ -197,25 +200,35 @@ function connectSocket(): Promise<SocketLike> {
197
200
 
198
201
  export function useOctavusSocket() {
199
202
  // Transport is stable - empty deps because server manages sessions
200
- const transport = useMemo(
201
- () => createSocketTransport({ connect: connectSocket }),
202
- [],
203
- );
204
-
205
- const { messages, status, error, send, stop } = useOctavusChat({
203
+ const transport = useMemo(() => createSocketTransport({ connect: connectSocket }), []);
204
+
205
+ const {
206
+ messages,
207
+ status,
208
+ error,
209
+ send,
210
+ stop,
211
+ // Socket-specific connection state
212
+ connectionState,
213
+ connectionError,
214
+ connect,
215
+ disconnect,
216
+ } = useOctavusChat({
206
217
  transport,
207
218
  onError: (err) => console.error('Chat error:', err),
208
219
  });
209
220
 
221
+ // Eagerly connect for UI status indicator
222
+ useEffect(() => {
223
+ connect?.();
224
+ return () => disconnect?.();
225
+ }, [connect, disconnect]);
226
+
210
227
  const sendMessage = async (message: string) => {
211
- await send(
212
- 'user-message',
213
- { USER_MESSAGE: message },
214
- { userMessage: { content: message } },
215
- );
228
+ await send('user-message', { USER_MESSAGE: message }, { userMessage: { content: message } });
216
229
  };
217
230
 
218
- return { messages, status, error, sendMessage, stop };
231
+ return { messages, status, error, connectionState, connectionError, sendMessage, stop };
219
232
  }
220
233
  ```
221
234
 
@@ -226,9 +239,20 @@ export function useOctavusSocket() {
226
239
  import { useState } from 'react';
227
240
  import { useOctavusSocket } from '../hooks/useOctavusSocket';
228
241
 
242
+ function ConnectionIndicator({ state }: { state: string | undefined }) {
243
+ const colors: Record<string, string> = {
244
+ connected: 'bg-green-500',
245
+ connecting: 'bg-yellow-500',
246
+ error: 'bg-red-500',
247
+ disconnected: 'bg-gray-400',
248
+ };
249
+ const color = colors[state ?? 'disconnected'];
250
+ return <div className={`w-2 h-2 rounded-full ${color}`} title={state} />;
251
+ }
252
+
229
253
  export function Chat() {
230
254
  const [inputValue, setInputValue] = useState('');
231
- const { messages, status, sendMessage, stop } = useOctavusSocket();
255
+ const { messages, status, connectionState, sendMessage, stop } = useOctavusSocket();
232
256
 
233
257
  const handleSubmit = async (e: React.FormEvent) => {
234
258
  e.preventDefault();
@@ -241,18 +265,19 @@ export function Chat() {
241
265
 
242
266
  return (
243
267
  <div className="flex flex-col h-screen">
268
+ {/* Header with connection status */}
269
+ <div className="p-4 border-b flex items-center justify-between">
270
+ <h1 className="font-semibold">AI Chat</h1>
271
+ <ConnectionIndicator state={connectionState} />
272
+ </div>
273
+
244
274
  {/* Messages */}
245
275
  <div className="flex-1 overflow-y-auto p-4 space-y-4">
246
276
  {messages.map((msg) => (
247
- <div
248
- key={msg.id}
249
- className={msg.role === 'user' ? 'text-right' : 'text-left'}
250
- >
277
+ <div key={msg.id} className={msg.role === 'user' ? 'text-right' : 'text-left'}>
251
278
  <div
252
279
  className={`inline-block p-3 rounded-lg ${
253
- msg.role === 'user'
254
- ? 'bg-blue-500 text-white'
255
- : 'bg-gray-100'
280
+ msg.role === 'user' ? 'bg-blue-500 text-white' : 'bg-gray-100'
256
281
  }`}
257
282
  >
258
283
  {msg.parts.map((part, i) => {
@@ -283,10 +308,7 @@ export function Chat() {
283
308
  Stop
284
309
  </button>
285
310
  ) : (
286
- <button
287
- type="submit"
288
- className="px-4 py-2 bg-blue-500 text-white rounded-lg"
289
- >
311
+ <button type="submit" className="px-4 py-2 bg-blue-500 text-white rounded-lg">
290
312
  Send
291
313
  </button>
292
314
  )}
@@ -326,10 +348,12 @@ const transport = useMemo(
326
348
 
327
349
  ```typescript
328
350
  // Server - send custom events
329
- conn.write(JSON.stringify({
330
- type: 'typing-indicator',
331
- isTyping: true,
332
- }));
351
+ conn.write(
352
+ JSON.stringify({
353
+ type: 'typing-indicator',
354
+ isTyping: true,
355
+ }),
356
+ );
333
357
  ```
334
358
 
335
359
  ## Protocol Integration
@@ -389,4 +413,3 @@ const SockJS: typeof import('sockjs-client') = require('sockjs-client');
389
413
  - [Socket Transport](/docs/client-sdk/socket-transport) — Advanced socket patterns
390
414
  - [Protocol Overview](/docs/protocol/overview) — Define agent behavior
391
415
  - [Tools](/docs/protocol/tools) — Building tool handlers
392
-
@@ -2,4 +2,3 @@
2
2
  title: Examples
3
3
  description: Complete working examples demonstrating Octavus integration patterns.
4
4
  ---
5
-