@dreb/semantic-search 2.34.3 → 2.36.0
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/.claude-plugin/plugin.json +1 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +4 -1
- package/dist/format.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "semantic-search",
|
|
3
3
|
"description": "Semantic codebase search — natural language queries over code and docs using embeddings, tree-sitter parsing, and POEM multi-signal ranking",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.36.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Drew Brereton"
|
|
7
7
|
},
|
package/dist/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAwC7D"}
|
package/dist/format.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
/** Format search results into a human-readable numbered list. */
|
|
2
|
+
function splitLogicalLines(text) {
|
|
3
|
+
return text.replace(/\r\n/g, "\n").replace(/\r/g, "\n").split("\n");
|
|
4
|
+
}
|
|
2
5
|
export function formatResults(results) {
|
|
3
6
|
if (results.length === 0)
|
|
4
7
|
return "No results found.";
|
|
@@ -20,7 +23,7 @@ export function formatResults(results) {
|
|
|
20
23
|
lines.push(` scores: ${topScores}`);
|
|
21
24
|
}
|
|
22
25
|
// Content preview (first 3 lines)
|
|
23
|
-
const contentLines = chunk.content
|
|
26
|
+
const contentLines = splitLogicalLines(chunk.content);
|
|
24
27
|
const previewLines = contentLines.slice(0, 3);
|
|
25
28
|
for (const line of previewLines) {
|
|
26
29
|
const trimmed = line.length > 120 ? `${line.slice(0, 117)}...` : line;
|
package/dist/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAIjE,MAAM,UAAU,aAAa,CAAC,OAAuB;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAErD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAE5B,4CAA4C;QAC5C,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACpG,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAE1E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,GAAG,CAAC,CAAC;QAEtE,gDAAgD;QAChD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;aAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,SAAS,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,kCAAkC;QAClC,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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","sourcesContent":["/** Format search results into a human-readable numbered list. */\n\nimport type { SearchResult } from \"./types.js\";\n\nfunction splitLogicalLines(text: string): string[] {\n\treturn text.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\").split(\"\\n\");\n}\n\nexport function formatResults(results: SearchResult[]): string {\n\tif (results.length === 0) return \"No results found.\";\n\n\tconst lines: string[] = [];\n\tfor (let i = 0; i < results.length; i++) {\n\t\tconst r = results[i];\n\t\tconst { chunk, scores } = r;\n\n\t\t// Header line with file path and line range\n\t\tconst lineRange =\n\t\t\tchunk.startLine === chunk.endLine ? `L${chunk.startLine}` : `L${chunk.startLine}-${chunk.endLine}`;\n\t\tconst kindLabel = chunk.name ? `${chunk.kind} ${chunk.name}` : chunk.kind;\n\n\t\tlines.push(`${i + 1}. ${chunk.filePath}:${lineRange} (${kindLabel})`);\n\n\t\t// Score summary — show top contributing metrics\n\t\tconst topScores = Object.entries(scores)\n\t\t\t.filter(([, v]) => v > 0.01)\n\t\t\t.sort(([, a], [, b]) => b - a)\n\t\t\t.map(([k, v]) => `${k}=${v.toFixed(2)}`)\n\t\t\t.join(\" \");\n\t\tif (topScores) {\n\t\t\tlines.push(` scores: ${topScores}`);\n\t\t}\n\n\t\t// Content preview (first 3 lines)\n\t\tconst contentLines = splitLogicalLines(chunk.content);\n\t\tconst previewLines = contentLines.slice(0, 3);\n\t\tfor (const line of previewLines) {\n\t\t\tconst trimmed = line.length > 120 ? `${line.slice(0, 117)}...` : line;\n\t\t\tlines.push(` ${trimmed}`);\n\t\t}\n\t\tif (contentLines.length > 3) {\n\t\t\tlines.push(` ... (${contentLines.length - 3} more lines)`);\n\t\t}\n\n\t\tif (i < results.length - 1) lines.push(\"\");\n\t}\n\n\treturn lines.join(\"\\n\");\n}\n"]}
|