@vibe-agent-toolkit/cli 0.1.0-rc.7

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 (162) hide show
  1. package/README.md +125 -0
  2. package/dist/bin/vat.d.ts +7 -0
  3. package/dist/bin/vat.d.ts.map +1 -0
  4. package/dist/bin/vat.js +52 -0
  5. package/dist/bin/vat.js.map +1 -0
  6. package/dist/bin.d.ts +7 -0
  7. package/dist/bin.d.ts.map +1 -0
  8. package/dist/bin.js +103 -0
  9. package/dist/bin.js.map +1 -0
  10. package/dist/commands/agent/audit.d.ts +9 -0
  11. package/dist/commands/agent/audit.d.ts.map +1 -0
  12. package/dist/commands/agent/audit.js +139 -0
  13. package/dist/commands/agent/audit.js.map +1 -0
  14. package/dist/commands/agent/build.d.ts +13 -0
  15. package/dist/commands/agent/build.d.ts.map +1 -0
  16. package/dist/commands/agent/build.js +52 -0
  17. package/dist/commands/agent/build.js.map +1 -0
  18. package/dist/commands/agent/help.d.ts +5 -0
  19. package/dist/commands/agent/help.d.ts.map +1 -0
  20. package/dist/commands/agent/help.js +10 -0
  21. package/dist/commands/agent/help.js.map +1 -0
  22. package/dist/commands/agent/import.d.ts +10 -0
  23. package/dist/commands/agent/import.d.ts.map +1 -0
  24. package/dist/commands/agent/import.js +50 -0
  25. package/dist/commands/agent/import.js.map +1 -0
  26. package/dist/commands/agent/index.d.ts +7 -0
  27. package/dist/commands/agent/index.d.ts.map +1 -0
  28. package/dist/commands/agent/index.js +293 -0
  29. package/dist/commands/agent/index.js.map +1 -0
  30. package/dist/commands/agent/install.d.ts +15 -0
  31. package/dist/commands/agent/install.d.ts.map +1 -0
  32. package/dist/commands/agent/install.js +107 -0
  33. package/dist/commands/agent/install.js.map +1 -0
  34. package/dist/commands/agent/installed.d.ts +13 -0
  35. package/dist/commands/agent/installed.d.ts.map +1 -0
  36. package/dist/commands/agent/installed.js +106 -0
  37. package/dist/commands/agent/installed.js.map +1 -0
  38. package/dist/commands/agent/list.d.ts +8 -0
  39. package/dist/commands/agent/list.d.ts.map +1 -0
  40. package/dist/commands/agent/list.js +41 -0
  41. package/dist/commands/agent/list.js.map +1 -0
  42. package/dist/commands/agent/run.d.ts +17 -0
  43. package/dist/commands/agent/run.d.ts.map +1 -0
  44. package/dist/commands/agent/run.js +44 -0
  45. package/dist/commands/agent/run.js.map +1 -0
  46. package/dist/commands/agent/uninstall.d.ts +13 -0
  47. package/dist/commands/agent/uninstall.d.ts.map +1 -0
  48. package/dist/commands/agent/uninstall.js +48 -0
  49. package/dist/commands/agent/uninstall.js.map +1 -0
  50. package/dist/commands/agent/validate.d.ts +8 -0
  51. package/dist/commands/agent/validate.d.ts.map +1 -0
  52. package/dist/commands/agent/validate.js +51 -0
  53. package/dist/commands/agent/validate.js.map +1 -0
  54. package/dist/commands/rag/clear-command.d.ts +10 -0
  55. package/dist/commands/rag/clear-command.d.ts.map +1 -0
  56. package/dist/commands/rag/clear-command.js +22 -0
  57. package/dist/commands/rag/clear-command.js.map +1 -0
  58. package/dist/commands/rag/command-helpers.d.ts +27 -0
  59. package/dist/commands/rag/command-helpers.d.ts.map +1 -0
  60. package/dist/commands/rag/command-helpers.js +58 -0
  61. package/dist/commands/rag/command-helpers.js.map +1 -0
  62. package/dist/commands/rag/help.d.ts +5 -0
  63. package/dist/commands/rag/help.d.ts.map +1 -0
  64. package/dist/commands/rag/help.js +10 -0
  65. package/dist/commands/rag/help.js.map +1 -0
  66. package/dist/commands/rag/index-command.d.ts +10 -0
  67. package/dist/commands/rag/index-command.d.ts.map +1 -0
  68. package/dist/commands/rag/index-command.js +49 -0
  69. package/dist/commands/rag/index-command.js.map +1 -0
  70. package/dist/commands/rag/index.d.ts +7 -0
  71. package/dist/commands/rag/index.d.ts.map +1 -0
  72. package/dist/commands/rag/index.js +168 -0
  73. package/dist/commands/rag/index.js.map +1 -0
  74. package/dist/commands/rag/query-command.d.ts +11 -0
  75. package/dist/commands/rag/query-command.d.ts.map +1 -0
  76. package/dist/commands/rag/query-command.js +54 -0
  77. package/dist/commands/rag/query-command.js.map +1 -0
  78. package/dist/commands/rag/stats-command.d.ts +10 -0
  79. package/dist/commands/rag/stats-command.d.ts.map +1 -0
  80. package/dist/commands/rag/stats-command.js +25 -0
  81. package/dist/commands/rag/stats-command.js.map +1 -0
  82. package/dist/commands/resources/command-helpers.d.ts +5 -0
  83. package/dist/commands/resources/command-helpers.d.ts.map +1 -0
  84. package/dist/commands/resources/command-helpers.js +6 -0
  85. package/dist/commands/resources/command-helpers.js.map +1 -0
  86. package/dist/commands/resources/help.d.ts +5 -0
  87. package/dist/commands/resources/help.d.ts.map +1 -0
  88. package/dist/commands/resources/help.js +10 -0
  89. package/dist/commands/resources/help.js.map +1 -0
  90. package/dist/commands/resources/index.d.ts +7 -0
  91. package/dist/commands/resources/index.d.ts.map +1 -0
  92. package/dist/commands/resources/index.js +64 -0
  93. package/dist/commands/resources/index.js.map +1 -0
  94. package/dist/commands/resources/scan.d.ts +9 -0
  95. package/dist/commands/resources/scan.d.ts.map +1 -0
  96. package/dist/commands/resources/scan.js +47 -0
  97. package/dist/commands/resources/scan.js.map +1 -0
  98. package/dist/commands/resources/validate.d.ts +9 -0
  99. package/dist/commands/resources/validate.d.ts.map +1 -0
  100. package/dist/commands/resources/validate.js +61 -0
  101. package/dist/commands/resources/validate.js.map +1 -0
  102. package/dist/index.d.ts +14 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +15 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/schemas/config.d.ts +1034 -0
  107. package/dist/schemas/config.d.ts.map +1 -0
  108. package/dist/schemas/config.js +135 -0
  109. package/dist/schemas/config.js.map +1 -0
  110. package/dist/utils/agent-discovery.d.ts +32 -0
  111. package/dist/utils/agent-discovery.d.ts.map +1 -0
  112. package/dist/utils/agent-discovery.js +108 -0
  113. package/dist/utils/agent-discovery.js.map +1 -0
  114. package/dist/utils/agent-runner.d.ts +22 -0
  115. package/dist/utils/agent-runner.d.ts.map +1 -0
  116. package/dist/utils/agent-runner.js +120 -0
  117. package/dist/utils/agent-runner.js.map +1 -0
  118. package/dist/utils/command-error.d.ts +19 -0
  119. package/dist/utils/command-error.d.ts.map +1 -0
  120. package/dist/utils/command-error.js +36 -0
  121. package/dist/utils/command-error.js.map +1 -0
  122. package/dist/utils/config-loader.d.ts +12 -0
  123. package/dist/utils/config-loader.d.ts.map +1 -0
  124. package/dist/utils/config-loader.js +39 -0
  125. package/dist/utils/config-loader.js.map +1 -0
  126. package/dist/utils/help-loader.d.ts +12 -0
  127. package/dist/utils/help-loader.d.ts.map +1 -0
  128. package/dist/utils/help-loader.js +39 -0
  129. package/dist/utils/help-loader.js.map +1 -0
  130. package/dist/utils/logger.d.ts +14 -0
  131. package/dist/utils/logger.d.ts.map +1 -0
  132. package/dist/utils/logger.js +21 -0
  133. package/dist/utils/logger.js.map +1 -0
  134. package/dist/utils/output.d.ts +20 -0
  135. package/dist/utils/output.d.ts.map +1 -0
  136. package/dist/utils/output.js +40 -0
  137. package/dist/utils/output.js.map +1 -0
  138. package/dist/utils/project-root.d.ts +11 -0
  139. package/dist/utils/project-root.d.ts.map +1 -0
  140. package/dist/utils/project-root.js +35 -0
  141. package/dist/utils/project-root.js.map +1 -0
  142. package/dist/utils/resource-loader.d.ts +30 -0
  143. package/dist/utils/resource-loader.d.ts.map +1 -0
  144. package/dist/utils/resource-loader.js +63 -0
  145. package/dist/utils/resource-loader.js.map +1 -0
  146. package/dist/utils/scope-locations.d.ts +17 -0
  147. package/dist/utils/scope-locations.d.ts.map +1 -0
  148. package/dist/utils/scope-locations.js +40 -0
  149. package/dist/utils/scope-locations.js.map +1 -0
  150. package/dist/utils/validate-help-files.d.ts +14 -0
  151. package/dist/utils/validate-help-files.d.ts.map +1 -0
  152. package/dist/utils/validate-help-files.js +61 -0
  153. package/dist/utils/validate-help-files.js.map +1 -0
  154. package/dist/version.d.ts +13 -0
  155. package/dist/version.d.ts.map +1 -0
  156. package/dist/version.js +27 -0
  157. package/dist/version.js.map +1 -0
  158. package/docs/agent.md +100 -0
  159. package/docs/index.md +65 -0
  160. package/docs/rag.md +449 -0
  161. package/docs/resources.md +158 -0
  162. package/package.json +68 -0
