@letta-ai/letta-agent-sdk 0.7.6 → 0.7.8
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/client-entry.d.ts +1 -0
- package/dist/client-entry.d.ts.map +1 -1
- package/dist/client-entry.js +129 -23
- package/dist/client-entry.js.map +6 -5
- package/dist/cloud-session.d.ts +7 -0
- package/dist/cloud-session.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +129 -23
- package/dist/index.js.map +6 -5
- package/dist/sandbox-files.d.ts +28 -0
- package/dist/sandbox-files.d.ts.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client-entry.ts +1 -0
- package/src/cloud-session.ts +119 -25
- package/src/index.ts +1 -0
- package/src/sandbox-files.ts +97 -0
- package/src/types.ts +2 -2
package/dist/cloud-session.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type Letta from "@letta-ai/letta-client";
|
|
2
2
|
import { RemoteClientSessionCore, type RuntimeScope, type RuntimeSessionInit, type RuntimeSessionMode } from "./remote-client-session-core.js";
|
|
3
3
|
import type { CreateAgentOptions, LettaCodeClientSessionOptions, LettaCodeCloudClientOptions } from "./types.js";
|
|
4
|
+
import { type SandboxFilesClient } from "./sandbox-files.js";
|
|
4
5
|
/**
|
|
5
6
|
* The Cloud API reaped a conversation-scoped managed sandbox before the SDK
|
|
6
7
|
* could refresh it. The failed refresh happens before the next turn is sent,
|
|
@@ -22,6 +23,7 @@ export declare function assertCloudSessionOptionsSupported(action: string, optio
|
|
|
22
23
|
export declare class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
23
24
|
private readonly cloudOptions;
|
|
24
25
|
private readonly apiClient;
|
|
26
|
+
readonly sandbox: SandboxFilesClient | undefined;
|
|
25
27
|
private connectionId;
|
|
26
28
|
private removeExternalToolHandler;
|
|
27
29
|
private removeControlRequestHandler;
|
|
@@ -39,6 +41,8 @@ export declare class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
39
41
|
constructor(cloudOptions: LettaCodeCloudClientOptions, mode: CloudSessionMode, apiClient?: Letta);
|
|
40
42
|
protected initializeRuntimeController(): Promise<RuntimeSessionInit>;
|
|
41
43
|
private openCloudTransport;
|
|
44
|
+
private createCloudTransportClient;
|
|
45
|
+
private connectCloudTransport;
|
|
42
46
|
private installTransportHandlers;
|
|
43
47
|
private cleanupTransportHandlers;
|
|
44
48
|
protected recoverIdleTransport(runtime: RuntimeScope): Promise<RuntimeSessionInit>;
|
|
@@ -48,6 +52,9 @@ export declare class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
48
52
|
private startCloudRuntime;
|
|
49
53
|
protected afterRuntimeInitialized(): Promise<void>;
|
|
50
54
|
protected beforeTurn(): Promise<void>;
|
|
55
|
+
private uploadFilesToManagedSandbox;
|
|
56
|
+
private downloadFileFromManagedSandbox;
|
|
57
|
+
private requireManagedSandboxForFileTransfer;
|
|
51
58
|
protected onCoreClose(): void;
|
|
52
59
|
protected onCoreDisposed(): Promise<void>;
|
|
53
60
|
private closeMcpBridge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-session.d.ts","sourceRoot":"","sources":["../src/cloud-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAgChD,OAAO,EACL,uBAAuB,EAGvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAEV,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAI5B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-session.d.ts","sourceRoot":"","sources":["../src/cloud-session.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import type { CreateSessionOptions, CreateAgentOptions, LettaCodeSession, SDKResultMessage, SendMessage } from "./types.js";
|
|
29
29
|
export type { CreateSessionOptions, CreateAgentOptions, LettaCodePersonalityId, LettaCodeBackend, LettaCodeEnvironment, LettaCodeLocalClientOptions, LettaCodeLocalAppServerOptions, LettaCodeRemoteClientOptions, LettaCodeCloudClientOptions, LettaCodeCloudSandboxOptions, GitHubRepositoryRef, LettaCodeClientOptions, LettaCodeClientSessionOptions, LettaCodeSession, LettaCodeSocketLike, LettaCodeSocketConstructor, LettaCodeReactNativeSocketConstructor, SDKMessage, SDKInitMessage, SDKAssistantMessage, SDKToolCallMessage, SDKToolResultMessage, SDKReasoningMessage, SDKResultMessage, SDKErrorCode, SDKStreamEventMessage, SDKStreamEventPayload, SDKStreamEventDeltaPayload, SDKStreamEventMessagePayload, SDKUnknownStreamEventPayload, SDKErrorMessage, SDKRetryMessage, SDKQueueItem, SDKQueueUpdateMessage, SDKLoopStatusMessage, SDKProtocolMessage, SDKProtocolCommand, SendCommandOptions, RecoverPendingApprovalsOptions, RecoverPendingApprovalsResult, ChangeDeviceStateOptions, RemoveQueuedMessageResult, GetDeviceStatusOptions, SessionDeviceStatus, SessionPendingControlRequest, SessionReadyInfo, SessionPermissionSuggestion, SessionDiffHunkLine, SessionDiffHunk, SessionDiffPreview, SkillSource, DreamingOptions, SessionDreamingOptions, DreamingTrigger, DreamingBehavior, EffectiveDreamingSettings, PermissionMode, ReasoningEffort, CanUseToolCallback, CanUseToolContext, CanUseToolPermissionSuggestion, CanUseToolResponse, CanUseToolResponseAllow, CanUseToolResponseDeny, TextContent, ImageContent, MessageContentItem, SendMessage, SendOptions, ListMessagesOptions, ListMessagesResult, ListModelsResult, LettaCodeModelEntry, UpdateModelOptions, UpdateModelResult, Repository, CreateRepositoryParams, ListRepositoriesParams, ListRepositoriesResult, RepositoryResource, RepositoryFileEntry, ListRepositoryFilesParams, ListRepositoryFilesResult, CreateRepositoryFileParams, RepositoryFile, UpdateRepositoryFileParams, RepositoryFileMutationResult, DeleteRepositoryFileParams, DeleteRepositoryFileResult, RepositoryVersion, ListRepositoryVersionsParams, GetRepositoryVersionParams, BootstrapStateOptions, BootstrapStateResult, AgentTool, AgentToolResult, AgentToolResultContent, AgentToolUpdateCallback, AnyAgentTool, McpServerConfig, McpStdioServerConfig, McpHttpServerConfig, McpSseServerConfig, McpServers, } from "./types.js";
|
|
30
|
+
export type * from "./sandbox-files.js";
|
|
30
31
|
export type { AgentRepositoriesClient, AgentRepository, AgentRepositoryRecompileTarget, AttachAgentRepositoryOptions, AgentsClient, ConversationsClient, LettaAgent, LettaConversation, LettaConversationMessage, ModelsClient, ListAgentsOptions, UpdateAgentOptions, ListConversationsOptions, CreateConversationOptions, ForkConversationOptions, UpdateConversationOptions, ConversationMessagesOptions, ConversationMessagesResult, DetachAgentRepositoryOptions, AgentRepositoryPermissions, } from "./management-types.js";
|
|
31
32
|
export { RepositoriesClient } from "./repositories.js";
|
|
32
33
|
export { ConversationForkHydrationError } from "./management-errors.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAEhB,gBAAgB,EAChB,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,qCAAqC,EACrC,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EACf,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EAEtB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,EAEX,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EACjB,4BAA4B,EAC5B,0BAA0B,EAE1B,qBAAqB,EACrB,oBAAoB,EAEpB,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,mBAAmB,oBAAoB,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,8BAA8B,EAC9B,4BAA4B,EAC5B,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,gBAAgB,CAGlB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,oBAAyB,GACjC,gBAAgB,CAGlB;AAuBD,wBAAsB,MAAM,CAC1B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAMD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAOD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAa5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAe,GAC7D,YAAY,CAKd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAqBrE"}
|
package/dist/index.js
CHANGED
|
@@ -10984,6 +10984,51 @@ function validateCloudSandboxOptions(options, name) {
|
|
|
10984
10984
|
}
|
|
10985
10985
|
}
|
|
10986
10986
|
|
|
10987
|
+
// src/sandbox-files.ts
|
|
10988
|
+
function isUploadedFile(value) {
|
|
10989
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
10990
|
+
return false;
|
|
10991
|
+
const file = value;
|
|
10992
|
+
return typeof file.path === "string" && typeof file.name === "string" && typeof file.mimeType === "string" && typeof file.size === "number" && Number.isSafeInteger(file.size) && file.size >= 0;
|
|
10993
|
+
}
|
|
10994
|
+
function parseUploadResult(value) {
|
|
10995
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
10996
|
+
throw new Error("Cloud sandbox file upload returned an invalid response.");
|
|
10997
|
+
}
|
|
10998
|
+
const files = value.files;
|
|
10999
|
+
if (!Array.isArray(files) || !files.every(isUploadedFile)) {
|
|
11000
|
+
throw new Error("Cloud sandbox file upload returned invalid file metadata.");
|
|
11001
|
+
}
|
|
11002
|
+
return { files };
|
|
11003
|
+
}
|
|
11004
|
+
function uploadForm(files) {
|
|
11005
|
+
if (files.length === 0) {
|
|
11006
|
+
throw new Error("Cloud sandbox file upload requires at least one file.");
|
|
11007
|
+
}
|
|
11008
|
+
const form = new FormData;
|
|
11009
|
+
for (const [index, file] of files.entries()) {
|
|
11010
|
+
if (!file || typeof file.name !== "string" || file.name.trim() === "") {
|
|
11011
|
+
throw new Error(`Invalid Cloud sandbox upload file at index ${index}.`);
|
|
11012
|
+
}
|
|
11013
|
+
form.append("file", file.data, file.name);
|
|
11014
|
+
}
|
|
11015
|
+
return form;
|
|
11016
|
+
}
|
|
11017
|
+
async function uploadSandboxFiles(apiClient, sandboxId, files) {
|
|
11018
|
+
const response = await apiClient.post(`/v1/sandboxes/${encodeURIComponent(sandboxId)}/files`, { body: uploadForm(files) });
|
|
11019
|
+
return parseUploadResult(response);
|
|
11020
|
+
}
|
|
11021
|
+
async function downloadSandboxFile(apiClient, sandboxId, path2) {
|
|
11022
|
+
if (typeof path2 !== "string" || path2.trim() === "") {
|
|
11023
|
+
throw new Error("Cloud sandbox file download requires a non-empty path.");
|
|
11024
|
+
}
|
|
11025
|
+
const response = await apiClient.get(`/v1/sandboxes/${encodeURIComponent(sandboxId)}/files`, {
|
|
11026
|
+
query: { path: path2 },
|
|
11027
|
+
__binaryResponse: true
|
|
11028
|
+
});
|
|
11029
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
11030
|
+
}
|
|
11031
|
+
|
|
10987
11032
|
// src/cloud-session.ts
|
|
10988
11033
|
var DEFAULT_TURN_TIMEOUT_MS = 120000;
|
|
10989
11034
|
var DEFAULT_PING_INTERVAL_MS = 30000;
|
|
@@ -10992,6 +11037,7 @@ var DEFAULT_SANDBOX_READY_TIMEOUT_MS = 120000;
|
|
|
10992
11037
|
var DEFAULT_SANDBOX_READY_POLL_INTERVAL_MS = 1000;
|
|
10993
11038
|
var DEFAULT_REPOSITORY_ATTACH_TIMEOUT_MS = 1e4;
|
|
10994
11039
|
var DEFAULT_REPOSITORY_ATTACH_POLL_INTERVAL_MS = 250;
|
|
11040
|
+
var INITIAL_CLOUD_TRANSPORT_ATTEMPTS = 2;
|
|
10995
11041
|
var SDK_AGENT_ORIGIN = "@letta-ai/letta-agent-sdk";
|
|
10996
11042
|
|
|
10997
11043
|
class CloudManagedSandboxOwnershipError extends Error {
|
|
@@ -11123,6 +11169,7 @@ function assertCloudSessionOptionsSupported(action, options) {
|
|
|
11123
11169
|
class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
11124
11170
|
cloudOptions;
|
|
11125
11171
|
apiClient;
|
|
11172
|
+
sandbox;
|
|
11126
11173
|
connectionId = null;
|
|
11127
11174
|
removeExternalToolHandler = null;
|
|
11128
11175
|
removeControlRequestHandler = null;
|
|
@@ -11146,6 +11193,10 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11146
11193
|
this.apiClient = apiClient;
|
|
11147
11194
|
this.cloudMode = mode;
|
|
11148
11195
|
this.repositoryManagement = new CloudManagementTransport(apiClient);
|
|
11196
|
+
this.sandbox = this.effectiveEnvironment() === undefined ? {
|
|
11197
|
+
uploadFiles: (files) => this.uploadFilesToManagedSandbox(files),
|
|
11198
|
+
downloadFile: (path2) => this.downloadFileFromManagedSandbox(path2)
|
|
11199
|
+
} : undefined;
|
|
11149
11200
|
const tools = mode.options.tools;
|
|
11150
11201
|
this.externalTools = externalToolsByName(tools);
|
|
11151
11202
|
}
|
|
@@ -11177,30 +11228,9 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11177
11228
|
}
|
|
11178
11229
|
}
|
|
11179
11230
|
async openCloudTransport(runtime, connectionId) {
|
|
11180
|
-
const
|
|
11181
|
-
const url = buildCloudStatusWebSocketUrl({
|
|
11182
|
-
apiBaseUrl: this.cloudOptions.apiBaseUrl,
|
|
11183
|
-
connectionId,
|
|
11184
|
-
agentId: runtime.agent_id,
|
|
11185
|
-
conversationId: runtime.conversation_id,
|
|
11186
|
-
apiKey,
|
|
11187
|
-
authMode: this.cloudOptions.webSocketAuth ?? "header"
|
|
11188
|
-
});
|
|
11189
|
-
const client = applyUniqueRequestIds(createAppServerClient({
|
|
11190
|
-
url,
|
|
11191
|
-
WebSocket: createCloudStatusTransportConstructor({
|
|
11192
|
-
url,
|
|
11193
|
-
WebSocket: getWebSocketConstructor(this.cloudOptions.WebSocket),
|
|
11194
|
-
...(this.cloudOptions.webSocketAuth ?? "header") === "header" ? { headers: cloudWebSocketHeaders(this.cloudOptions) } : {},
|
|
11195
|
-
pingIntervalMs: this.cloudOptions.pingIntervalMs ?? DEFAULT_PING_INTERVAL_MS,
|
|
11196
|
-
runtime
|
|
11197
|
-
}),
|
|
11198
|
-
requestTimeoutMs: this.cloudOptions.requestTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS
|
|
11199
|
-
}));
|
|
11231
|
+
const client = await this.connectCloudTransport(runtime, connectionId);
|
|
11200
11232
|
const options = this.currentOptions();
|
|
11201
|
-
this.installTransportHandlers(client);
|
|
11202
11233
|
try {
|
|
11203
|
-
await client.connect();
|
|
11204
11234
|
const response = await this.startCloudRuntime(client, runtime);
|
|
11205
11235
|
if (!response.success || !response.runtime) {
|
|
11206
11236
|
throw new Error(response.error ?? "Failed to start Cloud status runtime");
|
|
@@ -11228,6 +11258,62 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11228
11258
|
throw error;
|
|
11229
11259
|
}
|
|
11230
11260
|
}
|
|
11261
|
+
createCloudTransportClient(runtime, connectionId) {
|
|
11262
|
+
const apiKey = getCloudApiKey(this.cloudOptions);
|
|
11263
|
+
const url = buildCloudStatusWebSocketUrl({
|
|
11264
|
+
apiBaseUrl: this.cloudOptions.apiBaseUrl,
|
|
11265
|
+
connectionId,
|
|
11266
|
+
agentId: runtime.agent_id,
|
|
11267
|
+
conversationId: runtime.conversation_id,
|
|
11268
|
+
apiKey,
|
|
11269
|
+
authMode: this.cloudOptions.webSocketAuth ?? "header"
|
|
11270
|
+
});
|
|
11271
|
+
return applyUniqueRequestIds(createAppServerClient({
|
|
11272
|
+
url,
|
|
11273
|
+
WebSocket: createCloudStatusTransportConstructor({
|
|
11274
|
+
url,
|
|
11275
|
+
WebSocket: getWebSocketConstructor(this.cloudOptions.WebSocket),
|
|
11276
|
+
...(this.cloudOptions.webSocketAuth ?? "header") === "header" ? { headers: cloudWebSocketHeaders(this.cloudOptions) } : {},
|
|
11277
|
+
pingIntervalMs: this.cloudOptions.pingIntervalMs ?? DEFAULT_PING_INTERVAL_MS,
|
|
11278
|
+
runtime
|
|
11279
|
+
}),
|
|
11280
|
+
requestTimeoutMs: this.cloudOptions.requestTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS
|
|
11281
|
+
}));
|
|
11282
|
+
}
|
|
11283
|
+
async connectCloudTransport(runtime, initialConnectionId) {
|
|
11284
|
+
let connectionId = initialConnectionId;
|
|
11285
|
+
let lastError;
|
|
11286
|
+
for (let attempt = 0;attempt < INITIAL_CLOUD_TRANSPORT_ATTEMPTS; attempt++) {
|
|
11287
|
+
const client = this.createCloudTransportClient(runtime, connectionId);
|
|
11288
|
+
this.installTransportHandlers(client);
|
|
11289
|
+
try {
|
|
11290
|
+
await client.connect();
|
|
11291
|
+
this.connectionId = connectionId;
|
|
11292
|
+
return client;
|
|
11293
|
+
} catch (error) {
|
|
11294
|
+
lastError = error;
|
|
11295
|
+
console.warn(JSON.stringify({
|
|
11296
|
+
event: "cloud_status_transport_connection_failed",
|
|
11297
|
+
attempt: attempt + 1,
|
|
11298
|
+
max_attempts: INITIAL_CLOUD_TRANSPORT_ATTEMPTS,
|
|
11299
|
+
will_retry: attempt + 1 < INITIAL_CLOUD_TRANSPORT_ATTEMPTS,
|
|
11300
|
+
connection_id: connectionId,
|
|
11301
|
+
agent_id: runtime.agent_id,
|
|
11302
|
+
conversation_id: runtime.conversation_id,
|
|
11303
|
+
error_name: error instanceof Error ? error.name : null,
|
|
11304
|
+
error_message: error instanceof Error ? error.message : String(error)
|
|
11305
|
+
}));
|
|
11306
|
+
this.cleanupTransportHandlers();
|
|
11307
|
+
client.close();
|
|
11308
|
+
}
|
|
11309
|
+
if (attempt + 1 < INITIAL_CLOUD_TRANSPORT_ATTEMPTS) {
|
|
11310
|
+
const resolved = await this.resolveRecoveryConnection(runtime);
|
|
11311
|
+
connectionId = resolved.connectionId;
|
|
11312
|
+
}
|
|
11313
|
+
}
|
|
11314
|
+
const detail = lastError instanceof Error ? lastError.message : String(lastError);
|
|
11315
|
+
throw new Error(`Cloud status WebSocket failed to open for connection ${connectionId}: ${detail}`, { cause: lastError });
|
|
11316
|
+
}
|
|
11231
11317
|
installTransportHandlers(client) {
|
|
11232
11318
|
this.cleanupTransportHandlers();
|
|
11233
11319
|
this.removeControlRequestHandler = registerAppServerControlRequestHandler({
|
|
@@ -11311,6 +11397,26 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11311
11397
|
return;
|
|
11312
11398
|
await this.refreshManagedSandbox(sandbox);
|
|
11313
11399
|
}
|
|
11400
|
+
async uploadFilesToManagedSandbox(files) {
|
|
11401
|
+
const sandbox = await this.requireManagedSandboxForFileTransfer();
|
|
11402
|
+
return uploadSandboxFiles(this.apiClient, sandbox.sandboxId, files);
|
|
11403
|
+
}
|
|
11404
|
+
async downloadFileFromManagedSandbox(path2) {
|
|
11405
|
+
const sandbox = await this.requireManagedSandboxForFileTransfer();
|
|
11406
|
+
return downloadSandboxFile(this.apiClient, sandbox.sandboxId, path2);
|
|
11407
|
+
}
|
|
11408
|
+
async requireManagedSandboxForFileTransfer() {
|
|
11409
|
+
if (this.effectiveEnvironment() !== undefined) {
|
|
11410
|
+
throw new Error("Sandbox file transfer requires an SDK-managed Cloud sandbox.");
|
|
11411
|
+
}
|
|
11412
|
+
await this.ready();
|
|
11413
|
+
const sandbox = this.managedSandbox;
|
|
11414
|
+
if (!sandbox) {
|
|
11415
|
+
throw new Error("SDK-managed Cloud sandbox is unavailable.");
|
|
11416
|
+
}
|
|
11417
|
+
await this.refreshManagedSandbox(sandbox);
|
|
11418
|
+
return sandbox;
|
|
11419
|
+
}
|
|
11314
11420
|
onCoreClose() {
|
|
11315
11421
|
this.cleanupTransportHandlers();
|
|
11316
11422
|
this.mcpCleanup = this.closeMcpBridge();
|
|
@@ -30448,4 +30554,4 @@ export {
|
|
|
30448
30554
|
CloudManagedSandboxExpiredError
|
|
30449
30555
|
};
|
|
30450
30556
|
|
|
30451
|
-
//# debugId=
|
|
30557
|
+
//# debugId=1DB15671E78E416164756E2164756E21
|