mano-coding 0.1.29 → 0.1.31

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.
@@ -28,7 +28,7 @@
28
28
  "type": "array",
29
29
  "items": {
30
30
  "type": "object",
31
- "required": ["id", "command"],
31
+ "required": ["id", "command", "on"],
32
32
  "properties": {
33
33
  "id": {
34
34
  "type": "string",
@@ -63,8 +63,20 @@
63
63
  },
64
64
  "on": {
65
65
  "type": "array",
66
+ "minItems": 1,
66
67
  "items": {
67
- "enum": ["before:create", "after:create", "before:apply", "after:apply"]
68
+ "enum": [
69
+ "before:create",
70
+ "after:create",
71
+ "before:apply",
72
+ "after:apply",
73
+ "before:sync",
74
+ "after:sync",
75
+ "before:upgrade",
76
+ "after:upgrade",
77
+ "before:remove",
78
+ "after:remove"
79
+ ]
68
80
  },
69
81
  "uniqueItems": true
70
82
  }
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "project-lock.schema.json",
4
- "title": "Mano Coding Project Lock",
4
+ "title": "Mano Coding Project Lock (AD-10)",
5
5
  "type": "object",
6
- "required": ["kind", "generatedBy", "desired", "resolved", "resources"],
6
+ "required": ["apiVersion", "kind", "desired", "resolved", "resources"],
7
7
  "properties": {
8
+ "apiVersion": { "type": "string", "pattern": "^mano-coding/v[0-9]+$" },
8
9
  "kind": { "const": "ProjectLock" },
9
10
  "generatedBy": { "$ref": "#/$defs/generatedBy" },
11
+ "createdWith": { "$ref": "#/$defs/createdWith" },
10
12
  "desired": { "$ref": "#/$defs/desired" },
11
13
  "resolved": { "$ref": "#/$defs/resolved" },
12
14
  "resources": {
@@ -50,42 +52,31 @@
50
52
  "type": "string",
51
53
  "pattern": "^sha256:[a-f0-9]{64}$"
52
54
  },
53
- "builtInTargetId": {
54
- "enum": [
55
- "cursor",
56
- "opencode",
57
- "claude-code",
58
- "codex",
59
- "codebuddy",
60
- "trae",
61
- "deepseek-harness"
62
- ]
63
- },
64
- "customTargetId": {
65
- "type": "string",
66
- "pattern": "^[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*$",
67
- "maxLength": 128
68
- },
69
- "targetId": {
70
- "oneOf": [
71
- { "$ref": "#/$defs/builtInTargetId" },
72
- { "$ref": "#/$defs/customTargetId" }
73
- ]
74
- },
75
- "targetRef": {
55
+ "generatedBy": {
76
56
  "type": "object",
77
- "required": ["id", "scope"],
57
+ "required": ["cliVersion"],
78
58
  "properties": {
79
- "id": { "$ref": "#/$defs/targetId" },
80
- "scope": { "const": "project" }
59
+ "cliVersion": { "$ref": "#/$defs/semver" }
81
60
  },
82
61
  "additionalProperties": false
83
62
  },
84
- "generatedBy": {
63
+ "createdWith": {
85
64
  "type": "object",
86
- "required": ["cliVersion"],
65
+ "required": ["packages"],
87
66
  "properties": {
88
- "cliVersion": { "$ref": "#/$defs/semver" }
67
+ "packages": {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "object",
71
+ "required": ["packageId", "version", "contentDigest"],
72
+ "properties": {
73
+ "packageId": { "$ref": "#/$defs/packageName" },
74
+ "version": { "$ref": "#/$defs/semver" },
75
+ "contentDigest": { "$ref": "#/$defs/digest" }
76
+ },
77
+ "additionalProperties": false
78
+ }
79
+ }
89
80
  },
90
81
  "additionalProperties": false
91
82
  },
@@ -133,53 +124,32 @@
133
124
  },
134
125
  "desiredPackage": {
135
126
  "type": "object",
136
- "required": ["id", "version", "source", "inputs"],
127
+ "required": ["id", "requested", "source", "inputs"],
137
128
  "properties": {
138
129
  "id": { "$ref": "#/$defs/packageName" },
139
- "version": { "$ref": "#/$defs/semverRange" },
130
+ "requested": { "$ref": "#/$defs/semverRange" },
140
131
  "source": { "$ref": "#/$defs/requestedSource" },
141
- "inputs": { "$ref": "#/$defs/inputValues" }
142
- },
143
- "additionalProperties": false
144
- },
145
- "desiredCapability": {
146
- "type": "object",
147
- "required": ["packageId", "id", "version"],
148
- "properties": {
149
- "packageId": { "$ref": "#/$defs/packageName" },
150
- "id": { "$ref": "#/$defs/localId" },
151
- "version": { "$ref": "#/$defs/semverRange" }
132
+ "inputs": { "$ref": "#/$defs/inputValues" },
133
+ "assetTypes": {
134
+ "type": "array",
135
+ "items": { "type": "string" }
136
+ }
152
137
  },
153
138
  "additionalProperties": false
154
139
  },
155
140
  "desired": {
156
141
  "type": "object",
157
- "required": ["capabilities", "targets"],
142
+ "required": ["packages", "targets"],
158
143
  "properties": {
159
- "template": { "$ref": "#/$defs/desiredPackage" },
160
- "templates": {
144
+ "packages": {
161
145
  "type": "array",
162
146
  "items": { "$ref": "#/$defs/desiredPackage" }
163
147
  },
164
- "addons": {
165
- "type": "array",
166
- "items": { "$ref": "#/$defs/desiredPackage" }
167
- },
168
- "capabilities": {
169
- "type": "array",
170
- "items": { "$ref": "#/$defs/desiredCapability" }
171
- },
172
148
  "targets": {
173
149
  "type": "array",
174
- "minItems": 1,
175
- "items": { "$ref": "#/$defs/targetRef" }
150
+ "items": { "type": "string" }
176
151
  }
177
152
  },
178
- "anyOf": [
179
- { "required": ["templates"] },
180
- { "required": ["template"] },
181
- { "properties": { "addons": { "minItems": 1 } } }
182
- ],
183
153
  "additionalProperties": false
184
154
  },
185
155
  "resolvedNpmSource": {
@@ -221,236 +191,57 @@
221
191
  },
222
192
  "resolvedPackage": {
223
193
  "type": "object",
224
- "required": ["id", "version", "source"],
194
+ "required": ["id", "version", "contentDigest", "source"],
225
195
  "properties": {
226
196
  "id": { "$ref": "#/$defs/packageName" },
227
197
  "version": { "$ref": "#/$defs/semver" },
228
- "source": { "$ref": "#/$defs/resolvedSource" },
229
- "integrity": { "$ref": "#/$defs/integrity" }
230
- },
231
- "additionalProperties": false
232
- },
233
- "requestedBy": {
234
- "oneOf": [
235
- {
236
- "type": "object",
237
- "required": ["kind", "packageId"],
238
- "properties": {
239
- "kind": { "enum": ["template", "addon"] },
240
- "packageId": { "$ref": "#/$defs/packageName" }
241
- },
242
- "additionalProperties": false
243
- },
244
- {
245
- "type": "object",
246
- "required": ["kind", "packageId", "id"],
247
- "properties": {
248
- "kind": { "const": "capability" },
249
- "packageId": { "$ref": "#/$defs/packageName" },
250
- "id": { "$ref": "#/$defs/localId" }
251
- },
252
- "additionalProperties": false
253
- }
254
- ]
255
- },
256
- "resolvedProject": {
257
- "type": "object",
258
- "required": ["packageId", "id", "version"],
259
- "properties": {
260
- "packageId": { "$ref": "#/$defs/packageName" },
261
- "id": { "$ref": "#/$defs/localId" },
262
- "version": { "$ref": "#/$defs/semver" }
263
- },
264
- "additionalProperties": false
265
- },
266
- "resolvedCapability": {
267
- "type": "object",
268
- "required": ["packageId", "id", "type", "version", "requestedBy", "targets", "requiresUserInstallation"],
269
- "properties": {
270
- "packageId": { "$ref": "#/$defs/packageName" },
271
- "id": { "$ref": "#/$defs/localId" },
272
- "type": { "enum": ["skill", "rule", "instruction", "mcp", "agent"] },
273
- "version": { "$ref": "#/$defs/semver" },
274
- "requestedBy": {
275
- "type": "array",
276
- "minItems": 1,
277
- "items": { "$ref": "#/$defs/requestedBy" }
278
- },
279
- "targets": {
280
- "type": "array",
281
- "minItems": 1,
282
- "items": { "$ref": "#/$defs/targetRef" }
283
- },
284
- "requiresUserInstallation": { "type": "boolean" }
285
- },
286
- "additionalProperties": false
287
- },
288
- "resolvedPlugin": {
289
- "type": "object",
290
- "required": ["packageId", "id", "version", "target"],
291
- "properties": {
292
- "packageId": { "$ref": "#/$defs/packageName" },
293
- "id": { "$ref": "#/$defs/localId" },
294
- "version": { "$ref": "#/$defs/semver" },
295
- "target": { "$ref": "#/$defs/targetRef" }
296
- },
297
- "additionalProperties": false
298
- },
299
- "resolvedTarget": {
300
- "type": "object",
301
- "required": ["id", "scope", "adapter"],
302
- "properties": {
303
- "id": { "$ref": "#/$defs/targetId" },
304
- "scope": { "const": "project" },
305
- "hostVersion": { "type": "string", "minLength": 1, "maxLength": 128 },
306
- "adapter": {
307
- "oneOf": [
308
- { "$ref": "#/$defs/builtInAdapter" },
309
- { "$ref": "#/$defs/packageAdapter" }
310
- ]
311
- }
312
- },
313
- "additionalProperties": false
314
- },
315
- "builtInAdapter": {
316
- "type": "object",
317
- "required": ["id", "version"],
318
- "properties": {
319
- "id": { "$ref": "#/$defs/builtInTargetId" },
320
- "version": { "$ref": "#/$defs/semver" }
321
- },
322
- "additionalProperties": false
323
- },
324
- "packageAdapter": {
325
- "type": "object",
326
- "required": ["id", "version", "packageId", "source", "integrity"],
327
- "properties": {
328
- "id": { "$ref": "#/$defs/customTargetId" },
329
- "version": { "$ref": "#/$defs/semver" },
330
- "packageId": { "$ref": "#/$defs/packageName" },
331
- "source": { "$ref": "#/$defs/resolvedSource" },
332
- "integrity": { "$ref": "#/$defs/integrity" }
198
+ "integrity": { "$ref": "#/$defs/integrity" },
199
+ "contentDigest": { "$ref": "#/$defs/digest" },
200
+ "source": { "$ref": "#/$defs/resolvedSource" }
333
201
  },
334
202
  "additionalProperties": false
335
203
  },
336
204
  "resolved": {
337
205
  "type": "object",
338
- "required": ["projects", "capabilities", "plugins", "targets"],
206
+ "required": ["packages"],
339
207
  "properties": {
340
- "template": { "$ref": "#/$defs/resolvedPackage" },
341
- "templates": {
208
+ "packages": {
342
209
  "type": "array",
343
210
  "items": { "$ref": "#/$defs/resolvedPackage" }
344
- },
345
- "addons": {
346
- "type": "array",
347
- "items": { "$ref": "#/$defs/resolvedPackage" }
348
- },
349
- "projects": {
350
- "type": "array",
351
- "items": { "$ref": "#/$defs/resolvedProject" }
352
- },
353
- "capabilities": {
354
- "type": "array",
355
- "items": { "$ref": "#/$defs/resolvedCapability" }
356
- },
357
- "plugins": {
358
- "type": "array",
359
- "items": { "$ref": "#/$defs/resolvedPlugin" }
360
- },
361
- "targets": {
362
- "type": "array",
363
- "minItems": 1,
364
- "items": { "$ref": "#/$defs/resolvedTarget" }
365
211
  }
366
212
  },
367
- "anyOf": [
368
- { "required": ["templates"] },
369
- { "required": ["template"] },
370
- { "properties": { "addons": { "minItems": 1 } } }
371
- ],
372
- "additionalProperties": false
373
- },
374
- "packageOwner": {
375
- "type": "object",
376
- "required": ["kind", "packageId"],
377
- "properties": {
378
- "kind": { "enum": ["template", "addon"] },
379
- "packageId": { "$ref": "#/$defs/packageName" }
380
- },
381
213
  "additionalProperties": false
382
214
  },
383
- "objectOwner": {
215
+ "resourceOwner": {
384
216
  "type": "object",
385
- "required": ["kind", "packageId", "id"],
217
+ "required": ["packageId", "assetType"],
386
218
  "properties": {
387
- "kind": { "enum": ["project", "capability", "plugin"] },
388
219
  "packageId": { "$ref": "#/$defs/packageName" },
389
- "id": { "$ref": "#/$defs/localId" }
220
+ "assetType": { "type": "string", "minLength": 1, "maxLength": 64 },
221
+ "assetId": { "type": "string", "minLength": 1, "maxLength": 128 }
390
222
  },
391
223
  "additionalProperties": false
392
224
  },
393
- "owner": {
394
- "oneOf": [
395
- { "$ref": "#/$defs/packageOwner" },
396
- { "$ref": "#/$defs/objectOwner" }
397
- ]
398
- },
399
- "resourceCommon": {
225
+ "resource": {
400
226
  "type": "object",
401
- "required": ["type", "path", "digest", "owners"],
227
+ "required": ["target", "path", "selector", "hash", "owners"],
402
228
  "properties": {
403
- "type": { "enum": ["file", "config-entry", "managed-section"] },
229
+ "target": { "type": "string", "minLength": 1, "maxLength": 128 },
404
230
  "path": { "$ref": "#/$defs/projectPath" },
231
+ "selector": { "type": ["string", "null"] },
232
+ "hash": { "$ref": "#/$defs/digest" },
405
233
  "digest": { "$ref": "#/$defs/digest" },
234
+ "type": { "enum": ["file", "config-entry", "managed-section"] },
235
+ "format": { "enum": ["json", "jsonc", "toml"] },
236
+ "sectionId": { "type": "string" },
237
+ "executable": { "type": "boolean" },
406
238
  "owners": {
407
239
  "type": "array",
408
240
  "minItems": 1,
409
- "items": { "$ref": "#/$defs/owner" }
410
- },
411
- "target": { "$ref": "#/$defs/targetRef" },
412
- "adapter": {
413
- "type": "object",
414
- "required": ["id", "version"],
415
- "properties": {
416
- "id": { "$ref": "#/$defs/targetId" },
417
- "version": { "$ref": "#/$defs/semver" }
418
- },
419
- "additionalProperties": false
420
- },
421
- "executable": { "type": "boolean", "default": false },
422
- "selector": {
423
- "type": "string",
424
- "minLength": 1,
425
- "maxLength": 512,
426
- "pattern": "^(/(?:[^~/]|~[01])*)+$",
427
- "description": "RFC 6901 JSON Pointer"
428
- },
429
- "format": { "enum": ["json", "jsonc", "toml"] },
430
- "sectionId": { "type": "string", "minLength": 1, "maxLength": 128 }
241
+ "items": { "$ref": "#/$defs/resourceOwner" }
242
+ }
431
243
  },
432
244
  "additionalProperties": false
433
- },
434
- "resource": {
435
- "allOf": [
436
- { "$ref": "#/$defs/resourceCommon" },
437
- {
438
- "if": {
439
- "properties": { "type": { "const": "config-entry" } },
440
- "required": ["type"]
441
- },
442
- "then": { "required": ["selector", "target", "adapter"] },
443
- "else": { "not": { "required": ["selector"] } }
444
- },
445
- {
446
- "if": {
447
- "properties": { "type": { "const": "managed-section" } },
448
- "required": ["type"]
449
- },
450
- "then": { "required": ["sectionId", "target", "adapter"] },
451
- "else": { "not": { "required": ["sectionId"] } }
452
- }
453
- ]
454
245
  }
455
246
  }
456
247
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mano-coding",
3
- "version": "0.1.29",
3
+ "version": "0.1.31",
4
4
  "description": "Mano Coding CLI and toolchain",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -18,10 +18,6 @@
18
18
  ".": {
19
19
  "types": "./index.d.ts",
20
20
  "default": "./index.js"
21
- },
22
- "./sdk": {
23
- "types": "./dist/index.d.ts",
24
- "default": "./dist/index.js"
25
21
  }
26
22
  },
27
23
  "engines": {
@@ -28,7 +28,7 @@
28
28
  "type": "array",
29
29
  "items": {
30
30
  "type": "object",
31
- "required": ["id", "command"],
31
+ "required": ["id", "command", "on"],
32
32
  "properties": {
33
33
  "id": {
34
34
  "type": "string",
@@ -63,8 +63,20 @@
63
63
  },
64
64
  "on": {
65
65
  "type": "array",
66
+ "minItems": 1,
66
67
  "items": {
67
- "enum": ["before:create", "after:create", "before:apply", "after:apply"]
68
+ "enum": [
69
+ "before:create",
70
+ "after:create",
71
+ "before:apply",
72
+ "after:apply",
73
+ "before:sync",
74
+ "after:sync",
75
+ "before:upgrade",
76
+ "after:upgrade",
77
+ "before:remove",
78
+ "after:remove"
79
+ ]
68
80
  },
69
81
  "uniqueItems": true
70
82
  }