mano-coding 0.1.15

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.
@@ -0,0 +1,456 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "project-lock.schema.json",
4
+ "title": "Mano Coding Project Lock",
5
+ "type": "object",
6
+ "required": ["kind", "generatedBy", "desired", "resolved", "resources"],
7
+ "properties": {
8
+ "kind": { "const": "ProjectLock" },
9
+ "generatedBy": { "$ref": "#/$defs/generatedBy" },
10
+ "desired": { "$ref": "#/$defs/desired" },
11
+ "resolved": { "$ref": "#/$defs/resolved" },
12
+ "resources": {
13
+ "type": "array",
14
+ "items": { "$ref": "#/$defs/resource" }
15
+ }
16
+ },
17
+ "additionalProperties": false,
18
+ "$defs": {
19
+ "packageName": {
20
+ "type": "string",
21
+ "pattern": "^(?:@[a-z0-9][a-z0-9._-]*/)?[a-z0-9][a-z0-9._-]*$",
22
+ "maxLength": 214
23
+ },
24
+ "localId": {
25
+ "type": "string",
26
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
27
+ "maxLength": 64
28
+ },
29
+ "semver": {
30
+ "type": "string",
31
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$"
32
+ },
33
+ "semverRange": {
34
+ "type": "string",
35
+ "minLength": 1,
36
+ "maxLength": 128
37
+ },
38
+ "projectPath": {
39
+ "type": "string",
40
+ "minLength": 1,
41
+ "maxLength": 512,
42
+ "pattern": "^(?![A-Za-z]:)(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)(?!.*//)(?!\\.?$).+$"
43
+ },
44
+ "integrity": {
45
+ "type": "string",
46
+ "pattern": "^(sha256|sha512)-[A-Za-z0-9+/]+={0,2}$",
47
+ "maxLength": 256
48
+ },
49
+ "digest": {
50
+ "type": "string",
51
+ "pattern": "^sha256:[a-f0-9]{64}$"
52
+ },
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": {
76
+ "type": "object",
77
+ "required": ["id", "scope"],
78
+ "properties": {
79
+ "id": { "$ref": "#/$defs/targetId" },
80
+ "scope": { "const": "project" }
81
+ },
82
+ "additionalProperties": false
83
+ },
84
+ "generatedBy": {
85
+ "type": "object",
86
+ "required": ["cliVersion"],
87
+ "properties": {
88
+ "cliVersion": { "$ref": "#/$defs/semver" }
89
+ },
90
+ "additionalProperties": false
91
+ },
92
+ "inputValues": {
93
+ "type": "object",
94
+ "additionalProperties": {
95
+ "type": ["string", "boolean", "number"]
96
+ }
97
+ },
98
+ "npmRequest": {
99
+ "type": "object",
100
+ "required": ["type"],
101
+ "properties": {
102
+ "type": { "const": "npm" },
103
+ "registry": { "type": "string", "format": "uri", "maxLength": 2048 }
104
+ },
105
+ "additionalProperties": false
106
+ },
107
+ "gitRequest": {
108
+ "type": "object",
109
+ "required": ["type", "url"],
110
+ "properties": {
111
+ "type": { "const": "git" },
112
+ "url": { "type": "string", "format": "uri", "maxLength": 2048 },
113
+ "ref": { "type": "string", "minLength": 1, "maxLength": 256 },
114
+ "subdirectory": { "$ref": "#/$defs/projectPath" }
115
+ },
116
+ "additionalProperties": false
117
+ },
118
+ "localRequest": {
119
+ "type": "object",
120
+ "required": ["type", "path"],
121
+ "properties": {
122
+ "type": { "const": "local" },
123
+ "path": { "$ref": "#/$defs/projectPath" }
124
+ },
125
+ "additionalProperties": false
126
+ },
127
+ "requestedSource": {
128
+ "oneOf": [
129
+ { "$ref": "#/$defs/npmRequest" },
130
+ { "$ref": "#/$defs/gitRequest" },
131
+ { "$ref": "#/$defs/localRequest" }
132
+ ]
133
+ },
134
+ "desiredPackage": {
135
+ "type": "object",
136
+ "required": ["id", "version", "source", "inputs"],
137
+ "properties": {
138
+ "id": { "$ref": "#/$defs/packageName" },
139
+ "version": { "$ref": "#/$defs/semverRange" },
140
+ "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" }
152
+ },
153
+ "additionalProperties": false
154
+ },
155
+ "desired": {
156
+ "type": "object",
157
+ "required": ["capabilities", "targets"],
158
+ "properties": {
159
+ "template": { "$ref": "#/$defs/desiredPackage" },
160
+ "templates": {
161
+ "type": "array",
162
+ "items": { "$ref": "#/$defs/desiredPackage" }
163
+ },
164
+ "addons": {
165
+ "type": "array",
166
+ "items": { "$ref": "#/$defs/desiredPackage" }
167
+ },
168
+ "capabilities": {
169
+ "type": "array",
170
+ "items": { "$ref": "#/$defs/desiredCapability" }
171
+ },
172
+ "targets": {
173
+ "type": "array",
174
+ "minItems": 1,
175
+ "items": { "$ref": "#/$defs/targetRef" }
176
+ }
177
+ },
178
+ "anyOf": [
179
+ { "required": ["templates"] },
180
+ { "required": ["template"] },
181
+ { "properties": { "addons": { "minItems": 1 } } }
182
+ ],
183
+ "additionalProperties": false
184
+ },
185
+ "resolvedNpmSource": {
186
+ "type": "object",
187
+ "required": ["type", "registry", "tarball"],
188
+ "properties": {
189
+ "type": { "const": "npm" },
190
+ "registry": { "type": "string", "format": "uri", "maxLength": 2048 },
191
+ "tarball": { "type": "string", "format": "uri", "maxLength": 2048 }
192
+ },
193
+ "additionalProperties": false
194
+ },
195
+ "resolvedGitSource": {
196
+ "type": "object",
197
+ "required": ["type", "url", "commit"],
198
+ "properties": {
199
+ "type": { "const": "git" },
200
+ "url": { "type": "string", "format": "uri", "maxLength": 2048 },
201
+ "commit": { "type": "string", "pattern": "^[a-fA-F0-9]{40,64}$" },
202
+ "subdirectory": { "$ref": "#/$defs/projectPath" }
203
+ },
204
+ "additionalProperties": false
205
+ },
206
+ "resolvedLocalSource": {
207
+ "type": "object",
208
+ "required": ["type", "path"],
209
+ "properties": {
210
+ "type": { "const": "local" },
211
+ "path": { "$ref": "#/$defs/projectPath" }
212
+ },
213
+ "additionalProperties": false
214
+ },
215
+ "resolvedSource": {
216
+ "oneOf": [
217
+ { "$ref": "#/$defs/resolvedNpmSource" },
218
+ { "$ref": "#/$defs/resolvedGitSource" },
219
+ { "$ref": "#/$defs/resolvedLocalSource" }
220
+ ]
221
+ },
222
+ "resolvedPackage": {
223
+ "type": "object",
224
+ "required": ["id", "version", "source", "integrity"],
225
+ "properties": {
226
+ "id": { "$ref": "#/$defs/packageName" },
227
+ "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" }
333
+ },
334
+ "additionalProperties": false
335
+ },
336
+ "resolved": {
337
+ "type": "object",
338
+ "required": ["projects", "capabilities", "plugins", "targets"],
339
+ "properties": {
340
+ "template": { "$ref": "#/$defs/resolvedPackage" },
341
+ "templates": {
342
+ "type": "array",
343
+ "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
+ }
366
+ },
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
+ "additionalProperties": false
382
+ },
383
+ "objectOwner": {
384
+ "type": "object",
385
+ "required": ["kind", "packageId", "id"],
386
+ "properties": {
387
+ "kind": { "enum": ["project", "capability", "plugin"] },
388
+ "packageId": { "$ref": "#/$defs/packageName" },
389
+ "id": { "$ref": "#/$defs/localId" }
390
+ },
391
+ "additionalProperties": false
392
+ },
393
+ "owner": {
394
+ "oneOf": [
395
+ { "$ref": "#/$defs/packageOwner" },
396
+ { "$ref": "#/$defs/objectOwner" }
397
+ ]
398
+ },
399
+ "resourceCommon": {
400
+ "type": "object",
401
+ "required": ["type", "path", "digest", "owners"],
402
+ "properties": {
403
+ "type": { "enum": ["file", "config-entry", "managed-section"] },
404
+ "path": { "$ref": "#/$defs/projectPath" },
405
+ "digest": { "$ref": "#/$defs/digest" },
406
+ "owners": {
407
+ "type": "array",
408
+ "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 }
431
+ },
432
+ "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
+ }
455
+ }
456
+ }
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "registry-entry.schema.json",
4
+ "title": "Mano Coding Registry Entry",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "required": ["metadata", "releases"],
8
+ "properties": {
9
+ "kind": { "type": "string" },
10
+ "metadata": { "$ref": "#/$defs/metadata" },
11
+ "releases": {
12
+ "type": "array",
13
+ "minItems": 1,
14
+ "items": { "$ref": "#/$defs/release" }
15
+ }
16
+ },
17
+ "$defs": {
18
+ "packageName": {
19
+ "type": "string",
20
+ "pattern": "^(?:@[a-z0-9][a-z0-9._-]*/)?[a-z0-9][a-z0-9._-]*$"
21
+ },
22
+ "semver": {
23
+ "type": "string",
24
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
25
+ },
26
+ "metadata": {
27
+ "type": "object",
28
+ "additionalProperties": true,
29
+ "required": ["id"],
30
+ "properties": {
31
+ "id": { "$ref": "#/$defs/packageName" },
32
+ "name": { "type": "string", "minLength": 1, "maxLength": 80 },
33
+ "displayName": { "type": "string", "minLength": 1, "maxLength": 80 },
34
+ "description": { "type": "string", "maxLength": 500 }
35
+ }
36
+ },
37
+ "gitSource": {
38
+ "type": "object",
39
+ "additionalProperties": true,
40
+ "required": ["type"],
41
+ "properties": {
42
+ "type": { "const": "git" },
43
+ "url": { "type": "string" },
44
+ "ref": { "type": "string" },
45
+ "commit": { "type": "string" },
46
+ "subdirectory": { "type": "string" }
47
+ }
48
+ },
49
+ "npmSource": {
50
+ "type": "object",
51
+ "additionalProperties": true,
52
+ "required": ["type"],
53
+ "properties": {
54
+ "type": { "const": "npm" },
55
+ "registry": { "type": "string", "format": "uri" },
56
+ "tarball": { "type": "string", "format": "uri" }
57
+ }
58
+ },
59
+ "deprecation": {
60
+ "type": "object",
61
+ "additionalProperties": true,
62
+ "required": ["message"],
63
+ "properties": {
64
+ "message": { "type": "string", "minLength": 1, "maxLength": 500 },
65
+ "replacement": { "$ref": "#/$defs/packageName" }
66
+ }
67
+ },
68
+ "release": {
69
+ "type": "object",
70
+ "additionalProperties": true,
71
+ "required": ["version", "source"],
72
+ "properties": {
73
+ "version": { "$ref": "#/$defs/semver" },
74
+ "publishedAt": { "type": "string", "format": "date-time" },
75
+ "source": {
76
+ "oneOf": [
77
+ { "type": "string", "minLength": 1 },
78
+ { "$ref": "#/$defs/gitSource" },
79
+ { "$ref": "#/$defs/npmSource" }
80
+ ]
81
+ },
82
+ "deprecation": { "$ref": "#/$defs/deprecation" }
83
+ }
84
+ }
85
+ }
86
+ }
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/index.d.ts';
package/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/index.js';
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "mano-coding",
3
+ "version": "0.1.15",
4
+ "description": "Mano Coding CLI and toolchain",
5
+ "type": "module",
6
+ "main": "index.js",
7
+ "files": [
8
+ "bin",
9
+ "dist",
10
+ "schemas",
11
+ "index.js",
12
+ "index.d.ts"
13
+ ],
14
+ "bin": {
15
+ "mano-coding": "./bin/mano-coding.js"
16
+ },
17
+ "exports": {
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "default": "./index.js"
21
+ },
22
+ "./sdk": {
23
+ "types": "./dist/index.d.ts",
24
+ "default": "./dist/index.js"
25
+ }
26
+ },
27
+ "engines": {
28
+ "node": ">=22"
29
+ },
30
+ "devDependencies": {
31
+ "@eslint/js": "^9.20.0",
32
+ "@types/node": "^22.13.0",
33
+ "esbuild": "^0.25.0",
34
+ "eslint": "^9.20.0",
35
+ "prettier": "^3.5.0",
36
+ "tar": "^7.4.3",
37
+ "typescript": "^5.7.3",
38
+ "typescript-eslint": "^8.24.0",
39
+ "vitest": "^3.0.5"
40
+ },
41
+ "scripts": {
42
+ "build:bundle": "node scripts/build-bundle.mjs",
43
+ "build": "pnpm -r build && pnpm build:bundle",
44
+ "test": "vitest -c vitest.config.ts",
45
+ "test:run": "vitest run -c vitest.config.ts",
46
+ "lint": "eslint .",
47
+ "format": "prettier --write .",
48
+ "typecheck": "pnpm -r typecheck",
49
+ "release:smoke": "node scripts/pack-smoke.mjs",
50
+ "release:metadata": "node scripts/release-metadata.mjs",
51
+ "release:check": "pnpm release:metadata",
52
+ "release:prepare": "node scripts/prepare-single-package-release.mjs",
53
+ "release:verify": "node scripts/verify-published-release.mjs"
54
+ }
55
+ }