@yeseh/cortex-cli 0.6.0 → 0.6.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 (145) hide show
  1. package/package.json +3 -3
  2. package/src/category/commands/create.ts +7 -3
  3. package/src/context.ts +15 -20
  4. package/src/memory/commands/add.ts +2 -1
  5. package/src/memory/commands/list.ts +2 -1
  6. package/src/memory/commands/move.ts +6 -2
  7. package/src/memory/commands/remove.ts +6 -2
  8. package/src/memory/commands/show.ts +3 -2
  9. package/src/memory/commands/update.ts +2 -1
  10. package/src/observability.spec.ts +8 -21
  11. package/src/observability.ts +26 -7
  12. package/src/program.ts +1 -1
  13. package/src/run.ts +0 -0
  14. package/src/store/commands/init.spec.ts +62 -78
  15. package/src/store/commands/init.ts +31 -15
  16. package/src/store/commands/prune.ts +4 -4
  17. package/src/store/commands/reindexs.ts +4 -3
  18. package/src/tests/cli.integration.spec.ts +136 -0
  19. package/src/utils/input.ts +9 -4
  20. package/src/utils/resolve-default-store.spec.ts +135 -0
  21. package/src/utils/resolve-default-store.ts +74 -0
  22. package/dist/category/commands/create.d.ts +0 -44
  23. package/dist/category/commands/create.d.ts.map +0 -1
  24. package/dist/category/commands/create.spec.d.ts +0 -7
  25. package/dist/category/commands/create.spec.d.ts.map +0 -1
  26. package/dist/category/index.d.ts +0 -19
  27. package/dist/category/index.d.ts.map +0 -1
  28. package/dist/commands/init.d.ts +0 -58
  29. package/dist/commands/init.d.ts.map +0 -1
  30. package/dist/commands/init.spec.d.ts +0 -2
  31. package/dist/commands/init.spec.d.ts.map +0 -1
  32. package/dist/context.d.ts +0 -18
  33. package/dist/context.d.ts.map +0 -1
  34. package/dist/context.spec.d.ts +0 -2
  35. package/dist/context.spec.d.ts.map +0 -1
  36. package/dist/create-cli-command.d.ts +0 -23
  37. package/dist/create-cli-command.d.ts.map +0 -1
  38. package/dist/create-cli-command.spec.d.ts +0 -10
  39. package/dist/create-cli-command.spec.d.ts.map +0 -1
  40. package/dist/errors.d.ts +0 -57
  41. package/dist/errors.d.ts.map +0 -1
  42. package/dist/errors.spec.d.ts +0 -2
  43. package/dist/errors.spec.d.ts.map +0 -1
  44. package/dist/input.d.ts +0 -42
  45. package/dist/input.d.ts.map +0 -1
  46. package/dist/input.spec.d.ts +0 -2
  47. package/dist/input.spec.d.ts.map +0 -1
  48. package/dist/memory/commands/add.d.ts +0 -62
  49. package/dist/memory/commands/add.d.ts.map +0 -1
  50. package/dist/memory/commands/add.spec.d.ts +0 -7
  51. package/dist/memory/commands/add.spec.d.ts.map +0 -1
  52. package/dist/memory/commands/definitions.spec.d.ts +0 -10
  53. package/dist/memory/commands/definitions.spec.d.ts.map +0 -1
  54. package/dist/memory/commands/handlers.spec.d.ts +0 -2
  55. package/dist/memory/commands/handlers.spec.d.ts.map +0 -1
  56. package/dist/memory/commands/list.d.ts +0 -119
  57. package/dist/memory/commands/list.d.ts.map +0 -1
  58. package/dist/memory/commands/list.spec.d.ts +0 -2
  59. package/dist/memory/commands/list.spec.d.ts.map +0 -1
  60. package/dist/memory/commands/move.d.ts +0 -42
  61. package/dist/memory/commands/move.d.ts.map +0 -1
  62. package/dist/memory/commands/move.spec.d.ts +0 -2
  63. package/dist/memory/commands/move.spec.d.ts.map +0 -1
  64. package/dist/memory/commands/remove.d.ts +0 -41
  65. package/dist/memory/commands/remove.d.ts.map +0 -1
  66. package/dist/memory/commands/remove.spec.d.ts +0 -2
  67. package/dist/memory/commands/remove.spec.d.ts.map +0 -1
  68. package/dist/memory/commands/show.d.ts +0 -81
  69. package/dist/memory/commands/show.d.ts.map +0 -1
  70. package/dist/memory/commands/show.spec.d.ts +0 -2
  71. package/dist/memory/commands/show.spec.d.ts.map +0 -1
  72. package/dist/memory/commands/test-helpers.spec.d.ts +0 -19
  73. package/dist/memory/commands/test-helpers.spec.d.ts.map +0 -1
  74. package/dist/memory/commands/update.d.ts +0 -73
  75. package/dist/memory/commands/update.d.ts.map +0 -1
  76. package/dist/memory/commands/update.spec.d.ts +0 -2
  77. package/dist/memory/commands/update.spec.d.ts.map +0 -1
  78. package/dist/memory/index.d.ts +0 -29
  79. package/dist/memory/index.d.ts.map +0 -1
  80. package/dist/memory/index.spec.d.ts +0 -10
  81. package/dist/memory/index.spec.d.ts.map +0 -1
  82. package/dist/memory/parsing.d.ts +0 -3
  83. package/dist/memory/parsing.d.ts.map +0 -1
  84. package/dist/memory/parsing.spec.d.ts +0 -7
  85. package/dist/memory/parsing.spec.d.ts.map +0 -1
  86. package/dist/output.d.ts +0 -87
  87. package/dist/output.d.ts.map +0 -1
  88. package/dist/output.spec.d.ts +0 -2
  89. package/dist/output.spec.d.ts.map +0 -1
  90. package/dist/paths.d.ts +0 -27
  91. package/dist/paths.d.ts.map +0 -1
  92. package/dist/paths.spec.d.ts +0 -7
  93. package/dist/paths.spec.d.ts.map +0 -1
  94. package/dist/program.d.ts +0 -41
  95. package/dist/program.d.ts.map +0 -1
  96. package/dist/program.spec.d.ts +0 -11
  97. package/dist/program.spec.d.ts.map +0 -1
  98. package/dist/run.d.ts +0 -7
  99. package/dist/run.d.ts.map +0 -1
  100. package/dist/run.spec.d.ts +0 -12
  101. package/dist/run.spec.d.ts.map +0 -1
  102. package/dist/store/commands/add.d.ts +0 -73
  103. package/dist/store/commands/add.d.ts.map +0 -1
  104. package/dist/store/commands/add.spec.d.ts +0 -17
  105. package/dist/store/commands/add.spec.d.ts.map +0 -1
  106. package/dist/store/commands/init.d.ts +0 -75
  107. package/dist/store/commands/init.d.ts.map +0 -1
  108. package/dist/store/commands/init.spec.d.ts +0 -7
  109. package/dist/store/commands/init.spec.d.ts.map +0 -1
  110. package/dist/store/commands/list.d.ts +0 -62
  111. package/dist/store/commands/list.d.ts.map +0 -1
  112. package/dist/store/commands/list.spec.d.ts +0 -7
  113. package/dist/store/commands/list.spec.d.ts.map +0 -1
  114. package/dist/store/commands/prune.d.ts +0 -92
  115. package/dist/store/commands/prune.d.ts.map +0 -1
  116. package/dist/store/commands/prune.spec.d.ts +0 -7
  117. package/dist/store/commands/prune.spec.d.ts.map +0 -1
  118. package/dist/store/commands/reindexs.d.ts +0 -54
  119. package/dist/store/commands/reindexs.d.ts.map +0 -1
  120. package/dist/store/commands/reindexs.spec.d.ts +0 -7
  121. package/dist/store/commands/reindexs.spec.d.ts.map +0 -1
  122. package/dist/store/commands/remove.d.ts +0 -63
  123. package/dist/store/commands/remove.d.ts.map +0 -1
  124. package/dist/store/commands/remove.spec.d.ts +0 -17
  125. package/dist/store/commands/remove.spec.d.ts.map +0 -1
  126. package/dist/store/index.d.ts +0 -32
  127. package/dist/store/index.d.ts.map +0 -1
  128. package/dist/store/index.spec.d.ts +0 -9
  129. package/dist/store/index.spec.d.ts.map +0 -1
  130. package/dist/store/utils/resolve-store-name.d.ts +0 -30
  131. package/dist/store/utils/resolve-store-name.d.ts.map +0 -1
  132. package/dist/store/utils/resolve-store-name.spec.d.ts +0 -2
  133. package/dist/store/utils/resolve-store-name.spec.d.ts.map +0 -1
  134. package/dist/test-helpers.spec.d.ts +0 -224
  135. package/dist/test-helpers.spec.d.ts.map +0 -1
  136. package/dist/tests/cli.integration.spec.d.ts +0 -11
  137. package/dist/tests/cli.integration.spec.d.ts.map +0 -1
  138. package/dist/toon.d.ts +0 -197
  139. package/dist/toon.d.ts.map +0 -1
  140. package/dist/toon.spec.d.ts +0 -9
  141. package/dist/toon.spec.d.ts.map +0 -1
  142. package/dist/utils/git.d.ts +0 -20
  143. package/dist/utils/git.d.ts.map +0 -1
  144. package/dist/utils/git.spec.d.ts +0 -7
  145. package/dist/utils/git.spec.d.ts.map +0 -1
