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 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,QAAA,MAAM,aAAa,eAelB,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ declare const createDaemonCli: (command: Command) => void;
3
+ export { createDaemonCli };
4
+ //# sourceMappingURL=cli.daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.daemon.d.ts","sourceRoot":"","sources":["../../src/cli/cli.daemon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,QAAA,MAAM,eAAe,GAAI,SAAS,OAAO,SA6HxC,CAAC;AAoBF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { formatHeader, formatSuccess, formatInfo, formatTableHeader, formatTableRow, withErrorHandling, chalk, } from './cli.utils.js';
2
+ import { DaemonManager } from '#root/daemon/daemon.manager.js';
3
+ const createDaemonCli = (command) => {
4
+ command.description('Manage the background daemon');
5
+ // Start command
6
+ command
7
+ .command('start')
8
+ .description('Start the daemon')
9
+ .action(withErrorHandling(async () => {
10
+ const manager = new DaemonManager();
11
+ if (await manager.isRunning()) {
12
+ formatInfo('Daemon is already running.');
13
+ return;
14
+ }
15
+ formatInfo('Starting daemon...');
16
+ await manager.start();
17
+ formatSuccess('Daemon started.');
18
+ const status = await manager.getStatus();
19
+ if (status) {
20
+ formatInfo(`Socket: ${chalk.cyan(status.socketPath)}`);
21
+ formatInfo(`PID: ${chalk.cyan(status.pid)}`);
22
+ }
23
+ }));
24
+ // Stop command
25
+ command
26
+ .command('stop')
27
+ .description('Stop the daemon')
28
+ .action(withErrorHandling(async () => {
29
+ const manager = new DaemonManager();
30
+ if (!(await manager.isRunning())) {
31
+ formatInfo('Daemon is not running.');
32
+ return;
33
+ }
34
+ formatInfo('Stopping daemon...');
35
+ await manager.stop();
36
+ formatSuccess('Daemon stopped.');
37
+ }));
38
+ // Status command
39
+ command
40
+ .command('status')
41
+ .description('Show daemon status')
42
+ .action(withErrorHandling(async () => {
43
+ const manager = new DaemonManager();
44
+ const status = await manager.getStatus();
45
+ formatHeader('Daemon Status');
46
+ if (!status) {
47
+ formatInfo('Daemon is not running.');
48
+ return;
49
+ }
50
+ const uptime = formatUptime(status.uptime);
51
+ formatTableHeader([
52
+ { name: 'Property', width: 15 },
53
+ { name: 'Value', width: 40 },
54
+ ]);
55
+ formatTableRow([
56
+ { value: 'Status', width: 15, color: chalk.white },
57
+ { value: 'Running', width: 40, color: chalk.green },
58
+ ]);
59
+ formatTableRow([
60
+ { value: 'PID', width: 15, color: chalk.white },
61
+ { value: String(status.pid), width: 40, color: chalk.cyan },
62
+ ]);
63
+ formatTableRow([
64
+ { value: 'Socket', width: 15, color: chalk.white },
65
+ { value: status.socketPath, width: 40, color: chalk.cyan },
66
+ ]);
67
+ formatTableRow([
68
+ { value: 'Uptime', width: 15, color: chalk.white },
69
+ { value: uptime, width: 40, color: chalk.yellow },
70
+ ]);
71
+ formatTableRow([
72
+ { value: 'Connections', width: 15, color: chalk.white },
73
+ { value: String(status.connections), width: 40, color: chalk.magenta },
74
+ ]);
75
+ console.log();
76
+ }));
77
+ // Restart command
78
+ command
79
+ .command('restart')
80
+ .description('Restart the daemon')
81
+ .action(withErrorHandling(async () => {
82
+ const manager = new DaemonManager();
83
+ if (await manager.isRunning()) {
84
+ formatInfo('Stopping daemon...');
85
+ await manager.stop();
86
+ // Wait a bit for cleanup
87
+ await new Promise((resolve) => setTimeout(resolve, 500));
88
+ }
89
+ formatInfo('Starting daemon...');
90
+ await manager.start();
91
+ formatSuccess('Daemon restarted.');
92
+ const status = await manager.getStatus();
93
+ if (status) {
94
+ formatInfo(`Socket: ${chalk.cyan(status.socketPath)}`);
95
+ formatInfo(`PID: ${chalk.cyan(status.pid)}`);
96
+ }
97
+ }));
98
+ };
99
+ const formatUptime = (ms) => {
100
+ const seconds = Math.floor(ms / 1000);
101
+ const minutes = Math.floor(seconds / 60);
102
+ const hours = Math.floor(minutes / 60);
103
+ const days = Math.floor(hours / 24);
104
+ if (days > 0) {
105
+ return `${days}d ${hours % 24}h ${minutes % 60}m`;
106
+ }
107
+ if (hours > 0) {
108
+ return `${hours}h ${minutes % 60}m ${seconds % 60}s`;
109
+ }
110
+ if (minutes > 0) {
111
+ return `${minutes}m ${seconds % 60}s`;
112
+ }
113
+ return `${seconds}s`;
114
+ };
115
+ export { createDaemonCli };
116
+ //# sourceMappingURL=cli.daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.daemon.js","sourceRoot":"","sources":["../../src/cli/cli.daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ declare const createDocumentsCli: (command: Command) => void;
3
+ export { createDocumentsCli };
4
+ //# sourceMappingURL=cli.documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.documents.d.ts","sourceRoot":"","sources":["../../src/cli/cli.documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,QAAA,MAAM,kBAAkB,GAAI,SAAS,OAAO,SAwY3C,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,332 @@
1
+ import { select, confirm, input } from '@inquirer/prompts';
2
+ import { formatHeader, formatSuccess, formatError, formatInfo, formatTableHeader, formatTableRow, withErrorHandling, chalk, } from './cli.utils.js';
3
+ import { createCliClient } from './cli.client.js';
4
+ import { Services } from '#root/utils/utils.services.js';
5
+ import { CollectionsService } from '#root/collections/collections.js';
6
+ const createDocumentsCli = (command) => {
7
+ command.description('Manage reference document collections');
8
+ // List collections command
9
+ command
10
+ .command('list-collections')
11
+ .alias('ls')
12
+ .description('List all reference collections')
13
+ .action(withErrorHandling(async () => {
14
+ const client = await createCliClient();
15
+ try {
16
+ const list = await client.documents.listCollections();
17
+ if (list.length === 0) {
18
+ formatInfo('No collections found.');
19
+ return;
20
+ }
21
+ formatHeader('Reference Collections');
22
+ const maxCollectionLen = Math.max(...list.map((c) => c.collection.length), 10);
23
+ formatTableHeader([
24
+ { name: 'Collection', width: maxCollectionLen },
25
+ { name: 'Documents', width: 10 },
26
+ ]);
27
+ for (const item of list) {
28
+ formatTableRow([
29
+ { value: item.collection, width: maxCollectionLen, color: chalk.white },
30
+ { value: String(item.document_count), width: 10, color: chalk.yellow },
31
+ ]);
32
+ }
33
+ console.log();
34
+ }
35
+ finally {
36
+ await client.disconnect();
37
+ }
38
+ }));
39
+ // Drop collection command
40
+ command
41
+ .command('drop-collection')
42
+ .alias('drop')
43
+ .argument('[name]', 'Name of collection to drop')
44
+ .description('Drop a reference collection')
45
+ .option('-f, --force', 'Skip confirmation prompt')
46
+ .action(withErrorHandling(async (name, options) => {
47
+ const client = await createCliClient();
48
+ try {
49
+ const collections = await client.documents.listCollections();
50
+ if (collections.length === 0) {
51
+ formatInfo('No collections found.');
52
+ return;
53
+ }
54
+ let collectionName;
55
+ // If no name provided, prompt user to select
56
+ if (!name) {
57
+ collectionName = await select({
58
+ message: 'Select a collection to drop:',
59
+ choices: collections.map((c) => ({
60
+ name: `${c.collection} (${c.document_count} documents)`,
61
+ value: c.collection,
62
+ })),
63
+ });
64
+ }
65
+ else {
66
+ // Verify collection exists
67
+ const exists = collections.find((c) => c.collection === name);
68
+ if (!exists) {
69
+ formatError(`Collection "${name}" not found.`);
70
+ console.log();
71
+ formatInfo('Available collections:');
72
+ for (const c of collections) {
73
+ console.log(chalk.dim(' •'), c.collection);
74
+ }
75
+ return;
76
+ }
77
+ collectionName = name;
78
+ }
79
+ // Confirm deletion unless --force is used
80
+ if (!options.force) {
81
+ const confirmed = await confirm({
82
+ message: chalk.yellow(`Are you sure you want to drop "${collectionName}"? This cannot be undone.`),
83
+ default: false,
84
+ });
85
+ if (!confirmed) {
86
+ formatInfo('Operation cancelled.');
87
+ return;
88
+ }
89
+ }
90
+ await client.documents.dropCollection({ collection: collectionName });
91
+ formatSuccess(`Collection "${collectionName}" dropped successfully.`);
92
+ }
93
+ finally {
94
+ await client.disconnect();
95
+ }
96
+ }));
97
+ // Search command
98
+ command
99
+ .command('search')
100
+ .description('Search for documents in reference collections using hybrid semantic + keyword search')
101
+ .argument('<query>', 'Search query')
102
+ .option('-c, --collections <names...>', 'Limit search to specific collections (can be aliases)')
103
+ .option('--no-global', 'Exclude global collections from search')
104
+ .option('-l, --limit <number>', 'Maximum number of results', '10')
105
+ .option('--max-distance <number>', 'Maximum distance threshold (0-2, lower = stricter)')
106
+ .option('--no-hybrid', 'Disable hybrid search (use pure vector search)')
107
+ .option('--rerank', 'Enable re-ranking for higher precision (slower)')
108
+ .action(withErrorHandling(async (query, options) => {
109
+ const services = new Services();
110
+ const client = await createCliClient();
111
+ try {
112
+ const collectionsService = services.get(CollectionsService);
113
+ // Helper to resolve alias to collection ID
114
+ const resolveCollection = (name, includeGlobal) => {
115
+ // Try to resolve as alias (local first, then global if allowed)
116
+ if (includeGlobal) {
117
+ const spec = collectionsService.getFromConfig(name);
118
+ if (spec) {
119
+ return collectionsService.computeCollectionId(spec);
120
+ }
121
+ }
122
+ else {
123
+ const spec = collectionsService.getFromConfig(name, { global: false });
124
+ if (spec) {
125
+ return collectionsService.computeCollectionId(spec);
126
+ }
127
+ }
128
+ // Return as-is (might be a raw collection ID or path)
129
+ return name;
130
+ };
131
+ let collectionsToSearch = [];
132
+ const includeGlobal = options.global !== false;
133
+ if (options.collections && options.collections.length > 0) {
134
+ // Explicit collections provided - resolve aliases
135
+ const collectionsSet = new Set();
136
+ for (const c of options.collections) {
137
+ collectionsSet.add(resolveCollection(c, includeGlobal));
138
+ }
139
+ collectionsToSearch = Array.from(collectionsSet);
140
+ }
141
+ else {
142
+ // No explicit collections - default to all from local + global configs
143
+ const allCollections = includeGlobal
144
+ ? collectionsService.getAllCollections()
145
+ : new Map(Object.entries(collectionsService.readProjectConfig().collections).map(([name, spec]) => [
146
+ name,
147
+ { spec, source: 'local' },
148
+ ]));
149
+ if (allCollections.size === 0) {
150
+ formatError('No collections configured. Use "collections add" to add one.');
151
+ return;
152
+ }
153
+ collectionsToSearch = Array.from(allCollections.values()).map(({ spec }) => collectionsService.computeCollectionId(spec));
154
+ }
155
+ formatHeader('Search Results');
156
+ formatInfo(`Query: ${chalk.cyan(query)}`);
157
+ if (collectionsToSearch.length > 0) {
158
+ const displayCollections = collectionsToSearch.length > 3
159
+ ? `${collectionsToSearch.slice(0, 3).join(', ')} (+${collectionsToSearch.length - 3} more)`
160
+ : collectionsToSearch.join(', ');
161
+ formatInfo(`Collections: ${chalk.cyan(displayCollections)}`);
162
+ }
163
+ if (!includeGlobal) {
164
+ formatInfo(`Scope: ${chalk.cyan('local only')}`);
165
+ }
166
+ if (!options.hybrid) {
167
+ formatInfo(`Mode: ${chalk.cyan('vector-only (hybrid disabled)')}`);
168
+ }
169
+ if (options.rerank) {
170
+ formatInfo(`Re-ranking: ${chalk.cyan('enabled')}`);
171
+ }
172
+ console.log();
173
+ const results = await client.documents.search({
174
+ query,
175
+ collections: collectionsToSearch,
176
+ limit: parseInt(options.limit, 10),
177
+ maxDistance: options.maxDistance ? parseFloat(options.maxDistance) : undefined,
178
+ hybridSearch: options.hybrid,
179
+ rerank: options.rerank,
180
+ });
181
+ if (results.length === 0) {
182
+ formatInfo('No results found.');
183
+ return;
184
+ }
185
+ for (let i = 0; i < results.length; i++) {
186
+ const result = results[i];
187
+ const distanceColor = result.distance < 0.5 ? chalk.green : result.distance < 1 ? chalk.yellow : chalk.red;
188
+ console.log(chalk.bold.white(`${i + 1}.`) +
189
+ ' ' +
190
+ chalk.cyan(result.document) +
191
+ chalk.dim(' in ') +
192
+ chalk.magenta(result.collection));
193
+ const scoreInfo = result.score !== undefined
194
+ ? chalk.dim(' Score: ') + chalk.green(result.score.toFixed(4)) + chalk.dim(' | ')
195
+ : chalk.dim(' ');
196
+ console.log(scoreInfo + chalk.dim('Distance: ') + distanceColor(result.distance.toFixed(4)));
197
+ console.log();
198
+ // Format content with indentation and truncation
199
+ const contentLines = result.content.split('\n').slice(0, 6);
200
+ for (const line of contentLines) {
201
+ const truncated = line.length > 100 ? line.slice(0, 97) + '...' : line;
202
+ console.log(chalk.dim(' │ ') + chalk.white(truncated));
203
+ }
204
+ if (result.content.split('\n').length > 6) {
205
+ console.log(chalk.dim(' │ ...'));
206
+ }
207
+ console.log();
208
+ }
209
+ }
210
+ finally {
211
+ await client.disconnect();
212
+ await services.destroy();
213
+ }
214
+ }));
215
+ // Interactive search command
216
+ command
217
+ .command('interactive-search')
218
+ .alias('isearch')
219
+ .description('Interactive search mode')
220
+ .action(withErrorHandling(async () => {
221
+ const services = new Services();
222
+ const client = await createCliClient();
223
+ try {
224
+ const collectionsService = services.get(CollectionsService);
225
+ const collections = await client.documents.listCollections();
226
+ if (collections.length === 0) {
227
+ formatInfo('No collections found. Add some documents first.');
228
+ return;
229
+ }
230
+ // Build a map of collection ID → {alias, source} from both configs
231
+ const idToInfo = new Map();
232
+ const allCollections = collectionsService.getAllCollections();
233
+ for (const [alias, { spec, source }] of allCollections) {
234
+ const id = collectionsService.computeCollectionId(spec);
235
+ idToInfo.set(id, { alias, source });
236
+ }
237
+ formatHeader('Interactive Search');
238
+ // Sort collections: local first, then global, then unaliased
239
+ const sortedCollections = [...collections].sort((a, b) => {
240
+ const aInfo = idToInfo.get(a.collection);
241
+ const bInfo = idToInfo.get(b.collection);
242
+ // Collections with aliases come before those without
243
+ if (aInfo && !bInfo)
244
+ return -1;
245
+ if (!aInfo && bInfo)
246
+ return 1;
247
+ // Both have aliases - sort by source (local first) then alias name
248
+ if (aInfo && bInfo) {
249
+ if (aInfo.source !== bInfo.source) {
250
+ return aInfo.source === 'local' ? -1 : 1;
251
+ }
252
+ return aInfo.alias.localeCompare(bInfo.alias);
253
+ }
254
+ // Neither has alias - keep original order
255
+ return 0;
256
+ });
257
+ // Select collections to search - show alias and source indicator
258
+ const selectedCollections = await select({
259
+ message: 'Search in:',
260
+ choices: [
261
+ { name: 'All collections', value: undefined },
262
+ ...sortedCollections.map((c) => {
263
+ const info = idToInfo.get(c.collection);
264
+ let displayName;
265
+ if (info) {
266
+ const sourceIndicator = info.source === 'local' ? 'local' : 'global';
267
+ displayName = `${info.alias} (${sourceIndicator}, ${c.document_count} docs)`;
268
+ }
269
+ else {
270
+ displayName = `${c.collection} (${c.document_count} docs)`;
271
+ }
272
+ return {
273
+ name: displayName,
274
+ value: c.collection,
275
+ };
276
+ }),
277
+ ],
278
+ });
279
+ const query = await input({
280
+ message: 'Enter search query:',
281
+ });
282
+ if (!query.trim()) {
283
+ formatInfo('Empty query. Exiting.');
284
+ return;
285
+ }
286
+ const limitStr = await input({
287
+ message: 'Number of results:',
288
+ default: '10',
289
+ });
290
+ const results = await client.documents.search({
291
+ query,
292
+ collections: selectedCollections ? [selectedCollections] : undefined,
293
+ limit: parseInt(limitStr, 10) || 10,
294
+ });
295
+ console.log();
296
+ if (results.length === 0) {
297
+ formatInfo('No results found.');
298
+ return;
299
+ }
300
+ formatHeader(`Found ${results.length} results`);
301
+ for (let i = 0; i < results.length; i++) {
302
+ const result = results[i];
303
+ const distanceColor = result.distance < 0.5 ? chalk.green : result.distance < 1 ? chalk.yellow : chalk.red;
304
+ console.log(chalk.bold.white(`${i + 1}.`) +
305
+ ' ' +
306
+ chalk.cyan(result.document) +
307
+ chalk.dim(' in ') +
308
+ chalk.magenta(result.collection));
309
+ const scoreInfo = result.score !== undefined
310
+ ? chalk.dim(' Score: ') + chalk.green(result.score.toFixed(4)) + chalk.dim(' | ')
311
+ : chalk.dim(' ');
312
+ console.log(scoreInfo + chalk.dim('Distance: ') + distanceColor(result.distance.toFixed(4)));
313
+ console.log();
314
+ const contentLines = result.content.split('\n').slice(0, 6);
315
+ for (const line of contentLines) {
316
+ const truncated = line.length > 100 ? line.slice(0, 97) + '...' : line;
317
+ console.log(chalk.dim(' │ ') + chalk.white(truncated));
318
+ }
319
+ if (result.content.split('\n').length > 6) {
320
+ console.log(chalk.dim(' │ ...'));
321
+ }
322
+ console.log();
323
+ }
324
+ }
325
+ finally {
326
+ await client.disconnect();
327
+ await services.destroy();
328
+ }
329
+ }));
330
+ };
331
+ export { createDocumentsCli };
332
+ //# sourceMappingURL=cli.documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.documents.js","sourceRoot":"","sources":["../../src/cli/cli.documents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Command } from 'commander';
2
+ import { createAgentCli } from './cli.agent.js';
3
+ import { createChatCli } from './cli.chat.js';
4
+ import { createCollectionsCli } from './cli.collections.js';
5
+ import { createConfigCli } from './cli.config.js';
6
+ import { createDaemonCli } from './cli.daemon.js';
7
+ import { createDocumentsCli } from './cli.documents.js';
8
+ import { createMcpCli } from './cli.mcp.js';
9
+ const createProgram = () => {
10
+ const program = new Command();
11
+ program.name('ctxpkg').description('Context package manager - manage AI agent context collections').version('1.0.0');
12
+ // Create subcommand groups
13
+ createCollectionsCli(program.command('collections').alias('col').description('Manage collection packages'));
14
+ createDocumentsCli(program.command('documents').alias('docs').description('Query indexed documents'));
15
+ createConfigCli(program.command('config').alias('cfg').description('Manage configuration'));
16
+ createDaemonCli(program.command('daemon').description('Manage the background daemon'));
17
+ createMcpCli(program.command('mcp').description('Start MCP servers for tool integration'));
18
+ createChatCli(program.command('chat').description('Chat with your documentation using AI'));
19
+ createAgentCli(program.command('agent').description('Agent testing and evaluation tools'));
20
+ return program;
21
+ };
22
+ export { createProgram };
23
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,+DAA+D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAErH,2BAA2B;IAC3B,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC5G,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACtG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC5F,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACvF,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAC3F,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC5F,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAE3F,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ declare const createMcpCli: (command: Command) => void;
3
+ export { createMcpCli };
4
+ //# sourceMappingURL=cli.mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mcp.d.ts","sourceRoot":"","sources":["../../src/cli/cli.mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,QAAA,MAAM,YAAY,GAAI,SAAS,OAAO,SAmKrC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}