@slopus/happy-agent-client 0.0.32 → 0.0.34

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 (37) hide show
  1. package/dist/HappyAgentClient.d.ts +24 -3
  2. package/dist/HappyAgentClient.d.ts.map +1 -1
  3. package/dist/HappyAgentClient.js +92 -2
  4. package/dist/HappyAgentClient.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/protocol/agents.d.ts +48 -41
  10. package/dist/protocol/agents.d.ts.map +1 -1
  11. package/dist/protocol/agents.js +48 -1
  12. package/dist/protocol/agents.js.map +1 -1
  13. package/dist/protocol/bootstrap.d.ts +115 -4
  14. package/dist/protocol/bootstrap.d.ts.map +1 -1
  15. package/dist/protocol/bootstrap.js +3 -0
  16. package/dist/protocol/bootstrap.js.map +1 -1
  17. package/dist/protocol/bots.d.ts +235 -0
  18. package/dist/protocol/bots.d.ts.map +1 -0
  19. package/dist/protocol/bots.js +78 -0
  20. package/dist/protocol/bots.js.map +1 -0
  21. package/dist/protocol/cloud.d.ts +4 -5
  22. package/dist/protocol/cloud.d.ts.map +1 -1
  23. package/dist/protocol/cloud.js +9 -6
  24. package/dist/protocol/cloud.js.map +1 -1
  25. package/dist/protocol/events.d.ts +120 -1
  26. package/dist/protocol/events.d.ts.map +1 -1
  27. package/dist/protocol/events.js +14 -0
  28. package/dist/protocol/events.js.map +1 -1
  29. package/dist/protocol/projects.d.ts +116 -5
  30. package/dist/protocol/projects.d.ts.map +1 -1
  31. package/dist/protocol/projects.js +2 -1
  32. package/dist/protocol/projects.js.map +1 -1
  33. package/dist/protocol/workspaces.d.ts +105 -16
  34. package/dist/protocol/workspaces.d.ts.map +1 -1
  35. package/dist/protocol/workspaces.js +13 -5
  36. package/dist/protocol/workspaces.js.map +1 -1
  37. package/package.json +1 -1
@@ -29,6 +29,60 @@ export interface AgentBootstrapResponse extends AgentDraftResponse, AgentModeRes
29
29
  * workspace carries its own ordered top-level agents.
30
30
  */
