@kb-labs/devlink-entry 2.104.0 → 2.105.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.
- package/dist/manifest.json +405 -0
- package/package.json +19 -19
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "kb.plugin/3",
|
|
3
|
+
"id": "@kb-labs/devlink",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"display": {
|
|
6
|
+
"name": "DevLink",
|
|
7
|
+
"description": "Cross-repo link: dependency management",
|
|
8
|
+
"tags": [
|
|
9
|
+
"monorepo",
|
|
10
|
+
"devlink",
|
|
11
|
+
"dependencies",
|
|
12
|
+
"publish",
|
|
13
|
+
"local-dev"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"platform": {
|
|
17
|
+
"requires": [
|
|
18
|
+
"storage"
|
|
19
|
+
],
|
|
20
|
+
"optional": []
|
|
21
|
+
},
|
|
22
|
+
"cli": {
|
|
23
|
+
"groupMeta": [
|
|
24
|
+
{
|
|
25
|
+
"path": "devlink",
|
|
26
|
+
"describe": "Cross-repo link: dependency management"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"commands": [
|
|
30
|
+
{
|
|
31
|
+
"path": "devlink switch",
|
|
32
|
+
"category": "Mode",
|
|
33
|
+
"describe": "Switch deps between local link: and npm (CI/CD) mode",
|
|
34
|
+
"operationType": "mutate",
|
|
35
|
+
"longDescription": "Replaces all cross-repo @kb-labs/* dependencies across monorepos. Creates a backup before applying. Run pnpm install after switching.",
|
|
36
|
+
"handler": "./cli/commands/switch.js#default",
|
|
37
|
+
"flags": [
|
|
38
|
+
{
|
|
39
|
+
"name": "mode",
|
|
40
|
+
"type": "string",
|
|
41
|
+
"alias": "m",
|
|
42
|
+
"description": "Linking mode: local (link:), npm (^version), auto",
|
|
43
|
+
"choices": [
|
|
44
|
+
"local",
|
|
45
|
+
"npm",
|
|
46
|
+
"auto"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "dry-run",
|
|
51
|
+
"type": "boolean",
|
|
52
|
+
"alias": "d",
|
|
53
|
+
"default": false,
|
|
54
|
+
"description": "Preview changes without applying them"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "repos",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"alias": "r",
|
|
60
|
+
"description": "Comma-separated list of repos to scope (e.g. kb-labs-cli,kb-labs-core)"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "yes",
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"alias": "y",
|
|
66
|
+
"default": false,
|
|
67
|
+
"description": "Skip confirmation prompt"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "json",
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"default": false,
|
|
73
|
+
"description": "Output as JSON"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "ttl",
|
|
77
|
+
"type": "number",
|
|
78
|
+
"default": 24,
|
|
79
|
+
"description": "npm registry cache TTL in hours (default: 24)"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"examples": [
|
|
83
|
+
"devlink switch --mode=npm # Switch to npm mode (CI/CD)",
|
|
84
|
+
"devlink switch --mode=local # Switch to local mode (development)",
|
|
85
|
+
"devlink switch --mode=local --dry-run # Preview changes without applying",
|
|
86
|
+
"devlink switch --mode=npm --repos=kb-labs-cli,kb-labs-core # Switch specific repos only"
|
|
87
|
+
],
|
|
88
|
+
"permissions": {
|
|
89
|
+
"fs": {
|
|
90
|
+
"read": [
|
|
91
|
+
"**/package.json",
|
|
92
|
+
".kb/devlink/**",
|
|
93
|
+
"**/pnpm-workspace.yaml"
|
|
94
|
+
],
|
|
95
|
+
"write": [
|
|
96
|
+
"**/package.json",
|
|
97
|
+
".kb/devlink/**",
|
|
98
|
+
"**/pnpm-workspace.yaml"
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"platform": {
|
|
102
|
+
"cache": {
|
|
103
|
+
"namespaces": [
|
|
104
|
+
"devlink:"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"quotas": {
|
|
109
|
+
"timeoutMs": 1800000,
|
|
110
|
+
"memoryMb": 512
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"path": "devlink status",
|
|
116
|
+
"category": "Mode",
|
|
117
|
+
"describe": "Show current state of cross-repo dependencies",
|
|
118
|
+
"operationType": "read",
|
|
119
|
+
"longDescription": "Displays the current linking mode, counts of link: vs npm dependencies, and any discrepancies across all monorepos.",
|
|
120
|
+
"handler": "./cli/commands/status.js#default",
|
|
121
|
+
"flags": [
|
|
122
|
+
{
|
|
123
|
+
"name": "json",
|
|
124
|
+
"type": "boolean",
|
|
125
|
+
"default": false,
|
|
126
|
+
"description": "Output as JSON"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "verbose",
|
|
130
|
+
"type": "boolean",
|
|
131
|
+
"alias": "v",
|
|
132
|
+
"default": false,
|
|
133
|
+
"description": "Show all dependencies, not just cross-repo"
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
"examples": [
|
|
137
|
+
"devlink status # Show summary status",
|
|
138
|
+
"devlink status --verbose # Verbose output with all deps",
|
|
139
|
+
"devlink status --json # JSON output for scripting"
|
|
140
|
+
],
|
|
141
|
+
"permissions": {
|
|
142
|
+
"fs": {
|
|
143
|
+
"read": [
|
|
144
|
+
"**/package.json",
|
|
145
|
+
".kb/devlink/**",
|
|
146
|
+
"**/pnpm-workspace.yaml"
|
|
147
|
+
],
|
|
148
|
+
"write": [
|
|
149
|
+
"**/package.json",
|
|
150
|
+
".kb/devlink/**",
|
|
151
|
+
"**/pnpm-workspace.yaml"
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
"platform": {
|
|
155
|
+
"cache": {
|
|
156
|
+
"namespaces": [
|
|
157
|
+
"devlink:"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"quotas": {
|
|
162
|
+
"timeoutMs": 1800000,
|
|
163
|
+
"memoryMb": 512
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"path": "devlink plan",
|
|
169
|
+
"category": "Mode",
|
|
170
|
+
"describe": "Preview what would change when switching mode",
|
|
171
|
+
"operationType": "read",
|
|
172
|
+
"longDescription": "Shows all dependency changes that would be made without applying them. Useful for reviewing before running switch.",
|
|
173
|
+
"handler": "./cli/commands/plan.js#default",
|
|
174
|
+
"flags": [
|
|
175
|
+
{
|
|
176
|
+
"name": "mode",
|
|
177
|
+
"type": "string",
|
|
178
|
+
"alias": "m",
|
|
179
|
+
"description": "Target mode to plan for (defaults to opposite of current)",
|
|
180
|
+
"choices": [
|
|
181
|
+
"local",
|
|
182
|
+
"npm",
|
|
183
|
+
"auto"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "repos",
|
|
188
|
+
"type": "string",
|
|
189
|
+
"alias": "r",
|
|
190
|
+
"description": "Comma-separated list of repos to scope"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"name": "json",
|
|
194
|
+
"type": "boolean",
|
|
195
|
+
"default": false,
|
|
196
|
+
"description": "Output as JSON"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "ttl",
|
|
200
|
+
"type": "number",
|
|
201
|
+
"default": 24,
|
|
202
|
+
"description": "npm registry cache TTL in hours (default: 24)"
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
"examples": [
|
|
206
|
+
"devlink plan --mode=local # Plan switch to local mode",
|
|
207
|
+
"devlink plan --mode=npm # Plan switch to npm mode",
|
|
208
|
+
"devlink plan --mode=npm --json # JSON output for scripting"
|
|
209
|
+
],
|
|
210
|
+
"permissions": {
|
|
211
|
+
"fs": {
|
|
212
|
+
"read": [
|
|
213
|
+
"**/package.json",
|
|
214
|
+
".kb/devlink/**",
|
|
215
|
+
"**/pnpm-workspace.yaml"
|
|
216
|
+
],
|
|
217
|
+
"write": [
|
|
218
|
+
"**/package.json",
|
|
219
|
+
".kb/devlink/**",
|
|
220
|
+
"**/pnpm-workspace.yaml"
|
|
221
|
+
]
|
|
222
|
+
},
|
|
223
|
+
"platform": {
|
|
224
|
+
"cache": {
|
|
225
|
+
"namespaces": [
|
|
226
|
+
"devlink:"
|
|
227
|
+
]
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"quotas": {
|
|
231
|
+
"timeoutMs": 1800000,
|
|
232
|
+
"memoryMb": 512
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"path": "devlink freeze",
|
|
238
|
+
"category": "State",
|
|
239
|
+
"describe": "Freeze current dependency state to lock file",
|
|
240
|
+
"operationType": "mutate",
|
|
241
|
+
"longDescription": "Saves a snapshot of current dependency mode to .kb/devlink/lock.json. Use to record a stable known-good state.",
|
|
242
|
+
"handler": "./cli/commands/freeze.js#default",
|
|
243
|
+
"flags": [
|
|
244
|
+
{
|
|
245
|
+
"name": "json",
|
|
246
|
+
"type": "boolean",
|
|
247
|
+
"default": false,
|
|
248
|
+
"description": "Output as JSON"
|
|
249
|
+
}
|
|
250
|
+
],
|
|
251
|
+
"examples": [
|
|
252
|
+
"devlink freeze # Freeze current state",
|
|
253
|
+
"devlink freeze --json # JSON output"
|
|
254
|
+
],
|
|
255
|
+
"permissions": {
|
|
256
|
+
"fs": {
|
|
257
|
+
"read": [
|
|
258
|
+
"**/package.json",
|
|
259
|
+
".kb/devlink/**",
|
|
260
|
+
"**/pnpm-workspace.yaml"
|
|
261
|
+
],
|
|
262
|
+
"write": [
|
|
263
|
+
"**/package.json",
|
|
264
|
+
".kb/devlink/**",
|
|
265
|
+
"**/pnpm-workspace.yaml"
|
|
266
|
+
]
|
|
267
|
+
},
|
|
268
|
+
"platform": {
|
|
269
|
+
"cache": {
|
|
270
|
+
"namespaces": [
|
|
271
|
+
"devlink:"
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
"quotas": {
|
|
276
|
+
"timeoutMs": 1800000,
|
|
277
|
+
"memoryMb": 512
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"path": "devlink undo",
|
|
283
|
+
"category": "State",
|
|
284
|
+
"describe": "Restore previous dependency state from last backup",
|
|
285
|
+
"operationType": "mutate",
|
|
286
|
+
"longDescription": "Restores package.json files from the most recent backup created by switch. Run pnpm install after undoing.",
|
|
287
|
+
"handler": "./cli/commands/undo.js#default",
|
|
288
|
+
"flags": [
|
|
289
|
+
{
|
|
290
|
+
"name": "json",
|
|
291
|
+
"type": "boolean",
|
|
292
|
+
"default": false,
|
|
293
|
+
"description": "Output as JSON"
|
|
294
|
+
}
|
|
295
|
+
],
|
|
296
|
+
"examples": [
|
|
297
|
+
"devlink undo # Undo last switch",
|
|
298
|
+
"devlink undo --json # JSON output"
|
|
299
|
+
],
|
|
300
|
+
"permissions": {
|
|
301
|
+
"fs": {
|
|
302
|
+
"read": [
|
|
303
|
+
"**/package.json",
|
|
304
|
+
".kb/devlink/**",
|
|
305
|
+
"**/pnpm-workspace.yaml"
|
|
306
|
+
],
|
|
307
|
+
"write": [
|
|
308
|
+
"**/package.json",
|
|
309
|
+
".kb/devlink/**",
|
|
310
|
+
"**/pnpm-workspace.yaml"
|
|
311
|
+
]
|
|
312
|
+
},
|
|
313
|
+
"platform": {
|
|
314
|
+
"cache": {
|
|
315
|
+
"namespaces": [
|
|
316
|
+
"devlink:"
|
|
317
|
+
]
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"quotas": {
|
|
321
|
+
"timeoutMs": 1800000,
|
|
322
|
+
"memoryMb": 512
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"path": "devlink backups",
|
|
328
|
+
"category": "State",
|
|
329
|
+
"describe": "List and restore backups",
|
|
330
|
+
"operationType": "read",
|
|
331
|
+
"longDescription": "Lists all available backups. Use --restore <id> to restore a specific backup.",
|
|
332
|
+
"handler": "./cli/commands/backups.js#default",
|
|
333
|
+
"flags": [
|
|
334
|
+
{
|
|
335
|
+
"name": "restore",
|
|
336
|
+
"type": "string",
|
|
337
|
+
"alias": "r",
|
|
338
|
+
"description": "Restore a specific backup by ID"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"name": "json",
|
|
342
|
+
"type": "boolean",
|
|
343
|
+
"default": false,
|
|
344
|
+
"description": "Output as JSON"
|
|
345
|
+
}
|
|
346
|
+
],
|
|
347
|
+
"examples": [
|
|
348
|
+
"devlink backups # List all backups",
|
|
349
|
+
"devlink backups --json # JSON output",
|
|
350
|
+
"devlink backups --restore=<backup-id> # Restore specific backup"
|
|
351
|
+
],
|
|
352
|
+
"permissions": {
|
|
353
|
+
"fs": {
|
|
354
|
+
"read": [
|
|
355
|
+
"**/package.json",
|
|
356
|
+
".kb/devlink/**",
|
|
357
|
+
"**/pnpm-workspace.yaml"
|
|
358
|
+
],
|
|
359
|
+
"write": [
|
|
360
|
+
"**/package.json",
|
|
361
|
+
".kb/devlink/**",
|
|
362
|
+
"**/pnpm-workspace.yaml"
|
|
363
|
+
]
|
|
364
|
+
},
|
|
365
|
+
"platform": {
|
|
366
|
+
"cache": {
|
|
367
|
+
"namespaces": [
|
|
368
|
+
"devlink:"
|
|
369
|
+
]
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
"quotas": {
|
|
373
|
+
"timeoutMs": 1800000,
|
|
374
|
+
"memoryMb": 512
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
]
|
|
379
|
+
},
|
|
380
|
+
"permissions": {
|
|
381
|
+
"fs": {
|
|
382
|
+
"read": [
|
|
383
|
+
"**/package.json",
|
|
384
|
+
".kb/devlink/**",
|
|
385
|
+
"**/pnpm-workspace.yaml"
|
|
386
|
+
],
|
|
387
|
+
"write": [
|
|
388
|
+
"**/package.json",
|
|
389
|
+
".kb/devlink/**",
|
|
390
|
+
"**/pnpm-workspace.yaml"
|
|
391
|
+
]
|
|
392
|
+
},
|
|
393
|
+
"platform": {
|
|
394
|
+
"cache": {
|
|
395
|
+
"namespaces": [
|
|
396
|
+
"devlink:"
|
|
397
|
+
]
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
"quotas": {
|
|
401
|
+
"timeoutMs": 1800000,
|
|
402
|
+
"memoryMb": 512
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/devlink-entry",
|
|
3
3
|
"description": "CLI commands and manifest for DevLink plugin.",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.105.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -20,19 +20,30 @@
|
|
|
20
20
|
"dist",
|
|
21
21
|
"README.md"
|
|
22
22
|
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsup --config tsup.config.ts",
|
|
25
|
+
"clean": "rimraf dist",
|
|
26
|
+
"dev": "tsup --config tsup.config.ts --watch",
|
|
27
|
+
"lint": "eslint src --ext .ts",
|
|
28
|
+
"lint:fix": "eslint . --fix",
|
|
29
|
+
"test": "vitest run --passWithNoTests",
|
|
30
|
+
"test:cli": "vitest run --config vitest.cli.config.ts --passWithNoTests",
|
|
31
|
+
"test:watch": "vitest",
|
|
32
|
+
"type-check": "tsc --noEmit"
|
|
33
|
+
},
|
|
23
34
|
"dependencies": {
|
|
24
|
-
"@kb-labs/
|
|
25
|
-
"@kb-labs/devlink-core": "2.
|
|
26
|
-
"@kb-labs/
|
|
35
|
+
"@kb-labs/devlink-contracts": "^2.105.0",
|
|
36
|
+
"@kb-labs/devlink-core": "^2.105.0",
|
|
37
|
+
"@kb-labs/sdk": "workspace:*"
|
|
27
38
|
},
|
|
28
39
|
"devDependencies": {
|
|
40
|
+
"@kb-labs/devkit": "workspace:*",
|
|
29
41
|
"@types/node": "^24.3.3",
|
|
30
42
|
"eslint": "^9",
|
|
31
43
|
"rimraf": "^6.0.1",
|
|
32
44
|
"tsup": "^8.5.0",
|
|
33
45
|
"typescript": "^5.6.3",
|
|
34
|
-
"vitest": "^3.2.6"
|
|
35
|
-
"@kb-labs/devkit": "2.104.0"
|
|
46
|
+
"vitest": "^3.2.6"
|
|
36
47
|
},
|
|
37
48
|
"engines": {
|
|
38
49
|
"node": ">=20.0.0",
|
|
@@ -41,16 +52,5 @@
|
|
|
41
52
|
"kb": {
|
|
42
53
|
"manifest": "./dist/manifest.js"
|
|
43
54
|
},
|
|
44
|
-
"sideEffects": false
|
|
45
|
-
|
|
46
|
-
"build": "tsup --config tsup.config.ts",
|
|
47
|
-
"clean": "rimraf dist",
|
|
48
|
-
"dev": "tsup --config tsup.config.ts --watch",
|
|
49
|
-
"lint": "eslint src --ext .ts",
|
|
50
|
-
"lint:fix": "eslint . --fix",
|
|
51
|
-
"test": "vitest run --passWithNoTests",
|
|
52
|
-
"test:cli": "vitest run --config vitest.cli.config.ts --passWithNoTests",
|
|
53
|
-
"test:watch": "vitest",
|
|
54
|
-
"type-check": "tsc --noEmit"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
55
|
+
"sideEffects": false
|
|
56
|
+
}
|