@crewx/search 0.1.10-rc.18 → 0.1.10-rc.180

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 CHANGED
@@ -3,5 +3,5 @@
3
3
  BM25 full-text search engine for CrewX documents and code.
4
4
 
5
5
  ```bash
6
- npx search "<query>" [path]
6
+ crewx search "<query>" [path]
7
7
  ```
package/SKILL.md CHANGED
@@ -34,19 +34,19 @@ npm install
34
34
 
35
35
  ```bash
36
36
  # Search markdown files (default)
37
- npx search "launcher architecture" .
37
+ crewx search "launcher architecture" .
38
38
 
39
39
  # Specific directory
40
- npx search "API endpoint" ./docs
40
+ crewx search "API endpoint" ./docs
41
41
 
42
42
  # JS/TS file search
43
- npx search "authentication" ./src --glob="**/*.{js,ts}"
43
+ crewx search "authentication" ./src --glob="**/*.{js,ts}"
44
44
 
45
45
  # Limit result count
46
- npx search "error handling" . --limit=10
46
+ crewx search "error handling" . --limit=10
47
47
 
48
48
  # JSON output
49
- npx search "database" . --json
49
+ crewx search "database" . --json
50
50
  ```
51
51
 
52
52
  ## Options
@@ -101,7 +101,7 @@ Each result includes `matchedField` showing which field drove the match.
101
101
  ### Document Search
102
102
  ```bash
103
103
  # Find documents related to CrewX launcher
104
- npx search "CrewX launcher electron architecture" ./docs
104
+ crewx search "CrewX launcher electron architecture" ./docs
105
105
 
106
106
  # Result:
107
107
  # [17.5] docs/launcher/architecture.md
@@ -111,7 +111,7 @@ npx search "CrewX launcher electron architecture" ./docs
111
111
  ### Code Search
112
112
  ```bash
113
113
  # Find authentication-related code
114
- npx search "authentication JWT token" ./src --glob="**/*.ts"
114
+ crewx search "authentication JWT token" ./src --glob="**/*.ts"
115
115
 
116
116
  # Result:
117
117
  # [15.2] src/auth/jwt.service.ts
@@ -121,7 +121,7 @@ npx search "authentication JWT token" ./src --glob="**/*.ts"
121
121
  ### Multi-language Search
122
122
  ```bash
123
123
  # Find error handling content
124
- npx search "error handling exception" . --glob="**/*.md"
124
+ crewx search "error handling exception" . --glob="**/*.md"
125
125
 
126
126
  # Result:
127
127
  # [3] docs/troubleshooting.md
@@ -131,17 +131,17 @@ npx search "error handling exception" . --glob="**/*.md"
131
131
  ### OKF Highlight-Scoped Search
132
132
  ```bash
133
133
  # Search only what the user highlighted as important
134
- npx search "중요한 결정" ./docs --scope=highlights
134
+ crewx search "important decision" ./docs --scope=highlights
135
135
 
136
136
  # Result:
137
- # [8.0] docs/설계서.md [highlightQuotes]
137
+ # [8.0] docs/design.md [highlightQuotes]
138
138
  # Design Spec
139
139
 
140
140
  # Prioritize full body over highlights
141
- npx search "아키텍처" ./docs --scope=body
141
+ crewx search "architecture" ./docs --scope=body
142
142
 
143
143
  # Apply extra 2x boost on highlights