@@ -0,0 +1,17 @@
1
+ /**
2
+ * vat agent run command
3
+ *
4
+ * Executes an agent with user input and displays the response.
5
+ */
6
+ export interface RunCommandOptions {
7
+ debug?: boolean;
8
+ }
9
+ /**
10
+ * Run an agent with user input
11
+ *
12
+ * @param pathOrName - Agent name or path to agent manifest
13
+ * @param userInput - Input text for the agent
14
+ * @param options - Command options
15
+ */
16
+ export declare function runCommand(pathOrName: string, userInput: string, options: RunCommandOptions): Promise<void>;
17
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * vat agent run command
3
+ *
4
+ * Executes an agent with user input and displays the response.
5
+ */
6
+ import { resolveAgentPath } from '../../utils/agent-discovery.js';
7
+ import { runAgent } from '../../utils/agent-runner.js';
8
+ import { handleCommandError } from '../../utils/command-error.js';
9
+ import { createLogger } from '../../utils/logger.js';
10
+ /**
11
+ * Run an agent with user input
12
+ *
13
+ * @param pathOrName - Agent name or path to agent manifest
14
+ * @param userInput - Input text for the agent
15
+ * @param options - Command options
16
+ */
17
+ export async function runCommand(pathOrName, userInput, options) {
18
+ const logger = createLogger(options.debug ? { debug: true } : {});
19
+ const startTime = Date.now();
20
+ try {
21
+ const targetPath = await resolveAgentPath(pathOrName, logger);
22
+ logger.info(`Running agent: ${targetPath}`);
23
+ logger.info('');
24
+ // Run the agent
25
+ const result = await runAgent(targetPath, {
26
+ userInput,
27
+ debug: options.debug ?? false,
28
+ });
29
+ // Output response to stdout
30
+ process.stdout.write(result.response);
31
+ process.stdout.write('\n');
32
+ // Log usage statistics to stderr
33
+ if (result.usage) {
34
+ const duration = Date.now() - startTime;
35
+ logger.info('');
36
+ logger.info(`Completed in ${duration}ms (tokens: ${result.usage.inputTokens} in, ${result.usage.outputTokens} out)`);
37
+ }
38
+ process.exit(0);
39
+ }
40
+ catch (error) {
41
+ handleCommandError(error, logger, startTime, 'AgentRun');
42
+ }
43
+ }
44
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,SAAiB,EACjB,OAA0B;IAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhB,gBAAgB;QAChB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE;YACxC,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC9B,CAAC,CAAC;QAEH,4BAA4B;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3B,iCAAiC;QACjC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CACT,gBAAgB,QAAQ,eAAe,MAAM,CAAC,KAAK,CAAC,WAAW,QAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CACxG,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Uninstall agent from Claude Skills directory
3
+ */
4
+ export interface UninstallOptions {
5
+ scope?: 'user' | 'project';
6
+ runtime?: string;
7
+ debug?: boolean;
8
+ }
9
+ /**
10
+ * Uninstall agent command
11
+ */
12
+ export declare function uninstallAgent(agentName: string, options: UninstallOptions): Promise<void>;
13
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/uninstall.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAyCf"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Uninstall agent from Claude Skills directory
3
+ */
4
+ import fs from 'node:fs/promises';
5
+ import path from 'node:path';
6
+ import { handleCommandError } from '../../utils/command-error.js';
7
+ import { createLogger } from '../../utils/logger.js';
8
+ import { validateAndGetScopeLocation } from '../../utils/scope-locations.js';
9
+ /**
10
+ * Uninstall agent command
11
+ */
12
+ export async function uninstallAgent(agentName, options) {
13
+ const logger = createLogger(options.debug ? { debug: true } : {});
14
+ const startTime = Date.now();
15
+ try {
16
+ const { runtime = 'claude-skill', scope = 'user' } = options;
17
+ // Validate scope and get target location
18
+ const targetLocation = validateAndGetScopeLocation(runtime, scope);
19
+ const installPath = path.join(targetLocation, agentName);
20
+ // Check if installed
21
+ try {
22
+ await fs.access(installPath);
23
+ }
24
+ catch {
25
+ logger.error(`\n${agentName} is not installed at ${installPath}\n`);
26
+ process.exit(1);
27
+ }
28
+ // Check if symlink
29
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Path from validated scope + agent name
30
+ const stats = await fs.lstat(installPath);
31
+ const isSymlink = stats.isSymbolicLink();
32
+ // Remove installation
33
+ await fs.rm(installPath, { recursive: true, force: true });
34
+ if (isSymlink) {
35
+ logger.info(`✓ Removed symlink for ${agentName} from ${installPath}`);
36
+ }
37
+ else {
38
+ logger.info(`✓ Uninstalled ${agentName} from ${installPath}`);
39
+ }
40
+ const duration = Date.now() - startTime;
41
+ logger.debug(`Uninstall completed in ${duration}ms`);
42
+ process.exit(0);
43
+ }
44
+ catch (error) {
45
+ handleCommandError(error, logger, startTime, 'Uninstall');
46
+ }
47
+ }
48
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/commands/agent/uninstall.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAQ7E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,OAAyB;IAEzB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,GAAG,cAAc,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QAE7D,yCAAyC;QACzC,MAAM,cAAc,GAAG,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAEzD,qBAAqB;QACrB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,wBAAwB,WAAW,IAAI,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,6GAA6G;QAC7G,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAEzC,sBAAsB;QACtB,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,SAAS,SAAS,WAAW,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,SAAS,WAAW,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,IAAI,CAAC,CAAC;QAErD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Agent validate command - validates agent manifest and prerequisites
3
+ */
4
+ export interface ValidateCommandOptions {
5
+ debug?: boolean;
6
+ }
7
+ export declare function validateCommand(pathOrName: string, options: ValidateCommandOptions): Promise<void>;
8
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Agent validate command - validates agent manifest and prerequisites
3
+ */
4
+ import { validateAgent } from '@vibe-agent-toolkit/agent-config';
5
+ import { resolveAgentPath } from '../../utils/agent-discovery.js';
6
+ import { handleCommandError } from '../../utils/command-error.js';
7
+ import { createLogger } from '../../utils/logger.js';
8
+ import { writeYamlOutput } from '../../utils/output.js';
9
+ export async function validateCommand(pathOrName, options) {
10
+ const logger = createLogger(options.debug ? { debug: true } : {});
11
+ const startTime = Date.now();
12
+ try {
13
+ // Resolve agent name to path if needed
14
+ const targetPath = await resolveAgentPath(pathOrName, logger);
15
+ logger.debug(`Validating agent: ${targetPath}`);
16
+ // Validate agent
17
+ const result = await validateAgent(targetPath);
18
+ // Prepare output
19
+ const output = {
20
+ status: result.valid ? 'success' : 'error',
21
+ manifest: result.manifest,
22
+ validation: {
23
+ errors: result.errors,
24
+ warnings: result.warnings,
25
+ },
26
+ duration: `${Date.now() - startTime}ms`,
27
+ };
28
+ writeYamlOutput(output);
29
+ if (!result.valid) {
30
+ logger.error('Agent validation failed');
31
+ for (const error of result.errors) {
32
+ logger.error(` - ${error}`);
33
+ }
34
+ process.exit(1);
35
+ }
36
+ if (result.warnings.length > 0) {
37
+ logger.info('Validation passed with warnings:');
38
+ for (const warning of result.warnings) {
39
+ logger.info(` - ${warning}`);
40
+ }
41
+ }
42
+ else {
43
+ logger.info('Agent validation successful');
44
+ }
45
+ process.exit(0);
46
+ }
47
+ catch (error) {
48
+ handleCommandError(error, logger, startTime, 'AgentValidate');
49
+ }
50
+ }
51
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/agent/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,OAA+B;IAE/B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,uCAAuC;QACvC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAEhD,iBAAiB;QACjB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAE/C,iBAAiB;QACjB,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI;SACxC,CAAC;QAEF,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * RAG clear command - remove all indexed data from database
3
+ */
4
+ interface ClearOptions {
5
+ db?: string;
6
+ debug?: boolean;
7
+ }
8
+ export declare function clearCommand(options: ClearOptions): Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=clear-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-command.d.ts","sourceRoot":"","sources":["../../../src/commands/rag/clear-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBvE"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * RAG clear command - remove all indexed data from database
3
+ */
4
+ import { writeYamlOutput } from '../../utils/output.js';
5
+ import { executeRagOperation, formatDuration } from './command-helpers.js';
6
+ export async function clearCommand(options) {
7
+ const startTime = Date.now();
8
+ await executeRagOperation({ ...options, readonly: false }, // Admin mode for write operations
9
+ async (ragProvider) => {
10
+ // Clear database (cast to RAGAdminProvider since readonly: false)
11
+ await ragProvider.clear();
12
+ }, 'Clear');
13
+ const duration = Date.now() - startTime;
14
+ // Output success
15
+ writeYamlOutput({
16
+ status: 'success',
17
+ message: 'Database cleared',
18
+ duration: formatDuration(duration),
19
+ });
20
+ process.exit(0);
21
+ }
22
+ //# sourceMappingURL=clear-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-command.js","sourceRoot":"","sources":["../../../src/commands/rag/clear-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAO3E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAqB;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,mBAAmB,CACvB,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kCAAkC;IACnE,KAAK,EAAE,WAAW,EAAE,EAAE;QACpB,kEAAkE;QAClE,MAAO,WAAgC,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC,EACD,OAAO,CACR,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,iBAAiB;IACjB,eAAe,CAAC;QACd,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;KACnC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared helper functions for RAG commands
3
+ */
4
+ import type { RAGQueryProvider } from '@vibe-agent-toolkit/rag';
5
+ import { type Logger } from '../../utils/logger.js';
6
+ export { formatDuration, handleCommandError } from '../../utils/command-error.js';
7
+ /**
8
+ * Resolve database path (explicit flag or default in project)
9
+ * @param explicitDb - Database path from --db flag
10
+ * @param projectRoot - Project root directory (from findProjectRoot)
11
+ * @returns Resolved database path
12
+ * @throws Error if no path can be determined
13
+ */
14
+ export declare function resolveDbPath(explicitDb: string | undefined, projectRoot: string | undefined): string;
15
+ /**
16
+ * Execute a RAG operation with standard setup/teardown pattern
17
+ * @param options - Command options (db path, debug flag, readonly mode)
18
+ * @param operation - The operation to execute with the RAG provider
19
+ * @param commandName - Name of the command (for error reporting)
20
+ * @returns Result of the operation
21
+ */
22
+ export declare function executeRagOperation<T>(options: {
23
+ db?: string;
24
+ debug?: boolean;
25
+ readonly?: boolean;
26
+ }, operation: (provider: RAGQueryProvider, logger: Logger) => Promise<T>, commandName: string): Promise<T>;
27
+ //# sourceMappingURL=command-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/rag/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,MAAM,CAUR;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC7D,SAAS,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACrE,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,CAAC,CAAC,CA6BZ"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Shared helper functions for RAG commands
3
+ */
4
+ import { LanceDBRAGProvider } from '@vibe-agent-toolkit/rag-lancedb';
5
+ import { createLogger } from '../../utils/logger.js';
6
+ import { findProjectRoot } from '../../utils/project-root.js';
7
+ // Re-export shared utilities for convenience
8
+ export { formatDuration, handleCommandError } from '../../utils/command-error.js';
9
+ /**
10
+ * Resolve database path (explicit flag or default in project)
11
+ * @param explicitDb - Database path from --db flag
12
+ * @param projectRoot - Project root directory (from findProjectRoot)
13
+ * @returns Resolved database path
14
+ * @throws Error if no path can be determined
15
+ */
16
+ export function resolveDbPath(explicitDb, projectRoot) {
17
+ if (explicitDb) {
18
+ return explicitDb;
19
+ }
20
+ if (projectRoot) {
21
+ return `${projectRoot}/.rag-db`;
22
+ }
23
+ throw new Error('No database path specified and no project root found. Use --db <path>');
24
+ }
25
+ /**
26
+ * Execute a RAG operation with standard setup/teardown pattern
27
+ * @param options - Command options (db path, debug flag, readonly mode)
28
+ * @param operation - The operation to execute with the RAG provider
29
+ * @param commandName - Name of the command (for error reporting)
30
+ * @returns Result of the operation
31
+ */
32
+ export async function executeRagOperation(options, operation, commandName) {
33
+ const logger = createLogger({ debug: options.debug ?? false });
34
+ const startTime = Date.now();
35
+ try {
36
+ // Resolve database path
37
+ const projectRoot = findProjectRoot(process.cwd());
38
+ const dbPath = resolveDbPath(options.db, projectRoot ?? undefined);
39
+ logger.debug(`Database path: ${dbPath}`);
40
+ // Create RAG provider (readonly mode by default, can be overridden)
41
+ const ragProvider = await LanceDBRAGProvider.create({
42
+ dbPath,
43
+ readonly: options.readonly ?? true,
44
+ });
45
+ // Execute operation
46
+ const result = await operation(ragProvider, logger);
47
+ // Close provider
48
+ await ragProvider.close();
49
+ return result;
50
+ }
51
+ catch (error) {
52
+ // Use handleCommandError from re-export
53
+ const { handleCommandError } = await import('../../utils/command-error.js');
54
+ handleCommandError(error, logger, startTime, commandName);
55
+ throw error; // Never reached due to process.exit in handleCommandError
56
+ }
57
+ }
58
+ //# sourceMappingURL=command-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-helpers.js","sourceRoot":"","sources":["../../../src/commands/rag/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,UAA8B,EAC9B,WAA+B;IAE/B,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,GAAG,WAAW,UAAU,CAAC;IAClC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA6D,EAC7D,SAAqE,EACrE,WAAmB;IAEnB,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAEzC,oEAAoE;QACpE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;YAClD,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;SACnC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEpD,iBAAiB;QACjB,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAE1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wCAAwC;QACxC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QAC5E,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC,CAAC,0DAA0D;IACzE,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Verbose help for RAG commands
3
+ */
4
+ export declare function showRagVerboseHelp(): void;
5
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/commands/rag/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Verbose help for RAG commands
3
+ */
4
+ import { loadVerboseHelp } from '../../utils/help-loader.js';
5
+ export function showRagVerboseHelp() {
6
+ const helpContent = loadVerboseHelp('rag'); // Loads from docs/rag.md
7
+ process.stdout.write(helpContent);
8
+ process.stdout.write('\n');
9
+ }
10
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/commands/rag/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,UAAU,kBAAkB;IAChC,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAyB;IACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * RAG index command - index markdown resources into vector database
3
+ */
4
+ interface IndexOptions {
5
+ db?: string;
6
+ debug?: boolean;
7
+ }
8
+ export declare function indexCommand(pathArg: string | undefined, options: IndexOptions): Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=index-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-command.d.ts","sourceRoot":"","sources":["../../../src/commands/rag/index-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * RAG index command - index markdown resources into vector database
3
+ */
4
+ import { LanceDBRAGProvider } from '@vibe-agent-toolkit/rag-lancedb';
5
+ import { createLogger } from '../../utils/logger.js';
6
+ import { writeYamlOutput } from '../../utils/output.js';
7
+ import { loadResourcesWithConfig } from '../../utils/resource-loader.js';
8
+ import { formatDuration, handleCommandError, resolveDbPath } from './command-helpers.js';
9
+ export async function indexCommand(pathArg, options) {
10
+ const logger = createLogger({ debug: options.debug ?? false });
11
+ const startTime = Date.now();
12
+ try {
13
+ // Load resources with config support
14
+ const { registry, projectRoot } = await loadResourcesWithConfig(pathArg, logger);
15
+ // Resolve database path
16
+ const dbPath = resolveDbPath(options.db, projectRoot ?? undefined);
17
+ logger.debug(`Database path: ${dbPath}`);
18
+ const allResources = registry.getAllResources();
19
+ logger.debug(`Found ${allResources.length} resources to index`);
20
+ // Create RAG provider in admin mode (readonly: false)
21
+ const ragProvider = await LanceDBRAGProvider.create({
22
+ dbPath,
23
+ readonly: false,
24
+ });
25
+ // Index all resources
26
+ const indexResult = await ragProvider.indexResources(allResources);
27
+ // Close provider
28
+ await ragProvider.close();
29
+ const duration = Date.now() - startTime;
30
+ // Output results as YAML
31
+ writeYamlOutput({
32
+ status: 'success',
33
+ resourcesIndexed: indexResult.resourcesIndexed,
34
+ resourcesSkipped: indexResult.resourcesSkipped,
35
+ resourcesUpdated: indexResult.resourcesUpdated,
36
+ chunksCreated: indexResult.chunksCreated,
37
+ chunksDeleted: indexResult.chunksDeleted,
38
+ duration: formatDuration(duration),
39
+ ...(indexResult.errors && indexResult.errors.length > 0
40
+ ? { errors: indexResult.errors }
41
+ : {}),
42
+ });
43
+ process.exit(0);
44
+ }
45
+ catch (error) {
46
+ handleCommandError(error, logger, startTime, 'Index');
47
+ }
48
+ }
49
+ //# sourceMappingURL=index-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-command.js","sourceRoot":"","sources":["../../../src/commands/rag/index-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOzF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA2B,EAC3B,OAAqB;IAErB,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEjF,wBAAwB;QACxB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAEzC,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,SAAS,YAAY,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAEhE,sDAAsD;QACtD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;YAClD,MAAM;YACN,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAEnE,iBAAiB;QACjB,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,yBAAyB;QACzB,eAAe,CAAC;YACd,MAAM,EAAE,SAAS;YACjB,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;YAClC,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBACrD,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE;gBAChC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * RAG command group
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare function createRagCommand(): Command;
6
+ export { showRagVerboseHelp } from './help.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/rag/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,gBAAgB,IAAI,OAAO,CA8K1C;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * RAG command group
3
+ */
4
+ import { Command } from 'commander';
5
+ import { clearCommand } from './clear-command.js';
6
+ import { indexCommand } from './index-command.js';
7
+ import { queryCommand } from './query-command.js';
8
+ import { statsCommand } from './stats-command.js';
9
+ // Common option descriptions
10
+ const DB_PATH_OPTION = '--db <path>';
11
+ const DB_PATH_DESC = 'Database path (default: .rag-db in project root)';
12
+ const DEBUG_OPTION_DESC = 'Enable debug logging';
13
+ export function createRagCommand() {
14
+ const rag = new Command('rag');
15
+ rag
16
+ .description('Semantic search over markdown documentation using vector embeddings')
17
+ .helpCommand(false) // Disable redundant 'help' command, use --help instead
18
+ .addHelpText('after', `
19
+ Description:
20
+ RAG enables semantic search over your documentation. Index markdown files
21
+ to create vector embeddings, then query using natural language to find
22
+ relevant content based on meaning (not just keyword matching).
23
+
24
+ Workflow:
25
+ 1. Index markdown files → Creates vector database
26
+ 2. Query database → Returns semantically similar content
27
+ 3. Stats → Monitor database size and model info
28
+ 4. Clear → Reset database when needed
29
+
30
+ Example:
31
+ $ vat rag index docs/ # Recursively index all *.md under docs/
32
+ $ vat rag query "error handling" # Search for relevant content
33
+
34
+ Configuration:
35
+ Create vibe-agent-toolkit.config.yaml in project root to control
36
+ which files are included/excluded from indexing.
37
+ `);
38
+ rag
39
+ .command('index [path]')
40
+ .description('Index markdown resources into vector database')
41
+ .option(DB_PATH_OPTION, DB_PATH_DESC)
42
+ .option('--debug', DEBUG_OPTION_DESC)
43
+ .action(indexCommand)
44
+ .addHelpText('after', `
45
+ Description:
46
+ Indexes markdown files into LanceDB vector database for semantic search.
47
+ Processes documents by chunking text, generating vector embeddings using
48
+ transformer models, and storing in a local vector database. Supports
49
+ incremental updates (skips unchanged files).
50
+
51
+ Path argument: base directory to crawl (defaults to current directory)
52
+ When path specified: recursively finds all *.md files (ignores config)
53
+ When no path: uses vibe-agent-toolkit.config.yaml include/exclude patterns
54
+
55
+ Output Structure (YAML):
56
+ status: success/error
57
+ resourcesIndexed: new/updated files
58
+ resourcesSkipped: unchanged files (content hash match)
59
+ resourcesUpdated: files with new content
60
+ chunksCreated: total chunks added
61
+ chunksDeleted: chunks removed from updated files
62
+ duration: total indexing time
63
+
64
+ Exit Codes:
65
+ 0 - Success | 2 - System error
66
+
67
+ Example:
68
+ $ vat rag index docs/ # Recursively index all *.md under docs/
69
+ $ vat rag index # Recursively index from current directory
70
+ $ vat rag index --db custom.db # Use custom database path
71
+ `);
72
+ rag
73
+ .command('query <text>')
74
+ .description('Search RAG database with semantic query')
75
+ .option(DB_PATH_OPTION, DB_PATH_DESC)
76
+ .option('--limit <n>', 'Maximum results to return (default: 10)', Number.parseInt)
77
+ .option('--debug', DEBUG_OPTION_DESC)
78
+ .action(queryCommand)
79
+ .addHelpText('after', `
80
+ Description:
81
+ Searches vector database using semantic similarity. Converts your query
82
+ to a vector embedding and finds the most relevant document chunks based
83
+ on meaning (not just keywords). Returns full chunk content with metadata.
84
+
85
+ Output Structure (YAML):
86
+ status: success/error
87
+ query: original search text
88
+ stats:
89
+ totalMatches: number of results
90
+ searchDurationMs: query time
91
+ embedding.model: model used for embeddings
92
+ duration: total command time
93
+ chunks: array of matching document chunks with full content
94
+
95
+ Each chunk includes:
96
+ - chunkId, resourceId, filePath (identifiers)
97
+ - headingPath, headingLevel, startLine, endLine (location)
98
+ - title, type, tags (metadata)
99
+ - contentHash, tokenCount, embeddingModel, embeddedAt (technical)
100
+ - content (full text, not truncated)
101
+
102
+ Exit Codes:
103
+ 0 - Success | 2 - System error (no database)
104
+
105
+ Example:
106
+ $ vat rag query "error handling" # Search for relevant content
107
+ $ vat rag query "configuration" --limit 5
108
+ `);
109
+ rag
110
+ .command('stats')
111
+ .description('Show RAG database statistics')
112
+ .option(DB_PATH_OPTION, DB_PATH_DESC)
113
+ .option('--debug', DEBUG_OPTION_DESC)
114
+ .action(statsCommand)
115
+ .addHelpText('after', `
116
+ Description:
117
+ Displays vector database statistics including indexed content count,
118
+ embedding model information, and database metadata. Use this to verify
119
+ indexing completed successfully and monitor database size.
120
+
121
+ Output Structure (YAML):
122
+ status: success/error
123
+ totalChunks: number of document chunks indexed
124
+ totalResources: number of unique documents indexed
125
+ dbSizeBytes: database size on disk (if available)
126
+ embeddingModel: model used for vector embeddings
127
+ lastIndexed: timestamp of most recent indexing
128
+ duration: command execution time
129
+
130
+ Exit Codes:
131
+ 0 - Success | 2 - System error (no database)
132
+
133
+ Example:
134
+ $ vat rag stats # Show database statistics
135
+ $ vat rag stats --db custom.db # Stats for specific database
136
+ `);
137
+ rag
138
+ .command('clear')
139
+ .description('Delete entire RAG database directory')
140
+ .option(DB_PATH_OPTION, DB_PATH_DESC)
141
+ .option('--debug', DEBUG_OPTION_DESC)
142
+ .action(clearCommand)
143
+ .addHelpText('after', `
144
+ Description:
145
+ Deletes the entire RAG database directory and all indexed data.
146
+ Use this when changing embedding models, fixing corruption, or
147
+ starting fresh with a clean database.
148
+
149
+ Warning:
150
+ This operation cannot be undone. The database directory will be
151
+ permanently deleted. Re-run 'vat rag index' to rebuild from source.
152
+
153
+ Output Structure (YAML):
154
+ status: success/error
155
+ message: confirmation message
156
+ duration: command execution time
157
+
158
+ Exit Codes:
159
+ 0 - Success | 2 - System error
160
+
161
+ Example:
162
+ $ vat rag clear # Clear default database (.rag-db/)
163
+ $ vat rag clear --db custom.db # Clear specific database
164
+ `);
165
+ return rag;
166
+ }
167
+ export { showRagVerboseHelp } from './help.js';
168
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/rag/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,6BAA6B;AAC7B,MAAM,cAAc,GAAG,aAAa,CAAC;AACrC,MAAM,YAAY,GAAG,kDAAkD,CAAC;AACxE,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEjD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/B,GAAG;SACA,WAAW,CAAC,qEAAqE,CAAC;SAClF,WAAW,CAAC,KAAK,CAAC,CAAC,uDAAuD;SAC1E,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;CAmBL,CACI,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC;SACpC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,YAAY,CAAC;SACpB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BL,CACI,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC;SACpC,MAAM,CAAC,aAAa,EAAE,yCAAyC,EAAE,MAAM,CAAC,QAAQ,CAAC;SACjF,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,YAAY,CAAC;SACpB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BL,CACI,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC;SACpC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,YAAY,CAAC;SACpB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;CAqBL,CACI,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC;SACpC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,YAAY,CAAC;SACpB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;CAqBL,CACI,CAAC;IAEJ,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}