@kb-labs/release-manager-cli 0.5.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 (133) hide show
  1. package/README.md +211 -0
  2. package/dist/cli/commands/changelog.d.ts +17 -0
  3. package/dist/cli/commands/changelog.js +156 -0
  4. package/dist/cli/commands/changelog.js.map +1 -0
  5. package/dist/cli/commands/plan.d.ts +12 -0
  6. package/dist/cli/commands/plan.js +117 -0
  7. package/dist/cli/commands/plan.js.map +1 -0
  8. package/dist/cli/commands/publish.d.ts +15 -0
  9. package/dist/cli/commands/publish.js +486 -0
  10. package/dist/cli/commands/publish.js.map +1 -0
  11. package/dist/cli/commands/report.d.ts +9 -0
  12. package/dist/cli/commands/report.js +77 -0
  13. package/dist/cli/commands/report.js.map +1 -0
  14. package/dist/cli/commands/rollback.d.ts +9 -0
  15. package/dist/cli/commands/rollback.js +42 -0
  16. package/dist/cli/commands/rollback.js.map +1 -0
  17. package/dist/cli/commands/run.d.ts +16 -0
  18. package/dist/cli/commands/run.js +539 -0
  19. package/dist/cli/commands/run.js.map +1 -0
  20. package/dist/cli/commands/verify.d.ts +14 -0
  21. package/dist/cli/commands/verify.js +106 -0
  22. package/dist/cli/commands/verify.js.map +1 -0
  23. package/dist/contracts/release.schema.d.ts +503 -0
  24. package/dist/contracts/release.schema.js +45 -0
  25. package/dist/contracts/release.schema.js.map +1 -0
  26. package/dist/index.d.ts +76 -0
  27. package/dist/index.js +689 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/manifest.d.ts +292 -0
  30. package/dist/manifest.js +604 -0
  31. package/dist/manifest.js.map +1 -0
  32. package/dist/rest/handlers/build-handler.d.ts +20 -0
  33. package/dist/rest/handlers/build-handler.js +68 -0
  34. package/dist/rest/handlers/build-handler.js.map +1 -0
  35. package/dist/rest/handlers/changelog-generate-handler.d.ts +20 -0
  36. package/dist/rest/handlers/changelog-generate-handler.js +169 -0
  37. package/dist/rest/handlers/changelog-generate-handler.js.map +1 -0
  38. package/dist/rest/handlers/changelog-handler.d.ts +16 -0
  39. package/dist/rest/handlers/changelog-handler.js +50 -0
  40. package/dist/rest/handlers/changelog-handler.js.map +1 -0
  41. package/dist/rest/handlers/changelog-save-handler.d.ts +13 -0
  42. package/dist/rest/handlers/changelog-save-handler.js +42 -0
  43. package/dist/rest/handlers/changelog-save-handler.js.map +1 -0
  44. package/dist/rest/handlers/checklist-handler.d.ts +39 -0
  45. package/dist/rest/handlers/checklist-handler.js +155 -0
  46. package/dist/rest/handlers/checklist-handler.js.map +1 -0
  47. package/dist/rest/handlers/generate-handler.d.ts +35 -0
  48. package/dist/rest/handlers/generate-handler.js +206 -0
  49. package/dist/rest/handlers/generate-handler.js.map +1 -0
  50. package/dist/rest/handlers/get-checks-handler.d.ts +15 -0
  51. package/dist/rest/handlers/get-checks-handler.js +22 -0
  52. package/dist/rest/handlers/get-checks-handler.js.map +1 -0
  53. package/dist/rest/handlers/git-timeline-handler.d.ts +26 -0
  54. package/dist/rest/handlers/git-timeline-handler.js +209 -0
  55. package/dist/rest/handlers/git-timeline-handler.js.map +1 -0
  56. package/dist/rest/handlers/history-changelog-handler.d.ts +14 -0
  57. package/dist/rest/handlers/history-changelog-handler.js +34 -0
  58. package/dist/rest/handlers/history-changelog-handler.js.map +1 -0
  59. package/dist/rest/handlers/history-handler.d.ts +20 -0
  60. package/dist/rest/handlers/history-handler.js +75 -0
  61. package/dist/rest/handlers/history-handler.js.map +1 -0
  62. package/dist/rest/handlers/history-plan-handler.d.ts +30 -0
  63. package/dist/rest/handlers/history-plan-handler.js +34 -0
  64. package/dist/rest/handlers/history-plan-handler.js.map +1 -0
  65. package/dist/rest/handlers/history-report-handler.d.ts +64 -0
  66. package/dist/rest/handlers/history-report-handler.js +34 -0
  67. package/dist/rest/handlers/history-report-handler.js.map +1 -0
  68. package/dist/rest/handlers/plan-handler.d.ts +29 -0
  69. package/dist/rest/handlers/plan-handler.js +75 -0
  70. package/dist/rest/handlers/plan-handler.js.map +1 -0
  71. package/dist/rest/handlers/preview-handler.d.ts +26 -0
  72. package/dist/rest/handlers/preview-handler.js +127 -0
  73. package/dist/rest/handlers/preview-handler.js.map +1 -0
  74. package/dist/rest/handlers/report-handler.d.ts +65 -0
  75. package/dist/rest/handlers/report-handler.js +48 -0
  76. package/dist/rest/handlers/report-handler.js.map +1 -0
  77. package/dist/rest/handlers/reset-handler.d.ts +12 -0
  78. package/dist/rest/handlers/reset-handler.js +38 -0
  79. package/dist/rest/handlers/reset-handler.js.map +1 -0
  80. package/dist/rest/handlers/run-checks-handler.d.ts +20 -0
  81. package/dist/rest/handlers/run-checks-handler.js +58 -0
  82. package/dist/rest/handlers/run-checks-handler.js.map +1 -0
  83. package/dist/rest/handlers/run-handler.d.ts +68 -0
  84. package/dist/rest/handlers/run-handler.js +274 -0
  85. package/dist/rest/handlers/run-handler.js.map +1 -0
  86. package/dist/rest/handlers/scopes-handler.d.ts +20 -0
  87. package/dist/rest/handlers/scopes-handler.js +63 -0
  88. package/dist/rest/handlers/scopes-handler.js.map +1 -0
  89. package/dist/rest/handlers/status-handler.d.ts +24 -0
  90. package/dist/rest/handlers/status-handler.js +120 -0
  91. package/dist/rest/handlers/status-handler.js.map +1 -0
  92. package/dist/setup/handler.d.ts +19 -0
  93. package/dist/setup/handler.js +103 -0
  94. package/dist/setup/handler.js.map +1 -0
  95. package/dist/widgets/220.js +446 -0
  96. package/dist/widgets/220.js.map +1 -0
  97. package/dist/widgets/331.js +2 -0
  98. package/dist/widgets/331.js.map +1 -0
  99. package/dist/widgets/403.js +2 -0
  100. package/dist/widgets/403.js.map +1 -0
  101. package/dist/widgets/406.js +35 -0
  102. package/dist/widgets/406.js.map +1 -0
  103. package/dist/widgets/455.js +2 -0
  104. package/dist/widgets/455.js.map +1 -0
  105. package/dist/widgets/482.js +2 -0
  106. package/dist/widgets/482.js.map +1 -0
  107. package/dist/widgets/485.js +2 -0
  108. package/dist/widgets/485.js.map +1 -0
  109. package/dist/widgets/527.js +2 -0
  110. package/dist/widgets/527.js.map +1 -0
  111. package/dist/widgets/628.js +2 -0
  112. package/dist/widgets/628.js.map +1 -0
  113. package/dist/widgets/694.js +2 -0
  114. package/dist/widgets/694.js.map +1 -0
  115. package/dist/widgets/712.js +2 -0
  116. package/dist/widgets/712.js.map +1 -0
  117. package/dist/widgets/866.js +2 -0
  118. package/dist/widgets/866.js.map +1 -0
  119. package/dist/widgets/915.js +39 -0
  120. package/dist/widgets/915.js.map +1 -0
  121. package/dist/widgets/957.js +10 -0
  122. package/dist/widgets/957.js.map +1 -0
  123. package/dist/widgets/983.js +2 -0
  124. package/dist/widgets/983.js.map +1 -0
  125. package/dist/widgets/@mf-types.d.ts +3 -0
  126. package/dist/widgets/@mf-types.zip +0 -0
  127. package/dist/widgets/__federation_expose_ReleasePage.js +2 -0
  128. package/dist/widgets/__federation_expose_ReleasePage.js.map +1 -0
  129. package/dist/widgets/mf-manifest.json +260 -0
  130. package/dist/widgets/mf-stats.json +302 -0
  131. package/dist/widgets/remoteEntry.js +7 -0
  132. package/dist/widgets/remoteEntry.js.map +1 -0
  133. package/package.json +81 -0
