@indemn/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.claude-plugin/plugin.json +13 -0
  2. package/.mcp.json +9 -0
  3. package/README.md +225 -0
  4. package/dist/cli/agents.d.ts +3 -0
  5. package/dist/cli/agents.d.ts.map +1 -0
  6. package/dist/cli/agents.js +187 -0
  7. package/dist/cli/agents.js.map +1 -0
  8. package/dist/cli/auth.d.ts +3 -0
  9. package/dist/cli/auth.d.ts.map +1 -0
  10. package/dist/cli/auth.js +161 -0
  11. package/dist/cli/auth.js.map +1 -0
  12. package/dist/cli/chat.d.ts +3 -0
  13. package/dist/cli/chat.d.ts.map +1 -0
  14. package/dist/cli/chat.js +142 -0
  15. package/dist/cli/chat.js.map +1 -0
  16. package/dist/cli/config.d.ts +3 -0
  17. package/dist/cli/config.d.ts.map +1 -0
  18. package/dist/cli/config.js +119 -0
  19. package/dist/cli/config.js.map +1 -0
  20. package/dist/cli/eval.d.ts +3 -0
  21. package/dist/cli/eval.d.ts.map +1 -0
  22. package/dist/cli/eval.js +717 -0
  23. package/dist/cli/eval.js.map +1 -0
  24. package/dist/cli/functions.d.ts +3 -0
  25. package/dist/cli/functions.d.ts.map +1 -0
  26. package/dist/cli/functions.js +346 -0
  27. package/dist/cli/functions.js.map +1 -0
  28. package/dist/cli/index.d.ts +3 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +64 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/cli/kb.d.ts +3 -0
  33. package/dist/cli/kb.d.ts.map +1 -0
  34. package/dist/cli/kb.js +377 -0
  35. package/dist/cli/kb.js.map +1 -0
  36. package/dist/cli/utils/output.d.ts +6 -0
  37. package/dist/cli/utils/output.d.ts.map +1 -0
  38. package/dist/cli/utils/output.js +36 -0
  39. package/dist/cli/utils/output.js.map +1 -0
  40. package/dist/mcp/server.d.ts +2 -0
  41. package/dist/mcp/server.d.ts.map +1 -0
  42. package/dist/mcp/server.js +15 -0
  43. package/dist/mcp/server.js.map +1 -0
  44. package/dist/mcp/tools.d.ts +4 -0
  45. package/dist/mcp/tools.d.ts.map +1 -0
  46. package/dist/mcp/tools.js +814 -0
  47. package/dist/mcp/tools.js.map +1 -0
  48. package/dist/sdk/agents.d.ts +13 -0
  49. package/dist/sdk/agents.d.ts.map +1 -0
  50. package/dist/sdk/agents.js +27 -0
  51. package/dist/sdk/agents.js.map +1 -0
  52. package/dist/sdk/auth.d.ts +18 -0
  53. package/dist/sdk/auth.d.ts.map +1 -0
  54. package/dist/sdk/auth.js +98 -0
  55. package/dist/sdk/auth.js.map +1 -0
  56. package/dist/sdk/chat.d.ts +17 -0
  57. package/dist/sdk/chat.d.ts.map +1 -0
  58. package/dist/sdk/chat.js +113 -0
  59. package/dist/sdk/chat.js.map +1 -0
  60. package/dist/sdk/client.d.ts +36 -0
  61. package/dist/sdk/client.d.ts.map +1 -0
  62. package/dist/sdk/client.js +219 -0
  63. package/dist/sdk/client.js.map +1 -0
  64. package/dist/sdk/config.d.ts +11 -0
  65. package/dist/sdk/config.d.ts.map +1 -0
  66. package/dist/sdk/config.js +20 -0
  67. package/dist/sdk/config.js.map +1 -0
  68. package/dist/sdk/eval.d.ts +13 -0
  69. package/dist/sdk/eval.d.ts.map +1 -0
  70. package/dist/sdk/eval.js +36 -0
  71. package/dist/sdk/eval.js.map +1 -0
  72. package/dist/sdk/functions.d.ts +30 -0
  73. package/dist/sdk/functions.d.ts.map +1 -0
  74. package/dist/sdk/functions.js +59 -0
  75. package/dist/sdk/functions.js.map +1 -0
  76. package/dist/sdk/index.d.ts +12 -0
  77. package/dist/sdk/index.d.ts.map +1 -0
  78. package/dist/sdk/index.js +12 -0
  79. package/dist/sdk/index.js.map +1 -0
  80. package/dist/sdk/kb.d.ts +30 -0
  81. package/dist/sdk/kb.d.ts.map +1 -0
  82. package/dist/sdk/kb.js +102 -0
  83. package/dist/sdk/kb.js.map +1 -0
  84. package/dist/sdk/rubrics.d.ts +14 -0
  85. package/dist/sdk/rubrics.d.ts.map +1 -0
  86. package/dist/sdk/rubrics.js +29 -0
  87. package/dist/sdk/rubrics.js.map +1 -0
  88. package/dist/sdk/test-sets.d.ts +14 -0
  89. package/dist/sdk/test-sets.d.ts.map +1 -0
  90. package/dist/sdk/test-sets.js +29 -0
  91. package/dist/sdk/test-sets.js.map +1 -0
  92. package/dist/sdk/types.d.ts +305 -0
  93. package/dist/sdk/types.d.ts.map +1 -0
  94. package/dist/sdk/types.js +3 -0
  95. package/dist/sdk/types.js.map +1 -0
  96. package/package.json +40 -0
  97. package/skills/agent-setup/SKILL.md +131 -0
  98. package/skills/eval-orchestration/SKILL.md +257 -0
  99. package/skills/rubric-creation/SKILL.md +163 -0
  100. package/skills/test-set-creation/SKILL.md +250 -0
  101. package/src/cli/agents.ts +206 -0
  102. package/src/cli/auth.ts +170 -0
  103. package/src/cli/chat.ts +161 -0
  104. package/src/cli/config.ts +131 -0
  105. package/src/cli/eval.ts +750 -0
  106. package/src/cli/functions.ts +330 -0
  107. package/src/cli/index.ts +68 -0
  108. package/src/cli/kb.ts +412 -0
  109. package/src/cli/utils/output.ts +42 -0
  110. package/src/mcp/server.ts +17 -0
  111. package/src/mcp/tools.ts +971 -0
  112. package/src/sdk/agents.ts +47 -0
  113. package/src/sdk/auth.ts +132 -0
  114. package/src/sdk/chat.ts +133 -0
  115. package/src/sdk/client.ts +238 -0
  116. package/src/sdk/config.ts +28 -0
  117. package/src/sdk/eval.ts +57 -0
  118. package/src/sdk/functions.ts +103 -0
  119. package/src/sdk/index.ts +11 -0
  120. package/src/sdk/kb.ts +183 -0
  121. package/src/sdk/rubrics.ts +35 -0
  122. package/src/sdk/test-sets.ts +35 -0
  123. package/src/sdk/types.ts +347 -0
  124. package/test/fixtures/test-rubric.json +66 -0
  125. package/test/fixtures/test-testset.json +55 -0
  126. package/tsconfig.json +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubrics.d.ts","sourceRoot":"","sources":["../../src/sdk/rubrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,UAAU;IACT,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKhD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItC,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5E,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI3C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/D"}
