@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
package/dist/config.js CHANGED
@@ -2,20 +2,27 @@
2
2
  /**
3
3
  * Configuration management for Dossier CLI
4
4
  * Handles reading and writing user preferences to ~/.dossier/config.json
5
+ * and multi-registry configuration.
5
6
  */
6
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
9
  };
9
10
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.DEFAULT_CONFIG = exports.CONFIG_FILE = exports.CONFIG_DIR = void 0;
11
+ exports.DEFAULT_REGISTRY_URL = exports.DEFAULT_CONFIG = exports.CONFIG_FILE = exports.CONFIG_DIR = void 0;
11
12
  exports.ensureConfigDir = ensureConfigDir;
12
13
  exports.loadConfig = loadConfig;
13
14
  exports.saveConfig = saveConfig;
14
15
  exports.getConfig = getConfig;
15
16
  exports.setConfig = setConfig;
17
+ exports.loadProjectConfig = loadProjectConfig;
18
+ exports.resolveRegistries = resolveRegistries;
19
+ exports.resolveWriteRegistry = resolveWriteRegistry;
20
+ exports.resolveRegistryByName = resolveRegistryByName;
16
21
  const node_fs_1 = __importDefault(require("node:fs"));
17
22
  const node_os_1 = __importDefault(require("node:os"));
18
23
  const node_path_1 = __importDefault(require("node:path"));
24
+ const DEFAULT_REGISTRY_URL = 'https://dossier-registry.vercel.app';
25
+ exports.DEFAULT_REGISTRY_URL = DEFAULT_REGISTRY_URL;
19
26
  const CONFIG_DIR = node_path_1.default.join(node_os_1.default.homedir(), '.dossier');
20
27
  exports.CONFIG_DIR = CONFIG_DIR;
21
28
  const CONFIG_FILE = node_path_1.default.join(CONFIG_DIR, 'config.json');
@@ -84,4 +91,124 @@ function setConfig(key, value) {
84
91
  config[key] = value;
85
92
  return saveConfig(config);
86
93
  }