31
31
  export declare const desktopBootstrapResponseSchema: import("@sinclair/typebox").TObject<{
32
+ /** Every bot, archived ones included. Absent on older compatible daemons. */
33
+ bots: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
34
+ agent: import("@sinclair/typebox").TObject<{
35
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
36
+ canSendMessages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
37
+ createdAt: import("@sinclair/typebox").TInteger;
38
+ id: import("@sinclair/typebox").TString;
39
+ lastCursor: import("@sinclair/typebox").TString;
40
+ managedByAnotherAgent: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
41
+ orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
42
+ parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
43
+ pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
44
+ processes: import("@sinclair/typebox").TObject<{
45
+ running: import("@sinclair/typebox").TInteger;
46
+ }>;
47
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>;
48
+ subagents: import("@sinclair/typebox").TObject<{
49
+ running: import("@sinclair/typebox").TInteger;
50
+ total: import("@sinclair/typebox").TInteger;
51
+ }>;
52
+ title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
53
+ titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>;
54
+ unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
55
+ reason: import("@sinclair/typebox").TString;
56
+ since: import("@sinclair/typebox").TInteger;
57
+ }>, import("@sinclair/typebox").TNull]>;
58
+ updatedAt: import("@sinclair/typebox").TInteger;
59
+ userVisible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
60
+ version: import("@sinclair/typebox").TString;
61
+ workspaceId: import("@sinclair/typebox").TString;
62
+ }>;
63
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
64
+ avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
65
+ kind: import("@sinclair/typebox").TLiteral<"image">;
66
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>;
67
+ thumbhash: import("@sinclair/typebox").TString;
68
+ }>, import("@sinclair/typebox").TNull]>;
69
+ compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
70
+ path: import("@sinclair/typebox").TString;
71
+ type: import("@sinclair/typebox").TLiteral<"host">;
72
+ }>, import("@sinclair/typebox").TObject<{
73
+ image: import("@sinclair/typebox").TString;
74
+ type: import("@sinclair/typebox").TLiteral<"docker">;
75
+ }>]>;
76
+ createdAt: import("@sinclair/typebox").TInteger;
77
+ id: import("@sinclair/typebox").TString;
78
+ name: import("@sinclair/typebox").TString;
79
+ orderKey: import("@sinclair/typebox").TString;
80
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archived">]>;
81
+ updatedAt: import("@sinclair/typebox").TInteger;
82
+ username: import("@sinclair/typebox").TString;
83
+ version: import("@sinclair/typebox").TString;
84
+ workspaceId: import("@sinclair/typebox").TString;
85
+ }>>>;
32
86
  config: import("@sinclair/typebox").TObject<{
33
87
  defaults: import("@sinclair/typebox").TObject<{
34
88
  effort: import("@sinclair/typebox").TString;
@@ -239,7 +293,35 @@ export declare const desktopBootstrapResponseSchema: import("@sinclair/typebox")
239
293
  }>;
240
294
  /** Every active project, in catalog order. */
241
295
  projects: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
242
- agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<Agent>>;
296
+ agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
297
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
298
+ canSendMessages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
299
+ createdAt: import("@sinclair/typebox").TInteger;
300
+ id: import("@sinclair/typebox").TString;
301
+ lastCursor: import("@sinclair/typebox").TString;
302
+ managedByAnotherAgent: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
303
+ orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
304
+ parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
305
+ pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
306
+ processes: import("@sinclair/typebox").TObject<{
307
+ running: import("@sinclair/typebox").TInteger;
308
+ }>;
309
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>;
310
+ subagents: import("@sinclair/typebox").TObject<{
311
+ running: import("@sinclair/typebox").TInteger;
312
+ total: import("@sinclair/typebox").TInteger;
313
+ }>;
314
+ title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
315
+ titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>;
316
+ unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
317
+ reason: import("@sinclair/typebox").TString;
318
+ since: import("@sinclair/typebox").TInteger;
319
+ }>, import("@sinclair/typebox").TNull]>;
320
+ updatedAt: import("@sinclair/typebox").TInteger;
321
+ userVisible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
322
+ version: import("@sinclair/typebox").TString;
323
+ workspaceId: import("@sinclair/typebox").TString;
324
+ }>>;
243
325
  archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
244
326
  avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
245
327
  kind: import("@sinclair/typebox").TLiteral<"image">;
@@ -340,12 +422,41 @@ export declare const desktopBootstrapResponseSchema: import("@sinclair/typebox")
340
422
  }>]>>;
341
423
  /** Each project's root workspace and the workspaces directly under it. */
342
424
  workspaces: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
343
- agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<Agent>>;
425
+ agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
426
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
427
+ canSendMessages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
428
+ createdAt: import("@sinclair/typebox").TInteger;
429
+ id: import("@sinclair/typebox").TString;
430
+ lastCursor: import("@sinclair/typebox").TString;
431
+ managedByAnotherAgent: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
432
+ orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
433
+ parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
434
+ pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
435
+ processes: import("@sinclair/typebox").TObject<{
436
+ running: import("@sinclair/typebox").TInteger;
437
+ }>;
438
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>;
439
+ subagents: import("@sinclair/typebox").TObject<{
440
+ running: import("@sinclair/typebox").TInteger;
441
+ total: import("@sinclair/typebox").TInteger;
442
+ }>;
443
+ title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
444
+ titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>;
445
+ unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
446
+ reason: import("@sinclair/typebox").TString;
447
+ since: import("@sinclair/typebox").TInteger;
448
+ }>, import("@sinclair/typebox").TNull]>;
449
+ updatedAt: import("@sinclair/typebox").TInteger;
450
+ userVisible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
451
+ version: import("@sinclair/typebox").TString;
452
+ workspaceId: import("@sinclair/typebox").TString;
453
+ }>>;
344
454
  archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
345
455
  base: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
346
456
  commit: import("@sinclair/typebox").TString;
347
457
  ref: import("@sinclair/typebox").TString;
348
458
  }>, import("@sinclair/typebox").TNull]>;
459
+ botId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
349
460
  compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
350
461
  path: import("@sinclair/typebox").TString;
351
462
  type: import("@sinclair/typebox").TLiteral<"host">;
