ctxpkg 0.0.3 → 0.0.4

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 (242) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/daemon.js +1 -1
  3. package/dist/agent/agent.d.ts +65 -0
  4. package/dist/agent/agent.d.ts.map +1 -0
  5. package/dist/agent/agent.js +291 -0
  6. package/dist/agent/agent.js.map +1 -0
  7. package/dist/agent/agent.prompts.d.ts +13 -0
  8. package/dist/agent/agent.prompts.d.ts.map +1 -0
  9. package/{src/agent/agent.prompts.ts → dist/agent/agent.prompts.js} +11 -12
  10. package/dist/agent/agent.prompts.js.map +1 -0
  11. package/dist/agent/agent.test-runner.d.ts +73 -0
  12. package/dist/agent/agent.test-runner.d.ts.map +1 -0
  13. package/dist/agent/agent.test-runner.js +316 -0
  14. package/dist/agent/agent.test-runner.js.map +1 -0
  15. package/dist/agent/agent.test-runner.schemas.d.ts +382 -0
  16. package/dist/agent/agent.test-runner.schemas.d.ts.map +1 -0
  17. package/dist/agent/agent.test-runner.schemas.js +110 -0
  18. package/dist/agent/agent.test-runner.schemas.js.map +1 -0
  19. package/dist/agent/agent.types.d.ts +122 -0
  20. package/dist/agent/agent.types.d.ts.map +1 -0
  21. package/dist/agent/agent.types.js +19 -0
  22. package/dist/agent/agent.types.js.map +1 -0
  23. package/dist/backend/backend.d.ts +16 -0
  24. package/dist/backend/backend.d.ts.map +1 -0
  25. package/dist/backend/backend.js +79 -0
  26. package/dist/backend/backend.js.map +1 -0
  27. package/dist/backend/backend.protocol.d.ts +74 -0
  28. package/dist/backend/backend.protocol.d.ts.map +1 -0
  29. package/dist/backend/backend.protocol.js +46 -0
  30. package/dist/backend/backend.protocol.js.map +1 -0
  31. package/dist/backend/backend.schemas.d.ts +141 -0
  32. package/dist/backend/backend.schemas.d.ts.map +1 -0
  33. package/dist/backend/backend.schemas.js +59 -0
  34. package/dist/backend/backend.schemas.js.map +1 -0
  35. package/dist/backend/backend.services.d.ts +290 -0
  36. package/dist/backend/backend.services.d.ts.map +1 -0
  37. package/dist/backend/backend.services.js +103 -0
  38. package/dist/backend/backend.services.js.map +1 -0
  39. package/dist/backend/backend.types.d.ts +25 -0
  40. package/dist/backend/backend.types.d.ts.map +1 -0
  41. package/dist/backend/backend.types.js +6 -0
  42. package/dist/backend/backend.types.js.map +1 -0
  43. package/dist/cli/cli.agent.d.ts +4 -0
  44. package/dist/cli/cli.agent.d.ts.map +1 -0
  45. package/dist/cli/cli.agent.js +158 -0
  46. package/dist/cli/cli.agent.js.map +1 -0
  47. package/dist/cli/cli.chat.d.ts +4 -0
  48. package/dist/cli/cli.chat.d.ts.map +1 -0
  49. package/dist/cli/cli.chat.js +311 -0
  50. package/dist/cli/cli.chat.js.map +1 -0
  51. package/dist/cli/cli.client.d.ts +11 -0
  52. package/dist/cli/cli.client.d.ts.map +1 -0
  53. package/dist/cli/cli.client.js +40 -0
  54. package/dist/cli/cli.client.js.map +1 -0
  55. package/dist/cli/cli.collections.d.ts +4 -0
  56. package/dist/cli/cli.collections.d.ts.map +1 -0
  57. package/dist/cli/cli.collections.js +411 -0
  58. package/dist/cli/cli.collections.js.map +1 -0
  59. package/dist/cli/cli.config.d.ts +4 -0
  60. package/dist/cli/cli.config.d.ts.map +1 -0
  61. package/dist/cli/cli.config.js +192 -0
  62. package/dist/cli/cli.config.js.map +1 -0
  63. package/dist/cli/cli.d.ts +4 -0
  64. package/dist/cli/cli.d.ts.map +1 -0
  65. package/dist/cli/cli.daemon.d.ts +4 -0
  66. package/dist/cli/cli.daemon.d.ts.map +1 -0
  67. package/dist/cli/cli.daemon.js +116 -0
  68. package/dist/cli/cli.daemon.js.map +1 -0
  69. package/dist/cli/cli.documents.d.ts +4 -0
  70. package/dist/cli/cli.documents.d.ts.map +1 -0
  71. package/dist/cli/cli.documents.js +332 -0
  72. package/dist/cli/cli.documents.js.map +1 -0
  73. package/dist/cli/cli.js +23 -0
  74. package/dist/cli/cli.js.map +1 -0
  75. package/dist/cli/cli.mcp.d.ts +4 -0
  76. package/dist/cli/cli.mcp.d.ts.map +1 -0
  77. package/dist/cli/cli.mcp.js +146 -0
  78. package/dist/cli/cli.mcp.js.map +1 -0
  79. package/dist/cli/cli.utils.d.ts +51 -0
  80. package/dist/cli/cli.utils.d.ts.map +1 -0
  81. package/dist/cli/cli.utils.js +95 -0
  82. package/dist/cli/cli.utils.js.map +1 -0
  83. package/dist/client/client.adapters.d.ts +38 -0
  84. package/dist/client/client.adapters.d.ts.map +1 -0
  85. package/dist/client/client.adapters.js +233 -0
  86. package/dist/client/client.adapters.js.map +1 -0
  87. package/dist/client/client.d.ts +16 -0
  88. package/dist/client/client.d.ts.map +1 -0
  89. package/dist/client/client.js +74 -0
  90. package/dist/client/client.js.map +1 -0
  91. package/dist/client/client.types.d.ts +10 -0
  92. package/dist/client/client.types.d.ts.map +1 -0
  93. package/dist/client/client.types.js +2 -0
  94. package/dist/client/client.types.js.map +1 -0
  95. package/dist/collections/collections.d.ts +219 -0
  96. package/dist/collections/collections.d.ts.map +1 -0
  97. package/dist/collections/collections.js +933 -0
  98. package/dist/collections/collections.js.map +1 -0
  99. package/dist/collections/collections.schemas.d.ts +298 -0
  100. package/dist/collections/collections.schemas.d.ts.map +1 -0
  101. package/dist/collections/collections.schemas.js +117 -0
  102. package/dist/collections/collections.schemas.js.map +1 -0
  103. package/dist/config/config.d.ts +29 -0
  104. package/dist/config/config.d.ts.map +1 -0
  105. package/dist/config/config.js +112 -0
  106. package/dist/config/config.js.map +1 -0
  107. package/dist/daemon/daemon.config.d.ts +6 -0
  108. package/dist/daemon/daemon.config.d.ts.map +1 -0
  109. package/dist/daemon/daemon.config.js +19 -0
  110. package/dist/daemon/daemon.config.js.map +1 -0
  111. package/dist/daemon/daemon.d.ts +10 -0
  112. package/dist/daemon/daemon.d.ts.map +1 -0
  113. package/dist/daemon/daemon.js +173 -0
  114. package/dist/daemon/daemon.js.map +1 -0
  115. package/dist/daemon/daemon.manager.d.ts +20 -0
  116. package/dist/daemon/daemon.manager.d.ts.map +1 -0
  117. package/dist/daemon/daemon.manager.js +176 -0
  118. package/dist/daemon/daemon.manager.js.map +1 -0
  119. package/dist/daemon/daemon.schemas.d.ts +38 -0
  120. package/dist/daemon/daemon.schemas.d.ts.map +1 -0
  121. package/dist/daemon/daemon.schemas.js +15 -0
  122. package/dist/daemon/daemon.schemas.js.map +1 -0
  123. package/dist/database/database.d.ts +10 -0
  124. package/dist/database/database.d.ts.map +1 -0
  125. package/dist/database/database.js +52 -0
  126. package/dist/database/database.js.map +1 -0
  127. package/dist/database/migrations/migrations.001-init.d.ts +9 -0
  128. package/dist/database/migrations/migrations.001-init.d.ts.map +1 -0
  129. package/dist/database/migrations/migrations.001-init.js +46 -0
  130. package/dist/database/migrations/migrations.001-init.js.map +1 -0
  131. package/dist/database/migrations/migrations.002-fts5.d.ts +11 -0
  132. package/dist/database/migrations/migrations.002-fts5.d.ts.map +1 -0
  133. package/dist/database/migrations/migrations.002-fts5.js +29 -0
  134. package/dist/database/migrations/migrations.002-fts5.js.map +1 -0
  135. package/dist/database/migrations/migrations.d.ts +11 -0
  136. package/dist/database/migrations/migrations.d.ts.map +1 -0
  137. package/dist/database/migrations/migrations.js +14 -0
  138. package/dist/database/migrations/migrations.js.map +1 -0
  139. package/dist/database/migrations/migrations.types.d.ts +8 -0
  140. package/dist/database/migrations/migrations.types.d.ts.map +1 -0
  141. package/dist/database/migrations/migrations.types.js +2 -0
  142. package/dist/database/migrations/migrations.types.js.map +1 -0
  143. package/dist/documents/documents.d.ts +58 -0
  144. package/dist/documents/documents.d.ts.map +1 -0
  145. package/dist/documents/documents.js +597 -0
  146. package/dist/documents/documents.js.map +1 -0
  147. package/dist/documents/documents.schemas.d.ts +418 -0
  148. package/dist/documents/documents.schemas.d.ts.map +1 -0
  149. package/dist/documents/documents.schemas.js +111 -0
  150. package/dist/documents/documents.schemas.js.map +1 -0
  151. package/dist/embedder/embedder.d.ts +22 -0
  152. package/dist/embedder/embedder.d.ts.map +1 -0
  153. package/dist/embedder/embedder.js +46 -0
  154. package/dist/embedder/embedder.js.map +1 -0
  155. package/dist/exports.d.ts +2 -0
  156. package/dist/exports.d.ts.map +1 -0
  157. package/dist/exports.js +2 -0
  158. package/dist/exports.js.map +1 -0
  159. package/dist/mcp/mcp.d.ts +44 -0
  160. package/dist/mcp/mcp.d.ts.map +1 -0
  161. package/dist/mcp/mcp.js +62 -0
  162. package/dist/mcp/mcp.js.map +1 -0
  163. package/dist/tools/agent/agent.d.ts +14 -0
  164. package/dist/tools/agent/agent.d.ts.map +1 -0
  165. package/dist/tools/agent/agent.js +31 -0
  166. package/dist/tools/agent/agent.js.map +1 -0
  167. package/dist/tools/documents/documents.d.ts +28 -0
  168. package/dist/tools/documents/documents.d.ts.map +1 -0
  169. package/dist/tools/documents/documents.js +336 -0
  170. package/dist/tools/documents/documents.js.map +1 -0
  171. package/dist/tools/tools.langchain.d.ts +11 -0
  172. package/dist/tools/tools.langchain.d.ts.map +1 -0
  173. package/dist/tools/tools.langchain.js +30 -0
  174. package/dist/tools/tools.langchain.js.map +1 -0
  175. package/dist/tools/tools.mcp.d.ts +12 -0
  176. package/dist/tools/tools.mcp.d.ts.map +1 -0
  177. package/dist/tools/tools.mcp.js +38 -0
  178. package/dist/tools/tools.mcp.js.map +1 -0
  179. package/{src/tools/tools.types.ts → dist/tools/tools.types.d.ts} +10 -16
  180. package/dist/tools/tools.types.d.ts.map +1 -0
  181. package/dist/tools/tools.types.js +7 -0
  182. package/dist/tools/tools.types.js.map +1 -0
  183. package/dist/tsconfig.tsbuildinfo +1 -0
  184. package/dist/utils/utils.services.d.ts +14 -0
  185. package/dist/utils/utils.services.d.ts.map +1 -0
  186. package/dist/utils/utils.services.js +33 -0
  187. package/dist/utils/utils.services.js.map +1 -0
  188. package/package.json +2 -2
  189. package/src/agent/AGENTS.md +0 -249
  190. package/src/agent/agent.test-runner.schemas.ts +0 -158
  191. package/src/agent/agent.test-runner.ts +0 -436
  192. package/src/agent/agent.ts +0 -371
  193. package/src/agent/agent.types.ts +0 -94
  194. package/src/backend/AGENTS.md +0 -112
  195. package/src/backend/backend.protocol.ts +0 -95
  196. package/src/backend/backend.schemas.ts +0 -123
  197. package/src/backend/backend.services.ts +0 -151
  198. package/src/backend/backend.ts +0 -111
  199. package/src/backend/backend.types.ts +0 -34
  200. package/src/cli/AGENTS.md +0 -213
  201. package/src/cli/cli.agent.ts +0 -197
  202. package/src/cli/cli.chat.ts +0 -369
  203. package/src/cli/cli.client.ts +0 -55
  204. package/src/cli/cli.collections.ts +0 -491
  205. package/src/cli/cli.config.ts +0 -252
  206. package/src/cli/cli.daemon.ts +0 -160
  207. package/src/cli/cli.documents.ts +0 -413
  208. package/src/cli/cli.mcp.ts +0 -177
  209. package/src/cli/cli.ts +0 -28
  210. package/src/cli/cli.utils.ts +0 -122
  211. package/src/client/AGENTS.md +0 -135
  212. package/src/client/client.adapters.ts +0 -279
  213. package/src/client/client.ts +0 -86
  214. package/src/client/client.types.ts +0 -17
  215. package/src/collections/AGENTS.md +0 -185
  216. package/src/collections/collections.schemas.ts +0 -195
  217. package/src/collections/collections.ts +0 -1160
  218. package/src/config/config.ts +0 -118
  219. package/src/daemon/AGENTS.md +0 -168
  220. package/src/daemon/daemon.config.ts +0 -23
  221. package/src/daemon/daemon.manager.ts +0 -215
  222. package/src/daemon/daemon.schemas.ts +0 -22
  223. package/src/daemon/daemon.ts +0 -205
  224. package/src/database/AGENTS.md +0 -211
  225. package/src/database/database.ts +0 -64
  226. package/src/database/migrations/migrations.001-init.ts +0 -56
  227. package/src/database/migrations/migrations.002-fts5.ts +0 -32
  228. package/src/database/migrations/migrations.ts +0 -20
  229. package/src/database/migrations/migrations.types.ts +0 -9
  230. package/src/documents/AGENTS.md +0 -301
  231. package/src/documents/documents.schemas.ts +0 -190
  232. package/src/documents/documents.ts +0 -734
  233. package/src/embedder/embedder.ts +0 -53
  234. package/src/exports.ts +0 -0
  235. package/src/mcp/AGENTS.md +0 -264
  236. package/src/mcp/mcp.ts +0 -105
  237. package/src/tools/AGENTS.md +0 -228
  238. package/src/tools/agent/agent.ts +0 -45
  239. package/src/tools/documents/documents.ts +0 -401
  240. package/src/tools/tools.langchain.ts +0 -37
  241. package/src/tools/tools.mcp.ts +0 -46
  242. package/src/utils/utils.services.ts +0 -46
