Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sdk/js/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@agent-infra/sandbox",
"version": "1.0.7",
"version": "1.0.8",
"description": "Node.js SDK for AIO Sandbox integration providing tools and interfaces",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.mjs",
Expand Down
57 changes: 4 additions & 53 deletions sdk/js/src/Client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This file was auto-generated by Fern from our API Definition.

import * as Sandbox from "./api/index.js";
import { Auth } from "./api/resources/auth/client/Client.js";
import { Browser } from "./api/resources/browser/client/Client.js";
import { Code } from "./api/resources/code/client/Client.js";
import { File_ } from "./api/resources/file/client/Client.js";
Expand Down Expand Up @@ -33,6 +33,7 @@ export class SandboxClient {
protected _code: Code | undefined;
protected _util: Util | undefined;
protected _skills: Skills | undefined;
protected _auth: Auth | undefined;

constructor(_options: SandboxClient.Options) {
this._options = {
Expand Down Expand Up @@ -89,58 +90,8 @@ export class SandboxClient {
return (this._skills ??= new Skills(this._options));
}

/**
* Serve the terminal HTML page
*
* @param {SandboxClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @example
* await client.serveTerminalTerminalGet()
*/
public serveTerminalTerminalGet(
requestOptions?: SandboxClient.RequestOptions,
): core.HttpResponsePromise<core.APIResponse<unknown, Sandbox.serveTerminalTerminalGet.Error>> {
return core.HttpResponsePromise.fromPromise(this.__serveTerminalTerminalGet(requestOptions));
public get auth(): Auth {
return (this._auth ??= new Auth(this._options));
}

private async __serveTerminalTerminalGet(
requestOptions?: SandboxClient.RequestOptions,
): Promise<core.WithRawResponse<core.APIResponse<unknown, Sandbox.serveTerminalTerminalGet.Error>>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(this._options?.headers, requestOptions?.headers);
const _response = await (this._options.fetcher ?? core.fetcher)({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)),
"terminal",
),
method: "GET",
headers: _headers,
queryParameters: requestOptions?.queryParams,
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
fetchFn: this._options?.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: {
ok: true,
body: _response.body,
headers: _response.headers,
rawResponse: _response.rawResponse,
},
rawResponse: _response.rawResponse,
};
}

return {
data: {
ok: false,
error: Sandbox.serveTerminalTerminalGet.Error._unknown(core.isFailedResponse(_response) ? _response.error : { reason: "unknown", errorMessage: "Unknown error" }),
rawResponse: _response.rawResponse,
},
rawResponse: _response.rawResponse,
};
}
}
1 change: 0 additions & 1 deletion sdk/js/src/api/client/index.ts

This file was deleted.

1 change: 0 additions & 1 deletion sdk/js/src/api/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from "./client/index.js";
export * from "./resources/index.js";
export * from "./types/index.js";
136 changes: 136 additions & 0 deletions sdk/js/src/api/resources/auth/client/Client.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
// This file was auto-generated by Fern from our API Definition.

import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { mergeHeaders } from "../../../../core/headers.js";
import * as core from "../../../../core/index.js";
import * as Sandbox from "../../../index.js";

export declare namespace Auth {
export interface Options extends BaseClientOptions {}

export interface RequestOptions extends BaseRequestOptions {}
}

export class Auth {
protected readonly _options: Auth.Options;

constructor(_options: Auth.Options) {
this._options = _options;
}

/**
* Create and return a short-lived authentication ticket.
*
* This is a non-idempotent action; each call creates a new, unique ticket.
*
* @param {Auth.RequestOptions} requestOptions - Request-specific configuration.
*
* @example
* await client.auth.createTicket()
*/
public createTicket(
requestOptions?: Auth.RequestOptions,
): core.HttpResponsePromise<core.APIResponse<Record<string, unknown>, Sandbox.auth.createTicket.Error>> {
return core.HttpResponsePromise.fromPromise(this.__createTicket(requestOptions));
}

private async __createTicket(
requestOptions?: Auth.RequestOptions,
): Promise<core.WithRawResponse<core.APIResponse<Record<string, unknown>, Sandbox.auth.createTicket.Error>>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(this._options?.headers, requestOptions?.headers);
const _response = await (this._options.fetcher ?? core.fetcher)({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)),
"tickets",
),
method: "POST",
headers: _headers,
queryParameters: requestOptions?.queryParams,
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
fetchFn: this._options?.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: {
ok: true,
body: _response.body as Record<string, unknown>,
headers: _response.headers,
rawResponse: _response.rawResponse,
},
rawResponse: _response.rawResponse,
};
}

return {
data: {
ok: false,
error: Sandbox.auth.createTicket.Error._unknown(core.isFailedResponse(_response) ? _response.error : { reason: "unknown", errorMessage: "Unknown error" }),
rawResponse: _response.rawResponse,
},
rawResponse: _response.rawResponse,
};
}

/**
* Authenticate a request using ticket or JWT.
*
* This endpoint receives authentication subrequests (e.g., from Nginx auth_request).
* It validates the request based on either a ticket in the 'x-original-uri'
* header or a JWT in the 'Authorization' header.
*
* @param {Auth.RequestOptions} requestOptions - Request-specific configuration.
*
* @example
* await client.auth.authenticate()
*/
public authenticate(
requestOptions?: Auth.RequestOptions,
): core.HttpResponsePromise<core.APIResponse<Record<string, string>, Sandbox.auth.authenticate.Error>> {
return core.HttpResponsePromise.fromPromise(this.__authenticate(requestOptions));
}