@@ -369,12 +480,12 @@ export declare const desktopBootstrapResponseSchema: import("@sinclair/typebox")
369
480
  error: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
370
481
  status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"initializing">, import("@sinclair/typebox").TLiteral<"ready">, import("@sinclair/typebox").TLiteral<"failed">]>;
371
482
  }>;
372
- kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TLiteral<"worktree">, import("@sinclair/typebox").TLiteral<"copy">]>;
483
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TLiteral<"worktree">, import("@sinclair/typebox").TLiteral<"copy">, import("@sinclair/typebox").TLiteral<"bot">]>;
373
484
  name: import("@sinclair/typebox").TString;
374
485
  nameSource: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>;
375
486
  orderKey: import("@sinclair/typebox").TString;
376
487
  parentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
377
- projectId: import("@sinclair/typebox").TString;
488
+ projectId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
378
489
  status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archiving">, import("@sinclair/typebox").TLiteral<"archived">]>;
379
490
  updatedAt: import("@sinclair/typebox").TInteger;
380
491
  version: import("@sinclair/typebox").TString;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../sources/protocol/bootstrap.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,aAAa,CAAC;AAGlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD;;;;;;GAMG;AACH,MAAM,WAAW,sBACb,SAAQ,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB;IAChF,gFAAgF;IAChF,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,mFAAmF;IACnF,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEvC;;;OAGG;;IAEH,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEpF,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIjF,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE9C,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE7E,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5E,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../sources/protocol/bootstrap.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/F,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,aAAa,CAAC;AAGlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD;;;;;;GAMG;AACH,MAAM,WAAW,sBACb,SAAQ,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB;IAChF,gFAAgF;IAChF,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,mFAAmF;IACnF,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;IACvC,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7E;;;OAGG;;IAEH,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEpF,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIjF,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE9C,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE7E,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5E,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /** Bootstrap: one request that gets a desktop client on screen instantly. */
2
2
  import { Type } from "@sinclair/typebox";
3
+ import { botSchema } from "./bots.js";
3
4
  import { cloudSchema } from "./cloud.js";
4
5
  import { eventCursorSchema } from "./common.js";
5
6
  import { daemonConfigSchema, onboardingStateSchema } from "./daemon.js";
@@ -16,6 +17,8 @@ import { workspaceSchema } from "./workspaces.js";
16
17
  * workspace carries its own ordered top-level agents.
17
18
  */
