openpond-sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +127 -0
  3. package/dist/index.js +2635 -0
  4. package/dist/index.js.map +7 -0
  5. package/dist/types/packages/cloud/src/api/core.d.ts +23 -0
  6. package/dist/types/packages/cloud/src/api/core.d.ts.map +1 -0
  7. package/dist/types/packages/cloud/src/api/vercel-protection.d.ts +2 -0
  8. package/dist/types/packages/cloud/src/api/vercel-protection.d.ts.map +1 -0
  9. package/dist/types/packages/cloud/src/hosted-chat.d.ts +163 -0
  10. package/dist/types/packages/cloud/src/hosted-chat.d.ts.map +1 -0
  11. package/dist/types/packages/cloud/src/sandbox/async-request-options.d.ts +3 -0
  12. package/dist/types/packages/cloud/src/sandbox/async-request-options.d.ts.map +1 -0
  13. package/dist/types/packages/cloud/src/sandbox/client-handles.d.ts +101 -0
  14. package/dist/types/packages/cloud/src/sandbox/client-handles.d.ts.map +1 -0
  15. package/dist/types/packages/cloud/src/sandbox/client.d.ts +327 -0
  16. package/dist/types/packages/cloud/src/sandbox/client.d.ts.map +1 -0
  17. package/dist/types/packages/cloud/src/sandbox/runtime-handle.d.ts +37 -0
  18. package/dist/types/packages/cloud/src/sandbox/runtime-handle.d.ts.map +1 -0
  19. package/dist/types/packages/cloud/src/sandbox/sandbox-instance-client.d.ts +73 -0
  20. package/dist/types/packages/cloud/src/sandbox/sandbox-instance-client.d.ts.map +1 -0
  21. package/dist/types/packages/cloud/src/sandbox/smoke.d.ts +4 -0
  22. package/dist/types/packages/cloud/src/sandbox/smoke.d.ts.map +1 -0
  23. package/dist/types/packages/cloud/src/sandbox/stream.d.ts +8 -0
  24. package/dist/types/packages/cloud/src/sandbox/stream.d.ts.map +1 -0
  25. package/dist/types/packages/cloud/src/sandbox/types/billing.d.ts +177 -0
  26. package/dist/types/packages/cloud/src/sandbox/types/billing.d.ts.map +1 -0
  27. package/dist/types/packages/cloud/src/sandbox/types/client.d.ts +104 -0
  28. package/dist/types/packages/cloud/src/sandbox/types/client.d.ts.map +1 -0
  29. package/dist/types/packages/cloud/src/sandbox/types/core.d.ts +141 -0
  30. package/dist/types/packages/cloud/src/sandbox/types/core.d.ts.map +1 -0
  31. package/dist/types/packages/cloud/src/sandbox/types/index.d.ts +15 -0
  32. package/dist/types/packages/cloud/src/sandbox/types/index.d.ts.map +1 -0
  33. package/dist/types/packages/cloud/src/sandbox/types/io.d.ts +241 -0
  34. package/dist/types/packages/cloud/src/sandbox/types/io.d.ts.map +1 -0
  35. package/dist/types/packages/cloud/src/sandbox/types/microsoft-teams-bot.d.ts +52 -0
  36. package/dist/types/packages/cloud/src/sandbox/types/microsoft-teams-bot.d.ts.map +1 -0
  37. package/dist/types/packages/cloud/src/sandbox/types/org-project-agent.d.ts +524 -0
  38. package/dist/types/packages/cloud/src/sandbox/types/org-project-agent.d.ts.map +1 -0
  39. package/dist/types/packages/cloud/src/sandbox/types/record.d.ts +54 -0
  40. package/dist/types/packages/cloud/src/sandbox/types/record.d.ts.map +1 -0
  41. package/dist/types/packages/cloud/src/sandbox/types/responses.d.ts +296 -0
  42. package/dist/types/packages/cloud/src/sandbox/types/responses.d.ts.map +1 -0
  43. package/dist/types/packages/cloud/src/sandbox/types/runtime-environments.d.ts +3 -0
  44. package/dist/types/packages/cloud/src/sandbox/types/runtime-environments.d.ts.map +1 -0
  45. package/dist/types/packages/cloud/src/sandbox/types/runtime-profiles.d.ts +16 -0
  46. package/dist/types/packages/cloud/src/sandbox/types/runtime-profiles.d.ts.map +1 -0
  47. package/dist/types/packages/cloud/src/sandbox/types/runtime.d.ts +153 -0
  48. package/dist/types/packages/cloud/src/sandbox/types/runtime.d.ts.map +1 -0
  49. package/dist/types/packages/cloud/src/sandbox/types/schedules.d.ts +142 -0
  50. package/dist/types/packages/cloud/src/sandbox/types/schedules.d.ts.map +1 -0
  51. package/dist/types/packages/cloud/src/sandbox/types/snapshots.d.ts +206 -0
  52. package/dist/types/packages/cloud/src/sandbox/types/snapshots.d.ts.map +1 -0
  53. package/dist/types/packages/cloud/src/sandbox/types/workflow-modes.d.ts +2 -0
  54. package/dist/types/packages/cloud/src/sandbox/types/workflow-modes.d.ts.map +1 -0
  55. package/dist/types/packages/cloud/src/sandbox/types/workload-sources.d.ts +21 -0
  56. package/dist/types/packages/cloud/src/sandbox/types/workload-sources.d.ts.map +1 -0
  57. package/dist/types/packages/cloud/src/sandbox/url.d.ts +3 -0
  58. package/dist/types/packages/cloud/src/sandbox/url.d.ts.map +1 -0
  59. package/dist/types/packages/cloud/src/urls.d.ts +5 -0
  60. package/dist/types/packages/cloud/src/urls.d.ts.map +1 -0
  61. package/dist/types/packages/sdk/src/index.d.ts +17 -0
  62. package/dist/types/packages/sdk/src/index.d.ts.map +1 -0
  63. package/dist/types/packages/sdk/src/types.d.ts +11 -0
  64. package/dist/types/packages/sdk/src/types.d.ts.map +1 -0
  65. package/dist/types/packages/sdk/src/work.d.ts +71 -0
  66. package/dist/types/packages/sdk/src/work.d.ts.map +1 -0
  67. package/package.json +50 -0