@@ -0,0 +1,311 @@
1
+ import { input } from '@inquirer/prompts';
2
+ import { createDocumentAgent, getLLMConfigFromAppConfig } from '../agent/agent.js';
3
+ import { createCliClient } from './cli.client.js';
4
+ import { chalk, formatError, formatHeader, formatInfo, withErrorHandling } from './cli.utils.js';
5
+ import { CollectionsService } from '#root/collections/collections.js';
6
+ import { Services } from '#root/utils/utils.services.js';
7
+ /**
8
+ * Create a verbose step callback that logs agent reasoning to console
9
+ */
10
+ const createVerboseCallback = () => {
11
+ return (step) => {
12
+ switch (step.type) {
13
+ case 'thinking':
14
+ console.log(chalk.dim(` [thinking] ${step.content}`));
15
+ break;
16
+ case 'tool_call':
17
+ console.log(chalk.blue(` [tool] ${step.toolName}`));
18
+ if (step.toolInput) {
19
+ const inputPreview = JSON.stringify(step.toolInput).slice(0, 100);
20
+ console.log(chalk.dim(` Input: ${inputPreview}${inputPreview.length >= 100 ? '...' : ''}`));
21
+ }
22
+ break;
23
+ case 'tool_result':
24
+ console.log(chalk.green(` [result] ${step.content}`));
25
+ break;
26
+ case 'error':
27
+ console.log(chalk.yellow(` [retry] ${step.content}`));
28
+ break;
29
+ }
30
+ };
31
+ };
32
+ /**
33
+ * Resolve collection names to IDs, returning a list of resolved collection IDs
34
+ */
35
+ const resolveCollectionIds = (collections, aliasMap) => {
36
+ if (!collections || collections.length === 0)
37
+ return undefined;
38
+ return collections.map((c) => aliasMap.get(c) ?? c);
39
+ };
40
+ /**
41
+ * Run one-shot chat mode - ask a single question and get an answer.
42
+ */
43
+ const runOneShotChat = async (query, options) => {
44
+ // Get LLM config
45
+ const llmConfig = await getLLMConfigFromAppConfig();
46
+ if (!llmConfig.apiKey) {
47
+ formatError('LLM API key not configured. Set it with: ctxpkg config set llm.apiKey <key>');
48
+ formatError('Or use environment variable: CTXPKG_LLM_API_KEY=<key>');
49
+ process.exitCode = 1;
50
+ return;
51
+ }
52
+ // Override model if specified
53
+ if (options.model) {
54
+ llmConfig.model = options.model;
55
+ }
56
+ // Prompt for use case if not provided
57
+ let useCase = options.useCase;
58
+ if (!useCase) {
59
+ useCase = await input({
60
+ message: 'What is your use case? (helps find relevant information)',
61
+ });
62
+ }
63
+ if (!useCase) {
64
+ formatError('Use case is required to help the agent find relevant information.');
65
+ process.exitCode = 1;
66
+ return;
67
+ }
68
+ const client = await createCliClient();
69
+ const services = new Services();
70
+ try {
71
+ // Build alias map
72
+ const aliasMap = new Map();
73
+ const collectionsService = services.get(CollectionsService);
74
+ const includeGlobal = options.global !== false;
75
+ if (includeGlobal) {
76
+ const allCollections = collectionsService.getAllCollections();
77
+ for (const [alias, { spec }] of allCollections) {
78
+ const collectionId = collectionsService.computeCollectionId(spec);
79
+ aliasMap.set(alias, collectionId);
80
+ }
81
+ }
82
+ else if (collectionsService.projectConfigExists()) {
83
+ const projectConfig = collectionsService.readProjectConfig();
84
+ for (const [alias, spec] of Object.entries(projectConfig.collections)) {
85
+ const collectionId = collectionsService.computeCollectionId(spec);
86
+ aliasMap.set(alias, collectionId);
87
+ }
88
+ }
89
+ // Resolve collection filtering
90
+ const resolvedCollections = resolveCollectionIds(options.collections, aliasMap);
91
+ // Create verbose callback if needed
92
+ const onStep = options.verbose ? createVerboseCallback() : undefined;
93
+ // Create agent with collection filtering
94
+ const agent = createDocumentAgent({
95
+ client,
96
+ llmConfig,
97
+ aliasMap,
98
+ collections: resolvedCollections,
99
+ onStep,
100
+ });
101
+ formatInfo('Searching documentation...\n');
102
+ // Ask the question
103
+ const response = await agent.ask(query, useCase);
104
+ // Display answer
105
+ formatHeader('Answer');
106
+ console.log(response.answer);
107
+ console.log();
108
+ // Display sources
109
+ if (response.sources.length > 0) {
110
+ formatHeader('Sources');
111
+ for (const source of response.sources) {
112
+ const section = source.section ? ` → "${source.section}"` : '';
113
+ console.log(`${chalk.dim('•')} ${chalk.cyan(source.collection)}: ${source.document}${section}`);
114
+ }
115
+ console.log();
116
+ }
117
+ // Display confidence and note
118
+ const confidenceColor = response.confidence === 'high' ? chalk.green : response.confidence === 'medium' ? chalk.yellow : chalk.red;
119
+ console.log(`Confidence: ${confidenceColor(response.confidence)}`);
120
+ if (response.note) {
121
+ console.log(`\n${chalk.dim('Note:')} ${response.note}`);
122
+ }
123
+ }
124
+ finally {
125
+ await client.disconnect();
126
+ await services.destroy();
127
+ }
128
+ };
129
+ /**
130
+ * Run interactive chat mode - continuous conversation with the agent.
131
+ */
132
+ const runInteractiveChat = async (options) => {
133
+ // Get LLM config
134
+ const llmConfig = await getLLMConfigFromAppConfig();
135
+ if (!llmConfig.apiKey) {
136
+ formatError('LLM API key not configured. Set it with: ctxpkg config set llm.apiKey <key>');
137
+ formatError('Or use environment variable: CTXPKG_LLM_API_KEY=<key>');
138
+ process.exitCode = 1;
139
+ return;
140
+ }
141
+ // Override model if specified
142
+ if (options.model) {
143
+ llmConfig.model = options.model;
144
+ }
145
+ const client = await createCliClient();
146
+ const services = new Services();
147
+ try {
148
+ // Build alias map
149
+ const aliasMap = new Map();
150
+ const collectionsService = services.get(CollectionsService);
151
+ const includeGlobal = options.global !== false;
152
+ if (includeGlobal) {
153
+ const allCollections = collectionsService.getAllCollections();
154
+ for (const [alias, { spec }] of allCollections) {
155
+ const collectionId = collectionsService.computeCollectionId(spec);
156
+ aliasMap.set(alias, collectionId);
157
+ }
158
+ }
159
+ else if (collectionsService.projectConfigExists()) {
160
+ const projectConfig = collectionsService.readProjectConfig();
161
+ for (const [alias, spec] of Object.entries(projectConfig.collections)) {
162
+ const collectionId = collectionsService.computeCollectionId(spec);
163
+ aliasMap.set(alias, collectionId);
164
+ }
165
+ }
166
+ // Resolve collection filtering
167
+ const resolvedCollections = resolveCollectionIds(options.collections, aliasMap);
168
+ // Track verbose mode state
169
+ let verbose = options.verbose ?? false;
170
+ // Create agent with collection filtering
171
+ const agent = createDocumentAgent({
172
+ client,
173
+ llmConfig,
174
+ aliasMap,
175
+ collections: resolvedCollections,
176
+ });
177
+ // Display header
178
+ formatHeader('ctxpkg Chat');
179
+ console.log('Type your questions. Commands: /help, /use-case, /clear, /verbose, /quit');
180
+ console.log();
181
+ // Get initial use case
182
+ let useCase = options.useCase;
183
+ if (!useCase) {
184
+ useCase = await input({
185
+ message: 'What are you trying to accomplish?',
186
+ });
187
+ }
188
+ if (!useCase) {
189
+ formatError('Use case is required.');
190
+ process.exitCode = 1;
191
+ return;
192
+ }
193
+ console.log();
194
+ console.log(chalk.dim(`Use case: ${useCase}`));
195
+ if (verbose) {
196
+ console.log(chalk.dim('Verbose mode: on'));
197
+ }
198
+ console.log();
199
+ // Chat loop
200
+ while (true) {
201
+ let message;
202
+ try {
203
+ message = await input({ message: chalk.cyan('You:') });
204
+ }
205
+ catch {
206
+ // Handle Ctrl+C
207
+ console.log('\nGoodbye!');
208
+ break;
209
+ }
210
+ if (!message.trim()) {
211
+ continue;
212
+ }
213
+ // Handle commands
214
+ if (message.startsWith('/')) {
215
+ const cmd = message.toLowerCase().trim();
216
+ if (cmd === '/quit' || cmd === '/exit' || cmd === '/q') {
217
+ console.log('Goodbye!');
218
+ break;
219
+ }
220
+ if (cmd === '/help' || cmd === '/h') {
221
+ console.log('\nCommands:');
222
+ console.log(' /help, /h Show this help');
223
+ console.log(' /use-case, /u Change use case');
224
+ console.log(' /clear, /c Clear conversation history');
225
+ console.log(' /verbose, /v Toggle verbose mode');
226
+ console.log(' /quit, /q Exit chat\n');
227
+ continue;
228
+ }
229
+ if (cmd === '/use-case' || cmd === '/u') {
230
+ console.log(chalk.dim(`Current use case: ${useCase}`));
231
+ const newUseCase = await input({ message: 'New use case (or press enter to keep current):' });
232
+ if (newUseCase.trim()) {
233
+ useCase = newUseCase;
234
+ agent.clearHistory(); // Clear history when use case changes
235
+ console.log(chalk.dim(`Use case updated: ${useCase}`));
236
+ console.log(chalk.dim('Conversation history cleared.\n'));
237
+ }
238
+ continue;
239
+ }
240
+ if (cmd === '/clear' || cmd === '/c') {
241
+ agent.clearHistory();
242
+ console.log(chalk.dim('Conversation history cleared.\n'));
243
+ continue;
244
+ }
245
+ if (cmd === '/verbose' || cmd === '/v') {
246
+ verbose = !verbose;
247
+ console.log(chalk.dim(`Verbose mode: ${verbose ? 'on' : 'off'}\n`));
248
+ continue;
249
+ }
250
+ console.log(chalk.yellow(`Unknown command: ${message}. Type /help for available commands.\n`));
251
+ continue;
252
+ }
253
+ // Ask the question using chat (maintains history)
254
+ console.log();
255
+ formatInfo('Searching...');
256
+ try {
257
+ const onStep = verbose ? createVerboseCallback() : undefined;
258
+ const response = await agent.chat(message, useCase, { onStep });
259
+ console.log();
260
+ console.log(response.answer);
261
+ console.log();
262
+ if (response.sources.length > 0) {
263
+ console.log(chalk.dim('Sources:'));
264
+ for (const source of response.sources) {
265
+ const section = source.section ? ` → "${source.section}"` : '';
266
+ console.log(chalk.dim(` • ${source.collection}: ${source.document}${section}`));
267
+ }
268
+ console.log();
269
+ }
270
+ // Show conversation length in verbose mode
271
+ if (verbose) {
272
+ console.log(chalk.dim(`[${agent.getHistoryLength()} messages in history]\n`));
273
+ }
274
+ }
275
+ catch (error) {
276
+ const errMessage = error instanceof Error ? error.message : String(error);
277
+ formatError(`Error: ${errMessage}`);
278
+ console.log();
279
+ }
280
+ }
281
+ }
282
+ finally {
283
+ await client.disconnect();
284
+ await services.destroy();
285
+ }
286
+ };
287
+ const createChatCli = (command) => {
288
+ command
289
+ .description('Chat with your documentation using AI')
290
+ .argument('[query]', 'Question to ask (starts one-shot mode)')
291
+ .option('-i, --interactive', 'Start interactive chat session')
292
+ .option('-u, --use-case <text>', 'Context for why you need this information')
293
+ .option('-c, --collections <names...>', 'Limit to specific collections')
294
+ .option('--no-global', 'Exclude global collections')
295
+ .option('--model <model>', 'Override LLM model from config')
296
+ .option('--verbose', 'Show agent reasoning (not yet implemented)')
297
+ .action(withErrorHandling(async (query, options) => {
298
+ if (options.interactive) {
299
+ await runInteractiveChat(options);
300
+ }
301
+ else if (query) {
302
+ await runOneShotChat(query, options);
303
+ }
304
+ else {
305
+ // No query and not interactive - start interactive mode
306
+ await runInteractiveChat(options);
307
+ }
308
+ }));
309
+ };
310
+ export { createChatCli };
311
+ //# sourceMappingURL=cli.chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.chat.js","sourceRoot":"","sources":["../../src/cli/cli.chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { BackendClient } from '#root/client/client.js';
2
+ type CliClientMode = 'auto' | 'direct' | 'daemon';
3
+ type CliClientOptions = {
4
+ mode?: CliClientMode;
5
+ socketPath?: string;
6
+ timeout?: number;
7
+ };
8
+ declare const createCliClient: (options?: CliClientOptions) => Promise<BackendClient>;
9
+ export { createCliClient };
10
+ export type { CliClientOptions, CliClientMode };
11
+ //# sourceMappingURL=cli.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.client.d.ts","sourceRoot":"","sources":["../../src/cli/cli.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,KAAK,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElD,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAGF,QAAA,MAAM,eAAe,GAAU,UAAU,gBAAgB,KAAG,OAAO,CAAC,aAAa,CAuChF,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { BackendClient } from '#root/client/client.js';
2
+ import { DaemonManager } from '#root/daemon/daemon.manager.js';
3
+ // Factory function for CLI commands
4
+ const createCliClient = async (options) => {
5
+ const mode = options?.mode ?? 'auto';
6
+ if (mode === 'auto') {
7
+ // Try daemon first, fall back to direct
8
+ const manager = new DaemonManager({ socketPath: options?.socketPath });
9
+ const isDaemonRunning = await manager.isRunning();
10
+ if (isDaemonRunning) {
11
+ const client = new BackendClient({
12
+ mode: 'daemon',
13
+ socketPath: options?.socketPath,
14
+ timeout: options?.timeout,
15
+ });
16
+ await client.connect();
17
+ return client;
18
+ }
19
+ // Fall back to direct mode
20
+ const client = new BackendClient({ mode: 'direct' });
21
+ await client.connect();
22
+ return client;
23
+ }
24
+ if (mode === 'daemon') {
25
+ const client = new BackendClient({
26
+ mode: 'daemon',
27
+ socketPath: options?.socketPath,
28
+ autoStartDaemon: true,
29
+ timeout: options?.timeout,
30
+ });
31
+ await client.connect();
32
+ return client;
33
+ }
34
+ // Direct mode
35
+ const client = new BackendClient({ mode: 'direct' });
36
+ await client.connect();
37
+ return client;
38
+ };
39
+ export { createCliClient };
40
+ //# sourceMappingURL=cli.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.client.js","sourceRoot":"","sources":["../../src/cli/cli.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAU/D,oCAAoC;AACpC,MAAM,eAAe,GAAG,KAAK,EAAE,OAA0B,EAA0B,EAAE;IACnF,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC;IAErC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;gBAC/B,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,OAAO,EAAE,UAAU;gBAC/B,OAAO,EAAE,OAAO,EAAE,OAAO;aAC1B,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,2BAA2B;QAC3B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;YAC/B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO,EAAE,UAAU;YAC/B,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;IACd,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ declare const createCollectionsCli: (command: Command) => void;
3
+ export { createCollectionsCli };
4
+ //# sourceMappingURL=cli.collections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.collections.d.ts","sourceRoot":"","sources":["../../src/cli/cli.collections.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,QAAA,MAAM,oBAAoB,GAAI,SAAS,OAAO,SAgc7C,CAAC;AAgBF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}