twelveai 0.4.0 → 0.6.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/dist/{chunk-6RZKLIGP.js → chunk-7VVR7AFE.js} +3 -1
- package/dist/cli.cjs +3 -1
- package/dist/cli.d.cts +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +1 -1
- package/dist/{client-C5vzks2N.d.cts → client-DEsf0_MF.d.cts} +174 -9
- package/dist/{client-C5vzks2N.d.ts → client-DEsf0_MF.d.ts} +174 -9
- package/dist/index.cjs +3 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -19,7 +19,9 @@ function buildManage(request) {
|
|
|
19
19
|
plugins: {
|
|
20
20
|
list: () => request("GET", "/v1/plugins"),
|
|
21
21
|
install: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/install`),
|
|
22
|
-
uninstall: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/uninstall`)
|
|
22
|
+
uninstall: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/uninstall`),
|
|
23
|
+
/** Follow a pack's releases for an agent you already run. Changes nothing today. */
|
|
24
|
+
track: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/track`)
|
|
23
25
|
},
|
|
24
26
|
customers: {
|
|
25
27
|
list: (opts = {}) => request("GET", `/v1/customers?limit=${opts.limit ?? 100}${opts.range ? `&range=${opts.range}` : ""}`),
|
package/dist/cli.cjs
CHANGED
|
@@ -47,7 +47,9 @@ function buildManage(request) {
|
|
|
47
47
|
plugins: {
|
|
48
48
|
list: () => request("GET", "/v1/plugins"),
|
|
49
49
|
install: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/install`),
|
|
50
|
-
uninstall: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/uninstall`)
|
|
50
|
+
uninstall: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/uninstall`),
|
|
51
|
+
/** Follow a pack's releases for an agent you already run. Changes nothing today. */
|
|
52
|
+
track: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/track`)
|
|
51
53
|
},
|
|
52
54
|
customers: {
|
|
53
55
|
list: (opts = {}) => request("GET", `/v1/customers?limit=${opts.limit ?? 100}${opts.range ? `&range=${opts.range}` : ""}`),
|
package/dist/cli.d.cts
CHANGED
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -36,7 +36,15 @@ interface ChatInput {
|
|
|
36
36
|
/** Sandbox: tools return sample data; nothing real is called or moved. */
|
|
37
37
|
sandbox?: boolean;
|
|
38
38
|
channel?: string;
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Pin the turn to one agent, skipping the router entirely - no keyword pass,
|
|
41
|
+
* no AI pass, no mid-conversation switch. Use it when YOU already know the
|
|
42
|
+
* intent (a deep link, a menu choice, an IVR branch, a batch job), not on a
|
|
43
|
+
* general chat box: the pinned agent answers whatever the customer says next,
|
|
44
|
+
* with its own tools. Every pinned response carries `warning` saying so.
|
|
45
|
+
*/
|
|
46
|
+
agent?: string;
|
|
47
|
+
/** Alias of `agent`, kept for existing integrations. */
|
|
40
48
|
intent?: string;
|
|
41
49
|
/** Customer tier to sync for this turn's caps. */
|
|
42
50
|
tier?: string;
|
|
@@ -79,6 +87,14 @@ interface ChatResponse {
|
|
|
79
87
|
/** The assistant's reply to show the user. */
|
|
80
88
|
message: string | null;
|
|
81
89
|
intent: string | null;
|
|
90
|
+
/** Routing confidence for the intent, same scale as classify. Null on resumes and guide fallback. */
|
|
91
|
+
confidence?: number | null;
|
|
92
|
+
/**
|
|
93
|
+
* Non-fatal advice about how this turn was handled: set when you pinned an
|
|
94
|
+
* agent (the router was skipped), or when the pin named an agent that could
|
|
95
|
+
* not run. Never an error - the reply in `message` still stands.
|
|
96
|
+
*/
|
|
97
|
+
warning?: string | null;
|
|
82
98
|
toolCalls: ToolCall[];
|
|
83
99
|
/** A write awaiting the user's confirmation (resend with confirmed: true). */
|
|
84
100
|
pendingConfirmation: {
|
|
@@ -163,6 +179,146 @@ interface ManageResult {
|
|
|
163
179
|
error?: string;
|
|
164
180
|
[key: string]: unknown;
|
|
165
181
|
}
|
|
182
|
+
/** A placeholder you may put in a tool's URL; the engine fills it per turn. */
|
|
183
|
+
interface ToolVariable {
|
|
184
|
+
/** Use it as `{name}` in the URL, path or query. */
|
|
185
|
+
name: string;
|
|
186
|
+
type: string;
|
|
187
|
+
description: string | null;
|
|
188
|
+
required: boolean;
|
|
189
|
+
}
|
|
190
|
+
/** One tool as GET /v1/tools returns it. */
|
|
191
|
+
interface ToolListItem {
|
|
192
|
+
name: string;
|
|
193
|
+
description: string;
|
|
194
|
+
sideEffect: 'read' | 'write';
|
|
195
|
+
permission: string | null;
|
|
196
|
+
kind: 'managed' | 'client' | 'http';
|
|
197
|
+
execution: 'hosted' | 'client';
|
|
198
|
+
binding: {
|
|
199
|
+
method: string;
|
|
200
|
+
url: string;
|
|
201
|
+
resultPath: string | null;
|
|
202
|
+
} | null;
|
|
203
|
+
hasAuth: boolean;
|
|
204
|
+
auth: {
|
|
205
|
+
type: string;
|
|
206
|
+
header: string | null;
|
|
207
|
+
} | null;
|
|
208
|
+
sampleResponse: unknown;
|
|
209
|
+
tenantSample?: boolean;
|
|
210
|
+
example: {
|
|
211
|
+
method: string;
|
|
212
|
+
url: string;
|
|
213
|
+
} | null;
|
|
214
|
+
/** Placeholders this tool understands - the click-to-insert list in the console. */
|
|
215
|
+
variables: ToolVariable[];
|
|
216
|
+
agents: string[];
|
|
217
|
+
editable: boolean;
|
|
218
|
+
}
|
|
219
|
+
interface ToolsResult extends ManageResult {
|
|
220
|
+
tools: ToolListItem[];
|
|
221
|
+
}
|
|
222
|
+
/** A published version of an agent pack, newest first. */
|
|
223
|
+
interface PluginRelease {
|
|
224
|
+
version: string;
|
|
225
|
+
date: string;
|
|
226
|
+
breaking?: boolean;
|
|
227
|
+
changes: string[];
|
|
228
|
+
}
|
|
229
|
+
/** Domain vocabulary a pack's tools use, so you can map it to your own API. */
|
|
230
|
+
interface PluginConcept {
|
|
231
|
+
term: string;
|
|
232
|
+
meaning: string;
|
|
233
|
+
}
|
|
234
|
+
interface PluginToolSpec {
|
|
235
|
+
name: string;
|
|
236
|
+
description: string | null;
|
|
237
|
+
sideEffect: 'read' | 'write' | null;
|
|
238
|
+
variables: ToolVariable[];
|
|
239
|
+
}
|
|
240
|
+
interface PluginListItem {
|
|
241
|
+
id: string;
|
|
242
|
+
name: string;
|
|
243
|
+
description: string;
|
|
244
|
+
category: string;
|
|
245
|
+
version: string;
|
|
246
|
+
intent: string;
|
|
247
|
+
tools: string[];
|
|
248
|
+
visibility: 'public' | 'private';
|
|
249
|
+
installed: boolean;
|
|
250
|
+
configured?: boolean;
|
|
251
|
+
managedByPlugin?: boolean;
|
|
252
|
+
installedVersion: string | null;
|
|
253
|
+
updateAvailable: boolean;
|
|
254
|
+
/** True when you run this agent outside the marketplace and could follow its releases. */
|
|
255
|
+
canTrack?: boolean;
|
|
256
|
+
details: {
|
|
257
|
+
about: string;
|
|
258
|
+
examples: string[];
|
|
259
|
+
dataSource: string;
|
|
260
|
+
concepts?: PluginConcept[];
|
|
261
|
+
} | null;
|
|
262
|
+
/** Per-tool placeholders, visible before you install. */
|
|
263
|
+
toolSpecs?: PluginToolSpec[];
|
|
264
|
+
/** Releases between the version you run and the current one. */
|
|
265
|
+
releases?: PluginRelease[];
|
|
266
|
+
}
|
|
267
|
+
interface PluginsResult extends ManageResult {
|
|
268
|
+
plugins: PluginListItem[];
|
|
269
|
+
}
|
|
270
|
+
/** One tool in GET /v1/manifest - the contract you code against. */
|
|
271
|
+
interface ManifestTool {
|
|
272
|
+
name: string;
|
|
273
|
+
description: string;
|
|
274
|
+
parameters: Record<string, unknown>;
|
|
275
|
+
sideEffect: 'read' | 'write';
|
|
276
|
+
permission: string | null;
|
|
277
|
+
managed: boolean;
|
|
278
|
+
execution: 'hosted' | 'client';
|
|
279
|
+
/** True when the ENGINE invokes this tool itself; it never appears as a model decision. */
|
|
280
|
+
automatic?: boolean;
|
|
281
|
+
binding: {
|
|
282
|
+
method: string;
|
|
283
|
+
url: string;
|
|
284
|
+
} | null;
|
|
285
|
+
}
|
|
286
|
+
interface ManifestResult extends ManageResult {
|
|
287
|
+
agents: Array<{
|
|
288
|
+
intent: string;
|
|
289
|
+
label: string;
|
|
290
|
+
requiresCustomer: boolean;
|
|
291
|
+
permissions: string[] | null;
|
|
292
|
+
tools: ManifestTool[];
|
|
293
|
+
}>;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Per-tool endpoint auth. A discriminated union on purpose: TypeScript rejects
|
|
297
|
+
* a bearer without a token, or an api_key missing its header/value, at compile
|
|
298
|
+
* time rather than at the first live call.
|
|
299
|
+
*/
|
|
300
|
+
type ToolAuth = {
|
|
301
|
+
type: 'none';
|
|
302
|
+
} | {
|
|
303
|
+
type: 'bearer';
|
|
304
|
+
token: string;
|
|
305
|
+
} | {
|
|
306
|
+
type: 'api_key';
|
|
307
|
+
header: string;
|
|
308
|
+
value: string;
|
|
309
|
+
} | {
|
|
310
|
+
type: 'signed';
|
|
311
|
+
} | {
|
|
312
|
+
type: 'jwks';
|
|
313
|
+
} | {
|
|
314
|
+
type: 'customer_token';
|
|
315
|
+
} | {
|
|
316
|
+
type: 'oauth2';
|
|
317
|
+
tokenUrl: string;
|
|
318
|
+
clientId: string;
|
|
319
|
+
clientSecret: string;
|
|
320
|
+
scope?: string;
|
|
321
|
+
};
|
|
166
322
|
interface CreateAgentInput {
|
|
167
323
|
intent: string;
|
|
168
324
|
label?: string;
|
|
@@ -171,6 +327,13 @@ interface CreateAgentInput {
|
|
|
171
327
|
systemPrompt?: string;
|
|
172
328
|
tools?: string[];
|
|
173
329
|
requiresCustomer?: boolean;
|
|
330
|
+
/**
|
|
331
|
+
* 'internal' makes this your own team's agent: used from the console's agent
|
|
332
|
+
* page, invisible to the API key your customers talk to. Default 'customer'.
|
|
333
|
+
*/
|
|
334
|
+
audience?: 'customer' | 'internal';
|
|
335
|
+
/** An internal agent's remit, in plain words. Put in front of every turn and enforced by refusal. */
|
|
336
|
+
scope?: string;
|
|
174
337
|
}
|
|
175
338
|
interface CreateToolInput {
|
|
176
339
|
name: string;
|
|
@@ -189,7 +352,7 @@ interface BindToolInput {
|
|
|
189
352
|
resultPath?: string | null;
|
|
190
353
|
sampleResponse?: unknown;
|
|
191
354
|
execution?: 'hosted' | 'client';
|
|
192
|
-
auth?:
|
|
355
|
+
auth?: ToolAuth;
|
|
193
356
|
}
|
|
194
357
|
type Request = (method: string, path: string, body?: Record<string, unknown>) => Promise<ManageResult>;
|
|
195
358
|
/** Build the management namespaces over one authenticated request function. */
|
|
@@ -203,7 +366,7 @@ declare function buildManage(request: Request): {
|
|
|
203
366
|
delete: (intent: string) => Promise<ManageResult>;
|
|
204
367
|
};
|
|
205
368
|
tools: {
|
|
206
|
-
list: () => Promise<
|
|
369
|
+
list: () => Promise<ToolsResult>;
|
|
207
370
|
create: (input: CreateToolInput) => Promise<ManageResult>;
|
|
208
371
|
bind: (name: string, binding: BindToolInput) => Promise<ManageResult>;
|
|
209
372
|
test: (name: string) => Promise<ManageResult>;
|
|
@@ -212,13 +375,15 @@ declare function buildManage(request: Request): {
|
|
|
212
375
|
spec?: unknown;
|
|
213
376
|
execution?: "hosted" | "client";
|
|
214
377
|
dryRun?: boolean;
|
|
215
|
-
auth?:
|
|
378
|
+
auth?: ToolAuth;
|
|
216
379
|
}) => Promise<ManageResult>;
|
|
217
380
|
};
|
|
218
381
|
plugins: {
|
|
219
|
-
list: () => Promise<
|
|
220
|
-
install: (id: string) => Promise<
|
|
221
|
-
uninstall: (id: string) => Promise<
|
|
382
|
+
list: () => Promise<PluginsResult>;
|
|
383
|
+
install: (id: string) => Promise<PluginsResult>;
|
|
384
|
+
uninstall: (id: string) => Promise<PluginsResult>;
|
|
385
|
+
/** Follow a pack's releases for an agent you already run. Changes nothing today. */
|
|
386
|
+
track: (id: string) => Promise<PluginsResult>;
|
|
222
387
|
};
|
|
223
388
|
customers: {
|
|
224
389
|
list: (opts?: {
|
|
@@ -248,7 +413,7 @@ declare function buildManage(request: Request): {
|
|
|
248
413
|
event: (id: number | string) => Promise<ManageResult>;
|
|
249
414
|
analytics: (days?: number) => Promise<ManageResult>;
|
|
250
415
|
};
|
|
251
|
-
manifest: () => Promise<
|
|
416
|
+
manifest: () => Promise<ManifestResult>;
|
|
252
417
|
};
|
|
253
418
|
type Manage = ReturnType<typeof buildManage>;
|
|
254
419
|
|
|
@@ -322,4 +487,4 @@ declare class TwelveAI {
|
|
|
322
487
|
private performHandoff;
|
|
323
488
|
}
|
|
324
489
|
|
|
325
|
-
export { type Attachment as A, type BindToolInput as B, type ChatInput as C, type HandoffExecutor as H, type Manage as M, type PendingToolCall as P, TwelveAI as T, type ChatResponse as a, type ClassifyResponse as b, type CreateAgentInput as c, type CreateToolInput as d, type HandoffRequest as e, type ManageResult as f, type
|
|
490
|
+
export { type Attachment as A, type BindToolInput as B, type ChatInput as C, type HandoffExecutor as H, type Manage as M, type PendingToolCall as P, TwelveAI as T, type ChatResponse as a, type ClassifyResponse as b, type CreateAgentInput as c, type CreateToolInput as d, type HandoffRequest as e, type ManageResult as f, type ManifestResult as g, type ManifestTool as h, type PluginConcept as i, type PluginListItem as j, type PluginRelease as k, type PluginToolSpec as l, type PluginsResult as m, type ToolAuth as n, type ToolCall as o, type ToolListItem as p, type ToolResult as q, type ToolVariable as r, type ToolsResult as s, type TwelveAIOptions as t, buildManage as u };
|
|
@@ -36,7 +36,15 @@ interface ChatInput {
|
|
|
36
36
|
/** Sandbox: tools return sample data; nothing real is called or moved. */
|
|
37
37
|
sandbox?: boolean;
|
|
38
38
|
channel?: string;
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Pin the turn to one agent, skipping the router entirely - no keyword pass,
|
|
41
|
+
* no AI pass, no mid-conversation switch. Use it when YOU already know the
|
|
42
|
+
* intent (a deep link, a menu choice, an IVR branch, a batch job), not on a
|
|
43
|
+
* general chat box: the pinned agent answers whatever the customer says next,
|
|
44
|
+
* with its own tools. Every pinned response carries `warning` saying so.
|
|
45
|
+
*/
|
|
46
|
+
agent?: string;
|
|
47
|
+
/** Alias of `agent`, kept for existing integrations. */
|
|
40
48
|
intent?: string;
|
|
41
49
|
/** Customer tier to sync for this turn's caps. */
|
|
42
50
|
tier?: string;
|
|
@@ -79,6 +87,14 @@ interface ChatResponse {
|
|
|
79
87
|
/** The assistant's reply to show the user. */
|
|
80
88
|
message: string | null;
|
|
81
89
|
intent: string | null;
|
|
90
|
+
/** Routing confidence for the intent, same scale as classify. Null on resumes and guide fallback. */
|
|
91
|
+
confidence?: number | null;
|
|
92
|
+
/**
|
|
93
|
+
* Non-fatal advice about how this turn was handled: set when you pinned an
|
|
94
|
+
* agent (the router was skipped), or when the pin named an agent that could
|
|
95
|
+
* not run. Never an error - the reply in `message` still stands.
|
|
96
|
+
*/
|
|
97
|
+
warning?: string | null;
|
|
82
98
|
toolCalls: ToolCall[];
|
|
83
99
|
/** A write awaiting the user's confirmation (resend with confirmed: true). */
|
|
84
100
|
pendingConfirmation: {
|
|
@@ -163,6 +179,146 @@ interface ManageResult {
|
|
|
163
179
|
error?: string;
|
|
164
180
|
[key: string]: unknown;
|
|
165
181
|
}
|
|
182
|
+
/** A placeholder you may put in a tool's URL; the engine fills it per turn. */
|
|
183
|
+
interface ToolVariable {
|
|
184
|
+
/** Use it as `{name}` in the URL, path or query. */
|
|
185
|
+
name: string;
|
|
186
|
+
type: string;
|
|
187
|
+
description: string | null;
|
|
188
|
+
required: boolean;
|
|
189
|
+
}
|
|
190
|
+
/** One tool as GET /v1/tools returns it. */
|
|
191
|
+
interface ToolListItem {
|
|
192
|
+
name: string;
|
|
193
|
+
description: string;
|
|
194
|
+
sideEffect: 'read' | 'write';
|
|
195
|
+
permission: string | null;
|
|
196
|
+
kind: 'managed' | 'client' | 'http';
|
|
197
|
+
execution: 'hosted' | 'client';
|
|
198
|
+
binding: {
|
|
199
|
+
method: string;
|
|
200
|
+
url: string;
|
|
201
|
+
resultPath: string | null;
|
|
202
|
+
} | null;
|
|
203
|
+
hasAuth: boolean;
|
|
204
|
+
auth: {
|
|
205
|
+
type: string;
|
|
206
|
+
header: string | null;
|
|
207
|
+
} | null;
|
|
208
|
+
sampleResponse: unknown;
|
|
209
|
+
tenantSample?: boolean;
|
|
210
|
+
example: {
|
|
211
|
+
method: string;
|
|
212
|
+
url: string;
|
|
213
|
+
} | null;
|
|
214
|
+
/** Placeholders this tool understands - the click-to-insert list in the console. */
|
|
215
|
+
variables: ToolVariable[];
|
|
216
|
+
agents: string[];
|
|
217
|
+
editable: boolean;
|
|
218
|
+
}
|
|
219
|
+
interface ToolsResult extends ManageResult {
|
|
220
|
+
tools: ToolListItem[];
|
|
221
|
+
}
|
|
222
|
+
/** A published version of an agent pack, newest first. */
|
|
223
|
+
interface PluginRelease {
|
|
224
|
+
version: string;
|
|
225
|
+
date: string;
|
|
226
|
+
breaking?: boolean;
|
|
227
|
+
changes: string[];
|
|
228
|
+
}
|
|
229
|
+
/** Domain vocabulary a pack's tools use, so you can map it to your own API. */
|
|
230
|
+
interface PluginConcept {
|
|
231
|
+
term: string;
|
|
232
|
+
meaning: string;
|
|
233
|
+
}
|
|
234
|
+
interface PluginToolSpec {
|
|
235
|
+
name: string;
|
|
236
|
+
description: string | null;
|
|
237
|
+
sideEffect: 'read' | 'write' | null;
|
|
238
|
+
variables: ToolVariable[];
|
|
239
|
+
}
|
|
240
|
+
interface PluginListItem {
|
|
241
|
+
id: string;
|
|
242
|
+
name: string;
|
|
243
|
+
description: string;
|
|
244
|
+
category: string;
|
|
245
|
+
version: string;
|
|
246
|
+
intent: string;
|
|
247
|
+
tools: string[];
|
|
248
|
+
visibility: 'public' | 'private';
|
|
249
|
+
installed: boolean;
|
|
250
|
+
configured?: boolean;
|
|
251
|
+
managedByPlugin?: boolean;
|
|
252
|
+
installedVersion: string | null;
|
|
253
|
+
updateAvailable: boolean;
|
|
254
|
+
/** True when you run this agent outside the marketplace and could follow its releases. */
|
|
255
|
+
canTrack?: boolean;
|
|
256
|
+
details: {
|
|
257
|
+
about: string;
|
|
258
|
+
examples: string[];
|
|
259
|
+
dataSource: string;
|
|
260
|
+
concepts?: PluginConcept[];
|
|
261
|
+
} | null;
|
|
262
|
+
/** Per-tool placeholders, visible before you install. */
|
|
263
|
+
toolSpecs?: PluginToolSpec[];
|
|
264
|
+
/** Releases between the version you run and the current one. */
|
|
265
|
+
releases?: PluginRelease[];
|
|
266
|
+
}
|
|
267
|
+
interface PluginsResult extends ManageResult {
|
|
268
|
+
plugins: PluginListItem[];
|
|
269
|
+
}
|
|
270
|
+
/** One tool in GET /v1/manifest - the contract you code against. */
|
|
271
|
+
interface ManifestTool {
|
|
272
|
+
name: string;
|
|
273
|
+
description: string;
|
|
274
|
+
parameters: Record<string, unknown>;
|
|
275
|
+
sideEffect: 'read' | 'write';
|
|
276
|
+
permission: string | null;
|
|
277
|
+
managed: boolean;
|
|
278
|
+
execution: 'hosted' | 'client';
|
|
279
|
+
/** True when the ENGINE invokes this tool itself; it never appears as a model decision. */
|
|
280
|
+
automatic?: boolean;
|
|
281
|
+
binding: {
|
|
282
|
+
method: string;
|
|
283
|
+
url: string;
|
|
284
|
+
} | null;
|
|
285
|
+
}
|
|
286
|
+
interface ManifestResult extends ManageResult {
|
|
287
|
+
agents: Array<{
|
|
288
|
+
intent: string;
|
|
289
|
+
label: string;
|
|
290
|
+
requiresCustomer: boolean;
|
|
291
|
+
permissions: string[] | null;
|
|
292
|
+
tools: ManifestTool[];
|
|
293
|
+
}>;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Per-tool endpoint auth. A discriminated union on purpose: TypeScript rejects
|
|
297
|
+
* a bearer without a token, or an api_key missing its header/value, at compile
|
|
298
|
+
* time rather than at the first live call.
|
|
299
|
+
*/
|
|
300
|
+
type ToolAuth = {
|
|
301
|
+
type: 'none';
|
|
302
|
+
} | {
|
|
303
|
+
type: 'bearer';
|
|
304
|
+
token: string;
|
|
305
|
+
} | {
|
|
306
|
+
type: 'api_key';
|
|
307
|
+
header: string;
|
|
308
|
+
value: string;
|
|
309
|
+
} | {
|
|
310
|
+
type: 'signed';
|
|
311
|
+
} | {
|
|
312
|
+
type: 'jwks';
|
|
313
|
+
} | {
|
|
314
|
+
type: 'customer_token';
|
|
315
|
+
} | {
|
|
316
|
+
type: 'oauth2';
|
|
317
|
+
tokenUrl: string;
|
|
318
|
+
clientId: string;
|
|
319
|
+
clientSecret: string;
|
|
320
|
+
scope?: string;
|
|
321
|
+
};
|
|
166
322
|
interface CreateAgentInput {
|
|
167
323
|
intent: string;
|
|
168
324
|
label?: string;
|
|
@@ -171,6 +327,13 @@ interface CreateAgentInput {
|
|
|
171
327
|
systemPrompt?: string;
|
|
172
328
|
tools?: string[];
|
|
173
329
|
requiresCustomer?: boolean;
|
|
330
|
+
/**
|
|
331
|
+
* 'internal' makes this your own team's agent: used from the console's agent
|
|
332
|
+
* page, invisible to the API key your customers talk to. Default 'customer'.
|
|
333
|
+
*/
|
|
334
|
+
audience?: 'customer' | 'internal';
|
|
335
|
+
/** An internal agent's remit, in plain words. Put in front of every turn and enforced by refusal. */
|
|
336
|
+
scope?: string;
|
|
174
337
|
}
|
|
175
338
|
interface CreateToolInput {
|
|
176
339
|
name: string;
|
|
@@ -189,7 +352,7 @@ interface BindToolInput {
|
|
|
189
352
|
resultPath?: string | null;
|
|
190
353
|
sampleResponse?: unknown;
|
|
191
354
|
execution?: 'hosted' | 'client';
|
|
192
|
-
auth?:
|
|
355
|
+
auth?: ToolAuth;
|
|
193
356
|
}
|
|
194
357
|
type Request = (method: string, path: string, body?: Record<string, unknown>) => Promise<ManageResult>;
|
|
195
358
|
/** Build the management namespaces over one authenticated request function. */
|
|
@@ -203,7 +366,7 @@ declare function buildManage(request: Request): {
|
|
|
203
366
|
delete: (intent: string) => Promise<ManageResult>;
|
|
204
367
|
};
|
|
205
368
|
tools: {
|
|
206
|
-
list: () => Promise<
|
|
369
|
+
list: () => Promise<ToolsResult>;
|
|
207
370
|
create: (input: CreateToolInput) => Promise<ManageResult>;
|
|
208
371
|
bind: (name: string, binding: BindToolInput) => Promise<ManageResult>;
|
|
209
372
|
test: (name: string) => Promise<ManageResult>;
|
|
@@ -212,13 +375,15 @@ declare function buildManage(request: Request): {
|
|
|
212
375
|
spec?: unknown;
|
|
213
376
|
execution?: "hosted" | "client";
|
|
214
377
|
dryRun?: boolean;
|
|
215
|
-
auth?:
|
|
378
|
+
auth?: ToolAuth;
|
|
216
379
|
}) => Promise<ManageResult>;
|
|
217
380
|
};
|
|
218
381
|
plugins: {
|
|
219
|
-
list: () => Promise<
|
|
220
|
-
install: (id: string) => Promise<
|
|
221
|
-
uninstall: (id: string) => Promise<
|
|
382
|
+
list: () => Promise<PluginsResult>;
|
|
383
|
+
install: (id: string) => Promise<PluginsResult>;
|
|
384
|
+
uninstall: (id: string) => Promise<PluginsResult>;
|
|
385
|
+
/** Follow a pack's releases for an agent you already run. Changes nothing today. */
|
|
386
|
+
track: (id: string) => Promise<PluginsResult>;
|
|
222
387
|
};
|
|
223
388
|
customers: {
|
|
224
389
|
list: (opts?: {
|
|
@@ -248,7 +413,7 @@ declare function buildManage(request: Request): {
|
|
|
248
413
|
event: (id: number | string) => Promise<ManageResult>;
|
|
249
414
|
analytics: (days?: number) => Promise<ManageResult>;
|
|
250
415
|
};
|
|
251
|
-
manifest: () => Promise<
|
|
416
|
+
manifest: () => Promise<ManifestResult>;
|
|
252
417
|
};
|
|
253
418
|
type Manage = ReturnType<typeof buildManage>;
|
|
254
419
|
|
|
@@ -322,4 +487,4 @@ declare class TwelveAI {
|
|
|
322
487
|
private performHandoff;
|
|
323
488
|
}
|
|
324
489
|
|
|
325
|
-
export { type Attachment as A, type BindToolInput as B, type ChatInput as C, type HandoffExecutor as H, type Manage as M, type PendingToolCall as P, TwelveAI as T, type ChatResponse as a, type ClassifyResponse as b, type CreateAgentInput as c, type CreateToolInput as d, type HandoffRequest as e, type ManageResult as f, type
|
|
490
|
+
export { type Attachment as A, type BindToolInput as B, type ChatInput as C, type HandoffExecutor as H, type Manage as M, type PendingToolCall as P, TwelveAI as T, type ChatResponse as a, type ClassifyResponse as b, type CreateAgentInput as c, type CreateToolInput as d, type HandoffRequest as e, type ManageResult as f, type ManifestResult as g, type ManifestTool as h, type PluginConcept as i, type PluginListItem as j, type PluginRelease as k, type PluginToolSpec as l, type PluginsResult as m, type ToolAuth as n, type ToolCall as o, type ToolListItem as p, type ToolResult as q, type ToolVariable as r, type ToolsResult as s, type TwelveAIOptions as t, buildManage as u };
|
package/dist/index.cjs
CHANGED
|
@@ -49,7 +49,9 @@ function buildManage(request) {
|
|
|
49
49
|
plugins: {
|
|
50
50
|
list: () => request("GET", "/v1/plugins"),
|
|
51
51
|
install: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/install`),
|
|
52
|
-
uninstall: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/uninstall`)
|
|
52
|
+
uninstall: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/uninstall`),
|
|
53
|
+
/** Follow a pack's releases for an agent you already run. Changes nothing today. */
|
|
54
|
+
track: (id) => request("POST", `/v1/plugins/${encodeURIComponent(id)}/track`)
|
|
53
55
|
},
|
|
54
56
|
customers: {
|
|
55
57
|
list: (opts = {}) => request("GET", `/v1/customers?limit=${opts.limit ?? 100}${opts.range ? `&range=${opts.range}` : ""}`),
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Attachment, B as BindToolInput, C as ChatInput, a as ChatResponse, b as ClassifyResponse, c as CreateAgentInput, d as CreateToolInput, H as HandoffExecutor, e as HandoffRequest, M as Manage, f as ManageResult, P as PendingToolCall,
|
|
1
|
+
export { A as Attachment, B as BindToolInput, C as ChatInput, a as ChatResponse, b as ClassifyResponse, c as CreateAgentInput, d as CreateToolInput, H as HandoffExecutor, e as HandoffRequest, M as Manage, f as ManageResult, g as ManifestResult, h as ManifestTool, P as PendingToolCall, i as PluginConcept, j as PluginListItem, k as PluginRelease, l as PluginToolSpec, m as PluginsResult, n as ToolAuth, o as ToolCall, p as ToolListItem, q as ToolResult, r as ToolVariable, s as ToolsResult, T as TwelveAI, t as TwelveAIOptions, u as buildManage } from './client-DEsf0_MF.cjs';
|
|
2
2
|
|
|
3
3
|
/** Verify a TwelveAI webhook delivery: the x-webhook-secret header must match your secret. */
|
|
4
4
|
declare function verifyWebhook(secret: string, headers: Record<string, string | string[] | undefined>): boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Attachment, B as BindToolInput, C as ChatInput, a as ChatResponse, b as ClassifyResponse, c as CreateAgentInput, d as CreateToolInput, H as HandoffExecutor, e as HandoffRequest, M as Manage, f as ManageResult, P as PendingToolCall,
|
|
1
|
+
export { A as Attachment, B as BindToolInput, C as ChatInput, a as ChatResponse, b as ClassifyResponse, c as CreateAgentInput, d as CreateToolInput, H as HandoffExecutor, e as HandoffRequest, M as Manage, f as ManageResult, g as ManifestResult, h as ManifestTool, P as PendingToolCall, i as PluginConcept, j as PluginListItem, k as PluginRelease, l as PluginToolSpec, m as PluginsResult, n as ToolAuth, o as ToolCall, p as ToolListItem, q as ToolResult, r as ToolVariable, s as ToolsResult, T as TwelveAI, t as TwelveAIOptions, u as buildManage } from './client-DEsf0_MF.js';
|
|
2
2
|
|
|
3
3
|
/** Verify a TwelveAI webhook delivery: the x-webhook-secret header must match your secret. */
|
|
4
4
|
declare function verifyWebhook(secret: string, headers: Record<string, string | string[] | undefined>): boolean;
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "twelveai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Official SDK for TwelveAI - AI infrastructure for conversational banking. One call runs the whole chat protocol: routing, grounded tool calls, client-fetch hand-offs, confirmations, and request verification.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "TwelveAI",
|