@ai-dossier/cli 0.4.1 → 0.5.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 +147 -25
- package/bin/dossier-verify +6 -440
- package/dist/cli.js +82 -21
- package/dist/cli.js.map +1 -1
- package/dist/commands/cache.d.ts.map +1 -1
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/checksum.js.map +1 -1
- package/dist/commands/commands.d.ts.map +1 -1
- package/dist/commands/commands.js +4 -2
- package/dist/commands/commands.js.map +1 -1
- package/dist/commands/config-cmd.d.ts.map +1 -1
- package/dist/commands/config-cmd.js +229 -69
- package/dist/commands/config-cmd.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +17 -8
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +24 -8
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/format.d.ts.map +1 -1
- package/dist/commands/format.js.map +1 -1
- package/dist/commands/get.d.ts.map +1 -1
- package/dist/commands/get.js +18 -6
- package/dist/commands/get.js.map +1 -1
- package/dist/commands/history.d.ts +6 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +80 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +19 -6
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/install-skill.d.ts.map +1 -1
- package/dist/commands/install-skill.js +16 -9
- package/dist/commands/install-skill.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +55 -41
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +25 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +22 -5
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/prompt-hook.d.ts.map +1 -1
- package/dist/commands/prompt-hook.js +4 -13
- package/dist/commands/prompt-hook.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +22 -55
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +31 -14
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +17 -43
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/reset-hooks.js +1 -1
- package/dist/commands/reset-hooks.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +192 -48
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +33 -29
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/sign.js.map +1 -1
- package/dist/commands/skill-export.d.ts +3 -0
- package/dist/commands/skill-export.d.ts.map +1 -0
- package/dist/commands/skill-export.js +179 -0
- package/dist/commands/skill-export.js.map +1 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +1 -8
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +108 -25
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config.d.ts +29 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +133 -3
- package/dist/config.js.map +1 -1
- package/dist/credentials.d.ts +14 -9
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +122 -54
- package/dist/credentials.js.map +1 -1
- package/dist/help.d.ts +7 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +86 -0
- package/dist/help.js.map +1 -0
- package/dist/helpers.d.ts +10 -10
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +25 -28
- package/dist/helpers.js.map +1 -1
- package/dist/multi-registry.d.ts +71 -0
- package/dist/multi-registry.d.ts.map +1 -0
- package/dist/multi-registry.js +136 -0
- package/dist/multi-registry.js.map +1 -0
- package/dist/registry-client.d.ts +62 -15
- package/dist/registry-client.d.ts.map +1 -1
- package/dist/registry-client.js +11 -14
- package/dist/registry-client.js.map +1 -1
- package/dist/run-log.d.ts +37 -0
- package/dist/run-log.d.ts.map +1 -0
- package/dist/run-log.js +78 -0
- package/dist/run-log.js.map +1 -0
- package/dist/verify-dossier.d.ts +28 -0
- package/dist/verify-dossier.d.ts.map +1 -0
- package/dist/verify-dossier.js +329 -0
- package/dist/verify-dossier.js.map +1 -0
- package/dist/write-auth.d.ts +24 -0
- package/dist/write-auth.d.ts.map +1 -0
- package/dist/write-auth.js +85 -0
- package/dist/write-auth.js.map +1 -0
- package/package.json +1 -1
package/bin/dossier-verify
CHANGED
|
@@ -1,443 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* Enforces security verification of dossier files before execution.
|
|
7
|
-
* Provides command-line interface for checksum and signature validation.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* dossier-verify <file-or-url>
|
|
11
|
-
* dossier-verify --run <file-or-url>
|
|
12
|
-
* dossier-verify --verbose <file-or-url>
|
|
13
|
-
*/
|
|
3
|
+
// Thin shim — all logic lives in src/verify-dossier.ts
|
|
4
|
+
const { main } = require('../dist/verify-dossier');
|
|
14
5
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const http = require('http');
|
|
20
|
-
const { execSync } = require('child_process');
|
|
21
|
-
const {
|
|
22
|
-
parseDossierContent,
|
|
23
|
-
verifyIntegrity,
|
|
24
|
-
loadTrustedKeys,
|
|
25
|
-
verifySignature
|
|
26
|
-
} = require('@ai-dossier/core');
|
|
27
|
-
const { convertGitHubBlobToRaw } = require('../dist/github-url');
|
|
28
|
-
|
|
29
|
-
// Colors for terminal output
|
|
30
|
-
const colors = {
|
|
31
|
-
reset: '\x1b[0m',
|
|
32
|
-
bright: '\x1b[1m',
|
|
33
|
-
red: '\x1b[31m',
|
|
34
|
-
green: '\x1b[32m',
|
|
35
|
-
yellow: '\x1b[33m',
|
|
36
|
-
blue: '\x1b[34m',
|
|
37
|
-
cyan: '\x1b[36m',
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
function log(message, color = 'reset') {
|
|
41
|
-
console.log(`${colors[color]}${message}${colors.reset}`);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function error(message) {
|
|
45
|
-
log(`\u274C ${message}`, 'red');
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function success(message) {
|
|
49
|
-
log(`\u2705 ${message}`, 'green');
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function warning(message) {
|
|
53
|
-
log(`\u26A0\uFE0F ${message}`, 'yellow');
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function info(message) {
|
|
57
|
-
log(`\u2139\uFE0F ${message}`, 'cyan');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Parse command line arguments
|
|
61
|
-
function parseArgs() {
|
|
62
|
-
const args = process.argv.slice(2);
|
|
63
|
-
const options = {
|
|
64
|
-
verbose: false,
|
|
65
|
-
run: false,
|
|
66
|
-
outputPath: false,
|
|
67
|
-
help: false,
|
|
68
|
-
input: null,
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
for (let i = 0; i < args.length; i++) {
|
|
72
|
-
const arg = args[i];
|
|
73
|
-
if (arg === '--verbose' || arg === '-v') {
|
|
74
|
-
options.verbose = true;
|
|
75
|
-
} else if (arg === '--run') {
|
|
76
|
-
options.run = true;
|
|
77
|
-
} else if (arg === '--output-path') {
|
|
78
|
-
options.outputPath = true;
|
|
79
|
-
} else if (arg === '--help' || arg === '-h') {
|
|
80
|
-
options.help = true;
|
|
81
|
-
} else if (!options.input) {
|
|
82
|
-
options.input = arg;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return options;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function showHelp() {
|
|
90
|
-
console.log(`
|
|
91
|
-
${colors.bright}Dossier Verification CLI${colors.reset}
|
|
92
|
-
|
|
93
|
-
${colors.bright}Usage:${colors.reset}
|
|
94
|
-
dossier-verify <file-or-url> Verify dossier security
|
|
95
|
-
dossier-verify --run <file-or-url> Verify and execute if safe
|
|
96
|
-
dossier-verify --verbose <file-or-url> Show detailed verification
|
|
97
|
-
dossier-verify --output-path <url> Download and output path
|
|
98
|
-
dossier-verify --help Show this help
|
|
99
|
-
|
|
100
|
-
${colors.bright}Exit Codes:${colors.reset}
|
|
101
|
-
0 - Verification passed (safe to execute)
|
|
102
|
-
1 - Verification failed (do not execute)
|
|
103
|
-
2 - Error occurred (cannot verify)
|
|
104
|
-
|
|
105
|
-
${colors.bright}Examples:${colors.reset}
|
|
106
|
-
# Verify local file
|
|
107
|
-
dossier-verify path/to/dossier.ds.md
|
|
108
|
-
|
|
109
|
-
# Verify remote dossier
|
|
110
|
-
dossier-verify https://example.com/dossier.ds.md
|
|
111
|
-
|
|
112
|
-
# Verify and run if safe
|
|
113
|
-
dossier-verify --run https://example.com/dossier.ds.md
|
|
114
|
-
|
|
115
|
-
# Use in shell script
|
|
116
|
-
if dossier-verify "$URL"; then
|
|
117
|
-
claude-code "run $URL"
|
|
118
|
-
else
|
|
119
|
-
echo "Security verification failed"
|
|
120
|
-
fi
|
|
121
|
-
|
|
122
|
-
${colors.bright}Security Checks:${colors.reset}
|
|
123
|
-
\u2713 SHA256 checksum verification (required)
|
|
124
|
-
\u2713 Signature verification (if present)
|
|
125
|
-
\u2713 Trusted keys check
|
|
126
|
-
\u2713 Risk level assessment
|
|
127
|
-
|
|
128
|
-
${colors.bright}More Information:${colors.reset}
|
|
129
|
-
Documentation: https://github.com/imboard/ai-dossier
|
|
130
|
-
Security: SECURITY_STATUS.md
|
|
131
|
-
Protocol: PROTOCOL.md
|
|
132
|
-
`);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Download file from URL
|
|
136
|
-
async function downloadFile(url) {
|
|
137
|
-
// Convert GitHub blob URLs to raw URLs
|
|
138
|
-
const resolvedUrl = convertGitHubBlobToRaw(url);
|
|
139
|
-
|
|
140
|
-
return new Promise((resolve, reject) => {
|
|
141
|
-
const protocol = resolvedUrl.startsWith('https://') ? https : http;
|
|
142
|
-
|
|
143
|
-
protocol.get(resolvedUrl, (res) => {
|
|
144
|
-
if (res.statusCode === 301 || res.statusCode === 302) {
|
|
145
|
-
// Follow redirect
|
|
146
|
-
return downloadFile(res.headers.location).then(resolve).catch(reject);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (res.statusCode !== 200) {
|
|
150
|
-
return reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage}`));
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
let data = '';
|
|
154
|
-
res.on('data', (chunk) => { data += chunk; });
|
|
155
|
-
res.on('end', () => resolve(data));
|
|
156
|
-
}).on('error', reject);
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// Parse dossier frontmatter (using @ai-dossier/core)
|
|
161
|
-
function parseDossier(content) {
|
|
162
|
-
const parsed = parseDossierContent(content);
|
|
163
|
-
return {
|
|
164
|
-
frontmatter: parsed.frontmatter,
|
|
165
|
-
body: parsed.body
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Verify checksum (using @ai-dossier/core)
|
|
170
|
-
function verifyChecksum(body, declaredHash) {
|
|
171
|
-
const result = verifyIntegrity(body, declaredHash);
|
|
172
|
-
return {
|
|
173
|
-
passed: result.status === 'valid',
|
|
174
|
-
declared: result.expectedHash,
|
|
175
|
-
actual: result.actualHash,
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Verify signature (using @ai-dossier/core for real cryptographic verification)
|
|
180
|
-
async function checkSignature(body, frontmatter) {
|
|
181
|
-
if (!frontmatter.signature) {
|
|
182
|
-
return {
|
|
183
|
-
present: false,
|
|
184
|
-
verified: false,
|
|
185
|
-
trusted: false,
|
|
186
|
-
message: 'No signature present',
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
const signature = frontmatter.signature;
|
|
191
|
-
const trustedKeys = loadTrustedKeys();
|
|
192
|
-
// Check both key_id and public_key for trusted status
|
|
193
|
-
// key_id is easier to manage in trusted-keys.txt file
|
|
194
|
-
const isTrusted = trustedKeys.has(signature.key_id) || trustedKeys.has(signature.public_key);
|
|
195
|
-
|
|
196
|
-
const result = await verifySignature(body, signature);
|
|
197
|
-
|
|
198
|
-
if (result.valid) {
|
|
199
|
-
return {
|
|
200
|
-
present: true,
|
|
201
|
-
verified: true,
|
|
202
|
-
trusted: isTrusted,
|
|
203
|
-
message: isTrusted
|
|
204
|
-
? `Verified signature from trusted source: ${trustedKeys.get(signature.key_id) || trustedKeys.get(signature.public_key)}`
|
|
205
|
-
: 'Valid signature but key is not in trusted list',
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
if (result.error) {
|
|
210
|
-
return {
|
|
211
|
-
present: true,
|
|
212
|
-
verified: false,
|
|
213
|
-
trusted: false,
|
|
214
|
-
message: `Verification error: ${result.error}`,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return {
|
|
219
|
-
present: true,
|
|
220
|
-
verified: false,
|
|
221
|
-
trusted: isTrusted,
|
|
222
|
-
message: 'Signature verification FAILED',
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// Assess risk
|
|
227
|
-
function assessRisk(frontmatter, checksumResult, signatureResult) {
|
|
228
|
-
const issues = [];
|
|
229
|
-
let riskLevel = 'low';
|
|
230
|
-
let shouldBlock = false;
|
|
231
|
-
|
|
232
|
-
// Checksum failure is critical
|
|
233
|
-
if (!checksumResult.passed) {
|
|
234
|
-
issues.push('Checksum verification FAILED - content has been tampered with');
|
|
235
|
-
riskLevel = 'critical';
|
|
236
|
-
shouldBlock = true;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// Signature issues
|
|
240
|
-
if (signatureResult.present && !signatureResult.verified) {
|
|
241
|
-
issues.push('Signature verification FAILED or could not be verified');
|
|
242
|
-
if (riskLevel !== 'critical') riskLevel = 'high';
|
|
243
|
-
shouldBlock = true;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// Valid signature but not trusted - BLOCK execution
|
|
247
|
-
if (signatureResult.present && signatureResult.verified && !signatureResult.trusted) {
|
|
248
|
-
issues.push('Signature is valid but signer is not in your trusted keys list');
|
|
249
|
-
issues.push('Add the public key to ~/.dossier/trusted-keys.txt to trust this signer');
|
|
250
|
-
if (riskLevel === 'low') riskLevel = 'medium';
|
|
251
|
-
shouldBlock = true;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
// No signature on high-risk dossier
|
|
255
|
-
if (!signatureResult.present && frontmatter.risk_level === 'high') {
|
|
256
|
-
issues.push('High-risk dossier without signature');
|
|
257
|
-
if (riskLevel === 'low') riskLevel = 'medium';
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
if (!signatureResult.present && frontmatter.risk_level === 'critical') {
|
|
261
|
-
issues.push('Critical-risk dossier without signature');
|
|
262
|
-
if (riskLevel !== 'critical') riskLevel = 'high';
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
return {
|
|
266
|
-
level: riskLevel,
|
|
267
|
-
issues,
|
|
268
|
-
recommendation: shouldBlock ? 'BLOCK' : 'ALLOW',
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
// Main verification function
|
|
273
|
-
async function verifyDossier(input, options) {
|
|
274
|
-
try {
|
|
275
|
-
log(`\n${colors.bright}\uD83D\uDD10 Dossier Verification Tool${colors.reset}\n`);
|
|
276
|
-
|
|
277
|
-
// Determine if input is URL or file
|
|
278
|
-
const isUrl = input.startsWith('http://') || input.startsWith('https://');
|
|
279
|
-
let content;
|
|
280
|
-
let displayPath = input;
|
|
281
|
-
|
|
282
|
-
if (isUrl) {
|
|
283
|
-
info(`Downloading: ${input}`);
|
|
284
|
-
content = await downloadFile(input);
|
|
285
|
-
success('Downloaded successfully');
|
|
286
|
-
} else {
|
|
287
|
-
info(`Reading: ${input}`);
|
|
288
|
-
content = fs.readFileSync(input, 'utf8');
|
|
289
|
-
displayPath = path.resolve(input);
|
|
290
|
-
success('File read successfully');
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// Parse dossier
|
|
294
|
-
info('Parsing dossier...');
|
|
295
|
-
const { frontmatter, body } = parseDossier(content);
|
|
296
|
-
success(`Parsed: ${frontmatter.title} v${frontmatter.version}`);
|
|
297
|
-
|
|
298
|
-
if (options.verbose) {
|
|
299
|
-
console.log(`\n${colors.bright}Dossier Metadata:${colors.reset}`);
|
|
300
|
-
console.log(` Title: ${frontmatter.title}`);
|
|
301
|
-
console.log(` Version: ${frontmatter.version}`);
|
|
302
|
-
console.log(` Risk Level: ${frontmatter.risk_level}`);
|
|
303
|
-
console.log(` Protocol: ${frontmatter.protocol_version}`);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// Verify checksum
|
|
307
|
-
console.log(`\n${colors.bright}\uD83D\uDCCA Integrity Check:${colors.reset}`);
|
|
308
|
-
const checksumResult = verifyChecksum(body, frontmatter.checksum?.hash);
|
|
309
|
-
|
|
310
|
-
if (checksumResult.passed) {
|
|
311
|
-
success('Checksum VALID - content has not been tampered with');
|
|
312
|
-
if (options.verbose) {
|
|
313
|
-
console.log(` Hash: ${checksumResult.actual}`);
|
|
314
|
-
}
|
|
315
|
-
} else {
|
|
316
|
-
error('Checksum INVALID - content has been modified!');
|
|
317
|
-
if (options.verbose) {
|
|
318
|
-
console.log(` Declared: ${checksumResult.declared}`);
|
|
319
|
-
console.log(` Actual: ${checksumResult.actual}`);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
// Verify signature
|
|
324
|
-
console.log(`\n${colors.bright}\uD83D\uDD0F Authenticity Check:${colors.reset}`);
|
|
325
|
-
const signatureResult = await checkSignature(body, frontmatter);
|
|
326
|
-
|
|
327
|
-
if (signatureResult.present) {
|
|
328
|
-
if (signatureResult.verified && signatureResult.trusted) {
|
|
329
|
-
success('Signature VERIFIED - from trusted author');
|
|
330
|
-
} else if (signatureResult.verified && !signatureResult.trusted) {
|
|
331
|
-
warning(signatureResult.message);
|
|
332
|
-
if (frontmatter.signature?.signed_by) {
|
|
333
|
-
console.log(` Signed by: ${frontmatter.signature.signed_by}`);
|
|
334
|
-
}
|
|
335
|
-
console.log(`\n ${colors.cyan}To trust this signer, run:${colors.reset}`);
|
|
336
|
-
const publicKey = frontmatter.signature.public_key || frontmatter.signature.key_id;
|
|
337
|
-
const identifier = frontmatter.signature.signed_by
|
|
338
|
-
? frontmatter.signature.signed_by.split('<')[0].trim().toLowerCase().replace(/\s+/g, '-')
|
|
339
|
-
: 'unknown-signer';
|
|
340
|
-
console.log(` ${colors.bright}dossier keys add "${publicKey}" "${identifier}"${colors.reset}\n`);
|
|
341
|
-
} else {
|
|
342
|
-
warning(signatureResult.message);
|
|
343
|
-
if (frontmatter.signature?.signed_by) {
|
|
344
|
-
console.log(` Signed by: ${frontmatter.signature.signed_by}`);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
} else {
|
|
348
|
-
warning('No signature present (dossier is unsigned)');
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
// Assess risk
|
|
352
|
-
console.log(`\n${colors.bright}\uD83D\uDD34 Risk Assessment:${colors.reset}`);
|
|
353
|
-
const risk = assessRisk(frontmatter, checksumResult, signatureResult);
|
|
354
|
-
|
|
355
|
-
const riskColors = {
|
|
356
|
-
low: 'green',
|
|
357
|
-
medium: 'yellow',
|
|
358
|
-
high: 'yellow',
|
|
359
|
-
critical: 'red',
|
|
360
|
-
};
|
|
361
|
-
|
|
362
|
-
log(` Risk Level: ${risk.level.toUpperCase()}`, riskColors[risk.level]);
|
|
363
|
-
|
|
364
|
-
if (risk.issues.length > 0) {
|
|
365
|
-
console.log(`\n Issues Found:`);
|
|
366
|
-
risk.issues.forEach(issue => {
|
|
367
|
-
console.log(` - ${issue}`);
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// Recommendation
|
|
372
|
-
console.log(`\n${colors.bright}Recommendation:${colors.reset}`, risk.recommendation);
|
|
373
|
-
|
|
374
|
-
if (risk.recommendation === 'BLOCK') {
|
|
375
|
-
error('\nDO NOT EXECUTE this dossier');
|
|
376
|
-
console.log(' Security verification failed.');
|
|
377
|
-
console.log(' This dossier may have been tampered with or is from an untrusted source.\n');
|
|
378
|
-
return false;
|
|
379
|
-
} else if (risk.level === 'medium' || risk.level === 'high') {
|
|
380
|
-
warning('\nProceed with CAUTION');
|
|
381
|
-
console.log(' Review the dossier code before executing.');
|
|
382
|
-
console.log(' Consider the risk level and your trust in the source.\n');
|
|
383
|
-
return true;
|
|
384
|
-
} else {
|
|
385
|
-
success('\nSafe to execute');
|
|
386
|
-
console.log(' Dossier passed security verification.\n');
|
|
387
|
-
return true;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
} catch (err) {
|
|
391
|
-
error(`\nVerification failed: ${err.message}`);
|
|
392
|
-
if (options.verbose) {
|
|
393
|
-
console.error(err);
|
|
394
|
-
}
|
|
395
|
-
return false;
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
// Main entry point
|
|
400
|
-
async function main() {
|
|
401
|
-
const options = parseArgs();
|
|
402
|
-
|
|
403
|
-
if (options.help || !options.input) {
|
|
404
|
-
showHelp();
|
|
405
|
-
process.exit(options.help ? 0 : 2);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
const passed = await verifyDossier(options.input, options);
|
|
409
|
-
|
|
410
|
-
if (!passed) {
|
|
411
|
-
process.exit(1); // Verification failed
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
if (options.run) {
|
|
415
|
-
warning('\n--run flag not yet implemented');
|
|
416
|
-
warning('For now, manually execute the dossier if verification passed');
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
if (options.outputPath) {
|
|
420
|
-
// Would output the path to downloaded file
|
|
421
|
-
warning('\n--output-path flag not yet implemented');
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
process.exit(0); // Success
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
// Run if called directly
|
|
428
|
-
if (require.main === module) {
|
|
429
|
-
main().catch(err => {
|
|
430
|
-
error(`Fatal error: ${err.message}`);
|
|
431
|
-
process.exit(2);
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
module.exports = {
|
|
436
|
-
verifyDossier,
|
|
437
|
-
parseDossier,
|
|
438
|
-
verifyChecksum,
|
|
439
|
-
assessRisk,
|
|
440
|
-
checkSignature,
|
|
441
|
-
parseArgs,
|
|
442
|
-
downloadFile,
|
|
443
|
-
};
|
|
6
|
+
main().catch((err) => {
|
|
7
|
+
console.error(`Fatal error: ${err.message}`);
|
|
8
|
+
process.exit(2);
|
|
9
|
+
});
|
package/dist/cli.js
CHANGED
|
@@ -16,6 +16,7 @@ const export_1 = require("./commands/export");
|
|
|
16
16
|
const format_1 = require("./commands/format");
|
|
17
17
|
const from_file_1 = require("./commands/from-file");
|
|
18
18
|
const get_1 = require("./commands/get");
|
|
19
|
+
const history_1 = require("./commands/history");
|
|
19
20
|
const info_1 = require("./commands/info");
|
|
20
21
|
const init_1 = require("./commands/init");
|
|
21
22
|
const install_skill_1 = require("./commands/install-skill");
|
|
@@ -32,44 +33,104 @@ const reset_hooks_1 = require("./commands/reset-hooks");
|
|
|
32
33
|
const run_1 = require("./commands/run");
|
|
33
34
|
const search_1 = require("./commands/search");
|
|
34
35
|
const sign_1 = require("./commands/sign");
|
|
36
|
+
const skill_export_1 = require("./commands/skill-export");
|
|
35
37
|
const validate_1 = require("./commands/validate");
|
|
36
|
-
// Import command registrations
|
|
37
38
|
const verify_1 = require("./commands/verify");
|
|
38
39
|
const whoami_1 = require("./commands/whoami");
|
|
40
|
+
const help_1 = require("./help");
|
|
39
41
|
// Setup program
|
|
40
42
|
commander_1.program
|
|
41
43
|
.name('ai-dossier')
|
|
42
|
-
.description('
|
|
43
|
-
.version(pkg.version)
|
|
44
|
-
|
|
44
|
+
.description('Structured instruction files (.ds.md) that AI agents execute intelligently.\nLike Dockerfiles for AI automation — structured, portable, verifiable.')
|
|
45
|
+
.version(pkg.version)
|
|
46
|
+
.option('--agent', 'Output machine-readable capability manifest for agent discovery')
|
|
47
|
+
.configureHelp({ formatHelp: help_1.formatHelpGrouped })
|
|
48
|
+
.addHelpText('after', `Quick Start:
|
|
49
|
+
$ ai-dossier init Set up ~/.dossier/ directory
|
|
50
|
+
$ ai-dossier search <query> Find dossiers in the registry
|
|
51
|
+
$ ai-dossier run <file-or-name> Verify and execute a dossier
|
|
52
|
+
$ ai-dossier create [file] Create a new dossier
|
|
53
|
+
|
|
54
|
+
Agent-friendly: Run \`ai-dossier --agent\` for machine-readable capabilities.`);
|
|
55
|
+
// Register all commands — ordered by category
|
|
56
|
+
// Getting Started
|
|
57
|
+
(0, init_1.registerInitCommand)(commander_1.program);
|
|
58
|
+
(0, create_1.registerCreateCommand)(commander_1.program);
|
|
59
|
+
(0, from_file_1.registerFromFileCommand)(commander_1.program);
|
|
60
|
+
// Verify & Run
|
|
45
61
|
(0, verify_1.registerVerifyCommand)(commander_1.program);
|
|
46
62
|
(0, run_1.registerRunCommand)(commander_1.program);
|
|
47
|
-
(0,
|
|
48
|
-
(0,
|
|
49
|
-
(0,
|
|
63
|
+
(0, validate_1.registerValidateCommand)(commander_1.program);
|
|
64
|
+
(0, lint_1.registerLintCommand)(commander_1.program);
|
|
65
|
+
(0, format_1.registerFormatCommand)(commander_1.program);
|
|
66
|
+
// Registry
|
|
50
67
|
(0, search_1.registerSearchCommand)(commander_1.program);
|
|
68
|
+
(0, list_1.registerListCommand)(commander_1.program);
|
|
51
69
|
(0, info_1.registerInfoCommand)(commander_1.program);
|
|
52
|
-
(0,
|
|
70
|
+
(0, get_1.registerGetCommand)(commander_1.program);
|
|
71
|
+
(0, pull_1.registerPullCommand)(commander_1.program);
|
|
72
|
+
(0, export_1.registerExportCommand)(commander_1.program);
|
|
53
73
|
(0, publish_1.registerPublishCommand)(commander_1.program);
|
|
54
74
|
(0, remove_1.registerRemoveCommand)(commander_1.program);
|
|
75
|
+
// Skills
|
|
76
|
+
(0, install_skill_1.registerInstallSkillCommand)(commander_1.program);
|
|
77
|
+
(0, skill_export_1.registerSkillExportCommand)(commander_1.program);
|
|
78
|
+
// Security
|
|
79
|
+
(0, sign_1.registerSignCommand)(commander_1.program);
|
|
80
|
+
(0, checksum_1.registerChecksumCommand)(commander_1.program);
|
|
81
|
+
(0, keys_1.registerKeysCommand)(commander_1.program);
|
|
82
|
+
// Auth & Config
|
|
55
83
|
(0, login_1.registerLoginCommand)(commander_1.program);
|
|
56
84
|
(0, logout_1.registerLogoutCommand)(commander_1.program);
|
|
57
85
|
(0, whoami_1.registerWhoamiCommand)(commander_1.program);
|
|
58
|
-
(0,
|
|
59
|
-
(0, validate_1.registerValidateCommand)(commander_1.program);
|
|
60
|
-
(0, init_1.registerInitCommand)(commander_1.program);
|
|
61
|
-
(0, reset_hooks_1.registerResetHooksCommand)(commander_1.program);
|
|
62
|
-
(0, prompt_hook_1.registerPromptHookCommand)(commander_1.program);
|
|
63
|
-
(0, pull_1.registerPullCommand)(commander_1.program);
|
|
64
|
-
(0, export_1.registerExportCommand)(commander_1.program);
|
|
86
|
+
(0, config_cmd_1.registerConfigCommand)(commander_1.program);
|
|
65
87
|
(0, cache_1.registerCacheCommand)(commander_1.program);
|
|
66
|
-
(0,
|
|
67
|
-
|
|
68
|
-
(0,
|
|
69
|
-
(0,
|
|
70
|
-
(0, from_file_1.registerFromFileCommand)(commander_1.program);
|
|
71
|
-
(0, get_1.registerGetCommand)(commander_1.program);
|
|
88
|
+
(0, history_1.registerHistoryCommand)(commander_1.program);
|
|
89
|
+
// Hidden
|
|
90
|
+
(0, prompt_hook_1.registerPromptHookCommand)(commander_1.program);
|
|
91
|
+
(0, reset_hooks_1.registerResetHooksCommand)(commander_1.program);
|
|
72
92
|
(0, commands_1.registerCommandsCommand)(commander_1.program);
|
|
93
|
+
// Handle --agent flag before normal parsing
|
|
94
|
+
if (process.argv.includes('--agent')) {
|
|
95
|
+
const manifest = {
|
|
96
|
+
agent_protocol: '1.0',
|
|
97
|
+
cli: 'ai-dossier',
|
|
98
|
+
version: pkg.version,
|
|
99
|
+
discovery_command: 'ai-dossier commands',
|
|
100
|
+
capabilities: {
|
|
101
|
+
json_output: '--json',
|
|
102
|
+
skip_prompts: '-y / --yes',
|
|
103
|
+
non_tty_safe: true,
|
|
104
|
+
machine_errors: true,
|
|
105
|
+
multi_registry: true,
|
|
106
|
+
},
|
|
107
|
+
registry: {
|
|
108
|
+
description: 'Supports multiple registries queried in parallel. Configure via config command, .dossierrc.json, or DOSSIER_REGISTRY_URL env var.',
|
|
109
|
+
commands: {
|
|
110
|
+
configure: 'ai-dossier config --add-registry <name> --url <url>',
|
|
111
|
+
list_registries: 'ai-dossier config --list-registries --json',
|
|
112
|
+
set_default: 'ai-dossier config --set-default-registry <name>',
|
|
113
|
+
},
|
|
114
|
+
env_vars: [
|
|
115
|
+
'DOSSIER_REGISTRY_URL',
|
|
116
|
+
'DOSSIER_REGISTRY_TOKEN',
|
|
117
|
+
'DOSSIER_REGISTRY_USER',
|
|
118
|
+
'DOSSIER_REGISTRY_ORGS',
|
|
119
|
+
],
|
|
120
|
+
project_config: '.dossierrc.json',
|
|
121
|
+
},
|
|
122
|
+
quick_start: [
|
|
123
|
+
'ai-dossier commands # discover all commands and flags',
|
|
124
|
+
'ai-dossier whoami --json # check auth status',
|
|
125
|
+
'ai-dossier search <query> --json # find dossiers',
|
|
126
|
+
'ai-dossier list --json --source registry # list all registry dossiers',
|
|
127
|
+
'ai-dossier config --list-registries --json # list configured registries',
|
|
128
|
+
'ai-dossier config --add-registry internal --url https://dossier.company.com # add registry',
|
|
129
|
+
],
|
|
130
|
+
};
|
|
131
|
+
console.log(JSON.stringify(manifest, null, 2));
|
|
132
|
+
process.exit(0);
|
|
133
|
+
}
|
|
73
134
|
// Parse and execute
|
|
74
135
|
commander_1.program.parse(process.argv);
|
|
75
136
|
// Show help if no command provided
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,yCAAoC;AAEpC,eAAe;AACf,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,4CAAwD;AACxD,kDAA8D;AAC9D,kDAA8D;AAC9D,sDAA8D;AAC9D,8CAA0D;AAC1D,8CAA0D;AAC1D,8CAA0D;AAC1D,oDAA+D;AAC/D,wCAAoD;AACpD,0CAAsD;AACtD,0CAAsD;AACtD,4DAAuE;AACvE,0CAAsD;AACtD,0CAAsD;AACtD,0CAAsD;AACtD,4CAAwD;AACxD,8CAA0D;AAC1D,wDAAmE;AACnE,gDAA4D;AAC5D,0CAAsD;AACtD,8CAA0D;AAC1D,wDAAmE;AACnE,wCAAoD;AACpD,8CAA0D;AAC1D,0CAAsD;AACtD,kDAA8D;AAC9D
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,yCAAoC;AAEpC,eAAe;AACf,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,4CAAwD;AACxD,kDAA8D;AAC9D,kDAA8D;AAC9D,sDAA8D;AAC9D,8CAA0D;AAC1D,8CAA0D;AAC1D,8CAA0D;AAC1D,oDAA+D;AAC/D,wCAAoD;AACpD,gDAA4D;AAC5D,0CAAsD;AACtD,0CAAsD;AACtD,4DAAuE;AACvE,0CAAsD;AACtD,0CAAsD;AACtD,0CAAsD;AACtD,4CAAwD;AACxD,8CAA0D;AAC1D,wDAAmE;AACnE,gDAA4D;AAC5D,0CAAsD;AACtD,8CAA0D;AAC1D,wDAAmE;AACnE,wCAAoD;AACpD,8CAA0D;AAC1D,0CAAsD;AACtD,0DAAqE;AACrE,kDAA8D;AAC9D,8CAA0D;AAC1D,8CAA0D;AAC1D,iCAA2C;AAE3C,gBAAgB;AAChB,mBAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CACV,qJAAqJ,CACtJ;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,SAAS,EAAE,iEAAiE,CAAC;KACpF,aAAa,CAAC,EAAE,UAAU,EAAE,wBAAiB,EAAE,CAAC;KAChD,WAAW,CACV,OAAO,EACP;;;;;;8EAM0E,CAC3E,CAAC;AAEJ,8CAA8C;AAE9C,kBAAkB;AAClB,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,mCAAuB,EAAC,mBAAO,CAAC,CAAC;AAEjC,eAAe;AACf,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,wBAAkB,EAAC,mBAAO,CAAC,CAAC;AAC5B,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AACjC,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAE/B,WAAW;AACX,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,wBAAkB,EAAC,mBAAO,CAAC,CAAC;AAC5B,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,gCAAsB,EAAC,mBAAO,CAAC,CAAC;AAChC,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAE/B,SAAS;AACT,IAAA,2CAA2B,EAAC,mBAAO,CAAC,CAAC;AACrC,IAAA,yCAA0B,EAAC,mBAAO,CAAC,CAAC;AAEpC,WAAW;AACX,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AACjC,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAE7B,gBAAgB;AAChB,IAAA,4BAAoB,EAAC,mBAAO,CAAC,CAAC;AAC9B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,kCAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,4BAAoB,EAAC,mBAAO,CAAC,CAAC;AAC9B,IAAA,gCAAsB,EAAC,mBAAO,CAAC,CAAC;AAEhC,SAAS;AACT,IAAA,uCAAyB,EAAC,mBAAO,CAAC,CAAC;AACnC,IAAA,uCAAyB,EAAC,mBAAO,CAAC,CAAC;AACnC,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AAEjC,4CAA4C;AAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG;QACf,cAAc,EAAE,KAAK;QACrB,GAAG,EAAE,YAAY;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,iBAAiB,EAAE,qBAAqB;QACxC,YAAY,EAAE;YACZ,WAAW,EAAE,QAAQ;YACrB,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;SACrB;QACD,QAAQ,EAAE;YACR,WAAW,EACT,mIAAmI;YACrI,QAAQ,EAAE;gBACR,SAAS,EAAE,qDAAqD;gBAChE,eAAe,EAAE,4CAA4C;gBAC7D,WAAW,EAAE,iDAAiD;aAC/D;YACD,QAAQ,EAAE;gBACR,sBAAsB;gBACtB,wBAAwB;gBACxB,uBAAuB;gBACvB,uBAAuB;aACxB;YACD,cAAc,EAAE,iBAAiB;SAClC;QACD,WAAW,EAAE;YACX,0EAA0E;YAC1E,4DAA4D;YAC5D,wDAAwD;YACxD,wEAAwE;YACxE,0EAA0E;YAC1E,6FAA6F;SAC9F;KACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,oBAAoB;AACpB,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,mBAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwP3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":";;;;;AAOA,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/commands/checksum.ts"],"names":[],"mappings":";;;;;AAMA,0DA2GC;AAjHD,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/commands/checksum.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA0FjD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC9D"}
|