@indemn/cli 1.5.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.
Files changed (311) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +9 -4
  3. package/.github/workflows/ci.yml +10 -0
  4. package/.github/workflows/publish.yml +2 -2
  5. package/.mcp.json +1 -4
  6. package/CONTRIBUTING.md +3 -1
  7. package/README.md +69 -176
  8. package/dist/cli/agents.d.ts.map +1 -1
  9. package/dist/cli/agents.js +226 -18
  10. package/dist/cli/agents.js.map +1 -1
  11. package/dist/cli/analytics.d.ts +3 -0
  12. package/dist/cli/analytics.d.ts.map +1 -0
  13. package/dist/cli/analytics.js +133 -0
  14. package/dist/cli/analytics.js.map +1 -0
  15. package/dist/cli/auth.d.ts.map +1 -1
  16. package/dist/cli/auth.js +62 -17
  17. package/dist/cli/auth.js.map +1 -1
  18. package/dist/cli/billing.d.ts +3 -0
  19. package/dist/cli/billing.d.ts.map +1 -0
  20. package/dist/cli/billing.js +23 -0
  21. package/dist/cli/billing.js.map +1 -0
  22. package/dist/cli/campaigns.d.ts +3 -0
  23. package/dist/cli/campaigns.d.ts.map +1 -0
  24. package/dist/cli/campaigns.js +34 -0
  25. package/dist/cli/campaigns.js.map +1 -0
  26. package/dist/cli/chat.d.ts.map +1 -1
  27. package/dist/cli/chat.js +69 -102
  28. package/dist/cli/chat.js.map +1 -1
  29. package/dist/cli/config.d.ts.map +1 -1
  30. package/dist/cli/config.js +71 -27
  31. package/dist/cli/config.js.map +1 -1
  32. package/dist/cli/conversations.d.ts +3 -0
  33. package/dist/cli/conversations.d.ts.map +1 -0
  34. package/dist/cli/conversations.js +129 -0
  35. package/dist/cli/conversations.js.map +1 -0
  36. package/dist/cli/distribution.d.ts +3 -0
  37. package/dist/cli/distribution.d.ts.map +1 -0
  38. package/dist/cli/distribution.js +122 -0
  39. package/dist/cli/distribution.js.map +1 -0
  40. package/dist/cli/eval.d.ts.map +1 -1
  41. package/dist/cli/eval.js +315 -71
  42. package/dist/cli/eval.js.map +1 -1
  43. package/dist/cli/functions.d.ts.map +1 -1
  44. package/dist/cli/functions.js +125 -35
  45. package/dist/cli/functions.js.map +1 -1
  46. package/dist/cli/index.js +63 -54
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/init.d.ts +27 -0
  49. package/dist/cli/init.d.ts.map +1 -0
  50. package/dist/cli/init.js +152 -0
  51. package/dist/cli/init.js.map +1 -0
  52. package/dist/cli/kb.d.ts.map +1 -1
  53. package/dist/cli/kb.js +141 -15
  54. package/dist/cli/kb.js.map +1 -1
  55. package/dist/cli/link.d.ts +21 -0
  56. package/dist/cli/link.d.ts.map +1 -0
  57. package/dist/cli/link.js +112 -0
  58. package/dist/cli/link.js.map +1 -0
  59. package/dist/cli/org.d.ts.map +1 -1
  60. package/dist/cli/org.js +79 -67
  61. package/dist/cli/org.js.map +1 -1
  62. package/dist/cli/platform.d.ts +3 -0
  63. package/dist/cli/platform.d.ts.map +1 -0
  64. package/dist/cli/platform.js +133 -0
  65. package/dist/cli/platform.js.map +1 -0
  66. package/dist/cli/tickets.d.ts +3 -0
  67. package/dist/cli/tickets.d.ts.map +1 -0
  68. package/dist/cli/tickets.js +125 -0
  69. package/dist/cli/tickets.js.map +1 -0
  70. package/dist/cli/utils/output.d.ts +15 -9
  71. package/dist/cli/utils/output.d.ts.map +1 -1
  72. package/dist/cli/utils/output.js +53 -46
  73. package/dist/cli/utils/output.js.map +1 -1
  74. package/dist/cli/voice.d.ts +3 -0
  75. package/dist/cli/voice.d.ts.map +1 -0
  76. package/dist/cli/voice.js +206 -0
  77. package/dist/cli/voice.js.map +1 -0
  78. package/dist/core/diff.d.ts +16 -0
  79. package/dist/core/diff.d.ts.map +1 -0
  80. package/dist/core/diff.js +57 -0
  81. package/dist/core/diff.js.map +1 -0
  82. package/dist/core/org-resolver.d.ts +37 -0
  83. package/dist/core/org-resolver.d.ts.map +1 -0
  84. package/dist/core/org-resolver.js +73 -0
  85. package/dist/core/org-resolver.js.map +1 -0
  86. package/dist/core/runtime.d.ts +36 -0
  87. package/dist/core/runtime.d.ts.map +1 -0
  88. package/dist/core/runtime.js +62 -0
  89. package/dist/core/runtime.js.map +1 -0
  90. package/dist/core/scope.d.ts +33 -0
  91. package/dist/core/scope.d.ts.map +1 -0
  92. package/dist/core/scope.js +37 -0
  93. package/dist/core/scope.js.map +1 -0
  94. package/dist/mcp/registry.d.ts +67 -0
  95. package/dist/mcp/registry.d.ts.map +1 -0
  96. package/dist/mcp/registry.js +195 -0
  97. package/dist/mcp/registry.js.map +1 -0
  98. package/dist/mcp/server.d.ts +9 -0
  99. package/dist/mcp/server.d.ts.map +1 -1
  100. package/dist/mcp/server.js +87 -2
  101. package/dist/mcp/server.js.map +1 -1
  102. package/dist/mcp/tool-meta.d.ts +21 -0
  103. package/dist/mcp/tool-meta.d.ts.map +1 -0
  104. package/dist/mcp/tool-meta.js +203 -0
  105. package/dist/mcp/tool-meta.js.map +1 -0
  106. package/dist/mcp/tools.d.ts +2 -1
  107. package/dist/mcp/tools.d.ts.map +1 -1
  108. package/dist/mcp/tools.js +1462 -215
  109. package/dist/mcp/tools.js.map +1 -1
  110. package/dist/sdk/agent-bundle.d.ts +99 -0
  111. package/dist/sdk/agent-bundle.d.ts.map +1 -0
  112. package/dist/sdk/agent-bundle.js +211 -0
  113. package/dist/sdk/agent-bundle.js.map +1 -0
  114. package/dist/sdk/agents.d.ts +54 -1
  115. package/dist/sdk/agents.d.ts.map +1 -1
  116. package/dist/sdk/agents.js +59 -5
  117. package/dist/sdk/agents.js.map +1 -1
  118. package/dist/sdk/analytics.d.ts +158 -0
  119. package/dist/sdk/analytics.d.ts.map +1 -0
  120. package/dist/sdk/analytics.js +185 -0
  121. package/dist/sdk/analytics.js.map +1 -0
  122. package/dist/sdk/auth.d.ts +34 -12
  123. package/dist/sdk/auth.d.ts.map +1 -1
  124. package/dist/sdk/auth.js +60 -77
  125. package/dist/sdk/auth.js.map +1 -1
  126. package/dist/sdk/billing.d.ts +25 -0
  127. package/dist/sdk/billing.d.ts.map +1 -0
  128. package/dist/sdk/billing.js +61 -0
  129. package/dist/sdk/billing.js.map +1 -0
  130. package/dist/sdk/campaigns.d.ts +35 -0
  131. package/dist/sdk/campaigns.d.ts.map +1 -0
  132. package/dist/sdk/campaigns.js +59 -0
  133. package/dist/sdk/campaigns.js.map +1 -0
  134. package/dist/sdk/chat.d.ts +25 -2
  135. package/dist/sdk/chat.d.ts.map +1 -1
  136. package/dist/sdk/chat.js +37 -10
  137. package/dist/sdk/chat.js.map +1 -1
  138. package/dist/sdk/client.d.ts +93 -5
  139. package/dist/sdk/client.d.ts.map +1 -1
  140. package/dist/sdk/client.js +362 -100
  141. package/dist/sdk/client.js.map +1 -1
  142. package/dist/sdk/config-change.d.ts +74 -0
  143. package/dist/sdk/config-change.d.ts.map +1 -0
  144. package/dist/sdk/config-change.js +117 -0
  145. package/dist/sdk/config-change.js.map +1 -0
  146. package/dist/sdk/config.d.ts.map +1 -1
  147. package/dist/sdk/config.js +2 -1
  148. package/dist/sdk/config.js.map +1 -1
  149. package/dist/sdk/conversations.d.ts +101 -0
  150. package/dist/sdk/conversations.d.ts.map +1 -0
  151. package/dist/sdk/conversations.js +155 -0
  152. package/dist/sdk/conversations.js.map +1 -0
  153. package/dist/sdk/credentials.d.ts +25 -0
  154. package/dist/sdk/credentials.d.ts.map +1 -0
  155. package/dist/sdk/credentials.js +44 -0
  156. package/dist/sdk/credentials.js.map +1 -0
  157. package/dist/sdk/distribution.d.ts +94 -0
  158. package/dist/sdk/distribution.d.ts.map +1 -0
  159. package/dist/sdk/distribution.js +100 -0
  160. package/dist/sdk/distribution.js.map +1 -0
  161. package/dist/sdk/eval.d.ts +81 -0
  162. package/dist/sdk/eval.d.ts.map +1 -1
  163. package/dist/sdk/eval.js +117 -0
  164. package/dist/sdk/eval.js.map +1 -1
  165. package/dist/sdk/functions.d.ts +14 -1
  166. package/dist/sdk/functions.d.ts.map +1 -1
  167. package/dist/sdk/functions.js +48 -5
  168. package/dist/sdk/functions.js.map +1 -1
  169. package/dist/sdk/index.d.ts +2 -0
  170. package/dist/sdk/index.d.ts.map +1 -1
  171. package/dist/sdk/index.js +2 -0
  172. package/dist/sdk/index.js.map +1 -1
  173. package/dist/sdk/jarvis-chat.d.ts +28 -0
  174. package/dist/sdk/jarvis-chat.d.ts.map +1 -0
  175. package/dist/sdk/jarvis-chat.js +117 -0
  176. package/dist/sdk/jarvis-chat.js.map +1 -0
  177. package/dist/sdk/kb.d.ts +69 -1
  178. package/dist/sdk/kb.d.ts.map +1 -1
  179. package/dist/sdk/kb.js +111 -24
  180. package/dist/sdk/kb.js.map +1 -1
  181. package/dist/sdk/orgs.d.ts +13 -0
  182. package/dist/sdk/orgs.d.ts.map +1 -0
  183. package/dist/sdk/orgs.js +59 -0
  184. package/dist/sdk/orgs.js.map +1 -0
  185. package/dist/sdk/platform.d.ts +62 -0
  186. package/dist/sdk/platform.d.ts.map +1 -0
  187. package/dist/sdk/platform.js +95 -0
  188. package/dist/sdk/platform.js.map +1 -0
  189. package/dist/sdk/session.d.ts +25 -0
  190. package/dist/sdk/session.d.ts.map +1 -0
  191. package/dist/sdk/session.js +69 -0
  192. package/dist/sdk/session.js.map +1 -0
  193. package/dist/sdk/skills.d.ts +46 -0
  194. package/dist/sdk/skills.d.ts.map +1 -0
  195. package/dist/sdk/skills.js +203 -0
  196. package/dist/sdk/skills.js.map +1 -0
  197. package/dist/sdk/test-chat.d.ts +52 -0
  198. package/dist/sdk/test-chat.d.ts.map +1 -0
  199. package/dist/sdk/test-chat.js +134 -0
  200. package/dist/sdk/test-chat.js.map +1 -0
  201. package/dist/sdk/tickets.d.ts +98 -0
  202. package/dist/sdk/tickets.d.ts.map +1 -0
  203. package/dist/sdk/tickets.js +91 -0
  204. package/dist/sdk/tickets.js.map +1 -0
  205. package/dist/sdk/types.d.ts +91 -6
  206. package/dist/sdk/types.d.ts.map +1 -1
  207. package/dist/sdk/voice.d.ts +147 -0
  208. package/dist/sdk/voice.d.ts.map +1 -0
  209. package/dist/sdk/voice.js +236 -0
  210. package/dist/sdk/voice.js.map +1 -0
  211. package/package.json +22 -3
  212. package/scripts/check-skills.mjs +25 -0
  213. package/skills/agent-builder/SKILL.md +89 -252
  214. package/skills/evaluations/SKILL.md +23 -234
  215. package/skills/evaluations/references/analysis.md +95 -0
  216. package/skills/evaluations/references/cli-reference.md +28 -0
  217. package/skills/evaluations/references/json-formats.md +100 -0
  218. package/src/cli/agents.ts +202 -22
  219. package/src/cli/analytics.ts +138 -0
  220. package/src/cli/auth.ts +56 -18
  221. package/src/cli/billing.ts +25 -0
  222. package/src/cli/campaigns.ts +33 -0
  223. package/src/cli/chat.ts +66 -115
  224. package/src/cli/config.ts +65 -31
  225. package/src/cli/conversations.ts +133 -0
  226. package/src/cli/distribution.ts +116 -0
  227. package/src/cli/eval.ts +254 -70
  228. package/src/cli/functions.ts +122 -36
  229. package/src/cli/index.ts +58 -55
  230. package/src/cli/init.ts +154 -0
  231. package/src/cli/kb.ts +120 -17
  232. package/src/cli/link.ts +117 -0
  233. package/src/cli/org.ts +81 -75
  234. package/src/cli/platform.ts +128 -0
  235. package/src/cli/tickets.ts +130 -0
  236. package/src/cli/utils/output.ts +51 -42
  237. package/src/cli/voice.ts +204 -0
  238. package/src/core/diff.ts +52 -0
  239. package/src/core/org-resolver.ts +113 -0
  240. package/src/core/runtime.ts +73 -0
  241. package/src/core/scope.ts +64 -0
  242. package/src/mcp/registry.ts +236 -0
  243. package/src/mcp/server.ts +84 -2
  244. package/src/mcp/tool-meta.ts +241 -0
  245. package/src/mcp/tools.ts +1529 -265
  246. package/src/sdk/agent-bundle.ts +245 -0
  247. package/src/sdk/agents.ts +74 -5
  248. package/src/sdk/analytics.ts +220 -0
  249. package/src/sdk/auth.ts +87 -107
  250. package/src/sdk/billing.ts +59 -0
  251. package/src/sdk/campaigns.ts +60 -0
  252. package/src/sdk/chat.ts +44 -10
  253. package/src/sdk/client.ts +373 -102
  254. package/src/sdk/config-change.ts +148 -0
  255. package/src/sdk/config.ts +2 -1
  256. package/src/sdk/conversations.ts +199 -0
  257. package/src/sdk/credentials.ts +53 -0
  258. package/src/sdk/distribution.ts +132 -0
  259. package/src/sdk/eval.ts +140 -0
  260. package/src/sdk/functions.ts +52 -6
  261. package/src/sdk/index.ts +2 -0
  262. package/src/sdk/jarvis-chat.ts +112 -0
  263. package/src/sdk/kb.ts +116 -29
  264. package/src/sdk/orgs.ts +62 -0
  265. package/src/sdk/platform.ts +115 -0
  266. package/src/sdk/session.ts +90 -0
  267. package/src/sdk/skills.ts +188 -0
  268. package/src/sdk/test-chat.ts +151 -0
  269. package/src/sdk/tickets.ts +120 -0
  270. package/src/sdk/types.ts +88 -6
  271. package/src/sdk/voice.ts +262 -0
  272. package/test/cli/entry.test.ts +34 -0
  273. package/test/cli/init.test.ts +66 -0
  274. package/test/cli/link.test.ts +57 -0
  275. package/test/core/org-resolver.test.ts +92 -0
  276. package/test/core/runtime.test.ts +30 -0
  277. package/test/core/scope.test.ts +93 -0
  278. package/test/harness.test.ts +24 -0
  279. package/test/helpers/config-home.ts +22 -0
  280. package/test/helpers/fake-middleware.ts +56 -0
  281. package/test/helpers/fetch-recorder.ts +75 -0
  282. package/test/helpers/jwt.ts +9 -0
  283. package/test/helpers/mcp-pair.ts +38 -0
  284. package/test/mcp/__snapshots__/tools-snapshot.test.ts.snap +145 -0
  285. package/test/mcp/askers.test.ts +60 -0
  286. package/test/mcp/elicit-timeout.test.ts +29 -0
  287. package/test/mcp/registry.test.ts +169 -0
  288. package/test/mcp/shaping.test.ts +41 -0
  289. package/test/mcp/tools-snapshot.test.ts +42 -0
  290. package/test/sdk/agents.test.ts +232 -0
  291. package/test/sdk/analytics.test.ts +89 -0
  292. package/test/sdk/auth.test.ts +70 -0
  293. package/test/sdk/billing.test.ts +47 -0
  294. package/test/sdk/campaigns.test.ts +43 -0
  295. package/test/sdk/client.test.ts +80 -0
  296. package/test/sdk/config-change.test.ts +142 -0
  297. package/test/sdk/conversations.test.ts +80 -0
  298. package/test/sdk/credentials.test.ts +33 -0
  299. package/test/sdk/distribution.test.ts +55 -0
  300. package/test/sdk/eval.test.ts +155 -0
  301. package/test/sdk/kb-upload.test.ts +50 -0
  302. package/test/sdk/kb.test.ts +95 -0
  303. package/test/sdk/orgs.test.ts +48 -0
  304. package/test/sdk/platform.test.ts +89 -0
  305. package/test/sdk/renewal.test.ts +115 -0
  306. package/test/sdk/session.test.ts +60 -0
  307. package/test/sdk/skills.test.ts +235 -0
  308. package/test/sdk/test-chat.test.ts +112 -0
  309. package/test/sdk/tickets.test.ts +42 -0
  310. package/test/sdk/voice.test.ts +147 -0
  311. package/vitest.config.ts +11 -0