private async __authenticate(
requestOptions?: Auth.RequestOptions,
): Promise<core.WithRawResponse<core.APIResponse<Record<string, string>, Sandbox.auth.authenticate.Error>>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(this._options?.headers, requestOptions?.headers);
const _response = await (this._options.fetcher ?? core.fetcher)({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)),
"auth",
),
method: "GET",
headers: _headers,
queryParameters: requestOptions?.queryParams,
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
fetchFn: this._options?.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: {
ok: true,
body: _response.body as Record<string, string>,
headers: _response.headers,
rawResponse: _response.rawResponse,
},
rawResponse: _response.rawResponse,
};
}

return {
data: {
ok: false,
error: Sandbox.auth.authenticate.Error._unknown(core.isFailedResponse(_response) ? _response.error : { reason: "unknown", errorMessage: "Unknown error" }),
rawResponse: _response.rawResponse,
},
rawResponse: _response.rawResponse,
};
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// This file was auto-generated by Fern from our API Definition.

import type * as core from "../../core/index.js";
import type * as Sandbox from "../index.js";
import type * as core from "../../../../core/index.js";
import type * as Sandbox from "../../../index.js";

export type Error = Sandbox.serveTerminalTerminalGet.Error._Unknown;
export type Error = Sandbox.auth.authenticate.Error._Unknown;

export namespace Error {
export interface _Unknown {
Expand All @@ -17,16 +17,16 @@ export namespace Error {
}

export const Error = {
_unknown: (fetcherError: core.Fetcher.Error): Sandbox.serveTerminalTerminalGet.Error._Unknown => {
_unknown: (fetcherError: core.Fetcher.Error): Sandbox.auth.authenticate.Error._Unknown => {
return {
statusCode: undefined,
content: fetcherError,
};
},

_visit: <_Result>(
value: Sandbox.serveTerminalTerminalGet.Error,
visitor: Sandbox.serveTerminalTerminalGet.Error._Visitor<_Result>,
value: Sandbox.auth.authenticate.Error,
visitor: Sandbox.auth.authenticate.Error._Visitor<_Result>,
): _Result => {
switch (value.statusCode) {
default:
Expand Down
36 changes: 36 additions & 0 deletions sdk/js/src/api/resources/auth/client/createTicket.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// This file was auto-generated by Fern from our API Definition.

import type * as core from "../../../../core/index.js";
import type * as Sandbox from "../../../index.js";

export type Error = Sandbox.auth.createTicket.Error._Unknown;

export namespace Error {
export interface _Unknown {
statusCode: void;
content: core.Fetcher.Error;
}

export interface _Visitor<_Result> {
_other: (value: core.Fetcher.Error) => _Result;
}
}

export const Error = {
_unknown: (fetcherError: core.Fetcher.Error): Sandbox.auth.createTicket.Error._Unknown => {
return {
statusCode: undefined,
content: fetcherError,
};
},

_visit: <_Result>(
value: Sandbox.auth.createTicket.Error,
visitor: Sandbox.auth.createTicket.Error._Visitor<_Result>,
): _Result => {
switch (value.statusCode) {
default:
return visitor._other(value as any);
}
},
} as const;
2 changes: 2 additions & 0 deletions sdk/js/src/api/resources/auth/client/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * as authenticate from "./authenticate.js";
export * as createTicket from "./createTicket.js";
1 change: 1 addition & 0 deletions sdk/js/src/api/resources/auth/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./client/index.js";
2 changes: 2 additions & 0 deletions sdk/js/src/api/resources/code/client/Client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ export class Code {
/**
* Return metadata about supported code runtimes
*
* Note: Version info is cached at service level (first call only runs subprocess).
*
* @param {Code.RequestOptions} requestOptions - Request-specific configuration.
*
* @example
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,14 @@ export interface StrReplaceEditorRequest {
view_range?: number[];
/** Optional parameter of `str_replace` command. When specified, controls how multiple occurrences are handled: 'ALL' replaces all occurrences, 'FIRST' replaces only the first, 'LAST' replaces only the last. If not specified, requires unique match (original behavior). */
replace_mode?: Sandbox.StrReplaceEditorRequestReplaceMode;
/** Optional parameter for `view` command on PDF files. Specifies page range [start, end] (1-indexed). E.g., [1, 5] reads pages 1-5. */
page_range?: number[];
/** Optional parameter for `view` command on Excel files. Specifies which sheet to read. If not provided, all sheets are returned. */
sheet_name?: string;
/** Optional parameter for `view` command on Excel files. Specifies row range [start, end] (1-indexed). E.g., [1, 100] reads rows 1-100. */
row_range?: number[];
/** Optional parameter for `view` command on PPTX files. Specifies slide range [start, end] (1-indexed). E.g., [1, 5] reads slides 1-5. */
slide_range?: number[];
/** Optional parameter for `view` command. If true, returns file metadata (total pages, sheets, slides, etc.) in the response. */
enable_metadata?: boolean;
}
1 change: 1 addition & 0 deletions sdk/js/src/api/resources/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * as auth from "./auth/index.js";
export * from "./browser/client/requests/index.js";
export * as browser from "./browser/index.js";
export * from "./browser/types/index.js";
Expand Down
Loading
Loading