@@ -0,0 +1,29 @@
1
+ export class RubricsSDK {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ async listRubrics(agentId) {
7
+ const query = agentId ? { agent_id: agentId } : undefined;
8
+ return this.client.evalsGet('/api/v1/rubrics', query);
9
+ }
10
+ async getRubric(id) {
11
+ return this.client.evalsGet(`/api/v1/rubrics/${id}`);
12
+ }
13
+ async createRubric(input) {
14
+ return this.client.evalsPost('/api/v1/rubrics', input);
15
+ }
16
+ async updateRubric(id, input) {
17
+ return this.client.evalsPut(`/api/v1/rubrics/${id}`, input);
18
+ }
19
+ async deleteRubric(id) {
20
+ await this.client.evalsDelete(`/api/v1/rubrics/${id}`);
21
+ }
22
+ async listVersions(id) {
23
+ return this.client.evalsGet(`/api/v1/rubrics/${id}/versions`);
24
+ }
25
+ async getVersion(id, version) {
26
+ return this.client.evalsGet(`/api/v1/rubrics/${id}/versions/${version}`);
27
+ }
28
+ }
29
+ //# sourceMappingURL=rubrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubrics.js","sourceRoot":"","sources":["../../src/sdk/rubrics.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE5C,KAAK,CAAC,WAAW,CAAC,OAAgB;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAW,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAwB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAS,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,KAAiC;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,mBAAmB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAW,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,OAAe;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,mBAAmB,EAAE,aAAa,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { IndemnClient } from './client.js';
2
+ import type { TestSet, CreateTestSetInput } from './types.js';
3
+ export declare class TestSetsSDK {
4
+ private client;
5
+ constructor(client: IndemnClient);
6
+ listTestSets(agentId?: string): Promise<TestSet[]>;
7
+ getTestSet(id: string): Promise<TestSet>;
8
+ createTestSet(input: CreateTestSetInput): Promise<TestSet>;
9
+ updateTestSet(id: string, input: Partial<CreateTestSetInput>): Promise<TestSet>;
10
+ deleteTestSet(id: string): Promise<void>;
11
+ listVersions(id: string): Promise<TestSet[]>;
12
+ getVersion(id: string, version: number): Promise<TestSet>;
13
+ }
14
+ //# sourceMappingURL=test-sets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-sets.d.ts","sourceRoot":"","sources":["../../src/sdk/test-sets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAKlD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI5C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGhE"}
@@ -0,0 +1,29 @@
1
+ export class TestSetsSDK {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ async listTestSets(agentId) {
7
+ const query = agentId ? { agent_id: agentId } : undefined;
8
+ return this.client.evalsGet('/api/v1/test-sets', query);
9
+ }
10
+ async getTestSet(id) {
11
+ return this.client.evalsGet(`/api/v1/test-sets/${id}`);
12
+ }
13
+ async createTestSet(input) {
14
+ return this.client.evalsPost('/api/v1/test-sets', input);
15
+ }
16
+ async updateTestSet(id, input) {
17
+ return this.client.evalsPut(`/api/v1/test-sets/${id}`, input);
18
+ }
19
+ async deleteTestSet(id) {
20
+ await this.client.evalsDelete(`/api/v1/test-sets/${id}`);
21
+ }
22
+ async listVersions(id) {
23
+ return this.client.evalsGet(`/api/v1/test-sets/${id}/versions`);
24
+ }
25
+ async getVersion(id, version) {
26
+ return this.client.evalsGet(`/api/v1/test-sets/${id}/versions/${version}`);
27
+ }
28
+ }
29
+ //# sourceMappingURL=test-sets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-sets.js","sourceRoot":"","sources":["../../src/sdk/test-sets.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE5C,KAAK,CAAC,YAAY,CAAC,OAAgB;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAY,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAU,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAyB;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAU,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,KAAkC;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAU,qBAAqB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAY,qBAAqB,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,OAAe;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAU,qBAAqB,EAAE,aAAa,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;CACF"}
@@ -0,0 +1,305 @@
1
+ export type Environment = 'dev' | 'production';
2
+ export interface EnvironmentHosts {
3
+ copilot: string;
4
+ evaluations: string;
5
+ middleware: string;
6
+ }
7
+ export interface IndemnConfig {
8
+ api_key: string;
9
+ org_id: string;
10
+ user_id: string;
11
+ environment: Environment;
12
+ hosts: Record<Environment, EnvironmentHosts>;
13
+ }
14
+ export interface ApiResponse<T = unknown> {
15
+ success: boolean;
16
+ data: T;
17
+ msg?: string;
18
+ }
19
+ export interface Agent {
20
+ _id: string;
21
+ name: string;
22
+ description?: string;
23
+ channels?: string[];
24
+ webhook_url?: string;
25
+ webhook_enabled?: boolean;
26
+ trashed?: boolean;
27
+ id_project?: string;
28
+ createdAt?: string;
29
+ updatedAt?: string;
30
+ }
31
+ export interface AgentExpanded extends Agent {
32
+ configurations?: BotConfiguration;
33
+ functions?: BotFunction[];
34
+ mappings?: KBMapping[];
35
+ }
36
+ export interface CreateAgentInput {
37
+ name: string;
38
+ channels?: string[];
39
+ }
40
+ export interface UpdateAgentInput {
41
+ name?: string;
42
+ description?: string;
43
+ webhook_url?: string;
44
+ webhook_enabled?: boolean;
45
+ }
46
+ export interface AIConfig {
47
+ system_prompt?: string;
48
+ system_prompt_ops?: Record<string, unknown>;
49
+ use_default_prompt?: boolean;
50
+ kb_configuration?: {
51
+ namespace?: string;
52
+ index_name?: string;
53
+ embedding_provider?: string;
54
+ };
55
+ is_reranking_enabled?: boolean;
56
+ identify_next_step_enabled?: boolean;
57
+ }
58
+ export interface FirstMessage {
59
+ text?: string;
60
+ quick_replies?: Array<{
61
+ type: string;
62
+ title: string;
63
+ payload: string;
64
+ }>;
65
+ }
66
+ export interface BotConfiguration {
67
+ ai_config?: AIConfig;
68
+ first_message?: FirstMessage;
69
+ is_button_enabled?: boolean;
70
+ [key: string]: unknown;
71
+ }
72
+ export interface SetConfigInput {
73
+ system_prompt?: string;
74
+ first_message?: FirstMessage;
75
+ [key: string]: unknown;
76
+ }
77
+ export interface BotFunction {
78
+ _id: string;
79
+ type: string;
80
+ description?: string;
81
+ name?: string;
82
+ url?: string;
83
+ method?: string;
84
+ headers?: Record<string, string>;
85
+ body?: Record<string, unknown>;
86
+ parameters?: FunctionParameter[];
87
+ id_bot?: string;
88
+ createdAt?: string;
89
+ updatedAt?: string;
90
+ }
91
+ export interface FunctionParameter {
92
+ _id?: string;
93
+ name: string;
94
+ type: string;
95
+ description?: string;
96
+ required?: boolean;
97
+ }
98
+ export interface CreateFunctionInput {
99
+ type: string;
100
+ description?: string;
101
+ name?: string;
102
+ url?: string;
103
+ method?: string;
104
+ headers?: Record<string, string>;
105
+ body?: Record<string, unknown>;
106
+ }
107
+ export interface UpdateFunctionInput {
108
+ description?: string;
109
+ name?: string;
110
+ url?: string;
111
+ method?: string;
112
+ headers?: Record<string, string>;
113
+ body?: Record<string, unknown>;
114
+ }
115
+ export interface KnowledgeBase {
116
+ _id: string;
117
+ name: string;
118
+ type?: string;
119
+ description?: string;
120
+ id_project?: string;
121
+ createdAt?: string;
122
+ updatedAt?: string;
123
+ }
124
+ export interface CreateKBInput {
125
+ name: string;
126
+ type: string;
127
+ }
128
+ export interface UpdateKBInput {
129
+ name?: string;
130
+ description?: string;
131
+ }
132
+ export interface DataSource {
133
+ _id: string;
134
+ name?: string;
135
+ type?: string;
136
+ content?: string;
137
+ question?: string;
138
+ answer?: string;
139
+ source_url?: string;
140
+ status?: string;
141
+ id_kb?: string;
142
+ createdAt?: string;
143
+ updatedAt?: string;
144
+ }
145
+ export interface AddDataSourceInput {
146
+ question?: string;
147
+ answer?: string;
148
+ name?: string;
149
+ source_url?: string;
150
+ content?: string;
151
+ }
152
+ export interface KBMapping {
153
+ _id: string;
154
+ id_bot: string;
155
+ id_kb: string;
156
+ }
157
+ export interface RubricRule {
158
+ id: string;
159
+ name: string;
160
+ severity: 'high' | 'medium' | 'low';
161
+ category: 'persona' | 'instruction_compliance' | 'safety' | 'response_quality';
162
+ description: string;
163
+ component_scope?: 'prompt' | 'general' | 'function' | 'knowledge_base';
164
+ component_ids?: string[] | null;
165
+ component_names?: string[] | null;
166
+ evaluation_criteria?: {
167
+ pass_conditions: string[];
168
+ fail_conditions: string[];
169
+ };
170
+ }
171
+ export interface Rubric {
172
+ _id?: string;
173
+ rubric_id?: string;
174
+ agent_id?: string;
175
+ name: string;
176
+ description?: string;
177
+ version?: number;
178
+ severity_definitions?: Record<string, string>;
179
+ rules: RubricRule[];
180
+ createdAt?: string;
181
+ updatedAt?: string;
182
+ }
183
+ export interface CreateRubricInput {
184
+ agent_id?: string;
185
+ name: string;
186
+ description?: string;
187
+ severity_definitions?: Record<string, string>;
188
+ rules: RubricRule[];
189
+ }
190
+ export interface TestItem {
191
+ type: 'single_turn' | 'scenario' | 'voice_simulation';
192
+ name: string;
193
+ inputs: {
194
+ message?: string;
195
+ persona?: string;
196
+ initial_message?: string;
197
+ max_turns?: number;
198
+ };
199
+ expected: {
200
+ success_criteria: string[];
201
+ expected_outcome?: string;
202
+ };
203
+ tags?: string[];
204
+ priority?: 'high' | 'medium' | 'low';
205
+ }
206
+ export interface TestSet {
207
+ _id?: string;
208
+ test_set_id?: string;
209
+ agent_id?: string;
210
+ name: string;
211
+ description?: string;
212
+ version?: number;
213
+ items: TestItem[];
214
+ createdAt?: string;
215
+ updatedAt?: string;
216
+ }
217
+ export interface CreateTestSetInput {
218
+ agent_id?: string;
219
+ name: string;
220
+ description?: string;
221
+ items: TestItem[];
222
+ }
223
+ export interface EvaluationTriggerInput {
224
+ bot_id: string;
225
+ test_set_id: string;
226
+ rubric_id?: string;
227
+ concurrency?: number;
228
+ eval_model?: string;
229
+ keep?: boolean;
230
+ limit?: number;
231
+ component_scope?: string;
232
+ component_ids?: string[];
233
+ conversation_ids?: string[];
234
+ mode?: string;
235
+ }
236
+ export interface EvaluationTriggerResponse {
237
+ run_id: string;
238
+ dataset_id?: string;
239
+ config_id?: string;
240
+ status: string;
241
+ total?: number;
242
+ items_count?: number;
243
+ rules_count?: number;
244
+ }
245
+ export interface EvaluationRun {
246
+ run_id: string;
247
+ dataset_id?: string;
248
+ agent_id?: string;
249
+ status: 'pending' | 'running' | 'completed' | 'failed';
250
+ total?: number;
251
+ completed?: number;
252
+ passed?: number;
253
+ failed?: number;
254
+ concurrency?: number;
255
+ started_at?: string;
256
+ completed_at?: string;
257
+ error?: string;
258
+ criteria_passed?: number;
259
+ criteria_total?: number;
260
+ rubric_rules_passed?: number;
261
+ rubric_rules_total?: number;
262
+ component_scores?: Record<string, {
263
+ score: number;
264
+ total: number;
265
+ passed: number;
266
+ }>;
267
+ rubric_id?: string;
268
+ rubric_version?: number;
269
+ test_set_id?: string;
270
+ test_set_version?: number;
271
+ bot_llm_provider?: string;
272
+ bot_llm_model?: string;
273
+ }
274
+ export interface EvaluationResult {
275
+ [key: string]: unknown;
276
+ }
277
+ export interface BotContext {
278
+ system_prompt?: string;
279
+ tools?: BotFunction[];
280
+ knowledge_bases?: KnowledgeBase[];
281
+ llm_config?: Record<string, unknown>;
282
+ [key: string]: unknown;
283
+ }
284
+ export interface ChatMessage {
285
+ text: string;
286
+ streaming?: boolean;
287
+ streamId?: string;
288
+ isFirstChunk?: boolean;
289
+ streamFinished?: boolean;
290
+ }
291
+ export interface SessionRequest {
292
+ session_id: string | null;
293
+ bot_type: string;
294
+ user_id: string;
295
+ customData: Record<string, unknown>;
296
+ }
297
+ export interface UserMessage {
298
+ message: string;
299
+ messageType: 'text';
300
+ bot_type: string;
301
+ user_id: string;
302
+ session_id: string;
303
+ is_user_message_sent: boolean;
304
+ }
305
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Environment and configuration types
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAAA,sCAAsC"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@indemn/cli",
3
+ "version": "1.0.0",
4
+ "description": "CLI, MCP server, and plugin for managing Indemn AI agents",
5
+ "type": "module",
6
+ "main": "./dist/sdk/index.js",
7
+ "bin": {
8
+ "indemn": "./dist/cli/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsx --watch src/cli/index.ts",
13
+ "test": "vitest run",
14
+ "test:watch": "vitest"
15
+ },
16
+ "keywords": ["ai-agents", "insurance", "evaluations", "indemn", "mcp"],
17
+ "author": "Indemn <support@indemn.com>",
18
+ "license": "MIT",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/indemn-ai/indemn-cli"
22
+ },
23
+ "dependencies": {
24
+ "@modelcontextprotocol/sdk": "^1.25.1",
25
+ "chalk": "^5.4.1",
26
+ "cli-table3": "^0.6.5",
27
+ "commander": "^13.1.0",
28
+ "conf": "^13.1.0",
29
+ "firebase": "^11.6.0",
30
+ "ora": "^8.2.0",
31
+ "socket.io-client": "^4.8.1",
32
+ "zod": "^3.24.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^22.15.0",
36
+ "tsx": "^4.19.0",
37
+ "typescript": "^5.9.3",
38
+ "vitest": "^3.1.0"
39
+ }
40
+ }
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: agent-setup
3
+ description: End-to-end agent creation workflow using the indemn CLI — create, configure, and test an Indemn AI agent. Use when the user wants to set up a new agent from scratch.
4
+ ---
5
+
6
+ # Agent Setup
7
+
8
+ Guide the user through creating a fully configured Indemn AI agent using the `indemn` CLI. This skill coordinates across all agent management commands to go from zero to a working, testable agent.
9
+
10
+ **Prerequisite:** The `indemn` CLI must be installed and authenticated. Run `indemn whoami` to verify.
11
+
12
+ ---
13
+
14
+ ## Workflow
15
+
16
+ ### Step 1: Gather Requirements
17
+
18
+ Ask the user:
19
+ 1. **Agent name** — What should this agent be called?
20
+ 2. **Purpose** — What does the agent do? (insurance quotes, customer service, FAQ, lead gen, etc.)
21
+ 3. **Channels** — Where will it be deployed? (WEB, VOICE, or both)
22
+ 4. **Key behaviors** — Any specific rules, tone, or constraints?
23
+
24
+ ### Step 2: Create the Agent
25
+
26
+ ```bash
27
+ indemn agents create --name "<agent name>"
28
+ ```
29
+
30
+ Capture the agent ID from the output. Report it to the user.
31
+
32
+ ### Step 3: Set the System Prompt
33
+
34
+ Based on the gathered requirements, draft a system prompt. Include:
35
+ - Agent persona (name, role, company)
36
+ - Core instructions (what the agent does, how it handles conversations)
37
+ - Key constraints (what it should NEVER do)
38
+ - Tone guidance
39
+
40
+ Present the draft prompt to the user for review before setting it.
41
+
42
+ ```bash
43
+ indemn config set <agent-id> --prompt "You are..."
44
+ ```
45
+
46
+ Verify it was set correctly:
47
+ ```bash
48
+ indemn config get <agent-id> --field prompt
49
+ ```
50
+
51
+ ### Step 4: Create Functions (if needed)
52
+
53
+ If the agent needs to call external APIs or perform actions:
54
+
55
+ ```bash
56
+ indemn functions create <agent-id> --type rest_api --name "function_name" --description "What this function does"
57
+ ```
58
+
59
+ ### Step 5: Create Knowledge Base (if needed)
60
+
61
+ If the agent needs reference information:
62
+
63
+ 1. Create the KB:
64
+ ```bash
65
+ indemn kb create --name "<KB Name>" --type qna
66
+ ```
67
+
68
+ 2. Add QA data sources:
69
+ ```bash
70
+ indemn kb data add <kb-id> --question "What is your coverage?" --answer "We offer auto, home, and life insurance."
71
+ ```
72
+
73
+ 3. Link the KB to the agent:
74
+ ```bash
75
+ indemn kb link <agent-id> <kb-id>
76
+ ```
77
+
78
+ ### Step 6: Test the Agent
79
+
80
+ Send test messages to verify the agent responds correctly:
81
+ ```bash
82
+ indemn chat <agent-id> --message "Hello, I need help with insurance"
83
+ ```
84
+
85
+ The `--message` flag sends a single message, prints the agent's response, and exits. Run multiple messages to test different scenarios:
86
+ ```bash
87
+ indemn chat <agent-id> --message "What types of coverage do you offer?"
88
+ indemn chat <agent-id> --message "Can you help me file a claim?"
89
+ ```
90
+
91
+ If the response looks wrong:
92
+ - Check the prompt: `indemn config get <agent-id> --field prompt`
93
+ - Check agent details: `indemn agents get <agent-id> --json`
94
+ - Adjust the prompt: `indemn config set <agent-id> --prompt "..."`
95
+ - Re-test with `indemn chat <agent-id> --message "..."`
96
+
97
+ ### Step 7: Summary
98
+
99
+ Report to the user:
100
+ - Agent ID and name
101
+ - Configured prompt (brief summary)
102
+ - Functions created (if any)
103
+ - Knowledge bases linked (if any)
104
+ - Test chat result
105
+ - Next steps: run evaluations with `/eval-orchestration`, iterate on prompt
106
+
107
+ ---
108
+
109
+ ## CLI Commands Used
110
+
111
+ | Command | Step | Purpose |
112
+ |---------|------|---------|
113
+ | `indemn agents create` | 2 | Create the agent |
114
+ | `indemn config set --prompt` | 3 | Configure system prompt |
115
+ | `indemn config get --field prompt` | 3 | Verify prompt |
116
+ | `indemn functions create` | 4 | Add API functions |
117
+ | `indemn kb create` | 5 | Create knowledge base |
118
+ | `indemn kb data add` | 5 | Add QA pairs |
119
+ | `indemn kb link` | 5 | Connect KB to agent |
120
+ | `indemn chat --message` | 6 | Send test message and get response |
121
+ | `indemn agents get` | 6 | Check full agent config |
122
+
123
+ ---
124
+
125
+ ## Tips
126
+
127
+ - Start simple — a good prompt is more important than functions or KBs
128
+ - Test after each major change to catch issues early
129
+ - Use `/eval-orchestration` after setup to create formal test coverage
130
+ - Keep the initial prompt focused — you can iterate after seeing test results
131
+ - All list commands support `--json` for machine-readable output