94
+ /**
95
+ * Load project-level .dossierrc.json by walking up from cwd.
96
+ */
97
+ function loadProjectConfig() {
98
+ let dir = process.cwd();
99
+ const root = node_path_1.default.parse(dir).root;
100
+ while (dir !== root) {
101
+ const rcFile = node_path_1.default.join(dir, '.dossierrc.json');
102
+ if (node_fs_1.default.existsSync(rcFile)) {
103
+ try {
104
+ return JSON.parse(node_fs_1.default.readFileSync(rcFile, 'utf8'));
105
+ }
106
+ catch {
107
+ console.error(`⚠️ Warning: Invalid .dossierrc.json at ${rcFile}`);
108
+ return null;
109
+ }
110
+ }
111
+ dir = node_path_1.default.dirname(dir);
112
+ }
113
+ return null;
114
+ }
115
+ /**
116
+ * Resolve all configured registries, merging user + project config.
117
+ * Resolution priority:
118
+ * 1. CLI --registry flag (handled by caller)
119
+ * 2. DOSSIER_REGISTRY_URL env var → virtual "env" registry
120
+ * 3. Project-level .dossierrc.json
121
+ * 4. User-level ~/.dossier/config.json
122
+ * 5. Hardcoded default (public registry)
123
+ */
124
+ function resolveRegistries() {
125
+ const userConfig = loadConfig();
126
+ const projectConfig = loadProjectConfig();
127
+ // Merge registries: project overlays user (project wins on name conflicts)
128
+ const merged = {};
129
+ if (userConfig.registries) {
130
+ for (const [name, entry] of Object.entries(userConfig.registries)) {
131
+ merged[name] = entry;
132
+ }
133
+ }
134
+ if (projectConfig?.registries) {
135
+ for (const [name, entry] of Object.entries(projectConfig.registries)) {
136
+ if (name in merged) {
137
+ // Project config cannot override user-configured registries (credential exfiltration vector)
138
+ continue;
139
+ }
140
+ merged[name] = entry;
141
+ }
142
+ }
143
+ // DOSSIER_REGISTRY_URL env var creates a virtual "env" registry
144
+ const envUrl = process.env.DOSSIER_REGISTRY_URL;
145
+ if (envUrl) {
146
+ merged.env = { url: envUrl };
147
+ }
148
+ // If no registries configured at all, use hardcoded default
149
+ if (Object.keys(merged).length === 0) {
150
+ return [{ name: 'public', url: DEFAULT_REGISTRY_URL }];
151
+ }
152
+ return Object.entries(merged).map(([name, entry]) => ({
153
+ name,
154
+ url: entry.url,
155
+ readonly: entry.readonly,
156
+ }));
157
+ }
158
+ /**
159
+ * Resolve which single registry to use for write operations.
160
+ * Priority: --registry flag > defaultRegistry (project > user) > first registry
161
+ */
162
+ function resolveWriteRegistry(registryFlag) {
163
+ const registries = resolveRegistries();
164
+ if (registryFlag) {
165
+ const found = registries.find((r) => r.name === registryFlag);
166
+ if (!found) {
167
+ const names = registries.map((r) => r.name).join(', ');
168
+ throw new Error(`Registry '${registryFlag}' not found. Available: ${names}`);
169
+ }
170
+ if (found.readonly) {
171
+ throw new Error(`Registry '${registryFlag}' is read-only`);
172
+ }
173
+ return found;
174
+ }
175
+ // Check defaultRegistry in project config first, then user config
176
+ const projectConfig = loadProjectConfig();
177
+ const userConfig = loadConfig();
178
+ const defaultName = projectConfig?.defaultRegistry || userConfig.defaultRegistry;
179
+ if (defaultName) {
180
+ const found = registries.find((r) => r.name === defaultName);
181
+ if (found) {
182
+ if (found.readonly) {
183
+ throw new Error(`Default registry '${defaultName}' is read-only`);
184
+ }
185
+ return found;
186
+ }
187
+ }
188
+ // Find first registry marked as default
189
+ for (const reg of registries) {
190
+ const allConfigs = { ...userConfig.registries, ...projectConfig?.registries };
191
+ const entry = allConfigs[reg.name];
192
+ if (entry?.default && !reg.readonly) {
193
+ return reg;
194
+ }
195
+ }
196
+ // Fall back to first non-readonly registry
197
+ const writable = registries.find((r) => !r.readonly);
198
+ if (writable)
199
+ return writable;
200
+ throw new Error('No writable registry configured. All registries are read-only.');
201
+ }
202
+ /**
203
+ * Resolve a single registry by name (for auth commands).
204
+ */
205
+ function resolveRegistryByName(name) {
206
+ const registries = resolveRegistries();
207
+ const found = registries.find((r) => r.name === name);
208
+ if (!found) {
209
+ const names = registries.map((r) => r.name).join(', ');
210
+ throw new Error(`Registry '${name}' not found. Available: ${names}`);
211
+ }
212
+ return found;
213
+ }
87
214
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAsFD,0CAAe;AACf,gCAAU;AACV,gCAAU;AACV,8BAAS;AACT,8BAAS;AAxFX,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAS7B,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AA8ErD,gCAAU;AA7EZ,MAAM,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AA8EvD,kCAAW;AA5Eb,MAAM,cAAc,GAAkB;IACpC,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,IAAI;CACf,CAAC;AAyEA,wCAAc;AAvEhB;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,iBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,iBAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEtC,+CAA+C;QAC/C,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,MAAqB;IACvC,IAAI,CAAC;QACH,eAAe,EAAE,CAAC;QAClB,iBAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAC7D,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,KAAc;IAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Credential storage for Dossier registry authentication.
3
- * Stores credentials at ~/.dossier/credentials.json with secure file permissions.
3
+ * Stores per-registry credentials at ~/.dossier/credentials.json with secure file permissions.
4
+ * Auto-migrates old flat format to keyed-by-registry format.
4
5
  */