@@ -0,0 +1,206 @@
1
+ import type { SandboxCommand, SandboxState } from "./index.js";
2
+ export type SandboxSnapshotTemplateVisibility = "private" | "team";
3
+ export type SandboxSnapshotTemplateInput = {
4
+ name: string;
5
+ version: string;
6
+ description?: string;
7
+ tags?: string[];
8
+ visibility?: SandboxSnapshotTemplateVisibility;
9
+ useCase?: string;
10
+ };
11
+ export type SandboxSnapshotTemplate = {
12
+ name: string;
13
+ version: string;
14
+ description: string | null;
15
+ tags: string[];
16
+ visibility: SandboxSnapshotTemplateVisibility;
17
+ useCase: string | null;
18
+ };
19
+ export type SandboxSnapshotReplayRetentionClass = "ephemeral" | "cached" | "pinned";
20
+ export type SandboxSnapshotReplayState = "draft" | "validated" | "published";
21
+ export type SandboxSnapshotReplayManifest = {
22
+ state: SandboxSnapshotReplayState;
23
+ retention: {
24
+ class: SandboxSnapshotReplayRetentionClass;
25
+ ttlSeconds: number | null;
26
+ };
27
+ metadata?: Record<string, unknown>;
28
+ };
29
+ export type SandboxSnapshotValidationCommandResult = {
30
+ command: string;
31
+ cwd: string | null;
32
+ status: SandboxCommand["status"];
33
+ exitCode: number | null;
34
+ output: string;
35
+ startedAt: string;
36
+ completedAt: string | null;
37
+ };
38
+ export type SandboxSnapshotValidationProbeResult = {
39
+ name: string | null;
40
+ port: number;
41
+ path: string;
42
+ expectedStatus: number;
43
+ actualStatus: number | null;
44
+ ok: boolean;
45
+ error: string | null;
46
+ startedAt: string;
47
+ completedAt: string | null;
48
+ };
49
+ export type SandboxSnapshotValidationResult = {
50
+ id: string;
51
+ status: "passed" | "failed";
52
+ sourceSandboxId: string;
53
+ validationSandboxId: string | null;
54
+ snapshotId: string;
55
+ commands: SandboxSnapshotValidationCommandResult[];
56
+ probes: SandboxSnapshotValidationProbeResult[];
57
+ cleanup: {
58
+ action: "stop" | "delete" | "archive";
59
+ status: "succeeded" | "failed" | "skipped";
60
+ error: string | null;
61
+ };
62
+ error: string | null;
63
+ startedAt: string;
64
+ completedAt: string;
65
+ };
66
+ export type SandboxSnapshotValidateInput = {
67
+ cleanup?: "stop" | "delete" | "archive";
68
+ };
69
+ export type SandboxSnapshotTemplateUpdateInput = {
70
+ description?: string | null;
71
+ tags?: string[];
72
+ visibility?: SandboxSnapshotTemplateVisibility;
73
+ useCase?: string | null;
74
+ };
75
+ export type SandboxSnapshotRetentionUpdateInput = {
76
+ class?: SandboxSnapshotReplayRetentionClass;
77
+ ttlSeconds?: number | null;
78
+ };
79
+ export type SandboxSnapshotUpdateInput = {
80
+ template?: SandboxSnapshotTemplateUpdateInput;
81
+ retention?: SandboxSnapshotRetentionUpdateInput;
82
+ };
83
+ export type SandboxSnapshotInput = Record<string, unknown>;
84
+ export type SandboxSnapshot = {
85
+ id: string;
86
+ sandboxId: string;
87
+ name: string;
88
+ state: "ready";
89
+ sizeGb: number;
90
+ template?: SandboxSnapshotTemplate | null;
91
+ replay?: SandboxSnapshotReplayManifest | null;
92
+ metadata?: Record<string, unknown>;
93
+ createdAt: string;
94
+ };
95
+ export type SandboxSnapshotJob = {
96
+ id: string;
97
+ snapshotId: string;
98
+ name: string;
99
+ status: "queued" | "running" | "succeeded" | "failed";
100
+ error: string | null;
101
+ startedAt: string | null;
102
+ completedAt: string | null;
103
+ };
104
+ export type SandboxArchiveRef = {
105
+ id: string;
106
+ sandboxId: string;
107
+ snapshotId: string | null;
108
+ storage: "simulated" | "runner_local" | "s3";
109
+ createdAt: string;
110
+ restoredAt: string | null;
111
+ };
112
+ export type SandboxSnapshotCatalogEntry = {
113
+ id: string;
114
+ kind: "snapshot" | "archive";
115
+ sandboxId: string;
116
+ sandboxState: SandboxState;
117
+ sandboxRepo: string | null;
118
+ teamId: string;
119
+ projectId?: string | null;
120
+ agentId?: string | null;
121
+ name: string;
122
+ snapshot: SandboxSnapshot | null;
123
+ archive: SandboxArchiveRef | null;
124
+ sizeGb: number | null;
125
+ storage: SandboxArchiveRef["storage"] | "snapshot" | null;
126
+ storageCost?: {
127
+ sizeGb: number | null;
128
+ retentionClass: SandboxSnapshotReplayRetentionClass | null;
129
+ estimatedMonthlyUsd: string | null;
130
+ pricingSource: "configured" | "not_configured";
131
+ };
132
+ template: SandboxSnapshotTemplate | null;
133
+ replay?: SandboxSnapshotReplayManifest | null;
134
+ createdAt: string;
135
+ metadata?: Record<string, unknown>;
136
+ };
137
+ export type SandboxTemplateCatalogEntry = {
138
+ id: string;
139
+ snapshotId: string;
140
+ sandboxId: string;
141
+ sandboxState: SandboxState;
142
+ sandboxRepo: string | null;
143
+ teamId: string;
144
+ projectId: string | null;
145
+ agentId: string | null;
146
+ name: string;
147
+ version: string;
148
+ description: string | null;
149
+ tags: string[];
150
+ visibility: SandboxSnapshotTemplateVisibility;
151
+ useCase: string | null;
152
+ sizeGb: number | null;
153
+ source?: {
154
+ repo: string | null;
155
+ ref: string | null;
156
+ commitSha: string | null;
157
+ projectId: string | null;
158
+ agentId: string | null;
159
+ };
160
+ storageCost?: SandboxSnapshotCatalogEntry["storageCost"];
161
+ replay: SandboxSnapshotReplayManifest;
162
+ snapshot: SandboxSnapshot;
163
+ createdAt: string;
164
+ };
165
+ export type SandboxPublishedSnapshotCatalogEntry = SandboxTemplateCatalogEntry;
166
+ export type SandboxTemplateBuildStatus = "queued" | "running" | "succeeded" | "failed" | "cancelled";
167
+ export type SandboxTemplateBuildPublishStatus = "skipped" | "published" | "failed";
168
+ export type SandboxTemplateBuildCreateInput = {
169
+ teamId?: string;
170
+ sourceRepoUrl?: string;
171
+ sourceProjectId?: string;
172
+ branch?: string;
173
+ manifestPath?: string;
174
+ publish?: boolean;
175
+ };
176
+ export type SandboxTemplateBuildRecord = {
177
+ id: string;
178
+ teamId: string;
179
+ sourceProjectId: string | null;
180
+ sourceRepoUrl: string;
181
+ sourceOwner: string;
182
+ sourceRepo: string;
183
+ sourceBranch: string;
184
+ sourceCommitSha: string | null;
185
+ manifestPath: string;
186
+ manifestHash: string | null;
187
+ manifest: Record<string, unknown> | null;
188
+ status: SandboxTemplateBuildStatus;
189
+ buildSandboxId: string | null;
190
+ snapshotId: string | null;
191
+ validationSandboxId: string | null;
192
+ validation: Record<string, unknown> | null;
193
+ publishStatus: SandboxTemplateBuildPublishStatus | null;
194
+ logs: string[];
195
+ error: string | null;
196
+ requestedByUserId: string;
197
+ startedAt: string | null;
198
+ completedAt: string | null;
199
+ createdAt: string | null;
200
+ updatedAt: string | null;
201
+ };
202
+ export type SandboxPublishedSnapshotBuildStatus = SandboxTemplateBuildStatus;
203
+ export type SandboxPublishedSnapshotBuildPublishStatus = SandboxTemplateBuildPublishStatus;
204
+ export type SandboxPublishedSnapshotBuildCreateInput = SandboxTemplateBuildCreateInput;
205
+ export type SandboxPublishedSnapshotBuildRecord = SandboxTemplateBuildRecord;
206
+ //# sourceMappingURL=snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../../../../../../../cloud/src/sandbox/types/snapshots.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type SandboxWorkflowMode = "readonly" | "attempt" | "feature" | "rollout" | "replay" | "template_build" | "scheduled_run" | "patch_only" | "hotfix" | "multi_feature_batch";
2
+ //# sourceMappingURL=workflow-modes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-modes.d.ts","sourceRoot":"","sources":["../../../../../../../../cloud/src/sandbox/types/workflow-modes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,QAAQ,GACR,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type SandboxWorkloadImageSourceInput = {
2
+ ref: string;
3
+ digest?: string;
4
+ registrySecretRef?: string;
5
+ platform?: "linux/amd64";
6
+ workspaceRoot?: string;
7
+ };
8
+ export type SandboxWorkloadDockerfileSourceInput = {
9
+ context: string;
10
+ path: string;
11
+ target?: string;
12
+ buildArgs?: Record<string, string>;
13
+ registrySecretRefs?: string[];
14
+ platform?: "linux/amd64";
15
+ workspaceRoot?: string;
16
+ };
17
+ export type SandboxWorkloadSourceInput = {
18
+ image?: SandboxWorkloadImageSourceInput;
19
+ dockerfile?: SandboxWorkloadDockerfileSourceInput;
20
+ };
21
+ //# sourceMappingURL=workload-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workload-sources.d.ts","sourceRoot":"","sources":["../../../../../../../../cloud/src/sandbox/types/workload-sources.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,+BAA+B,GAAG;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,+BAA+B,CAAC;IACxC,UAAU,CAAC,EAAE,oCAAoC,CAAC;CACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function normalizeSandboxApiUrl(baseUrlOrApiUrl: string): string;
2
+ export declare function apiRootUrlFromSandboxApiUrl(sandboxApiUrl: string): string;
3
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../../../../../cloud/src/sandbox/url.ts"],"names":[],"mappings":"AAKA,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAuBtE;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAMzE"}
@@ -0,0 +1,5 @@
1
+ export declare const DEFAULT_OPENPOND_WEB_BASE_URL = "https://openpond.ai";
2
+ export declare const DEFAULT_OPENPOND_API_BASE_URL = "https://api.openpond.ai";
3
+ export declare const DEFAULT_OPENPOND_OPCHAT_API_BASE_URL = "https://api.openpond.ai/opchat/v1";
4
+ export declare const DEFAULT_OPENPOND_CHAT_API_BASE_URL = "https://api.openpond.ai/opchat/v1";
5
+ //# sourceMappingURL=urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../../../../../cloud/src/urls.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AACnE,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,oCAAoC,sCACZ,CAAC;AACtC,eAAO,MAAM,kCAAkC,sCACT,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type OpenPondSandboxClient } from "../../cloud/src/sandbox/client.js";
2
+ import { OpenPondWorkClient } from "./work.js";
3
+ import type { OpenPondClientOptions } from "./types.js";
4
+ export declare class OpenPondClient {
5
+ readonly sandboxes: OpenPondSandboxClient;
6
+ readonly work: OpenPondWorkClient;
7
+ constructor(options: OpenPondClientOptions);
8
+ }
9
+ export declare function createOpenPondClient(options: OpenPondClientOptions): OpenPondClient;
10
+ export type { OpenPondClientOptions } from "./types.js";
11
+ export { OpenPondNonExecutingSandboxError, OpenPondWorkClient } from "./work.js";
12
+ export type { OpenPondWorkEvent, OpenPondWorkHistoryMessage, OpenPondWorkRunInput, OpenPondWorkRunResult, } from "./work.js";
13
+ export * from "../../cloud/src/sandbox/client.js";
14
+ export * from "../../cloud/src/sandbox/types/index.js";
15
+ export { getOpChatModel, getOpChatProvider, listOpChatModels, listOpChatProviders, resolveOpChatApiBaseUrl, sendHostedChatTurn, streamHostedChatTurn, } from "../../cloud/src/hosted-chat.js";
16
+ export type { HostedChatCompletion, HostedChatMessage, HostedChatStreamDelta, HostedChatTool, HostedChatToolCall, HostedChatUsage, HostedModel, HostedModelsResponse, HostedProvider, HostedProvidersResponse, } from "../../cloud/src/hosted-chat.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,qBAAa,cAAc;IACzB,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;gBAEtB,OAAO,EAAE,qBAAqB;CAmB3C;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAEnF;AAED,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjF,YAAY,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAEnB,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,uBAAuB,GACxB,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type OpenPondClientOptions = {
2
+ /** OpenPond server API key. Keep this value on the server. */
3
+ apiKey: string;
4
+ /** API origin, such as https://api.openpond.ai or the staging API origin. */
5
+ baseUrl?: string;
6
+ /** Optional full sandbox API URL. Overrides the URL derived from baseUrl. */
7
+ sandboxApiUrl?: string;
8
+ /** Optional OpChat API base ending in /opchat/v1. */
9
+ chatApiUrl?: string;
10
+ };
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,71 @@
1
+ import type { OpenPondSandboxClient } from "../../cloud/src/sandbox/client.js";
2
+ import type { SandboxRecord } from "../../cloud/src/sandbox/types/index.js";
3
+ export declare class OpenPondNonExecutingSandboxError extends Error {
4
+ readonly sandboxId: string;
5
+ readonly code = "OPENPOND_NON_EXECUTING_SANDBOX";
6
+ constructor(sandboxId: string);
7
+ }
8
+ export type OpenPondWorkHistoryMessage = {
9
+ role: "user" | "assistant";
10
+ content: string;
11
+ };
12
+ export type OpenPondWorkEvent = {
13
+ type: "status";
14
+ message: string;
15
+ } | {
16
+ type: "sandbox";
17
+ sandboxId: string;
18
+ state: SandboxRecord["state"];
19
+ runtimeDriver: SandboxRecord["runtimeDriver"];
20
+ } | {
21
+ type: "assistant";
22
+ text: string;
23
+ } | {
24
+ type: "tool";
25
+ toolCallId: string;
26
+ command: string;
27
+ status: "started" | "succeeded" | "failed";
28
+ output?: string;
29
+ exitCode?: number | null;
30
+ } | {
31
+ type: "done";
32
+ sandboxId: string;
33
+ text: string;
34
+ steps: number;
35
+ };
36
+ export type OpenPondWorkRunInput = {
37
+ prompt: string;
38
+ /** Reuse this sandbox to continue work in an existing conversation. */
39
+ sandboxId?: string;
40
+ /** Repository cloned when a new sandbox is created. */
41
+ repo?: string;
42
+ history?: OpenPondWorkHistoryMessage[];
43
+ model?: string;
44
+ maxSteps?: number;
45
+ budgetUsd?: string;
46
+ /** Test-only escape hatch. Work rejects non-executing simulated sandboxes by default. */
47
+ allowSimulated?: boolean;
48
+ timeoutSeconds?: number;
49
+ signal?: AbortSignal;
50
+ metadata?: Record<string, unknown>;
51
+ onEvent?: (event: OpenPondWorkEvent) => void | Promise<void>;
52
+ };
53
+ export type OpenPondWorkRunResult = {
54
+ sandboxId: string;
55
+ text: string;
56
+ steps: number;
57
+ };
58
+ type WorkClientInput = {
59
+ apiKey: string;
60
+ apiBaseUrl: string;
61
+ chatApiBaseUrl: string;
62
+ sandboxes: OpenPondSandboxClient;
63
+ };
64
+ export declare class OpenPondWorkClient {
65
+ #private;
66
+ constructor(input: WorkClientInput);
67
+ run(input: OpenPondWorkRunInput): Promise<OpenPondWorkRunResult>;
68
+ deleteSandbox(sandboxId: string): Promise<void>;
69
+ }
70
+ export {};
71
+ //# sourceMappingURL=work.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../../../../src/work.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAM5E,qBAAa,gCAAiC,SAAQ,KAAK;IAG7C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAFtC,QAAQ,CAAC,IAAI,oCAAoC;gBAE5B,SAAS,EAAE,MAAM;CAMvC;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CAC/C,GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF,qBAAa,kBAAkB;;gBAMjB,KAAK,EAAE,eAAe;IAO5B,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkFhE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAsHtD"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "openpond-sdk",
3
+ "version": "0.0.1",
4
+ "description": "Server-side TypeScript SDK for OpenPond sandboxes and agentic work",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/types/packages/sdk/src/index.d.ts",
9
+ "files": [
10
+ "dist",
11
+ "README.md",
12
+ "LICENSE"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/types/packages/sdk/src/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ },
19
+ "./package.json": "./package.json"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "provenance": true
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/openpond/openpond.git",
28
+ "directory": "packages/sdk"
29
+ },
30
+ "homepage": "https://github.com/openpond/openpond/tree/master/packages/sdk#readme",
31
+ "bugs": {
32
+ "url": "https://github.com/openpond/openpond/issues"
33
+ },
34
+ "engines": {
35
+ "node": ">=22.14.0 <25"
36
+ },
37
+ "scripts": {
38
+ "build": "tsx scripts/build.ts",
39
+ "typecheck": "tsc --noEmit --project tsconfig.json",
40
+ "test": "vitest run --root ../.. --config vitest.config.ts --project sdk",
41
+ "check": "pnpm run typecheck && pnpm run test && pnpm run build && npm pack --dry-run"
42
+ },
43
+ "devDependencies": {
44
+ "@types/node": "24.13.3",
45
+ "esbuild": "0.28.1",
46
+ "tsx": "4.23.1",
47
+ "typescript": "^5.9.3",
48
+ "vitest": "4.1.10"
49
+ }
50
+ }