@crewx/doc 0.1.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 +7 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +388 -0
- package/dist/cli.js.map +1 -0
- package/dist/src/engine.d.ts +16 -0
- package/dist/src/engine.d.ts.map +1 -0
- package/dist/src/engine.js +199 -0
- package/dist/src/engine.js.map +1 -0
- package/dist/src/indexer.d.ts +7 -0
- package/dist/src/indexer.d.ts.map +1 -0
- package/dist/src/indexer.js +125 -0
- package/dist/src/indexer.js.map +1 -0
- package/dist/src/types.d.ts +28 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +31 -0
package/README.md
ADDED
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,388 @@
|
|
|
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
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const engine_1 = require("./src/engine");
|
|
40
|
+
const indexer_1 = require("./src/indexer");
|
|
41
|
+
const knowledge_core_1 = require("@crewx/knowledge-core");
|
|
42
|
+
function loadTracer() {
|
|
43
|
+
const candidates = [
|
|
44
|
+
path.join(__dirname, '../../../../skills/lib/skill-tracer.js'),
|
|
45
|
+
path.join(__dirname, '../../../skills/lib/skill-tracer.js'),
|
|
46
|
+
];
|
|
47
|
+
for (const p of candidates) {
|
|
48
|
+
try {
|
|
49
|
+
if (fs.existsSync(p))
|
|
50
|
+
return require(p);
|
|
51
|
+
}
|
|
52
|
+
catch { }
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
function showSkillHelp() {
|
|
57
|
+
const skillMd = path.join(__dirname, '..', 'SKILL.md');
|
|
58
|
+
if (fs.existsSync(skillMd)) {
|
|
59
|
+
process.stdout.write(fs.readFileSync(skillMd, 'utf-8'));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log('No SKILL.md found. Use --help for usage.');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const args = process.argv.slice(2);
|
|
66
|
+
const command = args[0];
|
|
67
|
+
const forceColor = args.includes('--color');
|
|
68
|
+
const noColor = !forceColor && (args.includes('--no-color') || !process.stdout.isTTY || !!process.env.NO_COLOR);
|
|
69
|
+
const engine = new engine_1.DocEngine(noColor);
|
|
70
|
+
function printUsage() {
|
|
71
|
+
const c = noColor
|
|
72
|
+
? { cyan: '', yellow: '', reset: '' }
|
|
73
|
+
: { cyan: '\x1b[36m', yellow: '\x1b[33m', reset: '\x1b[0m' };
|
|
74
|
+
console.log(`
|
|
75
|
+
${c.cyan}doc${c.reset} - Document management and knowledge tools
|
|
76
|
+
|
|
77
|
+
${c.yellow}Usage:${c.reset}
|
|
78
|
+
doc create <dir> "<title>" [--tags=t1,t2] [--category=cat] [--author=agent] [--body="content"] [--important]
|
|
79
|
+
doc toc <file> [--depth=N] Extract TOC (default depth: 6)
|
|
80
|
+
doc section <file> <heading> Extract specific section
|
|
81
|
+
doc status <file> Show TOC with status markers
|
|
82
|
+
doc summary <file> Show implementation status summary
|
|
83
|
+
doc index [dir] Index docs with frontmatter (default: docs/)
|
|
84
|
+
doc stats [dir] Show document statistics
|
|
85
|
+
doc find <query> [dir] BM25 search docs (default dir: docs/)
|
|
86
|
+
doc graph [dir] Build document graph
|
|
87
|
+
doc tags [dir] Aggregate tags with counts
|
|
88
|
+
doc properties [dir] Show frontmatter property values
|
|
89
|
+
|
|
90
|
+
${c.yellow}Examples:${c.reset}
|
|
91
|
+
doc create docs/research "테스트 문서" --tags=test,research --category=research
|
|
92
|
+
doc toc docs/설계서.md
|
|
93
|
+
doc section docs/설계서.md "API 설계"
|
|
94
|
+
doc index
|
|
95
|
+
doc find "온보딩"
|
|
96
|
+
doc tags
|
|
97
|
+
`);
|
|
98
|
+
}
|
|
99
|
+
async function main() {
|
|
100
|
+
if (command === 'help') {
|
|
101
|
+
showSkillHelp();
|
|
102
|
+
process.exit(0);
|
|
103
|
+
}
|
|
104
|
+
if (!command || command === '--help' || command === '-h') {
|
|
105
|
+
printUsage();
|
|
106
|
+
process.exit(0);
|
|
107
|
+
}
|
|
108
|
+
const docsDir = args[1] || 'docs';
|
|
109
|
+
if (command === 'index') {
|
|
110
|
+
const entries = (0, indexer_1.indexDocs)(docsDir);
|
|
111
|
+
console.log(`Indexed ${entries.length} documents from ${docsDir}/`);
|
|
112
|
+
const importantEntries = entries.filter(e => e.important);
|
|
113
|
+
const normalEntries = entries.filter(e => !e.important);
|
|
114
|
+
const sorted = [...importantEntries, ...normalEntries];
|
|
115
|
+
for (const entry of sorted) {
|
|
116
|
+
const star = entry.important ? '⭐ ' : '';
|
|
117
|
+
const tags = entry.tags.length > 0 ? ` [${entry.tags.join(', ')}]` : '';
|
|
118
|
+
console.log(` ${star}${entry.id} (${entry.category})${tags} — ${entry.summary}`);
|
|
119
|
+
}
|
|
120
|
+
const allTags = [...new Set(entries.flatMap(e => e.tags))].slice(0, 3);
|
|
121
|
+
const ctx = {
|
|
122
|
+
commandId: 'doc.index',
|
|
123
|
+
params: {},
|
|
124
|
+
resultTags: allTags,
|
|
125
|
+
resultCount: entries.length,
|
|
126
|
+
};
|
|
127
|
+
const actions = (0, knowledge_core_1.generateNextActions)(ctx);
|
|
128
|
+
const block = (0, knowledge_core_1.formatActions)(actions);
|
|
129
|
+
if (block)
|
|
130
|
+
console.log(block);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (command === 'stats') {
|
|
134
|
+
const entries = (0, indexer_1.indexDocs)(docsDir);
|
|
135
|
+
const importantCount = entries.filter(e => e.important).length;
|
|
136
|
+
const categoryCounts = {};
|
|
137
|
+
for (const entry of entries) {
|
|
138
|
+
categoryCounts[entry.category] = (categoryCounts[entry.category] ?? 0) + 1;
|
|
139
|
+
}
|
|
140
|
+
const sortedCategories = Object.entries(categoryCounts).sort(([, a], [, b]) => b - a);
|
|
141
|
+
const tags = (0, indexer_1.collectTags)(entries);
|
|
142
|
+
const sortedTags = Object.entries(tags).sort(([, a], [, b]) => b - a).slice(0, 10);
|
|
143
|
+
const importantNote = importantCount > 0 ? `, ${importantCount} ⭐ important` : '';
|
|
144
|
+
console.log(`Document Stats: ${docsDir}/ (${entries.length} docs${importantNote})`);
|
|
145
|
+
console.log('\nCategories:');
|
|
146
|
+
for (const [cat, count] of sortedCategories) {
|
|
147
|
+
console.log(` ${cat}: ${count}`);
|
|
148
|
+
}
|
|
149
|
+
console.log('\nTags TOP 10:');
|
|
150
|
+
if (sortedTags.length === 0) {
|
|
151
|
+
console.log(' (none)');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
for (const [tag, count] of sortedTags) {
|
|
155
|
+
console.log(` ${tag}: ${count}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const topTags = sortedTags.slice(0, 3).map(([t]) => t);
|
|
159
|
+
const statsCtx = {
|
|
160
|
+
commandId: 'doc.stats',
|
|
161
|
+
params: {},
|
|
162
|
+
resultTags: topTags,
|
|
163
|
+
resultCount: entries.length,
|
|
164
|
+
};
|
|
165
|
+
const statsActions = (0, knowledge_core_1.generateNextActions)(statsCtx);
|
|
166
|
+
const statsBlock = (0, knowledge_core_1.formatActions)(statsActions);
|
|
167
|
+
if (statsBlock)
|
|
168
|
+
console.log(statsBlock);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (command === 'find') {
|
|
172
|
+
const query = args[1];
|
|
173
|
+
if (!query) {
|
|
174
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
175
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
176
|
+
console.error(`${red}Error: Query required${reset}`);
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
const dir = args[2] || 'docs';
|
|
180
|
+
const entries = (0, indexer_1.indexDocs)(dir);
|
|
181
|
+
const results = (0, indexer_1.findDocs)(entries, query);
|
|
182
|
+
if (results.length === 0) {
|
|
183
|
+
console.log('No results found.');
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
console.log(`Found ${results.length} results:`);
|
|
187
|
+
for (const r of results) {
|
|
188
|
+
console.log(` [${r._score}] ${r.id} — ${r.summary}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const resultTags = [...new Set(results.flatMap(r => r.tags ?? []))].slice(0, 3);
|
|
192
|
+
const resultIds = results.slice(0, 3).map(r => r.id);
|
|
193
|
+
const findCtx = {
|
|
194
|
+
commandId: 'doc.find',
|
|
195
|
+
params: { query },
|
|
196
|
+
resultTags,
|
|
197
|
+
resultIds,
|
|
198
|
+
resultCount: results.length,
|
|
199
|
+
};
|
|
200
|
+
const findActions = (0, knowledge_core_1.generateNextActions)(findCtx);
|
|
201
|
+
const findBlock = (0, knowledge_core_1.formatActions)(findActions);
|
|
202
|
+
if (findBlock)
|
|
203
|
+
console.log(findBlock);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (command === 'graph') {
|
|
207
|
+
const entries = (0, indexer_1.indexDocs)(docsDir);
|
|
208
|
+
const graph = (0, indexer_1.buildDocGraph)(entries);
|
|
209
|
+
console.log(`Graph: ${graph.stats.nodeCount} nodes, ${graph.stats.edgeCount} edges`);
|
|
210
|
+
if (graph.edges.length > 0) {
|
|
211
|
+
console.log('Edges:');
|
|
212
|
+
for (const edge of graph.edges) {
|
|
213
|
+
console.log(` ${edge.from} ↔ ${edge.to} (${edge.type}, w=${edge.weight})`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
const graphTags = [...new Set(entries.flatMap(e => e.tags))].slice(0, 3);
|
|
217
|
+
const graphCtx = {
|
|
218
|
+
commandId: 'doc.graph',
|
|
219
|
+
params: {},
|
|
220
|
+
resultTags: graphTags,
|
|
221
|
+
resultCount: graph.stats.nodeCount,
|
|
222
|
+
};
|
|
223
|
+
const graphActions = (0, knowledge_core_1.generateNextActions)(graphCtx);
|
|
224
|
+
const graphBlock = (0, knowledge_core_1.formatActions)(graphActions);
|
|
225
|
+
if (graphBlock)
|
|
226
|
+
console.log(graphBlock);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (command === 'tags') {
|
|
230
|
+
const entries = (0, indexer_1.indexDocs)(docsDir);
|
|
231
|
+
const tags = (0, indexer_1.collectTags)(entries);
|
|
232
|
+
const sorted = Object.entries(tags).sort(([, a], [, b]) => b - a);
|
|
233
|
+
console.log(`Tags (${sorted.length} unique):`);
|
|
234
|
+
for (const [tag, count] of sorted) {
|
|
235
|
+
console.log(` ${tag}: ${count}`);
|
|
236
|
+
}
|
|
237
|
+
const topTags = sorted.slice(0, 3).map(([t]) => t);
|
|
238
|
+
const tagsCtx = {
|
|
239
|
+
commandId: 'doc.tags',
|
|
240
|
+
params: {},
|
|
241
|
+
resultTags: topTags,
|
|
242
|
+
resultCount: sorted.length,
|
|
243
|
+
};
|
|
244
|
+
const tagsActions = (0, knowledge_core_1.generateNextActions)(tagsCtx);
|
|
245
|
+
const tagsBlock = (0, knowledge_core_1.formatActions)(tagsActions);
|
|
246
|
+
if (tagsBlock)
|
|
247
|
+
console.log(tagsBlock);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if (command === 'properties') {
|
|
251
|
+
const entries = (0, indexer_1.indexDocs)(docsDir);
|
|
252
|
+
const props = (0, indexer_1.collectProperties)(entries);
|
|
253
|
+
console.log('Frontmatter properties:');
|
|
254
|
+
for (const [key, values] of Object.entries(props)) {
|
|
255
|
+
console.log(` ${key}: ${values.join(', ')}`);
|
|
256
|
+
}
|
|
257
|
+
const propTags = [...new Set(entries.flatMap(e => e.tags))].slice(0, 3);
|
|
258
|
+
const propCtx = {
|
|
259
|
+
commandId: 'doc.index',
|
|
260
|
+
params: {},
|
|
261
|
+
resultTags: propTags,
|
|
262
|
+
resultCount: entries.length,
|
|
263
|
+
};
|
|
264
|
+
const propActions = (0, knowledge_core_1.generateNextActions)(propCtx);
|
|
265
|
+
const propBlock = (0, knowledge_core_1.formatActions)(propActions);
|
|
266
|
+
if (propBlock)
|
|
267
|
+
console.log(propBlock);
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
if (command === 'create') {
|
|
271
|
+
const dir = args[1];
|
|
272
|
+
const title = args[2];
|
|
273
|
+
if (!dir || !title) {
|
|
274
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
275
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
276
|
+
console.error(`${red}Error: dir and title are required${reset}`);
|
|
277
|
+
console.error('Usage: doc create <dir> "<title>" [--tags=t1,t2] [--category=cat] [--author=agent] [--body="content"] [--important]');
|
|
278
|
+
process.exit(1);
|
|
279
|
+
}
|
|
280
|
+
const tagsArg = args.find(a => a.startsWith('--tags='));
|
|
281
|
+
const tags = tagsArg ? tagsArg.slice('--tags='.length).split(',').map(t => t.trim()).filter(Boolean) : [];
|
|
282
|
+
const categoryArg = args.find(a => a.startsWith('--category='));
|
|
283
|
+
const category = categoryArg ? categoryArg.slice('--category='.length) : 'general';
|
|
284
|
+
const authorArg = args.find(a => a.startsWith('--author='));
|
|
285
|
+
const author = authorArg ? authorArg.slice('--author='.length) : '';
|
|
286
|
+
const bodyArg = args.find(a => a.startsWith('--body='));
|
|
287
|
+
const body = bodyArg ? bodyArg.slice('--body='.length) : '';
|
|
288
|
+
const important = args.includes('--important');
|
|
289
|
+
const slug = title
|
|
290
|
+
.trim()
|
|
291
|
+
.replace(/[\s_]+/g, '-')
|
|
292
|
+
.toLowerCase()
|
|
293
|
+
.replace(/[^a-z0-9\uAC00-\uD7AF\u3130-\u318F-]/g, '')
|
|
294
|
+
.replace(/-+/g, '-')
|
|
295
|
+
.replace(/^-+|-+$/g, '');
|
|
296
|
+
const createFilePath = path.join(dir, `${slug}.md`);
|
|
297
|
+
if (fs.existsSync(createFilePath)) {
|
|
298
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
299
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
300
|
+
console.error(`${red}Error: File already exists: ${createFilePath}${reset}`);
|
|
301
|
+
process.exit(1);
|
|
302
|
+
}
|
|
303
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
304
|
+
const today = new Date().toISOString().split('T')[0];
|
|
305
|
+
const tagsYaml = tags.length > 0 ? `[${tags.join(', ')}]` : '[]';
|
|
306
|
+
const authorLine = author ? `author: ${author}\n` : '';
|
|
307
|
+
const importantLine = important ? `important: true\n` : '';
|
|
308
|
+
let content = `---\ntype: document\nsummary: ${title}\ncategory: ${category}\ntags: ${tagsYaml}\ndate: ${today}\n${authorLine}${importantLine}---\n`;
|
|
309
|
+
if (body) {
|
|
310
|
+
content += `\n${body}\n`;
|
|
311
|
+
}
|
|
312
|
+
fs.writeFileSync(createFilePath, content, 'utf-8');
|
|
313
|
+
const green = noColor ? '' : '\x1b[32m';
|
|
314
|
+
const reset2 = noColor ? '' : '\x1b[0m';
|
|
315
|
+
console.log(`${green}Created:${reset2} ${createFilePath}`);
|
|
316
|
+
const createCtx = {
|
|
317
|
+
commandId: 'doc.create',
|
|
318
|
+
params: { dir, title },
|
|
319
|
+
resultTags: tags,
|
|
320
|
+
resultCount: 1,
|
|
321
|
+
};
|
|
322
|
+
const createActions = (0, knowledge_core_1.generateNextActions)(createCtx);
|
|
323
|
+
const createBlock = (0, knowledge_core_1.formatActions)(createActions);
|
|
324
|
+
if (createBlock)
|
|
325
|
+
console.log(createBlock);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
const filePath = args[1];
|
|
329
|
+
if (!filePath) {
|
|
330
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
331
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
332
|
+
console.error(`${red}Error: File path required${reset}`);
|
|
333
|
+
printUsage();
|
|
334
|
+
process.exit(1);
|
|
335
|
+
}
|
|
336
|
+
switch (command) {
|
|
337
|
+
case 'toc': {
|
|
338
|
+
const depthArg = args.find(a => a.startsWith('--depth='));
|
|
339
|
+
const maxDepth = depthArg ? parseInt(depthArg.split('=')[1], 10) : 6;
|
|
340
|
+
engine.toc(filePath, { maxDepth });
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
case 'section': {
|
|
344
|
+
const selector = args[2];
|
|
345
|
+
if (!selector) {
|
|
346
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
347
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
348
|
+
console.error(`${red}Error: Heading selector required${reset}`);
|
|
349
|
+
process.exit(1);
|
|
350
|
+
}
|
|
351
|
+
engine.section(filePath, selector);
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
case 'status': {
|
|
355
|
+
engine.status(filePath);
|
|
356
|
+
break;
|
|
357
|
+
}
|
|
358
|
+
case 'summary': {
|
|
359
|
+
engine.summary(filePath);
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
default: {
|
|
363
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
364
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
365
|
+
console.error(`${red}Unknown command: ${command}${reset}`);
|
|
366
|
+
printUsage();
|
|
367
|
+
process.exit(1);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
const tracer = loadTracer();
|
|
372
|
+
if (tracer) {
|
|
373
|
+
tracer.run('crewx/doc', main).catch((err) => {
|
|
374
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
375
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
376
|
+
console.error(`${red}Error: ${err.message}${reset}`);
|
|
377
|
+
process.exit(1);
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
main().catch(err => {
|
|
382
|
+
const red = noColor ? '' : '\x1b[31m';
|
|
383
|
+
const reset = noColor ? '' : '\x1b[0m';
|
|
384
|
+
console.error(`${red}Error: ${err.message}${reset}`);
|
|
385
|
+
process.exit(1);
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Heading, HeadingStatusResult, Section, StatusStats, TocOptions } from './types';
|
|
2
|
+
export declare class DocEngine {
|
|
3
|
+
private colors;
|
|
4
|
+
constructor(noColor?: boolean);
|
|
5
|
+
extractHeadings(content: string, maxDepth?: number): Heading[];
|
|
6
|
+
detectStatus(text: string): HeadingStatusResult;
|
|
7
|
+
formatTocTree(headings: Heading[], showStatus?: boolean): string;
|
|
8
|
+
extractSection(content: string, headingSelector: string): Section | null;
|
|
9
|
+
generateStatusSummary(content: string): StatusStats;
|
|
10
|
+
toc(filePath: string, opts?: TocOptions): void;
|
|
11
|
+
section(filePath: string, selector: string): void;
|
|
12
|
+
status(filePath: string): void;
|
|
13
|
+
summary(filePath: string): void;
|
|
14
|
+
private readFile;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY9F,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;gBAElB,OAAO,UAAQ;IAkB3B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,OAAO,EAAE;IAuCzD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB;IAmB/C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,UAAQ,GAAG,MAAM;IAuB9D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAkCxE,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAenD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,IAAI;IAUlD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBjD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS9B,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgB/B,OAAO,CAAC,QAAQ;CAajB"}
|
|
@@ -0,0 +1,199 @@
|
|
|
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.DocEngine = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const COLORS = {
|
|
40
|
+
reset: '\x1b[0m',
|
|
41
|
+
dim: '\x1b[2m',
|
|
42
|
+
green: '\x1b[32m',
|
|
43
|
+
red: '\x1b[31m',
|
|
44
|
+
yellow: '\x1b[33m',
|
|
45
|
+
cyan: '\x1b[36m',
|
|
46
|
+
};
|
|
47
|
+
class DocEngine {
|
|
48
|
+
constructor(noColor = false) {
|
|
49
|
+
if (noColor || process.env.NO_COLOR) {
|
|
50
|
+
this.colors = {
|
|
51
|
+
reset: '',
|
|
52
|
+
dim: '',
|
|
53
|
+
green: '',
|
|
54
|
+
red: '',
|
|
55
|
+
yellow: '',
|
|
56
|
+
cyan: '',
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.colors = { ...COLORS };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
extractHeadings(content, maxDepth = 6) {
|
|
64
|
+
const lines = content.split('\n');
|
|
65
|
+
const headings = [];
|
|
66
|
+
let inCodeBlock = false;
|
|
67
|
+
for (let i = 0; i < lines.length; i++) {
|
|
68
|
+
const line = lines[i];
|
|
69
|
+
if (line.startsWith('```')) {
|
|
70
|
+
inCodeBlock = !inCodeBlock;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (inCodeBlock)
|
|
74
|
+
continue;
|
|
75
|
+
const match = line.match(/^(#{1,6})\s+(.+)$/);
|
|
76
|
+
if (match) {
|
|
77
|
+
const depth = match[1].length;
|
|
78
|
+
if (depth <= maxDepth) {
|
|
79
|
+
const text = match[2].trim();
|
|
80
|
+
const id = text
|
|
81
|
+
.toLowerCase()
|
|
82
|
+
.replace(/[^\w\s가-힣-]/g, '')
|
|
83
|
+
.replace(/\s+/g, '-');
|
|
84
|
+
headings.push({ depth, text, id, line: i + 1 });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return headings;
|
|
89
|
+
}
|
|
90
|
+
detectStatus(text) {
|
|
91
|
+
if (text.includes('✅') || text.includes('[x]') || text.toLowerCase().includes('구현됨')) {
|
|
92
|
+
return { status: 'done', icon: '✅' };
|
|
93
|
+
}
|
|
94
|
+
if (text.includes('❌') || text.includes('[ ]') || text.toLowerCase().includes('미구현')) {
|
|
95
|
+
return { status: 'todo', icon: '❌' };
|
|
96
|
+
}
|
|
97
|
+
if (text.includes('⚠️') || text.toLowerCase().includes('부분')) {
|
|
98
|
+
return { status: 'partial', icon: '⚠️' };
|
|
99
|
+
}
|
|
100
|
+
if (text.includes('🚧') || text.toLowerCase().includes('진행')) {
|
|
101
|
+
return { status: 'wip', icon: '🚧' };
|
|
102
|
+
}
|
|
103
|
+
return { status: 'unknown', icon: ' ' };
|
|
104
|
+
}
|
|
105
|
+
formatTocTree(headings, showStatus = false) {
|
|
106
|
+
const c = this.colors;
|
|
107
|
+
const lines = [];
|
|
108
|
+
for (const h of headings) {
|
|
109
|
+
const indent = ' '.repeat(h.depth - 1);
|
|
110
|
+
const lineNum = c.dim + `L${h.line}`.padStart(5) + c.reset;
|
|
111
|
+
let statusIcon = '';
|
|
112
|
+
if (showStatus) {
|
|
113
|
+
const { icon } = this.detectStatus(h.text);
|
|
114
|
+
statusIcon = icon + ' ';
|
|
115
|
+
}
|
|
116
|
+
lines.push(`${lineNum} ${indent}${statusIcon}${h.text}`);
|
|
117
|
+
}
|
|
118
|
+
return lines.join('\n');
|
|
119
|
+
}
|
|
120
|
+
extractSection(content, headingSelector) {
|
|
121
|
+
const lines = content.split('\n');
|
|
122
|
+
const headings = this.extractHeadings(content);
|
|
123
|
+
const selector = headingSelector.toLowerCase();
|
|
124
|
+
const targetIdx = headings.findIndex(h => h.text.toLowerCase().includes(selector) || h.id === selector);
|
|
125
|
+
if (targetIdx === -1) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const target = headings[targetIdx];
|
|
129
|
+
const startLine = target.line - 1;
|
|
130
|
+
let endLine = lines.length;
|
|
131
|
+
for (let i = targetIdx + 1; i < headings.length; i++) {
|
|
132
|
+
if (headings[i].depth <= target.depth) {
|
|
133
|
+
endLine = headings[i].line - 1;
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
heading: target,
|
|
139
|
+
content: lines.slice(startLine, endLine).join('\n'),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
generateStatusSummary(content) {
|
|
143
|
+
const headings = this.extractHeadings(content);
|
|
144
|
+
const stats = { done: 0, todo: 0, partial: 0, wip: 0, unknown: 0 };
|
|
145
|
+
for (const h of headings) {
|
|
146
|
+
const { status } = this.detectStatus(h.text);
|
|
147
|
+
stats[status]++;
|
|
148
|
+
}
|
|
149
|
+
return stats;
|
|
150
|
+
}
|
|
151
|
+
toc(filePath, opts = {}) {
|
|
152
|
+
const content = this.readFile(filePath);
|
|
153
|
+
const maxDepth = opts.maxDepth ?? 6;
|
|
154
|
+
const headings = this.extractHeadings(content, maxDepth);
|
|
155
|
+
console.log(this.formatTocTree(headings));
|
|
156
|
+
}
|
|
157
|
+
section(filePath, selector) {
|
|
158
|
+
const c = this.colors;
|
|
159
|
+
const content = this.readFile(filePath);
|
|
160
|
+
const result = this.extractSection(content, selector);
|
|
161
|
+
if (!result) {
|
|
162
|
+
console.error(`${c.red}Error: Section not found: ${selector}${c.reset}`);
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
console.log(result.content);
|
|
166
|
+
}
|
|
167
|
+
status(filePath) {
|
|
168
|
+
const content = this.readFile(filePath);
|
|
169
|
+
const headings = this.extractHeadings(content);
|
|
170
|
+
console.log(this.formatTocTree(headings, true));
|
|
171
|
+
}
|
|
172
|
+
summary(filePath) {
|
|
173
|
+
const c = this.colors;
|
|
174
|
+
const content = this.readFile(filePath);
|
|
175
|
+
const stats = this.generateStatusSummary(content);
|
|
176
|
+
console.log(`
|
|
177
|
+
${c.cyan}Implementation Status Summary${c.reset}
|
|
178
|
+
─────────────────────────────
|
|
179
|
+
${c.green}✅ Done:${c.reset} ${stats.done}
|
|
180
|
+
${c.red}❌ Todo:${c.reset} ${stats.todo}
|
|
181
|
+
${c.yellow}⚠️ Partial:${c.reset} ${stats.partial}
|
|
182
|
+
🚧 WIP: ${stats.wip}
|
|
183
|
+
Unknown: ${stats.unknown}
|
|
184
|
+
`);
|
|
185
|
+
}
|
|
186
|
+
readFile(filePath) {
|
|
187
|
+
const c = this.colors;
|
|
188
|
+
const resolvedPath = path.isAbsolute(filePath)
|
|
189
|
+
? filePath
|
|
190
|
+
: path.resolve(process.cwd(), filePath);
|
|
191
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
192
|
+
console.error(`${c.red}Error: File not found: ${resolvedPath}${c.reset}`);
|
|
193
|
+
process.exit(1);
|
|
194
|
+
}
|
|
195
|
+
return fs.readFileSync(resolvedPath, 'utf-8');
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
exports.DocEngine = DocEngine;
|
|
199
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { KnowledgeEntry, ScoredEntry, Graph, BuildGraphOptions } from '@crewx/knowledge-core';
|
|
2
|
+
export declare function indexDocs(docsDir: string): KnowledgeEntry[];
|
|
3
|
+
export declare function findDocs(entries: KnowledgeEntry[], query: string): ScoredEntry[];
|
|
4
|
+
export declare function buildDocGraph(entries: KnowledgeEntry[], options?: BuildGraphOptions): Graph;
|
|
5
|
+
export declare function collectTags(entries: KnowledgeEntry[]): Record<string, number>;
|
|
6
|
+
export declare function collectProperties(entries: KnowledgeEntry[]): Record<string, string[]>;
|
|
7
|
+
//# sourceMappingURL=indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,KAAK,EACL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAuC/B,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CA0B3D;AAMD,wBAAgB,QAAQ,CACtB,OAAO,EAAE,cAAc,EAAE,EACzB,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE,CAEf;AAMD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,KAAK,CAEP;AAMD,wBAAgB,WAAW,CACzB,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB;AAMD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsB1B"}
|
|
@@ -0,0 +1,125 @@
|
|
|
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.indexDocs = indexDocs;
|
|
37
|
+
exports.findDocs = findDocs;
|
|
38
|
+
exports.buildDocGraph = buildDocGraph;
|
|
39
|
+
exports.collectTags = collectTags;
|
|
40
|
+
exports.collectProperties = collectProperties;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const knowledge_core_1 = require("@crewx/knowledge-core");
|
|
44
|
+
const DOC_FIELD_WEIGHTS = { summary: 3, tags: 2, body: 1 };
|
|
45
|
+
function collectMdFiles(dir) {
|
|
46
|
+
const results = [];
|
|
47
|
+
if (!fs.existsSync(dir))
|
|
48
|
+
return results;
|
|
49
|
+
const items = fs.readdirSync(dir, { withFileTypes: true });
|
|
50
|
+
for (const item of items) {
|
|
51
|
+
const fullPath = path.join(dir, item.name);
|
|
52
|
+
if (item.isDirectory()) {
|
|
53
|
+
results.push(...collectMdFiles(fullPath));
|
|
54
|
+
}
|
|
55
|
+
else if (item.isFile() && item.name.endsWith('.md')) {
|
|
56
|
+
results.push(fullPath);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return results;
|
|
60
|
+
}
|
|
61
|
+
function filePathToId(filePath, baseDir) {
|
|
62
|
+
const relative = path.relative(baseDir, filePath);
|
|
63
|
+
return relative.replace(/\.md$/, '');
|
|
64
|
+
}
|
|
65
|
+
function indexDocs(docsDir) {
|
|
66
|
+
const files = collectMdFiles(docsDir);
|
|
67
|
+
const entries = [];
|
|
68
|
+
for (const file of files) {
|
|
69
|
+
const raw = fs.readFileSync(file, 'utf-8');
|
|
70
|
+
const { data, content } = (0, knowledge_core_1.parseFrontmatter)(raw);
|
|
71
|
+
if (!data.type && !data.summary)
|
|
72
|
+
continue;
|
|
73
|
+
const entry = {
|
|
74
|
+
id: filePathToId(file, docsDir),
|
|
75
|
+
type: (data.type || 'document'),
|
|
76
|
+
category: data.category || 'general',
|
|
77
|
+
tags: Array.isArray(data.tags) ? data.tags : [],
|
|
78
|
+
date: data.date || '',
|
|
79
|
+
summary: data.summary || '',
|
|
80
|
+
body: content.trim(),
|
|
81
|
+
...(data.important === true ? { important: true } : {}),
|
|
82
|
+
};
|
|
83
|
+
entries.push(entry);
|
|
84
|
+
}
|
|
85
|
+
return entries;
|
|
86
|
+
}
|
|
87
|
+
function findDocs(entries, query) {
|
|
88
|
+
return (0, knowledge_core_1.searchEntries)(entries, query, DOC_FIELD_WEIGHTS);
|
|
89
|
+
}
|
|
90
|
+
function buildDocGraph(entries, options) {
|
|
91
|
+
return (0, knowledge_core_1.buildGraph)(entries, options);
|
|
92
|
+
}
|
|
93
|
+
function collectTags(entries) {
|
|
94
|
+
const tagCounts = {};
|
|
95
|
+
for (const entry of entries) {
|
|
96
|
+
if (!entry.tags)
|
|
97
|
+
continue;
|
|
98
|
+
for (const tag of entry.tags) {
|
|
99
|
+
tagCounts[tag] = (tagCounts[tag] || 0) + 1;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return tagCounts;
|
|
103
|
+
}
|
|
104
|
+
function collectProperties(entries) {
|
|
105
|
+
if (entries.length === 0)
|
|
106
|
+
return {};
|
|
107
|
+
const propsMap = {};
|
|
108
|
+
const targetKeys = ['type', 'category'];
|
|
109
|
+
for (const entry of entries) {
|
|
110
|
+
for (const key of targetKeys) {
|
|
111
|
+
const value = entry[key];
|
|
112
|
+
if (typeof value === 'string' && value) {
|
|
113
|
+
if (!propsMap[key])
|
|
114
|
+
propsMap[key] = new Set();
|
|
115
|
+
propsMap[key].add(value);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const result = {};
|
|
120
|
+
for (const [key, values] of Object.entries(propsMap)) {
|
|
121
|
+
result[key] = [...values].sort();
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=indexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface Heading {
|
|
2
|
+
depth: number;
|
|
3
|
+
text: string;
|
|
4
|
+
id: string;
|
|
5
|
+
line: number;
|
|
6
|
+
}
|
|
7
|
+
export type HeadingStatus = 'done' | 'todo' | 'partial' | 'wip' | 'unknown';
|
|
8
|
+
export interface HeadingStatusResult {
|
|
9
|
+
status: HeadingStatus;
|
|
10
|
+
icon: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Section {
|
|
13
|
+
heading: Heading;
|
|
14
|
+
content: string;
|
|
15
|
+
}
|
|
16
|
+
export interface StatusStats {
|
|
17
|
+
done: number;
|
|
18
|
+
todo: number;
|
|
19
|
+
partial: number;
|
|
20
|
+
wip: number;
|
|
21
|
+
unknown: number;
|
|
22
|
+
}
|
|
23
|
+
export interface TocOptions {
|
|
24
|
+
maxDepth?: number;
|
|
25
|
+
showStatus?: boolean;
|
|
26
|
+
noColor?: boolean;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@crewx/doc",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Markdown TOC extraction and section management for CrewX",
|
|
5
|
+
"type": "commonjs",
|
|
6
|
+
"main": "dist/src/engine.js",
|
|
7
|
+
"types": "dist/src/engine.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"require": "./dist/src/engine.js",
|
|
11
|
+
"types": "./dist/src/engine.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"bin": { "doc": "./dist/cli.js" },
|
|
15
|
+
"files": ["dist"],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc",
|
|
18
|
+
"dev": "ts-node cli.ts",
|
|
19
|
+
"clean": "rm -rf dist"
|
|
20
|
+
},
|
|
21
|
+
"keywords": ["crewx", "markdown", "toc", "documentation"],
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@crewx/knowledge-core": "^0.1.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/node": "^20.0.0",
|
|
28
|
+
"ts-node": "^10.9.0",
|
|
29
|
+
"typescript": "^5.0.0"
|
|
30
|
+
}
|
|
31
|
+
}
|