@kb-labs/devlink-entry 2.104.0 → 2.106.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 (2) hide show
  1. package/dist/manifest.json +405 -0
  2. 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.104.0",
4
+ "version": "2.106.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/sdk": "2.22.0",
25
- "@kb-labs/devlink-core": "2.104.0",
26
- "@kb-labs/devlink-contracts": "2.104.0"
35
+ "@kb-labs/devlink-contracts": "^2.106.0",
36
+ "@kb-labs/devlink-core": "^2.106.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
- "scripts": {
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
+ }