@finalai/agent-protocol 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @finalai/agent-protocol might be problematic. Click here for more details.

Files changed (56) hide show
  1. package/README.md +10 -0
  2. package/dist/modules/agent-platform/agents.d.mts +162 -0
  3. package/dist/modules/agent-platform/agents.mjs +91 -0
  4. package/dist/modules/agent-platform/agents.mjs.map +7 -0
  5. package/dist/modules/agent-platform/build.d.mts +678 -0
  6. package/dist/modules/agent-platform/build.mjs +348 -0
  7. package/dist/modules/agent-platform/build.mjs.map +7 -0
  8. package/dist/modules/agent-platform/common.d.mts +221 -0
  9. package/dist/modules/agent-platform/common.mjs +157 -0
  10. package/dist/modules/agent-platform/common.mjs.map +7 -0
  11. package/dist/modules/agent-platform/conversation-schedules.d.mts +98 -0
  12. package/dist/modules/agent-platform/conversation-schedules.mjs +70 -0
  13. package/dist/modules/agent-platform/conversation-schedules.mjs.map +7 -0
  14. package/dist/modules/agent-platform/conversations.d.mts +1024 -0
  15. package/dist/modules/agent-platform/conversations.mjs +378 -0
  16. package/dist/modules/agent-platform/conversations.mjs.map +7 -0
  17. package/dist/modules/agent-platform/enums.d.mts +231 -0
  18. package/dist/modules/agent-platform/enums.mjs +306 -0
  19. package/dist/modules/agent-platform/enums.mjs.map +7 -0
  20. package/dist/modules/agent-platform/index.d.mts +13 -0
  21. package/dist/modules/agent-platform/index.mjs +16 -0
  22. package/dist/modules/agent-platform/index.mjs.map +7 -0
  23. package/dist/modules/agent-platform/links.d.mts +77 -0
  24. package/dist/modules/agent-platform/links.mjs +34 -0
  25. package/dist/modules/agent-platform/links.mjs.map +7 -0
  26. package/dist/modules/agent-platform/people.d.mts +21 -0
  27. package/dist/modules/agent-platform/people.mjs +22 -0
  28. package/dist/modules/agent-platform/people.mjs.map +7 -0
  29. package/dist/modules/agent-platform/realtime.d.mts +713 -0
  30. package/dist/modules/agent-platform/realtime.mjs +185 -0
  31. package/dist/modules/agent-platform/realtime.mjs.map +7 -0
  32. package/dist/modules/agent-platform/sandboxes.d.mts +203 -0
  33. package/dist/modules/agent-platform/sandboxes.mjs +186 -0
  34. package/dist/modules/agent-platform/sandboxes.mjs.map +7 -0
  35. package/dist/modules/agent-platform/sessions.d.mts +494 -0
  36. package/dist/modules/agent-platform/sessions.mjs +242 -0
  37. package/dist/modules/agent-platform/sessions.mjs.map +7 -0
  38. package/dist/modules/base58.d.mts +2 -0
  39. package/dist/modules/base58.mjs +46 -0
  40. package/dist/modules/base58.mjs.map +7 -0
  41. package/dist/modules/index.d.mts +4 -0
  42. package/dist/modules/index.mjs +5 -0
  43. package/dist/modules/index.mjs.map +7 -0
  44. package/dist/modules/json-rpc.d.mts +15 -0
  45. package/dist/modules/json-rpc.mjs +20 -0
  46. package/dist/modules/json-rpc.mjs.map +7 -0
  47. package/dist/modules/json.d.mts +7 -0
  48. package/dist/modules/json.mjs +11 -0
  49. package/dist/modules/json.mjs.map +7 -0
  50. package/dist/modules/process-inspection.d.mts +177 -0
  51. package/dist/modules/process-inspection.mjs +83 -0
  52. package/dist/modules/process-inspection.mjs.map +7 -0
  53. package/dist/modules/tolerance.d.mts +18 -0
  54. package/dist/modules/tolerance.mjs +15 -0
  55. package/dist/modules/tolerance.mjs.map +7 -0
  56. package/package.json +121 -0
