@ngocsangairvds/vsaf 4.1.31 → 4.2.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/package.json +1 -1
- package/packages/cli/dist/commands/install.d.ts +13 -0
- package/packages/cli/dist/commands/install.d.ts.map +1 -1
- package/packages/cli/dist/commands/install.js +220 -1
- package/packages/cli/dist/commands/install.js.map +1 -1
- package/skills/sdlc/onboard-docs/SKILL.md +77 -19
- package/skills/sdlc/onboard-docs/__pycache__/convert.cpython-314.pyc +0 -0
- package/skills/sdlc/onboard-docs/convert.py +199 -0
- package/skills/sdlc/setup/SKILL.md +2 -0
package/package.json
CHANGED
|
@@ -18,6 +18,14 @@ export interface GraphifyResult {
|
|
|
18
18
|
skillDeployed: boolean;
|
|
19
19
|
error?: string;
|
|
20
20
|
}
|
|
21
|
+
export interface MarkitdownResult {
|
|
22
|
+
installed: boolean;
|
|
23
|
+
version?: string;
|
|
24
|
+
ocrPlugin: boolean;
|
|
25
|
+
pythonPath?: string;
|
|
26
|
+
configPath?: string;
|
|
27
|
+
error?: string;
|
|
28
|
+
}
|
|
21
29
|
export interface InstallResult {
|
|
22
30
|
deploy: DeployResult;
|
|
23
31
|
init: {
|
|
@@ -27,10 +35,12 @@ export interface InstallResult {
|
|
|
27
35
|
binaries: BinaryCheck[];
|
|
28
36
|
depsRan: boolean;
|
|
29
37
|
graphify: GraphifyResult;
|
|
38
|
+
markitdown: MarkitdownResult;
|
|
30
39
|
}
|
|
31
40
|
export interface InternalInstallOptions extends InstallOptions {
|
|
32
41
|
_skillsDir?: string;
|
|
33
42
|
_skipGraphify?: boolean;
|
|
43
|
+
_skipMarkitdown?: boolean;
|
|
34
44
|
}
|
|
35
45
|
export declare function deploySkills(packDir: string, packName: string, skills: string[], targetDir: string, options: {
|
|
36
46
|
force?: boolean;
|
|
@@ -39,6 +49,9 @@ export declare function deploySkills(packDir: string, packName: string, skills:
|
|
|
39
49
|
export declare function resolvePython(): string;
|
|
40
50
|
export declare function checkBinaries(pack?: string): BinaryCheck[];
|
|
41
51
|
export declare function installGraphify(): GraphifyResult;
|
|
52
|
+
export declare function resolveMarkitdownPython(): string | null;
|
|
53
|
+
export declare function installMarkitdown(): MarkitdownResult;
|
|
54
|
+
export declare function provisionMarkitdownConfig(configDir?: string): string;
|
|
42
55
|
export declare function ensureMcpConfig(projectPath: string): void;
|
|
43
56
|
export declare function execInstall(pack: string, projectPath: string, options?: InternalInstallOptions): InstallResult;
|
|
44
57
|
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAGD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAOD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,YAAY,CA4Bd;AAQD,wBAAgB,aAAa,IAAI,MAAM,CActC;AAcD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAW1D;AAuDD,wBAAgB,eAAe,IAAI,cAAc,CAqDhD;AAqCD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAiBvD;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,CA6DpD;AAuCD,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyCpE;AAID,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAgCzD;AAiCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,aAAa,CAwJf"}
|
|
@@ -4,6 +4,9 @@ exports.deploySkills = deploySkills;
|
|
|
4
4
|
exports.resolvePython = resolvePython;
|
|
5
5
|
exports.checkBinaries = checkBinaries;
|
|
6
6
|
exports.installGraphify = installGraphify;
|
|
7
|
+
exports.resolveMarkitdownPython = resolveMarkitdownPython;
|
|
8
|
+
exports.installMarkitdown = installMarkitdown;
|
|
9
|
+
exports.provisionMarkitdownConfig = provisionMarkitdownConfig;
|
|
7
10
|
exports.ensureMcpConfig = ensureMcpConfig;
|
|
8
11
|
exports.execInstall = execInstall;
|
|
9
12
|
const fs_1 = require("fs");
|
|
@@ -202,6 +205,195 @@ function installGraphify() {
|
|
|
202
205
|
}
|
|
203
206
|
return { installed: true, version, skillDeployed };
|
|
204
207
|
}
|
|
208
|
+
// ── Install MarkItDown ──
|
|
209
|
+
function resolveMarkitdownBin() {
|
|
210
|
+
try {
|
|
211
|
+
(0, child_process_1.execSync)('markitdown --help', { stdio: 'pipe' });
|
|
212
|
+
return 'markitdown';
|
|
213
|
+
}
|
|
214
|
+
catch { }
|
|
215
|
+
const ext = IS_WIN ? '.exe' : '';
|
|
216
|
+
for (const binDir of getPipxBinPaths()) {
|
|
217
|
+
const localPath = (0, path_1.join)(binDir, `markitdown${ext}`);
|
|
218
|
+
try {
|
|
219
|
+
(0, child_process_1.execSync)(`"${localPath}" --help`, { stdio: 'pipe' });
|
|
220
|
+
return `"${localPath}"`;
|
|
221
|
+
}
|
|
222
|
+
catch { }
|
|
223
|
+
}
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
function getPipxVenvsDir() {
|
|
227
|
+
try {
|
|
228
|
+
const out = (0, child_process_1.execSync)('pipx environment --value PIPX_LOCAL_VENVS', { stdio: 'pipe', encoding: 'utf-8' });
|
|
229
|
+
const dir = out.trim();
|
|
230
|
+
if (dir && (0, fs_1.existsSync)(dir))
|
|
231
|
+
return dir;
|
|
232
|
+
}
|
|
233
|
+
catch { }
|
|
234
|
+
// Fallback known locations
|
|
235
|
+
if (IS_WIN) {
|
|
236
|
+
const candidates = [
|
|
237
|
+
(0, path_1.join)(process.env.USERPROFILE ?? (0, os_1.homedir)(), '.local', 'pipx', 'venvs'),
|
|
238
|
+
(0, path_1.join)(process.env.APPDATA ?? '', 'pipx', 'venvs'),
|
|
239
|
+
];
|
|
240
|
+
for (const dir of candidates) {
|
|
241
|
+
if ((0, fs_1.existsSync)(dir))
|
|
242
|
+
return dir;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
const dir = (0, path_1.join)((0, os_1.homedir)(), '.local', 'pipx', 'venvs');
|
|
247
|
+
if ((0, fs_1.existsSync)(dir))
|
|
248
|
+
return dir;
|
|
249
|
+
}
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
function resolveMarkitdownPython() {
|
|
253
|
+
const venvsDir = getPipxVenvsDir();
|
|
254
|
+
if (!venvsDir)
|
|
255
|
+
return null;
|
|
256
|
+
const pythonPath = IS_WIN
|
|
257
|
+
? (0, path_1.join)(venvsDir, 'markitdown', 'Scripts', 'python.exe')
|
|
258
|
+
: (0, path_1.join)(venvsDir, 'markitdown', 'bin', 'python');
|
|
259
|
+
if (!(0, fs_1.existsSync)(pythonPath))
|
|
260
|
+
return null;
|
|
261
|
+
// Verify it can import markitdown
|
|
262
|
+
try {
|
|
263
|
+
(0, child_process_1.execSync)(`"${pythonPath}" -c "import markitdown"`, { stdio: 'pipe' });
|
|
264
|
+
return pythonPath;
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
function installMarkitdown() {
|
|
271
|
+
let version;
|
|
272
|
+
let ocrPlugin = false;
|
|
273
|
+
let markitdownCmd = resolveMarkitdownBin();
|
|
274
|
+
if (!markitdownCmd) {
|
|
275
|
+
const pipxCmd = ensurePipx();
|
|
276
|
+
if (!pipxCmd) {
|
|
277
|
+
return {
|
|
278
|
+
installed: false,
|
|
279
|
+
ocrPlugin: false,
|
|
280
|
+
error: 'Could not install pipx — requires brew (macOS/Linux), scoop (Windows), or python+pip (all platforms)',
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
try {
|
|
284
|
+
// Double quotes around package spec for cross-platform shell compatibility
|
|
285
|
+
// Unix sh: prevents [all] glob expansion; Windows cmd.exe: standard argument quoting
|
|
286
|
+
(0, child_process_1.execSync)(`${pipxCmd} install "markitdown[all]"`, { stdio: 'inherit' });
|
|
287
|
+
}
|
|
288
|
+
catch {
|
|
289
|
+
// May fail if already installed via pipx
|
|
290
|
+
}
|
|
291
|
+
markitdownCmd = resolveMarkitdownBin();
|
|
292
|
+
if (!markitdownCmd) {
|
|
293
|
+
return {
|
|
294
|
+
installed: false,
|
|
295
|
+
ocrPlugin: false,
|
|
296
|
+
error: 'markitdown not found after install — restart terminal or run: pipx ensurepath',
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// Read version
|
|
301
|
+
try {
|
|
302
|
+
const out = (0, child_process_1.execSync)(`${markitdownCmd} --version`, { stdio: 'pipe', encoding: 'utf-8' });
|
|
303
|
+
version = out.trim().split('\n')[0] || undefined;
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// --version may not be supported — non-fatal
|
|
307
|
+
}
|
|
308
|
+
// Inject OCR plugin + openai SDK into markitdown's pipx venv
|
|
309
|
+
const pipxCmd = ensurePipx();
|
|
310
|
+
if (pipxCmd) {
|
|
311
|
+
try {
|
|
312
|
+
(0, child_process_1.execSync)(`${pipxCmd} inject markitdown markitdown-ocr openai anthropic`, { stdio: 'inherit' });
|
|
313
|
+
ocrPlugin = true;
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
console.warn(' ⚠ markitdown-ocr plugin injection failed — OCR will not be available');
|
|
317
|
+
console.warn(' Manual fix: pipx inject markitdown markitdown-ocr openai anthropic');
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
// Resolve pipx venv Python for convert.py usage
|
|
321
|
+
const pythonPath = resolveMarkitdownPython() ?? undefined;
|
|
322
|
+
// Provision config file
|
|
323
|
+
const configPath = provisionMarkitdownConfig();
|
|
324
|
+
return { installed: true, version, ocrPlugin, pythonPath, configPath };
|
|
325
|
+
}
|
|
326
|
+
// ── MarkItDown Config ──
|
|
327
|
+
const MARKITDOWN_ENV_TEMPLATE = `# MarkItDown OCR Configuration (used by sdlc-onboard-docs)
|
|
328
|
+
# Required for image/scanned-PDF OCR via markitdown-ocr plugin
|
|
329
|
+
#
|
|
330
|
+
# HOW TO GET YOUR API KEY & BASE URL:
|
|
331
|
+
#
|
|
332
|
+
# --- OpenAI ---
|
|
333
|
+
# API Key: https://platform.openai.com/api-keys
|
|
334
|
+
# Models: gpt-4o, gpt-4o-mini, gpt-4.1
|
|
335
|
+
# LLM_API_KEY=sk-...
|
|
336
|
+
# LLM_BASE_URL=https://api.openai.com/v1
|
|
337
|
+
# LLM_MODEL=gpt-4o
|
|
338
|
+
#
|
|
339
|
+
# --- Google Gemini ---
|
|
340
|
+
# API Key: https://aistudio.google.com/apikey
|
|
341
|
+
# Models: gemini-2.5-flash, gemini-2.5-pro, gemini-2.0-flash
|
|
342
|
+
# LLM_API_KEY=AI...
|
|
343
|
+
# LLM_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
|
|
344
|
+
# LLM_MODEL=gemini-2.5-flash
|
|
345
|
+
#
|
|
346
|
+
# --- Anthropic Claude ---
|
|
347
|
+
# API Key: https://console.anthropic.com/settings/keys
|
|
348
|
+
# Models: claude-sonnet-4-20250514, claude-opus-4-20250514
|
|
349
|
+
# LLM_API_KEY=sk-ant-...
|
|
350
|
+
# LLM_BASE_URL=https://api.anthropic.com
|
|
351
|
+
# LLM_MODEL=claude-sonnet-4-20250514
|
|
352
|
+
#
|
|
353
|
+
# --- Other OpenAI-compatible providers ---
|
|
354
|
+
# Azure OpenAI, Ollama (http://localhost:11434/v1), etc.
|
|
355
|
+
# Just set the correct base_url and model name.
|
|
356
|
+
|
|
357
|
+
LLM_API_KEY=
|
|
358
|
+
LLM_BASE_URL=https://api.openai.com/v1
|
|
359
|
+
LLM_MODEL=gpt-4o
|
|
360
|
+
`;
|
|
361
|
+
function provisionMarkitdownConfig(configDir) {
|
|
362
|
+
const dir = configDir ?? (0, path_1.join)((0, os_1.homedir)(), '.vsaf');
|
|
363
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
364
|
+
const configPath = (0, path_1.join)(dir, 'markitdown.env');
|
|
365
|
+
if (!(0, fs_1.existsSync)(configPath)) {
|
|
366
|
+
(0, fs_1.writeFileSync)(configPath, MARKITDOWN_ENV_TEMPLATE, 'utf-8');
|
|
367
|
+
console.log(` ✓ markitdown config created at ${configPath}`);
|
|
368
|
+
console.log(` ⚠ Fill in LLM_API_KEY for OCR: ${configPath}`);
|
|
369
|
+
return configPath;
|
|
370
|
+
}
|
|
371
|
+
// Merge: add missing variables from template into existing file
|
|
372
|
+
const existing = (0, fs_1.readFileSync)(configPath, 'utf-8');
|
|
373
|
+
const existingKeys = new Set(existing.split('\n')
|
|
374
|
+
.map(line => line.trim())
|
|
375
|
+
.filter(line => line && !line.startsWith('#'))
|
|
376
|
+
.map(line => line.split('=')[0].trim()));
|
|
377
|
+
const newLines = [];
|
|
378
|
+
for (const line of MARKITDOWN_ENV_TEMPLATE.split('\n')) {
|
|
379
|
+
const trimmed = line.trim();
|
|
380
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
381
|
+
continue;
|
|
382
|
+
const key = trimmed.split('=')[0].trim();
|
|
383
|
+
if (!existingKeys.has(key)) {
|
|
384
|
+
newLines.push(line);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
if (newLines.length > 0) {
|
|
388
|
+
const append = '\n# ── Added by markitdown installer ──\n' + newLines.join('\n') + '\n';
|
|
389
|
+
(0, fs_1.writeFileSync)(configPath, existing.trimEnd() + '\n' + append, 'utf-8');
|
|
390
|
+
console.log(` ✓ ${newLines.length} new variable(s) added to ${configPath}`);
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
console.log(` ⊘ markitdown config already up-to-date at ${configPath}`);
|
|
394
|
+
}
|
|
395
|
+
return configPath;
|
|
396
|
+
}
|
|
205
397
|
// ── MCP Config ──
|
|
206
398
|
function ensureMcpConfig(projectPath) {
|
|
207
399
|
const mcpPath = (0, path_1.join)(projectPath, '.mcp.json');
|
|
@@ -338,6 +530,31 @@ function execInstall(pack, projectPath, options = {}) {
|
|
|
338
530
|
}
|
|
339
531
|
console.log();
|
|
340
532
|
}
|
|
533
|
+
// Step 3b: Install markitdown (pipx + OCR plugin)
|
|
534
|
+
let markitdown = { installed: false, ocrPlugin: false };
|
|
535
|
+
if (!options._skipMarkitdown && pack === 'sdlc') {
|
|
536
|
+
console.log('[vsaf] Installing markitdown...\n');
|
|
537
|
+
markitdown = installMarkitdown();
|
|
538
|
+
if (markitdown.installed) {
|
|
539
|
+
console.log(` ✓ markitdown ${markitdown.version ?? ''}`);
|
|
540
|
+
if (markitdown.ocrPlugin) {
|
|
541
|
+
console.log(' ✓ markitdown-ocr plugin installed (requires LLM_API_KEY for OCR)');
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
console.log(' ⚠ markitdown-ocr plugin not available — image/scanned-PDF OCR disabled');
|
|
545
|
+
}
|
|
546
|
+
if (markitdown.pythonPath) {
|
|
547
|
+
console.log(` ✓ markitdown python: ${markitdown.pythonPath}`);
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
console.log(' ⚠ markitdown pipx venv python not found — convert.py may not work');
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
else {
|
|
554
|
+
console.log(` ✗ markitdown — ${markitdown.error}`);
|
|
555
|
+
}
|
|
556
|
+
console.log();
|
|
557
|
+
}
|
|
341
558
|
// Step 4: Run install-deps.mjs (unless --skip-deps)
|
|
342
559
|
let depsRan = false;
|
|
343
560
|
if (!options.skipDeps) {
|
|
@@ -375,7 +592,8 @@ function execInstall(pack, projectPath, options = {}) {
|
|
|
375
592
|
console.log(PLUGIN_GUIDE);
|
|
376
593
|
// Summary
|
|
377
594
|
const issues = binaries.filter(b => b.required && !b.found).length
|
|
378
|
-
+ (!options._skipGraphify && pack === 'sdlc' && !graphify.installed ? 1 : 0)
|
|
595
|
+
+ (!options._skipGraphify && pack === 'sdlc' && !graphify.installed ? 1 : 0)
|
|
596
|
+
+ (!options._skipMarkitdown && pack === 'sdlc' && !markitdown.installed ? 1 : 0);
|
|
379
597
|
const PACK_NEXT = {
|
|
380
598
|
sdlc: 'Next: open Claude in your project → /sdlc-init',
|
|
381
599
|
'vds-skill': 'Next: fill credentials at ~/.vds/.env → use /vds-scripts-skill',
|
|
@@ -388,6 +606,7 @@ function execInstall(pack, projectPath, options = {}) {
|
|
|
388
606
|
binaries,
|
|
389
607
|
depsRan,
|
|
390
608
|
graphify,
|
|
609
|
+
markitdown,
|
|
391
610
|
};
|
|
392
611
|
}
|
|
393
612
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdlc-onboard-docs
|
|
3
3
|
description: Document onboarding — Graphify build graph + Claude verify + supplement gaps
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
author: "@ngocsangairvds/vsaf"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -20,6 +20,7 @@ Icon: `⏳` running, `✅` done, `❌` error.
|
|
|
20
20
|
## Index Protection
|
|
21
21
|
|
|
22
22
|
> ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` DIRECTLY — only graphify is allowed to write to `graphify-out/`.
|
|
23
|
+
> **Exception:** Phase 3 supplements nodes/edges directly into `graph.json` after graphify has built it — this is the only permitted direct modification.
|
|
23
24
|
|
|
24
25
|
## Input
|
|
25
26
|
|
|
@@ -36,9 +37,59 @@ Icon: `⏳` running, `✅` done, `❌` error.
|
|
|
36
37
|
|
|
37
38
|
1. Scan all documents in project (README, docs/, wiki, specs)
|
|
38
39
|
2. List all docs found
|
|
39
|
-
3.
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
3. Resolve markitdown Python — run:
|
|
41
|
+
```bash
|
|
42
|
+
VENVS=$(pipx environment --value PIPX_LOCAL_VENVS 2>/dev/null)
|
|
43
|
+
MARKITDOWN_PYTHON="${VENVS}/markitdown/bin/python"
|
|
44
|
+
# Windows: "${VENVS}\markitdown\Scripts\python.exe"
|
|
45
|
+
# Fallback: ~/.local/pipx/venvs/markitdown/bin/python
|
|
46
|
+
```
|
|
47
|
+
If markitdown Python not found, skip markitdown conversion — files will be classified and routed through tier fallbacks (graphify-direct-read for Tier 1, Claude Read for Tier 2 HTML).
|
|
48
|
+
4. Classify each complex file into a tier:
|
|
49
|
+
- **Tier 1 (graphify-native):** PDF, DOCX, XLSX, PNG, JPG, GIF, WEBP — graphify can read these directly if markitdown fails
|
|
50
|
+
- **Tier 2 (graphify-blind):** HTML, PPTX, EPUB, ZIP — graphify cannot read these; need markitdown or Claude fallback
|
|
51
|
+
- Text files (`.md`, `.txt`) are NOT complex — read directly, skip conversion
|
|
52
|
+
|
|
53
|
+
5. For each complex file, attempt markitdown conversion:
|
|
54
|
+
- Resolve markitdown Python (step 3 above)
|
|
55
|
+
- Convert using the wrapper script (bundled in this skill directory):
|
|
56
|
+
```bash
|
|
57
|
+
"${MARKITDOWN_PYTHON}" "<this-skill-dir>/convert.py" \
|
|
58
|
+
--input "{file}" \
|
|
59
|
+
--output ".vsaf/docs/onboarding/doc-imports/{name}.md"
|
|
60
|
+
```
|
|
61
|
+
- `<this-skill-dir>` = the directory containing this SKILL.md
|
|
62
|
+
- The script auto-detects OCR availability from `~/.vsaf/markitdown.env`
|
|
63
|
+
|
|
64
|
+
6. After each conversion, verify and route:
|
|
65
|
+
|
|
66
|
+
**If convert.py exit code = 0:**
|
|
67
|
+
Read the output `.md` file and verify content quality. Check ALL of:
|
|
68
|
+
- Contains meaningful content from the document? (not just auto-generated headers like `## Page 1`)
|
|
69
|
+
- Not an LLM refusal? (e.g., "I'm sorry, but I can't help with that")
|
|
70
|
+
- Not hallucinated? (e.g., fabricated tool calls, irrelevant JSON/XML, text unrelated to source file)
|
|
71
|
+
- Has substance? (more than a few words after stripping structural markers)
|
|
72
|
+
|
|
73
|
+
If ALL checks PASS → use the `.md` output. Log: `[ONBOARD-DOCS] {file} → converted ✅`
|
|
74
|
+
|
|
75
|
+
If ANY check FAILS → treat as conversion failure (continue to fallback below).
|
|
76
|
+
|
|
77
|
+
**If convert.py exit code ≠ 0, OR verification failed:**
|
|
78
|
+
|
|
79
|
+
- **Tier 1 file** → Log: `[ONBOARD-DOCS] {file}: markitdown failed → graphify will read directly`
|
|
80
|
+
Add the ORIGINAL file path to a "graphify-direct-read" list. Do NOT retry conversion.
|
|
81
|
+
After all conversions, persist the list to `.vsaf/docs/onboarding/graphify-direct-read.txt` (one path per line).
|
|
82
|
+
- **Tier 2 HTML file** → Read the HTML file with the Read tool. Extract meaningful content (headings, paragraphs, tables, lists, links). Write clean markdown to `.vsaf/docs/onboarding/doc-imports/{name}.md`. Log: `[ONBOARD-DOCS] {file} → Claude Read fallback ✅`
|
|
83
|
+
- **Tier 2 PPTX/EPUB/ZIP file** → Log: `[ONBOARD-DOCS] ⚠️ {file}: conversion failed, no fallback — skipped`
|
|
84
|
+
|
|
85
|
+
Print conversion summary:
|
|
86
|
+
```
|
|
87
|
+
[ONBOARD-DOCS] Conversion summary:
|
|
88
|
+
markitdown OK: N files
|
|
89
|
+
graphify direct: N files (Tier 1 fallback)
|
|
90
|
+
Claude Read: N files (Tier 2 HTML fallback)
|
|
91
|
+
Skipped: N files (no fallback available)
|
|
92
|
+
```
|
|
42
93
|
|
|
43
94
|
```
|
|
44
95
|
[ONBOARD-DOCS] [1/4] Scan & import documents... ✅
|
|
@@ -50,8 +101,15 @@ Icon: `⏳` running, `✅` done, `❌` error.
|
|
|
50
101
|
[ONBOARD-DOCS] [2/4] Graphify build for docs... ⏳
|
|
51
102
|
```
|
|
52
103
|
|
|
53
|
-
|
|
54
|
-
|
|
104
|
+
7. Create a staging directory at `.vsaf/docs/onboarding/graphify-staging/` and populate it with ALL inputs for graphify:
|
|
105
|
+
- Copy or symlink original text documents (`.md`, `.txt`, README)
|
|
106
|
+
- Copy or symlink successfully converted `.md` files from `.vsaf/docs/onboarding/doc-imports/`
|
|
107
|
+
- Copy or symlink files from `.vsaf/docs/onboarding/graphify-direct-read.txt` (original binary files — graphify reads these natively: PDF, DOCX, XLSX, images)
|
|
108
|
+
|
|
109
|
+
This directory is the single input to graphify — it ensures graphify only processes docs, never source code.
|
|
110
|
+
|
|
111
|
+
8. Run `/graphify .vsaf/docs/onboarding/graphify-staging/`
|
|
112
|
+
9. Output: `graphify-out/graph.json`
|
|
55
113
|
|
|
56
114
|
**IMPORTANT:** Graphify is ONLY for docs (documents, specs, README). DO NOT run graphify on source code — code indexing is handled by GitNexus in `/sdlc-onboard-code`.
|
|
57
115
|
|
|
@@ -65,15 +123,15 @@ Icon: `⏳` running, `✅` done, `❌` error.
|
|
|
65
123
|
[ONBOARD-DOCS] [3/4] Verify & fix graph... ⏳
|
|
66
124
|
```
|
|
67
125
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
126
|
+
10. Re-read **each original doc** — extract: concepts, relationships, business rules, constraints
|
|
127
|
+
11. Read `graph.json` — find corresponding nodes/edges
|
|
128
|
+
12. Compare:
|
|
129
|
+
- Concept in doc but no node in graph → **MISSING**
|
|
130
|
+
- Relationship in doc but no edge in graph → **MISSING**
|
|
131
|
+
- Business rule/constraint not captured → **MISSING**
|
|
132
|
+
- All present → OK
|
|
133
|
+
13. If missing: supplement nodes/edges directly into `graph.json` (this is the permitted exception to the Index Protection rule)
|
|
134
|
+
14. Report: "{doc}: +N nodes, +M edges supplemented"
|
|
77
135
|
|
|
78
136
|
```
|
|
79
137
|
[ONBOARD-DOCS] [3/4] Verify & fix graph... ✅
|
|
@@ -85,8 +143,8 @@ Icon: `⏳` running, `✅` done, `❌` error.
|
|
|
85
143
|
[ONBOARD-DOCS] [4/4] Extract domain terms → CONTEXT.md... ⏳
|
|
86
144
|
```
|
|
87
145
|
|
|
88
|
-
|
|
89
|
-
|
|
146
|
+
15. From the completed graph, extract domain terms → `CONTEXT.md`
|
|
147
|
+
16. Format Shared Language table:
|
|
90
148
|
|
|
91
149
|
```markdown
|
|
92
150
|
## Shared Language
|
|
@@ -103,7 +161,7 @@ Icon: `⏳` running, `✅` done, `❌` error.
|
|
|
103
161
|
## Output
|
|
104
162
|
|
|
105
163
|
- `graphify-out/graph.json` — verified + supplemented
|
|
106
|
-
- `.vsaf/docs/onboarding/doc-imports/{name}.md` —
|
|
164
|
+
- `.vsaf/docs/onboarding/doc-imports/{name}.md` — converted/fallback imports (if any)
|
|
107
165
|
- `CONTEXT.md` — Ubiquitous Language
|
|
108
166
|
|
|
109
167
|
## Artifact Auto-Save
|
|
@@ -118,4 +176,4 @@ After completion, print message:
|
|
|
118
176
|
- Every missing concept/relationship MUST be supplemented, not skipped
|
|
119
177
|
- CONTEXT.md contains only domain terms, not technical terms (technical terms belong in the code branch)
|
|
120
178
|
- Graphify runs ONLY on docs — DO NOT run on source code
|
|
121
|
-
- ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` directly outside graphify workflow
|
|
179
|
+
- ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` directly outside graphify workflow (Phase 3 supplementation is the only exception)
|
|
Binary file
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"""MarkItDown wrapper for VSAF SDLC onboard-docs.
|
|
2
|
+
|
|
3
|
+
Converts documents to Markdown using MarkItDown Python API.
|
|
4
|
+
Reads config from ~/.vsaf/markitdown.env for OCR settings.
|
|
5
|
+
Runs inside markitdown's pipx venv (all deps pre-installed).
|
|
6
|
+
|
|
7
|
+
Supported LLM providers for OCR:
|
|
8
|
+
- OpenAI (native)
|
|
9
|
+
- Google Gemini (via OpenAI-compatible endpoint)
|
|
10
|
+
- Anthropic Claude (via built-in adapter)
|
|
11
|
+
- Any OpenAI-compatible provider (via custom base_url)
|
|
12
|
+
|
|
13
|
+
Exit codes:
|
|
14
|
+
0 — success (content extracted and written)
|
|
15
|
+
1 — input file not found
|
|
16
|
+
2 — conversion error (markitdown exception)
|
|
17
|
+
3 — empty content (markitdown returned nothing)
|
|
18
|
+
|
|
19
|
+
Usage:
|
|
20
|
+
python convert.py --input file.pdf --output output.md [--config path]
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
import argparse
|
|
24
|
+
import os
|
|
25
|
+
import sys
|
|
26
|
+
from pathlib import Path
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# ── Anthropic Adapter ──
|
|
30
|
+
# markitdown-ocr calls client.chat.completions.create() and reads
|
|
31
|
+
# response.choices[0].message.content. Anthropic SDK uses a different
|
|
32
|
+
# interface, so this adapter bridges the two.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class _Choice:
|
|
36
|
+
def __init__(self, text: str):
|
|
37
|
+
self.message = type("Msg", (), {"content": text})()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class _Response:
|
|
41
|
+
def __init__(self, text: str):
|
|
42
|
+
self.choices = [_Choice(text)]
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class AnthropicAdapter:
|
|
46
|
+
"""Wraps anthropic SDK to match OpenAI chat.completions.create() interface."""
|
|
47
|
+
|
|
48
|
+
def __init__(self, api_key: str):
|
|
49
|
+
from anthropic import Anthropic
|
|
50
|
+
|
|
51
|
+
self._client = Anthropic(api_key=api_key)
|
|
52
|
+
self.chat = self
|
|
53
|
+
self.completions = self
|
|
54
|
+
|
|
55
|
+
def create(self, *, model, messages, **_kwargs):
|
|
56
|
+
anthropic_messages = []
|
|
57
|
+
for msg in messages:
|
|
58
|
+
content_blocks = []
|
|
59
|
+
for part in msg["content"]:
|
|
60
|
+
if part["type"] == "text":
|
|
61
|
+
content_blocks.append({"type": "text", "text": part["text"]})
|
|
62
|
+
elif part["type"] == "image_url":
|
|
63
|
+
data_uri = part["image_url"]["url"]
|
|
64
|
+
# data:image/png;base64,xxxx → extract media_type + base64
|
|
65
|
+
header, b64_data = data_uri.split(",", 1)
|
|
66
|
+
media_type = header.split(":")[1].split(";")[0]
|
|
67
|
+
content_blocks.append({
|
|
68
|
+
"type": "image",
|
|
69
|
+
"source": {
|
|
70
|
+
"type": "base64",
|
|
71
|
+
"media_type": media_type,
|
|
72
|
+
"data": b64_data,
|
|
73
|
+
},
|
|
74
|
+
})
|
|
75
|
+
anthropic_messages.append({"role": msg["role"], "content": content_blocks})
|
|
76
|
+
|
|
77
|
+
response = self._client.messages.create(
|
|
78
|
+
model=model,
|
|
79
|
+
max_tokens=4096,
|
|
80
|
+
messages=anthropic_messages,
|
|
81
|
+
)
|
|
82
|
+
text = response.content[0].text if response.content else ""
|
|
83
|
+
return _Response(text)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# ── Client Factory ──
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def _detect_provider(base_url: str) -> str:
|
|
90
|
+
"""Detect provider name from base_url for logging."""
|
|
91
|
+
if "anthropic.com" in base_url:
|
|
92
|
+
return "Claude"
|
|
93
|
+
if "googleapis.com" in base_url:
|
|
94
|
+
return "Gemini"
|
|
95
|
+
if "openai.com" in base_url:
|
|
96
|
+
return "OpenAI"
|
|
97
|
+
if "openrouter.ai" in base_url:
|
|
98
|
+
return "OpenRouter"
|
|
99
|
+
return "Custom"
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def create_llm_client(api_key: str, base_url: str):
|
|
103
|
+
"""Create LLM client based on base_url."""
|
|
104
|
+
if "anthropic.com" in base_url:
|
|
105
|
+
return AnthropicAdapter(api_key=api_key)
|
|
106
|
+
else:
|
|
107
|
+
from openai import OpenAI
|
|
108
|
+
|
|
109
|
+
return OpenAI(api_key=api_key, base_url=base_url)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
# ── Config ──
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def load_env(config_path: str) -> dict[str, str]:
|
|
116
|
+
"""Parse a .env file into a dict. Shell env vars take priority."""
|
|
117
|
+
values: dict[str, str] = {}
|
|
118
|
+
|
|
119
|
+
path = Path(config_path).expanduser()
|
|
120
|
+
if path.is_file():
|
|
121
|
+
for line in path.read_text(encoding="utf-8").splitlines():
|
|
122
|
+
line = line.strip()
|
|
123
|
+
if not line or line.startswith("#"):
|
|
124
|
+
continue
|
|
125
|
+
if "=" not in line:
|
|
126
|
+
continue
|
|
127
|
+
key, _, value = line.partition("=")
|
|
128
|
+
key = key.strip()
|
|
129
|
+
value = value.strip().strip("\"'")
|
|
130
|
+
values[key] = value
|
|
131
|
+
|
|
132
|
+
# Shell env vars override file values
|
|
133
|
+
for key in ("LLM_API_KEY", "LLM_BASE_URL", "LLM_MODEL", "OPENAI_API_KEY", "MARKITDOWN_MODEL"):
|
|
134
|
+
env_val = os.environ.get(key)
|
|
135
|
+
if env_val:
|
|
136
|
+
values[key] = env_val
|
|
137
|
+
|
|
138
|
+
return values
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
# ── Main ──
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def main() -> int:
|
|
145
|
+
parser = argparse.ArgumentParser(description="Convert documents to Markdown via MarkItDown")
|
|
146
|
+
parser.add_argument("--input", required=True, help="Input file to convert")
|
|
147
|
+
parser.add_argument("--output", required=True, help="Output markdown file")
|
|
148
|
+
parser.add_argument(
|
|
149
|
+
"--config",
|
|
150
|
+
default=str(Path.home() / ".vsaf" / "markitdown.env"),
|
|
151
|
+
help="Path to markitdown config file (default: ~/.vsaf/markitdown.env)",
|
|
152
|
+
)
|
|
153
|
+
args = parser.parse_args()
|
|
154
|
+
|
|
155
|
+
# Validate input
|
|
156
|
+
if not Path(args.input).is_file():
|
|
157
|
+
print(f"[convert] Error: input file not found: {args.input}", file=sys.stderr)
|
|
158
|
+
return 1
|
|
159
|
+
|
|
160
|
+
# Load config with backward compat
|
|
161
|
+
config = load_env(args.config)
|
|
162
|
+
api_key = config.get("LLM_API_KEY") or config.get("OPENAI_API_KEY") or ""
|
|
163
|
+
model = config.get("LLM_MODEL") or config.get("MARKITDOWN_MODEL") or "gpt-4o"
|
|
164
|
+
base_url = config.get("LLM_BASE_URL") or "https://api.openai.com/v1"
|
|
165
|
+
|
|
166
|
+
# Initialize MarkItDown
|
|
167
|
+
from markitdown import MarkItDown
|
|
168
|
+
|
|
169
|
+
if api_key:
|
|
170
|
+
client = create_llm_client(api_key, base_url)
|
|
171
|
+
provider = _detect_provider(base_url)
|
|
172
|
+
md = MarkItDown(enable_plugins=True, llm_client=client, llm_model=model)
|
|
173
|
+
print(f"[convert] OCR enabled (model: {model}, provider: {provider})")
|
|
174
|
+
else:
|
|
175
|
+
md = MarkItDown()
|
|
176
|
+
print("[convert] OCR disabled (no LLM_API_KEY)")
|
|
177
|
+
|
|
178
|
+
# Convert
|
|
179
|
+
try:
|
|
180
|
+
result = md.convert(args.input)
|
|
181
|
+
except Exception as exc:
|
|
182
|
+
print(f"[convert] Error converting {args.input}: {exc}", file=sys.stderr)
|
|
183
|
+
return 2
|
|
184
|
+
|
|
185
|
+
# Write output
|
|
186
|
+
content = result.text_content or ""
|
|
187
|
+
if not content:
|
|
188
|
+
print(f"[convert] Warning: no content extracted from {args.input}", file=sys.stderr)
|
|
189
|
+
return 3
|
|
190
|
+
|
|
191
|
+
output_path = Path(args.output)
|
|
192
|
+
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
193
|
+
output_path.write_text(content, encoding="utf-8")
|
|
194
|
+
print(f"[convert] {args.input} → {args.output} ✅")
|
|
195
|
+
return 0
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
if __name__ == "__main__":
|
|
199
|
+
sys.exit(main())
|
|
@@ -106,6 +106,7 @@ Check the following (run `{cmd} --version`):
|
|
|
106
106
|
| Binary | Required | Used by | Install hint |
|
|
107
107
|
|--------|----------|---------|-------------|
|
|
108
108
|
| **gh** | Yes | ship (PR creation) | `brew install gh` / `apt install gh` / `winget install GitHub.cli` |
|
|
109
|
+
| **markitdown** | Yes | onboard-docs (document → markdown) | `pipx install "markitdown[all]"` then `pipx inject markitdown markitdown-ocr openai` |
|
|
109
110
|
| **docker** | No (optional) | implement, onboard-code | `https://docs.docker.com/get-docker/` |
|
|
110
111
|
| **sonar-scanner** | No (optional) | implement, review | `https://docs.sonarsource.com/sonarqube/` |
|
|
111
112
|
|
|
@@ -141,6 +142,7 @@ Print a summary table:
|
|
|
141
142
|
|
|
142
143
|
System binaries:
|
|
143
144
|
✅ gh {version}
|
|
145
|
+
✅ markitdown {version}
|
|
144
146
|
ℹ️ docker not installed (optional)
|
|
145
147
|
ℹ️ sonar-scanner not installed (optional)
|
|
146
148
|
|