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,146 @@
1
+ import { getLLMConfigFromAppConfig } from '../agent/agent.js';
2
+ import { createAgentMcpServer, createDocumentsMcpServer, runMcpServer } from '../mcp/mcp.js';
3
+ import { createCliClient } from './cli.client.js';
4
+ import { formatError, withErrorHandling } from './cli.utils.js';
5
+ import { CollectionsService } from '#root/collections/collections.js';
6
+ import { Services } from '#root/utils/utils.services.js';
7
+ const createMcpCli = (command) => {
8
+ command.description('Start MCP servers for tool integration');
9
+ // Documents MCP server command
10
+ command
11
+ .command('documents')
12
+ .alias('docs')
13
+ .description('Start an MCP server with document tools')
14
+ .option('-c, --collections <names...>', 'Limit searches to specific collections')
15
+ .option('--no-global', 'Exclude global collections from searches')
16
+ .option('--name <name>', 'MCP server name', 'ctxpkg-documents')
17
+ .option('--version <version>', 'MCP server version', '1.0.0')
18
+ .action(withErrorHandling(async (options) => {
19
+ const client = await createCliClient();
20
+ // Build alias map from both local and global configs (respecting --no-global)
21
+ const aliasMap = new Map();
22
+ const services = new Services();
23
+ let defaultCollections;
24
+ try {
25
+ const collectionsService = services.get(CollectionsService);
26
+ const includeGlobal = options.global !== false;
27
+ if (includeGlobal) {
28
+ // Include both local and global collections
29
+ const allCollections = collectionsService.getAllCollections();
30
+ for (const [alias, { spec }] of allCollections) {
31
+ const collectionId = collectionsService.computeCollectionId(spec);
32
+ aliasMap.set(alias, collectionId);
33
+ }
34
+ // Default to all configured collections when no -c option
35
+ if (!options.collections) {
36
+ defaultCollections = Array.from(allCollections.values()).map(({ spec }) => collectionsService.computeCollectionId(spec));
37
+ }
38
+ }
39
+ else {
40
+ // Local only
41
+ if (collectionsService.projectConfigExists()) {
42
+ const projectConfig = collectionsService.readProjectConfig();
43
+ for (const [alias, spec] of Object.entries(projectConfig.collections)) {
44
+ const collectionId = collectionsService.computeCollectionId(spec);
45
+ aliasMap.set(alias, collectionId);
46
+ }
47
+ // Default to local collections only when no -c option
48
+ if (!options.collections) {
49
+ defaultCollections = Object.values(projectConfig.collections).map((spec) => collectionsService.computeCollectionId(spec));
50
+ }
51
+ }
52
+ }
53
+ }
54
+ finally {
55
+ await services.destroy();
56
+ }
57
+ // Build collections list - use explicit collections or defaults
58
+ let collectionsToUse;
59
+ if (options.collections) {
60
+ const collectionsSet = new Set();
61
+ for (const c of options.collections) {
62
+ // Resolve alias if available
63
+ const resolved = aliasMap.get(c) || c;
64
+ collectionsSet.add(resolved);
65
+ }
66
+ collectionsToUse = [...collectionsSet];
67
+ }
68
+ else {
69
+ collectionsToUse = defaultCollections;
70
+ }
71
+ // Create and run MCP server
72
+ const server = createDocumentsMcpServer({
73
+ client,
74
+ aliasMap,
75
+ collections: collectionsToUse,
76
+ name: options.name,
77
+ version: options.version,
78
+ });
79
+ await runMcpServer(server);
80
+ // Note: cleanup happens on SIGINT/SIGTERM in runMcpServer
81
+ }));
82
+ // Agent mode MCP server command
83
+ command
84
+ .command('agent')
85
+ .description('Start an MCP server with agent mode (single ask_documents tool)')
86
+ .option('-c, --collections <names...>', 'Limit searches to specific collections')
87
+ .option('--no-global', 'Exclude global collections from searches')
88
+ .option('--name <name>', 'MCP server name', 'ctxpkg-agent')
89
+ .option('--version <version>', 'MCP server version', '1.0.0')
90
+ .option('--model <model>', 'Override LLM model from config')
91
+ .action(withErrorHandling(async (options) => {
92
+ // Get LLM config and validate
93
+ const llmConfig = await getLLMConfigFromAppConfig();
94
+ if (!llmConfig.apiKey) {
95
+ formatError('LLM API key not configured. Set it with: ctxpkg config set llm.apiKey <key>');
96
+ formatError('Or use environment variable: CTXPKG_LLM_API_KEY=<key>');
97
+ process.exitCode = 1;
98
+ return;
99
+ }
100
+ // Override model if specified
101
+ if (options.model) {
102
+ llmConfig.model = options.model;
103
+ }
104
+ const client = await createCliClient();
105
+ // Build alias map from both local and global configs (respecting --no-global)
106
+ const aliasMap = new Map();
107
+ const services = new Services();
108
+ try {
109
+ const collectionsService = services.get(CollectionsService);
110
+ const includeGlobal = options.global !== false;
111
+ if (includeGlobal) {
112
+ // Include both local and global collections
113
+ const allCollections = collectionsService.getAllCollections();
114
+ for (const [alias, { spec }] of allCollections) {
115
+ const collectionId = collectionsService.computeCollectionId(spec);
116
+ aliasMap.set(alias, collectionId);
117
+ }
118
+ }
119
+ else {
120
+ // Local only
121
+ if (collectionsService.projectConfigExists()) {
122
+ const projectConfig = collectionsService.readProjectConfig();
123
+ for (const [alias, spec] of Object.entries(projectConfig.collections)) {
124
+ const collectionId = collectionsService.computeCollectionId(spec);
125
+ aliasMap.set(alias, collectionId);
126
+ }
127
+ }
128
+ }
129
+ }
130
+ finally {
131
+ await services.destroy();
132
+ }
133
+ // Create and run MCP server with agent mode
134
+ const server = createAgentMcpServer({
135
+ client,
136
+ llmConfig,
137
+ aliasMap,
138
+ name: options.name,
139
+ version: options.version,
140
+ });
141
+ await runMcpServer(server);
142
+ // Note: cleanup happens on SIGINT/SIGTERM in runMcpServer
143
+ }));
144
+ };
145
+ export { createMcpCli };
146
+ //# sourceMappingURL=cli.mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mcp.js","sourceRoot":"","sources":["../../src/cli/cli.mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import chalk from 'chalk';
2
+ /**
3
+ * Format a header with decorative borders
4
+ */
5
+ declare const formatHeader: (text: string) => void;
6
+ /**
7
+ * Format a success message with checkmark
8
+ */
9
+ declare const formatSuccess: (text: string) => void;
10
+ /**
11
+ * Format an error message with X mark
12
+ */
13
+ declare const formatError: (text: string) => void;
14
+ /**
15
+ * Format an info message with info icon
16
+ */
17
+ declare const formatInfo: (text: string) => void;
18
+ /**
19
+ * Format a warning message
20
+ */
21
+ declare const formatWarning: (text: string) => void;
22
+ /**
23
+ * Format a key-value pair
24
+ */
25
+ declare const formatKeyValue: (key: string, value: unknown, keyWidth?: number) => void;
26
+ /**
27
+ * Format a table header
28
+ */
29
+ declare const formatTableHeader: (columns: {
30
+ name: string;
31
+ width: number;
32
+ }[]) => void;
33
+ /**
34
+ * Format a table row
35
+ */
36
+ declare const formatTableRow: (values: {
37
+ value: string;
38
+ width: number;
39
+ color?: typeof chalk;
40
+ }[]) => void;
41
+ /**
42
+ * Wrap an async action with error handling
43
+ */
44
+ declare const withErrorHandling: <T extends unknown[]>(action: (...args: T) => Promise<void>) => ((...args: T) => Promise<void>);
45
+ /**
46
+ * Flatten an object into dot-notation keys
47
+ */
48
+ declare const flattenObject: (obj: Record<string, unknown>, prefix?: string) => Record<string, unknown>;
49
+ export { formatHeader, formatSuccess, formatError, formatInfo, formatWarning, formatKeyValue, formatTableHeader, formatTableRow, withErrorHandling, flattenObject, };
50
+ export { chalk };
51
+ //# sourceMappingURL=cli.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.utils.d.ts","sourceRoot":"","sources":["../../src/cli/cli.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,QAAA,MAAM,YAAY,GAAI,MAAM,MAAM,SAIjC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa,GAAI,MAAM,MAAM,SAElC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW,GAAI,MAAM,MAAM,SAEhC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,UAAU,GAAI,MAAM,MAAM,SAE/B,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa,GAAI,MAAM,MAAM,SAElC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,OAAO,OAAO,EAAE,WAAW,MAAM,SAGrE,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,iBAAiB,GAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,SAMpE,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,cAAc,GAAI,QAAQ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CAAE,EAAE,SASvF,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,iBAAiB,GAAI,CAAC,SAAS,OAAO,EAAE,EAC5C,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KACpC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAShC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa,GAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,eAAW,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAexF,CAAC;AAEF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,95 @@
1
+ import chalk from 'chalk';
2
+ /**
3
+ * Format a header with decorative borders
4
+ */
5
+ const formatHeader = (text) => {
6
+ console.log();
7
+ console.log(chalk.bold.cyan(`━━━ ${text} ━━━`));
8
+ console.log();
9
+ };
10
+ /**
11
+ * Format a success message with checkmark
12
+ */
13
+ const formatSuccess = (text) => {
14
+ console.log(chalk.green('✔'), text);
15
+ };
16
+ /**
17
+ * Format an error message with X mark
18
+ */
19
+ const formatError = (text) => {
20
+ console.log(chalk.red('✖'), text);
21
+ };
22
+ /**
23
+ * Format an info message with info icon
24
+ */
25
+ const formatInfo = (text) => {
26
+ console.log(chalk.blue('ℹ'), text);
27
+ };
28
+ /**
29
+ * Format a warning message
30
+ */
31
+ const formatWarning = (text) => {
32
+ console.log(chalk.yellow('⚠'), text);
33
+ };
34
+ /**
35
+ * Format a key-value pair
36
+ */
37
+ const formatKeyValue = (key, value, keyWidth) => {
38
+ const keyStr = keyWidth ? key.padEnd(keyWidth) : key;
39
+ console.log(chalk.dim(' ') + chalk.white(keyStr) + chalk.dim(' │ ') + chalk.cyan(String(value)));
40
+ };
41
+ /**
42
+ * Format a table header
43
+ */
44
+ const formatTableHeader = (columns) => {
45
+ const header = columns.map((col) => chalk.bold(col.name.padEnd(col.width))).join(chalk.dim(' │ '));
46
+ const separator = columns.map((col) => '─'.repeat(col.width)).join(chalk.dim('─┼─'));
47
+ console.log(chalk.dim(' ') + header);
48
+ console.log(chalk.dim(' ') + separator);
49
+ };
50
+ /**
51
+ * Format a table row
52
+ */
53
+ const formatTableRow = (values) => {
54
+ const row = values
55
+ .map((val) => {
56
+ const color = val.color || chalk.white;
57
+ return color(val.value.padEnd(val.width));
58
+ })
59
+ .join(chalk.dim(' │ '));
60
+ console.log(chalk.dim(' ') + row);
61
+ };
62
+ /**
63
+ * Wrap an async action with error handling
64
+ */
65
+ const withErrorHandling = (action) => {
66
+ return async (...args) => {
67
+ try {
68
+ await action(...args);
69
+ }
70
+ catch (error) {
71
+ formatError(error instanceof Error ? error.message : String(error));
72
+ process.exitCode = 1;
73
+ }
74
+ };
75
+ };
76
+ /**
77
+ * Flatten an object into dot-notation keys
78
+ */
79
+ const flattenObject = (obj, prefix = '') => {
80
+ const result = {};
81
+ for (const key of Object.keys(obj)) {
82
+ const value = obj[key];
83
+ const newKey = prefix ? `${prefix}.${key}` : key;
84
+ if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
85
+ Object.assign(result, flattenObject(value, newKey));
86
+ }
87
+ else {
88
+ result[newKey] = value;
89
+ }
90
+ }
91
+ return result;
92
+ };
93
+ export { formatHeader, formatSuccess, formatError, formatInfo, formatWarning, formatKeyValue, formatTableHeader, formatTableRow, withErrorHandling, flattenObject, };
94
+ export { chalk };
95
+ //# sourceMappingURL=cli.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.utils.js","sourceRoot":"","sources":["../../src/cli/cli.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ type ClientAdapter = {
2
+ connect(): Promise<void>;
3
+ disconnect(): Promise<void>;
4
+ isConnected(): boolean;
5
+ request(method: string, params?: unknown): Promise<unknown>;
6
+ };
7
+ declare class DirectAdapter implements ClientAdapter {
8
+ #private;
9
+ connect(): Promise<void>;
10
+ disconnect(): Promise<void>;
11
+ isConnected(): boolean;
12
+ request(method: string, params?: unknown): Promise<unknown>;
13
+ }
14
+ declare class DaemonAdapter implements ClientAdapter {
15
+ #private;
16
+ constructor(options?: {
17
+ socketPath?: string;
18
+ autoStart?: boolean;
19
+ timeout?: number;
20
+ });
21
+ connect(): Promise<void>;
22
+ disconnect(): Promise<void>;
23
+ isConnected(): boolean;
24
+ request(method: string, params?: unknown): Promise<unknown>;
25
+ }
26
+ declare class WebSocketAdapter implements ClientAdapter {
27
+ #private;
28
+ constructor(url: string, options?: {
29
+ timeout?: number;
30
+ });
31
+ connect(): Promise<void>;
32
+ disconnect(): Promise<void>;
33
+ isConnected(): boolean;
34
+ request(method: string, params?: unknown): Promise<unknown>;
35
+ }
36
+ export type { ClientAdapter };
37
+ export { DirectAdapter, DaemonAdapter, WebSocketAdapter };
38
+ //# sourceMappingURL=client.adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.adapters.d.ts","sourceRoot":"","sources":["../../src/client/client.adapters.ts"],"names":[],"mappings":"AAUA,KAAK,aAAa,GAAG;IACnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC;IACvB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D,CAAC;AAGF,cAAM,aAAc,YAAW,aAAa;;IAGpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;IAIhB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBlE;AAGD,cAAM,aAAc,YAAW,aAAa;;gBAM9B,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;IAIhB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA+BlE;AAGD,cAAM,gBAAiB,YAAW,aAAa;;gBAMjC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAKjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;IAIhB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA+BlE;AAED,YAAY,EAAE,aAAa,EAAE,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,233 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { WebSocket } from 'ws';
3
+ import { ErrorCodes } from '#root/backend/backend.protocol.js';
4
+ import { Backend } from '#root/backend/backend.js';
5
+ import { DaemonManager } from '#root/daemon/daemon.manager.js';
6
+ import { destroy } from '#root/utils/utils.services.js';
7
+ // Direct adapter - instantiates backend in-process
8
+ class DirectAdapter {
9
+ #backend = null;
10
+ async connect() {
11
+ this.#backend = new Backend();
12
+ }
13
+ async disconnect() {
14
+ if (this.#backend) {
15
+ await this.#backend[destroy]();
16
+ this.#backend = null;
17
+ }
18
+ }
19
+ isConnected() {
20
+ return this.#backend !== null;
21
+ }
22
+ async request(method, params) {
23
+ if (!this.#backend) {
24
+ throw new Error('Not connected');
25
+ }
26
+ const request = {
27
+ id: randomUUID(),
28
+ method,
29
+ params,
30
+ };
31
+ const response = await this.#backend.handleRequest(request);
32
+ return this.#handleResponse(response);
33
+ }
34
+ #handleResponse(response) {
35
+ if (response.error) {
36
+ const error = new Error(response.error.message);
37
+ error.code = response.error.code;
38
+ throw error;
39
+ }
40
+ return response.result;
41
+ }
42
+ }
43
+ // Daemon adapter - connects via Unix socket
44
+ class DaemonAdapter {
45
+ #manager;
46
+ #socket = null;
47
+ #pendingRequests = new Map();
48
+ #timeout;
49
+ constructor(options) {
50
+ this.#manager = new DaemonManager({
51
+ socketPath: options?.socketPath,
52
+ autoStart: options?.autoStart ?? true,
53
+ });
54
+ this.#timeout = options?.timeout ?? 30000;
55
+ }
56
+ async connect() {
57
+ await this.#manager.ensureRunning();
58
+ const socketPath = this.#manager.getSocketPath();
59
+ // Connect to Unix socket - ws library uses this format: ws+unix:///path/to/socket
60
+ const socket = new WebSocket(`ws+unix://${socketPath}:/.`);
61
+ this.#socket = socket;
62
+ await new Promise((resolve, reject) => {
63
+ const timeout = setTimeout(() => {
64
+ reject(new Error('Connection timeout'));
65
+ }, 5000);
66
+ socket.on('open', () => {
67
+ clearTimeout(timeout);
68
+ resolve();
69
+ });
70
+ socket.on('error', (error) => {
71
+ clearTimeout(timeout);
72
+ reject(error);
73
+ });
74
+ });
75
+ socket.on('message', (data) => {
76
+ try {
77
+ const response = JSON.parse(data.toString());
78
+ const pending = this.#pendingRequests.get(response.id);
79
+ if (pending) {
80
+ this.#pendingRequests.delete(response.id);
81
+ if (response.error) {
82
+ const error = new Error(response.error.message);
83
+ error.code = response.error.code;
84
+ pending.reject(error);
85
+ }
86
+ else {
87
+ pending.resolve(response.result);
88
+ }
89
+ }
90
+ }
91
+ catch (error) {
92
+ console.error('[client] Failed to parse response:', error);
93
+ }
94
+ });
95
+ socket.on('close', () => {
96
+ // Reject all pending requests
97
+ for (const [id, pending] of this.#pendingRequests) {
98
+ pending.reject(new Error('Connection closed'));
99
+ this.#pendingRequests.delete(id);
100
+ }
101
+ this.#socket = null;
102
+ });
103
+ }
104
+ async disconnect() {
105
+ if (this.#socket) {
106
+ this.#socket.close();
107
+ this.#socket = null;
108
+ }
109
+ }
110
+ isConnected() {
111
+ return this.#socket !== null && this.#socket.readyState === WebSocket.OPEN;
112
+ }
113
+ async request(method, params) {
114
+ const socket = this.#socket;
115
+ if (!socket || socket.readyState !== WebSocket.OPEN) {
116
+ throw new Error('Not connected');
117
+ }
118
+ const id = randomUUID();
119
+ const request = { id, method, params };
120
+ return new Promise((resolve, reject) => {
121
+ const timeout = setTimeout(() => {
122
+ this.#pendingRequests.delete(id);
123
+ const error = new Error('Request timeout');
124
+ error.code = ErrorCodes.Timeout;
125
+ reject(error);
126
+ }, this.#timeout);
127
+ this.#pendingRequests.set(id, {
128
+ resolve: (value) => {
129
+ clearTimeout(timeout);
130
+ resolve(value);
131
+ },
132
+ reject: (err) => {
133
+ clearTimeout(timeout);
134
+ reject(err);
135
+ },
136
+ });
137
+ socket.send(JSON.stringify(request));
138
+ });
139
+ }
140
+ }
141
+ // WebSocket adapter - connects via remote WebSocket
142
+ class WebSocketAdapter {
143
+ #url;
144
+ #socket = null;
145
+ #pendingRequests = new Map();
146
+ #timeout;
147
+ constructor(url, options) {
148
+ this.#url = url;
149
+ this.#timeout = options?.timeout ?? 30000;
150
+ }
151
+ async connect() {
152
+ const socket = new WebSocket(this.#url);
153
+ this.#socket = socket;
154
+ await new Promise((resolve, reject) => {
155
+ const timeout = setTimeout(() => {
156
+ reject(new Error('Connection timeout'));
157
+ }, 5000);
158
+ socket.on('open', () => {
159
+ clearTimeout(timeout);
160
+ resolve();
161
+ });
162
+ socket.on('error', (error) => {
163
+ clearTimeout(timeout);
164
+ reject(error);
165
+ });
166
+ });
167
+ socket.on('message', (data) => {
168
+ try {
169
+ const response = JSON.parse(data.toString());
170
+ const pending = this.#pendingRequests.get(response.id);
171
+ if (pending) {
172
+ this.#pendingRequests.delete(response.id);
173
+ if (response.error) {
174
+ const error = new Error(response.error.message);
175
+ error.code = response.error.code;
176
+ pending.reject(error);
177
+ }
178
+ else {
179
+ pending.resolve(response.result);
180
+ }
181
+ }
182
+ }
183
+ catch (error) {
184
+ console.error('[client] Failed to parse response:', error);
185
+ }
186
+ });
187
+ socket.on('close', () => {
188
+ for (const [id, pending] of this.#pendingRequests) {
189
+ pending.reject(new Error('Connection closed'));
190
+ this.#pendingRequests.delete(id);
191
+ }
192
+ this.#socket = null;
193
+ });
194
+ }
195
+ async disconnect() {
196
+ if (this.#socket) {
197
+ this.#socket.close();
198
+ this.#socket = null;
199
+ }
200
+ }
201
+ isConnected() {
202
+ return this.#socket !== null && this.#socket.readyState === WebSocket.OPEN;
203
+ }
204
+ async request(method, params) {
205
+ const socket = this.#socket;
206
+ if (!socket || socket.readyState !== WebSocket.OPEN) {
207
+ throw new Error('Not connected');
208
+ }
209
+ const id = randomUUID();
210
+ const request = { id, method, params };
211
+ return new Promise((resolve, reject) => {
212
+ const timeout = setTimeout(() => {
213
+ this.#pendingRequests.delete(id);
214
+ const error = new Error('Request timeout');
215
+ error.code = ErrorCodes.Timeout;
216
+ reject(error);
217
+ }, this.#timeout);
218
+ this.#pendingRequests.set(id, {
219
+ resolve: (value) => {
220
+ clearTimeout(timeout);
221
+ resolve(value);
222
+ },
223
+ reject: (err) => {
224
+ clearTimeout(timeout);
225
+ reject(err);
226
+ },
227
+ });
228
+ socket.send(JSON.stringify(request));
229
+ });
230
+ }
231
+ }
232
+ export { DirectAdapter, DaemonAdapter, WebSocketAdapter };
233
+ //# sourceMappingURL=client.adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.adapters.js","sourceRoot":"","sources":["../../src/client/client.adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ClientOptions, BackendAPI } from './client.types.js';
2
+ declare class BackendClient implements BackendAPI {
3
+ #private;
4
+ readonly documents: BackendAPI['documents'];
5
+ readonly collections: BackendAPI['collections'];
6
+ readonly system: BackendAPI['system'];
7
+ constructor(options: ClientOptions);
8
+ connect(): Promise<void>;
9
+ disconnect(): Promise<void>;
10
+ isConnected(): boolean;
11
+ request<T>(method: string, params?: unknown): Promise<T>;
12
+ }
13
+ declare const createClient: (options?: Partial<ClientOptions>) => Promise<BackendClient>;
14
+ export { BackendClient, createClient };
15
+ export type { ClientOptions, BackendAPI };
16
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgBnE,cAAM,aAAc,YAAW,UAAU;;IAKvC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAE1B,OAAO,EAAE,aAAa;IA+B5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,WAAW,IAAI,OAAO;IAKhB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAG/D;AAGD,QAAA,MAAM,YAAY,GAAU,UAAU,OAAO,CAAC,aAAa,CAAC,KAAG,OAAO,CAAC,aAAa,CAKnF,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}