5
6
  export interface Credentials {
6
7
  token: string;
@@ -10,21 +11,25 @@ export interface Credentials {
10
11
  }
11
12
  declare const CREDENTIALS_FILE: string;
12
13
  /**
13
- * Save credentials to file with secure permissions (0600).
14
+ * Save credentials for a specific registry.
14
15
  */
15
- declare function saveCredentials(credentials: Credentials): void;
16
+ declare function saveCredentials(credentials: Credentials, registryName?: string): void;
16
17
  /**
17
- * Load credentials from file or DOSSIER_REGISTRY_TOKEN env var.
18
- * The env var takes precedence when set.
18
+ * Load credentials for a specific registry.
19
+ * Falls back to "public" for backward compatibility.
19
20
  */
20
- declare function loadCredentials(): Credentials | null;
21
+ declare function loadCredentials(registryName?: string): Credentials | null;
21
22
  /**
22
- * Delete the credentials file.
23
+ * Delete credentials for a specific registry, or all if no name given.
23
24
  */
24
- declare function deleteCredentials(): boolean;
25
+ declare function deleteCredentials(registryName?: string): boolean;
25
26
  /**
26
27
  * Check if credentials are expired.
27
28
  */
28
29
  declare function isExpired(credentials: Pick<Credentials, 'expiresAt'>): boolean;
29
- export { CREDENTIALS_FILE, saveCredentials, loadCredentials, deleteCredentials, isExpired };
30
+ /**
31
+ * List all registries that have stored credentials.
32
+ */
33
+ declare function listCredentialRegistries(): string[];
34
+ export { CREDENTIALS_FILE, saveCredentials, loadCredentials, deleteCredentials, isExpired, listCredentialRegistries, };
30
35
  //# sourceMappingURL=credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,gBAAgB,QAA4C,CAAC;AAWnE;;GAEG;AACH,iBAAS,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CASvD;AAED;;;GAGG;AACH,iBAAS,eAAe,IAAI,WAAW,GAAG,IAAI,CAwC7C;AAED;;GAEG;AACH,iBAAS,iBAAiB,IAAI,OAAO,CAMpC;AAED;;GAEG;AACH,iBAAS,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,OAAO,CAUvE;AAED,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID,QAAA,MAAM,gBAAgB,QAA4C,CAAC;AA8GnE;;GAEG;AACH,iBAAS,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,SAAW,GAAG,IAAI,CAIhF;AAED;;;GAGG;AACH,iBAAS,eAAe,CAAC,YAAY,SAAW,GAAG,WAAW,GAAG,IAAI,CAGpE;AAED;;GAEG;AACH,iBAAS,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAiBzD;AAED;;GAEG;AACH,iBAAS,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,OAAO,CASvE;AAED;;GAEG;AACH,iBAAS,wBAAwB,IAAI,MAAM,EAAE,CAG5C;AAED,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,wBAAwB,GACzB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Credential storage for Dossier registry authentication.
4
- * Stores credentials at ~/.dossier/credentials.json with secure file permissions.
4
+ * Stores per-registry credentials at ~/.dossier/credentials.json with secure file permissions.
5
+ * Auto-migrates old flat format to keyed-by-registry format.
5
6
  */
6
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -12,6 +13,7 @@ exports.saveCredentials = saveCredentials;
12
13
  exports.loadCredentials = loadCredentials;
13
14
  exports.deleteCredentials = deleteCredentials;
14
15
  exports.isExpired = isExpired;
16
+ exports.listCredentialRegistries = listCredentialRegistries;
15
17
  const node_fs_1 = __importDefault(require("node:fs"));
16
18
  const node_path_1 = __importDefault(require("node:path"));
17
19
  const config_1 = require("./config");
@@ -26,32 +28,9 @@ function ensureConfigDir() {
26
28
  }
27
29
  }
28
30
  /**
29
- * Save credentials to file with secure permissions (0600).
31
+ * Read and parse the credentials file, returning the raw JSON.
30
32
  */
