@ai-dossier/cli 0.4.1 → 0.4.2

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.
Files changed (103) hide show
  1. package/README.md +30 -25
  2. package/bin/dossier-verify +6 -440
  3. package/dist/cli.js +80 -21
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/cache.d.ts.map +1 -1
  6. package/dist/commands/cache.js.map +1 -1
  7. package/dist/commands/checksum.js.map +1 -1
  8. package/dist/commands/commands.d.ts.map +1 -1
  9. package/dist/commands/commands.js +4 -2
  10. package/dist/commands/commands.js.map +1 -1
  11. package/dist/commands/config-cmd.d.ts.map +1 -1
  12. package/dist/commands/config-cmd.js +170 -7
  13. package/dist/commands/config-cmd.js.map +1 -1
  14. package/dist/commands/create.d.ts.map +1 -1
  15. package/dist/commands/create.js +19 -8
  16. package/dist/commands/create.js.map +1 -1
  17. package/dist/commands/export.d.ts.map +1 -1
  18. package/dist/commands/export.js +15 -5
  19. package/dist/commands/export.js.map +1 -1
  20. package/dist/commands/format.d.ts.map +1 -1
  21. package/dist/commands/format.js.map +1 -1
  22. package/dist/commands/get.d.ts.map +1 -1
  23. package/dist/commands/get.js +19 -6
  24. package/dist/commands/get.js.map +1 -1
  25. package/dist/commands/info.d.ts.map +1 -1
  26. package/dist/commands/info.js +20 -6
  27. package/dist/commands/info.js.map +1 -1
  28. package/dist/commands/install-skill.d.ts.map +1 -1
  29. package/dist/commands/install-skill.js +16 -9
  30. package/dist/commands/install-skill.js.map +1 -1
  31. package/dist/commands/lint.d.ts.map +1 -1
  32. package/dist/commands/lint.js.map +1 -1
  33. package/dist/commands/list.d.ts.map +1 -1
  34. package/dist/commands/list.js +54 -41
  35. package/dist/commands/list.js.map +1 -1
  36. package/dist/commands/login.d.ts.map +1 -1
  37. package/dist/commands/login.js +25 -5
  38. package/dist/commands/login.js.map +1 -1
  39. package/dist/commands/logout.d.ts.map +1 -1
  40. package/dist/commands/logout.js +22 -5
  41. package/dist/commands/logout.js.map +1 -1
  42. package/dist/commands/prompt-hook.d.ts.map +1 -1
  43. package/dist/commands/prompt-hook.js +4 -13
  44. package/dist/commands/prompt-hook.js.map +1 -1
  45. package/dist/commands/publish.d.ts.map +1 -1
  46. package/dist/commands/publish.js +35 -22
  47. package/dist/commands/publish.js.map +1 -1
  48. package/dist/commands/pull.d.ts.map +1 -1
  49. package/dist/commands/pull.js +23 -8
  50. package/dist/commands/pull.js.map +1 -1
  51. package/dist/commands/remove.d.ts.map +1 -1
  52. package/dist/commands/remove.js +25 -12
  53. package/dist/commands/remove.js.map +1 -1
  54. package/dist/commands/reset-hooks.js +1 -1
  55. package/dist/commands/reset-hooks.js.map +1 -1
  56. package/dist/commands/run.d.ts.map +1 -1
  57. package/dist/commands/run.js +75 -48
  58. package/dist/commands/run.js.map +1 -1
  59. package/dist/commands/search.d.ts.map +1 -1
  60. package/dist/commands/search.js +29 -27
  61. package/dist/commands/search.js.map +1 -1
  62. package/dist/commands/sign.js.map +1 -1
  63. package/dist/commands/skill-export.d.ts +3 -0
  64. package/dist/commands/skill-export.d.ts.map +1 -0
  65. package/dist/commands/skill-export.js +218 -0
  66. package/dist/commands/skill-export.js.map +1 -0
  67. package/dist/commands/validate.d.ts.map +1 -1
  68. package/dist/commands/validate.js.map +1 -1
  69. package/dist/commands/verify.d.ts.map +1 -1
  70. package/dist/commands/verify.js +1 -8
  71. package/dist/commands/verify.js.map +1 -1
  72. package/dist/commands/whoami.d.ts.map +1 -1
  73. package/dist/commands/whoami.js +108 -25
  74. package/dist/commands/whoami.js.map +1 -1
  75. package/dist/config.d.ts +38 -1
  76. package/dist/config.d.ts.map +1 -1
  77. package/dist/config.js +128 -1
  78. package/dist/config.js.map +1 -1
  79. package/dist/credentials.d.ts +14 -9
  80. package/dist/credentials.d.ts.map +1 -1
  81. package/dist/credentials.js +119 -49
  82. package/dist/credentials.js.map +1 -1
  83. package/dist/help.d.ts +7 -0
  84. package/dist/help.d.ts.map +1 -0
  85. package/dist/help.js +86 -0
  86. package/dist/help.js.map +1 -0
  87. package/dist/helpers.d.ts +2 -10
  88. package/dist/helpers.d.ts.map +1 -1
  89. package/dist/helpers.js +10 -28
  90. package/dist/helpers.js.map +1 -1
  91. package/dist/multi-registry.d.ts +71 -0
  92. package/dist/multi-registry.d.ts.map +1 -0
  93. package/dist/multi-registry.js +136 -0
  94. package/dist/multi-registry.js.map +1 -0
  95. package/dist/registry-client.d.ts +64 -8
  96. package/dist/registry-client.d.ts.map +1 -1
  97. package/dist/registry-client.js +13 -0
  98. package/dist/registry-client.js.map +1 -1
  99. package/dist/verify-dossier.d.ts +28 -0
  100. package/dist/verify-dossier.d.ts.map +1 -0
  101. package/dist/verify-dossier.js +329 -0
  102. package/dist/verify-dossier.js.map +1 -0
  103. package/package.json +1 -1
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ /**
3
+ * Dossier verification module.
4
+ *
5
+ * Provides integrity (checksum), authenticity (signature), and risk
6
+ * assessment for local files and remote URLs.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.downloadFile = downloadFile;
13
+ exports.checkSignature = checkSignature;
14
+ exports.verifyDossier = verifyDossier;
15
+ exports.parseArgs = parseArgs;
16
+ exports.showHelp = showHelp;
17
+ exports.main = main;
18
+ const node_fs_1 = __importDefault(require("node:fs"));
19
+ const node_http_1 = __importDefault(require("node:http"));
20
+ const node_https_1 = __importDefault(require("node:https"));
21
+ const core_1 = require("@ai-dossier/core");
22
+ const github_url_1 = require("./github-url");
23
+ // ============================================================================
24
+ // Terminal colors
25
+ // ============================================================================
26
+ const colors = {
27
+ reset: '\x1b[0m',
28
+ bright: '\x1b[1m',
29
+ red: '\x1b[31m',
30
+ green: '\x1b[32m',
31
+ yellow: '\x1b[33m',
32
+ cyan: '\x1b[36m',
33
+ };
34
+ function log(message, color = 'reset') {
35
+ console.log(`${colors[color]}${message}${colors.reset}`);
36
+ }
37
+ function error(message) {
38
+ log(`\u274C ${message}`, 'red');
39
+ }
40
+ function success(message) {
41
+ log(`\u2705 ${message}`, 'green');
42
+ }
43
+ function warning(message) {
44
+ log(`\u26A0\uFE0F ${message}`, 'yellow');
45
+ }
46
+ function info(message) {
47
+ log(`\u2139\uFE0F ${message}`, 'cyan');
48
+ }
49
+ // ============================================================================
50
+ // Download with redirect depth limit
51
+ // ============================================================================
52
+ const MAX_REDIRECTS = 10;
53
+ async function downloadFile(url, redirectCount = 0) {
54
+ if (redirectCount >= MAX_REDIRECTS) {
55
+ throw new Error(`Too many redirects (max ${MAX_REDIRECTS})`);
56
+ }
57
+ const resolvedUrl = redirectCount === 0 ? (0, github_url_1.convertGitHubBlobToRaw)(url) : url;
58
+ return new Promise((resolve, reject) => {
59
+ const protocol = resolvedUrl.startsWith('https://') ? node_https_1.default : node_http_1.default;
60
+ protocol
61
+ .get(resolvedUrl, (res) => {
62
+ if (res.statusCode === 301 || res.statusCode === 302) {
63
+ const location = res.headers.location;
64
+ if (!location) {
65
+ return reject(new Error(`Redirect without Location header from ${resolvedUrl}`));
66
+ }
67
+ return downloadFile(location, redirectCount + 1)
68
+ .then(resolve)
69
+ .catch(reject);
70
+ }
71
+ if (res.statusCode !== 200) {
72
+ return reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage}`));
73
+ }
74
+ let data = '';
75
+ res.on('data', (chunk) => {
76
+ data += chunk;
77
+ });
78
+ res.on('end', () => resolve(data));
79
+ })
80
+ .on('error', reject);
81
+ });
82
+ }
83
+ async function checkSignature(body, frontmatter) {
84
+ if (!frontmatter.signature) {
85
+ return {
86
+ present: false,
87
+ verified: false,
88
+ trusted: false,
89
+ message: 'No signature present',
90
+ };
91
+ }
92
+ const signature = frontmatter.signature;
93
+ const trustedKeys = (0, core_1.loadTrustedKeys)();
94
+ const isTrusted = (signature.key_id != null && trustedKeys.has(signature.key_id)) ||
95
+ (signature.public_key != null && trustedKeys.has(signature.public_key));
96
+ const result = await (0, core_1.verifySignature)(body, signature);
97
+ if (result.valid) {
98
+ let trustedName = '';
99
+ if (isTrusted) {
100
+ trustedName =
101
+ (signature.key_id ? trustedKeys.get(signature.key_id) : undefined) ||
102
+ (signature.public_key ? trustedKeys.get(signature.public_key) : undefined) ||
103
+ '';
104
+ }
105
+ return {
106
+ present: true,
107
+ verified: true,
108
+ trusted: isTrusted,
109
+ message: isTrusted
110
+ ? `Verified signature from trusted source: ${trustedName}`
111
+ : 'Valid signature but key is not in trusted list',
112
+ };
113
+ }
114
+ if (result.error) {
115
+ return {
116
+ present: true,
117
+ verified: false,
118
+ trusted: false,
119
+ message: `Verification error: ${result.error}`,
120
+ };
121
+ }
122
+ return {
123
+ present: true,
124
+ verified: false,
125
+ trusted: isTrusted,
126
+ message: 'Signature verification FAILED',
127
+ };
128
+ }
129
+ // ============================================================================
130
+ // Main verification
131
+ // ============================================================================
132
+ async function verifyDossier(input, options) {
133
+ try {
134
+ log(`\n${colors.bright}\uD83D\uDD10 Dossier Verification Tool${colors.reset}\n`);
135
+ const isUrl = input.startsWith('http://') || input.startsWith('https://');
136
+ let content;
137
+ if (isUrl) {
138
+ info(`Downloading: ${input}`);
139
+ content = await downloadFile(input);
140
+ success('Downloaded successfully');
141
+ }
142
+ else {
143
+ info(`Reading: ${input}`);
144
+ content = node_fs_1.default.readFileSync(input, 'utf8');
145
+ success('File read successfully');
146
+ }
147
+ // Parse dossier (using core directly)
148
+ info('Parsing dossier...');
149
+ const parsed = (0, core_1.parseDossierContent)(content);
150
+ const { frontmatter, body } = parsed;
151
+ success(`Parsed: ${frontmatter.title} v${frontmatter.version}`);
152
+ if (options.verbose) {
153
+ console.log(`\n${colors.bright}Dossier Metadata:${colors.reset}`);
154
+ console.log(` Title: ${frontmatter.title}`);
155
+ console.log(` Version: ${frontmatter.version}`);
156
+ console.log(` Risk Level: ${frontmatter.risk_level ?? 'not specified'}`);
157
+ }
158
+ // Verify checksum (using core directly)
159
+ console.log(`\n${colors.bright}\uD83D\uDCCA Integrity Check:${colors.reset}`);
160
+ const integrityResult = (0, core_1.verifyIntegrity)(body, frontmatter.checksum?.hash);
161
+ const checksumPassed = integrityResult.status === 'valid';
162
+ if (checksumPassed) {
163
+ success('Checksum VALID - content has not been tampered with');
164
+ if (options.verbose) {
165
+ console.log(` Hash: ${integrityResult.actualHash}`);
166
+ }
167
+ }
168
+ else {
169
+ error('Checksum INVALID - content has been modified!');
170
+ if (options.verbose) {
171
+ console.log(` Declared: ${integrityResult.expectedHash}`);
172
+ console.log(` Actual: ${integrityResult.actualHash}`);
173
+ }
174
+ }
175
+ // Verify signature
176
+ console.log(`\n${colors.bright}\uD83D\uDD0F Authenticity Check:${colors.reset}`);
177
+ const signatureResult = await checkSignature(body, frontmatter);
178
+ if (signatureResult.present) {
179
+ if (signatureResult.verified && signatureResult.trusted) {
180
+ success('Signature VERIFIED - from trusted author');
181
+ }
182
+ else if (signatureResult.verified && !signatureResult.trusted) {
183
+ warning(signatureResult.message);
184
+ if (frontmatter.signature?.signed_by) {
185
+ console.log(` Signed by: ${frontmatter.signature.signed_by}`);
186
+ }
187
+ console.log(`\n ${colors.cyan}To trust this signer, run:${colors.reset}`);
188
+ const sig = frontmatter.signature;
189
+ const publicKey = sig?.public_key || sig?.key_id;
190
+ const identifier = sig?.signed_by
191
+ ? sig.signed_by.split('<')[0].trim().toLowerCase().replace(/\s+/g, '-')
192
+ : 'unknown-signer';
193
+ console.log(` ${colors.bright}dossier keys add "${publicKey}" "${identifier}"${colors.reset}\n`);
194
+ }
195
+ else {
196
+ warning(signatureResult.message);
197
+ if (frontmatter.signature?.signed_by) {
198
+ console.log(` Signed by: ${frontmatter.signature.signed_by}`);
199
+ }
200
+ }
201
+ }
202
+ else {
203
+ warning('No signature present (dossier is unsigned)');
204
+ }
205
+ // Assess risk (using core function)
206
+ console.log(`\n${colors.bright}\uD83D\uDD34 Risk Assessment:${colors.reset}`);
207
+ const checksumStatus = { passed: checksumPassed };
208
+ const signatureStatus = {
209
+ present: signatureResult.present,
210
+ verified: signatureResult.verified,
211
+ trusted: signatureResult.trusted,
212
+ };
213
+ const risk = (0, core_1.assessVerificationRisk)(frontmatter.risk_level, checksumStatus, signatureStatus);
214
+ const riskColors = {
215
+ low: 'green',
216
+ medium: 'yellow',
217
+ high: 'yellow',
218
+ critical: 'red',
219
+ };
220
+ log(` Risk Level: ${risk.level.toUpperCase()}`, riskColors[risk.level] || 'reset');
221
+ if (risk.issues.length > 0) {
222
+ console.log(`\n Issues Found:`);
223
+ risk.issues.forEach((issue) => {
224
+ console.log(` - ${issue}`);
225
+ });
226
+ }
227
+ // Recommendation
228
+ console.log(`\n${colors.bright}Recommendation:${colors.reset}`, risk.recommendation);
229
+ if (risk.recommendation === 'BLOCK') {
230
+ error('\nDO NOT EXECUTE this dossier');
231
+ console.log(' Security verification failed.');
232
+ console.log(' This dossier may have been tampered with or is from an untrusted source.\n');
233
+ return false;
234
+ }
235
+ else if (risk.level === 'medium' || risk.level === 'high') {
236
+ warning('\nProceed with CAUTION');
237
+ console.log(' Review the dossier code before executing.');
238
+ console.log(' Consider the risk level and your trust in the source.\n');
239
+ return true;
240
+ }
241
+ else {
242
+ success('\nSafe to execute');
243
+ console.log(' Dossier passed security verification.\n');
244
+ return true;
245
+ }
246
+ }
247
+ catch (err) {
248
+ error(`\nVerification failed: ${err.message}`);
249
+ if (options.verbose) {
250
+ console.error(err);
251
+ }
252
+ return false;
253
+ }
254
+ }
255
+ function parseArgs() {
256
+ const args = process.argv.slice(2);
257
+ const options = {
258
+ verbose: false,
259
+ help: false,
260
+ input: null,
261
+ };
262
+ for (const arg of args) {
263
+ if (arg === '--verbose' || arg === '-v') {
264
+ options.verbose = true;
265
+ }
266
+ else if (arg === '--help' || arg === '-h') {
267
+ options.help = true;
268
+ }
269
+ else if (!options.input) {
270
+ options.input = arg;
271
+ }
272
+ }
273
+ return options;
274
+ }
275
+ function showHelp() {
276
+ console.log(`
277
+ ${colors.bright}Dossier Verification CLI${colors.reset}
278
+
279
+ ${colors.bright}Usage:${colors.reset}
280
+ dossier-verify <file-or-url> Verify dossier security
281
+ dossier-verify --verbose <file-or-url> Show detailed verification
282
+
283
+ ${colors.bright}Exit Codes:${colors.reset}
284
+ 0 - Verification passed (safe to execute)
285
+ 1 - Verification failed (do not execute)
286
+ 2 - Error occurred (cannot verify)
287
+
288
+ ${colors.bright}Examples:${colors.reset}
289
+ # Verify local file
290
+ dossier-verify path/to/dossier.ds.md
291
+
292
+ # Verify remote dossier
293
+ dossier-verify https://example.com/dossier.ds.md
294
+
295
+ # Use in shell script
296
+ if dossier-verify "$URL"; then
297
+ claude-code "run $URL"
298
+ else
299
+ echo "Security verification failed"
300
+ fi
301
+
302
+ ${colors.bright}Security Checks:${colors.reset}
303
+ \u2713 SHA256 checksum verification (required)
304
+ \u2713 Signature verification (if present)
305
+ \u2713 Trusted keys check
306
+ \u2713 Risk level assessment
307
+
308
+ ${colors.bright}More Information:${colors.reset}
309
+ Documentation: https://github.com/imboard/ai-dossier
310
+ Security: SECURITY_STATUS.md
311
+ Protocol: PROTOCOL.md
312
+ `);
313
+ }
314
+ // ============================================================================
315
+ // CLI entry point
316
+ // ============================================================================
317
+ async function main() {
318
+ const options = parseArgs();
319
+ if (options.help || !options.input) {
320
+ showHelp();
321
+ process.exit(options.help ? 0 : 2);
322
+ }
323
+ const passed = await verifyDossier(options.input, options);
324
+ if (!passed) {
325
+ process.exit(1);
326
+ }
327
+ process.exit(0);
328
+ }
329
+ //# sourceMappingURL=verify-dossier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-dossier.js","sourceRoot":"","sources":["../src/verify-dossier.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-dossier/cli",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Command-line tool for creating, verifying, and executing dossiers",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {