@openreef/cli 0.3.5 → 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.
Files changed (97) hide show
  1. package/README.md +48 -11
  2. package/dist/commands/diff.d.ts +9 -0
  3. package/dist/commands/diff.d.ts.map +1 -0
  4. package/dist/commands/diff.js +34 -0
  5. package/dist/commands/diff.js.map +1 -0
  6. package/dist/commands/export.d.ts +6 -0
  7. package/dist/commands/export.d.ts.map +1 -0
  8. package/dist/commands/export.js +70 -0
  9. package/dist/commands/export.js.map +1 -0
  10. package/dist/commands/install.d.ts +3 -0
  11. package/dist/commands/install.d.ts.map +1 -1
  12. package/dist/commands/install.js +110 -30
  13. package/dist/commands/install.js.map +1 -1
  14. package/dist/commands/lock.d.ts +6 -0
  15. package/dist/commands/lock.d.ts.map +1 -0
  16. package/dist/commands/lock.js +39 -0
  17. package/dist/commands/lock.js.map +1 -0
  18. package/dist/commands/logs.d.ts.map +1 -1
  19. package/dist/commands/logs.js +261 -13
  20. package/dist/commands/logs.js.map +1 -1
  21. package/dist/commands/publish.d.ts +8 -0
  22. package/dist/commands/publish.d.ts.map +1 -0
  23. package/dist/commands/publish.js +146 -0
  24. package/dist/commands/publish.js.map +1 -0
  25. package/dist/commands/uninstall.d.ts.map +1 -1
  26. package/dist/commands/uninstall.js +3 -2
  27. package/dist/commands/uninstall.js.map +1 -1
  28. package/dist/commands/update.d.ts +3 -0
  29. package/dist/commands/update.d.ts.map +1 -1
  30. package/dist/commands/update.js +112 -216
  31. package/dist/commands/update.js.map +1 -1
  32. package/dist/commands/validate.d.ts +1 -0
  33. package/dist/commands/validate.d.ts.map +1 -1
  34. package/dist/commands/validate.js +183 -14
  35. package/dist/commands/validate.js.map +1 -1
  36. package/dist/core/config-patcher.d.ts +11 -1
  37. package/dist/core/config-patcher.d.ts.map +1 -1
  38. package/dist/core/config-patcher.js +24 -7
  39. package/dist/core/config-patcher.js.map +1 -1
  40. package/dist/core/diff-engine.d.ts +21 -0
  41. package/dist/core/diff-engine.d.ts.map +1 -0
  42. package/dist/core/diff-engine.js +140 -0
  43. package/dist/core/diff-engine.js.map +1 -0
  44. package/dist/core/gateway-client.d.ts.map +1 -1
  45. package/dist/core/gateway-client.js +2 -1
  46. package/dist/core/gateway-client.js.map +1 -1
  47. package/dist/core/github-api.d.ts +37 -0
  48. package/dist/core/github-api.d.ts.map +1 -0
  49. package/dist/core/github-api.js +163 -0
  50. package/dist/core/github-api.js.map +1 -0
  51. package/dist/core/registry.d.ts +61 -0
  52. package/dist/core/registry.d.ts.map +1 -0
  53. package/dist/core/registry.js +255 -0
  54. package/dist/core/registry.js.map +1 -0
  55. package/dist/core/skills-registry.d.ts +32 -0
  56. package/dist/core/skills-registry.d.ts.map +1 -0
  57. package/dist/core/skills-registry.js +186 -0
  58. package/dist/core/skills-registry.js.map +1 -0
  59. package/dist/core/state-manager.d.ts +3 -0
  60. package/dist/core/state-manager.d.ts.map +1 -1
  61. package/dist/core/state-manager.js +55 -2
  62. package/dist/core/state-manager.js.map +1 -1
  63. package/dist/core/template-interpolator.d.ts +6 -0
  64. package/dist/core/template-interpolator.d.ts.map +1 -1
  65. package/dist/core/template-interpolator.js +14 -0
  66. package/dist/core/template-interpolator.js.map +1 -1
  67. package/dist/index.d.ts +2 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +292 -186
  70. package/dist/index.js.map +1 -1
  71. package/dist/types/lockfile.d.ts +9 -0
  72. package/dist/types/lockfile.d.ts.map +1 -0
  73. package/dist/types/lockfile.js +2 -0
  74. package/dist/types/lockfile.js.map +1 -0
  75. package/dist/types/state.d.ts +4 -0
  76. package/dist/types/state.d.ts.map +1 -1
  77. package/dist/utils/download.d.ts +18 -0
  78. package/dist/utils/download.d.ts.map +1 -0
  79. package/dist/utils/download.js +72 -0
  80. package/dist/utils/download.js.map +1 -0
  81. package/dist/utils/plan-display.d.ts +3 -0
  82. package/dist/utils/plan-display.d.ts.map +1 -0
  83. package/dist/utils/plan-display.js +80 -0
  84. package/dist/utils/plan-display.js.map +1 -0
  85. package/dist/utils/semver.d.ts +12 -0
  86. package/dist/utils/semver.d.ts.map +1 -0
  87. package/dist/utils/semver.js +82 -0
  88. package/dist/utils/semver.js.map +1 -0
  89. package/dist/utils/tarball.d.ts +20 -7
  90. package/dist/utils/tarball.d.ts.map +1 -1
  91. package/dist/utils/tarball.js +36 -9
  92. package/dist/utils/tarball.js.map +1 -1
  93. package/dist/version.d.ts +2 -0
  94. package/dist/version.d.ts.map +1 -0
  95. package/dist/version.js +5 -0
  96. package/dist/version.js.map +1 -0
  97. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
