opencode-rag-plugin 1.12.17 → 1.14.6
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.
- package/ReadMe.md +15 -13
- package/dist/api.d.ts +54 -2
- package/dist/api.js +41 -1
- package/dist/api.js.map +1 -1
- package/dist/chunker/base.js +2 -0
- package/dist/chunker/base.js.map +1 -1
- package/dist/chunker/bash.d.ts +5 -0
- package/dist/chunker/bash.js +5 -0
- package/dist/chunker/bash.js.map +1 -1
- package/dist/chunker/c.d.ts +6 -0
- package/dist/chunker/c.js +6 -0
- package/dist/chunker/c.js.map +1 -1
- package/dist/chunker/cpp.d.ts +6 -0
- package/dist/chunker/cpp.js +6 -0
- package/dist/chunker/cpp.js.map +1 -1
- package/dist/chunker/csharp.d.ts +6 -0
- package/dist/chunker/csharp.js +6 -0
- package/dist/chunker/csharp.js.map +1 -1
- package/dist/chunker/css.d.ts +6 -0
- package/dist/chunker/css.js +6 -0
- package/dist/chunker/css.js.map +1 -1
- package/dist/chunker/doc.d.ts +18 -0
- package/dist/chunker/doc.js +18 -0
- package/dist/chunker/doc.js.map +1 -1
- package/dist/chunker/dockerfile.d.ts +6 -0
- package/dist/chunker/dockerfile.js +6 -0
- package/dist/chunker/dockerfile.js.map +1 -1
- package/dist/chunker/docx.d.ts +18 -0
- package/dist/chunker/docx.js +18 -0
- package/dist/chunker/docx.js.map +1 -1
- package/dist/chunker/excel.d.ts +19 -0
- package/dist/chunker/excel.js +19 -0
- package/dist/chunker/excel.js.map +1 -1
- package/dist/chunker/go.d.ts +5 -0
- package/dist/chunker/go.js +5 -0
- package/dist/chunker/go.js.map +1 -1
- package/dist/chunker/grammar.d.ts +62 -0
- package/dist/chunker/grammar.js +133 -0
- package/dist/chunker/grammar.js.map +1 -1
- package/dist/chunker/html.d.ts +5 -0
- package/dist/chunker/html.js +5 -0
- package/dist/chunker/html.js.map +1 -1
- package/dist/chunker/image.d.ts +31 -0
- package/dist/chunker/image.js +50 -4
- package/dist/chunker/image.js.map +1 -1
- package/dist/chunker/ini.d.ts +5 -0
- package/dist/chunker/ini.js +5 -0
- package/dist/chunker/ini.js.map +1 -1
- package/dist/chunker/java.d.ts +5 -0
- package/dist/chunker/java.js +5 -0
- package/dist/chunker/java.js.map +1 -1
- package/dist/chunker/javascript.d.ts +6 -0
- package/dist/chunker/javascript.js +6 -0
- package/dist/chunker/javascript.js.map +1 -1
- package/dist/chunker/json.d.ts +5 -0
- package/dist/chunker/json.js +5 -0
- package/dist/chunker/json.js.map +1 -1
- package/dist/chunker/kotlin.d.ts +6 -0
- package/dist/chunker/kotlin.js +6 -0
- package/dist/chunker/kotlin.js.map +1 -1
- package/dist/chunker/loader.d.ts +11 -0
- package/dist/chunker/loader.js +20 -0
- package/dist/chunker/loader.js.map +1 -1
- package/dist/chunker/markdown.d.ts +5 -0
- package/dist/chunker/markdown.js +5 -0
- package/dist/chunker/markdown.js.map +1 -1
- package/dist/chunker/pdf.d.ts +19 -0
- package/dist/chunker/pdf.js +30 -0
- package/dist/chunker/pdf.js.map +1 -1
- package/dist/chunker/php.d.ts +5 -0
- package/dist/chunker/php.js +5 -0
- package/dist/chunker/php.js.map +1 -1
- package/dist/chunker/powershell.d.ts +5 -0
- package/dist/chunker/powershell.js +5 -0
- package/dist/chunker/powershell.js.map +1 -1
- package/dist/chunker/python.d.ts +5 -0
- package/dist/chunker/python.js +5 -0
- package/dist/chunker/python.js.map +1 -1
- package/dist/chunker/razor.d.ts +12 -0
- package/dist/chunker/razor.js +25 -0
- package/dist/chunker/razor.js.map +1 -1
- package/dist/chunker/ruby.d.ts +5 -0
- package/dist/chunker/ruby.js +5 -0
- package/dist/chunker/ruby.js.map +1 -1
- package/dist/chunker/rust.d.ts +6 -0
- package/dist/chunker/rust.js +6 -0
- package/dist/chunker/rust.js.map +1 -1
- package/dist/chunker/sln.d.ts +11 -0
- package/dist/chunker/sln.js +11 -0
- package/dist/chunker/sln.js.map +1 -1
- package/dist/chunker/sql.d.ts +5 -0
- package/dist/chunker/sql.js +5 -0
- package/dist/chunker/sql.js.map +1 -1
- package/dist/chunker/ssl.d.ts +12 -0
- package/dist/chunker/ssl.js +21 -2
- package/dist/chunker/ssl.js.map +1 -1
- package/dist/chunker/swift.d.ts +5 -0
- package/dist/chunker/swift.js +5 -0
- package/dist/chunker/swift.js.map +1 -1
- package/dist/chunker/tex.d.ts +12 -0
- package/dist/chunker/tex.js +12 -0
- package/dist/chunker/tex.js.map +1 -1
- package/dist/chunker/toml.d.ts +5 -0
- package/dist/chunker/toml.js +5 -0
- package/dist/chunker/toml.js.map +1 -1
- package/dist/chunker/typescript.d.ts +6 -0
- package/dist/chunker/typescript.js +6 -0
- package/dist/chunker/typescript.js.map +1 -1
- package/dist/chunker/xml.d.ts +5 -0
- package/dist/chunker/xml.js +5 -0
- package/dist/chunker/xml.js.map +1 -1
- package/dist/chunker/yaml.d.ts +5 -0
- package/dist/chunker/yaml.js +5 -0
- package/dist/chunker/yaml.js.map +1 -1
- package/dist/cli/commands/clear.d.ts +12 -0
- package/dist/cli/commands/clear.js +81 -0
- package/dist/cli/commands/clear.js.map +1 -0
- package/dist/cli/commands/describe-image.d.ts +14 -0
- package/dist/cli/commands/describe-image.js +68 -0
- package/dist/cli/commands/describe-image.js.map +1 -0
- package/dist/cli/commands/dump.d.ts +13 -0
- package/dist/cli/commands/dump.js +55 -0
- package/dist/cli/commands/dump.js.map +1 -0
- package/dist/cli/commands/eval.d.ts +32 -0
- package/dist/cli/commands/eval.js +158 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/index-command.d.ts +17 -0
- package/dist/cli/commands/index-command.js +167 -0
- package/dist/cli/commands/index-command.js.map +1 -0
- package/dist/cli/commands/index.d.ts +16 -0
- package/dist/cli/commands/index.js +17 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init-helpers.d.ts +101 -0
- package/dist/cli/commands/init-helpers.js +397 -0
- package/dist/cli/commands/init-helpers.js.map +1 -0
- package/dist/cli/commands/init.d.ts +19 -0
- package/dist/cli/commands/init.js +251 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +13 -0
- package/dist/cli/commands/list.js +46 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +14 -0
- package/dist/cli/commands/mcp.js +35 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/query.d.ts +14 -0
- package/dist/cli/commands/query.js +86 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/show.d.ts +13 -0
- package/dist/cli/commands/show.js +51 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/status.d.ts +14 -0
- package/dist/cli/commands/status.js +104 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/ui.d.ts +14 -0
- package/dist/cli/commands/ui.js +69 -0
- package/dist/cli/commands/ui.js.map +1 -0
- package/dist/cli/commands/update.d.ts +14 -0
- package/dist/cli/commands/update.js +76 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/format.d.ts +112 -0
- package/dist/cli/format.js +184 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/helpers.d.ts +51 -0
- package/dist/cli/helpers.js +86 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/index.d.ts +28 -0
- package/dist/cli/index.js +104 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/progress.d.ts +39 -0
- package/dist/cli/progress.js +137 -0
- package/dist/cli/progress.js.map +1 -0
- package/dist/cli/types.d.ts +40 -0
- package/dist/cli/types.js +3 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli.d.ts +11 -4
- package/dist/cli.js +9 -1253
- package/dist/cli.js.map +1 -1
- package/dist/content/doc.d.ts +1 -1
- package/dist/content/doc.js +1 -1
- package/dist/content/doc.js.map +1 -1
- package/dist/content/docx.d.ts +1 -1
- package/dist/content/docx.js +1 -1
- package/dist/content/docx.js.map +1 -1
- package/dist/content/excel.d.ts +1 -1
- package/dist/content/excel.js +1 -1
- package/dist/content/excel.js.map +1 -1
- package/dist/content/pdf.d.ts +1 -1
- package/dist/content/pdf.js +1 -1
- package/dist/content/pdf.js.map +1 -1
- package/dist/content/reader.d.ts +3 -1
- package/dist/content/reader.js +42 -10
- package/dist/content/reader.js.map +1 -1
- package/dist/core/bootstrap.d.ts +18 -0
- package/dist/core/bootstrap.js +9 -15
- package/dist/core/bootstrap.js.map +1 -1
- package/dist/core/config.d.ts +144 -0
- package/dist/core/config.js +65 -14
- package/dist/core/config.js.map +1 -1
- package/dist/core/doc-progress.d.ts +15 -0
- package/dist/core/doc-progress.js +61 -0
- package/dist/core/doc-progress.js.map +1 -0
- package/dist/core/fileLogger.d.ts +7 -0
- package/dist/core/fileLogger.js +2 -0
- package/dist/core/fileLogger.js.map +1 -1
- package/dist/core/interfaces.d.ts +52 -1
- package/dist/core/manifest.d.ts +25 -0
- package/dist/core/manifest.js +15 -1
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/provider-defaults.d.ts +8 -0
- package/dist/core/provider-defaults.js +3 -0
- package/dist/core/provider-defaults.js.map +1 -1
- package/dist/core/rag-injection-flag.d.ts +3 -0
- package/dist/core/rag-injection-flag.js +2 -0
- package/dist/core/rag-injection-flag.js.map +1 -1
- package/dist/core/resolve-api-key.d.ts +1 -0
- package/dist/core/resolve-api-key.js +1 -0
- package/dist/core/resolve-api-key.js.map +1 -1
- package/dist/core/runtime-overrides.d.ts +4 -0
- package/dist/core/runtime-overrides.js +4 -1
- package/dist/core/runtime-overrides.js.map +1 -1
- package/dist/describer/anthropic.d.ts +22 -2
- package/dist/describer/anthropic.js +42 -110
- package/dist/describer/anthropic.js.map +1 -1
- package/dist/describer/describer.d.ts +21 -4
- package/dist/describer/describer.js +52 -111
- package/dist/describer/describer.js.map +1 -1
- package/dist/describer/gemini.d.ts +1 -2
- package/dist/describer/gemini.js +20 -113
- package/dist/describer/gemini.js.map +1 -1
- package/dist/describer/shared.d.ts +3 -0
- package/dist/describer/shared.js +19 -0
- package/dist/describer/shared.js.map +1 -0
- package/dist/embedder/factory.d.ts +25 -0
- package/dist/embedder/factory.js +25 -0
- package/dist/embedder/factory.js.map +1 -1
- package/dist/embedder/health.d.ts +10 -0
- package/dist/embedder/health.js +26 -14
- package/dist/embedder/health.js.map +1 -1
- package/dist/embedder/http.d.ts +47 -0
- package/dist/embedder/http.js +61 -3
- package/dist/embedder/http.js.map +1 -1
- package/dist/eval/index.d.ts +6 -0
- package/dist/eval/index.js.map +1 -1
- package/dist/eval/run-token-test.js +1 -5
- package/dist/eval/run-token-test.js.map +1 -1
- package/dist/eval/session-logger.d.ts +5 -0
- package/dist/eval/session-logger.js +4 -0
- package/dist/eval/session-logger.js.map +1 -1
- package/dist/eval/storage.d.ts +9 -0
- package/dist/eval/storage.js +9 -5
- package/dist/eval/storage.js.map +1 -1
- package/dist/eval/token-analysis.d.ts +8 -0
- package/dist/eval/token-analysis.js +6 -2
- package/dist/eval/token-analysis.js.map +1 -1
- package/dist/eval/token-counter.d.ts +1 -3
- package/dist/eval/token-counter.js +4 -5
- package/dist/eval/token-counter.js.map +1 -1
- package/dist/eval/types.d.ts +6 -0
- package/dist/eval/types.js +2 -0
- package/dist/eval/types.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/indexer/description-stage.js +11 -2
- package/dist/indexer/description-stage.js.map +1 -1
- package/dist/indexer/embed-stage.js +0 -8
- package/dist/indexer/embed-stage.js.map +1 -1
- package/dist/indexer/pipeline.d.ts +27 -3
- package/dist/indexer/pipeline.js +314 -143
- package/dist/indexer/pipeline.js.map +1 -1
- package/dist/indexer/stats.d.ts +35 -0
- package/dist/indexer/stats.js +9 -0
- package/dist/indexer/stats.js.map +1 -1
- package/dist/indexer/watch.d.ts +25 -0
- package/dist/indexer/watch.js +21 -0
- package/dist/indexer/watch.js.map +1 -1
- package/dist/indexer/worker.d.ts +90 -2
- package/dist/indexer/worker.js +109 -24
- package/dist/indexer/worker.js.map +1 -1
- package/dist/indexer.d.ts +11 -1
- package/dist/indexer.js +9 -0
- package/dist/indexer.js.map +1 -1
- package/dist/mcp/cli.d.ts +3 -0
- package/dist/mcp/cli.js +1 -0
- package/dist/mcp/cli.js.map +1 -1
- package/dist/mcp/handlers.d.ts +41 -0
- package/dist/mcp/handlers.js +40 -1
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.js +18 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/opencode/create-read-tool.js +1 -0
- package/dist/opencode/create-read-tool.js.map +1 -1
- package/dist/opencode/tools.d.ts +8 -17
- package/dist/opencode/tools.js +74 -109
- package/dist/opencode/tools.js.map +1 -1
- package/dist/plugin-entry.d.ts +6 -0
- package/dist/plugin-entry.js +6 -0
- package/dist/plugin-entry.js.map +1 -1
- package/dist/plugin.d.ts +37 -0
- package/dist/plugin.js +265 -40
- package/dist/plugin.js.map +1 -1
- package/dist/retriever/keyword-index.js +9 -9
- package/dist/retriever/keyword-index.js.map +1 -1
- package/dist/retriever/retriever.js +14 -4
- package/dist/retriever/retriever.js.map +1 -1
- package/dist/tui.d.ts +5 -0
- package/dist/tui.js +100 -12
- package/dist/tui.js.map +1 -1
- package/dist/types/opencode-plugin.d.ts +4 -1
- package/dist/updater.d.ts +23 -1
- package/dist/updater.js +55 -16
- package/dist/updater.js.map +1 -1
- package/dist/vectorstore/factory.d.ts +13 -0
- package/dist/vectorstore/factory.js +13 -0
- package/dist/vectorstore/factory.js.map +1 -1
- package/dist/vectorstore/lancedb.d.ts +78 -1
- package/dist/vectorstore/lancedb.js +195 -21
- package/dist/vectorstore/lancedb.js.map +1 -1
- package/dist/vectorstore/memory.d.ts +5 -0
- package/dist/vectorstore/memory.js +11 -0
- package/dist/vectorstore/memory.js.map +1 -1
- package/dist/watcher.d.ts +24 -0
- package/dist/watcher.js +17 -35
- package/dist/watcher.js.map +1 -1
- package/dist/web/api.d.ts +37 -0
- package/dist/web/api.js +54 -0
- package/dist/web/api.js.map +1 -1
- package/dist/web/server.d.ts +15 -0
- package/dist/web/server.js +14 -0
- package/dist/web/server.js.map +1 -1
- package/dist/web/static.d.ts +8 -0
- package/dist/web/static.js +8 -0
- package/dist/web/static.js.map +1 -1
- package/package.json +11 -15
package/dist/chunker/xml.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { TreeSitterChunker } from "./base.js";
|
|
2
|
+
/**
|
|
3
|
+
* Chunker for XML files (.xml, .csproj, .svg).
|
|
4
|
+
* Uses tree-sitter to parse and split by top-level XML elements.
|
|
5
|
+
*/
|
|
2
6
|
export class XmlChunker extends TreeSitterChunker {
|
|
3
7
|
language = "xml";
|
|
4
8
|
fileExtensions = [".xml", ".csproj", ".svg"];
|
|
@@ -7,5 +11,6 @@ export class XmlChunker extends TreeSitterChunker {
|
|
|
7
11
|
"element",
|
|
8
12
|
]);
|
|
9
13
|
}
|
|
14
|
+
/** Default singleton instance of {@link XmlChunker}. */
|
|
10
15
|
export const xmlChunker = new XmlChunker();
|
|
11
16
|
//# sourceMappingURL=xml.js.map
|
package/dist/chunker/xml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../../src/chunker/xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,OAAO,UAAW,SAAQ,iBAAiB;IACtC,QAAQ,GAAG,KAAK,CAAC;IACjB,cAAc,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,WAAW,GAAG,KAAK,CAAC;IACpB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,SAAS;KACV,CAAC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../../src/chunker/xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,iBAAiB;IACtC,QAAQ,GAAG,KAAK,CAAC;IACjB,cAAc,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,WAAW,GAAG,KAAK,CAAC;IACpB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,SAAS;KACV,CAAC,CAAC;CACJ;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
|
package/dist/chunker/yaml.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { TreeSitterChunker } from "./base.js";
|
|
2
|
+
/**
|
|
3
|
+
* Chunker for YAML files (.yaml, .yml).
|
|
4
|
+
* Uses tree-sitter to parse and split by block mapping pairs and block sequence items.
|
|
5
|
+
*/
|
|
2
6
|
export declare class YamlChunker extends TreeSitterChunker {
|
|
3
7
|
readonly language = "yaml";
|
|
4
8
|
readonly fileExtensions: string[];
|
|
5
9
|
readonly grammarName = "yaml";
|
|
6
10
|
readonly nodeTypes: Set<string>;
|
|
7
11
|
}
|
|
12
|
+
/** Default singleton instance of {@link YamlChunker}. */
|
|
8
13
|
export declare const yamlChunker: YamlChunker;
|
package/dist/chunker/yaml.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { TreeSitterChunker } from "./base.js";
|
|
2
|
+
/**
|
|
3
|
+
* Chunker for YAML files (.yaml, .yml).
|
|
4
|
+
* Uses tree-sitter to parse and split by block mapping pairs and block sequence items.
|
|
5
|
+
*/
|
|
2
6
|
export class YamlChunker extends TreeSitterChunker {
|
|
3
7
|
language = "yaml";
|
|
4
8
|
fileExtensions = [".yaml", ".yml"];
|
|
@@ -8,5 +12,6 @@ export class YamlChunker extends TreeSitterChunker {
|
|
|
8
12
|
"block_sequence_item",
|
|
9
13
|
]);
|
|
10
14
|
}
|
|
15
|
+
/** Default singleton instance of {@link YamlChunker}. */
|
|
11
16
|
export const yamlChunker = new YamlChunker();
|
|
12
17
|
//# sourceMappingURL=yaml.js.map
|
package/dist/chunker/yaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/chunker/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IACvC,QAAQ,GAAG,MAAM,CAAC;IAClB,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,GAAG,MAAM,CAAC;IACrB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,oBAAoB;QACpB,qBAAqB;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/chunker/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IACvC,QAAQ,GAAG,MAAM,CAAC;IAClB,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,GAAG,MAAM,CAAC;IACrB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,oBAAoB;QACpB,qBAAqB;KACtB,CAAC,CAAC;CACJ;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clear` command — removes all indexed vector data from the workspace.
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from "commander";
|
|
5
|
+
/**
|
|
6
|
+
* Register the `clear` command on the given Commander program.
|
|
7
|
+
*
|
|
8
|
+
* Clears all indexed chunks from the vector store with a confirmation prompt.
|
|
9
|
+
*
|
|
10
|
+
* @param program - The Commander `Command` instance to register on.
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerClearCommand(program: Command): void;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clear` command — removes all indexed vector data from the workspace.
|
|
3
|
+
*/
|
|
4
|
+
import fs from "node:fs/promises";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import readline from "node:readline";
|
|
7
|
+
import { c, resolveCliContext, cleanupContext, logCliError, logCliInfo } from "../format.js";
|
|
8
|
+
import { manifestPathFor } from "../../core/manifest.js";
|
|
9
|
+
/**
|
|
10
|
+
* Prompt the user for a yes/no answer via the terminal.
|
|
11
|
+
* Returns `true` for "y", `false` for "n", and `undefined` on EOF.
|
|
12
|
+
*/
|
|
13
|
+
async function confirmPrompt(question) {
|
|
14
|
+
const rl = readline.createInterface({
|
|
15
|
+
input: process.stdin,
|
|
16
|
+
output: process.stdout,
|
|
17
|
+
});
|
|
18
|
+
try {
|
|
19
|
+
const answer = await new Promise((resolve) => {
|
|
20
|
+
rl.question(`${question} [y/N] `, resolve);
|
|
21
|
+
});
|
|
22
|
+
const trimmed = answer.trim().toLowerCase();
|
|
23
|
+
if (trimmed === "y" || trimmed === "yes")
|
|
24
|
+
return true;
|
|
25
|
+
if (trimmed === "n" || trimmed === "no")
|
|
26
|
+
return false;
|
|
27
|
+
return trimmed === "" ? false : undefined;
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
rl.close();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Register the `clear` command on the given Commander program.
|
|
35
|
+
*
|
|
36
|
+
* Clears all indexed chunks from the vector store with a confirmation prompt.
|
|
37
|
+
*
|
|
38
|
+
* @param program - The Commander `Command` instance to register on.
|
|
39
|
+
*/
|
|
40
|
+
export function registerClearCommand(program) {
|
|
41
|
+
program
|
|
42
|
+
.command("clear")
|
|
43
|
+
.description("Clear all indexed data")
|
|
44
|
+
.option("-c, --config <path>", "path to config file")
|
|
45
|
+
.option("-y, --yes", "skip confirmation prompt")
|
|
46
|
+
.action(async (options) => {
|
|
47
|
+
try {
|
|
48
|
+
const cwd = process.cwd();
|
|
49
|
+
let logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
|
|
50
|
+
const ctx = await resolveCliContext(options, logFilePath);
|
|
51
|
+
const { store } = ctx;
|
|
52
|
+
logFilePath = ctx.logFilePath;
|
|
53
|
+
const prevCount = await store.count();
|
|
54
|
+
if (prevCount === 0) {
|
|
55
|
+
logCliInfo(logFilePath, "clear", c.warn("No indexed data to clear."));
|
|
56
|
+
await cleanupContext(ctx);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!options.yes) {
|
|
60
|
+
const ok = await confirmPrompt(`Clear all ${c.num(prevCount)} indexed chunks? This cannot be undone.`);
|
|
61
|
+
if (!ok) {
|
|
62
|
+
logCliInfo(logFilePath, "clear", c.warn("Clear cancelled."));
|
|
63
|
+
await cleanupContext(ctx);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
logCliInfo(logFilePath, "clear", `${c.label("Clearing")} ${c.num(prevCount)} indexed chunks...`);
|
|
68
|
+
await store.clear();
|
|
69
|
+
await fs.unlink(manifestPathFor(ctx.storePath)).catch(() => { });
|
|
70
|
+
logCliInfo(logFilePath, "clear", `${c.success("Done.")} vector database cleared.`);
|
|
71
|
+
await cleanupContext(ctx);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const message = err.message || String(err);
|
|
75
|
+
const logFilePath = path.resolve(process.cwd(), ".opencode", "opencode-rag.log");
|
|
76
|
+
logCliError(logFilePath, "clear", `\nClear failed: ${message}`, err);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=clear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/cli/commands/clear.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,QAAgB;IAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACtD,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;SACpD,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;YACtB,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YAE9B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YAEtC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACtE,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,EAAE,GAAG,MAAM,aAAa,CAC5B,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yCAAyC,CACvE,CAAC;gBACF,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC7D,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;YACH,CAAC;YAED,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACjG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAChE,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YACnF,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;YACjF,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,mBAAmB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `describe-image` command — describes an image file using a configured vision model.
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from "commander";
|
|
5
|
+
/**
|
|
6
|
+
* Register the `describe-image` command on the given Commander program.
|
|
7
|
+
*
|
|
8
|
+
* Loads an image file, resizes it if necessary, encodes it as base64,
|
|
9
|
+
* and sends it to the configured vision provider (Ollama, OpenAI, etc.)
|
|
10
|
+
* for a natural-language description.
|
|
11
|
+
*
|
|
12
|
+
* @param program - The Commander `Command` instance to register on.
|
|
13
|
+
*/
|
|
14
|
+
export declare function registerDescribeImageCommand(program: Command): void;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `describe-image` command — describes an image file using a configured vision model.
|
|
3
|
+
*/
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
+
import { c, resolveCliContext, cleanupContext, logCliError, logCliInfo } from "../format.js";
|
|
7
|
+
/**
|
|
8
|
+
* Register the `describe-image` command on the given Commander program.
|
|
9
|
+
*
|
|
10
|
+
* Loads an image file, resizes it if necessary, encodes it as base64,
|
|
11
|
+
* and sends it to the configured vision provider (Ollama, OpenAI, etc.)
|
|
12
|
+
* for a natural-language description.
|
|
13
|
+
*
|
|
14
|
+
* @param program - The Commander `Command` instance to register on.
|
|
15
|
+
*/
|
|
16
|
+
export function registerDescribeImageCommand(program) {
|
|
17
|
+
program
|
|
18
|
+
.command("describe-image")
|
|
19
|
+
.description("Describe an image file using a vision model")
|
|
20
|
+
.argument("<filePath>", "path to image file")
|
|
21
|
+
.option("-c, --config <path>", "path to config file")
|
|
22
|
+
.action(async (filePath, options) => {
|
|
23
|
+
try {
|
|
24
|
+
const cwd = process.cwd();
|
|
25
|
+
let logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
|
|
26
|
+
const ctx = await resolveCliContext(options, logFilePath);
|
|
27
|
+
const { config } = ctx;
|
|
28
|
+
logFilePath = ctx.logFilePath;
|
|
29
|
+
const resolvedPath = path.isAbsolute(filePath) ? filePath : path.resolve(cwd, filePath);
|
|
30
|
+
if (!existsSync(resolvedPath)) {
|
|
31
|
+
logCliError(logFilePath, "describe-image", `\nFile not found: ${filePath}`, undefined);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
const ext = path.extname(resolvedPath).toLowerCase();
|
|
35
|
+
const { SUPPORTED_IMAGE_EXTENSIONS, createImageVisionProvider, getMimeType } = await import("../../chunker/image.js");
|
|
36
|
+
if (!SUPPORTED_IMAGE_EXTENSIONS.has(ext)) {
|
|
37
|
+
const exts = [...SUPPORTED_IMAGE_EXTENSIONS].join(", ");
|
|
38
|
+
logCliError(logFilePath, "describe-image", `\nUnsupported file extension "${ext}". Supported: ${exts}`, undefined);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
const imageDescriptionConfig = config.imageDescription;
|
|
42
|
+
if (!imageDescriptionConfig?.enabled) {
|
|
43
|
+
logCliError(logFilePath, "describe-image", `\nImage description is not enabled in config. Set imageDescription.enabled to true.`, undefined);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
const { resizeImage } = await import("../../content/image.js");
|
|
47
|
+
logCliInfo(logFilePath, "describe-image", `\n${c.heading("Describing image:")} ${c.file(filePath)}`);
|
|
48
|
+
logCliInfo(logFilePath, "describe-image", ` ${c.label("Provider:")} ${c.value(imageDescriptionConfig.provider)}`);
|
|
49
|
+
logCliInfo(logFilePath, "describe-image", ` ${c.label("Model:")} ${c.value(imageDescriptionConfig.model)}`);
|
|
50
|
+
const buffer = readFileSync(resolvedPath);
|
|
51
|
+
const mimeType = getMimeType(ext);
|
|
52
|
+
const maxDimension = imageDescriptionConfig.resizeMaxDimension ?? 1024;
|
|
53
|
+
const sized = maxDimension > 0 ? await resizeImage(buffer, resolvedPath, maxDimension) : buffer;
|
|
54
|
+
const b64 = sized.toString("base64");
|
|
55
|
+
const provider = createImageVisionProvider(imageDescriptionConfig);
|
|
56
|
+
const description = await provider.describeImage(b64, mimeType, imageDescriptionConfig.prompt);
|
|
57
|
+
logCliInfo(logFilePath, "describe-image", `\n${c.desc(description)}\n`);
|
|
58
|
+
await cleanupContext(ctx);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
const message = err.message || String(err);
|
|
62
|
+
const logFilePath = path.resolve(process.cwd(), ".opencode", "opencode-rag.log");
|
|
63
|
+
logCliError(logFilePath, "describe-image", `\nDescribe image failed: ${message}`, err);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=describe-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"describe-image.js","sourceRoot":"","sources":["../../../src/cli/commands/describe-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `dump` command — dumps all indexed chunks with pagination support.
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from "commander";
|
|
5
|
+
/**
|
|
6
|
+
* Register the `dump` command on the given Commander program.
|
|
7
|
+
*
|
|
8
|
+
* Retrieves chunks from the vector store with optional offset/limit pagination
|
|
9
|
+
* and prints each chunk's file path, line range, language, and content.
|
|
10
|
+
*
|
|
11
|
+
* @param program - The Commander `Command` instance to register on.
|
|
12
|
+
*/
|
|
13
|
+
export declare function registerDumpCommand(program: Command): void;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `dump` command — dumps all indexed chunks with pagination support.
|
|
3
|
+
*/
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { c, resolveCliContext, cleanupContext, logCliError, logCliInfo } from "../format.js";
|
|
6
|
+
/**
|
|
7
|
+
* Register the `dump` command on the given Commander program.
|
|
8
|
+
*
|
|
9
|
+
* Retrieves chunks from the vector store with optional offset/limit pagination
|
|
10
|
+
* and prints each chunk's file path, line range, language, and content.
|
|
11
|
+
*
|
|
12
|
+
* @param program - The Commander `Command` instance to register on.
|
|
13
|
+
*/
|
|
14
|
+
export function registerDumpCommand(program) {
|
|
15
|
+
program
|
|
16
|
+
.command("dump")
|
|
17
|
+
.description("Dump all indexed chunks")
|
|
18
|
+
.option("-c, --config <path>", "path to config file")
|
|
19
|
+
.option("--offset <number>", "start at chunk offset", "0")
|
|
20
|
+
.option("--limit <number>", "max number of chunks to dump", "25")
|
|
21
|
+
.action(async (options) => {
|
|
22
|
+
try {
|
|
23
|
+
const cwd = process.cwd();
|
|
24
|
+
let logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
|
|
25
|
+
const ctx = await resolveCliContext(options, logFilePath);
|
|
26
|
+
const { store } = ctx;
|
|
27
|
+
logFilePath = ctx.logFilePath;
|
|
28
|
+
const total = await store.count();
|
|
29
|
+
if (total === 0) {
|
|
30
|
+
logCliInfo(logFilePath, "dump", `${c.warn("No indexed chunks found.")} Run 'opencode-rag index' first.`);
|
|
31
|
+
await cleanupContext(ctx);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const offset = parseInt(options.offset ?? "0", 10);
|
|
35
|
+
const limit = parseInt(options.limit ?? "25", 10);
|
|
36
|
+
const chunks = await store.getChunks(offset, limit);
|
|
37
|
+
logCliInfo(logFilePath, "dump", `\n${c.heading("Chunks")} ${c.value(String(offset + 1))}${c.label("-")}${c.value(String(offset + chunks.length))} of ${c.num(total)}:\n`);
|
|
38
|
+
for (const chunk of chunks) {
|
|
39
|
+
logCliInfo(logFilePath, "dump", ` ${c.file(chunk.filePath)}:${c.value(String(chunk.startLine))}${c.label("-")}${c.value(String(chunk.endLine))} ${c.label("(")}${c.lang(chunk.language)}${c.label(")")}`);
|
|
40
|
+
logCliInfo(logFilePath, "dump", ` ${chunk.content}\n`);
|
|
41
|
+
}
|
|
42
|
+
if (offset + limit < total) {
|
|
43
|
+
logCliInfo(logFilePath, "dump", ` ${c.dim(`... ${total - offset - limit} more (use --offset ${offset + limit} to continue)`)}`);
|
|
44
|
+
}
|
|
45
|
+
await cleanupContext(ctx);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
const message = err.message || String(err);
|
|
49
|
+
const logFilePath = path.resolve(process.cwd(), ".opencode", "opencode-rag.log");
|
|
50
|
+
logCliError(logFilePath, "dump", `\nDump failed: ${message}`, err);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=dump.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dump.js","sourceRoot":"","sources":["../../../src/cli/commands/dump.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `eval:sessions`, `eval:analyze`, `eval:compare` commands —
|
|
3
|
+
* evaluation session listing, per-session token analysis, and cross-session comparison.
|
|
4
|
+
*/
|
|
5
|
+
import type { Command } from "commander";
|
|
6
|
+
/**
|
|
7
|
+
* Register the `eval:sessions` command on the given Commander program.
|
|
8
|
+
*
|
|
9
|
+
* Lists all logged evaluation sessions with their query counts,
|
|
10
|
+
* token usage, RAG context tokens, and estimated cost.
|
|
11
|
+
*
|
|
12
|
+
* @param program - The Commander `Command` instance to register on.
|
|
13
|
+
*/
|
|
14
|
+
export declare function registerEvalSessionsCommand(program: Command): void;
|
|
15
|
+
/**
|
|
16
|
+
* Register the `eval:analyze <sessionID>` command on the given Commander program.
|
|
17
|
+
*
|
|
18
|
+
* Analyzes token usage for a specific evaluation session, including input/output
|
|
19
|
+
* tokens, reasoning tokens, cache reads, cost, and RAG impact projections.
|
|
20
|
+
*
|
|
21
|
+
* @param program - The Commander `Command` instance to register on.
|
|
22
|
+
*/
|
|
23
|
+
export declare function registerEvalAnalyzeCommand(program: Command): void;
|
|
24
|
+
/**
|
|
25
|
+
* Register the `eval:compare <sessionA> <sessionB>` command on the given Commander program.
|
|
26
|
+
*
|
|
27
|
+
* Compares token usage between two evaluation sessions (e.g. RAG-on vs RAG-off)
|
|
28
|
+
* and prints a formatted comparison report with deltas and percentage changes.
|
|
29
|
+
*
|
|
30
|
+
* @param program - The Commander `Command` instance to register on.
|
|
31
|
+
*/
|
|
32
|
+
export declare function registerEvalCompareCommand(program: Command): void;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `eval:sessions`, `eval:analyze`, `eval:compare` commands —
|
|
3
|
+
* evaluation session listing, per-session token analysis, and cross-session comparison.
|
|
4
|
+
*/
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { c, resolveCliContext } from "../format.js";
|
|
7
|
+
/**
|
|
8
|
+
* Register the `eval:sessions` command on the given Commander program.
|
|
9
|
+
*
|
|
10
|
+
* Lists all logged evaluation sessions with their query counts,
|
|
11
|
+
* token usage, RAG context tokens, and estimated cost.
|
|
12
|
+
*
|
|
13
|
+
* @param program - The Commander `Command` instance to register on.
|
|
14
|
+
*/
|
|
15
|
+
export function registerEvalSessionsCommand(program) {
|
|
16
|
+
program
|
|
17
|
+
.command("eval:sessions")
|
|
18
|
+
.description("List all logged evaluation sessions")
|
|
19
|
+
.option("-c, --config <path>", "path to config file")
|
|
20
|
+
.action(async (options) => {
|
|
21
|
+
try {
|
|
22
|
+
const cwd = process.cwd();
|
|
23
|
+
const logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
|
|
24
|
+
const ctx = await resolveCliContext(options, logFilePath);
|
|
25
|
+
const { storePath } = ctx;
|
|
26
|
+
const { listSessions } = await import("../../eval/storage.js");
|
|
27
|
+
const sessions = listSessions(storePath);
|
|
28
|
+
if (sessions.length === 0) {
|
|
29
|
+
console.log(c.warn("\nNo evaluation sessions found. Sessions are logged automatically during OpenCode usage.\n"));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
console.log(`\n${c.heading("Evaluation Sessions")} (${sessions.length})\n`);
|
|
33
|
+
console.log(" ID Queries Input Tok RAG Ctx Cost");
|
|
34
|
+
console.log(" " + "─".repeat(64));
|
|
35
|
+
for (const s of sessions) {
|
|
36
|
+
const id = (s.sessionID ?? "").padEnd(28);
|
|
37
|
+
const queries = String(s.messageCount).padStart(6);
|
|
38
|
+
const input = String(s.totalTokens.input).padStart(9);
|
|
39
|
+
const ragCtx = String(s.ragContextTokens).padStart(8);
|
|
40
|
+
const cost = `$${s.totalCost.toFixed(4)}`.padStart(7);
|
|
41
|
+
console.log(` ${id} ${queries} ${input} ${ragCtx} ${cost}`);
|
|
42
|
+
}
|
|
43
|
+
console.log();
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
const message = err.message || String(err);
|
|
47
|
+
console.error(c.error(`\nFailed: ${message}\n`));
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Register the `eval:analyze <sessionID>` command on the given Commander program.
|
|
54
|
+
*
|
|
55
|
+
* Analyzes token usage for a specific evaluation session, including input/output
|
|
56
|
+
* tokens, reasoning tokens, cache reads, cost, and RAG impact projections.
|
|
57
|
+
*
|
|
58
|
+
* @param program - The Commander `Command` instance to register on.
|
|
59
|
+
*/
|
|
60
|
+
export function registerEvalAnalyzeCommand(program) {
|
|
61
|
+
program
|
|
62
|
+
.command("eval:analyze <sessionID>")
|
|
63
|
+
.description("Analyze token usage for a specific session")
|
|
64
|
+
.option("-c, --config <path>", "path to config file")
|
|
65
|
+
.action(async (sessionID, options) => {
|
|
66
|
+
try {
|
|
67
|
+
const cwd = process.cwd();
|
|
68
|
+
const logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
|
|
69
|
+
const ctx = await resolveCliContext(options, logFilePath);
|
|
70
|
+
const { storePath } = ctx;
|
|
71
|
+
const { analyzeTokenUsage } = await import("../../eval/token-analysis.js");
|
|
72
|
+
const analysis = analyzeTokenUsage(storePath, sessionID);
|
|
73
|
+
if (analysis.queryCount === 0) {
|
|
74
|
+
console.log(c.warn(`\nNo messages found for session '${sessionID}'.\n`));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
console.log(`\n${c.heading("Token Analysis")} — ${c.value(sessionID)}\n`);
|
|
78
|
+
console.log(` Queries: ${analysis.queryCount}`);
|
|
79
|
+
console.log(` Input tokens: ${c.num(analysis.totals.inputTokens.toLocaleString())}`);
|
|
80
|
+
console.log(` Output tokens: ${c.num(analysis.totals.outputTokens.toLocaleString())}`);
|
|
81
|
+
console.log(` Reasoning tokens: ${c.num(analysis.totals.reasoningTokens.toLocaleString())}`);
|
|
82
|
+
console.log(` Cache read: ${c.num(analysis.totals.cacheRead.toLocaleString())}`);
|
|
83
|
+
console.log(` Cost: ${c.num(`$${analysis.totals.cost.toFixed(4)}`)}`);
|
|
84
|
+
console.log();
|
|
85
|
+
console.log(` ${c.heading("RAG Impact")}`);
|
|
86
|
+
console.log(` Context injected: ${c.num(analysis.totals.ragContextTokens.toLocaleString())} tokens`);
|
|
87
|
+
console.log(` System guidance: ${c.num(analysis.totals.systemGuidanceTokens.toLocaleString())} tokens`);
|
|
88
|
+
console.log(` Read calls: ${c.num(analysis.totals.readToolCalls)}`);
|
|
89
|
+
console.log(` RAG tool calls: ${c.num(analysis.totals.ragToolCalls)}`);
|
|
90
|
+
console.log();
|
|
91
|
+
console.log(` ${c.heading("Projection")}`);
|
|
92
|
+
console.log(` Tokens with RAG: ${c.num(analysis.estimates.tokensWithRAG.toLocaleString())}`);
|
|
93
|
+
console.log(` Tokens without RAG: ${c.num(analysis.estimates.tokensWithoutRAG.toLocaleString())}`);
|
|
94
|
+
const savingsColor = analysis.estimates.netSavings > 0 ? c.success : c.warn;
|
|
95
|
+
console.log(` Net savings: ${savingsColor(`${analysis.estimates.netSavings > 0 ? "+" : ""}${analysis.estimates.netSavings.toLocaleString()} tokens (${analysis.estimates.percentSavings}%)`)}`);
|
|
96
|
+
console.log();
|
|
97
|
+
if (analysis.breakdowns.length > 0) {
|
|
98
|
+
console.log(` ${c.heading("Per-Query Breakdown")}`);
|
|
99
|
+
console.log(" # Input RAG ctx Reads RAG tools Score");
|
|
100
|
+
console.log(" " + "─".repeat(52));
|
|
101
|
+
for (let i = 0; i < analysis.breakdowns.length; i++) {
|
|
102
|
+
const b = analysis.breakdowns[i];
|
|
103
|
+
const num = String(i + 1).padStart(3);
|
|
104
|
+
const input = String(b.inputTokens).padStart(7);
|
|
105
|
+
const ctx = String(b.ragContextTokens).padStart(7);
|
|
106
|
+
const reads = String(b.readToolCalls).padStart(5);
|
|
107
|
+
const tools = String(b.ragToolCalls).padStart(9);
|
|
108
|
+
const score = b.ragTopScore.toFixed(2);
|
|
109
|
+
console.log(` ${num} ${input} ${ctx} ${reads} ${tools} ${score}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
console.log();
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
const message = err.message || String(err);
|
|
116
|
+
console.error(c.error(`\nFailed: ${message}\n`));
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Register the `eval:compare <sessionA> <sessionB>` command on the given Commander program.
|
|
123
|
+
*
|
|
124
|
+
* Compares token usage between two evaluation sessions (e.g. RAG-on vs RAG-off)
|
|
125
|
+
* and prints a formatted comparison report with deltas and percentage changes.
|
|
126
|
+
*
|
|
127
|
+
* @param program - The Commander `Command` instance to register on.
|
|
128
|
+
*/
|
|
129
|
+
export function registerEvalCompareCommand(program) {
|
|
130
|
+
program
|
|
131
|
+
.command("eval:compare <sessionA> <sessionB>")
|
|
132
|
+
.description("Compare token usage between two sessions (e.g. RAG-on vs RAG-off)")
|
|
133
|
+
.option("-c, --config <path>", "path to config file")
|
|
134
|
+
.action(async (sessionA, sessionB, options) => {
|
|
135
|
+
try {
|
|
136
|
+
const cwd = process.cwd();
|
|
137
|
+
const logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
|
|
138
|
+
const ctx = await resolveCliContext(options, logFilePath);
|
|
139
|
+
const { storePath } = ctx;
|
|
140
|
+
const { analyzeTokenUsage, compareTokenAnalyses, formatTokenReport } = await import("../../eval/token-analysis.js");
|
|
141
|
+
const a = analyzeTokenUsage(storePath, sessionA);
|
|
142
|
+
const b = analyzeTokenUsage(storePath, sessionB);
|
|
143
|
+
if (a.queryCount === 0 && b.queryCount === 0) {
|
|
144
|
+
console.log(c.warn(`\nNo messages found for sessions '${sessionA}' or '${sessionB}'.\n`));
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const comparison = compareTokenAnalyses(a, b);
|
|
148
|
+
const report = formatTokenReport(a, b, comparison);
|
|
149
|
+
console.log(report);
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
const message = err.message || String(err);
|
|
153
|
+
console.error(c.error(`\nFailed: ${message}\n`));
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=eval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../src/cli/commands/eval.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `index` command — indexes workspace files into the vector database.
|
|
3
|
+
*
|
|
4
|
+
* Supports incremental indexing (only changed files), full rebuilds (`--force`),
|
|
5
|
+
* and watch mode (`--watch`) with chokidar-based file monitoring.
|
|
6
|
+
*/
|
|
7
|
+
import type { Command } from "commander";
|
|
8
|
+
/**
|
|
9
|
+
* Register the `index` command on the given Commander program.
|
|
10
|
+
*
|
|
11
|
+
* Scans the workspace, chunks changed/new files, generates embeddings,
|
|
12
|
+
* and stores vectors in LanceDB. In watch mode, monitors file changes
|
|
13
|
+
* via chokidar and triggers debounced re-indexing.
|
|
14
|
+
*
|
|
15
|
+
* @param program - The Commander `Command` instance to register on.
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerIndexCommand(program: Command): void;
|