@slopus/happy-agent-client 0.0.32 → 0.0.33
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/dist/HappyAgentClient.d.ts +21 -0
- package/dist/HappyAgentClient.d.ts.map +1 -1
- package/dist/HappyAgentClient.js +90 -0
- package/dist/HappyAgentClient.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol/agents.d.ts +48 -41
- package/dist/protocol/agents.d.ts.map +1 -1
- package/dist/protocol/agents.js +48 -1
- package/dist/protocol/agents.js.map +1 -1
- package/dist/protocol/bootstrap.d.ts +115 -4
- package/dist/protocol/bootstrap.d.ts.map +1 -1
- package/dist/protocol/bootstrap.js +3 -0
- package/dist/protocol/bootstrap.js.map +1 -1
- package/dist/protocol/bots.d.ts +235 -0
- package/dist/protocol/bots.d.ts.map +1 -0
- package/dist/protocol/bots.js +78 -0
- package/dist/protocol/bots.js.map +1 -0
- package/dist/protocol/events.d.ts +120 -1
- package/dist/protocol/events.d.ts.map +1 -1
- package/dist/protocol/events.js +14 -0
- package/dist/protocol/events.js.map +1 -1
- package/dist/protocol/projects.d.ts +116 -5
- package/dist/protocol/projects.d.ts.map +1 -1
- package/dist/protocol/projects.js +2 -1
- package/dist/protocol/projects.js.map +1 -1
- package/dist/protocol/workspaces.d.ts +105 -16
- package/dist/protocol/workspaces.d.ts.map +1 -1
- package/dist/protocol/workspaces.js +13 -5
- package/dist/protocol/workspaces.js.map +1 -1
- 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").
|
|
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").
|
|
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;
|
|
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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"}
|