@indemn/cli 1.6.0 → 1.7.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/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +9 -4
- package/.github/workflows/ci.yml +10 -0
- package/.github/workflows/publish.yml +2 -2
- package/.mcp.json +1 -4
- package/CONTRIBUTING.md +3 -1
- package/README.md +69 -176
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +226 -18
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/analytics.d.ts +3 -0
- package/dist/cli/analytics.d.ts.map +1 -0
- package/dist/cli/analytics.js +133 -0
- package/dist/cli/analytics.js.map +1 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +62 -17
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/billing.d.ts +3 -0
- package/dist/cli/billing.d.ts.map +1 -0
- package/dist/cli/billing.js +23 -0
- package/dist/cli/billing.js.map +1 -0
- package/dist/cli/campaigns.d.ts +3 -0
- package/dist/cli/campaigns.d.ts.map +1 -0
- package/dist/cli/campaigns.js +34 -0
- package/dist/cli/campaigns.js.map +1 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +69 -102
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +71 -27
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/conversations.d.ts +3 -0
- package/dist/cli/conversations.d.ts.map +1 -0
- package/dist/cli/conversations.js +129 -0
- package/dist/cli/conversations.js.map +1 -0
- package/dist/cli/distribution.d.ts +3 -0
- package/dist/cli/distribution.d.ts.map +1 -0
- package/dist/cli/distribution.js +122 -0
- package/dist/cli/distribution.js.map +1 -0
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +315 -71
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/functions.d.ts.map +1 -1
- package/dist/cli/functions.js +109 -38
- package/dist/cli/functions.js.map +1 -1
- package/dist/cli/index.js +63 -54
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +27 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +152 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/kb.d.ts.map +1 -1
- package/dist/cli/kb.js +141 -15
- package/dist/cli/kb.js.map +1 -1
- package/dist/cli/link.d.ts +21 -0
- package/dist/cli/link.d.ts.map +1 -0
- package/dist/cli/link.js +112 -0
- package/dist/cli/link.js.map +1 -0
- package/dist/cli/org.d.ts.map +1 -1
- package/dist/cli/org.js +79 -67
- package/dist/cli/org.js.map +1 -1
- package/dist/cli/platform.d.ts +3 -0
- package/dist/cli/platform.d.ts.map +1 -0
- package/dist/cli/platform.js +133 -0
- package/dist/cli/platform.js.map +1 -0
- package/dist/cli/tickets.d.ts +3 -0
- package/dist/cli/tickets.d.ts.map +1 -0
- package/dist/cli/tickets.js +125 -0
- package/dist/cli/tickets.js.map +1 -0
- package/dist/cli/utils/output.d.ts +15 -9
- package/dist/cli/utils/output.d.ts.map +1 -1
- package/dist/cli/utils/output.js +53 -46
- package/dist/cli/utils/output.js.map +1 -1
- package/dist/cli/voice.d.ts +3 -0
- package/dist/cli/voice.d.ts.map +1 -0
- package/dist/cli/voice.js +206 -0
- package/dist/cli/voice.js.map +1 -0
- package/dist/core/diff.d.ts +16 -0
- package/dist/core/diff.d.ts.map +1 -0
- package/dist/core/diff.js +57 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/org-resolver.d.ts +37 -0
- package/dist/core/org-resolver.d.ts.map +1 -0
- package/dist/core/org-resolver.js +73 -0
- package/dist/core/org-resolver.js.map +1 -0
- package/dist/core/runtime.d.ts +36 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +62 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/scope.d.ts +33 -0
- package/dist/core/scope.d.ts.map +1 -0
- package/dist/core/scope.js +37 -0
- package/dist/core/scope.js.map +1 -0
- package/dist/mcp/registry.d.ts +67 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +195 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +87 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-meta.d.ts +21 -0
- package/dist/mcp/tool-meta.d.ts.map +1 -0
- package/dist/mcp/tool-meta.js +203 -0
- package/dist/mcp/tool-meta.js.map +1 -0
- package/dist/mcp/tools.d.ts +2 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1462 -215
- package/dist/mcp/tools.js.map +1 -1
- package/dist/sdk/agent-bundle.d.ts +99 -0
- package/dist/sdk/agent-bundle.d.ts.map +1 -0
- package/dist/sdk/agent-bundle.js +211 -0
- package/dist/sdk/agent-bundle.js.map +1 -0
- package/dist/sdk/agents.d.ts +54 -1
- package/dist/sdk/agents.d.ts.map +1 -1
- package/dist/sdk/agents.js +59 -5
- package/dist/sdk/agents.js.map +1 -1
- package/dist/sdk/analytics.d.ts +158 -0
- package/dist/sdk/analytics.d.ts.map +1 -0
- package/dist/sdk/analytics.js +185 -0
- package/dist/sdk/analytics.js.map +1 -0
- package/dist/sdk/auth.d.ts +34 -12
- package/dist/sdk/auth.d.ts.map +1 -1
- package/dist/sdk/auth.js +60 -77
- package/dist/sdk/auth.js.map +1 -1
- package/dist/sdk/billing.d.ts +25 -0
- package/dist/sdk/billing.d.ts.map +1 -0
- package/dist/sdk/billing.js +61 -0
- package/dist/sdk/billing.js.map +1 -0
- package/dist/sdk/campaigns.d.ts +35 -0
- package/dist/sdk/campaigns.d.ts.map +1 -0
- package/dist/sdk/campaigns.js +59 -0
- package/dist/sdk/campaigns.js.map +1 -0
- package/dist/sdk/chat.d.ts +25 -2
- package/dist/sdk/chat.d.ts.map +1 -1
- package/dist/sdk/chat.js +37 -10
- package/dist/sdk/chat.js.map +1 -1
- package/dist/sdk/client.d.ts +93 -5
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +362 -100
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/config-change.d.ts +74 -0
- package/dist/sdk/config-change.d.ts.map +1 -0
- package/dist/sdk/config-change.js +117 -0
- package/dist/sdk/config-change.js.map +1 -0
- package/dist/sdk/config.d.ts.map +1 -1
- package/dist/sdk/config.js +2 -1
- package/dist/sdk/config.js.map +1 -1
- package/dist/sdk/conversations.d.ts +101 -0
- package/dist/sdk/conversations.d.ts.map +1 -0
- package/dist/sdk/conversations.js +155 -0
- package/dist/sdk/conversations.js.map +1 -0
- package/dist/sdk/credentials.d.ts +25 -0
- package/dist/sdk/credentials.d.ts.map +1 -0
- package/dist/sdk/credentials.js +44 -0
- package/dist/sdk/credentials.js.map +1 -0
- package/dist/sdk/distribution.d.ts +94 -0
- package/dist/sdk/distribution.d.ts.map +1 -0
- package/dist/sdk/distribution.js +100 -0
- package/dist/sdk/distribution.js.map +1 -0
- package/dist/sdk/eval.d.ts +81 -0
- package/dist/sdk/eval.d.ts.map +1 -1
- package/dist/sdk/eval.js +117 -0
- package/dist/sdk/eval.js.map +1 -1
- package/dist/sdk/functions.d.ts +14 -1
- package/dist/sdk/functions.d.ts.map +1 -1
- package/dist/sdk/functions.js +48 -5
- package/dist/sdk/functions.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -0
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +2 -0
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/jarvis-chat.d.ts +28 -0
- package/dist/sdk/jarvis-chat.d.ts.map +1 -0
- package/dist/sdk/jarvis-chat.js +117 -0
- package/dist/sdk/jarvis-chat.js.map +1 -0
- package/dist/sdk/kb.d.ts +69 -1
- package/dist/sdk/kb.d.ts.map +1 -1
- package/dist/sdk/kb.js +111 -24
- package/dist/sdk/kb.js.map +1 -1
- package/dist/sdk/orgs.d.ts +13 -0
- package/dist/sdk/orgs.d.ts.map +1 -0
- package/dist/sdk/orgs.js +59 -0
- package/dist/sdk/orgs.js.map +1 -0
- package/dist/sdk/platform.d.ts +62 -0
- package/dist/sdk/platform.d.ts.map +1 -0
- package/dist/sdk/platform.js +95 -0
- package/dist/sdk/platform.js.map +1 -0
- package/dist/sdk/session.d.ts +25 -0
- package/dist/sdk/session.d.ts.map +1 -0
- package/dist/sdk/session.js +69 -0
- package/dist/sdk/session.js.map +1 -0
- package/dist/sdk/skills.d.ts +46 -0
- package/dist/sdk/skills.d.ts.map +1 -0
- package/dist/sdk/skills.js +203 -0
- package/dist/sdk/skills.js.map +1 -0
- package/dist/sdk/test-chat.d.ts +52 -0
- package/dist/sdk/test-chat.d.ts.map +1 -0
- package/dist/sdk/test-chat.js +134 -0
- package/dist/sdk/test-chat.js.map +1 -0
- package/dist/sdk/tickets.d.ts +98 -0
- package/dist/sdk/tickets.d.ts.map +1 -0
- package/dist/sdk/tickets.js +91 -0
- package/dist/sdk/tickets.js.map +1 -0
- package/dist/sdk/types.d.ts +91 -6
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/voice.d.ts +147 -0
- package/dist/sdk/voice.d.ts.map +1 -0
- package/dist/sdk/voice.js +236 -0
- package/dist/sdk/voice.js.map +1 -0
- package/package.json +22 -3
- package/scripts/check-skills.mjs +25 -0
- package/skills/agent-builder/SKILL.md +89 -252
- package/skills/evaluations/SKILL.md +23 -234
- package/skills/evaluations/references/analysis.md +95 -0
- package/skills/evaluations/references/cli-reference.md +28 -0
- package/skills/evaluations/references/json-formats.md +100 -0
- package/src/cli/agents.ts +202 -22
- package/src/cli/analytics.ts +138 -0
- package/src/cli/auth.ts +56 -18
- package/src/cli/billing.ts +25 -0
- package/src/cli/campaigns.ts +33 -0
- package/src/cli/chat.ts +66 -115
- package/src/cli/config.ts +65 -31
- package/src/cli/conversations.ts +133 -0
- package/src/cli/distribution.ts +116 -0
- package/src/cli/eval.ts +254 -70
- package/src/cli/functions.ts +105 -39
- package/src/cli/index.ts +58 -55
- package/src/cli/init.ts +154 -0
- package/src/cli/kb.ts +120 -17
- package/src/cli/link.ts +117 -0
- package/src/cli/org.ts +81 -75
- package/src/cli/platform.ts +128 -0
- package/src/cli/tickets.ts +130 -0
- package/src/cli/utils/output.ts +51 -42
- package/src/cli/voice.ts +204 -0
- package/src/core/diff.ts +52 -0
- package/src/core/org-resolver.ts +113 -0
- package/src/core/runtime.ts +73 -0
- package/src/core/scope.ts +64 -0
- package/src/mcp/registry.ts +236 -0
- package/src/mcp/server.ts +84 -2
- package/src/mcp/tool-meta.ts +241 -0
- package/src/mcp/tools.ts +1529 -265
- package/src/sdk/agent-bundle.ts +245 -0
- package/src/sdk/agents.ts +74 -5
- package/src/sdk/analytics.ts +220 -0
- package/src/sdk/auth.ts +87 -107
- package/src/sdk/billing.ts +59 -0
- package/src/sdk/campaigns.ts +60 -0
- package/src/sdk/chat.ts +44 -10
- package/src/sdk/client.ts +373 -102
- package/src/sdk/config-change.ts +148 -0
- package/src/sdk/config.ts +2 -1
- package/src/sdk/conversations.ts +199 -0
- package/src/sdk/credentials.ts +53 -0
- package/src/sdk/distribution.ts +132 -0
- package/src/sdk/eval.ts +140 -0
- package/src/sdk/functions.ts +52 -6
- package/src/sdk/index.ts +2 -0
- package/src/sdk/jarvis-chat.ts +112 -0
- package/src/sdk/kb.ts +116 -29
- package/src/sdk/orgs.ts +62 -0
- package/src/sdk/platform.ts +115 -0
- package/src/sdk/session.ts +90 -0
- package/src/sdk/skills.ts +188 -0
- package/src/sdk/test-chat.ts +151 -0
- package/src/sdk/tickets.ts +120 -0
- package/src/sdk/types.ts +88 -6
- package/src/sdk/voice.ts +262 -0
- package/test/cli/entry.test.ts +34 -0
- package/test/cli/init.test.ts +66 -0
- package/test/cli/link.test.ts +57 -0
- package/test/core/org-resolver.test.ts +92 -0
- package/test/core/runtime.test.ts +30 -0
- package/test/core/scope.test.ts +93 -0
- package/test/harness.test.ts +24 -0
- package/test/helpers/config-home.ts +22 -0
- package/test/helpers/fake-middleware.ts +56 -0
- package/test/helpers/fetch-recorder.ts +75 -0
- package/test/helpers/jwt.ts +9 -0
- package/test/helpers/mcp-pair.ts +38 -0
- package/test/mcp/__snapshots__/tools-snapshot.test.ts.snap +145 -0
- package/test/mcp/askers.test.ts +60 -0
- package/test/mcp/elicit-timeout.test.ts +29 -0
- package/test/mcp/registry.test.ts +169 -0
- package/test/mcp/shaping.test.ts +41 -0
- package/test/mcp/tools-snapshot.test.ts +42 -0
- package/test/sdk/agents.test.ts +232 -0
- package/test/sdk/analytics.test.ts +89 -0
- package/test/sdk/auth.test.ts +70 -0
- package/test/sdk/billing.test.ts +47 -0
- package/test/sdk/campaigns.test.ts +43 -0
- package/test/sdk/client.test.ts +80 -0
- package/test/sdk/config-change.test.ts +142 -0
- package/test/sdk/conversations.test.ts +80 -0
- package/test/sdk/credentials.test.ts +33 -0
- package/test/sdk/distribution.test.ts +55 -0
- package/test/sdk/eval.test.ts +155 -0
- package/test/sdk/kb-upload.test.ts +50 -0
- package/test/sdk/kb.test.ts +95 -0
- package/test/sdk/orgs.test.ts +48 -0
- package/test/sdk/platform.test.ts +89 -0
- package/test/sdk/renewal.test.ts +115 -0
- package/test/sdk/session.test.ts +60 -0
- package/test/sdk/skills.test.ts +235 -0
- package/test/sdk/test-chat.test.ts +112 -0
- package/test/sdk/tickets.test.ts +42 -0
- package/test/sdk/voice.test.ts +147 -0
- package/vitest.config.ts +11 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { IndemnClient } from './client.js';
|
|
2
|
+
export interface DistributionPath {
|
|
3
|
+
id: string;
|
|
4
|
+
host_name?: string;
|
|
5
|
+
path_name?: string;
|
|
6
|
+
path_expression?: string;
|
|
7
|
+
id_bot?: string;
|
|
8
|
+
bot_name?: string;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
export interface Distributions {
|
|
12
|
+
paths: DistributionPath[];
|
|
13
|
+
aiAgents?: Array<{
|
|
14
|
+
_id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
}>;
|
|
17
|
+
hosts?: unknown[];
|
|
18
|
+
/** The org's embed code: one script tag for every path. */
|
|
19
|
+
scriptTag?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface Template {
|
|
22
|
+
_id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
category?: string[];
|
|
26
|
+
tags?: string[];
|
|
27
|
+
agent_id?: {
|
|
28
|
+
_id?: string;
|
|
29
|
+
name?: string;
|
|
30
|
+
id_organization?: string;
|
|
31
|
+
} | string;
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
}
|
|
34
|
+
/** Web widget distributions (which website paths open which agent), templates and solutions. */
|
|
35
|
+
export declare class DistributionSDK {
|
|
36
|
+
private client;
|
|
37
|
+
constructor(client: IndemnClient);
|
|
38
|
+
list(): Promise<Distributions>;
|
|
39
|
+
/** Embed code and the website paths that open one agent. */
|
|
40
|
+
embed(agentId: string): Promise<{
|
|
41
|
+
scriptTag?: string;
|
|
42
|
+
paths: DistributionPath[];
|
|
43
|
+
}>;
|
|
44
|
+
/** Open an agent on a website path. The agent must be in the org. */
|
|
45
|
+
create(input: {
|
|
46
|
+
agentId: string;
|
|
47
|
+
host: string;
|
|
48
|
+
path: string;
|
|
49
|
+
pathExpression?: string;
|
|
50
|
+
greeting?: string;
|
|
51
|
+
allowUpload?: boolean;
|
|
52
|
+
}): Promise<unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Change a distribution. copilot's update is not scoped to the org and
|
|
55
|
+
* creates a document for an unknown id, so only ids from this org's list
|
|
56
|
+
* are accepted, and a new agent must be in the org.
|
|
57
|
+
*/
|
|
58
|
+
update(id: string, changes: Record<string, unknown>): Promise<unknown>;
|
|
59
|
+
/** Templates are shared by every org on the platform. */
|
|
60
|
+
listTemplates(): Promise<Template[]>;
|
|
61
|
+
/** Publish an agent of this org as a template every org can see. */
|
|
62
|
+
createTemplate(input: {
|
|
63
|
+
agentId: string;
|
|
64
|
+
name: string;
|
|
65
|
+
description?: string;
|
|
66
|
+
category?: string[];
|
|
67
|
+
tags?: string[];
|
|
68
|
+
}): Promise<Template>;
|
|
69
|
+
/** Only templates made from an agent of this org may be changed from here. */
|
|
70
|
+
private ownTemplate;
|
|
71
|
+
updateTemplate(id: string, changes: {
|
|
72
|
+
name?: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
category?: string[];
|
|
75
|
+
tags?: string[];
|
|
76
|
+
}): Promise<Template>;
|
|
77
|
+
deleteTemplate(id: string): Promise<unknown>;
|
|
78
|
+
/**
|
|
79
|
+
* A new agent in this org copied from a template (bot, prompt, model,
|
|
80
|
+
* skills and knowledge bases; not phone numbers, voice settings or
|
|
81
|
+
* distributions).
|
|
82
|
+
*/
|
|
83
|
+
createFromTemplate(templateId: string, opts?: {
|
|
84
|
+
name?: string;
|
|
85
|
+
channels?: string[];
|
|
86
|
+
}): Promise<{
|
|
87
|
+
new_agent_id?: string;
|
|
88
|
+
new_agent_name?: string;
|
|
89
|
+
[k: string]: unknown;
|
|
90
|
+
}>;
|
|
91
|
+
/** Solutions the org has, with their connected systems (read-only). */
|
|
92
|
+
listSolutions(): Promise<unknown[]>;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=distribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distribution.d.ts","sourceRoot":"","sources":["../../src/sdk/distribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { AgentsSDK } from './agents.js';
|
|
2
|
+
import { idOf } from './conversations.js';
|
|
3
|
+
import { CliError } from '../core/runtime.js';
|
|
4
|
+
/** Web widget distributions (which website paths open which agent), templates and solutions. */
|
|
5
|
+
export class DistributionSDK {
|
|
6
|
+
client;
|
|
7
|
+
constructor(client) {
|
|
8
|
+
this.client = client;
|
|
9
|
+
}
|
|
10
|
+
list() {
|
|
11
|
+
return this.client.copilotGet('/organization/:org_id/distributions');
|
|
12
|
+
}
|
|
13
|
+
/** Embed code and the website paths that open one agent. */
|
|
14
|
+
async embed(agentId) {
|
|
15
|
+
await new AgentsSDK(this.client).getAgent(agentId);
|
|
16
|
+
const d = await this.list();
|
|
17
|
+
return { scriptTag: d.scriptTag, paths: (d.paths ?? []).filter((p) => idOf(p.id_bot) === agentId) };
|
|
18
|
+
}
|
|
19
|
+
/** Open an agent on a website path. The agent must be in the org. */
|
|
20
|
+
async create(input) {
|
|
21
|
+
await new AgentsSDK(this.client).getAgent(input.agentId);
|
|
22
|
+
return this.client.copilotPost('/organization/:org_id/distributions', {
|
|
23
|
+
hostname: input.host,
|
|
24
|
+
pathname: input.path,
|
|
25
|
+
pathExpression: input.pathExpression ?? input.path,
|
|
26
|
+
id_bot: input.agentId,
|
|
27
|
+
aiAgentSettings: { betaRelease: false },
|
|
28
|
+
userCapabilities: { startConversation: true, endConversation: true, uploadAttachment: Boolean(input.allowUpload) },
|
|
29
|
+
...(input.greeting ? { greetingMessage: input.greeting } : {}),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Change a distribution. copilot's update is not scoped to the org and
|
|
34
|
+
* creates a document for an unknown id, so only ids from this org's list
|
|
35
|
+
* are accepted, and a new agent must be in the org.
|
|
36
|
+
*/
|
|
37
|
+
async update(id, changes) {
|
|
38
|
+
const existing = (await this.list()).paths.find((p) => String(p.id) === id);
|
|
39
|
+
if (!existing)
|
|
40
|
+
throw new CliError(`Distribution ${id} is not in this org. See \`indemn distributions list\`.`);
|
|
41
|
+
if (typeof changes.id_bot === 'string')
|
|
42
|
+
await new AgentsSDK(this.client).getAgent(changes.id_bot);
|
|
43
|
+
return this.client.copilotPut(`/organization/:org_id/distributions/${id}`, changes);
|
|
44
|
+
}
|
|
45
|
+
/** Templates are shared by every org on the platform. */
|
|
46
|
+
listTemplates() {
|
|
47
|
+
return this.client.copilotGet('/organization/:org_id/templates');
|
|
48
|
+
}
|
|
49
|
+
/** Publish an agent of this org as a template every org can see. */
|
|
50
|
+
async createTemplate(input) {
|
|
51
|
+
await new AgentsSDK(this.client).getAgent(input.agentId);
|
|
52
|
+
return this.client.copilotPost('/organization/:org_id/templates', {
|
|
53
|
+
agent_id: input.agentId, name: input.name, description: input.description, category: input.category, tags: input.tags,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/** Only templates made from an agent of this org may be changed from here. */
|
|
57
|
+
async ownTemplate(id) {
|
|
58
|
+
const t = (await this.listTemplates()).find((x) => String(x._id) === id);
|
|
59
|
+
if (!t)
|
|
60
|
+
throw new CliError(`Template ${id} not found.`);
|
|
61
|
+
const src = typeof t.agent_id === 'object' && t.agent_id ? t.agent_id : undefined;
|
|
62
|
+
const orgId = await this.client.currentOrgId();
|
|
63
|
+
if (!src || idOf(src.id_organization) !== orgId) {
|
|
64
|
+
throw new CliError(`Template "${t.name}" was made from an agent of another org; the CLI only changes templates of your own org.`);
|
|
65
|
+
}
|
|
66
|
+
return t;
|
|
67
|
+
}
|
|
68
|
+
async updateTemplate(id, changes) {
|
|
69
|
+
await this.ownTemplate(id);
|
|
70
|
+
return this.client.copilotPut(`/organization/:org_id/templates/${id}`, changes);
|
|
71
|
+
}
|
|
72
|
+
async deleteTemplate(id) {
|
|
73
|
+
await this.ownTemplate(id);
|
|
74
|
+
return this.client.copilotDelete(`/organization/:org_id/templates/${id}`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A new agent in this org copied from a template (bot, prompt, model,
|
|
78
|
+
* skills and knowledge bases; not phone numbers, voice settings or
|
|
79
|
+
* distributions).
|
|
80
|
+
*/
|
|
81
|
+
async createFromTemplate(templateId, opts = {}) {
|
|
82
|
+
const t = (await this.listTemplates()).find((x) => String(x._id) === templateId);
|
|
83
|
+
if (!t)
|
|
84
|
+
throw new CliError(`Template ${templateId} not found. See \`indemn templates list\`.`);
|
|
85
|
+
const source = typeof t.agent_id === 'object' && t.agent_id ? idOf(t.agent_id._id) : idOf(t.agent_id);
|
|
86
|
+
if (!source)
|
|
87
|
+
throw new CliError(`Template "${t.name}" has no source agent.`);
|
|
88
|
+
return this.client.copilotPost('/organization/:org_id/ai-studio/v2/bots/clone', {
|
|
89
|
+
source_id_bot: source,
|
|
90
|
+
...(opts.name ? { agent_name: opts.name } : {}),
|
|
91
|
+
...(opts.channels?.length ? { channels: opts.channels } : {}),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Solutions the org has, with their connected systems (read-only). */
|
|
95
|
+
async listSolutions() {
|
|
96
|
+
const res = await this.client.copilotGet('/organization/:org_id/solutions');
|
|
97
|
+
return res.solutions ?? [];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=distribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/sdk/distribution.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/eval.d.ts
CHANGED
|
@@ -8,6 +8,87 @@ export declare class EvalSDK {
|
|
|
8
8
|
getRunStatus(runId: string): Promise<EvaluationRun>;
|
|
9
9
|
getRunResults(runId: string): Promise<EvaluationResult[]>;
|
|
10
10
|
getBotContext(botId: string): Promise<BotContext>;
|
|
11
|
+
/**
|
|
12
|
+
* The evaluations service checks nothing about orgs. Before acting on an
|
|
13
|
+
* agent, confirm through copilot (which refuses other orgs' agents) that it
|
|
14
|
+
* belongs to the org this command acts on.
|
|
15
|
+
*/
|
|
16
|
+
assertAgentInOrg(agentId: string): Promise<void>;
|
|
17
|
+
/** A run's agent must be in the org too, so results of other orgs are not read. */
|
|
18
|
+
getRunInOrg(runId: string): Promise<EvaluationRun>;
|
|
19
|
+
qualityMetrics(): Promise<Record<string, unknown>>;
|
|
20
|
+
trends(agentId: string, testSetId?: string, limit?: number): Promise<{
|
|
21
|
+
series: unknown[];
|
|
22
|
+
drift: unknown;
|
|
23
|
+
}>;
|
|
24
|
+
compareRuns(runA: string, runB: string): Promise<unknown>;
|
|
25
|
+
/** Server-rendered PDF report of a completed run; returns a link valid for 15 minutes. */
|
|
26
|
+
exportReport(runId: string, force?: boolean): Promise<{
|
|
27
|
+
download_url: string;
|
|
28
|
+
report_id: string;
|
|
29
|
+
}>;
|
|
30
|
+
downloadReport(reportId: string): Promise<{
|
|
31
|
+
download_url: string;
|
|
32
|
+
}>;
|
|
33
|
+
prodCalls(botId: string, opts?: {
|
|
34
|
+
search?: string;
|
|
35
|
+
limit?: number;
|
|
36
|
+
}): Promise<unknown[]>;
|
|
37
|
+
prodCall(sessionId: string): Promise<{
|
|
38
|
+
bot_id?: string;
|
|
39
|
+
[k: string]: unknown;
|
|
40
|
+
}>;
|
|
41
|
+
/** Turn an ingested voice call into a regression test item (test set "Regressions (review)"). */
|
|
42
|
+
promoteProdCall(sessionId: string): Promise<unknown>;
|
|
43
|
+
/** Grade a replayed conversation against a baseline one with the agent's stored evaluator. */
|
|
44
|
+
evaluateTranscript(input: {
|
|
45
|
+
agent_id: string;
|
|
46
|
+
baseline_transcript: Array<{
|
|
47
|
+
sender: 'user' | 'bot';
|
|
48
|
+
text: string;
|
|
49
|
+
}>;
|
|
50
|
+
replay_transcript: Array<{
|
|
51
|
+
sender: 'user' | 'bot';
|
|
52
|
+
text: string;
|
|
53
|
+
}>;
|
|
54
|
+
conversation_id?: string;
|
|
55
|
+
}): Promise<unknown>;
|
|
56
|
+
listDatasets(agentId?: string): Promise<unknown[]>;
|
|
57
|
+
getDataset(id: string): Promise<{
|
|
58
|
+
agent_id?: string;
|
|
59
|
+
[k: string]: unknown;
|
|
60
|
+
}>;
|
|
61
|
+
deleteDataset(id: string): Promise<unknown>;
|
|
62
|
+
listTestCases(datasetId: string): Promise<unknown[]>;
|
|
63
|
+
getTestCase(id: string): Promise<unknown>;
|
|
64
|
+
deleteTestCase(id: string): Promise<unknown>;
|
|
65
|
+
evaluatorTypes(): Promise<unknown[]>;
|
|
66
|
+
listEvaluatorConfigs(agentId?: string): Promise<unknown[]>;
|
|
67
|
+
getEvaluatorConfig(id: string): Promise<{
|
|
68
|
+
agent_id?: string;
|
|
69
|
+
[k: string]: unknown;
|
|
70
|
+
}>;
|
|
71
|
+
deleteEvaluatorConfig(id: string): Promise<unknown>;
|
|
11
72
|
pollRunUntilComplete(runId: string, intervalMs?: number, timeoutMs?: number): Promise<EvaluationRun>;
|
|
12
73
|
}
|
|
74
|
+
export interface GateOptions {
|
|
75
|
+
/** Fail when passed/total is below this (0..1). */
|
|
76
|
+
minPassRate?: number;
|
|
77
|
+
/** Fail when the run's p95 latency is above this. */
|
|
78
|
+
maxP95Ms?: number;
|
|
79
|
+
/** block: a failed run fails the gate (default). warn: judge on pass rate and latency only. */
|
|
80
|
+
errorPolicy?: 'block' | 'warn';
|
|
81
|
+
/** Also fail when any case had an infrastructure error. */
|
|
82
|
+
failOnError?: boolean;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The same verdict as the evaluations repo's scripts/eval_gate.py, plus an
|
|
86
|
+
* optional fail-on-error. pass rate = passed / total, so errored and
|
|
87
|
+
* unevaluated cases lower it.
|
|
88
|
+
*/
|
|
89
|
+
export declare function gateVerdict(run: EvaluationRun, opts: GateOptions): {
|
|
90
|
+
pass: boolean;
|
|
91
|
+
passRate: number;
|
|
92
|
+
reasons: string[];
|
|
93
|
+
};
|
|
13
94
|
//# sourceMappingURL=eval.d.ts.map
|
package/dist/sdk/eval.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/sdk/eval.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/eval.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CliError, NeedsInputError, SessionExpiredError } from '../core/runtime.js';
|
|
1
2
|
export class EvalSDK {
|
|
2
3
|
client;
|
|
3
4
|
constructor(client) {
|
|
@@ -19,6 +20,99 @@ export class EvalSDK {
|
|
|
19
20
|
async getBotContext(botId) {
|
|
20
21
|
return this.client.evalsGet(`/api/v1/bots/${botId}/context`);
|
|
21
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* The evaluations service checks nothing about orgs. Before acting on an
|
|
25
|
+
* agent, confirm through copilot (which refuses other orgs' agents) that it
|
|
26
|
+
* belongs to the org this command acts on.
|
|
27
|
+
*/
|
|
28
|
+
async assertAgentInOrg(agentId) {
|
|
29
|
+
const { AgentsSDK } = await import('./agents.js');
|
|
30
|
+
const agent = await new AgentsSDK(this.client).getAgent(agentId).catch((err) => {
|
|
31
|
+
// "Which org?" and "log in again" are not answers about the agent.
|
|
32
|
+
if (err instanceof NeedsInputError || err instanceof SessionExpiredError)
|
|
33
|
+
throw err;
|
|
34
|
+
return undefined;
|
|
35
|
+
});
|
|
36
|
+
if (!agent)
|
|
37
|
+
throw new CliError(`Agent ${agentId} is not in the organization this command acts on. Nothing was run.`);
|
|
38
|
+
}
|
|
39
|
+
/** A run's agent must be in the org too, so results of other orgs are not read. */
|
|
40
|
+
async getRunInOrg(runId) {
|
|
41
|
+
const run = await this.getRunStatus(runId);
|
|
42
|
+
if (run.agent_id)
|
|
43
|
+
await this.assertAgentInOrg(run.agent_id);
|
|
44
|
+
return run;
|
|
45
|
+
}
|
|
46
|
+
qualityMetrics() {
|
|
47
|
+
return this.client.evalsGet('/api/v1/evaluations/quality-metrics');
|
|
48
|
+
}
|
|
49
|
+
trends(agentId, testSetId, limit = 50) {
|
|
50
|
+
const q = { agent_id: agentId, limit: String(limit) };
|
|
51
|
+
if (testSetId)
|
|
52
|
+
q.test_set_id = testSetId;
|
|
53
|
+
return this.client.evalsGet('/api/v1/trends', q);
|
|
54
|
+
}
|
|
55
|
+
compareRuns(runA, runB) {
|
|
56
|
+
return this.client.evalsGet('/api/v1/trends/compare', { run_a: runA, run_b: runB });
|
|
57
|
+
}
|
|
58
|
+
/** Server-rendered PDF report of a completed run; returns a link valid for 15 minutes. */
|
|
59
|
+
exportReport(runId, force = false) {
|
|
60
|
+
return this.client.evalsPost(`/api/v1/runs/${runId}/export${force ? '?force=true' : ''}`);
|
|
61
|
+
}
|
|
62
|
+
downloadReport(reportId) {
|
|
63
|
+
return this.client.evalsGet(`/api/v1/reports/${reportId}/download`);
|
|
64
|
+
}
|
|
65
|
+
prodCalls(botId, opts = {}) {
|
|
66
|
+
const q = { bot_id: botId, limit: String(opts.limit ?? 50) };
|
|
67
|
+
if (opts.search)
|
|
68
|
+
q.search = opts.search;
|
|
69
|
+
return this.client.evalsGet('/api/v1/prod-calls', q);
|
|
70
|
+
}
|
|
71
|
+
prodCall(sessionId) {
|
|
72
|
+
return this.client.evalsGet(`/api/v1/prod-calls/${sessionId}`);
|
|
73
|
+
}
|
|
74
|
+
/** Turn an ingested voice call into a regression test item (test set "Regressions (review)"). */
|
|
75
|
+
promoteProdCall(sessionId) {
|
|
76
|
+
return this.client.evalsPost(`/api/v1/prod-calls/${sessionId}/promote`);
|
|
77
|
+
}
|
|
78
|
+
/** Grade a replayed conversation against a baseline one with the agent's stored evaluator. */
|
|
79
|
+
async evaluateTranscript(input) {
|
|
80
|
+
const res = await this.client.evalsPost('/api/v1/evaluate-transcript', input);
|
|
81
|
+
// The service reports internal errors with HTTP 200.
|
|
82
|
+
if (res && res.success === false && res.error)
|
|
83
|
+
throw new Error(`Transcript evaluation failed: ${res.error}`);
|
|
84
|
+
return res;
|
|
85
|
+
}
|
|
86
|
+
listDatasets(agentId) {
|
|
87
|
+
return this.client.evalsGet('/api/v1/datasets', agentId ? { agent_id: agentId } : undefined);
|
|
88
|
+
}
|
|
89
|
+
getDataset(id) {
|
|
90
|
+
return this.client.evalsGet(`/api/v1/datasets/${id}`);
|
|
91
|
+
}
|
|
92
|
+
deleteDataset(id) {
|
|
93
|
+
return this.client.evalsDelete(`/api/v1/datasets/${id}`);
|
|
94
|
+
}
|
|
95
|
+
listTestCases(datasetId) {
|
|
96
|
+
return this.client.evalsGet(`/api/v1/datasets/${datasetId}/test-cases`);
|
|
97
|
+
}
|
|
98
|
+
getTestCase(id) {
|
|
99
|
+
return this.client.evalsGet(`/api/v1/test-cases/${id}`);
|
|
100
|
+
}
|
|
101
|
+
deleteTestCase(id) {
|
|
102
|
+
return this.client.evalsDelete(`/api/v1/test-cases/${id}`);
|
|
103
|
+
}
|
|
104
|
+
evaluatorTypes() {
|
|
105
|
+
return this.client.evalsGet('/api/v1/evaluators/types');
|
|
106
|
+
}
|
|
107
|
+
listEvaluatorConfigs(agentId) {
|
|
108
|
+
return this.client.evalsGet('/api/v1/evaluator-configs', agentId ? { agent_id: agentId } : undefined);
|
|
109
|
+
}
|
|
110
|
+
getEvaluatorConfig(id) {
|
|
111
|
+
return this.client.evalsGet(`/api/v1/evaluator-configs/${id}`);
|
|
112
|
+
}
|
|
113
|
+
deleteEvaluatorConfig(id) {
|
|
114
|
+
return this.client.evalsDelete(`/api/v1/evaluator-configs/${id}`);
|
|
115
|
+
}
|
|
22
116
|
async pollRunUntilComplete(runId, intervalMs = 5000, timeoutMs = 300000) {
|
|
23
117
|
const startTime = Date.now();
|
|
24
118
|
while (true) {
|
|
@@ -33,4 +127,27 @@ export class EvalSDK {
|
|
|
33
127
|
}
|
|
34
128
|
}
|
|
35
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* The same verdict as the evaluations repo's scripts/eval_gate.py, plus an
|
|
132
|
+
* optional fail-on-error. pass rate = passed / total, so errored and
|
|
133
|
+
* unevaluated cases lower it.
|
|
134
|
+
*/
|
|
135
|
+
export function gateVerdict(run, opts) {
|
|
136
|
+
const reasons = [];
|
|
137
|
+
const total = run.total ?? 0;
|
|
138
|
+
const passRate = total ? (run.passed ?? 0) / total : 0;
|
|
139
|
+
if ((opts.errorPolicy ?? 'block') === 'block' && run.status === 'failed')
|
|
140
|
+
reasons.push('run status=failed');
|
|
141
|
+
if (total === 0)
|
|
142
|
+
reasons.push('no cases evaluated');
|
|
143
|
+
if (opts.minPassRate !== undefined && total > 0 && passRate < opts.minPassRate) {
|
|
144
|
+
reasons.push(`pass rate ${passRate.toFixed(3)} < ${opts.minPassRate}`);
|
|
145
|
+
}
|
|
146
|
+
const p95 = run.latency?.p95_ms;
|
|
147
|
+
if (opts.maxP95Ms !== undefined && typeof p95 === 'number' && p95 > opts.maxP95Ms)
|
|
148
|
+
reasons.push(`p95 latency ${p95} > ${opts.maxP95Ms}`);
|
|
149
|
+
if (opts.failOnError && (run.errors ?? 0) > 0)
|
|
150
|
+
reasons.push(`${run.errors} case(s) errored`);
|
|
151
|
+
return { pass: reasons.length === 0, passRate, reasons };
|
|
152
|
+
}
|
|
36
153
|
//# sourceMappingURL=eval.js.map
|
package/dist/sdk/eval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/sdk/eval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/sdk/eval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AASpF,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;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7E,mEAAmE;YACnE,IAAI,GAAG,YAAY,eAAe,IAAI,GAAG,YAAY,mBAAmB;gBAAE,MAAM,GAAG,CAAC;YACpF,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,SAAS,OAAO,oEAAoE,CAAC,CAAC;IACvH,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,SAAkB,EAAE,KAAK,GAAG,EAAE;QACpD,MAAM,CAAC,GAA2B,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9E,IAAI,SAAS;YAAE,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,IAAY;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,0FAA0F;IAC1F,YAAY,CAAC,KAAa,EAAE,KAAK,GAAG,KAAK;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,KAAK,UAAU,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,QAAQ,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,OAA4C,EAAE;QACrE,MAAM,CAAC,GAA2B,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACrF,IAAI,IAAI,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,iGAAiG;IACjG,eAAe,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,SAAS,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,kBAAkB,CAAC,KAA+L;QACtN,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAwC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACrH,qDAAqD;QACrD,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7G,OAAO,GAAG,CAAC;IACb,CAAC;IAED,YAAY,CAAC,OAAgB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/F,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,SAAS,aAAa,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC1D,CAAC;IAED,oBAAoB,CAAC,OAAgB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxG,CAAC;IAED,kBAAkB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,qBAAqB,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACpE,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;AAaD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAkB,EAAE,IAAiB;IAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC5G,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;IAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzI,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAC7F,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC"}
|
package/dist/sdk/functions.d.ts
CHANGED
|
@@ -16,15 +16,28 @@ export declare class FunctionsSDK {
|
|
|
16
16
|
type: string;
|
|
17
17
|
description?: string;
|
|
18
18
|
required?: boolean;
|
|
19
|
+
allowedValues?: string[];
|
|
19
20
|
}): Promise<FunctionParameter>;
|
|
20
21
|
updateParameter(agentId: string, funcId: string, paramId: string, param: {
|
|
21
22
|
name?: string;
|
|
22
23
|
type?: string;
|
|
23
24
|
description?: string;
|
|
24
25
|
required?: boolean;
|
|
26
|
+
allowedValues?: string[];
|
|
25
27
|
}): Promise<FunctionParameter>;
|
|
26
28
|
deleteParameter(agentId: string, funcId: string, paramId: string): Promise<void>;
|
|
27
|
-
|
|
29
|
+
/** Skill templates; copilot filters by channel and assumes web when none is given (so voice ones are hidden). */
|
|
30
|
+
listMasterFunctions(channels?: string[]): Promise<unknown[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Ask copilot to propose skills from a document (file) or pasted text.
|
|
33
|
+
* Nothing is created; pass the proposal to bulkCreate after review.
|
|
34
|
+
*/
|
|
35
|
+
generateFromDoc(agentId: string, source: {
|
|
36
|
+
filePath?: string;
|
|
37
|
+
text?: string;
|
|
38
|
+
}): Promise<unknown>;
|
|
39
|
+
/** Create several skills at once. Names are checked first; copilot creates them without a transaction. */
|
|
40
|
+
bulkCreate(agentId: string, functions: Array<Record<string, unknown>>): Promise<BotFunction[]>;
|
|
28
41
|
listLLMModels(): Promise<unknown[]>;
|
|
29
42
|
}
|
|
30
43
|
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/sdk/functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO3G,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;IAQjF,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAQjG,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,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAepL,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,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsB1M,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtF,iHAAiH;IAC3G,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOlE;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtG,0GAA0G;IACpG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ9F,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAK1C"}
|
package/dist/sdk/functions.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { CliError } from '../core/runtime.js';
|
|
2
|
+
import { assertSkillNameAllowed } from './skills.js';
|
|
3
|
+
/** Allowed values as copilot stores them (quick-reply buttons); its parameter route parses them from a JSON string. */
|
|
4
|
+
function choices(values) {
|
|
5
|
+
return JSON.stringify(values.map((v) => ({ title: v, payload: v, type: 'postback' })));
|
|
6
|
+
}
|
|
1
7
|
export class FunctionsSDK {
|
|
2
8
|
client;
|
|
3
9
|
constructor(client) {
|
|
@@ -7,9 +13,11 @@ export class FunctionsSDK {
|
|
|
7
13
|
return this.client.copilotGet(`/organization/:org_id/ai-studio/bots/${agentId}/functions`);
|
|
8
14
|
}
|
|
9
15
|
async createFunction(agentId, input) {
|
|
16
|
+
assertSkillNameAllowed(input.name, input.type);
|
|
10
17
|
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions`, input);
|
|
11
18
|
}
|
|
12
19
|
async updateFunction(agentId, funcId, input) {
|
|
20
|
+
assertSkillNameAllowed(input.name, input.type);
|
|
13
21
|
return this.client.copilotPut(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}`, input);
|
|
14
22
|
}
|
|
15
23
|
async deleteFunction(agentId, funcId) {
|
|
@@ -34,23 +42,58 @@ export class FunctionsSDK {
|
|
|
34
42
|
type: param.type,
|
|
35
43
|
description: param.description,
|
|
36
44
|
is_required: param.required ?? false,
|
|
45
|
+
...(param.allowedValues?.length ? { enums: choices(param.allowedValues), isEnumsEnabled: true } : {}),
|
|
37
46
|
}];
|
|
38
47
|
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/parameters`, payload);
|
|
39
48
|
}
|
|
40
49
|
async updateParameter(agentId, funcId, paramId, param) {
|
|
41
|
-
// Server uses POST upsert (no PUT /:id endpoint exists)
|
|
50
|
+
// Server uses POST upsert (no PUT /:id endpoint exists) and writes every field it is sent, clearing
|
|
51
|
+
// allowed values left out: start from the saved parameter so only the named fields change.
|
|
52
|
+
const current = (await this.listParameters(agentId, funcId)).find((p) => p._id === paramId);
|
|
53
|
+
if (!current)
|
|
54
|
+
throw new CliError(`Parameter ${paramId} is not on this skill.`);
|
|
42
55
|
const payload = [{
|
|
43
56
|
id: paramId,
|
|
44
|
-
|
|
45
|
-
|
|
57
|
+
name: param.name ?? current.name,
|
|
58
|
+
type: param.type ?? current.type,
|
|
59
|
+
description: param.description ?? current.description,
|
|
60
|
+
...(param.description === undefined ? { descriptionOps: current.descriptionOps } : {}),
|
|
61
|
+
question_title: current.question_title,
|
|
62
|
+
is_required: param.required ?? current.is_required ?? false,
|
|
63
|
+
enums: param.allowedValues ? choices(param.allowedValues) : JSON.stringify(current.enums ?? []),
|
|
64
|
+
isEnumsEnabled: param.allowedValues ? param.allowedValues.length > 0 : (current.isEnumsEnabled ?? false),
|
|
46
65
|
}];
|
|
47
66
|
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/parameters`, payload);
|
|
48
67
|
}
|
|
49
68
|
async deleteParameter(agentId, funcId, paramId) {
|
|
50
69
|
await this.client.copilotDelete(`/organization/:org_id/ai-studio/bots/${agentId}/functions/${funcId}/parameters/${paramId}`);
|
|
51
70
|
}
|
|
52
|
-
|
|
53
|
-
|
|
71
|
+
/** Skill templates; copilot filters by channel and assumes web when none is given (so voice ones are hidden). */
|
|
72
|
+
async listMasterFunctions(channels) {
|
|
73
|
+
return this.client.copilotGet('/organization/:org_id/ai-studio/master-functions', channels?.length ? { channel: channels.join(',') } : undefined);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Ask copilot to propose skills from a document (file) or pasted text.
|
|
77
|
+
* Nothing is created; pass the proposal to bulkCreate after review.
|
|
78
|
+
*/
|
|
79
|
+
async generateFromDoc(agentId, source) {
|
|
80
|
+
const path = `/organization/:org_id/ai-studio/bots/${agentId}/functions/generate-from-doc`;
|
|
81
|
+
if (source.filePath) {
|
|
82
|
+
const { readFileSync } = await import('node:fs');
|
|
83
|
+
const { basename } = await import('node:path');
|
|
84
|
+
const form = new FormData();
|
|
85
|
+
form.append('file', new Blob([readFileSync(source.filePath)]), basename(source.filePath));
|
|
86
|
+
return this.client.copilotPostForm(path, form);
|
|
87
|
+
}
|
|
88
|
+
return this.client.copilotPost(path, { text: source.text });
|
|
89
|
+
}
|
|
90
|
+
/** Create several skills at once. Names are checked first; copilot creates them without a transaction. */
|
|
91
|
+
async bulkCreate(agentId, functions) {
|
|
92
|
+
for (const f of functions) {
|
|
93
|
+
const def = (f.function_definition ?? f);
|
|
94
|
+
assertSkillNameAllowed(def.name, def.type);
|
|
95
|
+
}
|
|
96
|
+
return this.client.copilotPost(`/organization/:org_id/ai-studio/bots/${agentId}/functions/bulk-create`, { functions });
|
|
54
97
|
}
|
|
55
98
|
async listLLMModels() {
|
|
56
99
|
return this.client.copilotGet('/organization/:org_id/ai-studio/llm-models');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/sdk/functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/sdk/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { IndemnClient } from './client.js';
|
|
2
|
+
export { OrgsSDK } from './orgs.js';
|
|
3
|
+
export { resolveCredential, copilotAuthHeader, darwinAuthHeader, type Credential } from './credentials.js';
|
|
2
4
|
export { login, logout, whoami } from './auth.js';
|
|
3
5
|
export { AgentsSDK } from './agents.js';
|
|
4
6
|
export { ConfigSDK } from './config.js';
|
package/dist/sdk/index.d.ts.map
CHANGED
|
@@ -1 +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"}
|
|
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,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3G,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/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { IndemnClient } from './client.js';
|
|
2
|
+
export { OrgsSDK } from './orgs.js';
|
|
3
|
+
export { resolveCredential, copilotAuthHeader, darwinAuthHeader } from './credentials.js';
|
|
2
4
|
export { login, logout, whoami } from './auth.js';
|
|
3
5
|
export { AgentsSDK } from './agents.js';
|
|
4
6
|
export { ConfigSDK } from './config.js';
|
package/dist/sdk/index.js.map
CHANGED
|
@@ -1 +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"}
|
|
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,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AAC3G,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"}
|