@@ -1,7 +0,0 @@
1
- /**
2
- * Unit tests for CLI path resolution utilities.
3
- *
4
- * @module cli/paths.spec
5
- */
6
- export {};
7
- //# sourceMappingURL=paths.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.spec.d.ts","sourceRoot":"","sources":["../src/paths.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/dist/program.d.ts DELETED
@@ -1,41 +0,0 @@
1
- /**
2
- * Commander.js program setup for Cortex CLI.
3
- *
4
- * This module sets up the main Commander program and wires together
5
- * all command groups. It serves as the entry point for the CLI.
6
- *
7
- * @module cli/program
8
- */
9
- import { Command } from '@commander-js/extra-typings';
10
- /**
11
- * The main Commander program instance for Cortex CLI.
12
- *
13
- * Configured with:
14
- * - Name: cortex
15
- * - Description: Memory system for AI agents
16
- * - Version: 0.1.0
17
- *
18
- * @example
19
- * ```ts
20
- * import { program } from './program.ts';
21
- * await program.parseAsync(process.argv);
22
- * ```
23
- */
24
- declare const program: Command<[], {}, {}>;
25
- export { program };
26
- /**
27
- * Runs the CLI program by parsing command-line arguments.
28
- *
29
- * This function handles errors gracefully and sets the appropriate
30
- * exit code on failure.
31
- *
32
- * @returns A promise that resolves when the program completes
33
- *
34
- * @example
35
- * ```ts
36
- * import { runProgram } from './program.ts';
37
- * await runProgram();
38
- * ```
39
- */
40
- export declare const runProgram: () => Promise<void>;
41
- //# sourceMappingURL=program.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAOtD;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,OAAO,qBAGQ,CAAC;AAOtB,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,IAAI,CAe/C,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Unit tests for the Commander.js program setup and runProgram entrypoint.
3
- *
4
- * Verifies that the program is correctly wired with the expected name,
5
- * version, and top-level subcommands, and that `runProgram` is exported
6
- * as a callable function.
7
- *
8
- * @module cli/program.spec
9
- */
10
- export {};
11
- //# sourceMappingURL=program.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program.spec.d.ts","sourceRoot":"","sources":["../src/program.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
package/dist/run.d.ts DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env bun
2
- /**
3
- * CLI runner script for integration testing.
4
- * This script is spawned as a subprocess by the integration tests.
5
- */
6
- export {};
7
- //# sourceMappingURL=run.d.ts.map
package/dist/run.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";AACA;;;GAGG"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Unit tests for the run.ts CLI entrypoint.
3
- *
4
- * `run.ts` is a side-effect-only module that calls `runProgram()` on import.
5
- * Because importing it would immediately parse `process.argv`, we do NOT
6
- * import it directly in tests. Instead we verify that the function it
7
- * delegates to (`runProgram`) is correctly exported from `program.ts`.
8
- *
9
- * @module cli/run.spec
10
- */
11
- export {};
12
- //# sourceMappingURL=run.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.spec.d.ts","sourceRoot":"","sources":["../src/run.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Store add command for registering a new store.
3
- *
4
- * This command registers a new store in the global registry with a given
5
- * name and filesystem path. Paths are resolved relative to the current
6
- * working directory, with support for tilde expansion.
7
- *
8
- * @example
9
- * ```bash
10
- * # Register a store with an absolute path
11
- * cortex store add work /path/to/work/memories
12
- *
13
- * # Register a store with a relative path
14
- * cortex store add project ./cortex
15
- *
16
- * # Register a store with tilde expansion
17
- * cortex store add personal ~/memories
18
- * ```
19
- */
20
- import { Command } from '@commander-js/extra-typings';
21
- import { type CortexContext } from '@yeseh/cortex-core';
22
- /**
23
- * Options for the add command.
24
- */
25
- export interface AddCommandOptions {
26
- /** Output format (yaml, json, toon) */
27
- format?: string;
28
- }
29
- /**
30
- * Dependencies for the add command handler.
31
- * Allows injection for testing.
32
- */
33
- export interface AddHandlerDeps {
34
- /** Output stream for writing results (defaults to process.stdout) */
35
- stdout?: NodeJS.WritableStream;
36
- }
37
- /**
38
- * Handles the add command execution.
39
- *
40
- * This function:
41
- * 1. Validates the store name format
42
- * 2. Validates and resolves the store path
43
- * 3. Checks if store already exists in context
44
- * 4. Reads current config file
45
- * 5. Adds the store to the config and saves
46
- * 6. Outputs the result
47
- *
48
- * @param ctx - The CortexContext with loaded configuration
49
- * @param name - The store name to register
50
- * @param storePath - The filesystem path to the store
51
- * @param options - Command options (format)
52
- * @param deps - Optional dependencies for testing
53
- * @throws {InvalidArgumentError} When the store name or path is invalid
54
- * @throws {CommanderError} When the store already exists or config operations fail
55
- */
56
- export declare function handleAdd(ctx: CortexContext, name: string, storePath: string, options?: AddCommandOptions, deps?: AddHandlerDeps): Promise<void>;
57
- /**
58
- * The `add` subcommand for registering a new store.
59
- *
60
- * Registers a store with the given name and filesystem path. The path is
61
- * resolved relative to the current working directory, with support for
62
- * tilde expansion.
63
- *
64
- * @example
65
- * ```bash
66
- * cortex store add work /path/to/work/memories
67
- * cortex store add project ./cortex --format json
68
- * ```
69
- */
70
- export declare const addCommand: Command<[string, string], {
71
- format: string;
72
- }, {}>;
73
- //# sourceMappingURL=add.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/store/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAKtD,OAAO,EAAqB,KAAK,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AAG7F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAClC;AAwDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,SAAS,CAC3B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,EAC/B,IAAI,GAAE,cAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU;;MAWjB,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Unit tests for the store add command handler.
3
- *
4
- * Note: `handleAdd` reads and writes the global config file via `Bun.file()` and
5
- * `Bun.write()`. These I/O calls are not dependency-injected, so the success
6
- * path is not testable at the unit level without filesystem mocking (prohibited
7
- * by project rules). Only the validation paths that throw before any I/O are
8
- * covered here.
9
- *
10
- * Slug normalization behavior: `Slug.from()` normalizes most inputs rather than
11
- * rejecting them (e.g. 'INVALID' → 'invalid', 'my store' → 'my-store'). Only
12
- * empty/whitespace strings fail `Slug.from()` and produce `InvalidArgumentError`.
13
- *
14
- * @module cli/store/commands/add.spec
15
- */
16
- export {};
17
- //# sourceMappingURL=add.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add.spec.d.ts","sourceRoot":"","sources":["../../../src/store/commands/add.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -1,75 +0,0 @@
1
- /**
2
- * Store init command for initializing a new memory store.
3
- *
4
- * This command creates a new memory store at the specified path (or current
5
- * directory) and registers it in the global registry. The store name is
6
- * either explicitly provided via --name or auto-detected from the git
7
- * repository name.
8
- *
9
- * @example
10
- * ```bash
11
- * # Initialize store with auto-detected name from git repo
12
- * cortex store init
13
- *
14
- * # Initialize store with explicit name
15
- * cortex store init --name my-project
16
- *
17
- * # Initialize store at a specific path
18
- * cortex store init ./my-store --name my-project
19
- *
20
- * # Initialize store with tilde expansion
21
- * cortex store init ~/memories --name personal
22
- * ```
23
- */
24
- import { Command } from '@commander-js/extra-typings';
25
- import { type CategoryMode, type CortexContext } from '@yeseh/cortex-core';
26
- /**
27
- * Options for the init command.
28
- */
29
- export interface InitCommandOptions {
30
- /** Explicit store name (otherwise auto-detected from git) */
31
- name?: string;
32
- /** Category mode for the store */
33
- categoryMode?: CategoryMode;
34
- /** Output format (yaml, json, toon) */
35
- format?: string;
36
- /** Optional description for the store */
37
- description?: string;
38
- }
39
- /**
40
- * Handles the init command execution.
41
- *
42
- * This function:
43
- * 1. Resolves the store name (explicit or git detection)
44
- * 2. Resolves target path (default to .cortex in cwd)
45
- * 3. Uses initializeStore to create directory, index, and register
46
- * 4. Outputs the result
47
- *
48
- * @param targetPath - Optional path for the store (defaults to .cortex in cwd)
49
- * @param options - Command options (name, format)
50
- * @param deps - Optional dependencies for testing
51
- * @throws {InvalidArgumentError} When the store name is invalid
52
- * @throws {CommanderError} When the store already exists or init fails
53
- */
54
- export declare function handleInit(ctx: CortexContext, targetPath: string | undefined, options?: InitCommandOptions): Promise<void>;
55
- /**
56
- * The `init` subcommand for initializing a new memory store.
57
- *
58
- * Creates a new store at the specified path (or .cortex in current directory)
59
- * and registers it in the global registry. The store name is auto-detected
60
- * from the git repository name or can be explicitly provided.
61
- *
62
- * @example
63
- * ```bash
64
- * cortex store init # Auto-detect name from git
65
- * cortex store init --name my-project # Explicit name
66
- * cortex store init ./store --name custom # Custom path and name
67
- * ```
68
- */
69
- export declare const initCommand: Command<[string | undefined], {
70
- name?: string | undefined;
71
- description?: string | undefined;
72
- categoryMode: string;
73
- format: string;
74
- }, {}>;
75
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/store/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAKtD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAK3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAqBD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC5B,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,GAAE,kBAAuB,GACjC,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW;;;;;MAmBlB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Unit tests for the store init command handler.
3
- *
4
- * @module cli/store/commands/init.spec
5
- */
6
- export {};
7
- //# sourceMappingURL=init.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.spec.d.ts","sourceRoot":"","sources":["../../../src/store/commands/init.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Store list command for displaying all registered stores.
3
- *
4
- * This command reads the store registry and displays all registered
5
- * stores sorted alphabetically by name.
6
- *
7
- * @example
8
- * ```bash
9
- * # List all stores in YAML format (default)
10
- * cortex store list
11
- *
12
- * # List all stores in JSON format
13
- * cortex store list --format json
14
- * ```
15
- */
16
- import { Command } from '@commander-js/extra-typings';
17
- import { type CortexContext } from '@yeseh/cortex-core';
18
- /**
19
- * Options for the list command.
20
- */
21
- export interface ListCommandOptions {
22
- /** Output format (yaml, json, toon) */
23
- format?: string;
24
- }
25
- /**
26
- * Dependencies for the list command handler.
27
- * Allows injection for testing.
28
- */
29
- export interface ListHandlerDeps {
30
- /** Output stream for writing results (defaults to process.stdout) */
31
- stdout?: NodeJS.WritableStream;
32
- }
33
- /**
34
- * Handles the list command execution.
35
- *
36
- * This function:
37
- * 1. Gets stores from the context
38
- * 2. Formats the stores as a sorted list
39
- * 3. Serializes and outputs the result
40
- *
41
- * @param ctx - The Cortex context containing stores configuration
42
- * @param options - Command options (format)
43
- * @param deps - Optional dependencies for testing
44
- * @throws {CommanderError} When serialization fails
45
- */
46
- export declare function handleList(ctx: CortexContext, options: ListCommandOptions, deps?: ListHandlerDeps): Promise<void>;
47
- /**
48
- * The `list` subcommand for displaying all registered stores.
49
- *
50
- * Reads the store registry and displays all stores sorted alphabetically
51
- * by name in the specified format.
52
- *
53
- * @example
54
- * ```bash
55
- * cortex store list
56
- * cortex store list --format json
57
- * ```
58
- */
59
- export declare const listCommand: Command<[], {
60
- format: string;
61
- }, {}>;
62
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/store/commands/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC5B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,GAAE,eAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW;;MASlB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Unit tests for the store list command handler.
3
- *
4
- * @module cli/store/commands/list.spec
5
- */
6
- export {};
7
- //# sourceMappingURL=list.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.spec.d.ts","sourceRoot":"","sources":["../../../src/store/commands/list.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Store prune command for removing expired memories.
3
- *
4
- * This command removes expired memories from the current store or a specified
5
- * store. It supports a dry-run mode to preview what would be deleted.
6
- *
7
- * @module cli/commands/store/prune
8
- *
9
- * @example
10
- * ```bash
11
- * # Prune expired memories from the current store
12
- * cortex store prune
13
- *
14
- * # Preview what would be pruned (dry-run)
15
- * cortex store prune --dry-run
16
- *
17
- * # Prune from a specific store
18
- * cortex --store work store prune
19
- * ```
20
- */
21
- import { Command } from '@commander-js/extra-typings';
22
- import { type CortexContext } from '@yeseh/cortex-core';
23
- /**
24
- * Options for the prune command.
25
- */
26
- export interface PruneCommandOptions {
27
- /** Show what would be pruned without actually deleting */
28
- dryRun?: boolean;
29
- }
30
- /**
31
- * Dependencies for the prune command handler.
32
- * Allows injection for testing.
33
- */
34
- export interface PruneHandlerDeps {
35
- /** Output stream for writing results (defaults to process.stdout) */
36
- stdout?: NodeJS.WritableStream;
37
- /** Current time for expiry checks (defaults to ctx.now()) */
38
- now?: Date;
39
- }
40
- /**
41
- * Handles the prune command execution.
42
- *
43
- * Thin CLI handler that delegates all business logic to the core
44
- * prune operation via CategoryClient. This handler is responsible
45
- * only for:
46
- * 1. Resolving the store via CortexContext
47
- * 2. Calling the category prune operation
48
- * 3. Formatting output for the CLI (dry-run preview vs. deletion summary)
49
- *
50
- * After pruning, the core operation automatically triggers a reindex to
51
- * clean up category indexes for removed memories.
52
- *
53
- * @module cli/commands/store/prune
54
- *
55
- * @param ctx - CortexContext providing access to Cortex client
56
- * @param storeName - Optional store name from the parent `--store` flag;
57
- * when `undefined`, resolves the default store
58
- * @param options - Command options controlling pruning behavior
59
- * @param options.dryRun - When `true`, lists expired memories without deleting
60
- * @param deps - Optional injected dependencies for testing
61
- * @throws {InvalidArgumentError} When the store cannot be resolved
62
- * (e.g., store name does not exist)
63
- * @throws {CommanderError} When the core prune operation fails
64
- * (e.g., I/O errors, serialization failures)
65
- *
66
- * @example
67
- * ```typescript
68
- * // Direct invocation in tests
69
- * const out = new PassThrough();
70
- * await handlePrune(ctx, 'my-store', { dryRun: true }, {
71
- * stdout: out,
72
- * now: new Date('2025-01-01'),
73
- * });
74
- * ```
75
- */
76
- export declare function handlePrune(ctx: CortexContext, storeName: string | undefined, options: PruneCommandOptions, deps?: PruneHandlerDeps): Promise<void>;
77
- /**
78
- * The `prune` subcommand for removing expired memories.
79
- *
80
- * Removes all expired memories from the store. Use --dry-run to preview
81
- * what would be deleted without actually removing anything.
82
- *
83
- * @example
84
- * ```bash
85
- * cortex store prune
86
- * cortex store prune --dry-run
87
- * ```
88
- */
89
- export declare const pruneCommand: Command<[], {
90
- dryRun?: true | undefined;
91
- }, {}>;
92
- //# sourceMappingURL=prune.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../src/store/commands/prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,IAAI,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,WAAW,CAC7B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE,gBAAqB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY;;MAUnB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Unit tests for the store prune command handler.
3
- *
4
- * @module cli/store/commands/prune.spec
5
- */
6
- export {};
7
- //# sourceMappingURL=prune.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune.spec.d.ts","sourceRoot":"","sources":["../../../src/store/commands/prune.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Store reindex command for rebuilding category indexes.
3
- *
4
- * This command rebuilds the category indexes for a store, which can help
5
- * repair corrupted indexes or synchronize them after manual file changes.
6
- *
7
- * @example
8
- * ```bash
9
- * # Reindex the default store
10
- * cortex store reindex
11
- *
12
- * # Reindex a specific named store
13
- * cortex store --store work reindex
14
- * ```
15
- */
16
- import { Command } from '@commander-js/extra-typings';
17
- import { type CortexContext } from '@yeseh/cortex-core';
18
- /**
19
- * Dependencies for the reindex command handler.
20
- * Allows injection for testing.
21
- */
22
- export interface ReindexHandlerDeps {
23
- /** Output stream for writing results (defaults to process.stdout) */
24
- stdout?: NodeJS.WritableStream;
25
- }
26
- /**
27
- * Handles the reindex command execution.
28
- *
29
- * This function:
30
- * 1. Resolves the store context (from --store option or default resolution)
31
- * 2. Gets the root category for the store
32
- * 3. Rebuilds the category indexes
33
- * 4. Outputs the result
34
- *
35
- * @param ctx - The Cortex context
36
- * @param storeName - Optional store name from parent --store option
37
- * @param deps - Optional dependencies for testing
38
- * @throws {CommanderError} When store resolution or reindexing fails
39
- */
40
- export declare function handleReindex(ctx: CortexContext, storeName: string | undefined, deps?: ReindexHandlerDeps): Promise<void>;
41
- /**
42
- * The `reindex` subcommand for rebuilding category indexes.
43
- *
44
- * Rebuilds the category indexes for a store, which can help repair corrupted
45
- * indexes or synchronize them after manual file changes.
46
- *
47
- * @example
48
- * ```bash
49
- * cortex store reindex
50
- * cortex store --store work reindex
51
- * ```
52
- */
53
- export declare const reindexCommand: Command<[], {}, {}>;
54
- //# sourceMappingURL=reindexs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reindexs.d.ts","sourceRoot":"","sources":["../../../src/store/commands/reindexs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAClC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAC/B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,GAAE,kBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,qBASrB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Unit tests for the store reindex command handler.
3
- *
4
- * @module cli/store/commands/reindexs.spec
5
- */
6
- export {};
7
- //# sourceMappingURL=reindexs.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reindexs.spec.d.ts","sourceRoot":"","sources":["../../../src/store/commands/reindexs.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,63 +0,0 @@
1
- /**
2
- * Store remove command for unregistering a store.
3
- *
4
- * This command removes a store from the global registry. Note that this
5
- * only unregisters the store - it does not delete the actual data.
6
- *
7
- * @example
8
- * ```bash
9
- * # Remove a store from the registry
10
- * cortex store remove work
11
- * ```
12
- */
13
- import { Command } from '@commander-js/extra-typings';
14
- import { type CortexContext } from '@yeseh/cortex-core';
15
- /**
16
- * Options for the remove command.
17
- */
18
- export interface RemoveCommandOptions {
19
- /** Output format (yaml, json, toon) */
20
- format?: string;
21
- }
22
- /**
23
- * Dependencies for the remove command handler.
24
- * Allows injection for testing.
25
- */
26
- export interface RemoveHandlerDeps {
27
- /** Output stream for writing results (defaults to process.stdout) */
28
- stdout?: NodeJS.WritableStream;
29
- }
30
- /**
31
- * Handles the remove command execution.
32
- *
33
- * This function:
34
- * 1. Validates the store name format
35
- * 2. Checks that the store exists in context
36
- * 3. Reads current config file
37
- * 4. Removes the store from the config and saves
38
- * 5. Outputs the result
39
- *
40
- * @param ctx - The Cortex context
41
- * @param name - The store name to unregister
42
- * @param options - Command options (format)
43
- * @param deps - Optional dependencies for testing
44
- * @throws {InvalidArgumentError} When the store name is invalid
45
- * @throws {CommanderError} When the store doesn't exist or config operations fail
46
- */
47
- export declare function handleRemove(ctx: CortexContext, name: string, options?: RemoveCommandOptions, deps?: RemoveHandlerDeps): Promise<void>;
48
- /**
49
- * The `remove` subcommand for unregistering a store.
50
- *
51
- * Removes a store from the registry. This only unregisters the store
52
- * from the global registry - it does not delete the actual data.
53
- *
54
- * @example
55
- * ```bash
56
- * cortex store remove work
57
- * cortex store remove project --format json
58
- * ```
59
- */
60
- export declare const removeCommand: Command<[string], {
61
- format: string;
62
- }, {}>;
63
- //# sourceMappingURL=remove.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/store/commands/remove.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAItD,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG3E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAClC;AAwCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAC9B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB,EAClC,IAAI,GAAE,iBAAsB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAmEf;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa;;MAUpB,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Unit tests for the store remove command handler.
3
- *
4
- * Note: `handleRemove` reads and writes the global config file via `Bun.file()` and
5
- * `Bun.write()`. These I/O calls are not dependency-injected, so the success
6
- * path is not testable at the unit level without filesystem mocking (prohibited
7
- * by project rules). Only the validation paths that throw before any I/O are
8
- * covered here.
9
- *
10
- * Slug normalization behavior: `Slug.from()` normalizes most inputs rather than
11
- * rejecting them. Only empty/whitespace strings fail `Slug.from()` and produce
12
- * `InvalidArgumentError`.
13
- *
14
- * @module cli/store/commands/remove.spec
15
- */
16
- export {};
17
- //# sourceMappingURL=remove.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove.spec.d.ts","sourceRoot":"","sources":["../../../src/store/commands/remove.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}