diff --git a/libs/sdk-js/.gitignore b/libs/sdk-js/.gitignore index 128c6dc98..db1a582d0 100644 --- a/libs/sdk-js/.gitignore +++ b/libs/sdk-js/.gitignore @@ -6,6 +6,10 @@ client.cjs client.js client.d.ts client.d.cts +auth.cjs +auth.js +auth.d.ts +auth.d.cts react.cjs react.js react.d.ts diff --git a/libs/sdk-js/package.json b/libs/sdk-js/package.json index 3be321092..2ff1c8282 100644 --- a/libs/sdk-js/package.json +++ b/libs/sdk-js/package.json @@ -72,6 +72,15 @@ "import": "./client.js", "require": "./client.cjs" }, + "./auth": { + "types": { + "import": "./auth.d.ts", + "require": "./auth.d.cts", + "default": "./auth.d.ts" + }, + "import": "./auth.js", + "require": "./auth.cjs" + }, "./react": { "types": { "import": "./react.d.ts", @@ -111,6 +120,10 @@ "client.js", "client.d.ts", "client.d.cts", + "auth.cjs", + "auth.js", + "auth.d.ts", + "auth.d.cts", "react.cjs", "react.js", "react.d.ts", diff --git a/libs/sdk-js/src/auth/index.ts b/libs/sdk-js/src/auth/index.ts index 900a3adbb..04a84d06b 100644 --- a/libs/sdk-js/src/auth/index.ts +++ b/libs/sdk-js/src/auth/index.ts @@ -5,10 +5,9 @@ interface AssistantConfig { recursion_limit?: Maybe; configurable?: Maybe<{ thread_id?: Maybe; - thread_ts?: Maybe; + thread_ts?: Maybe; [key: string]: unknown; }>; - [key: string]: unknown; } interface AssistantCreate { @@ -24,7 +23,6 @@ interface AssistantRead { assistant_id: string; metadata?: Maybe>; } - interface AssistantUpdate { assistant_id: string; metadata?: Maybe>; @@ -33,11 +31,9 @@ interface AssistantUpdate { name?: Maybe; version?: Maybe; } - interface AssistantDelete { assistant_id: string; } - interface AssistantSearch { graph_id?: Maybe; metadata?: Maybe>; @@ -45,28 +41,114 @@ interface AssistantSearch { offset?: Maybe; } -// TODO: add missing types -interface ThreadCreate {} -interface ThreadRead {} -interface ThreadUpdate {} -interface ThreadDelete {} -interface ThreadSearch {} +interface ThreadCreate { + thread_id?: Maybe; + metadata?: Maybe>; + if_exists?: Maybe<"raise" | "do_nothing">; +} -interface CronCreate {} -interface CronRead {} -interface CronUpdate {} -interface CronDelete {} -interface CronSearch {} +interface ThreadRead { + thread_id?: Maybe; +} -interface StorePut {} -interface StoreGet {} -interface StoreSearch {} -interface StoreListNamespaces {} -interface StoreDelete {} +interface ThreadUpdate { + thread_id?: Maybe; + metadata?: Maybe>; + action?: Maybe<"interrupt" | "rollback">; +} -interface RunsCreate {} +interface ThreadDelete { + thread_id?: Maybe; + run_id?: Maybe; +} -interface ResourceActionType { +interface ThreadSearch { + thread_id?: Maybe; + status?: Maybe<"idle" | "busy" | "interrupted" | "error" | (string & {})>; + metadata?: Maybe>; + values?: Maybe>; + limit?: Maybe; + offset?: Maybe; +} + +interface CronCreate { + payload?: Maybe>; + schedule: string; + cron_id?: Maybe; + thread_id?: Maybe; + user_id?: Maybe; + end_time?: Maybe; +} + +interface CronRead { + cron_id: string; +} + +interface CronUpdate { + cron_id: string; + payload?: Maybe>; + schedule?: Maybe; +} + +interface CronDelete { + cron_id: string; +} + +interface CronSearch { + assistant_id?: Maybe; + thread_id?: Maybe; + limit?: Maybe; + offset?: Maybe; +} + +interface StorePut { + namespace: string[]; + key: string; + value: Record; +} + +interface StoreGet { + namespace: Maybe; + key: string; +} + +interface StoreSearch { + namespace?: Maybe; + filter?: Maybe>; + limit?: Maybe; + offset?: Maybe; + query?: Maybe; +} + +interface StoreListNamespaces { + namespace?: Maybe; + suffix?: Maybe; + max_depth?: Maybe; + limit?: Maybe; + offset?: Maybe; +} + +interface StoreDelete { + namespace?: Maybe; + key: string; +} + +interface RunsCreate { + thread_id?: Maybe; + assistant_id: string; + run_id: string; + status: Maybe< + "pending" | "running" | "error" | "success" | "timeout" | "interrupted" + >; + metadata?: Maybe>; + prevent_insert_if_inflight?: Maybe; + multitask_strategy?: Maybe<"interrupt" | "rollback" | "reject" | "enqueue">; + if_not_exists?: Maybe<"reject" | "create">; + after_seconds?: Maybe; + kwargs: Record; +} + +export interface ResourceActionType { ["threads:create"]: ThreadCreate; ["threads:read"]: ThreadRead; ["threads:update"]: ThreadUpdate; @@ -187,7 +269,7 @@ type ResourceCallbackParameter< AuthContext = {}, > = ContextMap[ResourceType[T]] & { context: AuthContext }; -type Filters = { +export type Filters = { [key in TKey]: string | { [op in "$contains" | "$eq"]?: string }; }; @@ -195,12 +277,46 @@ interface AuthenticateCallback> { (request: Request): AuthContext; } +interface GlobalCallback< + Metadata extends Record = {}, + AuthContext extends Record = {}, +> { + ( + data: AuthCallbackParameter, + ): void | boolean | Filters; +} + +interface ResourceCallback< + Metadata extends Record = {}, + AuthContext extends Record = {}, +> { + ( + data: ResourceCallbackParameter, + ): void | boolean | Filters; +} + +interface ActionCallback< + Metadata extends Record = {}, + AuthContext extends Record = {}, +> { + ( + data: ActionCallbackParameter, + ): void | boolean | Filters; +} + +interface ResourceActionCallback< + Metadata extends Record = {}, + AuthContext extends Record = {}, +> { + ( + data: AuthCallbackParameter, + ): void | boolean | Filters; +} + export class Auth< Metadata extends Record = {}, AuthContext extends Record = {}, > { - protected __lg_type = Symbol.for("lg:auth"); - "~handlerCache": { authenticate?: AuthenticateCallback; callbacks?: Record< @@ -217,21 +333,14 @@ export class Auth< /** * Global handler for all requests */ - on( - event: "*", - callback: ( - data: AuthCallbackParameter, - ) => void | boolean | Filters, - ): this; + on(event: "*", callback: GlobalCallback): this; /** * Resource-specific handler */ on( event: T, - callback: ( - data: ResourceCallbackParameter, - ) => void | boolean | Filters, + callback: ResourceCallback, ): this; /** @@ -239,9 +348,7 @@ export class Auth< */ on( event: T, - callback: ( - data: ActionCallbackParameter, - ) => void | boolean | Filters, + callback: ActionCallback, ): this; /** @@ -249,9 +356,7 @@ export class Auth< */ on( event: T, - callback: ( - data: AuthCallbackParameter, - ) => void | boolean | Filters, + callback: ResourceActionCallback, ): this; on(