+ import { realpathSync } from 'node:fs';
4
+ import { pathToFileURL } from 'node:url';
3
5
  import { inspect } from './commands/inspect.js';
4
6
  import { validate } from './commands/validate.js';
5
7
  import { init } from './commands/init.js';
@@ -11,191 +13,295 @@ import { status } from './commands/status.js';
11
13
  import { repair } from './commands/repair.js';
12
14
  import { update } from './commands/update.js';
13
15
  import { logs } from './commands/logs.js';
14
- const program = new Command();
15
- program
16
- .name('reef')
17
- .description('OpenReef CLI package and deploy multi-agent formations')
18
- .version('0.3.5');
19
- program
20
- .command('init [name]')
21
- .description('Scaffold a new formation from the bundled template')
22
- .option('--name <name>', 'Formation name')
23
- .option('--namespace <namespace>', 'Namespace prefix')
24
- .option('--type <type>', 'Formation type (solo, shoal, school)', 'shoal')
25
- .option('--yes', 'Skip confirmation prompts')
26
- .action(async (name, options) => {
27
- try {
28
- await init(name, options);
16
+ import { lock } from './commands/lock.js';
17
+ import { publish } from './commands/publish.js';
18
+ import { diff } from './commands/diff.js';
19
+ import { exportFormation } from './commands/export.js';
20
+ import { VERSION } from './version.js';
21
+ export function buildProgram() {
22
+ const program = new Command();
23
+ program
24
+ .name('reef')
25
+ .description('OpenReef CLI package and deploy multi-agent formations')
26
+ .version(VERSION);
27
+ program
28
+ .command('init [name]')
29
+ .description('Scaffold a new formation from the bundled template')
30
+ .option('--name <name>', 'Formation name')
31
+ .option('--namespace <namespace>', 'Namespace prefix')
32
+ .option('--type <type>', 'Formation type (solo, shoal, school)', 'shoal')
33
+ .option('--yes', 'Skip confirmation prompts')
34
+ .action(async (name, options) => {
35
+ try {
36
+ await init(name, options);
37
+ }
38
+ catch (err) {
39
+ console.error(err instanceof Error ? err.message : err);
40
+ process.exit(1);
41
+ }
42
+ });
43
+ program
44
+ .command('inspect <path>')
45
+ .description('Parse reef.json and pretty-print formation contents')
46
+ .action(async (path) => {
47
+ try {
48
+ await inspect(path);
49
+ }
50
+ catch (err) {
51
+ console.error(err instanceof Error ? err.message : err);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ program
56
+ .command('validate <path>')
57
+ .description('Run schema and structural validation on a formation')
58
+ .option('--quiet', 'Suppress output, exit code only')
59
+ .option('--json', 'Output results as JSON')
60
+ .option('--deployed', 'Validate deployed formation state instead of source')
61
+ .action(async (path, options) => {
62
+ try {
63
+ const result = await validate(path, options);
64
+ process.exit(result.valid ? 0 : 1);
65
+ }
66
+ catch (err) {
67
+ console.error(err instanceof Error ? err.message : err);
68
+ process.exit(1);
69
+ }
70
+ });
71
+ program
72
+ .command('pack <path>')
73
+ .description('Package a formation into a .tar.gz archive')
74
+ .option('--output <dir>', 'Output directory')
75
+ .action(async (path, options) => {
76
+ try {
77
+ await pack(path, options);
78
+ }
79
+ catch (err) {
80
+ console.error(err instanceof Error ? err.message : err);
81
+ process.exit(1);
82
+ }
83
+ });
84
+ program
85
+ .command('install <source>')
86
+ .description('Deploy a formation (path, tarball, or registry name)')
87
+ .option('--set <key=value...>', 'Set variable values')
88
+ .option('--namespace <ns>', 'Override namespace (default: manifest.namespace)')
89
+ .option('--force', 'Remove existing resources and recreate')
90
+ .option('--merge', 'Update files only, preserve agent config')
91
+ .option('--yes', 'Skip confirmation prompts')
92
+ .option('--no-env', 'Skip loading .env file')
93
+ .option('--dry-run', 'Preview changes without applying them')
94
+ .option('--allow-channel-shadow', 'Allow bare bindings that shadow the main agent')
95
+ .option('--registry <url>', 'Registry URL')
96
+ .option('--skip-cache', 'Skip registry cache')
97
+ .option('--gateway-url <url>', 'Gateway WebSocket URL')
98
+ .option('--gateway-token <token>', 'Gateway auth token')
99
+ .option('--gateway-password <password>', 'Gateway auth password')
100
+ .action(async (source, options) => {
101
+ try {
102
+ await install(source, {
103
+ ...options,
104
+ noEnv: options.env === false,
105
+ registryUrl: options.registry,
106
+ });
107
+ }
108
+ catch (err) {
109
+ console.error(err instanceof Error ? err.message : err);
110
+ process.exit(1);
111
+ }
112
+ });
113
+ program
114
+ .command('uninstall <identifier>')
115
+ .description('Remove an installed formation (namespace/name or name)')
116
+ .option('--yes', 'Skip confirmation')
117
+ .option('--dry-run', 'Preview changes without applying them')
118
+ .option('--gateway-url <url>', 'Gateway WebSocket URL')
119
+ .option('--gateway-token <token>', 'Gateway auth token')
120
+ .option('--gateway-password <password>', 'Gateway auth password')
121
+ .action(async (identifier, options) => {
122
+ try {
123
+ await uninstall(identifier, options);
124
+ }
125
+ catch (err) {
126
+ console.error(err instanceof Error ? err.message : err);
127
+ process.exit(1);
128
+ }
129
+ });
130
+ program
131
+ .command('update <source>')
132
+ .description('Update an installed formation (path, tarball, or registry name)')
133
+ .option('--set <key=value...>', 'Set variable values')
134
+ .option('--namespace <ns>', 'Override namespace')
135
+ .option('--yes', 'Skip confirmation')
136
+ .option('--no-env', 'Skip loading .env file')
137
+ .option('--dry-run', 'Preview changes without applying them')
138
+ .option('--allow-channel-shadow', 'Allow bare bindings that shadow the main agent')
139
+ .option('--registry <url>', 'Registry URL')
140
+ .option('--skip-cache', 'Skip registry cache')
141
+ .option('--gateway-url <url>', 'Gateway WebSocket URL')
142
+ .option('--gateway-token <token>', 'Gateway auth token')
143
+ .option('--gateway-password <password>', 'Gateway auth password')
144
+ .action(async (source, options) => {
145
+ try {
146
+ await update(source, {
147
+ ...options,
148
+ noEnv: options.env === false,
149
+ registryUrl: options.registry,
150
+ });
151
+ }
152
+ catch (err) {
153
+ console.error(err instanceof Error ? err.message : err);
154
+ process.exit(1);
155
+ }
156
+ });
157
+ program
158
+ .command('repair <identifier>')
159
+ .description('Detect and fix discrepancies in an installed formation')
160
+ .option('--source <path>', 'Formation source for file re-deployment')
161
+ .option('--yes', 'Skip confirmation')
162
+ .option('--dry-run', 'Preview changes without applying them')
163
+ .option('--gateway-url <url>', 'Gateway WebSocket URL')
164
+ .option('--gateway-token <token>', 'Gateway auth token')
165
+ .option('--gateway-password <password>', 'Gateway auth password')
166
+ .action(async (identifier, options) => {
167
+ try {
168
+ await repair(identifier, options);
169
+ }
170
+ catch (err) {
171
+ console.error(err instanceof Error ? err.message : err);
172
+ process.exit(1);
173
+ }
174
+ });
175
+ program
176
+ .command('logs <identifier>')
177
+ .description('View session logs for a formation')
178
+ .option('--agent <slug>', 'Filter by agent slug or ID')
179
+ .option('--lines <n>', 'Number of lines to show', '50')
180
+ .option('--follow', 'Follow log output (tail -f)')
181
+ .option('--path <path>', 'Read from a specific log file')
182
+ .action(async (identifier, options) => {
183
+ try {
184
+ await logs(identifier, {
185
+ ...options,
186
+ lines: parseInt(options.lines, 10),
187
+ });
188
+ }
189
+ catch (err) {
190
+ console.error(err instanceof Error ? err.message : err);
191
+ process.exit(1);
192
+ }
193
+ });
194
+ program
195
+ .command('list')
196
+ .description('List installed formations')
197
+ .option('--json', 'Output as JSON')
198
+ .action(async (options) => {
199
+ try {
200
+ await list(options);
201
+ }
202
+ catch (err) {
203
+ console.error(err instanceof Error ? err.message : err);
204
+ process.exit(1);
205
+ }
206
+ });
207
+ program
208
+ .command('status <identifier>')
209
+ .description('Show status of an installed formation (namespace/name or name)')
210
+ .option('--json', 'Output as JSON')
211
+ .option('--gateway-url <url>', 'Gateway WebSocket URL')
212
+ .option('--gateway-token <token>', 'Gateway auth token')
213
+ .option('--gateway-password <password>', 'Gateway auth password')
214
+ .action(async (identifier, options) => {
215
+ try {
216
+ await status(identifier, options);
217
+ }
218
+ catch (err) {
219
+ console.error(err instanceof Error ? err.message : err);
220
+ process.exit(1);
221
+ }
222
+ });
223
+ program
224
+ .command('export <identifier>')
225
+ .description('Export a deployed formation source to a local directory')
226
+ .option('--output <dir>', 'Output directory (default: ./{formation-name})')
227
+ .option('--force', 'Overwrite existing output directory')
228
+ .action(async (identifier, options) => {
229
+ try {
230
+ await exportFormation(identifier, options);
231
+ }
232
+ catch (err) {
233
+ console.error(err instanceof Error ? err.message : err);
234
+ process.exit(1);
235
+ }
236
+ });
237
+ program
238
+ .command('lock [path]')
239
+ .description('Resolve and pin skill dependency versions')
240
+ .option('--registry <url>', 'Skills registry URL')
241
+ .option('--skip-cache', 'Skip registry cache')
242
+ .action(async (path, options) => {
243
+ try {
244
+ await lock(path ?? '.', {
245
+ registryUrl: options.registry,
246
+ skipCache: options.skipCache,
247
+ });
248
+ }
249
+ catch (err) {
250
+ console.error(err instanceof Error ? err.message : err);
251
+ process.exit(1);
252
+ }
253
+ });
254
+ program
255
+ .command('publish [path]')
256
+ .description('Publish a formation to the registry')
257
+ .option('--token <token>', 'GitHub personal access token')
258
+ .option('--owner <owner>', 'GitHub repository owner')
259
+ .option('--repo <repo>', 'GitHub repository name')
260
+ .option('--yes', 'Skip confirmation prompts')
261
+ .action(async (path, options) => {
262
+ try {
263
+ await publish(path ?? '.', options);
264
+ }
265
+ catch (err) {
266
+ console.error(err instanceof Error ? err.message : err);
267
+ process.exit(1);
268
+ }
269
+ });
270
+ program
271
+ .command('diff <source>')
272
+ .description('Compare local formation source against deployed state')
273
+ .option('--set <key=value...>', 'Set variable values')
274
+ .option('--namespace <ns>', 'Override namespace')
275
+ .option('--no-env', 'Skip loading .env file')
276
+ .option('--registry <url>', 'Registry URL')
277
+ .option('--skip-cache', 'Skip registry cache')
278
+ .action(async (source, options) => {
279
+ try {
280
+ await diff(source, {
281
+ ...options,
282
+ noEnv: options.env === false,
283
+ registryUrl: options.registry,
284
+ });
285
+ }
286
+ catch (err) {
287
+ console.error(err instanceof Error ? err.message : err);
288
+ process.exit(1);
289
+ }
290
+ });
291
+ return program;
292
+ }
293
+ // Only parse when run as CLI entry point (robust ESM check with symlink resolution)
294
+ const selfUrl = import.meta.url;
295
+ let isDirectRun = false;
296
+ try {
297
+ if (process.argv[1]) {
298
+ isDirectRun = selfUrl === pathToFileURL(realpathSync(process.argv[1])).href;
29
299
  }
30
- catch (err) {
31
- console.error(err instanceof Error ? err.message : err);
32
- process.exit(1);
33
- }
34
- });
35
- program
36
- .command('inspect <path>')
37
- .description('Parse reef.json and pretty-print formation contents')
38
- .action(async (path) => {
39
- try {
40
- await inspect(path);
41
- }
42
- catch (err) {
43
- console.error(err instanceof Error ? err.message : err);
44
- process.exit(1);
45
- }
46
- });
47
- program
48
- .command('validate <path>')
49
- .description('Run schema and structural validation on a formation')
50
- .option('--quiet', 'Suppress output, exit code only')
51
- .option('--json', 'Output results as JSON')
52
- .action(async (path, options) => {
53
- try {
54
- const result = await validate(path, options);
55
- process.exit(result.valid ? 0 : 1);
56
- }
57
- catch (err) {
58
- console.error(err instanceof Error ? err.message : err);
59
- process.exit(1);
60
- }
61
- });
62
- program
63
- .command('pack <path>')
64
- .description('Package a formation into a .tar.gz archive')
65
- .option('--output <dir>', 'Output directory')
66
- .action(async (path, options) => {
67
- try {
68
- await pack(path, options);
69
- }
70
- catch (err) {
71
- console.error(err instanceof Error ? err.message : err);
72
- process.exit(1);
73
- }
74
- });
75
- program
76
- .command('install <path>')
77
- .description('Deploy a formation to OpenClaw')
78
- .option('--set <key=value...>', 'Set variable values')
79
- .option('--namespace <ns>', 'Override namespace (default: manifest.namespace)')
80
- .option('--force', 'Remove existing resources and recreate')
81
- .option('--merge', 'Update files only, preserve agent config')
82
- .option('--yes', 'Skip confirmation prompts')
83
- .option('--no-env', 'Skip loading .env file')
84
- .option('--dry-run', 'Preview changes without applying them')
85
- .option('--gateway-url <url>', 'Gateway WebSocket URL')
86
- .option('--gateway-token <token>', 'Gateway auth token')
87
- .option('--gateway-password <password>', 'Gateway auth password')
88
- .action(async (path, options) => {
89
- try {
90
- await install(path, options);
91
- }
92
- catch (err) {
93
- console.error(err instanceof Error ? err.message : err);
94
- process.exit(1);
95
- }
96
- });
97
- program
98
- .command('uninstall <identifier>')
99
- .description('Remove an installed formation (namespace/name or name)')
100
- .option('--yes', 'Skip confirmation')
101
- .option('--dry-run', 'Preview changes without applying them')
102
- .option('--gateway-url <url>', 'Gateway WebSocket URL')
103
- .option('--gateway-token <token>', 'Gateway auth token')
104
- .option('--gateway-password <password>', 'Gateway auth password')
105
- .action(async (identifier, options) => {
106
- try {
107
- await uninstall(identifier, options);
108
- }
109
- catch (err) {
110
- console.error(err instanceof Error ? err.message : err);
111
- process.exit(1);
112
- }
113
- });
114
- program
115
- .command('update <path>')
116
- .description('Update an installed formation from a new manifest')
117
- .option('--set <key=value...>', 'Set variable values')
118
- .option('--namespace <ns>', 'Override namespace')
119
- .option('--yes', 'Skip confirmation')
120
- .option('--no-env', 'Skip loading .env file')
121
- .option('--dry-run', 'Preview changes without applying them')
122
- .option('--gateway-url <url>', 'Gateway WebSocket URL')
123
- .option('--gateway-token <token>', 'Gateway auth token')
124
- .option('--gateway-password <password>', 'Gateway auth password')
125
- .action(async (path, options) => {
126
- try {
127
- await update(path, options);
128
- }
129
- catch (err) {
130
- console.error(err instanceof Error ? err.message : err);
131
- process.exit(1);
132
- }
133
- });
134
- program
135
- .command('repair <identifier>')
136
- .description('Detect and fix discrepancies in an installed formation')
137
- .option('--source <path>', 'Formation source for file re-deployment')
138
- .option('--yes', 'Skip confirmation')
139
- .option('--dry-run', 'Preview changes without applying them')
140
- .option('--gateway-url <url>', 'Gateway WebSocket URL')
141
- .option('--gateway-token <token>', 'Gateway auth token')
142
- .option('--gateway-password <password>', 'Gateway auth password')
143
- .action(async (identifier, options) => {
144
- try {
145
- await repair(identifier, options);
146
- }
147
- catch (err) {
148
- console.error(err instanceof Error ? err.message : err);
149
- process.exit(1);
150
- }
151
- });
152
- program
153
- .command('logs <identifier>')
154
- .description('View session logs for a formation')
155
- .option('--agent <slug>', 'Filter by agent slug or ID')
156
- .option('--lines <n>', 'Number of lines to show', '50')
157
- .option('--follow', 'Follow log output (tail -f)')
158
- .option('--path <path>', 'Read from a specific log file')
159
- .action(async (identifier, options) => {
160
- try {
161
- await logs(identifier, {
162
- ...options,
163
- lines: parseInt(options.lines, 10),
164
- });
165
- }
166
- catch (err) {
167
- console.error(err instanceof Error ? err.message : err);
168
- process.exit(1);
169
- }
170
- });
171
- program
172
- .command('list')
173
- .description('List installed formations')
174
- .option('--json', 'Output as JSON')
175
- .action(async (options) => {
176
- try {
177
- await list(options);
178
- }
179
- catch (err) {
180
- console.error(err instanceof Error ? err.message : err);
181
- process.exit(1);
182
- }
183
- });
184
- program
185
- .command('status <identifier>')
186
- .description('Show status of an installed formation (namespace/name or name)')
187
- .option('--json', 'Output as JSON')
188
- .option('--gateway-url <url>', 'Gateway WebSocket URL')
189
- .option('--gateway-token <token>', 'Gateway auth token')
190
- .option('--gateway-password <password>', 'Gateway auth password')
191
- .action(async (identifier, options) => {
192
- try {
193
- await status(identifier, options);
194
- }
195
- catch (err) {
196
- console.error(err instanceof Error ? err.message : err);
197
- process.exit(1);
198
- }
199
- });
200
- program.parse();
300
+ }
301
+ catch {
302
+ // Non-standard invocation (missing/virtual argv path) — default to not parsing
303
+ }
304
+ if (isDirectRun) {
305
+ buildProgram().parse();
306
+ }
201
307
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface LockfileEntry {
2
+ version: string;
3
+ resolved: string;
4
+ integrity: string;
5
+ }
6
+ export interface Lockfile {
7
+ skills: Record<string, LockfileEntry>;
8
+ }
9
+ //# sourceMappingURL=lockfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../src/types/lockfile.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lockfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/types/lockfile.ts"],"names":[],"mappings":""}
@@ -15,6 +15,10 @@ export interface FormationState {
15
15
  sourcePath?: string;
16
16
  updatedAt?: string;
17
17
  agentToAgentEdges?: Record<string, string[]>;
18
+ registryRef?: {
19
+ name: string;
20
+ version: string;
21
+ };
18
22
  }
19
23
  export interface AgentState {
20
24
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH"}
@@ -0,0 +1,18 @@
1
+ export interface ArtifactDownloadOptions {
2
+ url: string;
3
+ sha256?: string;
4
+ cacheDir: string;
5
+ cacheName: string;
6
+ userAgent: string;
7
+ }
8
+ export declare class ArtifactDownloadError extends Error {
9
+ cause?: unknown | undefined;
10
+ constructor(message: string, cause?: unknown | undefined);
11
+ }
12
+ export declare class ArtifactIntegrityError extends Error {
13
+ expected: string;
14
+ actual: string;
15
+ constructor(expected: string, actual: string);
16
+ }
17
+ export declare function downloadArtifact(options: ArtifactDownloadOptions): Promise<string>;
18
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/utils/download.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IACV,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAIpD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAEtC,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;gBADd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAKxB;AAUD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwDxF"}
@@ -0,0 +1,72 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync } from 'node:fs';
3
+ import { mkdir, readFile, writeFile, unlink } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ export class ArtifactDownloadError extends Error {
6
+ cause;
7
+ constructor(message, cause) {
8
+ super(message);
9
+ this.cause = cause;
10
+ this.name = 'ArtifactDownloadError';
11
+ }
12
+ }
13
+ export class ArtifactIntegrityError extends Error {
14
+ expected;
15
+ actual;
16
+ constructor(expected, actual) {
17
+ super(`Integrity check failed: expected sha256 ${expected}, got ${actual}`);
18
+ this.expected = expected;
19
+ this.actual = actual;
20
+ this.name = 'ArtifactIntegrityError';
21
+ }
22
+ }
23
+ function validateUrlScheme(url) {
24
+ if (!url.startsWith('https://') && !url.startsWith('http://')) {
25
+ throw new ArtifactDownloadError(`Invalid URL scheme: only https:// and http:// are allowed, got "${url}"`);
26
+ }
27
+ }
28
+ export async function downloadArtifact(options) {
29
+ const { url, sha256, cacheDir, cacheName, userAgent } = options;
30
+ const hasHash = !!sha256;
31
+ const subdir = hasHash ? 'verified' : 'unverified';
32
+ const cachePath = join(cacheDir, subdir, cacheName);
33
+ // Verified artifacts: reuse from cache after re-checking hash
34
+ if (hasHash && existsSync(cachePath)) {
35
+ const cached = await readFile(cachePath);
36
+ const cachedHash = createHash('sha256').update(cached).digest('hex');
37
+ if (cachedHash === sha256) {
38
+ return cachePath;
39
+ }
40
+ await unlink(cachePath).catch(() => { });
41
+ }
42
+ if (!hasHash) {
43
+ console.warn(`WARNING: No integrity hash — artifact is UNVERIFIED`);
44
+ }
45
+ validateUrlScheme(url);
46
+ let response;
47
+ try {
48
+ response = await fetch(url, {
49
+ headers: { 'User-Agent': userAgent },
50
+ });
51
+ }
52
+ catch (err) {
53
+ throw new ArtifactDownloadError(`Failed to download: ${err instanceof Error ? err.message : String(err)}`, err);
54
+ }
55
+ if (!response.ok) {
56
+ throw new ArtifactDownloadError(`Download returned HTTP ${response.status}: ${response.statusText}`);
57
+ }
58
+ const buffer = Buffer.from(await response.arrayBuffer());
59
+ // Verify SHA-256 if present
60
+ if (sha256) {
61
+ const actual = createHash('sha256').update(buffer).digest('hex');
62
+ if (actual !== sha256) {
63
+ throw new ArtifactIntegrityError(sha256, actual);
64
+ }
65
+ }
66
+ // Write to cache
67
+ const parentDir = join(cacheDir, subdir);
68
+ await mkdir(parentDir, { recursive: true });
69
+ await writeFile(cachePath, buffer);
70
+ return cachePath;
71
+ }
72
+ //# sourceMappingURL=download.js.map