@ai-dossier/cli 0.2.1 → 0.3.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2H5D"}
|
package/dist/commands/create.js
CHANGED
|
@@ -43,18 +43,20 @@ const node_os_1 = __importDefault(require("node:os"));
|
|
|
43
43
|
const node_path_1 = __importDefault(require("node:path"));
|
|
44
44
|
const config = __importStar(require("../config"));
|
|
45
45
|
const helpers_1 = require("../helpers");
|
|
46
|
+
const registry_client_1 = require("../registry-client");
|
|
47
|
+
const DEFAULT_CREATE_TEMPLATE = 'imboard-ai/meta/create-dossier';
|
|
46
48
|
function registerCreateCommand(program) {
|
|
47
49
|
program
|
|
48
50
|
.command('create')
|
|
49
51
|
.description('Create new dossier')
|
|
50
52
|
.argument('[file]', 'Output file path')
|
|
51
|
-
.option('--template <name>', '
|
|
53
|
+
.option('--template <name>', 'Registry template dossier to use', DEFAULT_CREATE_TEMPLATE)
|
|
52
54
|
.option('--title <title>', 'Dossier title')
|
|
53
55
|
.option('--objective <text>', 'Primary objective')
|
|
54
56
|
.option('--risk <level>', 'Risk level (low, medium, high, critical)')
|
|
55
57
|
.option('--category <category>', 'Category (devops, data-science, development, etc.)')
|
|
56
58
|
.option('--tags <tags>', 'Comma-separated tags')
|
|
57
|
-
.option('--llm <name>', 'LLM to use (claude-code,
|
|
59
|
+
.option('--llm <name>', 'LLM to use (claude-code, auto)', 'auto')
|
|
58
60
|
.action(async (file, options) => {
|
|
59
61
|
try {
|
|
60
62
|
const llmOption = options.llm || config.getConfig('defaultLlm') || 'auto';
|
|
@@ -62,14 +64,58 @@ function registerCreateCommand(program) {
|
|
|
62
64
|
if (!llm) {
|
|
63
65
|
process.exit(2);
|
|
64
66
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
console.error('
|
|
68
|
-
console.error(` Expected: ${metaDossierPath}`);
|
|
69
|
-
console.error('\nThis is likely a package installation issue.');
|
|
70
|
-
console.error('Please report this at: https://github.com/imboard-ai/ai-dossier/issues\n');
|
|
67
|
+
if (llm !== 'claude-code') {
|
|
68
|
+
console.error(`❌ Unknown LLM: ${llm}\n`);
|
|
69
|
+
console.error('Supported: claude-code, auto\n');
|
|
71
70
|
process.exit(2);
|
|
72
71
|
}
|
|
72
|
+
// Fetch template from registry
|
|
73
|
+
const [dossierName, version] = (0, registry_client_1.parseNameVersion)(options.template);
|
|
74
|
+
let metaDossierContent = '';
|
|
75
|
+
// Check cache first
|
|
76
|
+
const cacheDir = node_path_1.default.join(node_os_1.default.homedir(), '.dossier', 'cache');
|
|
77
|
+
const dossierCacheDir = node_path_1.default.join(cacheDir, ...dossierName.split('/'));
|
|
78
|
+
let cached = false;
|
|
79
|
+
if (node_fs_1.default.existsSync(dossierCacheDir)) {
|
|
80
|
+
const metaFiles = node_fs_1.default
|
|
81
|
+
.readdirSync(dossierCacheDir)
|
|
82
|
+
.filter((f) => f.endsWith('.meta.json'));
|
|
83
|
+
for (const mf of metaFiles) {
|
|
84
|
+
const ver = mf.replace('.meta.json', '');
|
|
85
|
+
if (version && ver !== version)
|
|
86
|
+
continue;
|
|
87
|
+
const contentFile = node_path_1.default.join(dossierCacheDir, `${ver}.ds.md`);
|
|
88
|
+
if (node_fs_1.default.existsSync(contentFile)) {
|
|
89
|
+
metaDossierContent = node_fs_1.default.readFileSync(contentFile, 'utf8');
|
|
90
|
+
cached = true;
|
|
91
|
+
console.log(`📦 Using cached template: ${dossierName}@${ver}\n`);
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (!cached) {
|
|
97
|
+
try {
|
|
98
|
+
const client = (0, registry_client_1.getClient)();
|
|
99
|
+
let resolvedVersion = version;
|
|
100
|
+
if (!resolvedVersion) {
|
|
101
|
+
const meta = (await client.getDossier(dossierName));
|
|
102
|
+
resolvedVersion = meta.version || 'latest';
|
|
103
|
+
}
|
|
104
|
+
const result = await client.getDossierContent(dossierName, resolvedVersion);
|
|
105
|
+
metaDossierContent = result.content;
|
|
106
|
+
console.log(`📥 Fetched template: ${dossierName}@${resolvedVersion}\n`);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
if (err.statusCode === 404) {
|
|
110
|
+
console.error(`❌ Template not found: ${options.template}`);
|
|
111
|
+
console.error(' Check the template name or use --template to specify a different one\n');
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.error(`❌ Failed to fetch template: ${err.message}\n`);
|
|
115
|
+
}
|
|
116
|
+
process.exit(2);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
73
119
|
const contextHeader = `
|
|
74
120
|
# USER-PROVIDED CONTEXT
|
|
75
121
|
|
|
@@ -81,26 +127,16 @@ ${options.objective ? `- **Objective**: ${options.objective}` : '- **Objective**
|
|
|
81
127
|
${options.risk ? `- **Risk level**: ${options.risk}` : '- **Risk level**: Not specified (prompt user)'}
|
|
82
128
|
${options.category ? `- **Category**: ${options.category}` : '- **Category**: Not specified (prompt user)'}
|
|
83
129
|
${options.tags ? `- **Tags**: ${options.tags}` : '- **Tags**: Not specified (optional)'}
|
|
84
|
-
${options.template ? `- **Template reference**: ${options.template}` : '- **Template**:
|
|
130
|
+
${options.template !== DEFAULT_CREATE_TEMPLATE ? `- **Template reference**: ${options.template}` : '- **Template**: Default (create-dossier)'}
|
|
85
131
|
|
|
86
132
|
**Instructions**: Use the values provided above. For any fields marked "Not specified", prompt the user interactively. When all required information is gathered, create the dossier file according to the meta-dossier instructions below.
|
|
87
133
|
|
|
88
134
|
---
|
|
89
135
|
|
|
90
136
|
`;
|
|
91
|
-
const metaDossierContent = node_fs_1.default.readFileSync(metaDossierPath, 'utf8');
|
|
92
137
|
const tmpFile = node_path_1.default.join(node_os_1.default.tmpdir(), `dossier-create-${Date.now()}.ds.md`);
|
|
93
138
|
node_fs_1.default.writeFileSync(tmpFile, contextHeader + metaDossierContent, 'utf8');
|
|
94
139
|
console.log('🤖 Launching dossier creation assistant (interactive mode)...\n');
|
|
95
|
-
if (llm !== 'claude-code') {
|
|
96
|
-
console.log(`❌ Unknown LLM: ${llm}\n`);
|
|
97
|
-
console.log('Supported: claude-code, auto\n');
|
|
98
|
-
try {
|
|
99
|
-
node_fs_1.default.unlinkSync(tmpFile);
|
|
100
|
-
}
|
|
101
|
-
catch { }
|
|
102
|
-
process.exit(2);
|
|
103
|
-
}
|
|
104
140
|
try {
|
|
105
141
|
const result = (0, node_child_process_1.spawnSync)('claude', [tmpFile], { stdio: 'inherit' });
|
|
106
142
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|