18
19
  export const desktopBootstrapResponseSchema = Type.Object({
20
+ /** Every bot, archived ones included. Absent on older compatible daemons. */
21
+ bots: Type.Optional(Type.Array(botSchema)),
19
22
  config: daemonConfigSchema,
20
23
  /**
21
24
  * The newest event cursor as of this snapshot. Opening the event stream
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../sources/protocol/bootstrap.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAe,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBlD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,MAAM,EAAE,kBAAkB;IAC1B;;;OAGG;IACH,MAAM,EAAE,iBAAiB;IACzB,oFAAoF;IACpF,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACjC,iFAAiF;IACjF,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACvD,UAAU,EAAE,qBAAqB;IACjC,OAAO,EAAE,aAAa;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACnC,6EAA6E;IAC7E,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IACrC,0EAA0E;IAC1E,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;CAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../sources/protocol/bootstrap.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAe,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBlD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,6EAA6E;IAC7E,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,EAAE,kBAAkB;IAC1B;;;OAGG;IACH,MAAM,EAAE,iBAAiB;IACzB,oFAAoF;IACpF,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACjC,iFAAiF;IACjF,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACvD,UAAU,EAAE,qBAAqB;IACjC,OAAO,EAAE,aAAa;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACnC,6EAA6E;IAC7E,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IACrC,0EAA0E;IAC1E,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;CAC1C,CAAC,CAAC"}
@@ -0,0 +1,235 @@
1
+ /** Bots: persistent single-conversation assistants with a dedicated workspace. */
2
+ import { type Static } from "@sinclair/typebox";
3
+ /** A bot picture. Its bytes are served separately from the bot resource. */
4
+ export declare const botAvatarSchema: import("@sinclair/typebox").TObject<{
5
+ kind: import("@sinclair/typebox").TLiteral<"image">;
6
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>;
7
+ thumbhash: import("@sinclair/typebox").TString;
8
+ }>;
9
+ export type BotAvatar = Static<typeof botAvatarSchema>;
10
+ /** A human display name: nonblank, bounded, and free of ASCII control characters. */
11
+ export declare const botNameSchema: import("@sinclair/typebox").TString;
12
+ export type BotName = Static<typeof botNameSchema>;
13
+ /** The immutable local folder name chosen when a bot is created. */
14
+ export declare const botUsernameSchema: import("@sinclair/typebox").TString;
15
+ export type BotUsername = Static<typeof botUsernameSchema>;
16
+ /** A bot and its one independently versioned agent. */
17
+ export declare const botSchema: import("@sinclair/typebox").TObject<{
18
+ /** The bot's one agent, embedded in full for list rendering. */
19
+ agent: import("@sinclair/typebox").TObject<{
20
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
21
+ canSendMessages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
22
+ createdAt: import("@sinclair/typebox").TInteger;
23
+ id: import("@sinclair/typebox").TString;
24
+ lastCursor: import("@sinclair/typebox").TString;
25
+ managedByAnotherAgent: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
26
+ orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
27
+ parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
28
+ pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
29
+ processes: import("@sinclair/typebox").TObject<{
30
+ running: import("@sinclair/typebox").TInteger;
31
+ }>;
32
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>;
33
+ subagents: import("@sinclair/typebox").TObject<{
34
+ running: import("@sinclair/typebox").TInteger;
35
+ total: import("@sinclair/typebox").TInteger;
36
+ }>;
37
+ title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
38
+ titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>;
39
+ unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
40
+ reason: import("@sinclair/typebox").TString;
41
+ since: import("@sinclair/typebox").TInteger;
42
+ }>, import("@sinclair/typebox").TNull]>;
43
+ updatedAt: import("@sinclair/typebox").TInteger;
44
+ userVisible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
45
+ version: import("@sinclair/typebox").TString;
46
+ workspaceId: import("@sinclair/typebox").TString;
47
+ }>;
48
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
49
+ avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
50
+ kind: import("@sinclair/typebox").TLiteral<"image">;
51
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>;
52
+ thumbhash: import("@sinclair/typebox").TString;
53
+ }>, import("@sinclair/typebox").TNull]>;
54
+ /** Mirrors the dedicated workspace's compute. */
55
+ compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
56
+ path: import("@sinclair/typebox").TString;
57
+ type: import("@sinclair/typebox").TLiteral<"host">;
58
+ }>, import("@sinclair/typebox").TObject<{
59
+ image: import("@sinclair/typebox").TString;
60
+ type: import("@sinclair/typebox").TLiteral<"docker">;
61
+ }>]>;
62
+ createdAt: import("@sinclair/typebox").TInteger;
63
+ id: import("@sinclair/typebox").TString;
64
+ name: import("@sinclair/typebox").TString;
65
+ /** An opaque catalog sort key. */
66
+ orderKey: import("@sinclair/typebox").TString;
67
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archived">]>;
68
+ updatedAt: import("@sinclair/typebox").TInteger;
69
+ /** Immutable local snake_case name and folder name. */
70
+ username: import("@sinclair/typebox").TString;
71
+ version: import("@sinclair/typebox").TString;
72
+ /** The bot's dedicated workspace, distinct from the bot and agent IDs. */
73
+ workspaceId: import("@sinclair/typebox").TString;
74
+ }>;
75
+ export type Bot = Static<typeof botSchema>;
76
+ /** `GET /v0/bots` */
77
+ export declare const botListResponseSchema: import("@sinclair/typebox").TObject<{
78
+ bots: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
79
+ /** The bot's one agent, embedded in full for list rendering. */
80
+ agent: import("@sinclair/typebox").TObject<{
81
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
82
+ canSendMessages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
83
+ createdAt: import("@sinclair/typebox").TInteger;
84
+ id: import("@sinclair/typebox").TString;
85
+ lastCursor: import("@sinclair/typebox").TString;
86
+ managedByAnotherAgent: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
87
+ orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
88
+ parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
89
+ pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
90
+ processes: import("@sinclair/typebox").TObject<{
91
+ running: import("@sinclair/typebox").TInteger;
92
+ }>;
93
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>;
94
+ subagents: import("@sinclair/typebox").TObject<{
95
+ running: import("@sinclair/typebox").TInteger;
96
+ total: import("@sinclair/typebox").TInteger;
97
+ }>;
98
+ title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
99
+ titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>;
100
+ unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
101
+ reason: import("@sinclair/typebox").TString;
102
+ since: import("@sinclair/typebox").TInteger;
103
+ }>, import("@sinclair/typebox").TNull]>;
104
+ updatedAt: import("@sinclair/typebox").TInteger;
105
+ userVisible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
106
+ version: import("@sinclair/typebox").TString;
107
+ workspaceId: import("@sinclair/typebox").TString;
108
+ }>;
109
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
110
+ avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
111
+ kind: import("@sinclair/typebox").TLiteral<"image">;
112
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>;
113
+ thumbhash: import("@sinclair/typebox").TString;
114
+ }>, import("@sinclair/typebox").TNull]>;
115
+ /** Mirrors the dedicated workspace's compute. */
116
+ compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
117
+ path: import("@sinclair/typebox").TString;
118
+ type: import("@sinclair/typebox").TLiteral<"host">;
119
+ }>, import("@sinclair/typebox").TObject<{
120
+ image: import("@sinclair/typebox").TString;
121
+ type: import("@sinclair/typebox").TLiteral<"docker">;
122
+ }>]>;
123
+ createdAt: import("@sinclair/typebox").TInteger;
124
+ id: import("@sinclair/typebox").TString;
125
+ name: import("@sinclair/typebox").TString;
126
+ /** An opaque catalog sort key. */
127
+ orderKey: import("@sinclair/typebox").TString;
128
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archived">]>;
129
+ updatedAt: import("@sinclair/typebox").TInteger;
130
+ /** Immutable local snake_case name and folder name. */
131
+ username: import("@sinclair/typebox").TString;
132
+ version: import("@sinclair/typebox").TString;
133
+ /** The bot's dedicated workspace, distinct from the bot and agent IDs. */
134
+ workspaceId: import("@sinclair/typebox").TString;
135
+ }>>;
136
+ }>;
137
+ export type BotListResponse = Static<typeof botListResponseSchema>;
138
+ /** Every single-bot JSON route answers with this. */
139
+ export declare const botResponseSchema: import("@sinclair/typebox").TObject<{
140
+ bot: import("@sinclair/typebox").TObject<{
141
+ /** The bot's one agent, embedded in full for list rendering. */
142
+ agent: import("@sinclair/typebox").TObject<{
143
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
144
+ canSendMessages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
145
+ createdAt: import("@sinclair/typebox").TInteger;
146
+ id: import("@sinclair/typebox").TString;
147
+ lastCursor: import("@sinclair/typebox").TString;
148
+ managedByAnotherAgent: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
149
+ orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
150
+ parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
151
+ pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
152
+ processes: import("@sinclair/typebox").TObject<{
153
+ running: import("@sinclair/typebox").TInteger;
154
+ }>;
155
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>;
156
+ subagents: import("@sinclair/typebox").TObject<{
157
+ running: import("@sinclair/typebox").TInteger;
158
+ total: import("@sinclair/typebox").TInteger;
159
+ }>;
160
+ title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
161
+ titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>;
162
+ unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
163
+ reason: import("@sinclair/typebox").TString;
164
+ since: import("@sinclair/typebox").TInteger;
165
+ }>, import("@sinclair/typebox").TNull]>;
166
+ updatedAt: import("@sinclair/typebox").TInteger;
167
+ userVisible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
168
+ version: import("@sinclair/typebox").TString;
169
+ workspaceId: import("@sinclair/typebox").TString;
170
+ }>;
171
+ archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
172
+ avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
173
+ kind: import("@sinclair/typebox").TLiteral<"image">;
174
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>;
175
+ thumbhash: import("@sinclair/typebox").TString;
176
+ }>, import("@sinclair/typebox").TNull]>;
177
+ /** Mirrors the dedicated workspace's compute. */
178
+ compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
179
+ path: import("@sinclair/typebox").TString;
180
+ type: import("@sinclair/typebox").TLiteral<"host">;
181
+ }>, import("@sinclair/typebox").TObject<{
182
+ image: import("@sinclair/typebox").TString;
183
+ type: import("@sinclair/typebox").TLiteral<"docker">;
184
+ }>]>;
185
+ createdAt: import("@sinclair/typebox").TInteger;
186
+ id: import("@sinclair/typebox").TString;
187
+ name: import("@sinclair/typebox").TString;
188
+ /** An opaque catalog sort key. */
189
+ orderKey: import("@sinclair/typebox").TString;
190
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archived">]>;
191
+ updatedAt: import("@sinclair/typebox").TInteger;
192
+ /** Immutable local snake_case name and folder name. */
193
+ username: import("@sinclair/typebox").TString;
194
+ version: import("@sinclair/typebox").TString;
195
+ /** The bot's dedicated workspace, distinct from the bot and agent IDs. */
196
+ workspaceId: import("@sinclair/typebox").TString;
197
+ }>;
198
+ }>;
199
+ export type BotResponse = Static<typeof botResponseSchema>;
200
+ /** `POST /v0/bots` */
201
+ export declare const createBotRequestSchema: import("@sinclair/typebox").TObject<{
202
+ /** Optional client-supplied ID, which makes creation safely retryable. */
203
+ id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
204
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
205
+ name: import("@sinclair/typebox").TString;
206
+ /** Omitted, the daemon derives a unique username from `name`. */
207
+ username: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
208
+ }>;
209
+ export type CreateBotRequest = Static<typeof createBotRequestSchema>;
210
+ /** `PATCH /v0/bots/:botId` — the immutable username is deliberately absent. */
211
+ export declare const renameBotRequestSchema: import("@sinclair/typebox").TObject<{
212
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
213
+ name: import("@sinclair/typebox").TString;
214
+ /** Explicitly forbidden even though request objects tolerate future additive fields. */
215
+ username: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNever>;
216
+ }>;
217
+ export type RenameBotRequest = Static<typeof renameBotRequestSchema>;
218
+ /** `POST /v0/bots/:botId/archive` */
219
+ export declare const archiveBotRequestSchema: import("@sinclair/typebox").TObject<{
220
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
221
+ }>;
222
+ export type ArchiveBotRequest = Static<typeof archiveBotRequestSchema>;
223
+ /** `POST /v0/bots/:botId/unarchive` */
224
+ export declare const unarchiveBotRequestSchema: import("@sinclair/typebox").TObject<{
225
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
226
+ }>;
227
+ export type UnarchiveBotRequest = Static<typeof unarchiveBotRequestSchema>;
228
+ /** `POST /v0/bots/:botId/reorder` */
229
+ export declare const reorderBotRequestSchema: import("@sinclair/typebox").TObject<{
230
+ /** The bot to place this one after, or `null` to move it first. */
231
+ afterId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
232
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
233
+ }>;
234
+ export type ReorderBotRequest = Static<typeof reorderBotRequestSchema>;
235
+ //# sourceMappingURL=bots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bots.d.ts","sourceRoot":"","sources":["../../sources/protocol/bots.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAYtD,4EAA4E;AAC5E,eAAO,MAAM,eAAe;;;;EAI1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAEvD,qFAAqF;AACrF,eAAO,MAAM,aAAa,qCAIxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAEnD,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,qCAI5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,uDAAuD;AACvD,eAAO,MAAM,SAAS;IAClB,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIhE,iDAAiD;;;;;;;;;;;IAKjD,kCAAkC;;;;IAIlC,uDAAuD;;;IAGvD,0EAA0E;;EAE5E,CAAC;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;AAE3C,qBAAqB;AACrB,eAAO,MAAM,qBAAqB;;QAtB9B,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAIhE,iDAAiD;;;;;;;;;;;QAKjD,kCAAkC;;;;QAIlC,uDAAuD;;;QAGvD,0EAA0E;;;EAMG,CAAC;AAClF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEnE,qDAAqD;AACrD,eAAO,MAAM,iBAAiB;;QA1B1B,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAIhE,iDAAiD;;;;;;;;;;;QAKjD,kCAAkC;;;;QAIlC,uDAAuD;;;QAGvD,0EAA0E;;;EAUd,CAAC;AACjE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,sBAAsB;AACtB,eAAO,MAAM,sBAAsB;IAC/B,0EAA0E;;;;IAI1E,iEAAiE;;EAEnE,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB;;;IAG/B,wFAAwF;;EAE1F,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,qCAAqC;AACrC,eAAO,MAAM,uBAAuB;;EAElC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEvE,uCAAuC;AACvC,eAAO,MAAM,yBAAyB;;EAEpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,qCAAqC;AACrC,eAAO,MAAM,uBAAuB;IAChC,mEAAmE;;;EAGrE,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,78 @@
1
+ /** Bots: persistent single-conversation assistants with a dedicated workspace. */
2
+ import { Type } from "@sinclair/typebox";
3
+ import { agentSchema } from "./agents.js";
4
+ import { computeSchema, cuid2Schema, mutationIdSchema, Nullable, resourceVersionSchema, timestampSchema, } from "./common.js";
5
+ /** A bot picture. Its bytes are served separately from the bot resource. */
6
+ export const botAvatarSchema = Type.Object({
7
+ kind: Type.Literal("image"),
8
+ source: Type.Union([Type.Literal("user"), Type.Literal("generated")]),
9
+ thumbhash: Type.String(),
10
+ });
11
+ /** A human display name: nonblank, bounded, and free of ASCII control characters. */
12
+ export const botNameSchema = Type.String({
13
+ maxLength: 256,
14
+ minLength: 1,
15
+ pattern: "^(?=.*\\S)[^\\x00-\\x1f\\x7f]+$",
16
+ });
17
+ /** The immutable local folder name chosen when a bot is created. */
18
+ export const botUsernameSchema = Type.String({
19
+ maxLength: 64,
20
+ minLength: 1,
21
+ pattern: "^[a-z][a-z0-9_]{0,63}$",
22
+ });
23
+ /** A bot and its one independently versioned agent. */
24
+ export const botSchema = Type.Object({
25
+ /** The bot's one agent, embedded in full for list rendering. */
26
+ agent: agentSchema,
27
+ archivedAt: Nullable(timestampSchema),
28
+ avatar: Nullable(botAvatarSchema),
29
+ /** Mirrors the dedicated workspace's compute. */
30
+ compute: computeSchema,
31
+ createdAt: timestampSchema,
32
+ id: cuid2Schema,
33
+ name: botNameSchema,
34
+ /** An opaque catalog sort key. */
35
+ orderKey: Type.String(),
36
+ status: Type.Union([Type.Literal("active"), Type.Literal("archived")]),
37
+ updatedAt: timestampSchema,
38
+ /** Immutable local snake_case name and folder name. */
39
+ username: botUsernameSchema,
40
+ version: resourceVersionSchema,
41
+ /** The bot's dedicated workspace, distinct from the bot and agent IDs. */
42
+ workspaceId: cuid2Schema,
43
+ });
44
+ /** `GET /v0/bots` */
45
+ export const botListResponseSchema = Type.Object({ bots: Type.Array(botSchema) });
46
+ /** Every single-bot JSON route answers with this. */
47
+ export const botResponseSchema = Type.Object({ bot: botSchema });
48
+ /** `POST /v0/bots` */
49
+ export const createBotRequestSchema = Type.Object({
50
+ /** Optional client-supplied ID, which makes creation safely retryable. */
51
+ id: Type.Optional(cuid2Schema),
52
+ mutationId: Type.Optional(mutationIdSchema),
53
+ name: botNameSchema,
54
+ /** Omitted, the daemon derives a unique username from `name`. */
55
+ username: Type.Optional(botUsernameSchema),
56
+ });
57
+ /** `PATCH /v0/bots/:botId` — the immutable username is deliberately absent. */
58
+ export const renameBotRequestSchema = Type.Object({
59
+ mutationId: Type.Optional(mutationIdSchema),
60
+ name: botNameSchema,
61
+ /** Explicitly forbidden even though request objects tolerate future additive fields. */
62
+ username: Type.Optional(Type.Never()),
63
+ });
64
+ /** `POST /v0/bots/:botId/archive` */
65
+ export const archiveBotRequestSchema = Type.Object({
66
+ mutationId: Type.Optional(mutationIdSchema),
67
+ });
68
+ /** `POST /v0/bots/:botId/unarchive` */
69
+ export const unarchiveBotRequestSchema = Type.Object({
70
+ mutationId: Type.Optional(mutationIdSchema),
71
+ });
72
+ /** `POST /v0/bots/:botId/reorder` */
73
+ export const reorderBotRequestSchema = Type.Object({
74
+ /** The bot to place this one after, or `null` to move it first. */
75
+ afterId: Nullable(cuid2Schema),
76
+ mutationId: Type.Optional(mutationIdSchema),
77
+ });
78
+ //# sourceMappingURL=bots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bots.js","sourceRoot":"","sources":["../../sources/protocol/bots.ts"],"names":[],"mappings":"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"}
@@ -237,6 +237,7 @@ export declare const cloudAccessTokenResponseSchema: import("@sinclair/typebox")
237
237
  }>;
