@hashicorp/kits 0.1.9 → 0.1.11

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 (108) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/base-adapter.d.ts.map +1 -1
  3. package/dist/adapters/base-adapter.js +13 -4
  4. package/dist/adapters/base-adapter.js.map +1 -1
  5. package/dist/adapters/command-parser.d.ts +12 -0
  6. package/dist/adapters/command-parser.d.ts.map +1 -1
  7. package/dist/adapters/command-parser.js +7 -1
  8. package/dist/adapters/command-parser.js.map +1 -1
  9. package/dist/adapters/gemini-cli/installer.js +1 -1
  10. package/dist/adapters/gemini-cli/installer.js.map +1 -1
  11. package/dist/cli/install.d.ts.map +1 -1
  12. package/dist/cli/install.js +3 -0
  13. package/dist/cli/install.js.map +1 -1
  14. package/dist/core/types.d.ts +2 -2
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/lockfile/index.d.ts +1 -1
  20. package/dist/lockfile/index.d.ts.map +1 -1
  21. package/dist/lockfile/index.js +1 -1
  22. package/dist/lockfile/index.js.map +1 -1
  23. package/dist/lockfile/read.d.ts.map +1 -1
  24. package/dist/lockfile/read.js +15 -24
  25. package/dist/lockfile/read.js.map +1 -1
  26. package/dist/lockfile/types.d.ts +4 -2
  27. package/dist/lockfile/types.d.ts.map +1 -1
  28. package/dist/lockfile/types.js +4 -2
  29. package/dist/lockfile/types.js.map +1 -1
  30. package/dist/lockfile/write.d.ts.map +1 -1
  31. package/dist/lockfile/write.js +7 -0
  32. package/dist/lockfile/write.js.map +1 -1
  33. package/dist/manifest/read.d.ts.map +1 -1
  34. package/dist/manifest/read.js +14 -19
  35. package/dist/manifest/read.js.map +1 -1
  36. package/dist/manifest/types.d.ts +2 -0
  37. package/dist/manifest/types.d.ts.map +1 -1
  38. package/dist/manifest/types.js +2 -0
  39. package/dist/manifest/types.js.map +1 -1
  40. package/dist/manifest/write.d.ts.map +1 -1
  41. package/dist/manifest/write.js +4 -1
  42. package/dist/manifest/write.js.map +1 -1
  43. package/dist/resolution/primitives-registry.d.ts.map +1 -1
  44. package/dist/resolution/primitives-registry.js +27 -1
  45. package/dist/resolution/primitives-registry.js.map +1 -1
  46. package/dist/tui/kit-select.d.ts.map +1 -1
  47. package/dist/tui/kit-select.js +7 -11
  48. package/dist/tui/kit-select.js.map +1 -1
  49. package/dist/tui/summary.d.ts.map +1 -1
  50. package/dist/tui/summary.js +1 -0
  51. package/dist/tui/summary.js.map +1 -1
  52. package/dist/tui/uninstall.d.ts.map +1 -1
  53. package/dist/tui/uninstall.js +1 -2
  54. package/dist/tui/uninstall.js.map +1 -1
  55. package/dist/tui/upgrade.d.ts.map +1 -1
  56. package/dist/tui/upgrade.js +0 -4
  57. package/dist/tui/upgrade.js.map +1 -1
  58. package/dist/validation/schema-registry.d.ts +18 -0
  59. package/dist/validation/schema-registry.d.ts.map +1 -0
  60. package/dist/validation/schema-registry.js +112 -0
  61. package/dist/validation/schema-registry.js.map +1 -0
  62. package/dist/validation/schema-validator.d.ts +18 -0
  63. package/dist/validation/schema-validator.d.ts.map +1 -0
  64. package/dist/validation/schema-validator.js +62 -0
  65. package/dist/validation/schema-validator.js.map +1 -0
  66. package/dist/validation/validate-commands.d.ts +3 -1
  67. package/dist/validation/validate-commands.d.ts.map +1 -1
  68. package/dist/validation/validate-commands.js +37 -10
  69. package/dist/validation/validate-commands.js.map +1 -1
  70. package/dist/validation/validate-hooks.d.ts.map +1 -1
  71. package/dist/validation/validate-hooks.js +11 -15
  72. package/dist/validation/validate-hooks.js.map +1 -1
  73. package/dist/validation/validate-kits.d.ts +1 -4
  74. package/dist/validation/validate-kits.d.ts.map +1 -1
  75. package/dist/validation/validate-kits.js +19 -52
  76. package/dist/validation/validate-kits.js.map +1 -1
  77. package/dist/validation/validate-mcp.d.ts.map +1 -1
  78. package/dist/validation/validate-mcp.js +10 -19
  79. package/dist/validation/validate-mcp.js.map +1 -1
  80. package/dist/validation/validate-skills.d.ts +3 -1
  81. package/dist/validation/validate-skills.d.ts.map +1 -1
  82. package/dist/validation/validate-skills.js +42 -71
  83. package/dist/validation/validate-skills.js.map +1 -1
  84. package/dist/validation/validate-subagents.d.ts +3 -1
  85. package/dist/validation/validate-subagents.d.ts.map +1 -1
  86. package/dist/validation/validate-subagents.js +15 -118
  87. package/dist/validation/validate-subagents.js.map +1 -1
  88. package/package.json +1 -1
  89. package/schemas/{command.schema.json → command.schema.v1.0.0.json} +15 -2
  90. package/schemas/examples/hook-program-valid.json +14 -4
  91. package/schemas/examples/http-server-valid.json +2 -1
  92. package/schemas/examples/invalid-sensitive-header-no-envvar.json +2 -1
  93. package/schemas/examples/invalid-sensitive-header-with-value.json +2 -1
  94. package/schemas/examples/invalid-sensitive-var-with-default.json +6 -2
  95. package/schemas/examples/stdio-server-valid.json +6 -2
  96. package/schemas/hook-binding.schema.v1.0.0.json +107 -0
  97. package/schemas/hook-program.schema.v1.0.0.json +255 -0
  98. package/schemas/{kit.schema.json → kit.schema.v1.0.0.json} +108 -19
  99. package/schemas/kits-lock.schema.v1.0.0.json +478 -0
  100. package/schemas/{kits-manifest.schema.json → kits-manifest.schema.v1.0.0.json} +38 -9
  101. package/schemas/{kits-registry.schema.json → kits-registry.schema.v1.0.0.json} +16 -5
  102. package/schemas/{mcp-server.schema.json → mcp-server.schema.v1.0.0.json} +73 -20
  103. package/schemas/{primitives-registry.schema.json → primitives-registry.schema.v1.0.0.json} +19 -5
  104. package/schemas/{skill.schema.json → skill.schema.v1.0.0.json} +28 -5
  105. package/schemas/{subagent.schema.json → subagent.schema.v1.0.0.json} +28 -5
  106. package/schemas/hook-binding.schema.json +0 -63
  107. package/schemas/hook-program.schema.json +0 -136
  108. package/schemas/kits-lock.schema.json +0 -282