@@ -0,0 +1,129 @@
1
+ import chalk from 'chalk';
2
+ import { writeFileSync } from 'node:fs';
3
+ import { IndemnClient } from '../sdk/client.js';
4
+ import { ConversationsSDK, conversationToTestSet, conversationUrl, isCliConversation, isTestConversation, projectOfAgent, } from '../sdk/conversations.js';
5
+ import { confirmOrExit } from './link.js';
6
+ import { formatTable, printError, printJson, printSuccess } from './utils/output.js';
7
+ export function registerConversationCommands(program) {
8
+ const conv = program.command('conversations').alias('conv').description('Read conversations of an agent, export them, or mark them as test');
9
+ conv
10
+ .command('list')
11
+ .requiredOption('--agent <id>', 'Agent whose conversations to list')
12
+ .option('--limit <n>', 'Rows per page (at most 100)', '50')
13
+ .option('--page <n>', 'Page, starting at 0', '0')
14
+ .option('--live-only', 'Hide test conversations')
15
+ .option('--cli-only', 'Only conversations opened by the CLI')
16
+ .option('--from <date>', 'Created on or after (ISO date)')
17
+ .option('--to <date>', 'Created before (ISO date)')
18
+ .option('--json', 'Output as JSON')
19
+ .description('List conversations of an agent, newest first')
20
+ .action(async (options) => {
21
+ try {
22
+ const client = new IndemnClient();
23
+ const { conversations } = await new ConversationsSDK(client).list(options.agent, {
24
+ limit: Number(options.limit), page: Number(options.page), includeTest: !options.liveOnly,
25
+ cliOnly: options.cliOnly, from: options.from, to: options.to,
26
+ });
27
+ if (options.json) {
28
+ printJson(conversations);
29
+ return;
30
+ }
31
+ if (conversations.length === 0) {
32
+ console.log('No conversations on this page.');
33
+ return;
34
+ }
35
+ console.log(formatTable(['Conversation', 'Created', 'Test', 'CLI', 'First message'], conversations.map((c) => [
36
+ c.request_id,
37
+ new Date(String(c.created_at ?? c.createdAt ?? '')).toLocaleString(),
38
+ isTestConversation(c) ? 'test' : chalk.yellow('LIVE'),
39
+ isCliConversation(c) ? 'yes' : '',
40
+ String(c.first_text ?? '').slice(0, 50),
41
+ ])));
42
+ }
43
+ catch (err) {
44
+ printError(err);
45
+ process.exit(1);
46
+ }
47
+ });
48
+ conv
49
+ .command('get')
50
+ .argument('<conversation-id>', 'Conversation (request) id')
51
+ .requiredOption('--agent <id>', 'Agent the conversation belongs to')
52
+ .option('--json', 'Output as JSON')
53
+ .description('Show a conversation and its messages')
54
+ .action(async (id, options) => {
55
+ try {
56
+ const client = new IndemnClient();
57
+ const sdk = new ConversationsSDK(client);
58
+ const projectId = await projectOfAgent(client, options.agent);
59
+ const [conversation, messages] = await Promise.all([sdk.get(projectId, id), sdk.messages(projectId, id, options.agent)]);
60
+ if (options.json) {
61
+ printJson({ conversation, messages });
62
+ return;
63
+ }
64
+ console.log(chalk.bold(`Conversation ${id}`) + (conversation.isTestMode ? chalk.dim(' test') : chalk.yellow(' LIVE')));
65
+ console.log(chalk.dim(conversationUrl(client, projectId, id)));
66
+ for (const m of messages) {
67
+ const who = m.role === 'agent' ? chalk.cyan('Agent') : m.role === 'user' ? chalk.green('User ') : chalk.dim('System');
68
+ console.log(`${who}: ${m.text ?? ''}`);
69
+ }
70
+ }
71
+ catch (err) {
72
+ printError(err);
73
+ process.exit(1);
74
+ }
75
+ });
76
+ conv
77
+ .command('export')
78
+ .argument('<conversation-id>', 'Conversation (request) id')
79
+ .requiredOption('--agent <id>', 'Agent the conversation belongs to')
80
+ .option('--as-testset', 'Write an evaluation test set (one scenario item) instead of the raw conversation')
81
+ .option('-o, --output <file>', 'Write to a file instead of stdout')
82
+ .description('Export a conversation as JSON, or as a test set to replay it in evaluations')
83
+ .action(async (id, options) => {
84
+ try {
85
+ const client = new IndemnClient();
86
+ const sdk = new ConversationsSDK(client);
87
+ const projectId = await projectOfAgent(client, options.agent);
88
+ const [conversation, messages] = await Promise.all([sdk.get(projectId, id), sdk.messages(projectId, id, options.agent)]);
89
+ const out = options.asTestset ? conversationToTestSet(conversation, messages, options.agent) : { conversation, messages };
90
+ const text = JSON.stringify(out, null, 2) + '\n';
91
+ if (options.output) {
92
+ writeFileSync(options.output, text);
93
+ printSuccess(`Wrote ${options.output}.`);
94
+ if (options.asTestset)
95
+ console.log(chalk.dim('Add success criteria to the item, then: indemn testset create --file ' + options.output));
96
+ }
97
+ else {
98
+ process.stdout.write(text);
99
+ }
100
+ }
101
+ catch (err) {
102
+ printError(err);
103
+ process.exit(1);
104
+ }
105
+ });
106
+ conv
107
+ .command('mark-test')
108
+ .argument('<conversation-ids...>', 'Conversation (request) ids')
109
+ .requiredOption('--agent <id>', 'Agent the conversations belong to')
110
+ .option('--yes', 'Do not ask for confirmation')
111
+ .description('Mark conversations as test (removes them from analytics and reverses usage billing, as the dashboard does)')
112
+ .action(async (ids, options) => {
113
+ try {
114
+ const client = new IndemnClient();
115
+ const sdk = new ConversationsSDK(client);
116
+ const projectId = await projectOfAgent(client, options.agent);
117
+ await confirmOrExit(`Mark ${ids.length} conversation(s) of agent ${options.agent} as test?`, Boolean(options.yes));
118
+ for (const id of ids) {
119
+ await sdk.markTest(projectId, id);
120
+ console.log(` ${id} marked as test`);
121
+ }
122
+ }
123
+ catch (err) {
124
+ printError(err);
125
+ process.exit(1);
126
+ }
127
+ });
128
+ }
129
+ //# sourceMappingURL=conversations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/cli/conversations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerDistributionCommands(program: Command): void;
3
+ //# sourceMappingURL=distribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribution.d.ts","sourceRoot":"","sources":["../../src/cli/distribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmGnE"}
@@ -0,0 +1,122 @@
1
+ import chalk from 'chalk';
2
+ import { IndemnClient } from '../sdk/client.js';
3
+ import { DistributionSDK } from '../sdk/distribution.js';
4
+ import { idOf } from '../sdk/conversations.js';
5
+ import { CliError, EXIT } from '../core/runtime.js';
6
+ import { confirmOrExit } from './link.js';
7
+ import { formatTable, printError, printJson, printSuccess } from './utils/output.js';
8
+ function run(fn) {
9
+ return fn().catch((err) => {
10
+ printError(err);
11
+ process.exit(1);
12
+ });
13
+ }
14
+ export function registerDistributionCommands(program) {
15
+ const dist = program.command('distributions').description('Which website paths open which agent (web widget)');
16
+ dist.command('list')
17
+ .option('--json', 'Output as JSON')
18
+ .action((options) => run(async () => {
19
+ const d = await new DistributionSDK(new IndemnClient()).list();
20
+ if (options.json) {
21
+ printJson(d);
22
+ return;
23
+ }
24
+ console.log(formatTable(['ID', 'Host', 'Path', 'Agent'], (d.paths ?? []).map((p) => [String(p.id), String(p.host_name ?? ''), String(p.path_expression ?? p.path_name ?? ''), String(p.bot_name ?? idOf(p.id_bot))])));
25
+ if (d.scriptTag)
26
+ console.log(chalk.dim(`Embed code for every path: ${d.scriptTag}`));
27
+ }));
28
+ dist.command('create')
29
+ .requiredOption('--agent <id>', 'Agent to open')
30
+ .requiredOption('--host <host>', 'Website host, for example www.example.com')
31
+ .requiredOption('--path <path>', 'Page path, for example /quote')
32
+ .option('--path-expression <expr>', 'Pattern of pages (default: the path)')
33
+ .option('--greeting <text>', 'Greeting for this path')
34
+ .option('--allow-upload', 'Let visitors attach files')
35
+ .option('--yes', 'Do not ask for confirmation')
36
+ .description('Open an agent on a website path (live for visitors once the embed code is on the site)')
37
+ .action((options) => run(async () => {
38
+ await confirmOrExit(`Open agent ${options.agent} on ${options.host}${options.pathExpression ?? options.path}? Visitors of that page see it.`, Boolean(options.yes));
39
+ printJson(await new DistributionSDK(new IndemnClient()).create({
40
+ agentId: options.agent, host: options.host, path: options.path, pathExpression: options.pathExpression, greeting: options.greeting, allowUpload: options.allowUpload,
41
+ }));
42
+ }));
43
+ dist.command('update')
44
+ .argument('<distribution-id>', 'Distribution ID (from `distributions list`)')
45
+ .option('--agent <id>', 'Open another agent')
46
+ .option('--greeting <text>', 'New greeting')
47
+ .option('--path-expression <expr>', 'New page pattern')
48
+ .option('--yes', 'Do not ask for confirmation')
49
+ .action((id, options) => run(async () => {
50
+ const changes = {};
51
+ if (options.agent)
52
+ changes.id_bot = options.agent;
53
+ if (options.greeting)
54
+ changes.greetingMessage = options.greeting;
55
+ if (options.pathExpression)
56
+ changes.pathExpression = options.pathExpression;
57
+ if (!Object.keys(changes).length)
58
+ throw new CliError('Nothing to change. Use --agent, --greeting or --path-expression.', EXIT.NEEDS_INPUT);
59
+ await confirmOrExit(`Change distribution ${id} (${Object.keys(changes).join(', ')})? Visitors see it immediately.`, Boolean(options.yes));
60
+ printJson(await new DistributionSDK(new IndemnClient()).update(id, changes));
61
+ }));
62
+ const templates = program.command('templates').description('Agent templates (shared by every org on the platform)');
63
+ templates.command('list')
64
+ .option('--json', 'Output as JSON')
65
+ .action((options) => run(async () => {
66
+ const list = await new DistributionSDK(new IndemnClient()).listTemplates();
67
+ if (options.json) {
68
+ printJson(list);
69
+ return;
70
+ }
71
+ console.log(formatTable(['ID', 'Name', 'Category', 'Source agent'], list.map((t) => [String(t._id), t.name, (t.category ?? []).join(', '), typeof t.agent_id === 'object' && t.agent_id ? String(t.agent_id.name ?? idOf(t.agent_id._id)) : String(t.agent_id ?? '')])));
72
+ }));
73
+ templates.command('create')
74
+ .requiredOption('--agent <id>', 'Agent of this org to publish as a template')
75
+ .requiredOption('--name <name>', 'Template name')
76
+ .option('--description <text>', 'Description')
77
+ .option('--category <list>', 'Comma-separated categories')
78
+ .option('--tags <list>', 'Comma-separated tags')
79
+ .option('--yes', 'Do not ask for confirmation')
80
+ .description('Publish an agent as a template; every org on the platform can copy it')
81
+ .action((options) => run(async () => {
82
+ await confirmOrExit(`Publish agent ${options.agent} as template "${options.name}"? Every org on the platform can see and copy it, including its prompt and skills.`, Boolean(options.yes));
83
+ printJson(await new DistributionSDK(new IndemnClient()).createTemplate({
84
+ agentId: options.agent, name: options.name, description: options.description,
85
+ category: options.category?.split(',').map((s) => s.trim()), tags: options.tags?.split(',').map((s) => s.trim()),
86
+ }));
87
+ }));
88
+ templates.command('update')
89
+ .argument('<template-id>')
90
+ .option('--name <name>')
91
+ .option('--description <text>')
92
+ .option('--yes', 'Do not ask for confirmation')
93
+ .action((id, options) => run(async () => {
94
+ await confirmOrExit(`Change template ${id}? Every org sees the change.`, Boolean(options.yes));
95
+ printJson(await new DistributionSDK(new IndemnClient()).updateTemplate(id, { name: options.name, description: options.description }));
96
+ }));
97
+ templates.command('delete')
98
+ .argument('<template-id>')
99
+ .option('--yes', 'Do not ask for confirmation')
100
+ .action((id, options) => run(async () => {
101
+ await confirmOrExit(`Remove template ${id} for every org?`, Boolean(options.yes));
102
+ await new DistributionSDK(new IndemnClient()).deleteTemplate(id);
103
+ printSuccess(`Template ${id} removed.`);
104
+ }));
105
+ program.command('solutions').description('Solutions of the org').command('list')
106
+ .action(() => run(async () => printJson(await new DistributionSDK(new IndemnClient()).listSolutions())));
107
+ const agents = program.commands.find((c) => c.name() === 'agents');
108
+ if (!agents)
109
+ throw new Error('agents command group must be registered before distribution commands');
110
+ agents.command('embed')
111
+ .argument('<agent-id>', 'Agent ID')
112
+ .description('The embed code and the website paths that open this agent')
113
+ .action((agentId) => run(async () => {
114
+ const res = await new DistributionSDK(new IndemnClient()).embed(agentId);
115
+ console.log(res.scriptTag ?? '(no embed code)');
116
+ if (!res.paths.length)
117
+ console.log(chalk.dim('No website path opens this agent yet: indemn distributions create --agent ' + agentId + ' --host <host> --path <path>'));
118
+ for (const p of res.paths)
119
+ console.log(chalk.dim(` ${p.host_name}${p.path_expression ?? p.path_name}`));
120
+ }));
121
+ }
122
+ //# sourceMappingURL=distribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/cli/distribution.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4wB3D"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAi8B3D"}