238
238
  }>;
239
239
  export type CloudAccessTokenResponse = Static<typeof cloudAccessTokenResponseSchema>;
240
+ export declare const cloudUsernameSchema: import("@sinclair/typebox").TString;
240
241
  /** A public profile that has not yet been registered in Happy Cloud. */
241
242
  export declare const cloudUnregisteredProfileSchema: import("@sinclair/typebox").TObject<{
242
243
  firstName: import("@sinclair/typebox").TNull;
@@ -270,12 +271,10 @@ export declare const cloudProfileResponseSchema: import("@sinclair/typebox").TOb
270
271
  }>]>;
271
272
  }>;
272
273
  export type CloudProfileResponse = Static<typeof cloudProfileResponseSchema>;
273
- /** Registers or replaces the connected WorkOS user's public Happy Cloud profile. */
274
- export declare const updateCloudProfileRequestSchema: import("@sinclair/typebox").TObject<{
275
- firstName: import("@sinclair/typebox").TString;
276
- lastName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
274
+ /** Enrolls the connected account using the local Happy Agent profile and a Cloud username. */
275
+ export declare const enrollCloudProfileRequestSchema: import("@sinclair/typebox").TObject<{
277
276
  mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
278
277
  username: import("@sinclair/typebox").TString;
279
278
  }>;
280
- export type UpdateCloudProfileRequest = Static<typeof updateCloudProfileRequestSchema>;
279
+ export type EnrollCloudProfileRequest = Static<typeof enrollCloudProfileRequestSchema>;
281
280
  //# sourceMappingURL=cloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../sources/protocol/cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../sources/protocol/cloud.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,11 @@ const cloudVisibleNameSchema = Type.String({
101
101
  maxLength: 64,
102
102
  pattern: "^(?=.*\\S)[^\\x00-\\x1f\\x7f]+$",
103
103
  });
