skill-creator 0.0.0 → 1.0.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/README.md +148 -19
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +265 -260
- package/dist/cli.js.map +1 -1
- package/dist/commands/addContent.d.ts +5 -0
- package/dist/commands/addContent.d.ts.map +1 -0
- package/dist/commands/addContent.js +74 -0
- package/dist/commands/addContent.js.map +1 -0
- package/dist/commands/buildIndex.d.ts +5 -0
- package/dist/commands/buildIndex.d.ts.map +1 -0
- package/dist/commands/buildIndex.js +17 -0
- package/dist/commands/buildIndex.js.map +1 -0
- package/dist/commands/downloadContext7.d.ts +5 -0
- package/dist/commands/downloadContext7.d.ts.map +1 -0
- package/dist/commands/downloadContext7.js +62 -0
- package/dist/commands/downloadContext7.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +89 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/initCc.d.ts +5 -0
- package/dist/commands/initCc.d.ts.map +1 -0
- package/dist/commands/initCc.js +26 -0
- package/dist/commands/initCc.js.map +1 -0
- package/dist/commands/listContent.d.ts +5 -0
- package/dist/commands/listContent.d.ts.map +1 -0
- package/dist/commands/listContent.js +35 -0
- package/dist/commands/listContent.js.map +1 -0
- package/dist/commands/searchContent.d.ts +5 -0
- package/dist/commands/searchContent.d.ts.map +1 -0
- package/dist/commands/searchContent.js +98 -0
- package/dist/commands/searchContent.js.map +1 -0
- package/dist/commands/shared.d.ts +23 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +92 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/updateContext7.d.ts +5 -0
- package/dist/commands/updateContext7.d.ts.map +1 -0
- package/dist/commands/updateContext7.js +28 -0
- package/dist/commands/updateContext7.js.map +1 -0
- package/dist/core/autoSearchAdapter.d.ts +42 -0
- package/dist/core/autoSearchAdapter.d.ts.map +1 -0
- package/dist/core/autoSearchAdapter.js +116 -0
- package/dist/core/autoSearchAdapter.js.map +1 -0
- package/dist/core/chromaLocalSearch.d.ts +26 -0
- package/dist/core/chromaLocalSearch.d.ts.map +1 -0
- package/dist/core/chromaLocalSearch.js +212 -0
- package/dist/core/chromaLocalSearch.js.map +1 -0
- package/dist/core/chromaLocalSimple.d.ts +24 -0
- package/dist/core/chromaLocalSimple.d.ts.map +1 -0
- package/dist/core/chromaLocalSimple.js +216 -0
- package/dist/core/chromaLocalSimple.js.map +1 -0
- package/dist/core/chromaSearchAdapter.d.ts +86 -0
- package/dist/core/chromaSearchAdapter.d.ts.map +1 -0
- package/dist/core/chromaSearchAdapter.js +477 -0
- package/dist/core/chromaSearchAdapter.js.map +1 -0
- package/dist/core/chromaSearchImproved.d.ts +29 -0
- package/dist/core/chromaSearchImproved.d.ts.map +1 -0
- package/dist/core/chromaSearchImproved.js +259 -0
- package/dist/core/chromaSearchImproved.js.map +1 -0
- package/dist/core/chromaServerManager.d.ts +64 -0
- package/dist/core/chromaServerManager.d.ts.map +1 -0
- package/dist/core/chromaServerManager.js +186 -0
- package/dist/core/chromaServerManager.js.map +1 -0
- package/dist/core/contentManager.d.ts +1 -0
- package/dist/core/contentManager.d.ts.map +1 -1
- package/dist/core/contentManager.js +75 -21
- package/dist/core/contentManager.js.map +1 -1
- package/dist/core/fuseSearch.d.ts +25 -0
- package/dist/core/fuseSearch.d.ts.map +1 -0
- package/dist/core/fuseSearch.js +198 -0
- package/dist/core/fuseSearch.js.map +1 -0
- package/dist/core/fuzzySearch.d.ts +66 -0
- package/dist/core/fuzzySearch.d.ts.map +1 -0
- package/dist/core/fuzzySearch.js +271 -0
- package/dist/core/fuzzySearch.js.map +1 -0
- package/dist/core/fuzzySearchAdapter.d.ts +33 -0
- package/dist/core/fuzzySearchAdapter.d.ts.map +1 -0
- package/dist/core/fuzzySearchAdapter.js +185 -0
- package/dist/core/fuzzySearchAdapter.js.map +1 -0
- package/dist/core/portUtils.d.ts +51 -0
- package/dist/core/portUtils.d.ts.map +1 -0
- package/dist/core/portUtils.js +120 -0
- package/dist/core/portUtils.js.map +1 -0
- package/dist/core/runScript.d.ts +1 -1
- package/dist/core/runScript.d.ts.map +1 -1
- package/dist/core/runScript.js +27 -210
- package/dist/core/runScript.js.map +1 -1
- package/dist/core/searchAdapter.d.ts +48 -0
- package/dist/core/searchAdapter.d.ts.map +1 -0
- package/dist/core/searchAdapter.js +6 -0
- package/dist/core/searchAdapter.js.map +1 -0
- package/dist/core/searchEngineFactory.d.ts +30 -0
- package/dist/core/searchEngineFactory.d.ts.map +1 -0
- package/dist/core/searchEngineFactory.js +41 -0
- package/dist/core/searchEngineFactory.js.map +1 -0
- package/dist/core/simpleLocalSearch.d.ts +50 -0
- package/dist/core/simpleLocalSearch.d.ts.map +1 -0
- package/dist/core/simpleLocalSearch.js +406 -0
- package/dist/core/simpleLocalSearch.js.map +1 -0
- package/dist/core/skillCreator.d.ts +0 -2
- package/dist/core/skillCreator.d.ts.map +1 -1
- package/dist/core/skillCreator.js +20 -92
- package/dist/core/skillCreator.js.map +1 -1
- package/dist/core/unifiedSearch.d.ts +57 -11
- package/dist/core/unifiedSearch.d.ts.map +1 -1
- package/dist/core/unifiedSearch.js +88 -29
- package/dist/core/unifiedSearch.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/search_format/enhancedFormatter.d.ts +109 -0
- package/dist/search_format/enhancedFormatter.d.ts.map +1 -0
- package/dist/search_format/enhancedFormatter.js +262 -0
- package/dist/search_format/enhancedFormatter.js.map +1 -0
- package/dist/search_format/index.d.ts +10 -0
- package/dist/search_format/index.d.ts.map +1 -0
- package/dist/search_format/index.js +22 -0
- package/dist/search_format/index.js.map +1 -0
- package/dist/search_format/listFormatter.d.ts +16 -0
- package/dist/search_format/listFormatter.d.ts.map +1 -0
- package/dist/search_format/listFormatter.js +51 -0
- package/dist/search_format/listFormatter.js.map +1 -0
- package/dist/search_format/types.d.ts +69 -0
- package/dist/search_format/types.d.ts.map +1 -0
- package/dist/search_format/types.js +5 -0
- package/dist/search_format/types.js.map +1 -0
- package/dist/test/testFuzzy.d.ts +3 -0
- package/dist/test/testFuzzy.d.ts.map +1 -0
- package/dist/test/testFuzzy.js +72 -0
- package/dist/test/testFuzzy.js.map +1 -0
- package/dist/test-fuzzy.d.ts +6 -0
- package/dist/test-fuzzy.d.ts.map +1 -0
- package/dist/test-fuzzy.js +65 -0
- package/dist/test-fuzzy.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/package.d.ts +17 -0
- package/dist/utils/package.d.ts.map +1 -1
- package/dist/utils/package.js +51 -14
- package/dist/utils/package.js.map +1 -1
- package/package.json +9 -8
- package/templates/skill-creator.md +65 -153
- package/templates/skill-creator.zh-CN.md +93 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhancedFormatter.js","sourceRoot":"","sources":["../../src/search_format/enhancedFormatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IAC5B,OAAO;QACL,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,cAAc;QACZ,OAAO,6DAA6D,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,OAAuB,EAAE,OAA0B;QACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,mCAAmC;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAE5D,2CAA2C;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;QAE7E,gCAAgC;QAChC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAE/C,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,gBAAgB;gBACzB,WAAW;gBACX,QAAQ,EAAE,KAAK;aAChB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,OAAuB;QACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAA;QAClE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAEpC,2BAA2B;QAC3B,IAAI,oBAA4B,CAAA;QAEhC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,8BAA8B;YAC9B,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAC5C,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACtD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,qBAAqB;YACpE,oBAAoB;gBAClB,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAA;QAC7E,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;QAElF,OAAO,CAAC,GAAG,CACT,uBAAuB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC/I,CAAA;QAED,OAAO;YACL,QAAQ;YACR,YAAY;YACZ,oBAAoB;SACrB,CAAA;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,OAAuB,EACvB,cAA+D,EAC/D,OAA0B;QAE1B,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAA;QACzD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;QAE7B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,MAAM,cAAc,GAAG,MAAiC,CAAA;YACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YAE1B,cAAc;YACd,IAAI,WAA+D,CAAA;YACnE,IAAI,WAA+B,CAAA;YACnC,IAAI,OAA2B,CAAA;YAE/B,OAAO,CAAC,GAAG,CACT,0BAA0B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACvI,CAAA;YAED,0BAA0B;YAC1B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvB,uBAAuB;gBACvB,WAAW,GAAG,MAAM,CAAA;gBACpB,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBACzD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;YAC9C,CAAC;iBAAM,IAAI,KAAK,IAAI,oBAAoB,EAAE,CAAC;gBACzC,0BAA0B;gBAC1B,WAAW,GAAG,SAAS,CAAA;gBACvB,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBACpD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACN,uBAAuB;gBACvB,WAAW,GAAG,eAAe,CAAA;gBAC7B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;YACzD,CAAC;YAED,SAAS;YACT,cAAc,CAAC,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YAEnE,UAAU;YACV,cAAc,CAAC,QAAQ,GAAG;gBACxB,GAAG,MAAM,CAAC,QAAQ;gBAClB,WAAW;gBACX,QAAQ;gBACR,YAAY,EAAE,cAAc,CAAC,YAAY;aAC1C,CAAA;YAED,IAAI,WAAW;gBAAE,cAAc,CAAC,WAAW,GAAG,WAAW,CAAA;YACzD,IAAI,OAAO;gBAAE,cAAc,CAAC,OAAO,GAAG,OAAO,CAAA;YAE7C,OAAO,cAAc,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,MAA+B,EAAE,OAA0B;QAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAA;QACxC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAA;QAEjD,gBAAgB;QAChB,MAAM,SAAS,GAAG,eAAe,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,oBAAoB,aAAa,MAAM,CAAA;QAEvG,OAAO,CAAC,GAAG,CACT,yBAAyB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,mBAAmB,aAAa,EAAE,CAC1F,CAAA;QAED,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;gBACnE,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAA;YAEpD,KAAK,SAAS;gBACZ,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC9D,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAA;YAEhD,KAAK,eAAe;gBAClB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;gBACzB,OAAO,GAAG,SAAS,yCAAyC,CAAA;YAE9D;gBACE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;gBAC7B,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;QACrF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,MAA+B;QACpD,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,MAAM;gBACT,OAAO,cAAc,CAAA;YACvB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB;gBACE,OAAO,eAAe,CAAA;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,OAAe;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,WAAW,GAAa,EAAE,CAAA;QAEhC,oDAAoD;QACpD,MAAM,aAAa,GAAa,EAAE,CAAA;QAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC/C,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;YACrC,WAAW,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;YAC3C,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEzC,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,eAAe,EAAE,WAAW,CAAC,CAAA;IACvE,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAe,EAAE,GAAW,EAAE,WAAoB;QACpE,IAAI,GAAG,KAAK,eAAe,IAAI,WAAW,EAAE,CAAC;YAC3C,OAAO,IAAI,GAAG,kBAAkB,WAAW,OAAO,OAAO,OAAO,GAAG,GAAG,CAAA;QACxE,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;YACxC,OAAO,IAAI,GAAG,WAAW,KAAK,OAAO,OAAO,OAAO,GAAG,GAAG,CAAA;QAC3D,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search result formatting module
|
|
3
|
+
* Provides various formatting options for search results
|
|
4
|
+
*/
|
|
5
|
+
export type { FormattableSearchResult, FormattingOptions, FormattedResult, SearchFormatter } from './types.js';
|
|
6
|
+
export { ListFormatter } from './listFormatter.js';
|
|
7
|
+
export { EnhancedFormatter } from './enhancedFormatter.js';
|
|
8
|
+
import type { SearchFormatter } from './types.js';
|
|
9
|
+
export declare function createFormatter(type: 'list' | 'enhanced'): SearchFormatter;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search_format/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAO1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,eAAe,CAS1E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search result formatting module
|
|
3
|
+
* Provides various formatting options for search results
|
|
4
|
+
*/
|
|
5
|
+
export { ListFormatter } from './listFormatter.js';
|
|
6
|
+
export { EnhancedFormatter } from './enhancedFormatter.js';
|
|
7
|
+
/**
|
|
8
|
+
* Factory function to create appropriate formatter
|
|
9
|
+
*/
|
|
10
|
+
import { ListFormatter } from './listFormatter.js';
|
|
11
|
+
import { EnhancedFormatter } from './enhancedFormatter.js';
|
|
12
|
+
export function createFormatter(type) {
|
|
13
|
+
switch (type) {
|
|
14
|
+
case 'list':
|
|
15
|
+
return new ListFormatter();
|
|
16
|
+
case 'enhanced':
|
|
17
|
+
return new EnhancedFormatter();
|
|
18
|
+
default:
|
|
19
|
+
throw new Error(`Unknown formatter type: ${type}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search_format/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG1D,MAAM,UAAU,eAAe,CAAC,IAAyB;IACvD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,aAAa,EAAE,CAAA;QAC5B,KAAK,UAAU;YACb,OAAO,IAAI,iBAAiB,EAAE,CAAA;QAChC;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple list formatter for search results
|
|
3
|
+
* Shows basic information with minimal preview
|
|
4
|
+
*/
|
|
5
|
+
import type { SearchResult, FormattingOptions, FormattedResult, SearchFormatter } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* List formatter - simple, clean display with basic preview
|
|
8
|
+
*/
|
|
9
|
+
export declare class ListFormatter implements SearchFormatter {
|
|
10
|
+
getName(): string;
|
|
11
|
+
getDescription(): string;
|
|
12
|
+
format(results: SearchResult[], options: FormattingOptions): FormattedResult[];
|
|
13
|
+
private getRelativePath;
|
|
14
|
+
private createPreview;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=listFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listFormatter.d.ts","sourceRoot":"","sources":["../../src/search_format/listFormatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAA;AAGnB;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIxB,MAAM,CACJ,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,iBAAiB,GACzB,eAAe,EAAE;IA6BpB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;CAQtB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple list formatter for search results
|
|
3
|
+
* Shows basic information with minimal preview
|
|
4
|
+
*/
|
|
5
|
+
import { relative } from 'node:path';
|
|
6
|
+
/**
|
|
7
|
+
* List formatter - simple, clean display with basic preview
|
|
8
|
+
*/
|
|
9
|
+
export class ListFormatter {
|
|
10
|
+
getName() {
|
|
11
|
+
return 'list';
|
|
12
|
+
}
|
|
13
|
+
getDescription() {
|
|
14
|
+
return 'Simple list format with basic preview';
|
|
15
|
+
}
|
|
16
|
+
format(results, options) {
|
|
17
|
+
const maxPreviewLength = options.maxPreviewLength || 200;
|
|
18
|
+
return results.map((result, index) => {
|
|
19
|
+
const formattableResult = result;
|
|
20
|
+
const relativePath = this.getRelativePath(formattableResult, options.skillPath);
|
|
21
|
+
// Extract content for preview
|
|
22
|
+
let previewContent = result.content;
|
|
23
|
+
if (formattableResult.fullContent) {
|
|
24
|
+
// Extract original content from <content lines="N">...</content> format
|
|
25
|
+
const match = formattableResult.fullContent.match(/^<content lines="\d+">\n(.*)\n<\/content>$/s);
|
|
26
|
+
if (match) {
|
|
27
|
+
previewContent = match[1];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Create preview
|
|
31
|
+
const preview = this.createPreview(previewContent, maxPreviewLength);
|
|
32
|
+
return {
|
|
33
|
+
result: formattableResult,
|
|
34
|
+
content: preview,
|
|
35
|
+
contentType: 'preview',
|
|
36
|
+
priority: index
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
getRelativePath(result, skillPath) {
|
|
41
|
+
return result.relativePath || relative(skillPath, result.file_path);
|
|
42
|
+
}
|
|
43
|
+
createPreview(content, maxLength) {
|
|
44
|
+
if (content.length <= maxLength) {
|
|
45
|
+
return content.replace(/\n/g, ' ');
|
|
46
|
+
}
|
|
47
|
+
const preview = content.substring(0, maxLength);
|
|
48
|
+
return preview.replace(/\n/g, ' ') + '...';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=listFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listFormatter.js","sourceRoot":"","sources":["../../src/search_format/listFormatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC;;GAEG;AACH,MAAM,OAAO,aAAa;IACxB,OAAO;QACL,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc;QACZ,OAAO,uCAAuC,CAAA;IAChD,CAAC;IAED,MAAM,CACJ,OAAuB,EACvB,OAA0B;QAE1B,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,GAAG,CAAA;QAExD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,iBAAiB,GAAG,MAAiC,CAAA;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;YAE/E,8BAA8B;YAC9B,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAA;YACnC,IAAI,iBAAiB,CAAC,WAAW,EAAE,CAAC;gBAClC,wEAAwE;gBACxE,MAAM,KAAK,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;gBAChG,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;YAED,iBAAiB;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;YAEpE,OAAO;gBACL,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,KAAK;aAChB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe,CAAC,MAA+B,EAAE,SAAiB;QACxE,OAAO,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACrE,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,SAAiB;QACtD,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;IAC5C,CAAC;CACF"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search result formatting types and interfaces
|
|
3
|
+
*/
|
|
4
|
+
import type { SearchResult } from '../core/searchAdapter.js';
|
|
5
|
+
export type { SearchResult };
|
|
6
|
+
/**
|
|
7
|
+
* Enhanced search result with additional metadata for formatting
|
|
8
|
+
*/
|
|
9
|
+
export interface FormattableSearchResult extends SearchResult {
|
|
10
|
+
/** Relative file path from skill root */
|
|
11
|
+
relativePath?: string;
|
|
12
|
+
/** Full content (for high-quality matches) */
|
|
13
|
+
fullContent?: string;
|
|
14
|
+
/** Preview content with line numbers (for medium-quality matches) */
|
|
15
|
+
preview?: string;
|
|
16
|
+
/** Display tier information */
|
|
17
|
+
metadata: SearchResult['metadata'] & {
|
|
18
|
+
displayTier?: 'full' | 'preview' | 'metadata-only';
|
|
19
|
+
maxScore?: number;
|
|
20
|
+
averageScore?: number;
|
|
21
|
+
matchRanges?: number[][];
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Formatting options for search results
|
|
26
|
+
*/
|
|
27
|
+
export interface FormattingOptions {
|
|
28
|
+
/** Skill path for relative path calculation */
|
|
29
|
+
skillPath: string;
|
|
30
|
+
/** Threshold for showing full content */
|
|
31
|
+
showFullContentThreshold?: number;
|
|
32
|
+
/** Minimum score for showing preview */
|
|
33
|
+
minScoreForPreview?: number;
|
|
34
|
+
/** Maximum preview length */
|
|
35
|
+
maxPreviewLength?: number;
|
|
36
|
+
/** Whether to show line numbers */
|
|
37
|
+
showLineNumbers?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Formatted search result ready for display
|
|
41
|
+
*/
|
|
42
|
+
export interface FormattedResult {
|
|
43
|
+
/** Original result */
|
|
44
|
+
result: FormattableSearchResult;
|
|
45
|
+
/** Formatted display content */
|
|
46
|
+
content: string;
|
|
47
|
+
/** Content type for styling */
|
|
48
|
+
contentType: 'full-content' | 'preview' | 'metadata-only';
|
|
49
|
+
/** Display priority */
|
|
50
|
+
priority: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Base interface for search result formatters
|
|
54
|
+
*/
|
|
55
|
+
export interface SearchFormatter {
|
|
56
|
+
/**
|
|
57
|
+
* Format search results for display
|
|
58
|
+
*/
|
|
59
|
+
format(results: SearchResult[], options: FormattingOptions): FormattedResult[];
|
|
60
|
+
/**
|
|
61
|
+
* Get formatter name
|
|
62
|
+
*/
|
|
63
|
+
getName(): string;
|
|
64
|
+
/**
|
|
65
|
+
* Get formatter description
|
|
66
|
+
*/
|
|
67
|
+
getDescription(): string;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/search_format/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAG5D,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAA;QAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;KACzB,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,WAAW,EAAE,cAAc,GAAG,SAAS,GAAG,eAAe,CAAA;IACzD,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,eAAe,EAAE,CAAA;IAE9E;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,cAAc,IAAI,MAAM,CAAA;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/search_format/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testFuzzy.d.ts","sourceRoot":"","sources":["../../src/test/testFuzzy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
import uFuzzy from '@leeoniya/ufuzzy';
|
|
3
|
+
/**
|
|
4
|
+
* Test script to verify uFuzzy behavior and debug issues
|
|
5
|
+
*/
|
|
6
|
+
function testBasicFuzzySearch() {
|
|
7
|
+
console.log('🧪 Testing basic uFuzzy behavior...\n');
|
|
8
|
+
const haystack = ['My Note', 'My Love', 'Another Document', 'Love Story'];
|
|
9
|
+
const needle = 'love';
|
|
10
|
+
console.log(`Haystack: ${JSON.stringify(haystack)}`);
|
|
11
|
+
console.log(`Needle: "${needle}"\n`);
|
|
12
|
+
const fuzzy = new uFuzzy({ unicode: true });
|
|
13
|
+
// Step 1: Filter
|
|
14
|
+
console.log('Step 1: Filter candidates');
|
|
15
|
+
const idxs = fuzzy.filter(haystack, needle);
|
|
16
|
+
console.log(`Filtered indices: ${JSON.stringify(idxs)}`);
|
|
17
|
+
if (!idxs || idxs.length === 0) {
|
|
18
|
+
console.log('No matches found by filter\n');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
// Step 2: Info
|
|
22
|
+
console.log('\nStep 2: Get detailed info');
|
|
23
|
+
const info = fuzzy.info(idxs, haystack, needle);
|
|
24
|
+
console.log(`Info: ${JSON.stringify(info, null, 2)}`);
|
|
25
|
+
// Step 3: Sort
|
|
26
|
+
console.log('\nStep 3: Sort results');
|
|
27
|
+
const order = fuzzy.sort(info, haystack, needle);
|
|
28
|
+
console.log(`Order: ${JSON.stringify(order)}`);
|
|
29
|
+
// Step 4: Map back to original indices
|
|
30
|
+
console.log('\nStep 4: Map back to original indices');
|
|
31
|
+
const resultIndices = order.map((sortedIdx) => {
|
|
32
|
+
const originalIdx = info.idx[sortedIdx];
|
|
33
|
+
return idxs[originalIdx];
|
|
34
|
+
});
|
|
35
|
+
console.log(`Final result indices: ${JSON.stringify(resultIndices)}`);
|
|
36
|
+
// Show actual matched strings
|
|
37
|
+
console.log('\nMatched strings:');
|
|
38
|
+
resultIndices.forEach(idx => {
|
|
39
|
+
console.log(` [${idx}] "${haystack[idx]}"`);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function testOurWrapper() {
|
|
43
|
+
console.log('\n\n🔧 Testing our wrapper function...\n');
|
|
44
|
+
const haystack = ['My Note', 'My Love', 'Another Document', 'Love Story'];
|
|
45
|
+
const needle = 'love';
|
|
46
|
+
function fuzzySearch(haystack, needle) {
|
|
47
|
+
const fuzzy = new uFuzzy({ unicode: true });
|
|
48
|
+
const idxs = fuzzy.filter(haystack, needle);
|
|
49
|
+
if (!idxs || idxs.length === 0)
|
|
50
|
+
return [];
|
|
51
|
+
const info = fuzzy.info(idxs, haystack, needle);
|
|
52
|
+
const order = fuzzy.sort(info, haystack, needle);
|
|
53
|
+
return order.map((sortedIdx) => idxs[info.idx[sortedIdx]]);
|
|
54
|
+
}
|
|
55
|
+
const result = fuzzySearch(haystack, needle);
|
|
56
|
+
console.log(`fuzzySearch(${JSON.stringify(haystack)}, "${needle}")`);
|
|
57
|
+
console.log(`Result: ${JSON.stringify(result)}`);
|
|
58
|
+
// Test with exact match
|
|
59
|
+
const exactResult = fuzzySearch(haystack, 'My Love');
|
|
60
|
+
console.log(`\nfuzzySearch(${JSON.stringify(haystack)}, "My Love")`);
|
|
61
|
+
console.log(`Result: ${JSON.stringify(exactResult)}`);
|
|
62
|
+
// Test with partial match
|
|
63
|
+
const partialResult = fuzzySearch(haystack, 'Note');
|
|
64
|
+
console.log(`\nfuzzySearch(${JSON.stringify(haystack)}, "Note")`);
|
|
65
|
+
console.log(`Result: ${JSON.stringify(partialResult)}`);
|
|
66
|
+
}
|
|
67
|
+
// Run tests
|
|
68
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
69
|
+
testBasicFuzzySearch();
|
|
70
|
+
testOurWrapper();
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=testFuzzy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testFuzzy.js","sourceRoot":"","sources":["../../src/test/testFuzzy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-fuzzy.d.ts","sourceRoot":"","sources":["../src/test-fuzzy.ts"],"names":[],"mappings":";AAEA;;GAEG"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
/**
|
|
3
|
+
* Test script to verify uFuzzy search logic
|
|
4
|
+
*/
|
|
5
|
+
import uFuzzy from '@leeoniya/ufuzzy';
|
|
6
|
+
import { FuzzySearchAdapter } from './core/fuzzySearchAdapter';
|
|
7
|
+
console.log('🧪 Testing uFuzzy search logic...\n');
|
|
8
|
+
// Test 1: Direct uFuzzy usage
|
|
9
|
+
console.log('📋 Test 1: Direct uFuzzy usage');
|
|
10
|
+
const fuzzy = new uFuzzy({ unicode: true });
|
|
11
|
+
const testHaystack = ['My Note', 'My Love', 'Another Note'];
|
|
12
|
+
const testNeedle = 'love';
|
|
13
|
+
console.log(`Haystack: ${JSON.stringify(testHaystack)}`);
|
|
14
|
+
console.log(`Needle: "${testNeedle}"`);
|
|
15
|
+
// Step by step debugging
|
|
16
|
+
console.log('\n--- uFuzzy Steps ---');
|
|
17
|
+
const idxs = fuzzy.filter(testHaystack, testNeedle);
|
|
18
|
+
console.log(`Filter result: ${JSON.stringify(idxs)}`);
|
|
19
|
+
if (idxs && idxs.length > 0) {
|
|
20
|
+
const info = fuzzy.info(idxs, testHaystack, testNeedle);
|
|
21
|
+
console.log(`Info result: ${JSON.stringify(info)}`);
|
|
22
|
+
const order = fuzzy.sort(info, testHaystack, testNeedle);
|
|
23
|
+
console.log(`Order result: ${JSON.stringify(order)}`);
|
|
24
|
+
// This is the correct mapping
|
|
25
|
+
const result = order.map((sortedIdx) => {
|
|
26
|
+
console.log(` Processing sortedIdx: ${sortedIdx}`);
|
|
27
|
+
console.log(` info.idx[${sortedIdx}]: ${info.idx[sortedIdx]}`);
|
|
28
|
+
console.log(` idxs[${info.idx[sortedIdx]}]: ${idxs[info.idx[sortedIdx]]}`);
|
|
29
|
+
return idxs[info.idx[sortedIdx]];
|
|
30
|
+
});
|
|
31
|
+
console.log(`Final result: ${JSON.stringify(result)}`);
|
|
32
|
+
// Debug the direct approach
|
|
33
|
+
console.log('\n--- Direct approach ---');
|
|
34
|
+
console.log('Since idxs = [1] and info.idx = [1], the result should be idxs[1]');
|
|
35
|
+
console.log(`But idxs[1] = ${idxs[1]} which is undefined!`);
|
|
36
|
+
console.log("This means the logic should be just: idxs[sortedIdx] when there's only one result");
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log('No matches found');
|
|
40
|
+
}
|
|
41
|
+
// Test 2: Using our adapter
|
|
42
|
+
console.log('\n📋 Test 2: Using FuzzySearchAdapter');
|
|
43
|
+
const adapter = new FuzzySearchAdapter();
|
|
44
|
+
const adapterResult = adapter.testFuzzySearch(testHaystack, testNeedle);
|
|
45
|
+
console.log(`Adapter result: ${JSON.stringify(adapterResult)}`);
|
|
46
|
+
// Test 3: More comprehensive tests
|
|
47
|
+
console.log('\n📋 Test 3: Comprehensive tests');
|
|
48
|
+
const testCases = [
|
|
49
|
+
{ haystack: ['My Note', 'My Love'], needle: 'love', expected: [1] },
|
|
50
|
+
{ haystack: ['Zod String Validation', 'Zod Number Validation'], needle: 'string', expected: [0] },
|
|
51
|
+
{ haystack: ['User Guide', 'Context7 Docs'], needle: 'user', expected: [0] },
|
|
52
|
+
{ haystack: ['TypeScript Guide', 'JavaScript Guide'], needle: 'script', expected: [0, 1] }, // fuzzy match
|
|
53
|
+
];
|
|
54
|
+
testCases.forEach((testCase, index) => {
|
|
55
|
+
console.log(`\nCase ${index + 1}:`);
|
|
56
|
+
console.log(` Haystack: ${JSON.stringify(testCase.haystack)}`);
|
|
57
|
+
console.log(` Needle: "${testCase.needle}"`);
|
|
58
|
+
console.log(` Expected: ${JSON.stringify(testCase.expected)}`);
|
|
59
|
+
const result = adapter.testFuzzySearch(testCase.haystack, testCase.needle);
|
|
60
|
+
console.log(` Got: ${JSON.stringify(result)}`);
|
|
61
|
+
const passed = JSON.stringify(result) === JSON.stringify(testCase.expected);
|
|
62
|
+
console.log(` Status: ${passed ? '✅ PASS' : '❌ FAIL'}`);
|
|
63
|
+
});
|
|
64
|
+
console.log('\n🎯 Testing complete!');
|
|
65
|
+
//# sourceMappingURL=test-fuzzy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-fuzzy.js","sourceRoot":"","sources":["../src/test-fuzzy.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export interface CreateSkillOptions {
|
|
|
44
44
|
noInitDocs?: boolean;
|
|
45
45
|
storage?: 'project' | 'user';
|
|
46
46
|
version?: string;
|
|
47
|
+
force?: boolean;
|
|
47
48
|
}
|
|
48
49
|
export interface CreateSkillResult {
|
|
49
50
|
created: boolean;
|
|
@@ -70,6 +71,10 @@ export interface AddContentResult {
|
|
|
70
71
|
source: string;
|
|
71
72
|
preview: string;
|
|
72
73
|
}>;
|
|
74
|
+
existingFile?: {
|
|
75
|
+
path: string;
|
|
76
|
+
content: string;
|
|
77
|
+
};
|
|
73
78
|
}
|
|
74
79
|
export interface PackageVersion {
|
|
75
80
|
version: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,IAAI,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/package.d.ts
CHANGED
|
@@ -8,6 +8,9 @@ export interface SearchResult {
|
|
|
8
8
|
date: string;
|
|
9
9
|
publisher: string;
|
|
10
10
|
score: number;
|
|
11
|
+
homepage?: string;
|
|
12
|
+
repository?: string;
|
|
13
|
+
skill_dir_name?: string;
|
|
11
14
|
}
|
|
12
15
|
export interface SearchOptions {
|
|
13
16
|
limit?: number;
|
|
@@ -18,6 +21,20 @@ export declare class PackageUtils {
|
|
|
18
21
|
* Get package version from npm registry
|
|
19
22
|
*/
|
|
20
23
|
static getPackageVersion(packageName: string): Promise<string | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Get full package info from npm registry for the latest version
|
|
26
|
+
*/
|
|
27
|
+
static getPackageInfo(packageName: string): Promise<{
|
|
28
|
+
name: string;
|
|
29
|
+
version: string;
|
|
30
|
+
description: string;
|
|
31
|
+
homepage?: string;
|
|
32
|
+
repository?: {
|
|
33
|
+
type: string;
|
|
34
|
+
url: string;
|
|
35
|
+
};
|
|
36
|
+
[key: string]: any;
|
|
37
|
+
} | null>;
|
|
21
38
|
/**
|
|
22
39
|
* Format version according to doc-downloader rules
|
|
23
40
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,YAAY;IACvB;;OAEG;WACU,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY3E;;OAEG;WACU,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QACxD,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;QAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,GAAG,IAAI,CAAC;IAkBT;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAqB7C;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAY1E;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOxD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAUxD;;OAEG;WACU,cAAc,CACzB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IA0C1B;;OAEG;WACU,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAqBhF;;OAEG;WACU,eAAe,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IAgC1B;;OAEG;WACU,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAoB7F"}
|
package/dist/utils/package.js
CHANGED
|
@@ -17,6 +17,27 @@ export class PackageUtils {
|
|
|
17
17
|
return null;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Get full package info from npm registry for the latest version
|
|
22
|
+
*/
|
|
23
|
+
static async getPackageInfo(packageName) {
|
|
24
|
+
try {
|
|
25
|
+
const response = await fetch(`https://registry.npmjs.org/${packageName}`);
|
|
26
|
+
if (!response.ok)
|
|
27
|
+
return null;
|
|
28
|
+
const data = await response.json();
|
|
29
|
+
const latestVersionTag = data['dist-tags']?.latest;
|
|
30
|
+
if (!latestVersionTag)
|
|
31
|
+
return null;
|
|
32
|
+
const latestVersionInfo = data.versions?.[latestVersionTag];
|
|
33
|
+
if (!latestVersionInfo)
|
|
34
|
+
return null;
|
|
35
|
+
return latestVersionInfo;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
20
41
|
/**
|
|
21
42
|
* Format version according to doc-downloader rules
|
|
22
43
|
*/
|
|
@@ -88,6 +109,8 @@ export class PackageUtils {
|
|
|
88
109
|
for (const pkg of data.objects || []) {
|
|
89
110
|
const score = pkg.score?.detail?.popularity || 0;
|
|
90
111
|
if (score >= minScore) {
|
|
112
|
+
// Get detailed package information including homepage
|
|
113
|
+
const packageInfo = await this.getPackageInfo(pkg.package.name);
|
|
91
114
|
results.push({
|
|
92
115
|
name: pkg.package.name,
|
|
93
116
|
description: pkg.package.description || '',
|
|
@@ -95,6 +118,11 @@ export class PackageUtils {
|
|
|
95
118
|
date: pkg.package.date,
|
|
96
119
|
publisher: pkg.package.publisher?.username || 'unknown',
|
|
97
120
|
score,
|
|
121
|
+
homepage: packageInfo?.homepage,
|
|
122
|
+
repository: packageInfo?.repository?.url,
|
|
123
|
+
skill_dir_name: packageInfo
|
|
124
|
+
? this.createSkillFolderName(packageInfo.name, packageInfo.version)
|
|
125
|
+
: undefined,
|
|
98
126
|
});
|
|
99
127
|
}
|
|
100
128
|
}
|
|
@@ -109,17 +137,19 @@ export class PackageUtils {
|
|
|
109
137
|
*/
|
|
110
138
|
static async findExactPackage(packageName) {
|
|
111
139
|
try {
|
|
112
|
-
const
|
|
113
|
-
if (!
|
|
140
|
+
const packageInfo = await this.getPackageInfo(packageName);
|
|
141
|
+
if (!packageInfo)
|
|
114
142
|
return null;
|
|
115
|
-
const data = await response.json();
|
|
116
143
|
return {
|
|
117
|
-
name:
|
|
118
|
-
description:
|
|
119
|
-
version:
|
|
120
|
-
date:
|
|
121
|
-
publisher:
|
|
144
|
+
name: packageInfo.name,
|
|
145
|
+
description: packageInfo.description || '',
|
|
146
|
+
version: packageInfo.version,
|
|
147
|
+
date: packageInfo.time?.modified || new Date().toISOString(),
|
|
148
|
+
publisher: packageInfo.publisher?.username || 'unknown',
|
|
122
149
|
score: 1.0,
|
|
150
|
+
homepage: packageInfo.homepage,
|
|
151
|
+
repository: packageInfo.repository?.url,
|
|
152
|
+
skill_dir_name: this.createSkillFolderName(packageInfo.name, packageInfo.version),
|
|
123
153
|
};
|
|
124
154
|
}
|
|
125
155
|
catch {
|
|
@@ -130,22 +160,29 @@ export class PackageUtils {
|
|
|
130
160
|
* Suggest packages based on keywords
|
|
131
161
|
*/
|
|
132
162
|
static async suggestPackages(input, options = {}) {
|
|
133
|
-
|
|
163
|
+
const results = [];
|
|
164
|
+
// Check if input looks like an exact package name and include it as first result
|
|
134
165
|
if (PackageUtils.validatePackageName(input)) {
|
|
135
166
|
const exact = await PackageUtils.findExactPackage(input);
|
|
136
|
-
if (exact)
|
|
137
|
-
|
|
167
|
+
if (exact) {
|
|
168
|
+
results.push(exact);
|
|
169
|
+
}
|
|
138
170
|
}
|
|
171
|
+
// Always perform broader search to find related packages
|
|
139
172
|
// Extract keywords from input
|
|
140
173
|
const keywords = input
|
|
141
174
|
.split(/[\s-]+/)
|
|
142
|
-
.filter(word => word.length > 2)
|
|
175
|
+
.filter((word) => word.length > 2)
|
|
143
176
|
.slice(0, 3);
|
|
144
177
|
if (keywords.length === 0) {
|
|
145
178
|
// Fallback: search with the whole input
|
|
146
179
|
keywords.push(input);
|
|
147
180
|
}
|
|
148
|
-
|
|
181
|
+
const searchResults = await PackageUtils.searchPackages(keywords, options);
|
|
182
|
+
// Merge exact match with search results, avoiding duplicates
|
|
183
|
+
const exactMatchNames = new Set(results.map((r) => r.name));
|
|
184
|
+
const additionalResults = searchResults.filter((r) => !exactMatchNames.has(r.name));
|
|
185
|
+
return [...results, ...additionalResults].slice(0, options.limit || 10);
|
|
149
186
|
}
|
|
150
187
|
/**
|
|
151
188
|
* Select package from multiple options
|
|
@@ -162,7 +199,7 @@ export class PackageUtils {
|
|
|
162
199
|
}
|
|
163
200
|
// Multiple options found - would need interactive selection in CLI
|
|
164
201
|
// For now, return the highest scored package
|
|
165
|
-
const best = suggestions.reduce((prev, curr) => curr.score > prev.score ? curr : prev);
|
|
202
|
+
const best = suggestions.reduce((prev, curr) => (curr.score > prev.score ? curr : prev));
|
|
166
203
|
const version = await PackageUtils.getPackageVersion(best.name);
|
|
167
204
|
return { name: best.name, version: version || best.version };
|
|
168
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"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"}
|