@baobox/sdk 0.1.2 → 0.2.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 +34 -7
- package/dist/index.d.ts +122 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +614 -107
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +274 -39
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +1 -1
- package/package.json +23 -6
package/README.md
CHANGED
|
@@ -21,7 +21,8 @@ import { BaoBoxClient } from "@baobox/sdk";
|
|
|
21
21
|
|
|
22
22
|
const bb = new BaoBoxClient({
|
|
23
23
|
endpoint: "https://api.baobox.ai",
|
|
24
|
-
apiKey: process.env.BAOBOX_API_KEY
|
|
24
|
+
apiKey: process.env.BAOBOX_API_KEY,
|
|
25
|
+
adminSecret: process.env.BAOBOX_ADMIN_SECRET,
|
|
25
26
|
});
|
|
26
27
|
|
|
27
28
|
const res = await bb.chat({
|
|
@@ -50,14 +51,37 @@ const res = await bb.chat({
|
|
|
50
51
|
|
|
51
52
|
Returns `{ response, usage: { inputTokens, outputTokens }, sessionId, meta }` where `meta` carries `requestId`, `latencyMs`, `model`, and an optional `trace` array.
|
|
52
53
|
|
|
53
|
-
### Sessions
|
|
54
|
+
### Sessions, Skills, Tools, Eval, Admin
|
|
55
|
+
|
|
56
|
+
BaoBox now splits auth:
|
|
57
|
+
|
|
58
|
+
- `apiKey` is only for `chat`
|
|
59
|
+
- `adminSecret` is for `sessions`, `skills`, `tools`, `eval`, and `admin`
|
|
54
60
|
|
|
55
61
|
```typescript
|
|
56
62
|
const session = await bb.sessions.create({ skillId: "sk_chase" });
|
|
57
63
|
const history = await bb.sessions.messages(session.id);
|
|
64
|
+
const timeline = await bb.sessions.timeline(session.id);
|
|
65
|
+
|
|
66
|
+
const skill = await bb.skills.create({
|
|
67
|
+
name: "Document Chaser",
|
|
68
|
+
systemPrompt: "...",
|
|
69
|
+
tools: ["lookup_client_docs"], // SDK convenience: syncs attachments after create
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const tool = await bb.tools.create({
|
|
73
|
+
name: "lookup_client_docs",
|
|
74
|
+
description: "...",
|
|
75
|
+
inputSchema: { type: "object" },
|
|
76
|
+
handlerType: "http",
|
|
77
|
+
handlerConfig: { url: "https://backend.example.com/tools/lookup" },
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
const run = await bb.eval.run({ skillId: skill.id });
|
|
81
|
+
const stats = await bb.admin.stats.get();
|
|
58
82
|
```
|
|
59
83
|
|
|
60
|
-
###
|
|
84
|
+
### Backward compatibility
|
|
61
85
|
|
|
62
86
|
```typescript
|
|
63
87
|
await bb.admin.skills.upsert({
|
|
@@ -77,10 +101,12 @@ await bb.admin.tools.upsert({
|
|
|
77
101
|
});
|
|
78
102
|
```
|
|
79
103
|
|
|
80
|
-
|
|
104
|
+
`bb.admin.skills.upsert()` now targets `/api/v1/skills` and, when `tools` is provided, reconciles the skill's tool attachments via the dedicated tool-association endpoints. `bb.admin.tools.upsert()` now targets `/api/v1/tools`.
|
|
105
|
+
|
|
106
|
+
### Events (timeline alias)
|
|
81
107
|
|
|
82
108
|
```typescript
|
|
83
|
-
const events = await bb.events.list({ sessionId: "ses_1"
|
|
109
|
+
const events = await bb.events.list({ sessionId: "ses_1" });
|
|
84
110
|
```
|
|
85
111
|
|
|
86
112
|
## Error handling
|
|
@@ -107,8 +133,9 @@ Network failures surface as `BaoBoxError` with `status: 0` and `code: "NETWORK"`
|
|
|
107
133
|
|
|
108
134
|
```typescript
|
|
109
135
|
new BaoBoxClient({
|
|
110
|
-
endpoint: "...",
|
|
111
|
-
apiKey: "...",
|
|
136
|
+
endpoint: "...", // required — BaoBox API base URL
|
|
137
|
+
apiKey: "...", // optional unless using chat
|
|
138
|
+
adminSecret: "...", // optional unless using admin/runtime management APIs
|
|
112
139
|
orgId: "firm_a", // optional, observability tag
|
|
113
140
|
fetch: myFetch, // optional, injects custom fetch (tests / edge runtimes)
|
|
114
141
|
timeoutMs: 30_000, // optional, default 30s. Set 0 to disable.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
|
-
import type { ChatRequest, ChatResponse, Event, EventListRequest, Session, SessionMessage, Skill,
|
|
1
|
+
import type { AdminStats, ApiKey, AttachToolResult, BaoBoxClientOptions, CallLogRow, ChatRequest, ChatResponse, CreateApiKeyRequest, CreateEvalCaseRequest, CreateScheduledTaskRequest, DeleteResult, DetachToolResult, EvalCase, EvalCompare, EvalCompareRequest, EvalFailureRow, EvalFailuresRequest, EvalRunExecution, EvalRunWithResults, EvalStats, EvalStatsRequest, Event, EventListRequest, HealthResponse, RunEvalRequest, ScheduledTask, Session, SessionCreateRequest, SessionMessage, SessionTimeline, SetSkillFileRequest, SetSkillFileResult, SetSkillSecretRequest, SetSkillSecretResult, Skill, SkillCreateRequest, SkillFile, SkillFileSummary, SkillImportRequest, SkillSecretSummary, SkillUpdateRequest, SkillUpsertRequest, SkillWithFiles, Tool, ToolCreateRequest, ToolUpsertRequest, UpdateScheduledTaskRequest, CreatedApiKey } from "./types.js";
|
|
2
2
|
export { BaoBoxError } from "./errors.js";
|
|
3
3
|
export type * from "./types.js";
|
|
4
4
|
export declare class BaoBoxClient {
|
|
5
5
|
private readonly endpoint;
|
|
6
6
|
private readonly apiKey;
|
|
7
|
+
private readonly adminSecret;
|
|
7
8
|
private readonly fetch;
|
|
8
9
|
private readonly timeoutMs;
|
|
10
|
+
readonly health: {
|
|
11
|
+
get: () => Promise<HealthResponse>;
|
|
12
|
+
};
|
|
9
13
|
readonly admin: {
|
|
14
|
+
keys: {
|
|
15
|
+
list: () => Promise<ApiKey[]>;
|
|
16
|
+
create: (req: CreateApiKeyRequest) => Promise<CreatedApiKey>;
|
|
17
|
+
delete: (id: string) => Promise<DeleteResult>;
|
|
18
|
+
};
|
|
19
|
+
stats: {
|
|
20
|
+
get: (req?: {
|
|
21
|
+
since?: string;
|
|
22
|
+
}) => Promise<AdminStats>;
|
|
23
|
+
};
|
|
24
|
+
logs: {
|
|
25
|
+
list: (req?: {
|
|
26
|
+
limit?: number;
|
|
27
|
+
}) => Promise<CallLogRow[]>;
|
|
28
|
+
};
|
|
29
|
+
tasks: {
|
|
30
|
+
list: () => Promise<ScheduledTask[]>;
|
|
31
|
+
create: (req: CreateScheduledTaskRequest) => Promise<ScheduledTask | null>;
|
|
32
|
+
update: (id: string, req: UpdateScheduledTaskRequest) => Promise<ScheduledTask | null>;
|
|
33
|
+
delete: (id: string) => Promise<DeleteResult>;
|
|
34
|
+
};
|
|
10
35
|
skills: {
|
|
11
36
|
upsert: (req: SkillUpsertRequest) => Promise<Skill>;
|
|
12
37
|
};
|
|
@@ -15,21 +40,112 @@ export declare class BaoBoxClient {
|
|
|
15
40
|
};
|
|
16
41
|
};
|
|
17
42
|
readonly sessions: {
|
|
18
|
-
create: (req
|
|
19
|
-
|
|
20
|
-
}) => Promise<Session>;
|
|
43
|
+
create: (req?: SessionCreateRequest) => Promise<Session>;
|
|
44
|
+
get: (sessionId: string) => Promise<Session>;
|
|
21
45
|
messages: (sessionId: string) => Promise<SessionMessage[]>;
|
|
46
|
+
timeline: (sessionId: string) => Promise<SessionTimeline>;
|
|
47
|
+
delete: (sessionId: string) => Promise<DeleteResult>;
|
|
48
|
+
};
|
|
49
|
+
readonly skills: {
|
|
50
|
+
list: () => Promise<Skill[]>;
|
|
51
|
+
get: (skillId: string) => Promise<SkillWithFiles>;
|
|
52
|
+
create: (req: SkillCreateRequest) => Promise<Skill>;
|
|
53
|
+
update: (skillId: string, req: SkillUpdateRequest) => Promise<Skill>;
|
|
54
|
+
save: (req: SkillUpsertRequest) => Promise<Skill>;
|
|
55
|
+
import: (req: SkillImportRequest) => Promise<Skill>;
|
|
56
|
+
delete: (skillId: string) => Promise<DeleteResult>;
|
|
57
|
+
files: {
|
|
58
|
+
list: (skillId: string) => Promise<SkillFileSummary[]>;
|
|
59
|
+
get: (skillId: string, path: string) => Promise<SkillFile>;
|
|
60
|
+
set: (skillId: string, path: string, req: SetSkillFileRequest) => Promise<SetSkillFileResult>;
|
|
61
|
+
delete: (skillId: string, path: string) => Promise<DeleteResult>;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
readonly tools: {
|
|
65
|
+
list: () => Promise<Tool[]>;
|
|
66
|
+
get: (toolId: string) => Promise<Tool>;
|
|
67
|
+
create: (req: ToolCreateRequest) => Promise<Tool>;
|
|
68
|
+
delete: (toolId: string) => Promise<DeleteResult>;
|
|
69
|
+
skills: {
|
|
70
|
+
list: (skillId: string) => Promise<Tool[]>;
|
|
71
|
+
attach: (skillId: string, toolId: string) => Promise<AttachToolResult>;
|
|
72
|
+
detach: (skillId: string, toolId: string) => Promise<DetachToolResult>;
|
|
73
|
+
};
|
|
74
|
+
secrets: {
|
|
75
|
+
list: (skillId: string) => Promise<SkillSecretSummary[]>;
|
|
76
|
+
set: (skillId: string, req: SetSkillSecretRequest) => Promise<SetSkillSecretResult>;
|
|
77
|
+
delete: (skillId: string, key: string) => Promise<DeleteResult>;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
readonly eval: {
|
|
81
|
+
tests: {
|
|
82
|
+
list: (skillId: string) => Promise<EvalCase[]>;
|
|
83
|
+
create: (skillId: string, req: CreateEvalCaseRequest) => Promise<EvalCase>;
|
|
84
|
+
delete: (skillId: string, testId: string) => Promise<DeleteResult>;
|
|
85
|
+
};
|
|
86
|
+
run: (req: RunEvalRequest) => Promise<EvalRunExecution>;
|
|
87
|
+
runs: {
|
|
88
|
+
get: (runId: string) => Promise<EvalRunWithResults>;
|
|
89
|
+
};
|
|
90
|
+
stats: (req?: EvalStatsRequest) => Promise<EvalStats>;
|
|
91
|
+
failures: (req?: EvalFailuresRequest) => Promise<EvalFailureRow[]>;
|
|
92
|
+
compare: (req: EvalCompareRequest) => Promise<EvalCompare>;
|
|
22
93
|
};
|
|
23
94
|
readonly events: {
|
|
24
95
|
list: (req: EventListRequest) => Promise<Event[]>;
|
|
25
96
|
};
|
|
26
97
|
constructor(opts: BaoBoxClientOptions);
|
|
27
98
|
chat(req: ChatRequest): Promise<ChatResponse>;
|
|
99
|
+
private getHealth;
|
|
28
100
|
private createSession;
|
|
101
|
+
private getSession;
|
|
29
102
|
private listMessages;
|
|
30
|
-
private
|
|
31
|
-
private
|
|
103
|
+
private getSessionTimeline;
|
|
104
|
+
private deleteSession;
|
|
105
|
+
private listSkills;
|
|
106
|
+
private getSkill;
|
|
107
|
+
private createSkill;
|
|
108
|
+
private updateSkill;
|
|
109
|
+
private saveSkill;
|
|
110
|
+
private importSkill;
|
|
111
|
+
private deleteSkill;
|
|
112
|
+
private listSkillFiles;
|
|
113
|
+
private getSkillFile;
|
|
114
|
+
private setSkillFile;
|
|
115
|
+
private deleteSkillFile;
|
|
116
|
+
private listTools;
|
|
117
|
+
private getTool;
|
|
118
|
+
private createTool;
|
|
119
|
+
private deleteTool;
|
|
120
|
+
private listSkillTools;
|
|
121
|
+
private attachToolToSkill;
|
|
122
|
+
private detachToolFromSkill;
|
|
123
|
+
private listSkillSecrets;
|
|
124
|
+
private setSkillSecret;
|
|
125
|
+
private deleteSkillSecret;
|
|
126
|
+
private listApiKeys;
|
|
127
|
+
private createApiKey;
|
|
128
|
+
private deleteApiKey;
|
|
129
|
+
private getAdminStats;
|
|
130
|
+
private listAdminLogs;
|
|
131
|
+
private listScheduledTasks;
|
|
132
|
+
private createScheduledTask;
|
|
133
|
+
private updateScheduledTask;
|
|
134
|
+
private deleteScheduledTask;
|
|
135
|
+
private listEvalTests;
|
|
136
|
+
private createEvalTest;
|
|
137
|
+
private deleteEvalTest;
|
|
138
|
+
private runEval;
|
|
139
|
+
private getEvalRun;
|
|
140
|
+
private getEvalStats;
|
|
141
|
+
private listEvalFailures;
|
|
142
|
+
private compareEvalVersions;
|
|
32
143
|
private listEvents;
|
|
144
|
+
private syncSkillTools;
|
|
145
|
+
private requestNoAuth;
|
|
146
|
+
private requestApi;
|
|
147
|
+
private requestAdmin;
|
|
33
148
|
private request;
|
|
149
|
+
private getAuthHeaders;
|
|
34
150
|
}
|
|
35
151
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|