104
+ export const cloudUsernameSchema = Type.String({
105
+ minLength: 3,
106
+ maxLength: 24,
107
+ pattern: "^[a-z0-9_]+$",
108
+ });
104
109
  /** A public profile that has not yet been registered in Happy Cloud. */
105
110
  export const cloudUnregisteredProfileSchema = Type.Object({
106
111
  firstName: Type.Null(),
@@ -110,18 +115,16 @@ export const cloudUnregisteredProfileSchema = Type.Object({
110
115
  export const cloudRegisteredProfileSchema = Type.Object({
111
116
  firstName: cloudVisibleNameSchema,
112
117
  lastName: Type.Optional(cloudVisibleNameSchema),
113
- username: Type.String({ minLength: 3, maxLength: 24, pattern: "^[a-z0-9_]+$" }),
118
+ username: cloudUsernameSchema,
114
119
  });
115
120
  export const cloudProfileSchema = Type.Union([
116
121
  cloudUnregisteredProfileSchema,
117
122
  cloudRegisteredProfileSchema,
118
123
  ]);
119
124
  export const cloudProfileResponseSchema = Type.Object({ profile: cloudProfileSchema });
120
- /** Registers or replaces the connected WorkOS user's public Happy Cloud profile. */
121
- export const updateCloudProfileRequestSchema = Type.Object({
122
- firstName: cloudVisibleNameSchema,
123
- lastName: Type.Optional(cloudVisibleNameSchema),
125
+ /** Enrolls the connected account using the local Happy Agent profile and a Cloud username. */
126
+ export const enrollCloudProfileRequestSchema = Type.Object({
124
127
  mutationId: Type.Optional(mutationIdSchema),
125
- username: Type.String({ minLength: 3, maxLength: 24, pattern: "^[a-z0-9_]+$" }),
128
+ username: cloudUsernameSchema,
126
129
  }, { additionalProperties: false });
127
130
  //# sourceMappingURL=cloud.js.map