@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,59 @@
|
|
|
1
|
+
import { CliError, EXIT } from '../core/runtime.js';
|
|
2
|
+
/** Paths of the campaigns service the CLI may read. Everything else, and every write, is refused. */
|
|
3
|
+
const READABLE = [
|
|
4
|
+
/^\/campaigns$/,
|
|
5
|
+
/^\/campaigns\/[\w-]+$/,
|
|
6
|
+
/^\/campaigns\/[\w-]+\/(versions|counts|forecast|next-touchpoints)$/,
|
|
7
|
+
/^\/templates$/,
|
|
8
|
+
/^\/templates\/[\w-]+$/,
|
|
9
|
+
/^\/templates\/[\w-]+\/versions$/,
|
|
10
|
+
/^\/template-skills$/,
|
|
11
|
+
/^\/template-skills\/[\w-]+$/,
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Campaigns, READ-ONLY by design, through copilot's proxy to the campaigns
|
|
15
|
+
* service. The CLI never publishes a campaign, sends a communication or
|
|
16
|
+
* triggers a book sync; those act on real customers.
|
|
17
|
+
*/
|
|
18
|
+
export class CampaignsSDK {
|
|
19
|
+
client;
|
|
20
|
+
constructor(client) {
|
|
21
|
+
this.client = client;
|
|
22
|
+
}
|
|
23
|
+
async read(path, query) {
|
|
24
|
+
if (!READABLE.some((r) => r.test(path)))
|
|
25
|
+
throw new CliError(`Campaigns path ${path} is not readable from the CLI.`, EXIT.NEEDS_INPUT);
|
|
26
|
+
return this.client.copilotGet(`/organization/:org_id/campaigns-service${path}`, query);
|
|
27
|
+
}
|
|
28
|
+
list(filter = {}) {
|
|
29
|
+
const q = { limit: String(Math.min(filter.limit ?? 50, 500)), skip: String(filter.skip ?? 0) };
|
|
30
|
+
if (filter.status)
|
|
31
|
+
q.status = filter.status;
|
|
32
|
+
if (filter.solutionId)
|
|
33
|
+
q.solution_id = filter.solutionId;
|
|
34
|
+
return this.read('/campaigns', q);
|
|
35
|
+
}
|
|
36
|
+
get(id) {
|
|
37
|
+
return this.read(`/campaigns/${id}`);
|
|
38
|
+
}
|
|
39
|
+
/** Enrollment counts, forecast of the next days, or upcoming touchpoints of a campaign. */
|
|
40
|
+
detail(id, what, days) {
|
|
41
|
+
return this.read(`/campaigns/${id}/${what}`, days ? { days: String(days) } : undefined);
|
|
42
|
+
}
|
|
43
|
+
templates(filter = {}) {
|
|
44
|
+
const q = { limit: String(Math.min(filter.limit ?? 50, 500)) };
|
|
45
|
+
if (filter.channel)
|
|
46
|
+
q.channel = filter.channel;
|
|
47
|
+
if (filter.solutionId)
|
|
48
|
+
q.solution_id = filter.solutionId;
|
|
49
|
+
return this.read('/templates', q);
|
|
50
|
+
}
|
|
51
|
+
/** A template; with versions: true, its versions (where subject and body live). */
|
|
52
|
+
template(id, versions = false) {
|
|
53
|
+
return this.read(versions ? `/templates/${id}/versions` : `/templates/${id}`);
|
|
54
|
+
}
|
|
55
|
+
templateSkills(solutionId) {
|
|
56
|
+
return this.read('/template-skills', solutionId ? { solution_id: solutionId } : undefined);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=campaigns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/sdk/campaigns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEpD,qGAAqG;AACrG,MAAM,QAAQ,GAAG;IACf,eAAe;IACf,uBAAuB;IACvB,oEAAoE;IACpE,eAAe;IACf,uBAAuB;IACvB,iCAAiC;IACjC,qBAAqB;IACrB,6BAA6B;CAC9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAEpC,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,KAA8B;QAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,IAAI,gCAAgC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAI,0CAA0C,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,CAAC,SAAkF,EAAE;QACvF,MAAM,CAAC,GAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QACvH,IAAI,MAAM,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5C,IAAI,MAAM,CAAC,UAAU;YAAE,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,2FAA2F;IAC3F,MAAM,CAAC,EAAU,EAAE,IAA6D,EAAE,IAAa;QAC7F,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC;IAED,SAAS,CAAC,SAAoE,EAAE;QAC9E,MAAM,CAAC,GAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,MAAM,CAAC,OAAO;YAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/C,IAAI,MAAM,CAAC,UAAU;YAAE,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,mFAAmF;IACnF,QAAQ,CAAC,EAAU,EAAE,QAAQ,GAAG,KAAK;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,cAAc,CAAC,UAAmB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACF"}
|
package/dist/sdk/chat.d.ts
CHANGED
|
@@ -7,11 +7,34 @@ export declare class ChatSession extends EventEmitter {
|
|
|
7
7
|
private middlewareUrl;
|
|
8
8
|
private connected;
|
|
9
9
|
private streamBuffers;
|
|
10
|
-
|
|
10
|
+
private customData;
|
|
11
|
+
/**
|
|
12
|
+
* Every CLI conversation is a test conversation: `isTestMode` is always
|
|
13
|
+
* true and cannot be overridden. `tester` and `preview` let the dashboard
|
|
14
|
+
* show who tested, as it does for its own "Talk to agent" window.
|
|
15
|
+
*/
|
|
16
|
+
constructor(botType: string, middlewareUrl: string, sessionId?: string, opts?: {
|
|
17
|
+
tester?: string | null;
|
|
18
|
+
preview?: string | null;
|
|
19
|
+
customData?: Record<string, unknown>;
|
|
20
|
+
});
|
|
21
|
+
/** The custom data sent with session_request (for tests and diagnostics). */
|
|
22
|
+
getCustomData(): Record<string, unknown>;
|
|
11
23
|
connect(): Promise<string>;
|
|
12
24
|
private handleStreamMessage;
|
|
13
25
|
send(message: string): void;
|
|
14
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Leave the conversation. By default it is also ended on the platform
|
|
28
|
+
* (session_closed). `{ end: false }` only drops the socket, so the same
|
|
29
|
+
* session id can continue the conversation later.
|
|
30
|
+
*
|
|
31
|
+
* The close message is given time to arrive before the socket drops: an
|
|
32
|
+
* event that reaches Socket.IO right before the disconnect is discarded.
|
|
33
|
+
*/
|
|
34
|
+
disconnect(opts?: {
|
|
35
|
+
end?: boolean;
|
|
36
|
+
flushMs?: number;
|
|
37
|
+
}): Promise<void>;
|
|
15
38
|
getSessionId(): string | null;
|
|
16
39
|
}
|
|
17
40
|
//# sourceMappingURL=chat.d.ts.map
|
package/dist/sdk/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/sdk/chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAkC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/sdk/chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAkC;IAEvD,OAAO,CAAC,UAAU,CAA0B;IAE5C;;;;OAIG;gBAED,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAO;IAetG,6EAA6E;IAC7E,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAsDhC,OAAO,CAAC,mBAAmB;IAyB3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAiB3B;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,GAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/E,YAAY,IAAI,MAAM,GAAG,IAAI;CAG9B"}
|
package/dist/sdk/chat.js
CHANGED
|
@@ -8,18 +8,34 @@ export class ChatSession extends EventEmitter {
|
|
|
8
8
|
middlewareUrl;
|
|
9
9
|
connected = false;
|
|
10
10
|
streamBuffers = new Map();
|
|
11
|
-
|
|
11
|
+
customData;
|
|
12
|
+
/**
|
|
13
|
+
* Every CLI conversation is a test conversation: `isTestMode` is always
|
|
14
|
+
* true and cannot be overridden. `tester` and `preview` let the dashboard
|
|
15
|
+
* show who tested, as it does for its own "Talk to agent" window.
|
|
16
|
+
*/
|
|
17
|
+
constructor(botType, middlewareUrl, sessionId, opts = {}) {
|
|
12
18
|
super();
|
|
13
19
|
this.botType = botType;
|
|
14
20
|
this.middlewareUrl = middlewareUrl;
|
|
15
21
|
this.userId = `cli-user-${Date.now()}`;
|
|
16
22
|
this.sessionId = sessionId || null;
|
|
23
|
+
this.customData = {
|
|
24
|
+
...opts.customData,
|
|
25
|
+
...(opts.tester ? { conversation_tester: opts.tester } : {}),
|
|
26
|
+
...(opts.preview ? { preview: opts.preview } : {}),
|
|
27
|
+
isTestMode: true,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** The custom data sent with session_request (for tests and diagnostics). */
|
|
31
|
+
getCustomData() {
|
|
32
|
+
return { ...this.customData };
|
|
17
33
|
}
|
|
18
34
|
async connect() {
|
|
19
35
|
return new Promise((resolve, reject) => {
|
|
20
36
|
const timeout = setTimeout(() => {
|
|
21
37
|
reject(new Error('Connection timed out after 10s'));
|
|
22
|
-
this.disconnect();
|
|
38
|
+
void this.disconnect({ end: false });
|
|
23
39
|
}, 10000);
|
|
24
40
|
this.socket = io(this.middlewareUrl, {
|
|
25
41
|
transports: ['websocket'],
|
|
@@ -35,7 +51,7 @@ export class ChatSession extends EventEmitter {
|
|
|
35
51
|
session_id: this.sessionId,
|
|
36
52
|
bot_type: this.botType,
|
|
37
53
|
user_id: this.userId,
|
|
38
|
-
customData:
|
|
54
|
+
customData: this.customData,
|
|
39
55
|
};
|
|
40
56
|
this.socket.emit('session_request', request);
|
|
41
57
|
});
|
|
@@ -95,15 +111,26 @@ export class ChatSession extends EventEmitter {
|
|
|
95
111
|
};
|
|
96
112
|
this.socket.emit('user_uttered', payload);
|
|
97
113
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
/**
|
|
115
|
+
* Leave the conversation. By default it is also ended on the platform
|
|
116
|
+
* (session_closed). `{ end: false }` only drops the socket, so the same
|
|
117
|
+
* session id can continue the conversation later.
|
|
118
|
+
*
|
|
119
|
+
* The close message is given time to arrive before the socket drops: an
|
|
120
|
+
* event that reaches Socket.IO right before the disconnect is discarded.
|
|
121
|
+
*/
|
|
122
|
+
async disconnect(opts = {}) {
|
|
123
|
+
const socket = this.socket;
|
|
124
|
+
this.socket = null;
|
|
125
|
+
this.connected = false;
|
|
126
|
+
if (socket) {
|
|
127
|
+
if (this.sessionId && opts.end !== false && socket.connected) {
|
|
128
|
+
// The middleware accepts only allow-listed reasons; this one records a deliberate close.
|
|
129
|
+
socket.emit('session_closed', { session_id: this.sessionId, reason: 'client_close_conversation' });
|
|
130
|
+
await new Promise((resolve) => setTimeout(resolve, opts.flushMs ?? 300));
|
|
102
131
|
}
|
|
103
|
-
|
|
104
|
-
this.socket = null;
|
|
132
|
+
socket.disconnect();
|
|
105
133
|
}
|
|
106
|
-
this.connected = false;
|
|
107
134
|
this.sessionId = null;
|
|
108
135
|
}
|
|
109
136
|
getSessionId() {
|
package/dist/sdk/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/sdk/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAU,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,OAAO,WAAY,SAAQ,YAAY;IACnC,MAAM,GAAkB,IAAI,CAAC;IAC7B,SAAS,GAAkB,IAAI,CAAC;IAChC,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,aAAa,CAAS;IACtB,SAAS,GAAG,KAAK,CAAC;IAClB,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/sdk/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/client.d.ts
CHANGED
|
@@ -1,30 +1,117 @@
|
|
|
1
1
|
import Conf from 'conf';
|
|
2
2
|
import type { Environment, EnvironmentHosts, IndemnConfig } from './types.js';
|
|
3
|
+
import { type Credential } from './credentials.js';
|
|
4
|
+
import { type LinkFile, type OrgChoice, type ResolvedOrg } from '../core/org-resolver.js';
|
|
5
|
+
export declare const DEFAULT_HOSTS: Record<Environment, EnvironmentHosts>;
|
|
6
|
+
export type ClientKind = 'cli' | 'mcp';
|
|
7
|
+
type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
8
|
+
/**
|
|
9
|
+
* The environment belongs to the credential. A saved login knows its own
|
|
10
|
+
* environment; an API key says it in its prefix. INDEMN_ENV is only read for a
|
|
11
|
+
* host-supplied session token (INDEMN_TOKEN), which carries no environment.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveEnvironment(config: IndemnConfig | null, env?: NodeJS.ProcessEnv): Environment;
|
|
14
|
+
export interface OrgContext extends ResolvedOrg {
|
|
15
|
+
name?: string;
|
|
16
|
+
}
|
|
3
17
|
export declare class IndemnClient {
|
|
4
|
-
private
|
|
5
|
-
private
|
|
18
|
+
private explicitCredential;
|
|
19
|
+
private orgOverride?;
|
|
6
20
|
private environment;
|
|
7
21
|
private hosts;
|
|
22
|
+
private resolvedOrg?;
|
|
23
|
+
private linkCache?;
|
|
24
|
+
private membershipCache?;
|
|
25
|
+
private ignoreLink;
|
|
8
26
|
constructor(opts?: {
|
|
9
27
|
apiKey?: string;
|
|
28
|
+
token?: string;
|
|
10
29
|
orgId?: string;
|
|
11
30
|
environment?: Environment;
|
|
31
|
+
ignoreLink?: boolean;
|
|
12
32
|
});
|
|
33
|
+
/** Name the caller in the X-Indemn-Client header: the terminal CLI or the MCP server. */
|
|
34
|
+
static setClientKind(kind: ClientKind): void;
|
|
13
35
|
static getConfigStore(): Conf<IndemnConfig>;
|
|
36
|
+
/** The saved login, or null. Read fresh on every request so a new login in another terminal is picked up. */
|
|
14
37
|
static loadConfig(): IndemnConfig | null;
|
|
15
38
|
static saveConfig(config: Partial<IndemnConfig>): void;
|
|
16
39
|
static clearConfig(): void;
|
|
17
40
|
getEnvironment(): Environment;
|
|
18
|
-
getOrgId(): string;
|
|
19
|
-
getApiKey(): string;
|
|
20
41
|
getHosts(): EnvironmentHosts;
|
|
21
|
-
|
|
42
|
+
/** The credential for the next request. Never cached: the saved login may have been renewed or replaced. */
|
|
43
|
+
getCredential(): Credential | null;
|
|
44
|
+
private requireCredential;
|
|
45
|
+
/**
|
|
46
|
+
* Get a fresh copilot session with the saved Firebase refresh token, save
|
|
47
|
+
* it, and revoke the old one. Accounts with MFA are asked for the emailed
|
|
48
|
+
* code when a terminal or MCP host can ask; otherwise the person must log in.
|
|
49
|
+
*/
|
|
50
|
+
renewSession(): Promise<void>;
|
|
51
|
+
/** The credential for the next request, renewed first when a saved session is about to expire. */
|
|
52
|
+
private freshCredential;
|
|
53
|
+
private authHeader;
|
|
54
|
+
/** The `.indemn/project.json` in effect for this working directory. */
|
|
55
|
+
getLink(): LinkFile | null;
|
|
56
|
+
/** Orgs the user belongs to: saved at login, else asked live from copilot. */
|
|
57
|
+
memberships(): Promise<OrgChoice[]>;
|
|
58
|
+
/**
|
|
59
|
+
* The org this client acts on. `explicit` is an MCP tool's org_id; the
|
|
60
|
+
* terminal passes --org through the scope module. Decided once per client.
|
|
61
|
+
*/
|
|
62
|
+
resolveOrg(explicit?: string, opts?: {
|
|
63
|
+
cache?: boolean;
|
|
64
|
+
}): Promise<OrgContext>;
|
|
65
|
+
/** Org id for the current call: an MCP call's scope first, then this client's resolution. */
|
|
66
|
+
currentOrgId(): Promise<string>;
|
|
67
|
+
/** What every MCP result reports as its origin. Never triggers a question. */
|
|
68
|
+
getResultContext(): Promise<{
|
|
69
|
+
org_id?: string;
|
|
70
|
+
org_name?: string;
|
|
71
|
+
environment: Environment;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* In a linked folder with an agent list, refuse any agent that is not on
|
|
75
|
+
* the list before a request leaves the machine.
|
|
76
|
+
*/
|
|
77
|
+
private assertAgentInScope;
|
|
22
78
|
private buildCopilotUrl;
|
|
23
79
|
private buildEvalsUrl;
|
|
80
|
+
/**
|
|
81
|
+
* The one place every request goes through: client headers, credential,
|
|
82
|
+
* --debug tracing, and retries for reads only (a retried create could
|
|
83
|
+
* create twice).
|
|
84
|
+
*/
|
|
85
|
+
private send;
|
|
86
|
+
private withQuery;
|
|
87
|
+
/**
|
|
88
|
+
* A copilot request with the session rules: renew before expiry, and on a
|
|
89
|
+
* 401 with a saved session renew once and retry once.
|
|
90
|
+
*/
|
|
91
|
+
private copilotRequest;
|
|
92
|
+
/** A copilot request with any method (for PATCH and other routes without a helper). */
|
|
93
|
+
copilotRequestRaw<T = unknown>(method: Method | 'PATCH', path: string, body?: unknown): Promise<T>;
|
|
94
|
+
/** A copilot request whose answer is a file or audio, returned as bytes. */
|
|
95
|
+
copilotBinary(method: Method, path: string, body?: unknown): Promise<{
|
|
96
|
+
contentType: string;
|
|
97
|
+
data: Buffer;
|
|
98
|
+
}>;
|
|
24
99
|
copilotGet<T = unknown>(path: string, query?: Record<string, string>): Promise<T>;
|
|
25
100
|
copilotPost<T = unknown>(path: string, body?: unknown): Promise<T>;
|
|
101
|
+
/** Multipart upload (for example a knowledge-base file). */
|
|
102
|
+
copilotPostForm<T = unknown>(path: string, form: FormData): Promise<T>;
|
|
26
103
|
copilotPut<T = unknown>(path: string, body?: unknown): Promise<T>;
|
|
27
104
|
copilotDelete<T = unknown>(path: string): Promise<T>;
|
|
105
|
+
/**
|
|
106
|
+
* Darwin (the V2 platform) request: the same session token as copilot, sent
|
|
107
|
+
* as Bearer, with the org in X-Organization-Id. Darwin checks membership and
|
|
108
|
+
* roles itself. A 401 on a saved session renews once and retries once.
|
|
109
|
+
*/
|
|
110
|
+
platformRequest<T = unknown>(method: Method, path: string, opts?: {
|
|
111
|
+
body?: unknown;
|
|
112
|
+
query?: Record<string, string>;
|
|
113
|
+
orgHeader?: boolean;
|
|
114
|
+
}): Promise<T>;
|
|
28
115
|
evalsGet<T = unknown>(path: string, query?: Record<string, string>): Promise<T>;
|
|
29
116
|
evalsPost<T = unknown>(path: string, body?: unknown): Promise<T>;
|
|
30
117
|
evalsPut<T = unknown>(path: string, body?: unknown): Promise<T>;
|
|
@@ -33,4 +120,5 @@ export declare class IndemnClient {
|
|
|
33
120
|
private handleCopilotResponse;
|
|
34
121
|
private handleEvalsResponse;
|
|
35
122
|
}
|
|
123
|
+
export {};
|
|
36
124
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/sdk/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,EAAe,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
|