@agent-os-sdk/client 0.1.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 +71 -0
- package/dist/client/AgentOsClient.d.ts +161 -0
- package/dist/client/AgentOsClient.d.ts.map +1 -0
- package/dist/client/AgentOsClient.js +217 -0
- package/dist/client/helpers.d.ts +63 -0
- package/dist/client/helpers.d.ts.map +1 -0
- package/dist/client/helpers.js +55 -0
- package/dist/client/raw.d.ts +138 -0
- package/dist/client/raw.d.ts.map +1 -0
- package/dist/client/raw.js +97 -0
- package/dist/generated/index.d.ts +2 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +1 -0
- package/dist/generated/openapi.d.ts +6810 -0
- package/dist/generated/openapi.d.ts.map +1 -0
- package/dist/generated/openapi.js +5 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/modules/a2a.d.ts +48 -0
- package/dist/modules/a2a.d.ts.map +1 -0
- package/dist/modules/a2a.js +37 -0
- package/dist/modules/agents.d.ts +137 -0
- package/dist/modules/agents.d.ts.map +1 -0
- package/dist/modules/agents.js +154 -0
- package/dist/modules/audit.d.ts +55 -0
- package/dist/modules/audit.d.ts.map +1 -0
- package/dist/modules/audit.js +38 -0
- package/dist/modules/builder.d.ts +65 -0
- package/dist/modules/builder.d.ts.map +1 -0
- package/dist/modules/builder.js +119 -0
- package/dist/modules/checkpoints.d.ts +53 -0
- package/dist/modules/checkpoints.d.ts.map +1 -0
- package/dist/modules/checkpoints.js +39 -0
- package/dist/modules/credentials.d.ts +89 -0
- package/dist/modules/credentials.d.ts.map +1 -0
- package/dist/modules/credentials.js +79 -0
- package/dist/modules/crons.d.ts +72 -0
- package/dist/modules/crons.d.ts.map +1 -0
- package/dist/modules/crons.js +66 -0
- package/dist/modules/dlq.d.ts +60 -0
- package/dist/modules/dlq.d.ts.map +1 -0
- package/dist/modules/dlq.js +56 -0
- package/dist/modules/evaluation.d.ts +119 -0
- package/dist/modules/evaluation.d.ts.map +1 -0
- package/dist/modules/evaluation.js +96 -0
- package/dist/modules/files.d.ts +68 -0
- package/dist/modules/files.d.ts.map +1 -0
- package/dist/modules/files.js +66 -0
- package/dist/modules/graphs.d.ts +51 -0
- package/dist/modules/graphs.d.ts.map +1 -0
- package/dist/modules/graphs.js +29 -0
- package/dist/modules/info.d.ts +27 -0
- package/dist/modules/info.d.ts.map +1 -0
- package/dist/modules/info.js +27 -0
- package/dist/modules/knowledge.d.ts +91 -0
- package/dist/modules/knowledge.d.ts.map +1 -0
- package/dist/modules/knowledge.js +80 -0
- package/dist/modules/mcp.d.ts +39 -0
- package/dist/modules/mcp.d.ts.map +1 -0
- package/dist/modules/mcp.js +38 -0
- package/dist/modules/me.d.ts +27 -0
- package/dist/modules/me.d.ts.map +1 -0
- package/dist/modules/me.js +19 -0
- package/dist/modules/members.d.ts +77 -0
- package/dist/modules/members.d.ts.map +1 -0
- package/dist/modules/members.js +77 -0
- package/dist/modules/metrics.d.ts +16 -0
- package/dist/modules/metrics.d.ts.map +1 -0
- package/dist/modules/metrics.js +24 -0
- package/dist/modules/playground.d.ts +42 -0
- package/dist/modules/playground.d.ts.map +1 -0
- package/dist/modules/playground.js +48 -0
- package/dist/modules/prompts.d.ts +87 -0
- package/dist/modules/prompts.d.ts.map +1 -0
- package/dist/modules/prompts.js +87 -0
- package/dist/modules/runs.d.ts +181 -0
- package/dist/modules/runs.d.ts.map +1 -0
- package/dist/modules/runs.js +187 -0
- package/dist/modules/store.d.ts +37 -0
- package/dist/modules/store.d.ts.map +1 -0
- package/dist/modules/store.js +48 -0
- package/dist/modules/tenants.d.ts +42 -0
- package/dist/modules/tenants.d.ts.map +1 -0
- package/dist/modules/tenants.js +45 -0
- package/dist/modules/threads.d.ts +181 -0
- package/dist/modules/threads.d.ts.map +1 -0
- package/dist/modules/threads.js +178 -0
- package/dist/modules/tools.d.ts +44 -0
- package/dist/modules/tools.d.ts.map +1 -0
- package/dist/modules/tools.js +39 -0
- package/dist/modules/traces.d.ts +79 -0
- package/dist/modules/traces.d.ts.map +1 -0
- package/dist/modules/traces.js +56 -0
- package/dist/modules/triggers.d.ts +71 -0
- package/dist/modules/triggers.d.ts.map +1 -0
- package/dist/modules/triggers.js +67 -0
- package/dist/modules/usage.d.ts +26 -0
- package/dist/modules/usage.d.ts.map +1 -0
- package/dist/modules/usage.js +19 -0
- package/dist/modules/vectorStores.d.ts +97 -0
- package/dist/modules/vectorStores.d.ts.map +1 -0
- package/dist/modules/vectorStores.js +87 -0
- package/dist/modules/workspaces.d.ts +52 -0
- package/dist/modules/workspaces.d.ts.map +1 -0
- package/dist/modules/workspaces.js +59 -0
- package/dist/sse/client.d.ts +62 -0
- package/dist/sse/client.d.ts.map +1 -0
- package/dist/sse/client.js +66 -0
- package/package.json +50 -0
- package/src/client/AgentOsClient.ts +269 -0
- package/src/client/helpers.ts +98 -0
- package/src/client/raw.ts +241 -0
- package/src/generated/index.ts +2 -0
- package/src/generated/openapi.ts +6810 -0
- package/src/generated/swagger.json +8549 -0
- package/src/index.ts +161 -0
- package/src/modules/a2a.ts +64 -0
- package/src/modules/agents.ts +229 -0
- package/src/modules/audit.ts +74 -0
- package/src/modules/builder.ts +166 -0
- package/src/modules/checkpoints.ts +78 -0
- package/src/modules/credentials.ts +144 -0
- package/src/modules/crons.ts +114 -0
- package/src/modules/dlq.ts +93 -0
- package/src/modules/evaluation.ts +189 -0
- package/src/modules/files.ts +112 -0
- package/src/modules/graphs.ts +50 -0
- package/src/modules/info.ts +35 -0
- package/src/modules/knowledge.ts +147 -0
- package/src/modules/mcp.ts +59 -0
- package/src/modules/me.ts +32 -0
- package/src/modules/members.ts +117 -0
- package/src/modules/metrics.ts +27 -0
- package/src/modules/playground.ts +68 -0
- package/src/modules/prompts.ts +147 -0
- package/src/modules/runs.ts +277 -0
- package/src/modules/store.ts +65 -0
- package/src/modules/tenants.ts +67 -0
- package/src/modules/threads.ts +287 -0
- package/src/modules/tools.ts +65 -0
- package/src/modules/traces.ts +117 -0
- package/src/modules/triggers.ts +113 -0
- package/src/modules/usage.ts +32 -0
- package/src/modules/vectorStores.ts +160 -0
- package/src/modules/workspaces.ts +89 -0
- package/src/sse/client.ts +100 -0
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Agent OS SDK
|
|
2
|
+
|
|
3
|
+
Internal typed SDK for Agent OS platform. Generated from Swagger.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
cd sdk/agent-os-sdk
|
|
9
|
+
pnpm install
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Generate Types
|
|
13
|
+
|
|
14
|
+
Ensure backend is running, then:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pnpm generate
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This downloads `swagger.json` and generates TypeScript types.
|
|
21
|
+
|
|
22
|
+
## Build
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pnpm build
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Usage in Frontend
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
import { AgentOsClient } from "@agent-os/sdk";
|
|
32
|
+
|
|
33
|
+
const api = new AgentOsClient({
|
|
34
|
+
baseUrl: import.meta.env.VITE_API_URL,
|
|
35
|
+
tenantId: auth.tenantId,
|
|
36
|
+
workspaceId: auth.workspaceId,
|
|
37
|
+
token: auth.token,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Create and stream a run
|
|
41
|
+
for await (const event of api.runs.createAndStream({
|
|
42
|
+
agent_id: "...",
|
|
43
|
+
input: { message: "Hello" },
|
|
44
|
+
})) {
|
|
45
|
+
console.log(event.type, event.data);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Thread state
|
|
49
|
+
const state = await api.threads.getState(threadId);
|
|
50
|
+
|
|
51
|
+
// Resume HITL
|
|
52
|
+
await api.runs.resume(runId, { approved: true });
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Modules
|
|
56
|
+
|
|
57
|
+
| Module | Description |
|
|
58
|
+
|--------|-------------|
|
|
59
|
+
| `agents` | Agent CRUD, versions, graph |
|
|
60
|
+
| `runs` | Execution, streaming, HITL |
|
|
61
|
+
| `threads` | Conversations, messages, state |
|
|
62
|
+
| `tools` | Tool definitions registry |
|
|
63
|
+
| `knowledge` | Vector stores, RAG |
|
|
64
|
+
| `triggers` | Webhooks, crons |
|
|
65
|
+
| `credentials` | BYOK secrets |
|
|
66
|
+
|
|
67
|
+
## Rule
|
|
68
|
+
|
|
69
|
+
> ❌ **NEVER** use `fetch`, `axios`, or `ky` in frontend.
|
|
70
|
+
>
|
|
71
|
+
> ✅ **ALWAYS** use `AgentOsClient`.
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent OS SDK - Main Client
|
|
3
|
+
*
|
|
4
|
+
* Fully typed API client for Agent OS platform.
|
|
5
|
+
* All HTTP calls must go through this client.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const api = new AgentOsClient({
|
|
10
|
+
* baseUrl: "http://localhost:5000",
|
|
11
|
+
* tenantId: "...",
|
|
12
|
+
* workspaceId: "...",
|
|
13
|
+
* token: "...",
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const run = await api.runs.create({
|
|
17
|
+
* agent_id: "...",
|
|
18
|
+
* input: { message: "Hello" },
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import { type RawClient } from "./raw.js";
|
|
23
|
+
import { AgentsModule } from "../modules/agents.js";
|
|
24
|
+
import { RunsModule } from "../modules/runs.js";
|
|
25
|
+
import { ThreadsModule } from "../modules/threads.js";
|
|
26
|
+
import { ToolsModule } from "../modules/tools.js";
|
|
27
|
+
import { KnowledgeModule } from "../modules/knowledge.js";
|
|
28
|
+
import { TriggersModule } from "../modules/triggers.js";
|
|
29
|
+
import { CredentialsModule } from "../modules/credentials.js";
|
|
30
|
+
import { BuilderModule } from "../modules/builder.js";
|
|
31
|
+
import { MembersModule } from "../modules/members.js";
|
|
32
|
+
import { TenantsModule } from "../modules/tenants.js";
|
|
33
|
+
import { WorkspacesModule } from "../modules/workspaces.js";
|
|
34
|
+
import { PromptsModule } from "../modules/prompts.js";
|
|
35
|
+
import { TracesModule } from "../modules/traces.js";
|
|
36
|
+
import { FilesModule } from "../modules/files.js";
|
|
37
|
+
import { VectorStoresModule } from "../modules/vectorStores.js";
|
|
38
|
+
import { EvaluationModule } from "../modules/evaluation.js";
|
|
39
|
+
import { CheckpointsModule } from "../modules/checkpoints.js";
|
|
40
|
+
import { PlaygroundModule } from "../modules/playground.js";
|
|
41
|
+
import { CronsModule } from "../modules/crons.js";
|
|
42
|
+
import { DlqModule } from "../modules/dlq.js";
|
|
43
|
+
import { StoreModule } from "../modules/store.js";
|
|
44
|
+
import { AuditModule } from "../modules/audit.js";
|
|
45
|
+
import { UsageModule } from "../modules/usage.js";
|
|
46
|
+
import { McpModule } from "../modules/mcp.js";
|
|
47
|
+
import { A2aModule } from "../modules/a2a.js";
|
|
48
|
+
import { MeModule } from "../modules/me.js";
|
|
49
|
+
import { InfoModule } from "../modules/info.js";
|
|
50
|
+
import { MetricsModule } from "../modules/metrics.js";
|
|
51
|
+
import { GraphsModule } from "../modules/graphs.js";
|
|
52
|
+
export type AgentOsClientOptions = {
|
|
53
|
+
/** Base URL of the Agent OS API */
|
|
54
|
+
baseUrl: string;
|
|
55
|
+
/** Tenant ID (multi-tenant) */
|
|
56
|
+
tenantId: string;
|
|
57
|
+
/** Workspace ID */
|
|
58
|
+
workspaceId: string;
|
|
59
|
+
/** Optional auth token */
|
|
60
|
+
token?: string;
|
|
61
|
+
/** Optional member ID (for identity header) */
|
|
62
|
+
memberId?: string;
|
|
63
|
+
/** Custom headers */
|
|
64
|
+
headers?: Record<string, string>;
|
|
65
|
+
/** Kernel base URL (for meta-agent, different from control plane) */
|
|
66
|
+
kernelBaseUrl?: string;
|
|
67
|
+
};
|
|
68
|
+
export declare class AgentOsClient {
|
|
69
|
+
private readonly _client;
|
|
70
|
+
private readonly _baseUrl;
|
|
71
|
+
private readonly _tenantId;
|
|
72
|
+
private readonly _workspaceId;
|
|
73
|
+
private readonly _token?;
|
|
74
|
+
private readonly _memberId?;
|
|
75
|
+
private readonly _customHeaders;
|
|
76
|
+
private readonly _kernelBaseUrl;
|
|
77
|
+
/** Agents API: CRUD, versions, graph */
|
|
78
|
+
readonly agents: AgentsModule;
|
|
79
|
+
/** Runs API: create, stream, cancel, resume, replay */
|
|
80
|
+
readonly runs: RunsModule;
|
|
81
|
+
/** Threads API: conversations, state, messages */
|
|
82
|
+
readonly threads: ThreadsModule;
|
|
83
|
+
/** Tools API: definitions, registry */
|
|
84
|
+
readonly tools: ToolsModule;
|
|
85
|
+
/** Knowledge API: vector stores, RAG */
|
|
86
|
+
readonly knowledge: KnowledgeModule;
|
|
87
|
+
/** Triggers API: webhooks, crons */
|
|
88
|
+
readonly triggers: TriggersModule;
|
|
89
|
+
/** Credentials API: BYOK secrets */
|
|
90
|
+
readonly credentials: CredentialsModule;
|
|
91
|
+
/** Builder API: Meta-agent for AI-assisted agent creation */
|
|
92
|
+
readonly builder: BuilderModule;
|
|
93
|
+
/** Members API: Tenant member management */
|
|
94
|
+
readonly members: MembersModule;
|
|
95
|
+
/** Tenants API: Tenant settings */
|
|
96
|
+
readonly tenants: TenantsModule;
|
|
97
|
+
/** Workspaces API: Workspace management */
|
|
98
|
+
readonly workspaces: WorkspacesModule;
|
|
99
|
+
/** Prompts API: Prompt Hub CMS */
|
|
100
|
+
readonly prompts: PromptsModule;
|
|
101
|
+
/** Traces API: OTEL observability */
|
|
102
|
+
readonly traces: TracesModule;
|
|
103
|
+
/** Files API: S3 file storage */
|
|
104
|
+
readonly files: FilesModule;
|
|
105
|
+
/** VectorStores API: pgvector semantic search */
|
|
106
|
+
readonly vectorStores: VectorStoresModule;
|
|
107
|
+
/** Evaluation API: Datasets & experiments */
|
|
108
|
+
readonly evaluation: EvaluationModule;
|
|
109
|
+
/** Checkpoints API: Time-travel debugging */
|
|
110
|
+
readonly checkpoints: CheckpointsModule;
|
|
111
|
+
/** Playground API: Ephemeral sandbox */
|
|
112
|
+
readonly playground: PlaygroundModule;
|
|
113
|
+
/** Crons API: Cron job scheduling */
|
|
114
|
+
readonly crons: CronsModule;
|
|
115
|
+
/** DLQ API: Dead letter queue */
|
|
116
|
+
readonly dlq: DlqModule;
|
|
117
|
+
/** Store API: Key-value storage */
|
|
118
|
+
readonly store: StoreModule;
|
|
119
|
+
/** Audit API: Audit logs */
|
|
120
|
+
readonly audit: AuditModule;
|
|
121
|
+
/** Usage API: Quotas and usage */
|
|
122
|
+
readonly usage: UsageModule;
|
|
123
|
+
/** MCP API: Model Context Protocol */
|
|
124
|
+
readonly mcp: McpModule;
|
|
125
|
+
/** A2A API: Agent-to-Agent protocol */
|
|
126
|
+
readonly a2a: A2aModule;
|
|
127
|
+
/** Me API: Current user identity */
|
|
128
|
+
readonly me: MeModule;
|
|
129
|
+
/** Info API: Server information */
|
|
130
|
+
readonly info: InfoModule;
|
|
131
|
+
/** Metrics API: Prometheus metrics */
|
|
132
|
+
readonly metrics: MetricsModule;
|
|
133
|
+
/** Graphs API: Validation and introspection */
|
|
134
|
+
readonly graphs: GraphsModule;
|
|
135
|
+
/**
|
|
136
|
+
* Alias for evaluation.listExperiments() - provides first-level access to experiments
|
|
137
|
+
* @example client.experiments.list() // same as client.evaluation.listExperiments()
|
|
138
|
+
*/
|
|
139
|
+
readonly experiments: {
|
|
140
|
+
list: EvaluationModule["listExperiments"];
|
|
141
|
+
get: EvaluationModule["getExperiment"];
|
|
142
|
+
create: EvaluationModule["createExperiment"];
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Alias for agents.listVersions() - provides first-level access to agent versions
|
|
146
|
+
*/
|
|
147
|
+
readonly agentVersions: {
|
|
148
|
+
list: (agentId: string) => ReturnType<AgentsModule["listVersions"]>;
|
|
149
|
+
get: (agentId: string, versionId: string) => ReturnType<AgentsModule["getVersion"]>;
|
|
150
|
+
create: (agentId: string, body: Parameters<AgentsModule["createVersion"]>[1]) => ReturnType<AgentsModule["createVersion"]>;
|
|
151
|
+
};
|
|
152
|
+
constructor(options: AgentOsClientOptions);
|
|
153
|
+
private _getHeaders;
|
|
154
|
+
/** Current tenant ID */
|
|
155
|
+
get tenantId(): string;
|
|
156
|
+
/** Current workspace ID */
|
|
157
|
+
get workspaceId(): string;
|
|
158
|
+
/** Raw HTTP client (use modules instead) */
|
|
159
|
+
get raw(): RawClient;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=AgentOsClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentOsClient.d.ts","sourceRoot":"","sources":["../../src/client/AgentOsClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent OS SDK - Main Client
|
|
3
|
+
*
|
|
4
|
+
* Fully typed API client for Agent OS platform.
|
|
5
|
+
* All HTTP calls must go through this client.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const api = new AgentOsClient({
|
|
10
|
+
* baseUrl: "http://localhost:5000",
|
|
11
|
+
* tenantId: "...",
|
|
12
|
+
* workspaceId: "...",
|
|
13
|
+
* token: "...",
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const run = await api.runs.create({
|
|
17
|
+
* agent_id: "...",
|
|
18
|
+
* input: { message: "Hello" },
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import { createRawClient } from "./raw.js";
|
|
23
|
+
import { AgentsModule } from "../modules/agents.js";
|
|
24
|
+
import { RunsModule } from "../modules/runs.js";
|
|
25
|
+
import { ThreadsModule } from "../modules/threads.js";
|
|
26
|
+
import { ToolsModule } from "../modules/tools.js";
|
|
27
|
+
import { KnowledgeModule } from "../modules/knowledge.js";
|
|
28
|
+
import { TriggersModule } from "../modules/triggers.js";
|
|
29
|
+
import { CredentialsModule } from "../modules/credentials.js";
|
|
30
|
+
import { BuilderModule } from "../modules/builder.js";
|
|
31
|
+
import { MembersModule } from "../modules/members.js";
|
|
32
|
+
import { TenantsModule } from "../modules/tenants.js";
|
|
33
|
+
import { WorkspacesModule } from "../modules/workspaces.js";
|
|
34
|
+
// New modules
|
|
35
|
+
import { PromptsModule } from "../modules/prompts.js";
|
|
36
|
+
import { TracesModule } from "../modules/traces.js";
|
|
37
|
+
import { FilesModule } from "../modules/files.js";
|
|
38
|
+
import { VectorStoresModule } from "../modules/vectorStores.js";
|
|
39
|
+
import { EvaluationModule } from "../modules/evaluation.js";
|
|
40
|
+
import { CheckpointsModule } from "../modules/checkpoints.js";
|
|
41
|
+
import { PlaygroundModule } from "../modules/playground.js";
|
|
42
|
+
import { CronsModule } from "../modules/crons.js";
|
|
43
|
+
import { DlqModule } from "../modules/dlq.js";
|
|
44
|
+
import { StoreModule } from "../modules/store.js";
|
|
45
|
+
import { AuditModule } from "../modules/audit.js";
|
|
46
|
+
import { UsageModule } from "../modules/usage.js";
|
|
47
|
+
import { McpModule } from "../modules/mcp.js";
|
|
48
|
+
import { A2aModule } from "../modules/a2a.js";
|
|
49
|
+
import { MeModule } from "../modules/me.js";
|
|
50
|
+
import { InfoModule } from "../modules/info.js";
|
|
51
|
+
import { MetricsModule } from "../modules/metrics.js";
|
|
52
|
+
import { GraphsModule } from "../modules/graphs.js";
|
|
53
|
+
export class AgentOsClient {
|
|
54
|
+
_client;
|
|
55
|
+
_baseUrl;
|
|
56
|
+
_tenantId;
|
|
57
|
+
_workspaceId;
|
|
58
|
+
_token;
|
|
59
|
+
_memberId;
|
|
60
|
+
_customHeaders;
|
|
61
|
+
_kernelBaseUrl;
|
|
62
|
+
// Core modules
|
|
63
|
+
/** Agents API: CRUD, versions, graph */
|
|
64
|
+
agents;
|
|
65
|
+
/** Runs API: create, stream, cancel, resume, replay */
|
|
66
|
+
runs;
|
|
67
|
+
/** Threads API: conversations, state, messages */
|
|
68
|
+
threads;
|
|
69
|
+
/** Tools API: definitions, registry */
|
|
70
|
+
tools;
|
|
71
|
+
/** Knowledge API: vector stores, RAG */
|
|
72
|
+
knowledge;
|
|
73
|
+
/** Triggers API: webhooks, crons */
|
|
74
|
+
triggers;
|
|
75
|
+
/** Credentials API: BYOK secrets */
|
|
76
|
+
credentials;
|
|
77
|
+
/** Builder API: Meta-agent for AI-assisted agent creation */
|
|
78
|
+
builder;
|
|
79
|
+
/** Members API: Tenant member management */
|
|
80
|
+
members;
|
|
81
|
+
/** Tenants API: Tenant settings */
|
|
82
|
+
tenants;
|
|
83
|
+
/** Workspaces API: Workspace management */
|
|
84
|
+
workspaces;
|
|
85
|
+
// New modules
|
|
86
|
+
/** Prompts API: Prompt Hub CMS */
|
|
87
|
+
prompts;
|
|
88
|
+
/** Traces API: OTEL observability */
|
|
89
|
+
traces;
|
|
90
|
+
/** Files API: S3 file storage */
|
|
91
|
+
files;
|
|
92
|
+
/** VectorStores API: pgvector semantic search */
|
|
93
|
+
vectorStores;
|
|
94
|
+
/** Evaluation API: Datasets & experiments */
|
|
95
|
+
evaluation;
|
|
96
|
+
/** Checkpoints API: Time-travel debugging */
|
|
97
|
+
checkpoints;
|
|
98
|
+
/** Playground API: Ephemeral sandbox */
|
|
99
|
+
playground;
|
|
100
|
+
/** Crons API: Cron job scheduling */
|
|
101
|
+
crons;
|
|
102
|
+
/** DLQ API: Dead letter queue */
|
|
103
|
+
dlq;
|
|
104
|
+
/** Store API: Key-value storage */
|
|
105
|
+
store;
|
|
106
|
+
/** Audit API: Audit logs */
|
|
107
|
+
audit;
|
|
108
|
+
/** Usage API: Quotas and usage */
|
|
109
|
+
usage;
|
|
110
|
+
/** MCP API: Model Context Protocol */
|
|
111
|
+
mcp;
|
|
112
|
+
/** A2A API: Agent-to-Agent protocol */
|
|
113
|
+
a2a;
|
|
114
|
+
/** Me API: Current user identity */
|
|
115
|
+
me;
|
|
116
|
+
/** Info API: Server information */
|
|
117
|
+
info;
|
|
118
|
+
/** Metrics API: Prometheus metrics */
|
|
119
|
+
metrics;
|
|
120
|
+
/** Graphs API: Validation and introspection */
|
|
121
|
+
graphs;
|
|
122
|
+
// ======================== Convenience Aliases ========================
|
|
123
|
+
/**
|
|
124
|
+
* Alias for evaluation.listExperiments() - provides first-level access to experiments
|
|
125
|
+
* @example client.experiments.list() // same as client.evaluation.listExperiments()
|
|
126
|
+
*/
|
|
127
|
+
experiments;
|
|
128
|
+
/**
|
|
129
|
+
* Alias for agents.listVersions() - provides first-level access to agent versions
|
|
130
|
+
*/
|
|
131
|
+
agentVersions;
|
|
132
|
+
constructor(options) {
|
|
133
|
+
this._baseUrl = options.baseUrl;
|
|
134
|
+
this._kernelBaseUrl = options.kernelBaseUrl ?? options.baseUrl.replace(':5000', ':8001');
|
|
135
|
+
this._tenantId = options.tenantId;
|
|
136
|
+
this._workspaceId = options.workspaceId;
|
|
137
|
+
this._token = options.token;
|
|
138
|
+
this._memberId = options.memberId;
|
|
139
|
+
this._customHeaders = options.headers ?? {};
|
|
140
|
+
this._client = createRawClient({
|
|
141
|
+
baseUrl: options.baseUrl,
|
|
142
|
+
headers: this._getHeaders(),
|
|
143
|
+
});
|
|
144
|
+
const getHeaders = () => this._getHeaders();
|
|
145
|
+
const getWorkspaceId = () => this._workspaceId;
|
|
146
|
+
const getTenantId = () => this._tenantId;
|
|
147
|
+
// Initialize core modules
|
|
148
|
+
this.agents = new AgentsModule(this._client, getHeaders);
|
|
149
|
+
this.runs = new RunsModule(this._client, this._baseUrl, getHeaders);
|
|
150
|
+
this.threads = new ThreadsModule(this._client, getHeaders);
|
|
151
|
+
this.tools = new ToolsModule(this._client, getHeaders);
|
|
152
|
+
this.knowledge = new KnowledgeModule(this._client, getWorkspaceId, getHeaders);
|
|
153
|
+
this.triggers = new TriggersModule(this._client, getHeaders);
|
|
154
|
+
this.credentials = new CredentialsModule(this._client, getWorkspaceId, getHeaders);
|
|
155
|
+
this.builder = new BuilderModule(this._kernelBaseUrl, getHeaders);
|
|
156
|
+
this.members = new MembersModule(this._client, getHeaders);
|
|
157
|
+
this.tenants = new TenantsModule(this._client, getHeaders);
|
|
158
|
+
this.workspaces = new WorkspacesModule(this._client, getTenantId, getHeaders);
|
|
159
|
+
// Initialize new modules
|
|
160
|
+
this.prompts = new PromptsModule(this._client, getHeaders);
|
|
161
|
+
this.traces = new TracesModule(this._client, getHeaders);
|
|
162
|
+
this.files = new FilesModule(this._client, getHeaders);
|
|
163
|
+
this.vectorStores = new VectorStoresModule(this._client, getHeaders);
|
|
164
|
+
this.evaluation = new EvaluationModule(this._client, getHeaders);
|
|
165
|
+
this.checkpoints = new CheckpointsModule(this._client, getHeaders);
|
|
166
|
+
this.playground = new PlaygroundModule(this._client, getHeaders);
|
|
167
|
+
this.crons = new CronsModule(this._client, getHeaders);
|
|
168
|
+
this.dlq = new DlqModule(this._client, getHeaders);
|
|
169
|
+
this.store = new StoreModule(this._client, getHeaders);
|
|
170
|
+
this.audit = new AuditModule(this._client, getHeaders);
|
|
171
|
+
this.usage = new UsageModule(this._client, getHeaders);
|
|
172
|
+
this.mcp = new McpModule(this._client, getHeaders);
|
|
173
|
+
this.a2a = new A2aModule(this._client, getHeaders);
|
|
174
|
+
this.me = new MeModule(this._client, getHeaders);
|
|
175
|
+
this.info = new InfoModule(this._client, getHeaders);
|
|
176
|
+
this.metrics = new MetricsModule(this._baseUrl, getHeaders);
|
|
177
|
+
this.graphs = new GraphsModule(this._client, getHeaders);
|
|
178
|
+
// Initialize convenience aliases
|
|
179
|
+
this.experiments = {
|
|
180
|
+
list: this.evaluation.listExperiments.bind(this.evaluation),
|
|
181
|
+
get: this.evaluation.getExperiment.bind(this.evaluation),
|
|
182
|
+
create: this.evaluation.createExperiment.bind(this.evaluation),
|
|
183
|
+
};
|
|
184
|
+
this.agentVersions = {
|
|
185
|
+
list: (agentId) => this.agents.listVersions(agentId),
|
|
186
|
+
get: (agentId, versionId) => this.agents.getVersion(agentId, versionId),
|
|
187
|
+
create: (agentId, body) => this.agents.createVersion(agentId, body),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
_getHeaders() {
|
|
191
|
+
const headers = {
|
|
192
|
+
"Content-Type": "application/json",
|
|
193
|
+
"X-Tenant-Id": this._tenantId,
|
|
194
|
+
"X-Workspace-Id": this._workspaceId,
|
|
195
|
+
...this._customHeaders,
|
|
196
|
+
};
|
|
197
|
+
if (this._token) {
|
|
198
|
+
headers["Authorization"] = `Bearer ${this._token}`;
|
|
199
|
+
}
|
|
200
|
+
if (this._memberId) {
|
|
201
|
+
headers["X-Member-Id"] = this._memberId;
|
|
202
|
+
}
|
|
203
|
+
return headers;
|
|
204
|
+
}
|
|
205
|
+
/** Current tenant ID */
|
|
206
|
+
get tenantId() {
|
|
207
|
+
return this._tenantId;
|
|
208
|
+
}
|
|
209
|
+
/** Current workspace ID */
|
|
210
|
+
get workspaceId() {
|
|
211
|
+
return this._workspaceId;
|
|
212
|
+
}
|
|
213
|
+
/** Raw HTTP client (use modules instead) */
|
|
214
|
+
get raw() {
|
|
215
|
+
return this._client;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Helper Types and Functions
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for working with API responses.
|
|
5
|
+
*/
|
|
6
|
+
import type { APIResponse } from "./raw.js";
|
|
7
|
+
/**
|
|
8
|
+
* Standard pagination parameters used across all list endpoints.
|
|
9
|
+
* Extends Record to be compatible with query parameter types.
|
|
10
|
+
*/
|
|
11
|
+
export interface PaginationParams extends Record<string, unknown> {
|
|
12
|
+
/** Maximum number of items to return (default: 20) */
|
|
13
|
+
limit?: number;
|
|
14
|
+
/** Number of items to skip (default: 0) */
|
|
15
|
+
offset?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Paginated list response wrapper.
|
|
19
|
+
*/
|
|
20
|
+
export interface PaginatedResponse<T> {
|
|
21
|
+
items: T[];
|
|
22
|
+
total: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* SDK-specific error class with structured error data.
|
|
26
|
+
*/
|
|
27
|
+
export declare class SDKError extends Error {
|
|
28
|
+
readonly code: string;
|
|
29
|
+
readonly status: number;
|
|
30
|
+
readonly details?: unknown;
|
|
31
|
+
constructor(response: APIResponse<unknown>);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Unwraps an APIResponse, returning the data directly or throwing on error.
|
|
35
|
+
* Use this when you want the cleaner "throws on error" pattern.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* // Instead of:
|
|
40
|
+
* const { data, error } = await client.agents.list();
|
|
41
|
+
* if (error) throw new Error(error.message);
|
|
42
|
+
*
|
|
43
|
+
* // Use:
|
|
44
|
+
* const agents = await unwrap(client.agents.list());
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function unwrap<T>(promise: Promise<APIResponse<T>>): Promise<T>;
|
|
48
|
+
/**
|
|
49
|
+
* Type helper for unwrapped responses.
|
|
50
|
+
*/
|
|
51
|
+
export type Unwrapped<T> = T extends APIResponse<infer U> ? U : never;
|
|
52
|
+
export type Result<T, E = SDKError> = {
|
|
53
|
+
success: true;
|
|
54
|
+
data: T;
|
|
55
|
+
} | {
|
|
56
|
+
success: false;
|
|
57
|
+
error: E;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Converts an APIResponse to a Result type for pattern matching.
|
|
61
|
+
*/
|
|
62
|
+
export declare function toResult<T>(promise: Promise<APIResponse<T>>): Promise<Result<T>>;
|
|
63
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/client/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEf,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC;CAQ7C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAM5E;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAMtE,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,IAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAEnC;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAMtF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Helper Types and Functions
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for working with API responses.
|
|
5
|
+
*/
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Error Handling
|
|
8
|
+
// ============================================================================
|
|
9
|
+
/**
|
|
10
|
+
* SDK-specific error class with structured error data.
|
|
11
|
+
*/
|
|
12
|
+
export class SDKError extends Error {
|
|
13
|
+
code;
|
|
14
|
+
status;
|
|
15
|
+
details;
|
|
16
|
+
constructor(response) {
|
|
17
|
+
const message = response.error?.message || `HTTP ${response.response.status}`;
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = "SDKError";
|
|
20
|
+
this.code = response.error?.code || `HTTP_${response.response.status}`;
|
|
21
|
+
this.status = response.response.status;
|
|
22
|
+
this.details = response.error?.details;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Unwraps an APIResponse, returning the data directly or throwing on error.
|
|
27
|
+
* Use this when you want the cleaner "throws on error" pattern.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* // Instead of:
|
|
32
|
+
* const { data, error } = await client.agents.list();
|
|
33
|
+
* if (error) throw new Error(error.message);
|
|
34
|
+
*
|
|
35
|
+
* // Use:
|
|
36
|
+
* const agents = await unwrap(client.agents.list());
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export async function unwrap(promise) {
|
|
40
|
+
const result = await promise;
|
|
41
|
+
if (result.error || !result.data) {
|
|
42
|
+
throw new SDKError(result);
|
|
43
|
+
}
|
|
44
|
+
return result.data;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Converts an APIResponse to a Result type for pattern matching.
|
|
48
|
+
*/
|
|
49
|
+
export async function toResult(promise) {
|
|
50
|
+
const result = await promise;
|
|
51
|
+
if (result.error || !result.data) {
|
|
52
|
+
return { success: false, error: new SDKError(result) };
|
|
53
|
+
}
|
|
54
|
+
return { success: true, data: result.data };
|
|
55
|
+
}
|