@@ -0,0 +1,604 @@
1
+ import { combinePermissions, gitWorkflowPreset, kbPlatformPreset, npmPublishPreset, ciEnvironmentPreset, defineCommandFlags } from '@kb-labs/sdk';
2
+ import { RELEASE_CACHE_PREFIX, RELEASE_ROUTES, RELEASE_BASE_PATH } from '@kb-labs/release-manager-contracts';
3
+
4
+ // src/manifest.ts
5
+ var pluginPermissions = combinePermissions().with(gitWorkflowPreset).with(kbPlatformPreset).with(npmPublishPreset).with(ciEnvironmentPreset).withEnv(["KB_RELEASE_*", "NODE_ENV"]).withFs({
6
+ mode: "readWrite",
7
+ allow: [
8
+ ".kb/release/**",
9
+ "package.json",
10
+ "**/package.json",
11
+ "pnpm-workspace.yaml",
12
+ "**/*.yml",
13
+ "**/*.yaml",
14
+ "CHANGELOG.md",
15
+ "**/CHANGELOG.md"
16
+ ]
17
+ // Note: deny patterns (*.key, *.secret, node_modules) are enforced by platform
18
+ }).withShell({
19
+ allow: ["git", "npm"]
20
+ // git: timeline/tagging/commits, npm: publish packages
21
+ }).withPlatform({
22
+ cache: [RELEASE_CACHE_PREFIX],
23
+ // Cache namespace prefix for plan/changelog caching
24
+ llm: true,
25
+ // LLM for changelog generation
26
+ analytics: true
27
+ // Track release events
28
+ }).withQuotas({
29
+ timeoutMs: 6e5,
30
+ // 10 min for complex releases
31
+ memoryMb: 2048,
32
+ cpuMs: 3e5
33
+ // 5 min CPU time
34
+ }).build();
35
+ var manifest = {
36
+ schema: "kb.plugin/3",
37
+ id: "@kb-labs/release",
38
+ version: "0.1.0",
39
+ display: {
40
+ name: "Release Manager",
41
+ description: "Plan, execute, and audit releases across your workspace.",
42
+ tags: ["release", "publish", "versioning"]
43
+ },
44
+ // Platform requirements
45
+ platform: {
46
+ requires: ["storage", "cache"],
47
+ // cache required for plan/changelog caching
48
+ optional: ["llm", "analytics", "logger"]
49
+ },
50
+ // Setup handler - V3 pattern
51
+ setup: {
52
+ handler: "./setup/handler.js#default",
53
+ handlerPath: "./setup/handler.js",
54
+ describe: "Prepare the .kb/release workspace (plans, reports, backups)."
55
+ },
56
+ // CLI commands - V3 format
57
+ cli: {
58
+ commands: [
59
+ // release:plan - Analyze changes and prepare release plan
60
+ {
61
+ id: "release:plan",
62
+ group: "release",
63
+ describe: "Analyze changes and prepare release plan",
64
+ longDescription: "Detect modified packages and compute version bumps based on changes",
65
+ handler: "./cli/commands/plan.js#default",
66
+ handlerPath: "./cli/commands/plan.js",
67
+ flags: defineCommandFlags({
68
+ scope: { type: "string", description: "Package scope (glob pattern)" },
69
+ bump: {
70
+ type: "string",
71
+ choices: ["patch", "minor", "major", "auto"],
72
+ default: "auto",
73
+ description: "Version bump strategy"
74
+ },
75
+ json: { type: "boolean", description: "Print plan as JSON" }
76
+ }),
77
+ examples: [
78
+ "kb release plan",
79
+ "kb release plan --scope packages/*",
80
+ "kb release plan --bump minor",
81
+ "kb release plan --json"
82
+ ]
83
+ },
84
+ // release:run - Execute release process
85
+ {
86
+ id: "release:run",
87
+ group: "release",
88
+ describe: "Execute release process (plan, check, publish)",
89
+ longDescription: "Run full release: plan versions, run checks, publish packages",
90
+ handler: "./cli/commands/run.js#default",
91
+ handlerPath: "./cli/commands/run.js",
92
+ flags: defineCommandFlags({
93
+ scope: { type: "string", description: "Package scope (glob pattern)" },
94
+ strict: { type: "boolean", description: "Fail on any check failure" },
95
+ "dry-run": { type: "boolean", description: "Simulate release without publishing" },
96
+ "skip-checks": { type: "boolean", description: "Skip pre-release checks" },
97
+ json: { type: "boolean", description: "Print result as JSON" }
98
+ }),
99
+ examples: [
100
+ "kb release run",
101
+ "kb release run --dry-run",
102
+ "kb release run --strict --json",
103
+ "kb release run --scope packages/core"
104
+ ]
105
+ },
106
+ // release:publish - Publish packages to npm
107
+ {
108
+ id: "release:publish",
109
+ group: "release",
110
+ describe: "Publish packages to npm registry with interactive OTP",
111
+ longDescription: "Smart npm publish with interactive 2FA support and better UX",
112
+ handler: "./cli/commands/publish.js#default",
113
+ handlerPath: "./cli/commands/publish.js",
114
+ flags: defineCommandFlags({
115
+ scope: { type: "string", description: "Package scope (glob pattern)" },
116
+ otp: { type: "string", description: "One-time password (optional, will prompt if needed)" },
117
+ "dry-run": { type: "boolean", description: "Simulate publish without actually publishing" },
118
+ tag: { type: "string", description: "NPM dist-tag (default: latest)" },
119
+ access: {
120
+ type: "string",
121
+ choices: ["public", "restricted"],
122
+ description: "Package access level"
123
+ },
124
+ token: { type: "string", description: "NPM auth token (overrides NPM_TOKEN env)" },
125
+ json: { type: "boolean", description: "Output in JSON format" }
126
+ }),
127
+ examples: [
128
+ "kb release publish",
129
+ "kb release publish --scope @kb-labs/core",
130
+ "kb release publish --otp 123456",
131
+ "kb release publish --dry-run",
132
+ "kb release publish --tag next --access public"
133
+ ]
134
+ },
135
+ // release:rollback - Rollback last release
136
+ {
137
+ id: "release:rollback",
138
+ group: "release",
139
+ describe: "Rollback last release",
140
+ longDescription: "Restore workspace state from backup snapshot",
141
+ handler: "./cli/commands/rollback.js#default",
142
+ handlerPath: "./cli/commands/rollback.js",
143
+ flags: defineCommandFlags({
144
+ json: { type: "boolean", description: "Output in JSON format" }
145
+ }),
146
+ examples: ["kb release rollback", "kb release rollback --json"]
147
+ },
148
+ // release:report - Show last release report
149
+ {
150
+ id: "release:report",
151
+ group: "release",
152
+ describe: "Show last release report",
153
+ longDescription: "Display the most recent release execution report",
154
+ handler: "./cli/commands/report.js#default",
155
+ handlerPath: "./cli/commands/report.js",
156
+ flags: defineCommandFlags({
157
+ json: { type: "boolean", description: "Output in JSON format" }
158
+ }),
159
+ examples: ["kb release report", "kb release report --json"]
160
+ },
161
+ // release:changelog - Generate changelog
162
+ {
163
+ id: "release:changelog",
164
+ group: "release",
165
+ describe: "Generate changelog from conventional commits",
166
+ longDescription: "Parse git history and generate changelog with conventional commits support",
167
+ handler: "./cli/commands/changelog.js#default",
168
+ handlerPath: "./cli/commands/changelog.js",
169
+ flags: defineCommandFlags({
170
+ scope: { type: "string", description: "Filter to specific package" },
171
+ from: { type: "string", description: "Start commit/tag" },
172
+ to: { type: "string", description: "End commit/tag (default: HEAD)" },
173
+ "since-tag": { type: "string", description: "Shorthand for --from <tag>" },
174
+ format: {
175
+ type: "string",
176
+ choices: ["json", "md", "both"],
177
+ default: "both",
178
+ description: "Output format"
179
+ },
180
+ level: {
181
+ type: "string",
182
+ choices: ["compact", "standard", "detailed"],
183
+ default: "standard",
184
+ description: "Detail level"
185
+ },
186
+ template: {
187
+ type: "string",
188
+ description: "Template name (builtin: corporate, corporate-ai, technical, compact) or custom path"
189
+ },
190
+ "breaking-only": { type: "boolean", description: "Show only breaking changes" },
191
+ include: { type: "string", description: "Comma-separated types to include" },
192
+ exclude: { type: "string", description: "Types to exclude" },
193
+ "workspace-only": { type: "boolean", description: "Only workspace changelog" },
194
+ "per-package": { type: "boolean", description: "Only per-package changelogs" },
195
+ force: { type: "boolean", description: "Skip audit gate" },
196
+ "allow-major": { type: "boolean", description: "Allow major bumps for experimental packages" },
197
+ preid: { type: "string", description: "Pre-release identifier (rc, beta, alpha)" }
198
+ }),
199
+ examples: [
200
+ "kb release changelog",
201
+ "kb release changelog --from v1.0.0",
202
+ "kb release changelog --format md --level detailed",
203
+ "kb release changelog --template corporate-ai",
204
+ "kb release changelog --template ./my-template.ts",
205
+ "kb release changelog --breaking-only"
206
+ ]
207
+ },
208
+ // release:verify - Validate release readiness
209
+ {
210
+ id: "release:verify",
211
+ group: "release",
212
+ describe: "Validate release readiness",
213
+ longDescription: "Validate release readiness via flag gates (packages, breaking changes, commit types)",
214
+ handler: "./cli/commands/verify.js#default",
215
+ handlerPath: "./cli/commands/verify.js",
216
+ flags: defineCommandFlags({
217
+ "fail-if-empty": { type: "boolean", description: "Fail if no version bumps needed" },
218
+ "fail-on-breaking": { type: "boolean", description: "Fail if breaking changes detected" },
219
+ "allow-types": {
220
+ type: "string",
221
+ description: "Comma-separated types required (e.g., feat,fix)"
222
+ },
223
+ json: { type: "boolean", description: "Output in JSON format" }
224
+ }),
225
+ examples: [
226
+ "kb release verify",
227
+ "kb release verify --fail-if-empty",
228
+ "kb release verify --allow-types feat,fix"
229
+ ]
230
+ }
231
+ ]
232
+ },
233
+ // REST API routes - V3 format (scope-based architecture)
234
+ rest: {
235
+ basePath: RELEASE_BASE_PATH,
236
+ routes: [
237
+ // GET /scopes - List available release scopes
238
+ {
239
+ method: "GET",
240
+ path: RELEASE_ROUTES.SCOPES,
241
+ handler: "./rest/handlers/scopes-handler.js#default",
242
+ handlerPath: "./rest/handlers/scopes-handler.js",
243
+ output: {
244
+ zod: "@kb-labs/release-manager-contracts#ScopesResponseSchema"
245
+ }
246
+ },
247
+ // GET /status - Get release status for a scope
248
+ {
249
+ method: "GET",
250
+ path: RELEASE_ROUTES.STATUS,
251
+ handler: "./rest/handlers/status-handler.js#default",
252
+ handlerPath: "./rest/handlers/status-handler.js",
253
+ output: {
254
+ zod: "@kb-labs/release-manager-contracts#StatusResponseSchema"
255
+ }
256
+ },
257
+ // GET /plan - Get current release plan for a scope
258
+ {
259
+ method: "GET",
260
+ path: RELEASE_ROUTES.PLAN,
261
+ handler: "./rest/handlers/plan-handler.js#default",
262
+ handlerPath: "./rest/handlers/plan-handler.js",
263
+ input: {
264
+ zod: "@kb-labs/release-manager-contracts#PlanInputSchema"
265
+ },
266
+ output: {
267
+ zod: "@kb-labs/release-manager-contracts#PlanResponseSchema"
268
+ }
269
+ },
270
+ // POST /generate - Generate release plan (LLM)
271
+ {
272
+ method: "POST",
273
+ path: RELEASE_ROUTES.GENERATE,
274
+ handler: "./rest/handlers/generate-handler.js#default",
275
+ handlerPath: "./rest/handlers/generate-handler.js",
276
+ input: {
277
+ zod: "@kb-labs/release-manager-contracts#GeneratePlanRequestSchema"
278
+ },
279
+ output: {
280
+ zod: "@kb-labs/release-manager-contracts#GeneratePlanResponseSchema"
281
+ },
282
+ timeoutMs: 12e4
283
+ // 2 minutes for LLM analysis
284
+ },
285
+ // DELETE /plan - Reset release plan
286
+ {
287
+ method: "DELETE",
288
+ path: RELEASE_ROUTES.RESET,
289
+ handler: "./rest/handlers/reset-handler.js#default",
290
+ handlerPath: "./rest/handlers/reset-handler.js",
291
+ input: {
292
+ zod: "@kb-labs/release-manager-contracts#ResetPlanRequestSchema"
293
+ },
294
+ output: {
295
+ zod: "@kb-labs/release-manager-contracts#ResetPlanResponseSchema"
296
+ }
297
+ },
298
+ // GET /changelog - Get changelog for a scope
299
+ {
300
+ method: "GET",
301
+ path: RELEASE_ROUTES.CHANGELOG,
302
+ handler: "./rest/handlers/changelog-handler.js#default",
303
+ handlerPath: "./rest/handlers/changelog-handler.js",
304
+ input: {
305
+ zod: "@kb-labs/release-manager-contracts#ChangelogInputSchema"
306
+ },
307
+ output: {
308
+ zod: "@kb-labs/release-manager-contracts#ChangelogResponseSchema"
309
+ }
310
+ },
311
+ // POST /changelog/generate - Generate changelog (LLM)
312
+ {
313
+ method: "POST",
314
+ path: RELEASE_ROUTES.CHANGELOG_GENERATE,
315
+ handler: "./rest/handlers/changelog-generate-handler.js#default",
316
+ handlerPath: "./rest/handlers/changelog-generate-handler.js",
317
+ input: {
318
+ zod: "@kb-labs/release-manager-contracts#GenerateChangelogRequestSchema"
319
+ },
320
+ output: {
321
+ zod: "@kb-labs/release-manager-contracts#GenerateChangelogResponseSchema"
322
+ },
323
+ timeoutMs: 12e4
324
+ // 2 minutes for LLM generation
325
+ },
326
+ // POST /changelog/save - Save edited changelog
327
+ {
328
+ method: "POST",
329
+ path: RELEASE_ROUTES.CHANGELOG_SAVE,
330
+ handler: "./rest/handlers/changelog-save-handler.js#default",
331
+ handlerPath: "./rest/handlers/changelog-save-handler.js",
332
+ input: {
333
+ zod: "@kb-labs/release-manager-contracts#SaveChangelogRequestSchema"
334
+ },
335
+ output: {
336
+ zod: "@kb-labs/release-manager-contracts#SaveChangelogResponseSchema"
337
+ }
338
+ },
339
+ // POST /run - Execute release process
340
+ {
341
+ method: "POST",
342
+ path: RELEASE_ROUTES.RUN,
343
+ handler: "./rest/handlers/run-handler.js#default",
344
+ handlerPath: "./rest/handlers/run-handler.js",
345
+ input: {
346
+ zod: "@kb-labs/release-manager-contracts#RunReleaseRequestSchema"
347
+ },
348
+ output: {
349
+ zod: "@kb-labs/release-manager-contracts#RunReleaseResponseSchema"
350
+ },
351
+ timeoutMs: 3e5
352
+ // 5 minutes for release execution
353
+ },
354
+ // GET /report - Get latest release report
355
+ {
356
+ method: "GET",
357
+ path: RELEASE_ROUTES.REPORT,
358
+ handler: "./rest/handlers/report-handler.js#default",
359
+ handlerPath: "./rest/handlers/report-handler.js",
360
+ output: {
361
+ zod: "@kb-labs/release-manager-contracts#ReportResponseSchema"
362
+ }
363
+ },
364
+ // GET /history - Get release history
365
+ {
366
+ method: "GET",
367
+ path: RELEASE_ROUTES.HISTORY,
368
+ handler: "./rest/handlers/history-handler.js#default",
369
+ handlerPath: "./rest/handlers/history-handler.js",
370
+ output: {
371
+ zod: "@kb-labs/release-manager-contracts#HistoryResponseSchema"
372
+ }
373
+ },
374
+ // GET /history/:id/report - Get historical release report
375
+ {
376
+ method: "GET",
377
+ path: RELEASE_ROUTES.HISTORY_REPORT,
378
+ handler: "./rest/handlers/history-report-handler.js#default",
379
+ handlerPath: "./rest/handlers/history-report-handler.js",
380
+ output: {
381
+ zod: "@kb-labs/release-manager-contracts#HistoryReportResponseSchema"
382
+ }
383
+ },
384
+ // GET /history/:id/plan - Get historical release plan
385
+ {
386
+ method: "GET",
387
+ path: RELEASE_ROUTES.HISTORY_PLAN,
388
+ handler: "./rest/handlers/history-plan-handler.js#default",
389
+ handlerPath: "./rest/handlers/history-plan-handler.js",
390
+ output: {
391
+ zod: "@kb-labs/release-manager-contracts#HistoryPlanResponseSchema"
392
+ }
393
+ },
394
+ // GET /history/:id/changelog - Get historical changelog
395
+ {
396
+ method: "GET",
397
+ path: RELEASE_ROUTES.HISTORY_CHANGELOG,
398
+ handler: "./rest/handlers/history-changelog-handler.js#default",
399
+ handlerPath: "./rest/handlers/history-changelog-handler.js",
400
+ output: {
401
+ zod: "@kb-labs/release-manager-contracts#HistoryChangelogResponseSchema"
402
+ }
403
+ },
404
+ // GET /git-timeline - Get git commit timeline and version preview
405
+ {
406
+ method: "GET",
407
+ path: RELEASE_ROUTES.GIT_TIMELINE,
408
+ handler: "./rest/handlers/git-timeline-handler.js#default",
409
+ handlerPath: "./rest/handlers/git-timeline-handler.js",
410
+ output: {
411
+ zod: "@kb-labs/release-manager-contracts#GitTimelineResponseSchema"
412
+ }
413
+ },
414
+ // GET /preview - Preview package contents before publish
415
+ {
416
+ method: "GET",
417
+ path: RELEASE_ROUTES.PREVIEW,
418
+ handler: "./rest/handlers/preview-handler.js#default",
419
+ handlerPath: "./rest/handlers/preview-handler.js",
420
+ output: {
421
+ zod: "@kb-labs/release-manager-contracts#PreviewResponseSchema"
422
+ }
423
+ },
424
+ // POST /build - Trigger package build
425
+ {
426
+ method: "POST",
427
+ path: RELEASE_ROUTES.BUILD,
428
+ handler: "./rest/handlers/build-handler.js#default",
429
+ handlerPath: "./rest/handlers/build-handler.js",
430
+ input: {
431
+ zod: "@kb-labs/release-manager-contracts#BuildRequestSchema"
432
+ },
433
+ output: {
434
+ zod: "@kb-labs/release-manager-contracts#BuildResponseSchema"
435
+ },
436
+ timeoutMs: 3e5
437
+ // 5 minutes for build
438
+ },
439
+ // GET /checklist - Get unified release checklist status
440
+ {
441
+ method: "GET",
442
+ path: RELEASE_ROUTES.CHECKLIST,
443
+ handler: "./rest/handlers/checklist-handler.js#default",
444
+ handlerPath: "./rest/handlers/checklist-handler.js",
445
+ output: {
446
+ zod: "@kb-labs/release-manager-contracts#ReleaseChecklistSchema"
447
+ }
448
+ },
449
+ // GET /checks - Get list of configured checks (without running them)
450
+ {
451
+ method: "GET",
452
+ path: RELEASE_ROUTES.CHECKS,
453
+ handler: "./rest/handlers/get-checks-handler.js#default",
454
+ handlerPath: "./rest/handlers/get-checks-handler.js",
455
+ output: {
456
+ zod: "@kb-labs/release-manager-contracts#GetChecksResponseSchema"
457
+ }
458
+ },
459
+ // POST /checks/run - Run pre-release checks from kb.config.json release.checks
460
+ {
461
+ method: "POST",
462
+ path: RELEASE_ROUTES.CHECKS_RUN,
463
+ handler: "./rest/handlers/run-checks-handler.js#default",
464
+ handlerPath: "./rest/handlers/run-checks-handler.js",
465
+ input: {
466
+ zod: "@kb-labs/release-manager-contracts#RunChecksRequestSchema"
467
+ },
468
+ output: {
469
+ zod: "@kb-labs/release-manager-contracts#RunChecksResponseSchema"
470
+ },
471
+ timeoutMs: 6e5
472
+ // 10 minutes - all checks combined
473
+ }
474
+ ]
475
+ },
476
+ // Studio V2 — Module Federation pages
477
+ studio: {
478
+ version: 2,
479
+ remoteName: "releasePlugin",
480
+ pages: [
481
+ {
482
+ id: "release.overview",
483
+ title: "Release",
484
+ icon: "RocketOutlined",
485
+ route: "/p/release",
486
+ entry: "./ReleasePage",
487
+ order: 1
488
+ }
489
+ ],
490
+ menus: [
491
+ {
492
+ id: "release",
493
+ label: "Release",
494
+ icon: "RocketOutlined",
495
+ target: "release.overview",
496
+ order: 60
497
+ }
498
+ ]
499
+ },
500
+ // Studio widgets (legacy - commented out, using new UI integration)
501
+ // studio_legacy: {
502
+ // widgets: [
503
+ // {
504
+ // id: 'release.plan',
505
+ // kind: 'infopanel',
506
+ // title: 'Latest Release Plan',
507
+ // description: 'Shows the most recent release plan generated via `kb release plan`.',
508
+ // data: {
509
+ // source: {
510
+ // type: 'rest',
511
+ // routeId: 'plan/latest',
512
+ // method: 'GET',
513
+ // },
514
+ // },
515
+ // layoutHint: {
516
+ // w: 4,
517
+ // h: 5,
518
+ // minW: 3,
519
+ // minH: 3,
520
+ // },
521
+ // },
522
+ // {
523
+ // id: 'release.report',
524
+ // kind: 'cardlist',
525
+ // title: 'Release Report',
526
+ // description: 'Status of the last release execution.',
527
+ // data: {
528
+ // source: {
529
+ // type: 'rest',
530
+ // routeId: 'report/latest',
531
+ // method: 'GET',
532
+ // },
533
+ // },
534
+ // options: {
535
+ // layout: 'list',
536
+ // },
537
+ // layoutHint: {
538
+ // w: 4,
539
+ // h: 4,
540
+ // minW: 3,
541
+ // minH: 3,
542
+ // },
543
+ // },
544
+ // ],
545
+ // menus: [
546
+ // {
547
+ // id: 'release-menu',
548
+ // label: 'Release',
549
+ // icon: 'RocketOutlined',
550
+ // target: '/plugins/release/dashboard',
551
+ // order: 0,
552
+ // },
553
+ // {
554
+ // id: 'release-dashboard',
555
+ // label: 'Dashboard',
556
+ // icon: 'DashboardOutlined',
557
+ // parentId: 'release-menu',
558
+ // target: '/plugins/release/dashboard',
559
+ // order: 1,
560
+ // },
561
+ // ],
562
+ // layouts: [
563
+ // {
564
+ // id: 'release.dashboard',
565
+ // kind: 'grid',
566
+ // title: 'Release Dashboard',
567
+ // description: 'Overview of release planning and execution.',
568
+ // config: {
569
+ // cols: { sm: 2, md: 4, lg: 6 },
570
+ // rowHeight: 5,
571
+ // },
572
+ // },
573
+ // ],
574
+ // },
575
+ // Auto-detects kb.config.json section for useConfig()
576
+ // maps to profiles[].products.release in kb.config.json
577
+ configSection: "release",
578
+ capabilities: ["fs:read", "fs:write"],
579
+ // V3: Manifest-first permissions using composable presets
580
+ permissions: pluginPermissions,
581
+ // Artifacts
582
+ artifacts: [
583
+ {
584
+ id: "release.plan.json",
585
+ pathTemplate: ".kb/release/plan.json",
586
+ description: "Serialized release plan generated by `kb release plan`."
587
+ },
588
+ {
589
+ id: "release.report.json",
590
+ pathTemplate: ".kb/release/report.json",
591
+ description: "Execution report emitted by `kb release run`."
592
+ },
593
+ {
594
+ id: "release.changelog.md",
595
+ pathTemplate: ".kb/release/changelog.md",
596
+ description: "Workspace changelog output produced during release."
597
+ }
598
+ ]
599
+ };
600
+ var manifest_default = manifest;
601
+
602
+ export { manifest_default as default, manifest };
603
+ //# sourceMappingURL=manifest.js.map
604
+ //# sourceMappingURL=manifest.js.map