@@ -0,0 +1,255 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft-07/schema#",
3
+ "$id": "https://hashicorp.com/schemas/hook-program.schema.v1.0.0.json",
4
+ "title": "Hook Program Config",
5
+ "description": "Schema for hook program config.json files",
6
+ "type": "object",
7
+ "required": [
8
+ "$schema",
9
+ "schemaVersion",
10
+ "name",
11
+ "version",
12
+ "description",
13
+ "runtime",
14
+ "io"
15
+ ],
16
+ "properties": {
17
+ "$schema": {
18
+ "type": "string",
19
+ "description": "JSON Schema reference"
20
+ },
21
+ "schemaVersion": {
22
+ "type": "string",
23
+ "const": "1.0.0",
24
+ "description": "Version of this schema (semver)"
25
+ },
26
+ "name": {
27
+ "type": "string",
28
+ "minLength": 3,
29
+ "maxLength": 50,
30
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
31
+ "description": "Hook program name in lowercase kebab-case"
32
+ },
33
+ "version": {
34
+ "type": "string",
35
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
36
+ "description": "Semver version string"
37
+ },
38
+ "description": {
39
+ "type": "string",
40
+ "minLength": 10,
41
+ "maxLength": 200,
42
+ "description": "Description of the hook program"
43
+ },
44
+ "runtime": {
45
+ "type": "object",
46
+ "required": [
47
+ "type",
48
+ "entrypoint"
49
+ ],
50
+ "properties": {
51
+ "type": {
52
+ "type": "string",
53
+ "enum": [
54
+ "command",
55
+ "prompt",
56
+ "opencode-plugin"
57
+ ],
58
+ "description": "Hook runtime type"
59
+ },
60
+ "entrypoint": {
61
+ "type": "string",
62
+ "minLength": 1,
63
+ "description": "Entrypoint file for the hook program"
64
+ },
65
+ "shell": {
66
+ "type": "string",
67
+ "description": "Shell to use for command runtime"
68
+ },
69
+ "working_directory": {
70
+ "type": "string",
71
+ "description": "Working directory for hook execution"
72
+ },
73
+ "args": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string"
77
+ },
78
+ "description": "Arguments passed to the runtime executable"
79
+ },
80
+ "timeout_ms": {
81
+ "type": "number",
82
+ "description": "Execution timeout in milliseconds"
83
+ }
84
+ },
85
+ "additionalProperties": false,
86
+ "allOf": [
87
+ {
88
+ "if": {
89
+ "required": [
90
+ "args"
91
+ ]
92
+ },
93
+ "then": {
94
+ "required": [
95
+ "shell"
96
+ ]
97
+ }
98
+ }
99
+ ]
100
+ },
101
+ "io": {
102
+ "type": "object",
103
+ "required": [
104
+ "stdin",
105
+ "stdout"
106
+ ],
107
+ "properties": {
108
+ "stdin": {
109
+ "type": "string",
110
+ "enum": [
111
+ "json",
112
+ "none"
113
+ ],
114
+ "description": "Expected stdin format"
115
+ },
116
+ "stdout": {
117
+ "type": "string",
118
+ "enum": [
119
+ "json",
120
+ "none"
121
+ ],
122
+ "description": "Expected stdout format"
123
+ },
124
+ "error_codes": {
125
+ "type": "object",
126
+ "properties": {
127
+ "success": {
128
+ "type": "array",
129
+ "items": {
130
+ "type": "number"
131
+ }
132
+ },
133
+ "warn": {
134
+ "type": "array",
135
+ "items": {
136
+ "type": "number"
137
+ }
138
+ },
139
+ "block": {
140
+ "type": "array",
141
+ "items": {
142
+ "type": "number"
143
+ }
144
+ }
145
+ },
146
+ "additionalProperties": false
147
+ }
148
+ },
149
+ "additionalProperties": false
150
+ },
151
+ "env": {
152
+ "type": "object",
153
+ "additionalProperties": {
154
+ "type": "string",
155
+ "minLength": 1
156
+ },
157
+ "description": "Default environment variables for the hook program"
158
+ },
159
+ "args": {
160
+ "type": "array",
161
+ "items": {
162
+ "type": "object",
163
+ "additionalProperties": false,
164
+ "required": [
165
+ "name",
166
+ "kind",
167
+ "type",
168
+ "default"
169
+ ],
170
+ "properties": {
171
+ "name": {
172
+ "type": "string",
173
+ "minLength": 1
174
+ },
175
+ "kind": {
176
+ "type": "string",
177
+ "enum": [
178
+ "positional",
179
+ "flag"
180
+ ]
181
+ },
182
+ "flag": {
183
+ "type": "string",
184
+ "minLength": 2
185
+ },
186
+ "type": {
187
+ "type": "string",
188
+ "enum": [
189
+ "string",
190
+ "number",
191
+ "boolean",
192
+ "array"
193
+ ]
194
+ },
195
+ "default": {
196
+ "anyOf": [
197
+ {
198
+ "type": "string"
199
+ },
200
+ {
201
+ "type": "number"
202
+ },
203
+ {
204
+ "type": "boolean"
205
+ },
206
+ {
207
+ "type": "array",
208
+ "items": {
209
+ "type": [
210
+ "string",
211
+ "number",
212
+ "boolean"
213
+ ]
214
+ }
215
+ }
216
+ ]
217
+ },
218
+ "description": {
219
+ "type": "string"
220
+ },
221
+ "valueStyle": {
222
+ "type": "string",
223
+ "enum": [
224
+ "space",
225
+ "equals"
226
+ ]
227
+ }
228
+ },
229
+ "allOf": [
230
+ {
231
+ "if": {
232
+ "properties": {
233
+ "kind": {
234
+ "const": "flag"
235
+ }
236
+ }
237
+ },
238
+ "then": {
239
+ "required": [
240
+ "flag"
241
+ ]
242
+ }
243
+ }
244
+ ]
245
+ },
246
+ "description": "Optional ordered argument schema for hook programs"
247
+ },
248
+ "metadata": {
249
+ "type": "object",
250
+ "additionalProperties": true,
251
+ "description": "Arbitrary metadata for the hook program"
252
+ }
253
+ },
254
+ "additionalProperties": false
255
+ }
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft-07/schema#",
3
- "$id": "https://hashicorp.com/schemas/kit.schema.json",
3
+ "$id": "https://hashicorp.com/schemas/kit.schema.v1.0.0.json",
4
4
  "title": "Kit Definition",