@@ -0,0 +1,185 @@
1
+ import * as z from "zod";
2
+ import { jsonValueSchema } from "../json.mjs";
3
+ import { tolerantStringEnum, tolerantTaggedUnion, WireFallback } from "../tolerance.mjs";
4
+ import { nullableNumber, nullableString } from "./common.mjs";
5
+ import {
6
+ conversationMessageSchema,
7
+ conversationSchema,
8
+ participantSchema,
9
+ reactionSchema
10
+ } from "./conversations.mjs";
11
+ import { AgentRealtimeKind, ConversationListChange, ParticipantChange } from "./enums.mjs";
12
+ import {
13
+ acpFrameEventSchema,
14
+ acpLiveFrameEventSchema,
15
+ acpLiveResetEventSchema,
16
+ acpPendingEventSchema,
17
+ acpPreviewEventSchema,
18
+ sessionStateEventSchema
19
+ } from "./sessions.mjs";
20
+ const agentRealtimeTopics = {
21
+ session: (sessionId) => `agent.session:${sessionId}`,
22
+ conversation: (conversationId) => `conversation:${conversationId}`,
23
+ userConversations: (userId) => `user.collection:${userId}:conversations`,
24
+ apiKeyConversations: (principalId) => `api-key.collection:${principalId}:conversations`,
25
+ apiKeyPending: (principalId) => `api-key.collection:${principalId}:pending`,
26
+ userPending: (userId) => `user.collection:${userId}:pending`
27
+ };
28
+ var AgentRealtimeFrameType = /* @__PURE__ */ ((AgentRealtimeFrameType2) => {
29
+ AgentRealtimeFrameType2["Event"] = "event";
30
+ AgentRealtimeFrameType2["Subscribed"] = "subscribed";
31
+ AgentRealtimeFrameType2["ResyncRequired"] = "resync_required";
32
+ AgentRealtimeFrameType2["Error"] = "error";
33
+ return AgentRealtimeFrameType2;
34
+ })(AgentRealtimeFrameType || {});
35
+ const agentRealtimeEnvelopeSchema = z.object({
36
+ type: z.literal("event" /* Event */),
37
+ topic: z.string(),
38
+ /** Null for events the gateway does not retain; those never advance a replay cursor. */
39
+ cursor: nullableString(),
40
+ eventKey: nullableString(),
41
+ kind: z.string(),
42
+ payload: jsonValueSchema.nullable().default(null),
43
+ createdAt: nullableString()
44
+ });
45
+ const agentRealtimeSubscribedFrameSchema = z.object({
46
+ type: z.literal("subscribed" /* Subscribed */),
47
+ topic: nullableString(),
48
+ cursor: nullableString()
49
+ });
50
+ const agentRealtimeResyncFrameSchema = z.object({
51
+ type: z.literal("resync_required" /* ResyncRequired */),
52
+ topic: nullableString(),
53
+ reason: nullableString()
54
+ });
55
+ const agentRealtimeErrorFrameSchema = z.object({
56
+ type: z.literal("error" /* Error */),
57
+ topic: nullableString(),
58
+ code: nullableString(),
59
+ message: nullableString(),
60
+ /** Null when the transport does not say; consumers then decide by `code`. */
61
+ retryable: z.boolean().nullable().default(null)
62
+ });
63
+ const agentRealtimeFrameSchema = tolerantTaggedUnion(
64
+ [
65
+ agentRealtimeEnvelopeSchema,
66
+ agentRealtimeSubscribedFrameSchema,
67
+ agentRealtimeResyncFrameSchema,
68
+ agentRealtimeErrorFrameSchema
69
+ ],
70
+ z.object({ type: z.string() }).transform((frame) => ({ type: WireFallback.Unrecognized, rawType: frame.type }))
71
+ );
72
+ const messageEventPayloadSchema = z.object({
73
+ message: conversationMessageSchema
74
+ });
75
+ const messageDeletedPayloadSchema = z.object({
76
+ conversationId: z.string(),
77
+ messageId: z.string(),
78
+ seq: nullableNumber(),
79
+ deletedAt: nullableString()
80
+ });
81
+ const reactionChangedPayloadSchema = z.object({
82
+ conversationId: z.string(),
83
+ messageId: z.string(),
84
+ emoji: z.string(),
85
+ participantId: z.string(),
86
+ added: z.boolean(),
87
+ /** Reactions on the message after the change; `mine` is always false here. */
88
+ reactions: z.array(reactionSchema).default([])
89
+ });
90
+ const participantChangedPayloadSchema = z.object({
91
+ conversationId: z.string(),
92
+ change: tolerantStringEnum(ParticipantChange),
93
+ participant: participantSchema
94
+ });
95
+ const conversationUpdatedPayloadSchema = z.object({
96
+ conversation: conversationSchema
97
+ });
98
+ const conversationReadPayloadSchema = z.object({
99
+ conversationId: z.string(),
100
+ participantId: z.string(),
101
+ lastReadSeq: z.number()
102
+ });
103
+ const conversationTypingPayloadSchema = z.object({
104
+ conversationId: z.string(),
105
+ participantId: z.string(),
106
+ typing: z.boolean(),
107
+ expiresAt: nullableString()
108
+ });
109
+ const turnStartedPayloadSchema = z.object({
110
+ conversationId: z.string(),
111
+ participantId: z.string(),
112
+ sessionId: z.string(),
113
+ turnId: z.string(),
114
+ promptMessageId: nullableString()
115
+ });
116
+ const turnEndedPayloadSchema = z.object({
117
+ conversationId: z.string(),
118
+ participantId: z.string(),
119
+ sessionId: z.string(),
120
+ turnId: z.string(),
121
+ stopReason: nullableString()
122
+ });
123
+ const conversationListChangedPayloadSchema = z.object({
124
+ conversationId: z.string(),
125
+ change: tolerantStringEnum(ConversationListChange),
126
+ conversation: conversationSchema.nullable().default(null)
127
+ });
128
+ const agentRealtimeEventSchema = tolerantTaggedUnion(
129
+ [
130
+ acpFrameEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpFrame) }),
131
+ acpLiveFrameEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpLiveFrame) }),
132
+ acpLiveResetEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpLiveReset) }),
133
+ acpPreviewEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpPreview) }),
134
+ acpPendingEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpPending) }),
135
+ sessionStateEventSchema.extend({ kind: z.literal(AgentRealtimeKind.SessionState) }),
136
+ messageEventPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.MessageCreated) }),
137
+ messageEventPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.MessageUpdated) }),
138
+ messageDeletedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.MessageDeleted) }),
139
+ reactionChangedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.ReactionChanged) }),
140
+ participantChangedPayloadSchema.extend({
141
+ kind: z.literal(AgentRealtimeKind.ParticipantChanged)
142
+ }),
143
+ conversationUpdatedPayloadSchema.extend({
144
+ kind: z.literal(AgentRealtimeKind.ConversationUpdated)
145
+ }),
146
+ conversationReadPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.ConversationRead) }),
147
+ conversationTypingPayloadSchema.extend({
148
+ kind: z.literal(AgentRealtimeKind.ConversationTyping)
149
+ }),
150
+ turnStartedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.TurnStarted) }),
151
+ turnEndedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.TurnEnded) }),
152
+ conversationListChangedPayloadSchema.extend({
153
+ kind: z.literal(AgentRealtimeKind.ConversationListChanged)
154
+ })
155
+ ],
156
+ z.object({ kind: z.string() }).transform((event) => ({ kind: WireFallback.Unrecognized, rawKind: event.kind }))
157
+ );
158
+ const payloadObjectSchema = z.record(z.string(), z.unknown());
159
+ const parseAgentRealtimeEvent = (envelope) => {
160
+ const fields = payloadObjectSchema.safeParse(envelope.payload).data ?? {};
161
+ const parsed = agentRealtimeEventSchema.safeParse({ ...fields, kind: envelope.kind });
162
+ return parsed.success ? parsed.data : { kind: WireFallback.Unrecognized, rawKind: envelope.kind };
163
+ };
164
+ export {
165
+ AgentRealtimeFrameType,
166
+ agentRealtimeEnvelopeSchema,
167
+ agentRealtimeErrorFrameSchema,
168
+ agentRealtimeEventSchema,
169
+ agentRealtimeFrameSchema,
170
+ agentRealtimeResyncFrameSchema,
171
+ agentRealtimeSubscribedFrameSchema,
172
+ agentRealtimeTopics,
173
+ conversationListChangedPayloadSchema,
174
+ conversationReadPayloadSchema,
175
+ conversationTypingPayloadSchema,
176
+ conversationUpdatedPayloadSchema,
177
+ messageDeletedPayloadSchema,
178
+ messageEventPayloadSchema,
179
+ parseAgentRealtimeEvent,
180
+ participantChangedPayloadSchema,
181
+ reactionChangedPayloadSchema,
182
+ turnEndedPayloadSchema,
183
+ turnStartedPayloadSchema
184
+ };
185
+ //# sourceMappingURL=realtime.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/agent-platform/realtime.ts"],
4
+ "sourcesContent": ["import * as z from 'zod';\n\nimport { jsonValueSchema } from \"../json.mjs\";\n\nimport { tolerantStringEnum, tolerantTaggedUnion, WireFallback } from \"../tolerance.mjs\";\n\nimport { nullableNumber, nullableString } from \"./common.mjs\";\n\nimport {\n conversationMessageSchema,\n conversationSchema,\n participantSchema,\n reactionSchema,\n} from \"./conversations.mjs\";\n\nimport { AgentRealtimeKind, ConversationListChange, ParticipantChange } from \"./enums.mjs\";\n\nimport {\n acpFrameEventSchema,\n acpLiveFrameEventSchema,\n acpLiveResetEventSchema,\n acpPendingEventSchema,\n acpPreviewEventSchema,\n sessionStateEventSchema,\n} from \"./sessions.mjs\";\n\n// Realtime topics and events of the agent platform (SPEC 4.2), delivered by\n// websocket-gateway. Every frame a topic subscriber receives is an\n// `agentRealtimeFrameSchema`; an event's `kind` + `payload` parse with\n// `parseAgentRealtimeEvent` into a flat, tagged `AgentRealtimeEvent`.\n\nexport const agentRealtimeTopics = {\n session: (sessionId: string): string => `agent.session:${sessionId}`,\n conversation: (conversationId: string): string => `conversation:${conversationId}`,\n userConversations: (userId: string): string => `user.collection:${userId}:conversations`,\n apiKeyConversations: (principalId: string): string =>\n `api-key.collection:${principalId}:conversations`,\n apiKeyPending: (principalId: string): string => `api-key.collection:${principalId}:pending`,\n userPending: (userId: string): string => `user.collection:${userId}:pending`,\n};\n\nexport enum AgentRealtimeFrameType {\n Event = 'event',\n Subscribed = 'subscribed',\n ResyncRequired = 'resync_required',\n Error = 'error',\n}\n\n/** The gateway's realtime event envelope (`@finalai/final-realtime-protocol` event, parsed tolerantly). */\nexport const agentRealtimeEnvelopeSchema = z.object({\n type: z.literal(AgentRealtimeFrameType.Event),\n topic: z.string(),\n /** Null for events the gateway does not retain; those never advance a replay cursor. */\n cursor: nullableString(),\n eventKey: nullableString(),\n kind: z.string(),\n payload: jsonValueSchema.nullable().default(null),\n createdAt: nullableString(),\n});\n\nexport type AgentRealtimeEnvelopeIface = z.infer<typeof agentRealtimeEnvelopeSchema>;\n\nexport const agentRealtimeSubscribedFrameSchema = z.object({\n type: z.literal(AgentRealtimeFrameType.Subscribed),\n topic: nullableString(),\n cursor: nullableString(),\n});\n\nexport const agentRealtimeResyncFrameSchema = z.object({\n type: z.literal(AgentRealtimeFrameType.ResyncRequired),\n topic: nullableString(),\n reason: nullableString(),\n});\n\nexport const agentRealtimeErrorFrameSchema = z.object({\n type: z.literal(AgentRealtimeFrameType.Error),\n topic: nullableString(),\n code: nullableString(),\n message: nullableString(),\n /** Null when the transport does not say; consumers then decide by `code`. */\n retryable: z.boolean().nullable().default(null),\n});\n\n/** One frame a topic subscriber receives from a realtime transport. */\nexport const agentRealtimeFrameSchema = tolerantTaggedUnion(\n [\n agentRealtimeEnvelopeSchema,\n agentRealtimeSubscribedFrameSchema,\n agentRealtimeResyncFrameSchema,\n agentRealtimeErrorFrameSchema,\n ],\n z\n .object({ type: z.string() })\n .transform((frame) => ({ type: WireFallback.Unrecognized, rawType: frame.type })),\n);\n\nexport type AgentRealtimeFrame = z.infer<typeof agentRealtimeFrameSchema>;\n\n// Conversation payloads (acp.* and session.state payloads live in sessions.ts).\n\nexport const messageEventPayloadSchema = z.object({\n message: conversationMessageSchema,\n});\n\nexport const messageDeletedPayloadSchema = z.object({\n conversationId: z.string(),\n messageId: z.string(),\n seq: nullableNumber(),\n deletedAt: nullableString(),\n});\n\nexport const reactionChangedPayloadSchema = z.object({\n conversationId: z.string(),\n messageId: z.string(),\n emoji: z.string(),\n participantId: z.string(),\n added: z.boolean(),\n /** Reactions on the message after the change; `mine` is always false here. */\n reactions: z.array(reactionSchema).default([]),\n});\n\nexport const participantChangedPayloadSchema = z.object({\n conversationId: z.string(),\n change: tolerantStringEnum(ParticipantChange),\n participant: participantSchema,\n});\n\nexport const conversationUpdatedPayloadSchema = z.object({\n conversation: conversationSchema,\n});\n\nexport const conversationReadPayloadSchema = z.object({\n conversationId: z.string(),\n participantId: z.string(),\n lastReadSeq: z.number(),\n});\n\nexport const conversationTypingPayloadSchema = z.object({\n conversationId: z.string(),\n participantId: z.string(),\n typing: z.boolean(),\n expiresAt: nullableString(),\n});\n\nexport const turnStartedPayloadSchema = z.object({\n conversationId: z.string(),\n participantId: z.string(),\n sessionId: z.string(),\n turnId: z.string(),\n promptMessageId: nullableString(),\n});\n\nexport const turnEndedPayloadSchema = z.object({\n conversationId: z.string(),\n participantId: z.string(),\n sessionId: z.string(),\n turnId: z.string(),\n stopReason: nullableString(),\n});\n\nexport const conversationListChangedPayloadSchema = z.object({\n conversationId: z.string(),\n change: tolerantStringEnum(ConversationListChange),\n conversation: conversationSchema.nullable().default(null),\n});\n\n/**\n * A realtime event flattened as `{ kind, ...payload }`. Kinds the bundle\n * predates, or payloads it cannot read, become `{ kind: Unrecognized, rawKind }`.\n */\nexport const agentRealtimeEventSchema = tolerantTaggedUnion(\n [\n acpFrameEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpFrame) }),\n acpLiveFrameEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpLiveFrame) }),\n acpLiveResetEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpLiveReset) }),\n acpPreviewEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpPreview) }),\n acpPendingEventSchema.extend({ kind: z.literal(AgentRealtimeKind.AcpPending) }),\n sessionStateEventSchema.extend({ kind: z.literal(AgentRealtimeKind.SessionState) }),\n messageEventPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.MessageCreated) }),\n messageEventPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.MessageUpdated) }),\n messageDeletedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.MessageDeleted) }),\n reactionChangedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.ReactionChanged) }),\n participantChangedPayloadSchema.extend({\n kind: z.literal(AgentRealtimeKind.ParticipantChanged),\n }),\n conversationUpdatedPayloadSchema.extend({\n kind: z.literal(AgentRealtimeKind.ConversationUpdated),\n }),\n conversationReadPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.ConversationRead) }),\n conversationTypingPayloadSchema.extend({\n kind: z.literal(AgentRealtimeKind.ConversationTyping),\n }),\n turnStartedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.TurnStarted) }),\n turnEndedPayloadSchema.extend({ kind: z.literal(AgentRealtimeKind.TurnEnded) }),\n conversationListChangedPayloadSchema.extend({\n kind: z.literal(AgentRealtimeKind.ConversationListChanged),\n }),\n ],\n z\n .object({ kind: z.string() })\n .transform((event) => ({ kind: WireFallback.Unrecognized, rawKind: event.kind })),\n);\n\nexport type AgentRealtimeEvent = z.infer<typeof agentRealtimeEventSchema>;\n\nexport type AgentRealtimeEventOf<Kind extends AgentRealtimeKind> = Extract<\n AgentRealtimeEvent,\n { kind: Kind }\n>;\n\nconst payloadObjectSchema = z.record(z.string(), z.unknown());\n\n/** Flattens an envelope into a tagged event; never throws. */\nexport const parseAgentRealtimeEvent = (\n envelope: Pick<AgentRealtimeEnvelopeIface, 'kind' | 'payload'>,\n): AgentRealtimeEvent => {\n const fields = payloadObjectSchema.safeParse(envelope.payload).data ?? {};\n const parsed = agentRealtimeEventSchema.safeParse({ ...fields, kind: envelope.kind });\n return parsed.success ? parsed.data : { kind: WireFallback.Unrecognized, rawKind: envelope.kind };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["AgentRealtimeFrameType"]
7
+ }
@@ -0,0 +1,203 @@
1
+ import * as z from 'zod';
2
+ import { WireFallback } from "../tolerance.mjs";
3
+ export declare enum ConversationSandboxKind {
4
+ Computer = "computer",
5
+ Device = "device",
6
+ Other = "other"
7
+ }
8
+ export declare enum ConversationSandboxStatus {
9
+ Pending = "pending",
10
+ Starting = "starting",
11
+ Running = "running",
12
+ Parked = "parked",
13
+ Ended = "ended",
14
+ Failed = "failed"
15
+ }
16
+ export declare enum SandboxAccessLevel {
17
+ Read = "read",
18
+ Execute = "execute",
19
+ Write = "write"
20
+ }
21
+ export declare enum SandboxEntryKind {
22
+ File = "file",
23
+ Directory = "directory",
24
+ Symlink = "symlink",
25
+ Other = "other"
26
+ }
27
+ export declare enum SandboxFileEncoding {
28
+ Utf8 = "utf8",
29
+ Base64 = "base64"
30
+ }
31
+ export declare enum SandboxPreviewKind {
32
+ Image = "image",
33
+ Url = "url"
34
+ }
35
+ export declare const conversationSandboxSchema: z.ZodObject<{
36
+ bindingId: z.ZodString;
37
+ target: z.ZodString;
38
+ provider: z.ZodString;
39
+ kind: z.ZodUnion<readonly [z.ZodEnum<typeof ConversationSandboxKind>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
40
+ status: z.ZodUnion<readonly [z.ZodEnum<typeof ConversationSandboxStatus>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
41
+ access: z.ZodUnion<readonly [z.ZodEnum<typeof SandboxAccessLevel>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
42
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
43
+ agentParticipantIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
44
+ previewAvailable: z.ZodDefault<z.ZodBoolean>;
45
+ filesAvailable: z.ZodOptional<z.ZodBoolean>;
46
+ canEdit: z.ZodOptional<z.ZodBoolean>;
47
+ canControlScreen: z.ZodOptional<z.ZodBoolean>;
48
+ canWake: z.ZodDefault<z.ZodBoolean>;
49
+ updatedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
50
+ }, z.core.$strip>;
51
+ export type ConversationSandboxIface = z.infer<typeof conversationSandboxSchema>;
52
+ export declare const conversationSandboxListSchema: z.ZodObject<{
53
+ sandboxes: z.ZodDefault<z.ZodArray<z.ZodObject<{
54
+ bindingId: z.ZodString;
55
+ target: z.ZodString;
56
+ provider: z.ZodString;
57
+ kind: z.ZodUnion<readonly [z.ZodEnum<typeof ConversationSandboxKind>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
58
+ status: z.ZodUnion<readonly [z.ZodEnum<typeof ConversationSandboxStatus>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
59
+ access: z.ZodUnion<readonly [z.ZodEnum<typeof SandboxAccessLevel>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
60
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
61
+ agentParticipantIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
62
+ previewAvailable: z.ZodDefault<z.ZodBoolean>;
63
+ filesAvailable: z.ZodOptional<z.ZodBoolean>;
64
+ canEdit: z.ZodOptional<z.ZodBoolean>;
65
+ canControlScreen: z.ZodOptional<z.ZodBoolean>;
66
+ canWake: z.ZodDefault<z.ZodBoolean>;
67
+ updatedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
68
+ }, z.core.$strip>>>;
69
+ }, z.core.$strip>;
70
+ export declare const sandboxDirEntrySchema: z.ZodObject<{
71
+ name: z.ZodString;
72
+ path: z.ZodString;
73
+ kind: z.ZodUnion<readonly [z.ZodEnum<typeof SandboxEntryKind>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
74
+ size: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
75
+ }, z.core.$strip>;
76
+ export type SandboxDirEntryIface = z.infer<typeof sandboxDirEntrySchema>;
77
+ /** `GET …/sandboxes/:bindingId/files?path=`: one directory, directories first. */
78
+ export declare const sandboxDirectorySchema: z.ZodObject<{
79
+ snapshot: z.ZodOptional<z.ZodNullable<z.ZodObject<{
80
+ id: z.ZodString;
81
+ capturedAt: z.ZodString;
82
+ }, z.core.$strip>>>;
83
+ bindingId: z.ZodString;
84
+ path: z.ZodString;
85
+ root: z.ZodString;
86
+ entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
87
+ name: z.ZodString;
88
+ path: z.ZodString;
89
+ kind: z.ZodUnion<readonly [z.ZodEnum<typeof SandboxEntryKind>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
90
+ size: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
91
+ }, z.core.$strip>>>;
92
+ truncated: z.ZodDefault<z.ZodBoolean>;
93
+ }, z.core.$strip>;
94
+ export type SandboxDirectoryIface = z.infer<typeof sandboxDirectorySchema>;
95
+ export declare const sandboxPathSchema: z.ZodObject<{
96
+ snapshot: z.ZodOptional<z.ZodNullable<z.ZodObject<{
97
+ id: z.ZodString;
98
+ capturedAt: z.ZodString;
99
+ }, z.core.$strip>>>;
100
+ bindingId: z.ZodString;
101
+ root: z.ZodString;
102
+ path: z.ZodString;
103
+ exists: z.ZodBoolean;
104
+ kind: z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<typeof SandboxEntryKind>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>>;
105
+ size: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
106
+ modifiedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
107
+ }, z.core.$strip>;
108
+ export type SandboxPathIface = z.infer<typeof sandboxPathSchema>;
109
+ export declare const sandboxSearchSchema: z.ZodObject<{
110
+ snapshot: z.ZodOptional<z.ZodNullable<z.ZodObject<{
111
+ id: z.ZodString;
112
+ capturedAt: z.ZodString;
113
+ }, z.core.$strip>>>;
114
+ bindingId: z.ZodString;
115
+ path: z.ZodString;
116
+ root: z.ZodString;
117
+ entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
118
+ name: z.ZodString;
119
+ path: z.ZodString;
120
+ kind: z.ZodUnion<readonly [z.ZodEnum<typeof SandboxEntryKind>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
121
+ size: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
122
+ }, z.core.$strip>>>;
123
+ truncated: z.ZodDefault<z.ZodBoolean>;
124
+ query: z.ZodString;
125
+ }, z.core.$strip>;
126
+ export type SandboxSearchIface = z.infer<typeof sandboxSearchSchema>;
127
+ export declare const sandboxSearchQuerySchema: z.ZodObject<{
128
+ path: z.ZodOptional<z.ZodString>;
129
+ query: z.ZodString;
130
+ limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
131
+ }, z.core.$strict>;
132
+ /** `GET …/sandboxes/:bindingId/file?path=&offset=&length=`: one byte range of a file. */
133
+ export declare const sandboxFileSchema: z.ZodObject<{
134
+ snapshot: z.ZodOptional<z.ZodNullable<z.ZodObject<{
135
+ id: z.ZodString;
136
+ capturedAt: z.ZodString;
137
+ }, z.core.$strip>>>;
138
+ bindingId: z.ZodString;
139
+ path: z.ZodString;
140
+ size: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
141
+ offset: z.ZodDefault<z.ZodNumber>;
142
+ length: z.ZodDefault<z.ZodNumber>;
143
+ truncated: z.ZodDefault<z.ZodBoolean>;
144
+ encoding: z.ZodUnion<readonly [z.ZodEnum<typeof SandboxFileEncoding>, z.ZodPipe<z.ZodUnknown, z.ZodTransform<WireFallback, unknown>>]>;
145
+ content: z.ZodDefault<z.ZodString>;
146
+ modifiedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
147
+ }, z.core.$strip>;
148
+ export type SandboxFileIface = z.infer<typeof sandboxFileSchema>;
149
+ /** `GET …/sandboxes/:bindingId/preview`: a short-lived look at the screen. */
150
+ export declare const sandboxPreviewSchema: z.ZodUnion<readonly [z.ZodObject<{
151
+ kind: z.ZodLiteral<SandboxPreviewKind.Url>;
152
+ url: z.ZodString;
153
+ token: z.ZodDefault<z.ZodNullable<z.ZodString>>;
154
+ expiresAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
155
+ }, z.core.$strip>, z.ZodObject<{
156
+ kind: z.ZodLiteral<SandboxPreviewKind.Image>;
157
+ contentType: z.ZodString;
158
+ dataBase64: z.ZodString;
159
+ expiresAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
160
+ }, z.core.$strip>, z.ZodPipe<z.ZodObject<{
161
+ kind: z.ZodString;
162
+ }, z.core.$strip>, z.ZodTransform<{
163
+ kind: WireFallback;
164
+ rawKind: string;
165
+ }, {
166
+ kind: string;
167
+ }>>]>;
168
+ export type SandboxPreviewType = z.infer<typeof sandboxPreviewSchema>;
169
+ export declare const SANDBOX_FILE_MAX_LENGTH: number;
170
+ export declare const sandboxFilesQuerySchema: z.ZodObject<{
171
+ snapshotId: z.ZodOptional<z.ZodString>;
172
+ path: z.ZodOptional<z.ZodString>;
173
+ }, z.core.$strict>;
174
+ export declare const sandboxFileQuerySchema: z.ZodObject<{
175
+ snapshotId: z.ZodOptional<z.ZodString>;
176
+ path: z.ZodString;
177
+ offset: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
178
+ length: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
179
+ }, z.core.$strict>;
180
+ /** Raw file bytes, with optional HTTP Range; never starts a sleeping sandbox. */
181
+ export declare const sandboxFileContentQuerySchema: z.ZodObject<{
182
+ snapshotId: z.ZodOptional<z.ZodString>;
183
+ path: z.ZodString;
184
+ download: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
185
+ }, z.core.$strict>;
186
+ export declare const sandboxEditorSessionSchema: z.ZodObject<{
187
+ id: z.ZodString;
188
+ authorizationId: z.ZodString;
189
+ workingDirectory: z.ZodString;
190
+ url: z.ZodString;
191
+ expiresAt: z.ZodString;
192
+ authentication: z.ZodObject<{
193
+ url: z.ZodString;
194
+ fields: z.ZodRecord<z.ZodString, z.ZodString>;
195
+ }, z.core.$strip>;
196
+ }, z.core.$strip>;
197
+ export type SandboxEditorSessionIface = z.infer<typeof sandboxEditorSessionSchema>;
198
+ export declare const sandboxEditorAuthorizationSchema: z.ZodObject<{
199
+ authorizationId: z.ZodString;
200
+ }, z.core.$strict>;
201
+ export declare const sandboxPreviewOptionsSchema: z.ZodObject<{
202
+ viewOnly: z.ZodDefault<z.ZodBoolean>;
203
+ }, z.core.$strip>;
@@ -0,0 +1,186 @@
1
+ import * as z from "zod";
2
+ import { tolerantStringEnum, tolerantTaggedUnion, WireFallback } from "../tolerance.mjs";
3
+ import { nullableNumber, nullableString } from "./common.mjs";
4
+ var ConversationSandboxKind = /* @__PURE__ */ ((ConversationSandboxKind2) => {
5
+ ConversationSandboxKind2["Computer"] = "computer";
6
+ ConversationSandboxKind2["Device"] = "device";
7
+ ConversationSandboxKind2["Other"] = "other";
8
+ return ConversationSandboxKind2;
9
+ })(ConversationSandboxKind || {});
10
+ var ConversationSandboxStatus = /* @__PURE__ */ ((ConversationSandboxStatus2) => {
11
+ ConversationSandboxStatus2["Pending"] = "pending";
12
+ ConversationSandboxStatus2["Starting"] = "starting";
13
+ ConversationSandboxStatus2["Running"] = "running";
14
+ ConversationSandboxStatus2["Parked"] = "parked";
15
+ ConversationSandboxStatus2["Ended"] = "ended";
16
+ ConversationSandboxStatus2["Failed"] = "failed";
17
+ return ConversationSandboxStatus2;
18
+ })(ConversationSandboxStatus || {});
19
+ var SandboxAccessLevel = /* @__PURE__ */ ((SandboxAccessLevel2) => {
20
+ SandboxAccessLevel2["Read"] = "read";
21
+ SandboxAccessLevel2["Execute"] = "execute";
22
+ SandboxAccessLevel2["Write"] = "write";
23
+ return SandboxAccessLevel2;
24
+ })(SandboxAccessLevel || {});
25
+ var SandboxEntryKind = /* @__PURE__ */ ((SandboxEntryKind2) => {
26
+ SandboxEntryKind2["File"] = "file";
27
+ SandboxEntryKind2["Directory"] = "directory";
28
+ SandboxEntryKind2["Symlink"] = "symlink";
29
+ SandboxEntryKind2["Other"] = "other";
30
+ return SandboxEntryKind2;
31
+ })(SandboxEntryKind || {});
32
+ var SandboxFileEncoding = /* @__PURE__ */ ((SandboxFileEncoding2) => {
33
+ SandboxFileEncoding2["Utf8"] = "utf8";
34
+ SandboxFileEncoding2["Base64"] = "base64";
35
+ return SandboxFileEncoding2;
36
+ })(SandboxFileEncoding || {});
37
+ var SandboxPreviewKind = /* @__PURE__ */ ((SandboxPreviewKind2) => {
38
+ SandboxPreviewKind2["Image"] = "image";
39
+ SandboxPreviewKind2["Url"] = "url";
40
+ return SandboxPreviewKind2;
41
+ })(SandboxPreviewKind || {});
42
+ const conversationSandboxSchema = z.object({
43
+ bindingId: z.string(),
44
+ /** The manifest's target name (`computer`). */
45
+ target: z.string(),
46
+ /** Provider reference text (`package:@finalai/final-agent-provider/sandboxes/computer`). */
47
+ provider: z.string(),
48
+ kind: tolerantStringEnum(ConversationSandboxKind),
49
+ status: tolerantStringEnum(ConversationSandboxStatus),
50
+ access: tolerantStringEnum(SandboxAccessLevel),
51
+ /** What the agents' manifests bind to it (`files`, `process`, `computerUse`, `screen`, …). */
52
+ capabilities: z.array(z.string()).default([]),
53
+ /** Agent participants whose sessions use it. */
54
+ agentParticipantIds: z.array(z.string()).default([]),
55
+ /** A screen preview can be requested now (running, and a provider that may serve one). */
56
+ previewAvailable: z.boolean().default(false),
57
+ /** A live or saved workspace can be read without waking the sandbox. */
58
+ filesAvailable: z.boolean().optional(),
59
+ /** Authorized editor access through the provider, while this sandbox runs. */
60
+ canEdit: z.boolean().optional(),
61
+ canControlScreen: z.boolean().optional(),
62
+ /** The viewer may wake it (`POST …/wake`): conversation owners and admins. */
63
+ canWake: z.boolean().default(false),
64
+ updatedAt: nullableString()
65
+ });
66
+ const conversationSandboxListSchema = z.object({
67
+ sandboxes: z.array(conversationSandboxSchema).default([])
68
+ });
69
+ const sandboxDirEntrySchema = z.object({
70
+ name: z.string(),
71
+ path: z.string(),
72
+ kind: tolerantStringEnum(SandboxEntryKind),
73
+ size: nullableNumber()
74
+ });
75
+ const fileSnapshotSchema = z.object({ id: z.string(), capturedAt: z.string() }).nullable().optional();
76
+ const sandboxDirectorySchema = z.object({
77
+ snapshot: fileSnapshotSchema,
78
+ bindingId: z.string(),
79
+ path: z.string(),
80
+ /** The workspace root every path is confined to. */
81
+ root: z.string(),
82
+ entries: z.array(sandboxDirEntrySchema).default([]),
83
+ /** More entries exist than were returned. */
84
+ truncated: z.boolean().default(false)
85
+ });
86
+ const sandboxPathSchema = z.object({
87
+ snapshot: fileSnapshotSchema,
88
+ bindingId: z.string(),
89
+ root: z.string(),
90
+ path: z.string(),
91
+ exists: z.boolean(),
92
+ kind: tolerantStringEnum(SandboxEntryKind).nullable(),
93
+ size: nullableNumber(),
94
+ modifiedAt: nullableString()
95
+ });
96
+ const sandboxSearchSchema = sandboxDirectorySchema.extend({ query: z.string() });
97
+ const sandboxSearchQuerySchema = z.strictObject({
98
+ path: z.string().max(4096).optional(),
99
+ query: z.string().trim().min(2).max(256),
100
+ limit: z.coerce.number().int().positive().max(200).optional()
101
+ });
102
+ const sandboxFileSchema = z.object({
103
+ snapshot: fileSnapshotSchema,
104
+ bindingId: z.string(),
105
+ path: z.string(),
106
+ size: nullableNumber(),
107
+ offset: z.number().default(0),
108
+ /** Bytes returned. */
109
+ length: z.number().default(0),
110
+ /** Bytes remain after this range. */
111
+ truncated: z.boolean().default(false),
112
+ encoding: tolerantStringEnum(SandboxFileEncoding),
113
+ content: z.string().default(""),
114
+ modifiedAt: nullableString()
115
+ });
116
+ const sandboxPreviewSchema = tolerantTaggedUnion(
117
+ [
118
+ z.object({
119
+ kind: z.literal("url" /* Url */),
120
+ /** A view-only remote-screen URL; `token` authorizes it when not embedded. */
121
+ url: z.string(),
122
+ token: nullableString(),
123
+ expiresAt: nullableString()
124
+ }),
125
+ z.object({
126
+ kind: z.literal("image" /* Image */),
127
+ contentType: z.string(),
128
+ dataBase64: z.string(),
129
+ expiresAt: nullableString()
130
+ })
131
+ ],
132
+ z.object({ kind: z.string() }).transform((preview) => ({ kind: WireFallback.Unrecognized, rawKind: preview.kind }))
133
+ );
134
+ const SANDBOX_FILE_MAX_LENGTH = 1024 * 1024;
135
+ const sandboxFilesQuerySchema = z.strictObject({
136
+ snapshotId: z.string().min(1).max(512).optional(),
137
+ path: z.string().max(4096).optional()
138
+ });
139
+ const sandboxFileQuerySchema = z.strictObject({
140
+ snapshotId: z.string().min(1).max(512).optional(),
141
+ path: z.string().min(1).max(4096),
142
+ offset: z.coerce.number().int().nonnegative().optional(),
143
+ length: z.coerce.number().int().positive().max(SANDBOX_FILE_MAX_LENGTH).optional()
144
+ });
145
+ const sandboxFileContentQuerySchema = z.strictObject({
146
+ snapshotId: z.string().min(1).max(512).optional(),
147
+ path: z.string().min(1).max(4096),
148
+ download: z.stringbool({ truthy: ["true"], falsy: ["false"] }).optional()
149
+ });
150
+ const sandboxEditorSessionSchema = z.object({
151
+ id: z.string(),
152
+ authorizationId: z.string(),
153
+ workingDirectory: z.string(),
154
+ url: z.string(),
155
+ expiresAt: z.string(),
156
+ authentication: z.object({ url: z.string(), fields: z.record(z.string(), z.string()) })
157
+ });
158
+ const sandboxEditorAuthorizationSchema = z.strictObject({
159
+ authorizationId: z.string().min(1).max(256)
160
+ });
161
+ const sandboxPreviewOptionsSchema = z.object({ viewOnly: z.boolean().default(true) });
162
+ export {
163
+ ConversationSandboxKind,
164
+ ConversationSandboxStatus,
165
+ SANDBOX_FILE_MAX_LENGTH,
166
+ SandboxAccessLevel,
167
+ SandboxEntryKind,
168
+ SandboxFileEncoding,
169
+ SandboxPreviewKind,
170
+ conversationSandboxListSchema,
171
+ conversationSandboxSchema,
172
+ sandboxDirEntrySchema,
173
+ sandboxDirectorySchema,
174
+ sandboxEditorAuthorizationSchema,
175
+ sandboxEditorSessionSchema,
176
+ sandboxFileContentQuerySchema,
177
+ sandboxFileQuerySchema,
178
+ sandboxFileSchema,
179
+ sandboxFilesQuerySchema,
180
+ sandboxPathSchema,
181
+ sandboxPreviewOptionsSchema,
182
+ sandboxPreviewSchema,
183
+ sandboxSearchQuerySchema,
184
+ sandboxSearchSchema
185
+ };
186
+ //# sourceMappingURL=sandboxes.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/agent-platform/sandboxes.ts"],
4
+ "sourcesContent": ["import * as z from 'zod';\n\nimport { tolerantStringEnum, tolerantTaggedUnion, WireFallback } from \"../tolerance.mjs\";\n\nimport { nullableNumber, nullableString } from \"./common.mjs\";\n\n// A conversation's sandboxes (the computer tile): `/api/v1/conversations/:id/sandboxes`.\n// Read-only for members; nothing here starts a parked sandbox except `wake`.\n\nexport enum ConversationSandboxKind {\n Computer = 'computer',\n Device = 'device',\n Other = 'other',\n}\n\nexport enum ConversationSandboxStatus {\n Pending = 'pending',\n Starting = 'starting',\n Running = 'running',\n Parked = 'parked',\n Ended = 'ended',\n Failed = 'failed',\n}\n\nexport enum SandboxAccessLevel {\n Read = 'read',\n // Runs processes without writing files.\n Execute = 'execute',\n Write = 'write',\n}\n\nexport enum SandboxEntryKind {\n File = 'file',\n Directory = 'directory',\n Symlink = 'symlink',\n Other = 'other',\n}\n\nexport enum SandboxFileEncoding {\n Utf8 = 'utf8',\n Base64 = 'base64',\n}\n\nexport enum SandboxPreviewKind {\n Image = 'image',\n Url = 'url',\n}\n\nexport const conversationSandboxSchema = z.object({\n bindingId: z.string(),\n /** The manifest's target name (`computer`). */\n target: z.string(),\n /** Provider reference text (`package:@finalai/final-agent-provider/sandboxes/computer`). */\n provider: z.string(),\n kind: tolerantStringEnum(ConversationSandboxKind),\n status: tolerantStringEnum(ConversationSandboxStatus),\n access: tolerantStringEnum(SandboxAccessLevel),\n /** What the agents' manifests bind to it (`files`, `process`, `computerUse`, `screen`, \u2026). */\n capabilities: z.array(z.string()).default([]),\n /** Agent participants whose sessions use it. */\n agentParticipantIds: z.array(z.string()).default([]),\n /** A screen preview can be requested now (running, and a provider that may serve one). */\n previewAvailable: z.boolean().default(false),\n /** A live or saved workspace can be read without waking the sandbox. */\n filesAvailable: z.boolean().optional(),\n /** Authorized editor access through the provider, while this sandbox runs. */\n canEdit: z.boolean().optional(),\n canControlScreen: z.boolean().optional(),\n /** The viewer may wake it (`POST \u2026/wake`): conversation owners and admins. */\n canWake: z.boolean().default(false),\n updatedAt: nullableString(),\n});\n\nexport type ConversationSandboxIface = z.infer<typeof conversationSandboxSchema>;\n\nexport const conversationSandboxListSchema = z.object({\n sandboxes: z.array(conversationSandboxSchema).default([]),\n});\n\nexport const sandboxDirEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n kind: tolerantStringEnum(SandboxEntryKind),\n size: nullableNumber(),\n});\n\nexport type SandboxDirEntryIface = z.infer<typeof sandboxDirEntrySchema>;\n\nconst fileSnapshotSchema = z\n .object({ id: z.string(), capturedAt: z.string() })\n .nullable()\n .optional();\n\n/** `GET \u2026/sandboxes/:bindingId/files?path=`: one directory, directories first. */\nexport const sandboxDirectorySchema = z.object({\n snapshot: fileSnapshotSchema,\n bindingId: z.string(),\n path: z.string(),\n /** The workspace root every path is confined to. */\n root: z.string(),\n entries: z.array(sandboxDirEntrySchema).default([]),\n /** More entries exist than were returned. */\n truncated: z.boolean().default(false),\n});\n\nexport type SandboxDirectoryIface = z.infer<typeof sandboxDirectorySchema>;\n\nexport const sandboxPathSchema = z.object({\n snapshot: fileSnapshotSchema,\n bindingId: z.string(),\n root: z.string(),\n path: z.string(),\n exists: z.boolean(),\n kind: tolerantStringEnum(SandboxEntryKind).nullable(),\n size: nullableNumber(),\n modifiedAt: nullableString(),\n});\n\nexport type SandboxPathIface = z.infer<typeof sandboxPathSchema>;\n\nexport const sandboxSearchSchema = sandboxDirectorySchema.extend({ query: z.string() });\n\nexport type SandboxSearchIface = z.infer<typeof sandboxSearchSchema>;\n\nexport const sandboxSearchQuerySchema = z.strictObject({\n path: z.string().max(4096).optional(),\n query: z.string().trim().min(2).max(256),\n limit: z.coerce.number().int().positive().max(200).optional(),\n});\n\n/** `GET \u2026/sandboxes/:bindingId/file?path=&offset=&length=`: one byte range of a file. */\nexport const sandboxFileSchema = z.object({\n snapshot: fileSnapshotSchema,\n bindingId: z.string(),\n path: z.string(),\n size: nullableNumber(),\n offset: z.number().default(0),\n /** Bytes returned. */\n length: z.number().default(0),\n /** Bytes remain after this range. */\n truncated: z.boolean().default(false),\n encoding: tolerantStringEnum(SandboxFileEncoding),\n content: z.string().default(''),\n modifiedAt: nullableString(),\n});\n\nexport type SandboxFileIface = z.infer<typeof sandboxFileSchema>;\n\n/** `GET \u2026/sandboxes/:bindingId/preview`: a short-lived look at the screen. */\nexport const sandboxPreviewSchema = tolerantTaggedUnion(\n [\n z.object({\n kind: z.literal(SandboxPreviewKind.Url),\n /** A view-only remote-screen URL; `token` authorizes it when not embedded. */\n url: z.string(),\n token: nullableString(),\n expiresAt: nullableString(),\n }),\n z.object({\n kind: z.literal(SandboxPreviewKind.Image),\n contentType: z.string(),\n dataBase64: z.string(),\n expiresAt: nullableString(),\n }),\n ],\n z\n .object({ kind: z.string() })\n .transform((preview) => ({ kind: WireFallback.Unrecognized, rawKind: preview.kind })),\n);\n\nexport type SandboxPreviewType = z.infer<typeof sandboxPreviewSchema>;\n\n// Client-to-server requests.\n\nexport const SANDBOX_FILE_MAX_LENGTH = 1024 * 1024;\n\nexport const sandboxFilesQuerySchema = z.strictObject({\n snapshotId: z.string().min(1).max(512).optional(),\n path: z.string().max(4096).optional(),\n});\n\nexport const sandboxFileQuerySchema = z.strictObject({\n snapshotId: z.string().min(1).max(512).optional(),\n path: z.string().min(1).max(4096),\n offset: z.coerce.number().int().nonnegative().optional(),\n length: z.coerce.number().int().positive().max(SANDBOX_FILE_MAX_LENGTH).optional(),\n});\n\n/** Raw file bytes, with optional HTTP Range; never starts a sleeping sandbox. */\nexport const sandboxFileContentQuerySchema = z.strictObject({\n snapshotId: z.string().min(1).max(512).optional(),\n path: z.string().min(1).max(4096),\n download: z.stringbool({ truthy: ['true'], falsy: ['false'] }).optional(),\n});\n\nexport const sandboxEditorSessionSchema = z.object({\n id: z.string(),\n authorizationId: z.string(),\n workingDirectory: z.string(),\n url: z.string(),\n expiresAt: z.string(),\n authentication: z.object({ url: z.string(), fields: z.record(z.string(), z.string()) }),\n});\n\nexport type SandboxEditorSessionIface = z.infer<typeof sandboxEditorSessionSchema>;\n\nexport const sandboxEditorAuthorizationSchema = z.strictObject({\n authorizationId: z.string().min(1).max(256),\n});\n\nexport const sandboxPreviewOptionsSchema = z.object({ viewOnly: z.boolean().default(true) });\n"],
5
+ "mappings": "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",
6
+ "names": ["ConversationSandboxKind", "ConversationSandboxStatus", "SandboxAccessLevel", "SandboxEntryKind", "SandboxFileEncoding", "SandboxPreviewKind"]
7
+ }