@indemn/cli 1.0.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/.claude-plugin/plugin.json +13 -0
- package/.mcp.json +9 -0
- package/README.md +225 -0
- package/dist/cli/agents.d.ts +3 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +187 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/auth.d.ts +3 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +161 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/chat.d.ts +3 -0
- package/dist/cli/chat.d.ts.map +1 -0
- package/dist/cli/chat.js +142 -0
- package/dist/cli/chat.js.map +1 -0
- package/dist/cli/config.d.ts +3 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +119 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/eval.d.ts +3 -0
- package/dist/cli/eval.d.ts.map +1 -0
- package/dist/cli/eval.js +717 -0
- package/dist/cli/eval.js.map +1 -0
- package/dist/cli/functions.d.ts +3 -0
- package/dist/cli/functions.d.ts.map +1 -0
- package/dist/cli/functions.js +346 -0
- package/dist/cli/functions.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +64 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/kb.d.ts +3 -0
- package/dist/cli/kb.d.ts.map +1 -0
- package/dist/cli/kb.js +377 -0
- package/dist/cli/kb.js.map +1 -0
- package/dist/cli/utils/output.d.ts +6 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +36 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +15 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +4 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +814 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/sdk/agents.d.ts +13 -0
- package/dist/sdk/agents.d.ts.map +1 -0
- package/dist/sdk/agents.js +27 -0
- package/dist/sdk/agents.js.map +1 -0
- package/dist/sdk/auth.d.ts +18 -0
- package/dist/sdk/auth.d.ts.map +1 -0
- package/dist/sdk/auth.js +98 -0
- package/dist/sdk/auth.js.map +1 -0
- package/dist/sdk/chat.d.ts +17 -0
- package/dist/sdk/chat.d.ts.map +1 -0
- package/dist/sdk/chat.js +113 -0
- package/dist/sdk/chat.js.map +1 -0
- package/dist/sdk/client.d.ts +36 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +219 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/config.d.ts +11 -0
- package/dist/sdk/config.d.ts.map +1 -0
- package/dist/sdk/config.js +20 -0
- package/dist/sdk/config.js.map +1 -0
- package/dist/sdk/eval.d.ts +13 -0
- package/dist/sdk/eval.d.ts.map +1 -0
- package/dist/sdk/eval.js +36 -0
- package/dist/sdk/eval.js.map +1 -0
- package/dist/sdk/functions.d.ts +30 -0
- package/dist/sdk/functions.d.ts.map +1 -0
- package/dist/sdk/functions.js +59 -0
- package/dist/sdk/functions.js.map +1 -0
- package/dist/sdk/index.d.ts +12 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +12 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/kb.d.ts +30 -0
- package/dist/sdk/kb.d.ts.map +1 -0
- package/dist/sdk/kb.js +102 -0
- package/dist/sdk/kb.js.map +1 -0
- package/dist/sdk/rubrics.d.ts +14 -0
- package/dist/sdk/rubrics.d.ts.map +1 -0
- package/dist/sdk/rubrics.js +29 -0
- package/dist/sdk/rubrics.js.map +1 -0
- package/dist/sdk/test-sets.d.ts +14 -0
- package/dist/sdk/test-sets.d.ts.map +1 -0
- package/dist/sdk/test-sets.js +29 -0
- package/dist/sdk/test-sets.js.map +1 -0
- package/dist/sdk/types.d.ts +305 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +3 -0
- package/dist/sdk/types.js.map +1 -0
- package/package.json +40 -0
- package/skills/agent-setup/SKILL.md +131 -0
- package/skills/eval-orchestration/SKILL.md +257 -0
- package/skills/rubric-creation/SKILL.md +163 -0
- package/skills/test-set-creation/SKILL.md +250 -0
- package/src/cli/agents.ts +206 -0
- package/src/cli/auth.ts +170 -0
- package/src/cli/chat.ts +161 -0
- package/src/cli/config.ts +131 -0
- package/src/cli/eval.ts +750 -0
- package/src/cli/functions.ts +330 -0
- package/src/cli/index.ts +68 -0
- package/src/cli/kb.ts +412 -0
- package/src/cli/utils/output.ts +42 -0
- package/src/mcp/server.ts +17 -0
- package/src/mcp/tools.ts +971 -0
- package/src/sdk/agents.ts +47 -0
- package/src/sdk/auth.ts +132 -0
- package/src/sdk/chat.ts +133 -0
- package/src/sdk/client.ts +238 -0
- package/src/sdk/config.ts +28 -0
- package/src/sdk/eval.ts +57 -0
- package/src/sdk/functions.ts +103 -0
- package/src/sdk/index.ts +11 -0
- package/src/sdk/kb.ts +183 -0
- package/src/sdk/rubrics.ts +35 -0
- package/src/sdk/test-sets.ts +35 -0
- package/src/sdk/types.ts +347 -0
- package/test/fixtures/test-rubric.json +66 -0
- package/test/fixtures/test-testset.json +55 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import Conf from 'conf';
|
|
2
|
+
const DEFAULT_HOSTS = {
|
|
3
|
+
dev: {
|
|
4
|
+
copilot: 'https://devcopilot.indemn.ai/api',
|
|
5
|
+
evaluations: 'https://devevaluations.indemn.ai',
|
|
6
|
+
middleware: 'https://devproxy.indemn.ai',
|
|
7
|
+
},
|
|
8
|
+
production: {
|
|
9
|
+
copilot: 'https://copilot.indemn.ai/api',
|
|
10
|
+
evaluations: 'https://evaluations.indemn.ai',
|
|
11
|
+
middleware: 'https://proxy.indemn.ai',
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
export class IndemnClient {
|
|
15
|
+
apiKey;
|
|
16
|
+
orgId;
|
|
17
|
+
environment;
|
|
18
|
+
hosts;
|
|
19
|
+
constructor(opts) {
|
|
20
|
+
// Priority: explicit opts > env vars > config file
|
|
21
|
+
const config = IndemnClient.loadConfig();
|
|
22
|
+
this.apiKey = opts?.apiKey || process.env.INDEMN_API_KEY || config?.api_key || '';
|
|
23
|
+
this.orgId = opts?.orgId || process.env.INDEMN_ORG_ID || config?.org_id || '';
|
|
24
|
+
this.environment = opts?.environment || process.env.INDEMN_ENV || config?.environment || 'dev';
|
|
25
|
+
const defaultHosts = DEFAULT_HOSTS[this.environment];
|
|
26
|
+
const configHosts = config?.hosts?.[this.environment];
|
|
27
|
+
this.hosts = {
|
|
28
|
+
copilot: process.env.INDEMN_COPILOT_URL || configHosts?.copilot || defaultHosts.copilot,
|
|
29
|
+
evaluations: process.env.INDEMN_EVALS_URL || configHosts?.evaluations || defaultHosts.evaluations,
|
|
30
|
+
middleware: process.env.INDEMN_MIDDLEWARE_URL || configHosts?.middleware || defaultHosts.middleware,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
static getConfigStore() {
|
|
34
|
+
return new Conf({
|
|
35
|
+
projectName: 'indemn',
|
|
36
|
+
configName: 'config',
|
|
37
|
+
cwd: `${process.env.HOME}/.indemn`,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
static loadConfig() {
|
|
41
|
+
try {
|
|
42
|
+
const store = IndemnClient.getConfigStore();
|
|
43
|
+
const apiKey = store.get('api_key');
|
|
44
|
+
if (!apiKey)
|
|
45
|
+
return null;
|
|
46
|
+
return {
|
|
47
|
+
api_key: apiKey,
|
|
48
|
+
org_id: store.get('org_id', ''),
|
|
49
|
+
user_id: store.get('user_id', ''),
|
|
50
|
+
environment: store.get('environment', 'dev'),
|
|
51
|
+
hosts: store.get('hosts', DEFAULT_HOSTS),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
static saveConfig(config) {
|
|
59
|
+
const store = IndemnClient.getConfigStore();
|
|
60
|
+
for (const [key, value] of Object.entries(config)) {
|
|
61
|
+
store.set(key, value);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
static clearConfig() {
|
|
65
|
+
const store = IndemnClient.getConfigStore();
|
|
66
|
+
store.clear();
|
|
67
|
+
}
|
|
68
|
+
getEnvironment() { return this.environment; }
|
|
69
|
+
getOrgId() { return this.orgId; }
|
|
70
|
+
getApiKey() { return this.apiKey; }
|
|
71
|
+
getHosts() { return this.hosts; }
|
|
72
|
+
ensureAuth() {
|
|
73
|
+
if (!this.apiKey) {
|
|
74
|
+
throw new Error('Not authenticated. Run `indemn login` first.');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
buildCopilotUrl(path) {
|
|
78
|
+
// Inject org_id into path templates
|
|
79
|
+
const resolvedPath = path.replace(':org_id', this.orgId);
|
|
80
|
+
return `${this.hosts.copilot}${resolvedPath}`;
|
|
81
|
+
}
|
|
82
|
+
buildEvalsUrl(path) {
|
|
83
|
+
return `${this.hosts.evaluations}${path}`;
|
|
84
|
+
}
|
|
85
|
+
// Copilot Server requests (with /api/ prefix and org_id injection)
|
|
86
|
+
async copilotGet(path, query) {
|
|
87
|
+
this.ensureAuth();
|
|
88
|
+
const url = new URL(this.buildCopilotUrl(path));
|
|
89
|
+
if (query) {
|
|
90
|
+
for (const [k, v] of Object.entries(query)) {
|
|
91
|
+
if (v !== undefined && v !== null)
|
|
92
|
+
url.searchParams.set(k, v);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const res = await fetch(url.toString(), {
|
|
96
|
+
headers: {
|
|
97
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
98
|
+
'Content-Type': 'application/json',
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
return this.handleCopilotResponse(res);
|
|
102
|
+
}
|
|
103
|
+
async copilotPost(path, body) {
|
|
104
|
+
this.ensureAuth();
|
|
105
|
+
const res = await fetch(this.buildCopilotUrl(path), {
|
|
106
|
+
method: 'POST',
|
|
107
|
+
headers: {
|
|
108
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
109
|
+
'Content-Type': 'application/json',
|
|
110
|
+
},
|
|
111
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
112
|
+
});
|
|
113
|
+
return this.handleCopilotResponse(res);
|
|
114
|
+
}
|
|
115
|
+
async copilotPut(path, body) {
|
|
116
|
+
this.ensureAuth();
|
|
117
|
+
const res = await fetch(this.buildCopilotUrl(path), {
|
|
118
|
+
method: 'PUT',
|
|
119
|
+
headers: {
|
|
120
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
121
|
+
'Content-Type': 'application/json',
|
|
122
|
+
},
|
|
123
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
124
|
+
});
|
|
125
|
+
return this.handleCopilotResponse(res);
|
|
126
|
+
}
|
|
127
|
+
async copilotDelete(path) {
|
|
128
|
+
this.ensureAuth();
|
|
129
|
+
const res = await fetch(this.buildCopilotUrl(path), {
|
|
130
|
+
method: 'DELETE',
|
|
131
|
+
headers: {
|
|
132
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
133
|
+
'Content-Type': 'application/json',
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
return this.handleCopilotResponse(res);
|
|
137
|
+
}
|
|
138
|
+
// Evaluations Service requests (no /api/ prefix, no org_id, no auth in Phase 1)
|
|
139
|
+
async evalsGet(path, query) {
|
|
140
|
+
const url = new URL(this.buildEvalsUrl(path));
|
|
141
|
+
if (query) {
|
|
142
|
+
for (const [k, v] of Object.entries(query)) {
|
|
143
|
+
if (v !== undefined && v !== null)
|
|
144
|
+
url.searchParams.set(k, v);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
const res = await fetch(url.toString(), {
|
|
148
|
+
headers: { 'Content-Type': 'application/json' },
|
|
149
|
+
});
|
|
150
|
+
return this.handleEvalsResponse(res);
|
|
151
|
+
}
|
|
152
|
+
async evalsPost(path, body) {
|
|
153
|
+
const res = await fetch(this.buildEvalsUrl(path), {
|
|
154
|
+
method: 'POST',
|
|
155
|
+
headers: { 'Content-Type': 'application/json' },
|
|
156
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
157
|
+
});
|
|
158
|
+
return this.handleEvalsResponse(res);
|
|
159
|
+
}
|
|
160
|
+
async evalsPut(path, body) {
|
|
161
|
+
const res = await fetch(this.buildEvalsUrl(path), {
|
|
162
|
+
method: 'PUT',
|
|
163
|
+
headers: { 'Content-Type': 'application/json' },
|
|
164
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
165
|
+
});
|
|
166
|
+
return this.handleEvalsResponse(res);
|
|
167
|
+
}
|
|
168
|
+
async evalsDelete(path) {
|
|
169
|
+
const res = await fetch(this.buildEvalsUrl(path), {
|
|
170
|
+
method: 'DELETE',
|
|
171
|
+
headers: { 'Content-Type': 'application/json' },
|
|
172
|
+
});
|
|
173
|
+
return this.handleEvalsResponse(res);
|
|
174
|
+
}
|
|
175
|
+
// Unauthenticated Copilot Server requests (for login flow)
|
|
176
|
+
async copilotPostUnauth(path, body, headers) {
|
|
177
|
+
const res = await fetch(`${this.hosts.copilot}${path}`, {
|
|
178
|
+
method: 'POST',
|
|
179
|
+
headers: {
|
|
180
|
+
'Content-Type': 'application/json',
|
|
181
|
+
...headers,
|
|
182
|
+
},
|
|
183
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
184
|
+
});
|
|
185
|
+
return this.handleCopilotResponse(res);
|
|
186
|
+
}
|
|
187
|
+
async handleCopilotResponse(res) {
|
|
188
|
+
if (res.status === 401) {
|
|
189
|
+
throw new Error('Authentication failed. Run `indemn login` to re-authenticate.');
|
|
190
|
+
}
|
|
191
|
+
if (res.status === 403) {
|
|
192
|
+
throw new Error('Access denied. You may not have permission for this operation.');
|
|
193
|
+
}
|
|
194
|
+
if (res.status === 404) {
|
|
195
|
+
throw new Error('Resource not found.');
|
|
196
|
+
}
|
|
197
|
+
if (!res.ok) {
|
|
198
|
+
const text = await res.text();
|
|
199
|
+
throw new Error(`API error (${res.status}): ${text}`);
|
|
200
|
+
}
|
|
201
|
+
const json = await res.json();
|
|
202
|
+
// Copilot Server wraps responses in { success, data }
|
|
203
|
+
if (json.success !== undefined) {
|
|
204
|
+
if (!json.success) {
|
|
205
|
+
throw new Error(json.msg || 'API request failed');
|
|
206
|
+
}
|
|
207
|
+
return (json.data !== undefined ? json.data : json);
|
|
208
|
+
}
|
|
209
|
+
return json;
|
|
210
|
+
}
|
|
211
|
+
async handleEvalsResponse(res) {
|
|
212
|
+
if (!res.ok) {
|
|
213
|
+
const text = await res.text();
|
|
214
|
+
throw new Error(`Evaluations API error (${res.status}): ${text}`);
|
|
215
|
+
}
|
|
216
|
+
return res.json();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IndemnClient } from './client.js';
|
|
2
|
+
import type { BotConfiguration, SetConfigInput } from './types.js';
|
|
3
|
+
export declare class ConfigSDK {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: IndemnClient);
|
|
6
|
+
getConfig(agentId: string): Promise<BotConfiguration>;
|
|
7
|
+
setConfig(agentId: string, data: SetConfigInput): Promise<BotConfiguration>;
|
|
8
|
+
getPrompt(agentId: string): Promise<string | undefined>;
|
|
9
|
+
setPrompt(agentId: string, prompt: string): Promise<BotConfiguration>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/sdk/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,SAAS;IACR,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMrD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO3E,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKvD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG5E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export class ConfigSDK {
|
|
2
|
+
client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
async getConfig(agentId) {
|
|
7
|
+
return this.client.copilotGet(`/organization/:org_id/ai-studio/bots/${agentId}/configurations`);
|
|
8
|
+
}
|
|
9
|
+
async setConfig(agentId, data) {
|
|
10
|
+
return this.client.copilotPut(`/organization/:org_id/ai-studio/bots/${agentId}/configurations`, data);
|
|
11
|
+
}
|
|
12
|
+
async getPrompt(agentId) {
|
|
13
|
+
const config = await this.getConfig(agentId);
|
|
14
|
+
return config.ai_config?.system_prompt;
|
|
15
|
+
}
|
|
16
|
+
async setPrompt(agentId, prompt) {
|
|
17
|
+
return this.setConfig(agentId, { system_prompt: prompt });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/sdk/config.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,SAAS;IACA;IAApB,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE5C,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAC3B,wCAAwC,OAAO,iBAAiB,CACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,IAAoB;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAC3B,wCAAwC,OAAO,iBAAiB,EAChE,IAAI,CACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,MAAc;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IndemnClient } from './client.js';
|
|
2
|
+
import type { EvaluationTriggerInput, EvaluationTriggerResponse, EvaluationRun, EvaluationResult, BotContext } from './types.js';
|
|
3
|
+
export declare class EvalSDK {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: IndemnClient);
|
|
6
|
+
triggerEvaluation(input: EvaluationTriggerInput): Promise<EvaluationTriggerResponse>;
|
|
7
|
+
listRuns(agentId?: string): Promise<EvaluationRun[]>;
|
|
8
|
+
getRunStatus(runId: string): Promise<EvaluationRun>;
|
|
9
|
+
getRunResults(runId: string): Promise<EvaluationResult[]>;
|
|
10
|
+
getBotContext(botId: string): Promise<BotContext>;
|
|
11
|
+
pollRunUntilComplete(runId: string, intervalMs?: number, timeoutMs?: number): Promise<EvaluationRun>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=eval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/sdk/eval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,qBAAa,OAAO;IACN,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAIpF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKpD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAInD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIzD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjD,oBAAoB,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,SAAO,EACjB,SAAS,SAAS,GACjB,OAAO,CAAC,aAAa,CAAC;CAmB1B"}
|
package/dist/sdk/eval.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export class EvalSDK {
|
|
2
|
+
client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
async triggerEvaluation(input) {
|
|
7
|
+
return this.client.evalsPost('/api/v1/evaluations', input);
|
|
8
|
+
}
|
|
9
|
+
async listRuns(agentId) {
|
|
10
|
+
const query = agentId ? { agent_id: agentId } : undefined;
|
|
11
|
+
return this.client.evalsGet('/api/v1/runs', query);
|
|
12
|
+
}
|
|
13
|
+
async getRunStatus(runId) {
|
|
14
|
+
return this.client.evalsGet(`/api/v1/runs/${runId}`);
|
|
15
|
+
}
|
|
16
|
+
async getRunResults(runId) {
|
|
17
|
+
return this.client.evalsGet(`/api/v1/runs/${runId}/results`);
|
|
18
|
+
}
|
|
19
|
+
async getBotContext(botId) {
|
|
20
|
+
return this.client.evalsGet(`/api/v1/bots/${botId}/context`);
|
|
21
|
+
}
|
|
22
|
+
async pollRunUntilComplete(runId, intervalMs = 5000, timeoutMs = 300000) {
|
|
23
|
+
const startTime = Date.now();
|
|
24
|
+
while (true) {
|
|
25
|
+
const run = await this.getRunStatus(runId);
|
|
26
|
+
if (run.status === 'completed' || run.status === 'failed') {
|
|
27
|
+
return run;
|
|
28
|
+
}
|
|
29
|
+
if (Date.now() - startTime >= timeoutMs) {
|
|
30
|
+
throw new Error(`Evaluation run ${runId} did not complete within ${timeoutMs / 1000}s (last status: ${run.status})`);
|
|
31
|
+
}
|
|
32
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=eval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/sdk/eval.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,OAAO;IACE;IAApB,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE5C,KAAK,CAAC,iBAAiB,CAAC,KAA6B;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAA4B,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAgB;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAkB,cAAc,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAgB,gBAAgB,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAqB,gBAAgB,KAAK,UAAU,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAa,gBAAgB,KAAK,UAAU,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAa,EACb,UAAU,GAAG,IAAI,EACjB,SAAS,GAAG,MAAM;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAE3C,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1D,OAAO,GAAG,CAAC;YACb,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,4BAA4B,SAAS,GAAG,IAAI,mBAAmB,GAAG,CAAC,MAAM,GAAG,CACpG,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { IndemnClient } from './client.js';
|
|
2
|
+
import type { BotFunction, CreateFunctionInput, UpdateFunctionInput, FunctionParameter } from './types.js';
|
|
3
|
+
export declare class FunctionsSDK {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: IndemnClient);
|
|
6
|
+
listFunctions(agentId: string): Promise<BotFunction[]>;
|
|
7
|
+
createFunction(agentId: string, input: CreateFunctionInput): Promise<BotFunction>;
|
|
8
|
+
updateFunction(agentId: string, funcId: string, input: UpdateFunctionInput): Promise<BotFunction>;
|
|
9
|
+
deleteFunction(agentId: string, funcId: string): Promise<void>;
|
|
10
|
+
testFunction(agentId: string, funcId: string, params?: Record<string, unknown>): Promise<unknown>;
|
|
11
|
+
exportFunctions(agentId: string): Promise<unknown>;
|
|
12
|
+
importFunctions(agentId: string, url: string): Promise<unknown>;
|
|
13
|
+
listParameters(agentId: string, funcId: string): Promise<FunctionParameter[]>;
|
|
14
|
+
addParameter(agentId: string, funcId: string, param: {
|
|
15
|
+
name: string;
|
|
16
|
+
type: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
required?: boolean;
|
|
19
|
+
}): Promise<FunctionParameter>;
|
|
20
|
+
updateParameter(agentId: string, funcId: string, paramId: string, param: {
|
|
21
|
+
name?: string;
|
|
22
|
+
type?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
required?: boolean;
|
|
25
|
+
}): Promise<FunctionParameter>;
|
|
26
|
+
deleteParameter(agentId: string, funcId: string, paramId: string): Promise<void>;
|
|
27
|
+
listMasterFunctions(): Promise<unknown[]>;
|
|
28
|
+
listLLMModels(): Promise<unknown[]>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/sdk/functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3G,qBAAa,YAAY;IACX,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAMtD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAOjF,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAOjG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAOjG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMlD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO/D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAM7E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAc1J,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAahL,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhF,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAMzC,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAK1C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export class FunctionsSDK {
|
|
2
|
+
client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
async listFunctions(agentId) {
|
|
7
|
+
return this.client.copilotGet(`/organization/:org_id/ai-studio/bots/${agentId}/functions`);
|
|
8
|
+
}
|
|
9
|
+
async createFunction(agentId, input) {
|
|
10
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions`, input);
|
|
11
|
+
}
|
|
12
|
+
async updateFunction(agentId, funcId, input) {
|
|
13
|
+
return this.client.copilotPut(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}`, input);
|
|
14
|
+
}
|
|
15
|
+
async deleteFunction(agentId, funcId) {
|
|
16
|
+
await this.client.copilotDelete(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}`);
|
|
17
|
+
}
|
|
18
|
+
async testFunction(agentId, funcId, params) {
|
|
19
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/test-rest-api`, params);
|
|
20
|
+
}
|
|
21
|
+
async exportFunctions(agentId) {
|
|
22
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/export`);
|
|
23
|
+
}
|
|
24
|
+
async importFunctions(agentId, url) {
|
|
25
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/import`, { url });
|
|
26
|
+
}
|
|
27
|
+
async listParameters(agentId, funcId) {
|
|
28
|
+
return this.client.copilotGet(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/parameters`);
|
|
29
|
+
}
|
|
30
|
+
async addParameter(agentId, funcId, param) {
|
|
31
|
+
// Server expects an array of parameters
|
|
32
|
+
const payload = [{
|
|
33
|
+
name: param.name,
|
|
34
|
+
type: param.type,
|
|
35
|
+
description: param.description,
|
|
36
|
+
is_required: param.required ?? false,
|
|
37
|
+
}];
|
|
38
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/parameters`, payload);
|
|
39
|
+
}
|
|
40
|
+
async updateParameter(agentId, funcId, paramId, param) {
|
|
41
|
+
// Server uses POST upsert (no PUT /:id endpoint exists). Include the param id for upsert matching.
|
|
42
|
+
const payload = [{
|
|
43
|
+
id: paramId,
|
|
44
|
+
...param,
|
|
45
|
+
is_required: param.required ?? false,
|
|
46
|
+
}];
|
|
47
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/parameters`, payload);
|
|
48
|
+
}
|
|
49
|
+
async deleteParameter(agentId, funcId, paramId) {
|
|
50
|
+
await this.client.copilotDelete(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/parameters/${paramId}`);
|
|
51
|
+
}
|
|
52
|
+
async listMasterFunctions() {
|
|
53
|
+
return this.client.copilotGet('/organization/:org_id/ai-studio/master-functions');
|
|
54
|
+
}
|
|
55
|
+
async listLLMModels() {
|
|
56
|
+
return this.client.copilotGet('/organization/:org_id/ai-studio/llm-models');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/sdk/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { IndemnClient } from './client.js';
|
|
2
|
+
export { login, logout, whoami } from './auth.js';
|
|
3
|
+
export { AgentsSDK } from './agents.js';
|
|
4
|
+
export { ConfigSDK } from './config.js';
|
|
5
|
+
export { FunctionsSDK } from './functions.js';
|
|
6
|
+
export { KBSDK } from './kb.js';
|
|
7
|
+
export { RubricsSDK } from './rubrics.js';
|
|
8
|
+
export { TestSetsSDK } from './test-sets.js';
|
|
9
|
+
export { EvalSDK } from './eval.js';
|
|
10
|
+
export { ChatSession } from './chat.js';
|
|
11
|
+
export * from './types.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { IndemnClient } from './client.js';
|
|
2
|
+
export { login, logout, whoami } from './auth.js';
|
|
3
|
+
export { AgentsSDK } from './agents.js';
|
|
4
|
+
export { ConfigSDK } from './config.js';
|
|
5
|
+
export { FunctionsSDK } from './functions.js';
|
|
6
|
+
export { KBSDK } from './kb.js';
|
|
7
|
+
export { RubricsSDK } from './rubrics.js';
|
|
8
|
+
export { TestSetsSDK } from './test-sets.js';
|
|
9
|
+
export { EvalSDK } from './eval.js';
|
|
10
|
+
export { ChatSession } from './chat.js';
|
|
11
|
+
export * from './types.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,cAAc,YAAY,CAAC"}
|
package/dist/sdk/kb.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { IndemnClient } from './client.js';
|
|
2
|
+
import type { KnowledgeBase, CreateKBInput, UpdateKBInput, DataSource, AddDataSourceInput } from './types.js';
|
|
3
|
+
export declare class KBSDK {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: IndemnClient);
|
|
6
|
+
listKBs(): Promise<KnowledgeBase[]>;
|
|
7
|
+
getKB(id: string): Promise<KnowledgeBase>;
|
|
8
|
+
createKB(input: CreateKBInput): Promise<KnowledgeBase>;
|
|
9
|
+
updateKB(id: string, input: UpdateKBInput): Promise<KnowledgeBase>;
|
|
10
|
+
deleteKB(id: string): Promise<void>;
|
|
11
|
+
listDataSources(kbId: string, query?: {
|
|
12
|
+
page?: string;
|
|
13
|
+
limit?: string;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
dataSources: DataSource[];
|
|
16
|
+
total: number;
|
|
17
|
+
page: number;
|
|
18
|
+
pages: number;
|
|
19
|
+
}>;
|
|
20
|
+
addDataSource(kbId: string, input: AddDataSourceInput): Promise<DataSource>;
|
|
21
|
+
scrapeUrl(kbId: string, url: string, crawlMode?: string): Promise<unknown>;
|
|
22
|
+
uploadFile(kbId: string, filePath: string): Promise<unknown>;
|
|
23
|
+
updateDataSource(kbId: string, sourceId: string, input: Partial<AddDataSourceInput>): Promise<DataSource>;
|
|
24
|
+
deleteDataSource(kbId: string, sourceId: string): Promise<void>;
|
|
25
|
+
linkKB(agentId: string, kbIds: string[]): Promise<unknown>;
|
|
26
|
+
unlinkKB(agentId: string, kbId: string): Promise<void>;
|
|
27
|
+
exportKB(kbId: string, format: string): Promise<unknown>;
|
|
28
|
+
importKB(kbId: string, data: unknown): Promise<unknown>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=kb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb.d.ts","sourceRoot":"","sources":["../../src/sdk/kb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB,qBAAa,KAAK;IACJ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAMnC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQzC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAOtD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAOlE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnC,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC;QAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAO/E,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmB3E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsC5D,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,OAAO,CAAC,UAAU,CAAC;IAOhB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAO1D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOxD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAM9D"}
|
package/dist/sdk/kb.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export class KBSDK {
|
|
2
|
+
client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
async listKBs() {
|
|
7
|
+
return this.client.copilotGet('/organization/:org_id/knowledge-bases');
|
|
8
|
+
}
|
|
9
|
+
async getKB(id) {
|
|
10
|
+
const result = await this.client.copilotGet(`/organization/:org_id/knowledge-bases/${id}`);
|
|
11
|
+
// Server may return an array; extract the first element
|
|
12
|
+
return Array.isArray(result) ? result[0] : result;
|
|
13
|
+
}
|
|
14
|
+
async createKB(input) {
|
|
15
|
+
return this.client.copilotPost('/organization/:org_id/knowledge-bases', input);
|
|
16
|
+
}
|
|
17
|
+
async updateKB(id, input) {
|
|
18
|
+
return this.client.copilotPut(`/organization/:org_id/knowledge-bases/${id}`, input);
|
|
19
|
+
}
|
|
20
|
+
async deleteKB(id) {
|
|
21
|
+
await this.client.copilotDelete(`/organization/:org_id/knowledge-bases/${id}`);
|
|
22
|
+
}
|
|
23
|
+
async listDataSources(kbId, query) {
|
|
24
|
+
return this.client.copilotGet(`/organization/:org_id/knowledge-bases/${kbId}/data-source`, query);
|
|
25
|
+
}
|
|
26
|
+
async addDataSource(kbId, input) {
|
|
27
|
+
if (input.source_url) {
|
|
28
|
+
// URL type — must use /import endpoint (data-source POST only supports text)
|
|
29
|
+
return this.client.copilotPost(`/organization/:org_id/knowledge-bases/${kbId}/import`, {
|
|
30
|
+
type: 'url',
|
|
31
|
+
sources: [{ url: input.source_url, crawl_mode: 'full' }],
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
// Text/QnA type
|
|
35
|
+
return this.client.copilotPost(`/organization/:org_id/knowledge-bases/${kbId}/data-source`, { type: 'text', payload: { question: input.question, answer: input.answer, isManual: true } });
|
|
36
|
+
}
|
|
37
|
+
async scrapeUrl(kbId, url, crawlMode = 'full') {
|
|
38
|
+
return this.client.copilotPost(`/organization/:org_id/knowledge-bases/${kbId}/import`, {
|
|
39
|
+
type: 'url',
|
|
40
|
+
sources: [{ url, crawl_mode: crawlMode }],
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async uploadFile(kbId, filePath) {
|
|
44
|
+
const fs = await import('fs');
|
|
45
|
+
const path = await import('path');
|
|
46
|
+
if (!fs.existsSync(filePath)) {
|
|
47
|
+
throw new Error(`File not found: ${filePath}`);
|
|
48
|
+
}
|
|
49
|
+
const fileBuffer = fs.readFileSync(filePath);
|
|
50
|
+
const fileName = path.basename(filePath);
|
|
51
|
+
const blob = new Blob([fileBuffer]);
|
|
52
|
+
const formData = new FormData();
|
|
53
|
+
formData.append('file', blob, fileName);
|
|
54
|
+
// Need a raw fetch since copilotPost sets Content-Type to JSON
|
|
55
|
+
const hosts = this.client.getHosts();
|
|
56
|
+
const orgId = this.client.getOrgId();
|
|
57
|
+
const apiKey = this.client.getApiKey();
|
|
58
|
+
const url_str = `${hosts.copilot}/organization/${orgId}/knowledge-bases/${kbId}/upload-urls`;
|
|
59
|
+
const res = await fetch(url_str, {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
headers: {
|
|
62
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
63
|
+
},
|
|
64
|
+
body: formData,
|
|
65
|
+
});
|
|
66
|
+
if (!res.ok) {
|
|
67
|
+
const text = await res.text();
|
|
68
|
+
throw new Error(`Upload failed (${res.status}): ${text}`);
|
|
69
|
+
}
|
|
70
|
+
const json = await res.json();
|
|
71
|
+
return json.data || json;
|
|
72
|
+
}
|
|
73
|
+
async updateDataSource(kbId, sourceId, input) {
|
|
74
|
+
return this.client.copilotPut(`/organization/:org_id/knowledge-bases/${kbId}/data-source/${sourceId}`, { payload: { question: input.question, answer: input.answer, isManual: true } });
|
|
75
|
+
}
|
|
76
|
+
async deleteDataSource(kbId, sourceId) {
|
|
77
|
+
await this.client.copilotDelete(`/organization/:org_id/knowledge-bases/${kbId}/data-source/${sourceId}`);
|
|
78
|
+
}
|
|
79
|
+
async linkKB(agentId, kbIds) {
|
|
80
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/mappings`, { id_kb: kbIds });
|
|
81
|
+
}
|
|
82
|
+
async unlinkKB(agentId, kbId) {
|
|
83
|
+
// Mappings response: [{ id: "kb_id", connectedBots: [{ id: "bot_id", id_mapping: "mapping_id" }] }]
|
|
84
|
+
const mappings = await this.client.copilotGet(`/organization/:org_id/ai-studio/bots/${agentId}/mappings`);
|
|
85
|
+
const kbEntry = mappings.find((m) => m.id === kbId);
|
|
86
|
+
if (!kbEntry) {
|
|
87
|
+
throw new Error(`No mapping found for KB ${kbId} on agent ${agentId}`);
|
|
88
|
+
}
|
|
89
|
+
const botMapping = kbEntry.connectedBots.find((b) => b.id === agentId);
|
|
90
|
+
if (!botMapping) {
|
|
91
|
+
throw new Error(`No mapping found for KB ${kbId} on agent ${agentId}`);
|
|
92
|
+
}
|
|
93
|
+
await this.client.copilotDelete(`/organization/:org_id/ai-studio/bots/${agentId}/mappings/${botMapping.id_mapping}`);
|
|
94
|
+
}
|
|
95
|
+
async exportKB(kbId, format) {
|
|
96
|
+
return this.client.copilotPost(`/organization/:org_id/knowledge-bases/${kbId}/export`, { type: format });
|
|
97
|
+
}
|
|
98
|
+
async importKB(kbId, data) {
|
|
99
|
+
return this.client.copilotPost(`/organization/:org_id/knowledge-bases/${kbId}/import`, data);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=kb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb.js","sourceRoot":"","sources":["../../src/sdk/kb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IndemnClient } from './client.js';
|
|
2
|
+
import type { Rubric, CreateRubricInput } from './types.js';
|
|
3
|
+
export declare class RubricsSDK {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: IndemnClient);
|
|
6
|
+
listRubrics(agentId?: string): Promise<Rubric[]>;
|
|
7
|
+
getRubric(id: string): Promise<Rubric>;
|
|
8
|
+
createRubric(input: CreateRubricInput): Promise<Rubric>;
|
|
9
|
+
updateRubric(id: string, input: Partial<CreateRubricInput>): Promise<Rubric>;
|
|
10
|
+
deleteRubric(id: string): Promise<void>;
|
|
11
|
+
listVersions(id: string): Promise<Rubric[]>;
|
|
12
|
+
getVersion(id: string, version: number): Promise<Rubric>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=rubrics.d.ts.map
|