5
5
  "description": "Schema for kit.json - the kit definition file within each kit directory",
6
6
  "type": "object",
7
- "required": ["schemaVersion", "name", "version", "requires", "primitives"],
7
+ "required": [
8
+ "$schema",
9
+ "schemaVersion",
10
+ "name",
11
+ "version",
12
+ "requires",
13
+ "primitives"
14
+ ],
8
15
  "properties": {
9
16
  "$schema": {
10
17
  "type": "string",
@@ -12,7 +19,7 @@
12
19
  },
13
20
  "schemaVersion": {
14
21
  "type": "string",
15
- "pattern": "^\\d+\\.\\d+\\.\\d+$",
22
+ "const": "1.0.0",
16
23
  "description": "Version of this schema (semver)"
17
24
  },
18
25
  "name": {
@@ -78,7 +85,9 @@
78
85
  "definitions": {
79
86
  "author": {
80
87
  "type": "object",
81
- "required": ["name"],
88
+ "required": [
89
+ "name"
90
+ ],
82
91
  "properties": {
83
92
  "name": {
84
93
  "type": "string",
@@ -99,12 +108,20 @@
99
108
  },
100
109
  "primitiveType": {
101
110
  "type": "string",
102
- "enum": ["commands", "skills", "subagents", "mcp", "hooks"],
111
+ "enum": [
112
+ "commands",
113
+ "skills",
114
+ "subagents",
115
+ "mcp",
116
+ "hooks"
117
+ ],
103
118
  "description": "Primitive type identifier"
104
119
  },
105
120
  "requirements": {
106
121
  "type": "object",
107
- "required": ["primitives"],
122
+ "required": [
123
+ "primitives"
124
+ ],
108
125
  "properties": {
109
126
  "primitives": {
110
127
  "type": "array",
@@ -181,7 +198,9 @@
181
198
  },
182
199
  "referencedPrimitive": {
183
200
  "type": "object",
184
- "required": ["ref"],
201
+ "required": [
202
+ "ref"
203
+ ],
185
204
  "properties": {
186
205
  "ref": {
187
206
  "type": "string",
@@ -198,7 +217,10 @@
198
217
  },
199
218
  "inlinePrimitive": {
200
219
  "type": "object",
201
- "required": ["name", "entrypoint"],
220
+ "required": [
221
+ "name",
222
+ "entrypoint"
223
+ ],
202
224
  "properties": {
203
225
  "name": {
204
226
  "type": "string",
@@ -226,7 +248,10 @@
226
248
  },
227
249
  "hookReferencedPrimitive": {
228
250
  "type": "object",
229
- "required": ["ref", "binding"],
251
+ "required": [
252
+ "ref",
253
+ "binding"
254
+ ],
230
255
  "properties": {
231
256
  "ref": {
232
257
  "type": "string",
@@ -246,7 +271,11 @@
246
271
  },
247
272
  "hookInlinePrimitive": {
248
273
  "type": "object",
249
- "required": ["name", "entrypoint", "binding"],
274
+ "required": [
275
+ "name",
276
+ "entrypoint",
277
+ "binding"
278
+ ],
250
279
  "properties": {
251
280
  "name": {
252
281
  "type": "string",
@@ -277,7 +306,9 @@
277
306
  },
278
307
  "hookBinding": {
279
308
  "type": "object",
280
- "required": ["event"],
309
+ "required": [
310
+ "event"
311
+ ],
281
312
  "properties": {
282
313
  "event": {
283
314
  "type": "string",
@@ -301,7 +332,9 @@
301
332
  "properties": {
302
333
  "tools": {
303
334
  "type": "array",
304
- "items": { "type": "string" },
335
+ "items": {
336
+ "type": "string"
337
+ },
305
338
  "minItems": 1
306
339
  }
307
340
  },
@@ -310,27 +343,83 @@
310
343
  "policy": {
311
344
  "type": "object",
312
345
  "properties": {
313
- "on_success": { "type": "string", "enum": ["continue", "warn", "block"] },
314
- "on_failure": { "type": "string", "enum": ["continue", "warn", "block"] },
315
- "on_timeout": { "type": "string", "enum": ["continue", "warn", "block"] }
346
+ "on_success": {
347
+ "type": "string",
348
+ "enum": [
349
+ "continue",
350
+ "warn",
351
+ "block"
352
+ ]
353
+ },
354
+ "on_failure": {
355
+ "type": "string",
356
+ "enum": [
357
+ "continue",
358
+ "warn",
359
+ "block"
360
+ ]
361
+ },
362
+ "on_timeout": {
363
+ "type": "string",
364
+ "enum": [
365
+ "continue",
366
+ "warn",
367
+ "block"
368
+ ]
369
+ }
316
370
  },
317
371
  "additionalProperties": false
318
372
  },
373
+ "args": {
374
+ "type": "object",
375
+ "additionalProperties": {
376
+ "anyOf": [
377
+ {
378
+ "type": "string",
379
+ "minLength": 1
380
+ },
381
+ {
382
+ "type": "number"
383
+ },
384
+ {
385
+ "type": "boolean"
386
+ },
387
+ {
388
+ "type": "array",
389
+ "items": {
390
+ "type": [
391
+ "string",
392
+ "number",
393
+ "boolean"
394
+ ]
395
+ }
396
+ }
397
+ ]
398
+ }
399
+ },
319
400
  "runtime": {
320
401
  "type": "object",
321
402
  "properties": {
322
- "timeout_ms": { "type": "number" },
323
- "working_directory": { "type": "string" },
403
+ "timeout_ms": {
404
+ "type": "number"
405
+ },
406
+ "working_directory": {
407
+ "type": "string"
408
+ },
324
409
  "args": {
325
410
  "type": "array",
326
- "items": { "type": "string" }
411
+ "items": {
412
+ "type": "string"
413
+ }
327
414
  }
328
415
  },
329
416
  "additionalProperties": false
330
417
  },
331
418
  "env": {
332
419
  "type": "object",
333
- "additionalProperties": { "type": "string" }
420
+ "additionalProperties": {
421
+ "type": "string"
422
+ }
334
423
  }
335
424
  },
336
425
  "additionalProperties": false