144
- npx search "API design" ./docs --highlight-boost=2
144
+ crewx search "API design" ./docs --highlight-boost=2
145
145
  ```
146
146
 
147
147
  ## How It Works
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  export declare function main(inputArgs?: string[]): Promise<void>;
3
- //# sourceMappingURL=cli.d.ts.map
3
+
package/dist/cli.js CHANGED
@@ -1,126 +1,6 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.main = main;
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
40
- const engine_1 = require("./src/engine");
41
- let PKG_VERSION = 'unknown';
42
- try {
43
- const _pkgPath = fs.existsSync(path.join(__dirname, 'package.json'))
44
- ? path.join(__dirname, 'package.json')
45
- : path.join(__dirname, '..', 'package.json');
46
- const _pkg = JSON.parse(fs.readFileSync(_pkgPath, 'utf-8'));
47
- if (_pkg?.version)
48
- PKG_VERSION = String(_pkg.version);
49
- }
50
- catch { }
51
- async function loadTracer() {
52
- try {
53
- return await Promise.resolve().then(() => __importStar(require('@crewx/shared/skill-tracer')));
54
- }
55
- catch {
56
- return null;
57
- }
58
- }
59
- function showDetailedUsage() {
60
- const skillMd = path.join(__dirname, '..', 'SKILL.md');
61
- if (fs.existsSync(skillMd)) {
62
- process.stdout.write(fs.readFileSync(skillMd, 'utf-8'));
63
- }
64
- else {
65
- console.log('No SKILL.md found. Use --help for usage.');
66
- }
67
- }
68
- async function main(inputArgs) {
69
- const args = inputArgs ?? process.argv.slice(2);
70
- if (args[0] === '--version') {
71
- console.log(PKG_VERSION);
72
- return;
73
- }
74
- if (args[0] === 'usage') {
75
- showDetailedUsage();
76
- return;
77
- }
78
- if (args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
79
- args.length = 0;
80
- }
81
- const options = {
82
- query: '',
83
- searchPath: '.',
84
- glob: '**/*.md',
85
- limit: 20,
86
- json: false,
87
- scope: 'all',
88
- highlightBoost: 1.0,
89
- };
90
- for (let i = 0; i < args.length; i++) {
91
- const arg = args[i];
92
- if (!arg)
93
- continue;
94
- if (arg.startsWith('--glob=')) {
95
- options.glob = arg.split('=').slice(1).join('=');
96
- }
97
- else if (arg.startsWith('--limit=')) {
98
- options.limit = parseInt(arg.split('=')[1] ?? '20', 10);
99
- }
100
- else if (arg === '--json') {
101
- options.json = true;
102
- }
103
- else if (arg.startsWith('--scope=')) {
104
- const scopeVal = arg.split('=')[1];
105
- if (scopeVal === 'all' || scopeVal === 'highlights' || scopeVal === 'body') {
106
- options.scope = scopeVal;
107
- }
108
- }
109
- else if (arg.startsWith('--highlight-boost=')) {
110
- const boost = parseFloat(arg.split('=')[1] ?? '1');
111
- if (!isNaN(boost) && boost > 0)
112
- options.highlightBoost = boost;
113
- }
114
- else if (!options.query) {
115
- options.query = arg;
116
- }
117
- else if (options.searchPath === '.') {
118
- options.searchPath = arg;
119
- }
120
- }
121
- if (!options.query) {
122
- console.log(`
123
- @crewx/search@${PKG_VERSION} - BM25 full-text search engine
2
+ "use strict";var g=exports&&exports.__createBinding||(Object.create?(function(i,e,t,s){if(s===void 0)s=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(i,s,n)}):(function(i,e,t,s){if(s===void 0)s=t;i[s]=e[t]}));var f=exports&&exports.__setModuleDefault||(Object.create?(function(i,e){Object.defineProperty(i,"default",{enumerable:true,value:e})}):function(i,e){i["default"]=e});var c=exports&&exports.__importStar||(function(){var i=function(e){i=Object.getOwnPropertyNames||function(t){var s=[];for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n))s[s.length]=n;return s};return i(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null){for(var s=i(e),n=0;n<s.length;n++)if(s[n]!=="default")g(t,e,s[n])}f(t,e);return t}})();Object.defineProperty(exports,"__esModule",{value:true});exports.main=u;const a=c(require("fs"));const l=c(require("path"));const d=require("./src/engine");let h="unknown";try{const i=a.existsSync(l.join(__dirname,"package.json"))?l.join(__dirname,"package.json"):l.join(__dirname,"..","package.json");const e=JSON.parse(a.readFileSync(i,"utf-8"));if(e?.version)h=String(e.version)}catch{}async function p(){try{return await Promise.resolve().then(()=>c(require("@crewx/shared/skill-tracer")))}catch{return null}}function _(){const i=l.join(__dirname,"..","SKILL.md");if(a.existsSync(i)){process.stdout.write(a.readFileSync(i,"utf-8"))}else{console.log("No SKILL.md found. Use --help for usage.")}}async function u(i){const e=i??process.argv.slice(2);if(e[0]==="--version"){console.log(h);return}if(e[0]==="usage"){_();return}if(e[0]==="help"||e[0]==="--help"||e[0]==="-h"){e.length=0}const t={query:"",searchPath:".",glob:"**/*.md",limit:20,json:false,scope:"all",highlightBoost:1};for(let n=0;n<e.length;n++){const r=e[n];if(!r)continue;if(r.startsWith("--glob=")){t.glob=r.split("=").slice(1).join("=")}else if(r.startsWith("--limit=")){t.limit=parseInt(r.split("=")[1]??"20",10)}else if(r==="--json"){t.json=true}else if(r.startsWith("--scope=")){const o=r.split("=")[1];if(o==="all"||o==="highlights"||o==="body"){t.scope=o}}else if(r.startsWith("--highlight-boost=")){const o=parseFloat(r.split("=")[1]??"1");if(!isNaN(o)&&o>0)t.highlightBoost=o}else if(!t.query){t.query=r}else if(t.searchPath==="."){t.searchPath=r}}if(!t.query){console.log(`
3
+ @crewx/search@${h} - BM25 full-text search engine
124
4
 
125
5
  Usage:
126
6
  search <query> [path] [options]
@@ -149,16 +29,4 @@ Examples:
149
29
  search "architecture" ./docs --scope=body
150
30
 
151
31
  For detailed usage guide: search usage
152
- `);
153
- return;
154
- }
155
- const engine = new engine_1.SearchEngine();
156
- await engine.search(options);
157
- }
158
- if (require.main === module) {
159
- loadTracer().then(tracer => {
160
- const opts = tracer ? { skillVersion: tracer.getOwnSkillVersion(__dirname) } : {};
161
- return tracer ? tracer.run('crewx/search', () => main(), opts) : main();
162
- }).catch(console.error);
163
- }
164
- //# sourceMappingURL=cli.js.map
32
+ `);return}const s=new d.SearchEngine;await s.search(t)}if(require.main===module){p().then(i=>{const e=i?{skillVersion:i.getOwnSkillVersion(__dirname)}:{};return i?i.run("crewx/search",()=>u(),e):u()}).catch(console.error)}
@@ -5,4 +5,4 @@ export declare class SearchEngine {
5
5
  search(opts: SearchOptions): Promise<void>;
6
6
  searchAndReturn(opts: SearchOptions): Promise<SearchResult[]>;
7
7
  }
8
- //# sourceMappingURL=engine.d.ts.map
8
+
@@ -1,337 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SearchEngine = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const glob_1 = require("glob");
40
- const knowledge_core_1 = require("@crewx/knowledge-core");
41
- const MAX_BODY_SIZE = 10 * 1024 * 1024;
42
- const BASE_WEIGHTS = {
43
- okfTitle: 5,
44
- highlightQuotes: 4,
45
- okfDescription: 3,
46
- highlightNotes: 3,
47
- okfTags: 2,
48
- highlightIntents: 2,
49
- highlightColors: 1.5,
50
- highlightedHeadings: 1.5,
51
- okfLinks: 1,
52
- body: 1,
53
- };
54
- function stringifyMetadataValue(value) {
55
- if (value == null)
56
- return '';
57
- if (typeof value === 'string')
58
- return value;
59
- if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
60
- return String(value);
61
- }
62
- if (value instanceof Date)
63
- return value.toISOString();
64
- if (Array.isArray(value)) {
65
- return value.map((item) => stringifyMetadataValue(item)).filter(Boolean).join(' ');
66
- }
67
- if (typeof value === 'object') {
68
- return Object.values(value)
69
- .map((item) => stringifyMetadataValue(item))
70
- .filter(Boolean)
71
- .join(' ');
72
- }
73
- return '';
74
- }
75
- function extractMarkdownLinks(body) {
76
- const linkRe = /\[[^\]]*\]\(([^)]+)\)/g;
77
- const links = [];
78
- let m;
79
- while ((m = linkRe.exec(body)) !== null) {
80
- if (m[1] && !m[1].startsWith('http'))
81
- links.push(m[1]);
82
- }
83
- return links.join(' ');
84
- }
85
- function parseOkfFields(data, body) {
86
- const result = {};
87
- if (data['type'])
88
- result.okfType = String(data['type']);
89
- if (data['title'])
90
- result.okfTitle = stringifyMetadataValue(data['title']);
91
- if (data['description'])
92
- result.okfDescription = stringifyMetadataValue(data['description']);
93
- if (data['resource'])
94
- result.okfResource = String(data['resource']);
95
- if (data['tags'])
96
- result.okfTags = stringifyMetadataValue(data['tags']);
97
- const links = extractMarkdownLinks(body);
98
- if (links)
99
- result.okfLinks = links;
100
- const crewx = data['crewx'];
101
- if (crewx && typeof crewx === 'object' && !Array.isArray(crewx)) {
102
- const highlights = crewx['highlights'];
103
- if (Array.isArray(highlights)) {
104
- const active = highlights.filter((h) => h !== null &&
105
- typeof h === 'object' &&
106
- h.status !== 'orphaned' &&
107
- h.status !== 'deleted' &&
108
- h.status !== 'superseded');
109
- const quotes = active.map(h => h.quote ?? '').filter(Boolean).join(' ');
110
- const notes = active.map(h => h.note ?? '').filter(Boolean).join(' ');
111
- const intents = active.map(h => h.intent ?? '').filter(Boolean).join(' ');
112
- const colors = active.map(h => h.color ?? '').filter(Boolean).join(' ');
113
- const headings = active
114
- .map(h => h.context?.heading ?? '')
115
- .filter(Boolean)
116
- .join(' ');
117
- if (quotes)
118
- result.highlightQuotes = quotes;
119
- if (notes)
120
- result.highlightNotes = notes;
121
- if (intents)
122
- result.highlightIntents = intents;
123
- if (colors)
124
- result.highlightColors = colors;
125
- if (headings)
126
- result.highlightedHeadings = headings;
127
- }
128
- }
129
- return result;
130
- }
131
- function buildFieldWeights(scope, highlightBoost) {
132
- const hb = highlightBoost;
133
- if (scope === 'highlights') {
134
- return {
135
- okfTitle: BASE_WEIGHTS['okfTitle'],
136
- highlightQuotes: BASE_WEIGHTS['highlightQuotes'] * 2 * hb,
137
- okfDescription: BASE_WEIGHTS['okfDescription'],
138
- highlightNotes: BASE_WEIGHTS['highlightNotes'] * 2 * hb,
139
- okfTags: BASE_WEIGHTS['okfTags'],
140
- highlightIntents: BASE_WEIGHTS['highlightIntents'] * 2 * hb,
141
- highlightColors: BASE_WEIGHTS['highlightColors'] * hb,
142
- highlightedHeadings: BASE_WEIGHTS['highlightedHeadings'] * hb,
143
- okfLinks: BASE_WEIGHTS['okfLinks'],
144
- body: BASE_WEIGHTS['body'],
145
- };
146
- }
147
- if (scope === 'body') {
148
- return {
149
- okfTitle: BASE_WEIGHTS['okfTitle'],
150
- highlightQuotes: 1,
151
- okfDescription: BASE_WEIGHTS['okfDescription'],
152
- highlightNotes: 1,
153
- okfTags: BASE_WEIGHTS['okfTags'],
154
- highlightIntents: 0.5,
155
- highlightColors: 0.5,
156
- highlightedHeadings: 0.5,
157
- okfLinks: BASE_WEIGHTS['okfLinks'],
158
- body: 2,
159
- };
160
- }
161
- return {
162
- okfTitle: BASE_WEIGHTS['okfTitle'],
163
- highlightQuotes: BASE_WEIGHTS['highlightQuotes'] * hb,
164
- okfDescription: BASE_WEIGHTS['okfDescription'],
165
- highlightNotes: BASE_WEIGHTS['highlightNotes'] * hb,
166
- okfTags: BASE_WEIGHTS['okfTags'],
167
- highlightIntents: BASE_WEIGHTS['highlightIntents'] * hb,
168
- highlightColors: BASE_WEIGHTS['highlightColors'] * hb,
169
- highlightedHeadings: BASE_WEIGHTS['highlightedHeadings'] * hb,
170
- okfLinks: BASE_WEIGHTS['okfLinks'],
171
- body: BASE_WEIGHTS['body'],
172
- };
173
- }
174
- function detectMatchedField(doc, query, weights) {
175
- const tokens = query.toLowerCase().split(/\s+/).filter(Boolean);
176
- const sortedFields = Object.entries(weights)
177
- .sort(([, a], [, b]) => b - a)
178
- .map(([f]) => f);
179
- const docRecord = doc;
180
- for (const field of sortedFields) {
181
- const value = String(docRecord[field] ?? '').toLowerCase();
182
- if (value && tokens.some(t => value.includes(t))) {
183
- return field;
184
- }
185
- }
186
- return 'body';
187
- }
188
- class SearchEngine {
189
- async collectDocuments(searchPath, globPattern) {
190
- const pattern = path.join(searchPath, globPattern);
191
- const config = (0, knowledge_core_1.loadDocsConfig)((0, knowledge_core_1.resolveProjectRoot)(searchPath));
192
- const ignore = (0, knowledge_core_1.buildIgnorePatterns)(config.exclude);
193
- const files = await (0, glob_1.glob)(pattern, { nodir: true, ignore });
194
- const docs = [];
195
- for (const file of files) {
196
- try {
197
- const content = fs.readFileSync(file, 'utf-8');
198
- const relativePath = path.relative(searchPath, file);
199
- let title = '';
200
- let body = content;
201
- let okfFields = {};
202
- if (file.endsWith('.md')) {
203
- try {
204
- const parsed = (0, knowledge_core_1.parseFrontmatter)(content);
205
- title = stringifyMetadataValue(parsed.data['title']) || stringifyMetadataValue(parsed.data['summary']);
206
- body = parsed.content;
207
- okfFields = parseOkfFields(parsed.data, body);
208
- }
209
- catch {
210
- const lines = content.split('\n');
211
- title = (lines[0] ?? '').replace(/^#\s*/, '').substring(0, 100);
212
- }
213
- }
214
- else {
215
- title = path.basename(file);
216
- }
217
- docs.push({
218
- file: relativePath,
219
- fullPath: file,
220
- title,
221
- body: body.substring(0, MAX_BODY_SIZE),
222
- okfTitle: okfFields.okfTitle ?? title,
223
- ...okfFields,
224
- });
225
- }
226
- catch {
227
- }
228
- }
229
- return { docs, fileCount: files.length };
230
- }
231
- runBm25Search(docs, query, limit, scope = 'all', highlightBoost = 1.0) {
232
- if (docs.length < 3)
233
- return [];
234
- const weights = buildFieldWeights(scope, highlightBoost);
235
- const kcEntries = docs.map((doc, idx) => ({
236
- id: String(idx),
237
- type: 'document',
238
- category: 'general',
239
- tags: [],
240
- date: '',
241
- summary: doc.title,
242
- body: doc.body,
243
- okfTitle: doc.okfTitle ?? doc.title,
244
- okfDescription: doc.okfDescription ?? '',
245
- okfTags: doc.okfTags ?? '',
246
- okfLinks: doc.okfLinks ?? '',
247
- highlightQuotes: doc.highlightQuotes ?? '',
248
- highlightNotes: doc.highlightNotes ?? '',
249
- highlightIntents: doc.highlightIntents ?? '',
250
- highlightColors: doc.highlightColors ?? '',
251
- highlightedHeadings: doc.highlightedHeadings ?? '',
252
- title: doc.title,
253
- file: doc.file,
254
- fullPath: doc.fullPath,
255
- }));
256
- const scored = (0, knowledge_core_1.searchEntries)(kcEntries, query, weights);
257
- return scored
258
- .slice(0, limit)
259
- .map(entry => {
260
- const doc = docs[Number(entry.id)];
261
- const result = {
262
- file: entry['file'],
263
- fullPath: entry['fullPath'],
264
- title: entry['title'],
265
- body: entry.body || '',
266
- score: entry._score,
267
- okfTitle: entry['okfTitle'],
268
- okfDescription: entry['okfDescription'],
269
- okfTags: entry['okfTags'],
270
- okfLinks: entry['okfLinks'],
271
- highlightQuotes: entry['highlightQuotes'],
272
- highlightNotes: entry['highlightNotes'],
273
- highlightIntents: entry['highlightIntents'],
274
- highlightColors: entry['highlightColors'],
275
- highlightedHeadings: entry['highlightedHeadings'],
276
- matchedField: doc ? detectMatchedField(doc, query, weights) : 'body',
277
- };
278
- return result;
279
- });
280
- }
281
- async search(opts) {
282
- const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, json = false, scope = 'all', highlightBoost = 1.0, } = opts;
283
- const searchPath = path.resolve(rawPath);
284
- const { docs, fileCount } = await this.collectDocuments(searchPath, globPattern);
285
- if (fileCount === 0) {
286
- console.log(`No files found: ${path.join(searchPath, globPattern)}`);
287
- process.exit(1);
288
- }
289
- if (docs.length === 0) {
290
- console.log('No readable files found.');
291
- process.exit(1);
292
- }
293
- const results = this.runBm25Search(docs, query, limit, scope, highlightBoost);
294
- if (results.length === 0) {
295
- console.log(`No results found for '${query}'.`);
296
- process.exit(0);
297
- }
298
- if (json) {
299
- console.log(JSON.stringify(results.map(r => ({
300
- file: r.file,
301
- score: r.score,
302
- title: r.title.substring(0, 100),
303
- matchedField: r.matchedField,
304
- })), null, 2));
305
- }
306
- else {
307
- console.log(`\n🔍 Search: "${query}" (${results.length} results across ${fileCount} files)\n`);
308
- for (const r of results) {
309
- const title = r.title.substring(0, 60).replace(/\n/g, ' ');
310
- const fieldTag = r.matchedField ? ` [${r.matchedField}]` : '';
311
- console.log(`[${r.score} pts] ${r.file}${fieldTag}`);
312
- if (title)
313
- console.log(` ${title}`);
314
- }
315
- const searchCtx = {
316
- commandId: 'search',
317
- params: { query, path: searchPath },
318
- resultCount: results.length,
319
- };
320
- const searchActions = (0, knowledge_core_1.generateNextActions)(searchCtx);
321
- const searchBlock = (0, knowledge_core_1.formatActions)(searchActions);
322
- if (searchBlock)
323
- console.log(searchBlock);
324
- }
325
- }
326
- async searchAndReturn(opts) {
327
- const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, scope = 'all', highlightBoost = 1.0, } = opts;
328
- const searchPath = path.resolve(rawPath);
329
- const { docs } = await this.collectDocuments(searchPath, globPattern);
330
- if (docs.length === 0) {
331
- return [];
332
- }
333
- return this.runBm25Search(docs, query, limit, scope, highlightBoost);
334
- }
335
- }
336
- exports.SearchEngine = SearchEngine;
337
- //# sourceMappingURL=engine.js.map
1
+ "use strict";var S=exports&&exports.__createBinding||(Object.create?(function(e,o,t,s){if(s===void 0)s=t;var n=Object.getOwnPropertyDescriptor(o,t);if(!n||("get"in n?!o.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return o[t]}}}Object.defineProperty(e,s,n)}):(function(e,o,t,s){if(s===void 0)s=t;e[s]=o[t]}));var P=exports&&exports.__setModuleDefault||(Object.create?(function(e,o){Object.defineProperty(e,"default",{enumerable:true,value:o})}):function(e,o){e["default"]=o});var _=exports&&exports.__importStar||(function(){var e=function(o){e=Object.getOwnPropertyNames||function(t){var s=[];for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n))s[s.length]=n;return s};return e(o)};return function(o){if(o&&o.__esModule)return o;var t={};if(o!=null){for(var s=e(o),n=0;n<s.length;n++)if(s[n]!=="default")S(t,o,s[n])}P(t,o);return t}})();Object.defineProperty(exports,"__esModule",{value:true});exports.SearchEngine=void 0;const w=_(require("fs"));const m=_(require("path"));const B=require("glob");const p=require("@crewx/knowledge-core");const C=10*1024*1024;const h={okfTitle:5,highlightQuotes:4,okfDescription:3,highlightNotes:3,okfTags:2,highlightIntents:2,highlightColors:1.5,highlightedHeadings:1.5,okfLinks:1,body:1};function b(e){if(e==null)return"";if(typeof e==="string")return e;if(typeof e==="number"||typeof e==="boolean"||typeof e==="bigint"){return String(e)}if(e instanceof Date)return e.toISOString();if(Array.isArray(e)){return e.map(o=>b(o)).filter(Boolean).join(" ")}if(typeof e==="object"){return Object.values(e).map(o=>b(o)).filter(Boolean).join(" ")}return""}function N(e){const o=/\[[^\]]*\]\(([^)]+)\)/g;const t=[];let s;while((s=o.exec(e))!==null){if(s[1]&&!s[1].startsWith("http"))t.push(s[1])}return t.join(" ")}function O(e,o){const t={};if(e["type"])t.okfType=String(e["type"]);if(e["title"])t.okfTitle=b(e["title"]);if(e["description"])t.okfDescription=b(e["description"]);if(e["resource"])t.okfResource=String(e["resource"]);if(e["tags"])t.okfTags=b(e["tags"]);const s=N(o);if(s)t.okfLinks=s;const n=e["crewx"];if(n&&typeof n==="object"&&!Array.isArray(n)){const a=n["highlights"];if(Array.isArray(a)){const r=a.filter(l=>l!==null&&typeof l==="object"&&l.status!=="orphaned"&&l.status!=="deleted"&&l.status!=="superseded");const g=r.map(l=>l.quote??"").filter(Boolean).join(" ");const c=r.map(l=>l.note??"").filter(Boolean).join(" ");const i=r.map(l=>l.intent??"").filter(Boolean).join(" ");const u=r.map(l=>l.color??"").filter(Boolean).join(" ");const f=r.map(l=>l.context?.heading??"").filter(Boolean).join(" ");if(g)t.highlightQuotes=g;if(c)t.highlightNotes=c;if(i)t.highlightIntents=i;if(u)t.highlightColors=u;if(f)t.highlightedHeadings=f}}return t}function I(e,o){const t=o;if(e==="highlights"){return{okfTitle:h["okfTitle"],highlightQuotes:h["highlightQuotes"]*2*t,okfDescription:h["okfDescription"],highlightNotes:h["highlightNotes"]*2*t,okfTags:h["okfTags"],highlightIntents:h["highlightIntents"]*2*t,highlightColors:h["highlightColors"]*t,highlightedHeadings:h["highlightedHeadings"]*t,okfLinks:h["okfLinks"],body:h["body"]}}if(e==="body"){return{okfTitle:h["okfTitle"],highlightQuotes:1,okfDescription:h["okfDescription"],highlightNotes:1,okfTags:h["okfTags"],highlightIntents:.5,highlightColors:.5,highlightedHeadings:.5,okfLinks:h["okfLinks"],body:2}}return{okfTitle:h["okfTitle"],highlightQuotes:h["highlightQuotes"]*t,okfDescription:h["okfDescription"],highlightNotes:h["highlightNotes"]*t,okfTags:h["okfTags"],highlightIntents:h["highlightIntents"]*t,highlightColors:h["highlightColors"]*t,highlightedHeadings:h["highlightedHeadings"]*t,okfLinks:h["okfLinks"],body:h["body"]}}function L(e,o,t){const s=o.toLowerCase().split(/\s+/).filter(Boolean);const n=Object.entries(t).sort(([,r],[,g])=>g-r).map(([r])=>r);const a=e;for(const r of n){const g=String(a[r]??"").toLowerCase();if(g&&s.some(c=>g.includes(c))){return r}}return"body"}class A{async collectDocuments(o,t){const s=m.join(o,t);const n=(0,p.loadDocsConfig)((0,p.resolveProjectRoot)(o));const a=(0,p.buildIgnorePatterns)(n.exclude);const r=await(0,B.glob)(s,{nodir:true,ignore:a});const g=[];for(const c of r){try{const i=w.readFileSync(c,"utf-8");const u=m.relative(o,c);let f="";let l=i;let d={};if(c.endsWith(".md")){try{const k=(0,p.parseFrontmatter)(i);f=b(k.data["title"])||b(k.data["summary"]);l=k.content;d=O(k.data,l)}catch{const k=i.split("\n");f=(k[0]??"").replace(/^#\s*/,"").substring(0,100)}}else{f=m.basename(c)}g.push({file:u,fullPath:c,title:f,body:l.substring(0,C),okfTitle:d.okfTitle??f,...d})}catch{}}return{docs:g,fileCount:r.length}}runBm25Search(o,t,s,n="all",a=1){const r=I(n,a);const g=o.map((i,u)=>({id:String(u),type:"document",category:"general",tags:[],date:"",summary:i.title,body:i.body,okfTitle:i.okfTitle??i.title,okfDescription:i.okfDescription??"",okfTags:i.okfTags??"",okfLinks:i.okfLinks??"",highlightQuotes:i.highlightQuotes??"",highlightNotes:i.highlightNotes??"",highlightIntents:i.highlightIntents??"",highlightColors:i.highlightColors??"",highlightedHeadings:i.highlightedHeadings??"",title:i.title,file:i.file,fullPath:i.fullPath}));const c=(0,p.searchEntries)(g,t,r);return c.slice(0,s).map(i=>{const u=o[Number(i.id)];const f={file:i["file"],fullPath:i["fullPath"],title:i["title"],body:i.body||"",score:i._score,okfTitle:i["okfTitle"],okfDescription:i["okfDescription"],okfTags:i["okfTags"],okfLinks:i["okfLinks"],highlightQuotes:i["highlightQuotes"],highlightNotes:i["highlightNotes"],highlightIntents:i["highlightIntents"],highlightColors:i["highlightColors"],highlightedHeadings:i["highlightedHeadings"],matchedField:u?L(u,t,r):"body"};return f})}async search(o){const{query:t,searchPath:s=".",glob:n="**/*.md",limit:a=20,json:r=false,scope:g="all",highlightBoost:c=1}=o;const i=m.resolve(s);const{docs:u,fileCount:f}=await this.collectDocuments(i,n);if(f===0){console.log(`No files found: ${m.join(i,n)}`);process.exit(1)}if(u.length===0){console.log("No readable files found.");process.exit(1)}const l=this.runBm25Search(u,t,a,g,c);if(l.length===0){console.log(`No results found for '${t}'.`);process.exit(0)}if(r){console.log(JSON.stringify(l.map(d=>({file:d.file,score:d.score,title:d.title.substring(0,100),matchedField:d.matchedField})),null,2))}else{console.log(`
2
+ \u{1F50D} Search: "${t}" (${l.length} results across ${f} files)
3
+ `);for(const y of l){const j=y.title.substring(0,60).replace(/\n/g," ");const D=y.matchedField?` [${y.matchedField}]`:"";console.log(`[${y.score} pts] ${y.file}${D}`);if(j)console.log(` ${j}`)}const d={commandId:"search",params:{query:t,path:i},resultCount:l.length};const k=(0,p.generateNextActions)(d);const T=(0,p.formatActions)(k);if(T)console.log(T)}}async searchAndReturn(o){const{query:t,searchPath:s=".",glob:n="**/*.md",limit:a=20,scope:r="all",highlightBoost:g=1}=o;const c=m.resolve(s);const{docs:i}=await this.collectDocuments(c,n);if(i.length===0){return[]}return this.runBm25Search(i,t,a,r,g)}}exports.SearchEngine=A;
@@ -35,4 +35,4 @@ export interface JsonResult {
35
35
  title: string;
36
36
  matchedField?: string;
37
37
  }
38
- //# sourceMappingURL=types.d.ts.map
38
+
package/dist/src/types.js CHANGED
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewx/search",
3
- "version": "0.1.10-rc.18",
3
+ "version": "0.1.10-rc.180",
4
4
  "description": "BM25 full-text search engine for CrewX documents and code",
5
5
  "type": "commonjs",
6
6
  "main": "dist/src/engine.js",
@@ -34,8 +34,8 @@
34
34
  "license": "MIT",
35
35
  "dependencies": {
36
36
  "glob": "^10.0.0",
37
- "@crewx/shared": "0.0.6-rc.6",
38
- "@crewx/knowledge-core": "0.1.17-rc.14"
37
+ "@crewx/shared": "0.0.6-rc.99",
38
+ "@crewx/knowledge-core": "0.1.17-rc.194"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^20.0.0",
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AAkDA,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF9D"}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,oBAyFC;AAtHD,uCAAyB;AACzB,2CAA6B;AAC7B,yCAA4C;AAI5C,IAAI,WAAW,GAAG,SAAS,CAAC;AAC5B,IAAI,CAAC;IACH,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,IAAI,IAAI,EAAE,OAAO;QAAE,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAGV,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QAAC,OAAO,wDAAa,4BAA4B,GAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,SAAoB;IAC7C,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,iBAAiB,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,GAAG;KACpB,CAAC;IAGF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAgB,CAAC;YAClD,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC3E,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACtC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC;gBACA,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B1B,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IAClC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAY,aAAa,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAkMlF,qBAAa,YAAY;YAKT,gBAAgB;IAuD9B,OAAO,CAAC,aAAa;IAoEf,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAwE1C,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAmBpE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,KAAK,EAAE,MAAM,CAAC;IAEd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}