31
- function saveCredentials(credentials) {
32
- ensureConfigDir();
33
- const data = {
34
- token: credentials.token,
35
- username: credentials.username,
36
- orgs: credentials.orgs || [],
37
- expires_at: credentials.expiresAt || null,
38
- };
39
- node_fs_1.default.writeFileSync(CREDENTIALS_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
40
- }
41
- /**
42
- * Load credentials from file or DOSSIER_REGISTRY_TOKEN env var.
43
- * The env var takes precedence when set.
44
- */
45
- function loadCredentials() {
46
- const envToken = process.env.DOSSIER_REGISTRY_TOKEN;
47
- if (envToken) {
48
- return {
49
- token: envToken,
50
- username: process.env.DOSSIER_REGISTRY_USER || 'token-auth',
51
- orgs: process.env.DOSSIER_REGISTRY_ORGS ? process.env.DOSSIER_REGISTRY_ORGS.split(',') : [],
52
- expiresAt: null,
53
- };
54
- }
33
+ function readCredentialsFile() {
55
34
  if (!node_fs_1.default.existsSync(CREDENTIALS_FILE)) {
56
35
  return null;
57
36
  }
@@ -64,31 +43,117 @@ function loadCredentials() {
64
43
  `Expected 0600. Credentials may have been compromised. Fixing permissions.`);
65
44
  node_fs_1.default.chmodSync(CREDENTIALS_FILE, 0o600);
66
45
  }
67
- const raw = node_fs_1.default.readFileSync(CREDENTIALS_FILE, 'utf8');
68
- const data = JSON.parse(raw);
69
- if (!data.token || !data.username) {
70
- return null;
71
- }
72
- return {
73
- token: data.token,
74
- username: data.username,
75
- orgs: data.orgs || [],
76
- expiresAt: data.expires_at || null,
77
- };
46
+ return JSON.parse(node_fs_1.default.readFileSync(CREDENTIALS_FILE, 'utf8'));
78
47
  }
79
48
  catch {
80
49
  return null;
81
50
  }
82
51
  }
83
52
  /**
84
- * Delete the credentials file.
53
+ * Detect whether the credentials file uses old flat format.
54
+ * Old format has `token` and `username` at the top level.
85
55
  */
