@opengeni/sdk 0.48.0 → 0.57.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.
- package/README.md +147 -1
- package/dist/artifact-client.d.ts +20 -2
- package/dist/artifacts.d.ts +4 -0
- package/dist/artifacts.js +11 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/{chunk-V5F253OG.js → chunk-GU6JF75T.js} +6 -3
- package/dist/chunk-GU6JF75T.js.map +1 -0
- package/dist/chunk-HJ3HHUT5.js +222 -0
- package/dist/chunk-HJ3HHUT5.js.map +1 -0
- package/dist/{chunk-KIHGPM7H.js → chunk-JDLDDRNE.js} +20 -14
- package/dist/chunk-JDLDDRNE.js.map +1 -0
- package/dist/chunk-JRPFWI6T.js +128 -0
- package/dist/chunk-JRPFWI6T.js.map +1 -0
- package/dist/{chunk-MBGBLVUV.js → chunk-PKQ377ED.js} +1725 -555
- package/dist/chunk-PKQ377ED.js.map +1 -0
- package/dist/chunk-ST5DDKJP.js +987 -0
- package/dist/chunk-ST5DDKJP.js.map +1 -0
- package/dist/chunk-VWE2QIVO.js +1162 -0
- package/dist/chunk-VWE2QIVO.js.map +1 -0
- package/dist/chunk-VYCTL62C.js +230 -0
- package/dist/chunk-VYCTL62C.js.map +1 -0
- package/dist/{chunk-DXDL7EEW.js → chunk-YKZME56C.js} +197 -113
- package/dist/chunk-YKZME56C.js.map +1 -0
- package/dist/client.d.ts +240 -16
- package/dist/codex-realtime-controller.d.ts +9 -6
- package/dist/codex-realtime-controller.js +2 -2
- package/dist/codex-realtime-lifecycle.d.ts +1 -1
- package/dist/codex-realtime-v3.d.ts +3 -3
- package/dist/codex-realtime.d.ts +1 -1
- package/dist/company-profile.d.ts +100 -0
- package/dist/core.d.ts +5 -5
- package/dist/core.js +10 -5
- package/dist/desktop.d.ts +9 -1
- package/dist/editable-artifact-resources.d.ts +96 -0
- package/dist/editable-artifacts/browser-session.d.ts +35 -0
- package/dist/editable-artifacts/controller.d.ts +60 -0
- package/dist/editable-artifacts/errors.d.ts +23 -0
- package/dist/editable-artifacts/http-live-transport.d.ts +46 -0
- package/dist/editable-artifacts/index.d.ts +19 -0
- package/dist/editable-artifacts/pool.d.ts +15 -0
- package/dist/editable-artifacts/session.d.ts +96 -0
- package/dist/editable-artifacts/storage.d.ts +72 -0
- package/dist/editable-artifacts/types.d.ts +416 -0
- package/dist/editable-artifacts/worker/browser-client.d.ts +80 -0
- package/dist/editable-artifacts/worker/browser-entry.d.ts +6 -0
- package/dist/editable-artifacts/worker/kernel-adapter.d.ts +45 -0
- package/dist/editable-artifacts/worker/rpc-protocol.d.ts +92 -0
- package/dist/editable-artifacts/worker/runtime.d.ts +66 -0
- package/dist/editable-artifacts/worker/wire-codec.d.ts +52 -0
- package/dist/editable-artifacts-worker.d.ts +8 -0
- package/dist/editable-artifacts-worker.js +1708 -0
- package/dist/editable-artifacts-worker.js.map +1 -0
- package/dist/editable-artifacts.d.ts +6 -0
- package/dist/editable-artifacts.js +5954 -0
- package/dist/editable-artifacts.js.map +1 -0
- package/dist/gateway-realtime-transport.d.ts +2 -1
- package/dist/gateway-realtime-transport.js +5 -3
- package/dist/index.d.ts +45 -35
- package/dist/index.js +134 -64
- package/dist/index.js.map +1 -1
- package/dist/interaction-revision-stream.d.ts +11 -0
- package/dist/interaction.d.ts +1484 -0
- package/dist/interaction.js +81 -0
- package/dist/interaction.js.map +1 -0
- package/dist/memory-slack-client.d.ts +13 -0
- package/dist/memory-slack-delivery.d.ts +99 -0
- package/dist/memory-slack.d.ts +4 -0
- package/dist/memory-slack.js +44 -0
- package/dist/memory-slack.js.map +1 -0
- package/dist/proxy.d.ts +3 -3
- package/dist/realtime.d.ts +14 -14
- package/dist/realtime.js +11 -7
- package/dist/realtime.js.map +1 -1
- package/dist/retained-artifacts.d.ts +12 -0
- package/dist/stream.d.ts +1 -1
- package/dist/terminal.d.ts +1 -1
- package/dist/types.d.ts +1347 -34
- package/dist/workspace-control-stream.d.ts +2 -2
- package/dist/workspace-live-stream.d.ts +14 -0
- package/dist/workspace-state.d.ts +1 -1
- package/package.json +29 -3
- package/src/artifact-client.ts +129 -0
- package/src/artifacts.ts +17 -0
- package/src/client.ts +3022 -910
- package/src/codex-realtime-controller.ts +25 -7
- package/src/codex-realtime-lifecycle.ts +1 -0
- package/src/company-profile.ts +92 -0
- package/src/desktop.ts +11 -1
- package/src/editable-artifact-resources.ts +119 -0
- package/src/editable-artifacts/browser-session.ts +176 -0
- package/src/editable-artifacts/controller.ts +2632 -0
- package/src/editable-artifacts/errors.ts +52 -0
- package/src/editable-artifacts/http-live-transport.ts +1449 -0
- package/src/editable-artifacts/index.ts +175 -0
- package/src/editable-artifacts/pool.ts +81 -0
- package/src/editable-artifacts/session.ts +778 -0
- package/src/editable-artifacts/storage.ts +1718 -0
- package/src/editable-artifacts/types.ts +499 -0
- package/src/editable-artifacts/worker/browser-client.ts +1167 -0
- package/src/editable-artifacts/worker/browser-entry.ts +57 -0
- package/src/editable-artifacts/worker/kernel-adapter.ts +1039 -0
- package/src/editable-artifacts/worker/rpc-protocol.ts +622 -0
- package/src/editable-artifacts/worker/runtime.ts +1204 -0
- package/src/editable-artifacts/worker/wire-codec.ts +852 -0
- package/src/editable-artifacts-worker.ts +8 -0
- package/src/editable-artifacts.ts +6 -0
- package/src/errors.ts +16 -2
- package/src/gateway-realtime-transport.ts +252 -109
- package/src/index.ts +215 -1
- package/src/interaction-revision-stream.ts +117 -0
- package/src/interaction.ts +2874 -0
- package/src/memory-slack-client.ts +71 -0
- package/src/memory-slack-delivery.ts +128 -0
- package/src/memory-slack.ts +19 -0
- package/src/realtime.ts +14 -4
- package/src/retained-artifacts.ts +326 -0
- package/src/types.ts +1636 -52
- package/src/workspace-live-stream.ts +137 -0
- package/dist/chunk-DXDL7EEW.js.map +0 -1
- package/dist/chunk-KIHGPM7H.js.map +0 -1
- package/dist/chunk-MBGBLVUV.js.map +0 -1
- package/dist/chunk-V5F253OG.js.map +0 -1
package/README.md
CHANGED
|
@@ -87,6 +87,112 @@ through a tenant-scoped, same-origin proxy. The SDK does not move persistence,
|
|
|
87
87
|
prompt construction, context processing, delegation, or provider credentials
|
|
88
88
|
out of `apps/api`, `apps/worker`, or `packages/db`.
|
|
89
89
|
|
|
90
|
+
## Editable artifact sync (`@opengeni/sdk/editable-artifacts`)
|
|
91
|
+
|
|
92
|
+
Editable-artifact storage, sync, and Worker clients live behind an isolated
|
|
93
|
+
subpath; importing the ordinary SDK never loads them. Browser hosts should
|
|
94
|
+
bundle the dedicated module-Worker entry and pass its URL plus the exact,
|
|
95
|
+
version-matched kernel assets to the client:
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import { OpenGeniClient } from "@opengeni/sdk/artifacts";
|
|
99
|
+
import workerUrl from "@opengeni/sdk/editable-artifacts/worker?worker&url";
|
|
100
|
+
import {
|
|
101
|
+
createBrowserEditableArtifactSession,
|
|
102
|
+
} from "@opengeni/sdk/editable-artifacts";
|
|
103
|
+
|
|
104
|
+
const client = new OpenGeniClient({ baseUrl: "https://api.example.com" });
|
|
105
|
+
const artifact = await client.getEditableArtifact(workspaceId, artifactId, {
|
|
106
|
+
replicaId,
|
|
107
|
+
});
|
|
108
|
+
const kernels = {
|
|
109
|
+
spreadsheet: () => import("@opengeni/artifact-kernel-wasm-spreadsheet"),
|
|
110
|
+
document: () => import("@opengeni/artifact-kernel-wasm-document"),
|
|
111
|
+
presentation: () => import("@opengeni/artifact-kernel-wasm-presentation"),
|
|
112
|
+
} as const;
|
|
113
|
+
const { editableArtifactKernelRuntime } = await kernels[artifact.modality]();
|
|
114
|
+
const session = createBrowserEditableArtifactSession({
|
|
115
|
+
baseUrl: "https://api.example.com",
|
|
116
|
+
workspaceId,
|
|
117
|
+
artifact,
|
|
118
|
+
storageAuthority,
|
|
119
|
+
runtime: {
|
|
120
|
+
workerUrl,
|
|
121
|
+
...editableArtifactKernelRuntime,
|
|
122
|
+
applicationOrigin: window.location.origin,
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Each kernel package contains only one editor modality, carries a static typed
|
|
128
|
+
build/protocol/model/command identity, and is reproduced from smoke-tested Rust
|
|
129
|
+
outputs under separate raw and gzip budgets. The Worker verifies that identity
|
|
130
|
+
against executable WASM capabilities before accepting state. A self-hosted host
|
|
131
|
+
may instead serve the exact version-matched glue and WASM binary together.
|
|
132
|
+
Canonical OGASC commands, OGATX intents, OGACO commits, and OGAKQ/OGAKV
|
|
133
|
+
queries/projections pass directly through the kernel; there is no JavaScript
|
|
134
|
+
operation mapper.
|
|
135
|
+
|
|
136
|
+
The live transport mints a short-lived, one-use ticket over authenticated HTTP,
|
|
137
|
+
then sends that ticket inside the first binary OGALV WebSocket frame. API keys
|
|
138
|
+
and long-lived credentials are never placed in the WebSocket URL. Hosts may
|
|
139
|
+
inject both `fetch` and the WebSocket factory for authenticated proxies and
|
|
140
|
+
tests; negotiated frame and mutation limits are enforced before work is queued.
|
|
141
|
+
|
|
142
|
+
## Browser and computer interaction (`@opengeni/sdk/interaction`)
|
|
143
|
+
|
|
144
|
+
An interaction **resource** is a workspace-scoped, durable object with a stable
|
|
145
|
+
id and lifecycle, such as a `BrowserSession`, `ComputerSession`, browser
|
|
146
|
+
identity, network route, auth run, or pending human intervention. This use of
|
|
147
|
+
"resource" is unrelated to the file/repository `resources` attached to a chat
|
|
148
|
+
message. A **facade** is only the typed, resource-oriented SDK organization
|
|
149
|
+
shown below; it owns no state or authority of its own.
|
|
150
|
+
|
|
151
|
+
`OpenGeniClient.interaction` is the framework-free resource facade over the same
|
|
152
|
+
public BrowserSession, ComputerSession, identity, auth, network-route, and human
|
|
153
|
+
intervention APIs used by OpenGeni itself. It adds no second state or execution
|
|
154
|
+
path: facade methods call the ordinary typed transport, and every mutation still
|
|
155
|
+
uses the canonical generation fences, operation receipt, permission check, and
|
|
156
|
+
placement controller.
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
const browser = await client.interaction.browsers.currentOrOpen({
|
|
160
|
+
workspaceId,
|
|
161
|
+
associationSessionId: session.id,
|
|
162
|
+
initialUrl: "http://127.0.0.1:3000",
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
const { targets } = await browser.tabs.list();
|
|
166
|
+
const target = targets.find((candidate) => candidate.selected) ?? targets[0]!;
|
|
167
|
+
const page = await browser.observe(target.id);
|
|
168
|
+
|
|
169
|
+
const receipt = await browser.act({
|
|
170
|
+
operationId: crypto.randomUUID(),
|
|
171
|
+
targetId: target.id,
|
|
172
|
+
expectedTargetGeneration: target.targetGeneration,
|
|
173
|
+
expectedDocumentGeneration: target.documentGeneration,
|
|
174
|
+
expectedFrameId: page.frameId,
|
|
175
|
+
action: { type: "click", locator: { kind: "role", role: "button", name: "Continue" } },
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
if (receipt.state === "outcome_unknown") {
|
|
179
|
+
// Do not replay a mutation blindly. Re-observe, then inspect this exact receipt.
|
|
180
|
+
console.log(await browser.receipt(receipt.operationId));
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Browser identities are immutable version graphs: live browser state stays
|
|
185
|
+
private until `browser.publishRevision(...)` explicitly creates a new revision.
|
|
186
|
+
Protected auth fills resolve connection secrets only inside the broker/controller
|
|
187
|
+
path; normal SDK reads, observations, diagnostics, receipts, and logs never
|
|
188
|
+
return credential values. `client.openWorkspaceInteractionRevisionStream(...)`
|
|
189
|
+
is the low-volume latest-wins invalidation stream for keeping resource catalogs
|
|
190
|
+
fresh without attaching them to an inference/session event stream.
|
|
191
|
+
|
|
192
|
+
Use the flat `OpenGeniClient` interaction methods when implementing a proxy or
|
|
193
|
+
custom transport. Use `client.interaction` for application logic. Both are the
|
|
194
|
+
same API and authority boundary.
|
|
195
|
+
|
|
90
196
|
## Workspace artifacts
|
|
91
197
|
|
|
92
198
|
Workspace artifacts are generic, immutable HTML publications. The SDK does not
|
|
@@ -362,6 +468,18 @@ const file = await client.uploadFile(workspaceId, {
|
|
|
362
468
|
const { url } = await client.createFileDownloadUrl(workspaceId, file.id);
|
|
363
469
|
```
|
|
364
470
|
|
|
471
|
+
Generated-image tool results use the same workspace file authority but expose a
|
|
472
|
+
closed `generated_image` receipt. Prefer a short-lived zero-copy browser URL;
|
|
473
|
+
use the bounded range method when the caller needs verified bytes:
|
|
474
|
+
|
|
475
|
+
```ts
|
|
476
|
+
const { url } = await client.createRetainedArtifactDownloadUrl(workspaceId, receipt.artifact);
|
|
477
|
+
const { bytes } = await client.downloadRetainedArtifact(workspaceId, receipt.artifact);
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
Both methods validate the receipt first. The byte path additionally verifies
|
|
481
|
+
the assembled SHA-256. See `docs/image-generation.md` in the repository.
|
|
482
|
+
|
|
365
483
|
## Connected Machines (bring-your-own-compute)
|
|
366
484
|
|
|
367
485
|
A session can run on an enrolled **Connected Machine** — a user's own computer —
|
|
@@ -396,6 +514,12 @@ the enrollment methods (`mintEnrollToken`, `lookupDeviceEnrollment`,
|
|
|
396
514
|
`approveDeviceEnrollment`, `denyDeviceEnrollment`) are covered in the
|
|
397
515
|
[Connected Machines guide](../../docs/connected-machines.md).
|
|
398
516
|
|
|
517
|
+
For large agent hierarchies, use `listAgentTopology` instead of collecting full
|
|
518
|
+
session pages. It returns compact root, direct-child, or server-side search
|
|
519
|
+
pages with opaque cursors and server-authored descendant counts. Load a child
|
|
520
|
+
page only when its parent is expanded; `children.truncated` makes a lower-bound
|
|
521
|
+
aggregate explicit.
|
|
522
|
+
|
|
399
523
|
## Full API coverage
|
|
400
524
|
|
|
401
525
|
Every public endpoint group has typed methods:
|
|
@@ -403,7 +527,7 @@ Every public endpoint group has typed methods:
|
|
|
403
527
|
| Group | Methods |
|
|
404
528
|
| --- | --- |
|
|
405
529
|
| Access + workspaces | `getAccessContext`, `listWorkspaces`, `createWorkspace`, `getWorkspace`, `updateWorkspace` |
|
|
406
|
-
| Sessions + events | `createSession`, `listSessions`, `getSession`, `updateSession`, `listEvents`, `sendEvent`, `sendMessage`, `steerMessage`, `pauseSession`, `resumeSession`, `cancelSession`, `sendApprovalDecision`, `streamEvents`, `openEventStream` |
|
|
530
|
+
| Sessions + events | `createSession`, `listSessions`, `listSessionPage`, `listAgentTopology`, `getSession`, `getSessionLineage`, `updateSession`, `listEvents`, `sendEvent`, `sendMessage`, `steerMessage`, `pauseSession`, `resumeSession`, `cancelSession`, `sendApprovalDecision`, `streamEvents`, `openEventStream` |
|
|
407
531
|
| Machines (bring-your-own-compute) | `listMachines`, `machineMetricsSeries`, `swapActiveSandbox`, `mintEnrollToken`, `lookupDeviceEnrollment`, `approveDeviceEnrollment`, `denyDeviceEnrollment` |
|
|
408
532
|
| Turn queue | `getQueue`, `moveQueueItem`, `editQueueItem`, `steerQueueItem`, `deleteQueueItem` |
|
|
409
533
|
| Goal | `getGoal`, `updateGoal`, `pauseGoal`, `resumeGoal` |
|
|
@@ -413,10 +537,32 @@ Every public endpoint group has typed methods:
|
|
|
413
537
|
| Documents | `createDocumentBase`, `listDocumentBases`, `getDocumentBase`, `addDocument`, `listDocuments`, `reindexDocument`, `searchDocuments`, `searchKnowledge` (effective organization + workspace + immutable initiating-user personal scope) |
|
|
414
538
|
| Packs | `listPacks`, `registerPack`, `getPack`, `enablePack`, `deletePack`, `listPackInstallations` |
|
|
415
539
|
| Capabilities | `listCapabilities`, `createCapability`, `enableCapability`, `disableCapability`, `discoverMcpCapabilities` |
|
|
540
|
+
| Plugin packages | `previewPlugin`, `installPlugin`, `previewPluginUninstall`, `uninstallPlugin` |
|
|
541
|
+
| API Integrations | `listIntegrationDefinitions`, `listApiIntegrations`, `previewApiIntegration`, `startApiIntegrationOAuth`, `installApiIntegration`, `previewApiIntegrationUninstall`, `uninstallApiIntegration`, `listIntegrationFacets`, `configureIntegrationFacet`, `pauseIntegrationFacet`, `resumeIntegrationFacet`, `removeIntegrationFacet`, `browseGoogleDriveFacetSource`, `saveGoogleDriveFacetSource` |
|
|
542
|
+
| Remote Skills | `previewSkillImport`, `installSkill`, `previewSkillUninstall`, `uninstallSkill` |
|
|
416
543
|
| GitHub | `getGitHubApp`, `githubConnectUrl`, `listGitHubRepositories`, `syncGitHubRepositories`, `createGitHubAppManifest` |
|
|
417
544
|
| API keys | `listApiKeys`, `createApiKey`, `deleteApiKey` |
|
|
418
545
|
| Billing | `getBilling`, `getBillingUsage`, `getBillingEntitlements`, `createBillingCheckout` |
|
|
419
546
|
|
|
547
|
+
`listIntegrationDefinitions` returns safe Integration Definition metadata without any
|
|
548
|
+
deployment OAuth client credentials. API Integrations are multi-instance:
|
|
549
|
+
`installApiIntegration` may supply a
|
|
550
|
+
stable `instanceKey`, display name, and exact Connection. The returned
|
|
551
|
+
`serverId` is instance-specific, so two Gmail or Linear accounts can be
|
|
552
|
+
selected in one session without tool-name collision. Uninstall preview and
|
|
553
|
+
uninstall both require the exact `instanceKey` and instance version; neither
|
|
554
|
+
operation disconnects the underlying Connection.
|
|
555
|
+
|
|
556
|
+
Adapter-owned Integration facets are listed and mutated under the exact
|
|
557
|
+
`capabilityId` + `instanceKey` + `facetKey`. Generic primitive schemas use
|
|
558
|
+
`configureIntegrationFacet`; lifecycle changes and removal require the
|
|
559
|
+
binding's exact optimistic version plus a caller UUID idempotency key. Google
|
|
560
|
+
Drive's nested folder/Shared Drive source schema has dedicated
|
|
561
|
+
`browseGoogleDriveFacetSource` and `saveGoogleDriveFacetSource`
|
|
562
|
+
methods. They verify provider metadata through that instance's exact Connection
|
|
563
|
+
and persist only a versioned facet binding—never provider credentials, page
|
|
564
|
+
tokens, or selected-source configuration on the Connection.
|
|
565
|
+
|
|
420
566
|
### Protocol routes (deliberately not in the SDK)
|
|
421
567
|
|
|
422
568
|
Some endpoints are wire protocols for specific counterparts, not client
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
import { OpenGeniClient as OpenGeniCoreClient } from "./client";
|
|
2
|
-
import type {
|
|
1
|
+
import { OpenGeniClient as OpenGeniCoreClient } from "./client.js";
|
|
2
|
+
import type { CreateEditableArtifactMaterializationRequest, CreateEditableArtifactResourceRequest, EditableArtifactListResource, EditableArtifactMaterializationJobResource, EditableArtifactPinnedVersionResource, EditableArtifactResource, ImportEditableArtifactResourceRequest, ListSessionEditableArtifactResourcesOptions, PinEditableArtifactVersionRequest, ReadEditableArtifactMaterializationOptions, ReadEditableArtifactResourceOptions } from "./editable-artifact-resources.js";
|
|
3
|
+
import type { CreateWorkspaceArtifactRequest, PublishWorkspaceArtifactVersionRequest, RollbackWorkspaceArtifactRequest, WorkspaceArtifactContentResponse, WorkspaceArtifactDetailResponse, WorkspaceArtifactListOptions, WorkspaceArtifactListResponse, WorkspaceArtifactMutationResponse } from "./workspace-artifacts.js";
|
|
3
4
|
/** Public SDK client. Artifact operations stay out of the console's eager core graph. */
|
|
4
5
|
export declare class OpenGeniClient extends OpenGeniCoreClient {
|
|
6
|
+
createEditableArtifact(workspaceId: string, request: CreateEditableArtifactResourceRequest, options?: Readonly<{
|
|
7
|
+
signal?: AbortSignal | undefined;
|
|
8
|
+
}>): Promise<EditableArtifactResource>;
|
|
9
|
+
importEditableArtifact(workspaceId: string, request: ImportEditableArtifactResourceRequest, options?: Readonly<{
|
|
10
|
+
signal?: AbortSignal | undefined;
|
|
11
|
+
}>): Promise<EditableArtifactResource>;
|
|
12
|
+
getEditableArtifact(workspaceId: string, artifactId: string, options: ReadEditableArtifactResourceOptions): Promise<EditableArtifactResource>;
|
|
13
|
+
listSessionEditableArtifacts(workspaceId: string, sourceSessionId: string, options: ListSessionEditableArtifactResourcesOptions): Promise<EditableArtifactListResource>;
|
|
14
|
+
pinEditableArtifactVersion(workspaceId: string, artifactId: string, request: PinEditableArtifactVersionRequest, options?: Readonly<{
|
|
15
|
+
signal?: AbortSignal | undefined;
|
|
16
|
+
}>): Promise<EditableArtifactPinnedVersionResource>;
|
|
17
|
+
createEditableArtifactMaterialization(workspaceId: string, artifactId: string, request: CreateEditableArtifactMaterializationRequest, options?: Readonly<{
|
|
18
|
+
signal?: AbortSignal | undefined;
|
|
19
|
+
}>): Promise<EditableArtifactMaterializationJobResource>;
|
|
20
|
+
getEditableArtifactMaterialization(workspaceId: string, artifactId: string, jobId: string, options: ReadEditableArtifactMaterializationOptions): Promise<EditableArtifactMaterializationJobResource>;
|
|
21
|
+
/** The caller owns the returned bounded response stream. */
|
|
22
|
+
downloadEditableArtifactMaterialization(workspaceId: string, artifactId: string, jobId: string, options: ReadEditableArtifactMaterializationOptions): Promise<Response>;
|
|
5
23
|
listWorkspaceArtifacts(workspaceId: string, options?: WorkspaceArtifactListOptions): Promise<WorkspaceArtifactListResponse>;
|
|
6
24
|
getWorkspaceArtifact(workspaceId: string, artifactId: string): Promise<WorkspaceArtifactDetailResponse>;
|
|
7
25
|
getWorkspaceArtifactContent(workspaceId: string, artifactId: string, versionId?: string): Promise<WorkspaceArtifactContentResponse>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Artifact-only API client entry; keeps unrelated SDK surfaces out of editor bundles. */
|
|
2
|
+
export { OpenGeniClient } from "./artifact-client.js";
|
|
3
|
+
export type { CreateEditableArtifactMaterializationRequest, CreateEditableArtifactResourceRequest, EditableArtifactListResource, EditableArtifactMaterializationFormat, EditableArtifactMaterializationJobResource, EditableArtifactMaterializationResultResource, EditableArtifactPinnedVersionResource, EditableArtifactResource, ListSessionEditableArtifactResourcesOptions, PinEditableArtifactVersionRequest, ReadEditableArtifactMaterializationOptions, ReadEditableArtifactResourceOptions, } from "./editable-artifact-resources.js";
|
|
4
|
+
export type { FetchLike, OpenGeniClientOptions, OpenGeniRequestOptions } from "./client.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OpenGeniClient
|
|
3
|
+
} from "./chunk-JRPFWI6T.js";
|
|
4
|
+
import "./chunk-PKQ377ED.js";
|
|
5
|
+
import "./chunk-HJ3HHUT5.js";
|
|
6
|
+
import "./chunk-GU6JF75T.js";
|
|
7
|
+
import "./chunk-ST5DDKJP.js";
|
|
8
|
+
export {
|
|
9
|
+
OpenGeniClient
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -21,7 +21,7 @@ var OpenGeniApiError = class extends Error {
|
|
|
21
21
|
this.code = options.code ?? decoded?.code ?? (gatewayFailure && fromResponse ? "upstream_unavailable" : void 0);
|
|
22
22
|
this.retryable = options.retryable ?? decoded?.retryable ?? retryableApiStatus(status);
|
|
23
23
|
this.correlationId = correlationId;
|
|
24
|
-
this.outcomeUnknown = options.outcomeUnknown ?? (gatewayFailure && !!options.mutation && !decoded);
|
|
24
|
+
this.outcomeUnknown = options.outcomeUnknown ?? decoded?.outcomeUnknown ?? (gatewayFailure && !!options.mutation && !decoded);
|
|
25
25
|
this.body = !fromResponse || decoded ? body : "";
|
|
26
26
|
this.details = decoded?.details;
|
|
27
27
|
}
|
|
@@ -37,13 +37,16 @@ function decodeApiErrorBody(body) {
|
|
|
37
37
|
const message = boundedApiField(nested.message);
|
|
38
38
|
const requestId = boundedCorrelationId(nested.requestId);
|
|
39
39
|
const retryable = typeof nested.retryable === "boolean" ? nested.retryable : void 0;
|
|
40
|
+
const outcomeUnknown = typeof nested.outcomeUnknown === "boolean" ? nested.outcomeUnknown : void 0;
|
|
40
41
|
const details = boundedApiDetails(nested.details);
|
|
41
|
-
if (!code && !message && !requestId && retryable === void 0 && !details)
|
|
42
|
+
if (!code && !message && !requestId && retryable === void 0 && outcomeUnknown === void 0 && !details)
|
|
43
|
+
return null;
|
|
42
44
|
return {
|
|
43
45
|
code,
|
|
44
46
|
message,
|
|
45
47
|
requestId,
|
|
46
48
|
retryable,
|
|
49
|
+
outcomeUnknown,
|
|
47
50
|
details
|
|
48
51
|
};
|
|
49
52
|
} catch {
|
|
@@ -113,4 +116,4 @@ export {
|
|
|
113
116
|
isAbortError,
|
|
114
117
|
isRetryableStreamError
|
|
115
118
|
};
|
|
116
|
-
//# sourceMappingURL=chunk-
|
|
119
|
+
//# sourceMappingURL=chunk-GU6JF75T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts"],"sourcesContent":["/** Error for a non-2xx OpenGeni API response. */\nexport class OpenGeniApiError extends Error {\n readonly status: number;\n readonly code: string | undefined;\n readonly retryable: boolean;\n readonly correlationId: string | undefined;\n /** True only when an uncontrolled transport failed after a mutation may have been accepted. */\n readonly outcomeUnknown: boolean;\n readonly body: string;\n readonly details: Record<string, unknown> | undefined;\n\n constructor(\n status: number,\n body: string,\n options: {\n code?: string | undefined;\n retryable?: boolean | undefined;\n correlationId?: string | undefined;\n outcomeUnknown?: boolean | undefined;\n displayMessage?: string | undefined;\n mutation?: boolean | undefined;\n } = {},\n ) {\n const decoded = decodeApiErrorBody(body);\n const correlationId = decoded?.requestId ?? boundedCorrelationId(options.correlationId);\n const gatewayFailure = status >= 502 && status <= 504;\n const fromResponse = options.mutation !== undefined;\n const message = decoded?.message ?? (fromResponse ? \"Request failed.\" : body || \"(empty body)\");\n const displayMessage =\n options.displayMessage ??\n (gatewayFailure && fromResponse\n ? (decoded?.message ?? \"OpenGeni is temporarily unavailable — retry.\")\n : `OpenGeni API ${status}: ${message}`);\n super(correlationId ? `${displayMessage} Reference: ${correlationId}.` : displayMessage);\n this.name = \"OpenGeniApiError\";\n this.status = status;\n this.code =\n options.code ??\n decoded?.code ??\n (gatewayFailure && fromResponse ? \"upstream_unavailable\" : undefined);\n this.retryable = options.retryable ?? decoded?.retryable ?? retryableApiStatus(status);\n this.correlationId = correlationId;\n this.outcomeUnknown =\n options.outcomeUnknown ??\n decoded?.outcomeUnknown ??\n (gatewayFailure && !!options.mutation && !decoded);\n this.body = !fromResponse || decoded ? body : \"\";\n this.details = decoded?.details;\n }\n}\n\nfunction decodeApiErrorBody(body: string): {\n code: string | undefined;\n message: string | undefined;\n requestId: string | undefined;\n retryable: boolean | undefined;\n outcomeUnknown: boolean | undefined;\n details: Record<string, unknown> | undefined;\n} | null {\n if (!body) return null;\n try {\n const decoded: unknown = JSON.parse(body);\n if (!decoded || typeof decoded !== \"object\" || Array.isArray(decoded)) return null;\n const record = decoded as Record<string, unknown>;\n const nested =\n record.error && typeof record.error === \"object\" && !Array.isArray(record.error)\n ? (record.error as Record<string, unknown>)\n : record;\n const code = boundedApiField(nested.code);\n const message = boundedApiField(nested.message);\n const requestId = boundedCorrelationId(nested.requestId);\n const retryable = typeof nested.retryable === \"boolean\" ? nested.retryable : undefined;\n const outcomeUnknown =\n typeof nested.outcomeUnknown === \"boolean\" ? nested.outcomeUnknown : undefined;\n const details = boundedApiDetails(nested.details);\n if (\n !code &&\n !message &&\n !requestId &&\n retryable === undefined &&\n outcomeUnknown === undefined &&\n !details\n )\n return null;\n return {\n code,\n message,\n requestId,\n retryable,\n outcomeUnknown,\n details,\n };\n } catch {\n return null;\n }\n}\n\nfunction boundedApiDetails(value: unknown): Record<string, unknown> | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return;\n const entries = Object.entries(value as Record<string, unknown>).slice(0, 16);\n const details: Record<string, unknown> = {};\n for (const [key, entry] of entries) {\n if (!/^[a-zA-Z][\\w.-]{0,63}$/.test(key)) continue;\n if (typeof entry === \"string\") {\n const bounded = boundedApiField(entry);\n if (bounded !== undefined) details[key] = bounded;\n } else if (typeof entry === \"number\" || typeof entry === \"boolean\" || entry === null) {\n details[key] = entry;\n }\n }\n return Object.keys(details).length > 0 ? details : undefined;\n}\n\nfunction boundedApiField(value: unknown): string | undefined {\n if (typeof value !== \"string\") return;\n const bytes = new TextEncoder().encode(value);\n return bytes.byteLength <= 512 ? value : new TextDecoder().decode(bytes.slice(0, 512));\n}\n\nfunction retryableApiStatus(status: number): boolean {\n return status === 408 || status === 409 || status === 425 || status === 429 || status >= 500;\n}\n\nfunction boundedCorrelationId(value: unknown): string | undefined {\n if (typeof value !== \"string\" || value.length > 128 || !/^[\\w.:-]+$/.test(value)) {\n return;\n }\n return value;\n}\n\n/** A short-lived session-list snapshot cursor can no longer be continued. */\nexport class OpenGeniSessionListCursorError extends OpenGeniApiError {}\n\n/** The browser bundle and API disagree about their state-changing wire contract. */\nexport class OpenGeniApiContractMismatchError extends Error {\n readonly expected: string;\n readonly actual: string;\n\n constructor(expected: string, actual: string) {\n super(`OpenGeni API contract mismatch: client expects ${expected}, API serves ${actual}`);\n this.name = \"OpenGeniApiContractMismatchError\";\n this.expected = expected;\n this.actual = actual;\n }\n}\n\n/** Error for an unrecoverable event-stream condition (not a transient drop). */\nexport class OpenGeniStreamError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"OpenGeniStreamError\";\n }\n}\n\nexport function isAbortError(error: unknown): boolean {\n return (\n (error instanceof DOMException && error.name === \"AbortError\") ||\n (error instanceof Error && error.name === \"AbortError\")\n );\n}\n\n/**\n * Transient conditions worth a reconnect: network-level failures (`fetch`\n * rejects with `TypeError`) and HTTP statuses that signal a temporary server\n * or contention condition. Auth/validation failures (401/403/404/...) are\n * permanent and surface to the caller instead.\n */\nexport function isRetryableStreamError(error: unknown): boolean {\n if (error instanceof OpenGeniApiError) return error.retryable;\n return error instanceof TypeError;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
// src/types.ts
|
|
2
|
+
var DEFAULT_FILE_RESOURCE_MOUNT_ROOT = ".opengeni/files";
|
|
3
|
+
var SESSION_EVENT_TYPES = [
|
|
4
|
+
"session.created",
|
|
5
|
+
// Defensive bounded projection for malformed/legacy oversized envelopes.
|
|
6
|
+
"session.event.envelope_omitted",
|
|
7
|
+
"session.status.changed",
|
|
8
|
+
"session.realtime.started",
|
|
9
|
+
"session.realtime.ended",
|
|
10
|
+
"session.requiresAction",
|
|
11
|
+
"session.humanInput.requested",
|
|
12
|
+
"session.context.compaction.requested",
|
|
13
|
+
"session.context.compaction.started",
|
|
14
|
+
"session.context.compacted",
|
|
15
|
+
"session.context.compaction.skipped",
|
|
16
|
+
"session.context.cleared",
|
|
17
|
+
"user.message",
|
|
18
|
+
"user.pause",
|
|
19
|
+
"user.approvalDecision",
|
|
20
|
+
"user.humanInputResponse",
|
|
21
|
+
"turn.queued",
|
|
22
|
+
"turn.started",
|
|
23
|
+
"turn.completed",
|
|
24
|
+
"turn.failed",
|
|
25
|
+
"turn.cancelled",
|
|
26
|
+
"turn.superseded",
|
|
27
|
+
"turn.recovery.requested",
|
|
28
|
+
"turn.capacity_waiting",
|
|
29
|
+
"agent.message.delta",
|
|
30
|
+
"agent.message.completed",
|
|
31
|
+
"agent.reasoning.delta",
|
|
32
|
+
"agent.toolCall.created",
|
|
33
|
+
"agent.toolCall.output",
|
|
34
|
+
"agent.model.request",
|
|
35
|
+
"agent.model.usage",
|
|
36
|
+
"tool.auth_needed",
|
|
37
|
+
"credential.auth_needed",
|
|
38
|
+
"agent.updated",
|
|
39
|
+
"rig.setup.started",
|
|
40
|
+
"rig.setup.completed",
|
|
41
|
+
"rig.setup.skipped",
|
|
42
|
+
"rig.setup.failed",
|
|
43
|
+
"sandbox.operation.started",
|
|
44
|
+
"sandbox.operation.completed",
|
|
45
|
+
"sandbox.operation.failed",
|
|
46
|
+
"sandbox.command.output.delta",
|
|
47
|
+
"artifact.created",
|
|
48
|
+
"goal.set",
|
|
49
|
+
"goal.updated",
|
|
50
|
+
"goal.progress",
|
|
51
|
+
"goal.rewrite.proposed",
|
|
52
|
+
"goal.rewrite.rejected",
|
|
53
|
+
"goal.completed",
|
|
54
|
+
"goal.paused",
|
|
55
|
+
"goal.resumed",
|
|
56
|
+
"goal.cleared",
|
|
57
|
+
"goal.continuation",
|
|
58
|
+
"system.update.pending",
|
|
59
|
+
"system.update.delivered",
|
|
60
|
+
"system.update.superseded",
|
|
61
|
+
"system.update.cancelled",
|
|
62
|
+
"system.update.settled",
|
|
63
|
+
"session.control.paused",
|
|
64
|
+
"session.control.resumed",
|
|
65
|
+
"session.control.steer_requested",
|
|
66
|
+
"workspace.inference.paused",
|
|
67
|
+
"workspace.inference.resumed",
|
|
68
|
+
"session.queue.changed",
|
|
69
|
+
"session.queue.prompt.cancelled",
|
|
70
|
+
"session.queue.history",
|
|
71
|
+
"turn.event.rejected_late",
|
|
72
|
+
"memory.saved",
|
|
73
|
+
"memory.corrected",
|
|
74
|
+
// Channel-B desktop pixel-plane signals (mirror of contracts SessionEventType;
|
|
75
|
+
// the contract-parity test asserts sorted equality).
|
|
76
|
+
"stream.url.rotated",
|
|
77
|
+
"stream.opened",
|
|
78
|
+
"stream.closed",
|
|
79
|
+
"stream.revoked",
|
|
80
|
+
// Channel-B recording signals (P4.3 — "agent films itself proving the fix").
|
|
81
|
+
"recording.started",
|
|
82
|
+
"recording.available",
|
|
83
|
+
"recording.failed",
|
|
84
|
+
// Channel-A structured-service notifications (P4.4; mirror of contracts
|
|
85
|
+
// SessionEventType — the contract-parity test asserts sorted equality).
|
|
86
|
+
"fs.changed",
|
|
87
|
+
"git.changed",
|
|
88
|
+
"terminal.pty.started",
|
|
89
|
+
"terminal.pty.output.delta",
|
|
90
|
+
"terminal.pty.exited",
|
|
91
|
+
"session.title_set",
|
|
92
|
+
"session.visibility.changed",
|
|
93
|
+
"session.mcp.approval_policy.updated",
|
|
94
|
+
"session.tool_policy.updated",
|
|
95
|
+
// Multi-account Codex (P1): the session's inference account changed.
|
|
96
|
+
"codex.account.switched",
|
|
97
|
+
// credential allocator metadata-only per-turn credential selection audit.
|
|
98
|
+
"codex.credential.selected",
|
|
99
|
+
// Bounded, identity-free deterministic shadow/replay decision.
|
|
100
|
+
"codex.fleet.decision",
|
|
101
|
+
// credential allocator durable zero-capacity wait lifecycle. These are system/runtime
|
|
102
|
+
// events, never synthetic user messages.
|
|
103
|
+
"codex.capacity.waiting",
|
|
104
|
+
"codex.capacity.resumed",
|
|
105
|
+
"codex.capacity.superseded",
|
|
106
|
+
// Sandbox durability observability (mirror of contracts SessionEventType):
|
|
107
|
+
// box lifecycle + manifest-env drift, attributable from the DB alone.
|
|
108
|
+
"sandbox.box.created",
|
|
109
|
+
"sandbox.box.lost",
|
|
110
|
+
"sandbox.box.terminated",
|
|
111
|
+
"sandbox.box.snapshot",
|
|
112
|
+
"sandbox.env.drift",
|
|
113
|
+
// Active-sandbox pointer reconcile (issue #341; announce-only; mirror of contracts
|
|
114
|
+
// SessionEventType — the contract-parity test asserts sorted equality).
|
|
115
|
+
"session.route.reconciled",
|
|
116
|
+
// Workbench v2 turn-end workspace capture (announce-only; mirror of contracts
|
|
117
|
+
// SessionEventType — the contract-parity test asserts sorted equality).
|
|
118
|
+
"workspace.revision.captured",
|
|
119
|
+
"workspace.revision.degraded",
|
|
120
|
+
// Connected Machine op-outcome observability (announce-only, quiet; mirror of
|
|
121
|
+
// contracts SessionEventType — the contract-parity test asserts sorted equality).
|
|
122
|
+
"machine.op.failed",
|
|
123
|
+
"machine.op.recovered",
|
|
124
|
+
// Connected Machine link-plane observability (announce-only, quiet; mirror of
|
|
125
|
+
// contracts SessionEventType — the contract-parity test asserts sorted equality).
|
|
126
|
+
"machine.link.lost",
|
|
127
|
+
"machine.link.restored",
|
|
128
|
+
"machine.runner.restarted"
|
|
129
|
+
];
|
|
130
|
+
var KNOWN_PERMISSIONS = [
|
|
131
|
+
"account:read",
|
|
132
|
+
"account:admin",
|
|
133
|
+
"members:manage",
|
|
134
|
+
"workspace:create",
|
|
135
|
+
"billing:read",
|
|
136
|
+
"billing:manage",
|
|
137
|
+
"workspace:read",
|
|
138
|
+
"workspace:admin",
|
|
139
|
+
"sessions:create",
|
|
140
|
+
"sessions:read",
|
|
141
|
+
"sessions:control",
|
|
142
|
+
// sandbox workspace (mirror of @opengeni/contracts Permission). stream:view is
|
|
143
|
+
// strictly broader than sessions:read (un-redacted pixels); stream:control is
|
|
144
|
+
// the never-granted-v1 raw-input plane; stream:acknowledge is the secret-leak
|
|
145
|
+
// consent gate.
|
|
146
|
+
"stream:view",
|
|
147
|
+
"stream:control",
|
|
148
|
+
"stream:acknowledge",
|
|
149
|
+
"files:upload",
|
|
150
|
+
"files:read",
|
|
151
|
+
"files:write",
|
|
152
|
+
"terminal:attach",
|
|
153
|
+
"documents:manage",
|
|
154
|
+
"documents:search",
|
|
155
|
+
"scheduled_tasks:manage",
|
|
156
|
+
"scheduled_tasks:run",
|
|
157
|
+
"github:manage",
|
|
158
|
+
"github:use",
|
|
159
|
+
"api_keys:manage",
|
|
160
|
+
"connections:read",
|
|
161
|
+
"connections:write",
|
|
162
|
+
"environments:manage",
|
|
163
|
+
"environments:use",
|
|
164
|
+
"variable-sets:list",
|
|
165
|
+
"variable-sets:read",
|
|
166
|
+
"variable-sets:write",
|
|
167
|
+
"variable-sets:manage",
|
|
168
|
+
"variable-sets:use",
|
|
169
|
+
"secrets:list",
|
|
170
|
+
"secrets:read",
|
|
171
|
+
"secrets:write",
|
|
172
|
+
"mcp_servers:attach",
|
|
173
|
+
"codemode:call",
|
|
174
|
+
"goals:manage",
|
|
175
|
+
"enrollments:read",
|
|
176
|
+
"enrollments:manage",
|
|
177
|
+
"rigs:use",
|
|
178
|
+
"rigs:manage",
|
|
179
|
+
"artifacts:read",
|
|
180
|
+
"artifacts:publish"
|
|
181
|
+
];
|
|
182
|
+
var OPENGENI_API_CONTRACT_REVISION = "2026-08-social-provider-tools-v1";
|
|
183
|
+
var OPENGENI_API_CONTRACT_HEADER = "x-opengeni-api-contract";
|
|
184
|
+
var OPENGENI_CORRELATION_HEADER = "x-opengeni-correlation-id";
|
|
185
|
+
var RETAINED_OUTPUT_DEFAULT_PAGE_BYTES = 256 * 1024;
|
|
186
|
+
var RETAINED_OUTPUT_MAX_PAGE_BYTES = 1024 * 1024;
|
|
187
|
+
var COMPUTER_SCREENSHOT_MAX_BYTES = 32 * 1024 * 1024;
|
|
188
|
+
var GENERATED_IMAGE_MAX_BYTES = 64 * 1024 * 1024;
|
|
189
|
+
var GENERATED_VIDEO_MAX_BYTES = 512 * 1024 * 1024;
|
|
190
|
+
var KNOWN_USAGE_EVENT_TYPES = [
|
|
191
|
+
"agent_run.created",
|
|
192
|
+
"agent_run.completed",
|
|
193
|
+
"model.tokens",
|
|
194
|
+
"model.cost",
|
|
195
|
+
"file.uploaded",
|
|
196
|
+
"file.deleted",
|
|
197
|
+
"document.indexed",
|
|
198
|
+
"scheduled_task.fired",
|
|
199
|
+
"knowledge_source_sync.fired",
|
|
200
|
+
"knowledge_source_sync.completed",
|
|
201
|
+
"knowledge_source_sync.items",
|
|
202
|
+
"knowledge_source_sync.bytes",
|
|
203
|
+
"api_key.request",
|
|
204
|
+
// sandbox warm-time metering (P2.1) — mirrors contracts UsageEventType.
|
|
205
|
+
"sandbox.warm_seconds",
|
|
206
|
+
"sandbox.warm_cost"
|
|
207
|
+
];
|
|
208
|
+
|
|
209
|
+
export {
|
|
210
|
+
DEFAULT_FILE_RESOURCE_MOUNT_ROOT,
|
|
211
|
+
SESSION_EVENT_TYPES,
|
|
212
|
+
KNOWN_PERMISSIONS,
|
|
213
|
+
OPENGENI_API_CONTRACT_REVISION,
|
|
214
|
+
OPENGENI_API_CONTRACT_HEADER,
|
|
215
|
+
OPENGENI_CORRELATION_HEADER,
|
|
216
|
+
RETAINED_OUTPUT_DEFAULT_PAGE_BYTES,
|
|
217
|
+
RETAINED_OUTPUT_MAX_PAGE_BYTES,
|
|
218
|
+
COMPUTER_SCREENSHOT_MAX_BYTES,
|
|
219
|
+
GENERATED_VIDEO_MAX_BYTES,
|
|
220
|
+
KNOWN_USAGE_EVENT_TYPES
|
|
221
|
+
};
|
|
222
|
+
//# sourceMappingURL=chunk-HJ3HHUT5.js.map
|