86
- function deleteCredentials() {
87
- if (node_fs_1.default.existsSync(CREDENTIALS_FILE)) {
88
- node_fs_1.default.unlinkSync(CREDENTIALS_FILE);
89
- return true;
56
+ function isOldFormat(data) {
57
+ return typeof data.token === 'string' && typeof data.username === 'string';
58
+ }
59
+ /**
60
+ * Load the full credentials store, auto-migrating old format if needed.
61
+ */
62
+ function loadCredentialsStore() {
63
+ // Check env var first — creates virtual credentials for "env" registry
64
+ const envToken = process.env.DOSSIER_REGISTRY_TOKEN;
65
+ const raw = readCredentialsFile();
66
+ const store = {};
67
+ if (raw) {
68
+ if (isOldFormat(raw)) {
69
+ // Auto-migrate: flat → keyed by "public"
70
+ store.public = {
71
+ token: raw.token,
72
+ username: raw.username,
73
+ orgs: raw.orgs || [],
74
+ expiresAt: raw.expires_at || null,
75
+ };
76
+ // Write back migrated format
77
+ saveCredentialsStore(store);
78
+ }
79
+ else {
80
+ // New format: each key is a registry name
81
+ for (const [name, value] of Object.entries(raw)) {
82
+ const entry = value;
83
+ if (entry && typeof entry.token === 'string' && typeof entry.username === 'string') {
84
+ store[name] = {
85
+ token: entry.token,
86
+ username: entry.username,
87
+ orgs: entry.orgs || [],
88
+ expiresAt: entry.expires_at || entry.expiresAt || null,
89
+ };
90
+ }
91
+ }
92
+ }
93
+ }
94
+ if (envToken) {
95
+ store.env = {
96
+ token: envToken,
97
+ username: process.env.DOSSIER_REGISTRY_USER || 'token-auth',
98
+ orgs: process.env.DOSSIER_REGISTRY_ORGS ? process.env.DOSSIER_REGISTRY_ORGS.split(',') : [],
99
+ expiresAt: null,
100
+ };
90
101
  }
91
- return false;
102
+ return store;
103
+ }
104
+ /**
105
+ * Save the full credentials store to file.
106
+ */
107
+ function saveCredentialsStore(store) {
108
+ ensureConfigDir();
109
+ const data = {};
110
+ for (const [name, creds] of Object.entries(store)) {
111
+ if (name === 'env')
112
+ continue; // Don't persist env-var credentials
113
+ data[name] = {
114
+ token: creds.token,
115
+ username: creds.username,
116
+ orgs: creds.orgs || [],
117
+ expires_at: creds.expiresAt || null,
118
+ };
119
+ }
120
+ node_fs_1.default.writeFileSync(CREDENTIALS_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
121
+ }
122
+ /**
123
+ * Save credentials for a specific registry.
124
+ */
125
+ function saveCredentials(credentials, registryName = 'public') {
126
+ const store = loadCredentialsStore();
127
+ store[registryName] = credentials;
128
+ saveCredentialsStore(store);
129
+ }
130
+ /**
131
+ * Load credentials for a specific registry.
132
+ * Falls back to "public" for backward compatibility.
133
+ */
134
+ function loadCredentials(registryName = 'public') {
135
+ const store = loadCredentialsStore();
136
+ return store[registryName] || null;
137
+ }
138
+ /**
139
+ * Delete credentials for a specific registry, or all if no name given.
140
+ */
141
+ function deleteCredentials(registryName) {
142
+ if (!registryName) {
143
+ // Delete entire file (backward compat)
144
+ if (node_fs_1.default.existsSync(CREDENTIALS_FILE)) {
145
+ node_fs_1.default.unlinkSync(CREDENTIALS_FILE);
146
+ return true;
147
+ }
148
+ return false;
149
+ }
150
+ const store = loadCredentialsStore();
151
+ if (!(registryName in store)) {
152
+ return false;
153
+ }
154
+ delete store[registryName];
155
+ saveCredentialsStore(store);
156
+ return true;
92
157
  }
93
158
  /**
94
159
  * Check if credentials are expired.
@@ -97,12 +162,17 @@ function isExpired(credentials) {
97
162
  if (!credentials.expiresAt) {
98
163
  return false;
99
164
  }
100
- try {
101
- const expires = new Date(credentials.expiresAt);
102
- return Date.now() > expires.getTime();
103
- }
104
- catch {
105
- return false;
165
+ const expires = new Date(credentials.expiresAt);
166
+ if (Number.isNaN(expires.getTime())) {
167
+ return true;
106
168
  }
169
+ return Date.now() > expires.getTime();
170
+ }
171
+ /**
172
+ * List all registries that have stored credentials.
173
+ */
174
+ function listCredentialRegistries() {
175
+ const store = loadCredentialsStore();
176
+ return Object.keys(store);
107
177
  }
108
178
  //# sourceMappingURL=credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
package/dist/help.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Custom grouped help formatter for Commander.
3
+ * Groups commands by category instead of a flat list.
4
+ */
5
+ import type { Command, Help } from 'commander';
6
+ export declare function formatHelpGrouped(cmd: Command, helper: Help): string;
7
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAc/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,CA4EpE"}
package/dist/help.js ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Custom grouped help formatter for Commander.
4
+ * Groups commands by category instead of a flat list.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.formatHelpGrouped = formatHelpGrouped;
8
+ const CATEGORIES = [
9
+ { name: 'Getting Started', commands: ['init', 'create', 'from-file'] },
10
+ { name: 'Verify & Run', commands: ['verify', 'run', 'validate', 'lint', 'format'] },
11
+ {
12
+ name: 'Registry',
13
+ commands: ['search', 'list', 'info', 'get', 'pull', 'export', 'publish', 'remove'],
14
+ },
15
+ { name: 'Skills', commands: ['install-skill', 'skill-export'] },
16
+ { name: 'Security', commands: ['sign', 'checksum', 'keys'] },
17
+ { name: 'Auth & Config', commands: ['login', 'logout', 'whoami', 'config', 'cache'] },
18
+ ];
19
+ function formatHelpGrouped(cmd, helper) {
20
+ const termWidth = helper.padWidth(cmd, helper);
21
+ const helpWidth = helper.helpWidth || 80;
22
+ const itemIndentWidth = 2;
23
+ const itemSeparatorWidth = 2;
24
+ function formatItem(term, description) {
25
+ if (description) {
26
+ const fullText = `${term.padEnd(termWidth + itemSeparatorWidth)}${description}`;
27
+ return helper.wrap(fullText, helpWidth - itemIndentWidth, termWidth + itemSeparatorWidth);
28
+ }
29
+ return term;
30
+ }
31
+ function formatList(items) {
32
+ return items.join('\n').replace(/^/gm, ' '.repeat(itemIndentWidth));
33
+ }
34
+ let output = '';
35
+ // Usage
36
+ output += `Usage: ${helper.commandUsage(cmd)}\n\n`;
37
+ // Description
38
+ const desc = helper.commandDescription(cmd);
39
+ if (desc) {
40
+ output += `${desc}\n\n`;
41
+ }
42
+ // Build command map from visible commands
43
+ const visibleCommands = helper.visibleCommands(cmd);
44
+ const commandMap = new Map();
45
+ for (const sub of visibleCommands) {
46
+ commandMap.set(sub.name(), sub);
47
+ }
48
+ // Grouped commands by category
49
+ const categorized = new Set();
50
+ for (const category of CATEGORIES) {
51
+ const items = [];
52
+ for (const name of category.commands) {
53
+ const sub = commandMap.get(name);
54
+ if (sub) {
55
+ items.push(formatItem(helper.subcommandTerm(sub), helper.subcommandDescription(sub)));
56
+ categorized.add(name);
57
+ }
58
+ }
59
+ if (items.length > 0) {
60
+ output += `${category.name}:\n`;
61
+ output += `${formatList(items)}\n\n`;
62
+ }
63
+ }
64
+ // "Other" catch-all for uncategorized visible commands (e.g. help)
65
+ const otherItems = [];
66
+ for (const sub of visibleCommands) {
67
+ if (!categorized.has(sub.name())) {
68
+ otherItems.push(formatItem(helper.subcommandTerm(sub), helper.subcommandDescription(sub)));
69
+ }
70
+ }
71
+ if (otherItems.length > 0) {
72
+ output += 'Other:\n';
73
+ output += `${formatList(otherItems)}\n\n`;
74
+ }
75
+ // Options
76
+ const optionItems = [];
77
+ for (const opt of helper.visibleOptions(cmd)) {
78
+ optionItems.push(formatItem(helper.optionTerm(opt), helper.optionDescription(opt)));
79
+ }
80
+ if (optionItems.length > 0) {
81
+ output += 'Options:\n';
82
+ output += `${formatList(optionItems)}\n\n`;
83
+ }
84
+ return output;
85
+ }
86
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
package/dist/helpers.d.ts CHANGED
@@ -7,28 +7,20 @@ import { RECOMMENDED_FIELDS, REQUIRED_FIELDS, VALID_RISK_LEVELS, VALID_STATUSES
7
7
  export declare const CLI_ROOT: string;
8
8
  /** The bin/ directory */
9
9
  export declare const BIN_DIR: string;
10
- /** Repository root (parent of cli/) */
11
- export declare const REPO_ROOT: string;
12
10
  /** Official KMS keys that require CI/CD signing (not direct CLI use) */
13
11
  export declare const OFFICIAL_KMS_KEYS: string[];
14
12
  export { RECOMMENDED_FIELDS, REQUIRED_FIELDS, VALID_RISK_LEVELS, VALID_STATUSES };
15
13
  export interface VerificationOptions {
16
14
  skipChecksum?: boolean;
17
15
  skipAllChecks?: boolean;
18
- skipAuthorCheck?: boolean;
19
- skipDossierCheck?: boolean;
20
- skipRiskAssessment?: boolean;
21
- skipReview?: boolean;
22
16
  force?: boolean;
23
17
  noPrompt?: boolean;
24
- reviewDossier?: string;
25
18
  }
26
19
  export interface VerificationStage {
27
20
  stage: number;
28
21
  name: string;
29
22
  passed?: boolean;
30
23
  skipped?: boolean;
31
- demo?: boolean;
32
24
  }
33
25
  export interface VerificationResult {
34
26
  passed: boolean;
@@ -129,9 +121,9 @@ export declare function parseDossierMetadataFromContent(content: string, filePat
129
121
  */
130
122
  export declare function parseDossierMetadataLocal(filePath: string): DossierMetadata;
131
123
  /**
132
- * Verify a dossier file using the verify script (quick check).
124
+ * Verify a dossier file (quick check using the TS module directly).
133
125
  */
134
- export declare function verifyDossierQuick(filePath: string): boolean;
126
+ export declare function verifyDossierQuick(filePath: string): Promise<boolean>;
135
127
  /**
136
128
  * Format output as table.
137
129
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}