@kb-labs/commit-contracts 2.119.0-canary.0b1ec4151 → 2.119.0-canary.3edea00f6
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/contract.js.map +1 -1
- package/dist/index.d.ts +39 -39
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +27 -27
- package/dist/schema.js.map +1 -1
- package/package.json +2 -2
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/version.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/contract.ts"],"names":[],"mappings":"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","file":"contract.js","sourcesContent":["export const contractsSchemaId = \"kb.plugin.contracts/1\" as const;\n\nexport type ContractsSchemaId = typeof contractsSchemaId;\n\nexport const contractsVersion = \"1.0.0\" as const;\n","import type { PluginContracts } from \"./types\";\nimport { contractsSchemaId, contractsVersion } from \"./version\";\n\n/**\n * KB Labs Commit Plugin - Contracts Manifest\n *\n * Level 2: Type-safe contracts with as const for type extraction.\n * Defines artifacts, commands, and their relationships.\n */\nexport const pluginContractsManifest = {\n schema: contractsSchemaId,\n pluginId: \"@kb-labs/commit\",\n contractsVersion,\n artifacts: {\n \"commit.plan.json\": {\n id: \"commit.plan.json\",\n kind: \"json\",\n description:\n \"Current commit plan generated by LLM analysis of git changes.\",\n pathPattern: \".kb/commit/current/plan.json\",\n mediaType: \"application/json\",\n schemaRef: \"@kb-labs/commit-contracts/schema#CommitPlan\",\n example: {\n summary: \"Example commit plan with two commits\",\n payload: {\n schemaVersion: \"1.0\",\n commits: [\n {\n id: \"c1\",\n type: \"feat\",\n scope: \"ui\",\n message: \"add button component\",\n files: [\"src/components/Button.tsx\"],\n releaseHint: \"minor\",\n },\n ],\n },\n },\n },\n \"commit.status.json\": {\n id: \"commit.status.json\",\n kind: \"json\",\n description: \"Git status snapshot at plan generation time.\",\n pathPattern: \".kb/commit/current/status.json\",\n mediaType: \"application/json\",\n schemaRef: \"@kb-labs/commit-contracts/schema#GitStatusSnapshot\",\n },\n \"commit.history\": {\n id: \"commit.history\",\n kind: \"dir\",\n description: \"History of applied commit plans with results.\",\n pathPattern: \".kb/commit/history/\",\n },\n },\n commands: {\n commit: {\n id: \"commit\",\n description: \"Generate and apply commits (default flow).\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#CommitRunInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#CommitRunOutput\",\n format: \"zod\",\n },\n produces: [\"commit.plan.json\", \"commit.status.json\"],\n examples: [\"kb commit\", \"kb commit --dry-run\", \"kb commit --with-push\"],\n },\n \"commit:generate\": {\n id: \"commit:generate\",\n description: \"Generate commit plan from git changes using LLM.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#GenerateInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#GenerateOutput\",\n format: \"zod\",\n },\n produces: [\"commit.plan.json\", \"commit.status.json\"],\n examples: [\n \"kb commit generate\",\n \"kb commit generate --json\",\n \"kb commit generate --scope src/**\",\n ],\n },\n \"commit:apply\": {\n id: \"commit:apply\",\n description: \"Apply current commit plan (create local git commits).\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#ApplyInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#ApplyOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit apply\", \"kb commit apply --force\"],\n },\n \"commit:push\": {\n id: \"commit:push\",\n description: \"Push commits to remote repository.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#PushInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#PushOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit push\", \"kb commit push --force\"],\n },\n \"commit:open\": {\n id: \"commit:open\",\n description: \"Show current commit plan.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#OpenInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#OpenOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit open\", \"kb commit open --json\"],\n },\n \"commit:reset\": {\n id: \"commit:reset\",\n description: \"Clear current commit plan.\",\n output: {\n ref: \"@kb-labs/commit-contracts/schema#ResetOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit reset\"],\n },\n },\n} as const satisfies PluginContracts;\n\n// Extract types for use in manifest and commands\nexport type PluginArtifactIds = keyof typeof pluginContractsManifest.artifacts;\nexport type PluginCommandIds = keyof typeof pluginContractsManifest.commands;\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -208,7 +208,7 @@ declare const pluginContractsSchema: z.ZodObject<{
|
|
|
208
208
|
}>>;
|
|
209
209
|
}, "strip", z.ZodTypeAny, {
|
|
210
210
|
id: string;
|
|
211
|
-
kind: "
|
|
211
|
+
kind: "file" | "json" | "markdown" | "binary" | "dir" | "log";
|
|
212
212
|
description?: string | undefined;
|
|
213
213
|
pathPattern?: string | undefined;
|
|
214
214
|
mediaType?: string | undefined;
|
|
@@ -219,7 +219,7 @@ declare const pluginContractsSchema: z.ZodObject<{
|
|
|
219
219
|
} | undefined;
|
|
220
220
|
}, {
|
|
221
221
|
id: string;
|
|
222
|
-
kind: "
|
|
222
|
+
kind: "file" | "json" | "markdown" | "binary" | "dir" | "log";
|
|
223
223
|
description?: string | undefined;
|
|
224
224
|
pathPattern?: string | undefined;
|
|
225
225
|
mediaType?: string | undefined;
|
|
@@ -506,7 +506,7 @@ declare const pluginContractsSchema: z.ZodObject<{
|
|
|
506
506
|
contractsVersion: string;
|
|
507
507
|
artifacts: Record<string, {
|
|
508
508
|
id: string;
|
|
509
|
-
kind: "
|
|
509
|
+
kind: "file" | "json" | "markdown" | "binary" | "dir" | "log";
|
|
510
510
|
description?: string | undefined;
|
|
511
511
|
pathPattern?: string | undefined;
|
|
512
512
|
mediaType?: string | undefined;
|
|
@@ -575,7 +575,7 @@ declare const pluginContractsSchema: z.ZodObject<{
|
|
|
575
575
|
contractsVersion: string;
|
|
576
576
|
artifacts: Record<string, {
|
|
577
577
|
id: string;
|
|
578
|
-
kind: "
|
|
578
|
+
kind: "file" | "json" | "markdown" | "binary" | "dir" | "log";
|
|
579
579
|
description?: string | undefined;
|
|
580
580
|
pathPattern?: string | undefined;
|
|
581
581
|
mediaType?: string | undefined;
|
|
@@ -645,7 +645,7 @@ declare function parsePluginContracts(input: unknown): {
|
|
|
645
645
|
contractsVersion: string;
|
|
646
646
|
artifacts: Record<string, {
|
|
647
647
|
id: string;
|
|
648
|
-
kind: "
|
|
648
|
+
kind: "file" | "json" | "markdown" | "binary" | "dir" | "log";
|
|
649
649
|
description?: string | undefined;
|
|
650
650
|
pathPattern?: string | undefined;
|
|
651
651
|
mediaType?: string | undefined;
|
|
@@ -1112,16 +1112,16 @@ declare const SecretMatchSchema: z.ZodObject<{
|
|
|
1112
1112
|
matched: z.ZodString;
|
|
1113
1113
|
context: z.ZodString;
|
|
1114
1114
|
}, "strip", z.ZodTypeAny, {
|
|
1115
|
-
type: string;
|
|
1116
1115
|
file: string;
|
|
1116
|
+
type: string;
|
|
1117
1117
|
line: number;
|
|
1118
1118
|
column: number;
|
|
1119
1119
|
pattern: string;
|
|
1120
1120
|
matched: string;
|
|
1121
1121
|
context: string;
|
|
1122
1122
|
}, {
|
|
1123
|
-
type: string;
|
|
1124
1123
|
file: string;
|
|
1124
|
+
type: string;
|
|
1125
1125
|
line: number;
|
|
1126
1126
|
column: number;
|
|
1127
1127
|
pattern: string;
|
|
@@ -1184,7 +1184,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1184
1184
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1185
1185
|
id: string;
|
|
1186
1186
|
files: string[];
|
|
1187
|
-
releaseHint: "
|
|
1187
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1188
1188
|
breaking: boolean;
|
|
1189
1189
|
scope?: string | undefined;
|
|
1190
1190
|
body?: string | undefined;
|
|
@@ -1202,7 +1202,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1202
1202
|
files: string[];
|
|
1203
1203
|
scope?: string | undefined;
|
|
1204
1204
|
body?: string | undefined;
|
|
1205
|
-
releaseHint?: "
|
|
1205
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1206
1206
|
breaking?: boolean | undefined;
|
|
1207
1207
|
reasoning?: {
|
|
1208
1208
|
newBehavior?: boolean | undefined;
|
|
@@ -1245,7 +1245,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1245
1245
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1246
1246
|
id: string;
|
|
1247
1247
|
files: string[];
|
|
1248
|
-
releaseHint: "
|
|
1248
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1249
1249
|
breaking: boolean;
|
|
1250
1250
|
scope?: string | undefined;
|
|
1251
1251
|
body?: string | undefined;
|
|
@@ -1280,7 +1280,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1280
1280
|
files: string[];
|
|
1281
1281
|
scope?: string | undefined;
|
|
1282
1282
|
body?: string | undefined;
|
|
1283
|
-
releaseHint?: "
|
|
1283
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1284
1284
|
breaking?: boolean | undefined;
|
|
1285
1285
|
reasoning?: {
|
|
1286
1286
|
newBehavior?: boolean | undefined;
|
|
@@ -1310,16 +1310,16 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1310
1310
|
matched: z.ZodString;
|
|
1311
1311
|
context: z.ZodString;
|
|
1312
1312
|
}, "strip", z.ZodTypeAny, {
|
|
1313
|
-
type: string;
|
|
1314
1313
|
file: string;
|
|
1314
|
+
type: string;
|
|
1315
1315
|
line: number;
|
|
1316
1316
|
column: number;
|
|
1317
1317
|
pattern: string;
|
|
1318
1318
|
matched: string;
|
|
1319
1319
|
context: string;
|
|
1320
1320
|
}, {
|
|
1321
|
-
type: string;
|
|
1322
1321
|
file: string;
|
|
1322
|
+
type: string;
|
|
1323
1323
|
line: number;
|
|
1324
1324
|
column: number;
|
|
1325
1325
|
pattern: string;
|
|
@@ -1346,7 +1346,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1346
1346
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1347
1347
|
id: string;
|
|
1348
1348
|
files: string[];
|
|
1349
|
-
releaseHint: "
|
|
1349
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1350
1350
|
breaking: boolean;
|
|
1351
1351
|
scope?: string | undefined;
|
|
1352
1352
|
body?: string | undefined;
|
|
@@ -1368,8 +1368,8 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1368
1368
|
} | undefined;
|
|
1369
1369
|
planPath?: string | undefined;
|
|
1370
1370
|
secrets?: {
|
|
1371
|
-
type: string;
|
|
1372
1371
|
file: string;
|
|
1372
|
+
type: string;
|
|
1373
1373
|
line: number;
|
|
1374
1374
|
column: number;
|
|
1375
1375
|
pattern: string;
|
|
@@ -1378,8 +1378,8 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1378
1378
|
}[] | undefined;
|
|
1379
1379
|
}, {
|
|
1380
1380
|
success: boolean;
|
|
1381
|
-
message?: string | undefined;
|
|
1382
1381
|
scope?: string | undefined;
|
|
1382
|
+
message?: string | undefined;
|
|
1383
1383
|
plan?: {
|
|
1384
1384
|
schemaVersion: "1.0";
|
|
1385
1385
|
createdAt: string;
|
|
@@ -1396,7 +1396,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1396
1396
|
files: string[];
|
|
1397
1397
|
scope?: string | undefined;
|
|
1398
1398
|
body?: string | undefined;
|
|
1399
|
-
releaseHint?: "
|
|
1399
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1400
1400
|
breaking?: boolean | undefined;
|
|
1401
1401
|
reasoning?: {
|
|
1402
1402
|
newBehavior?: boolean | undefined;
|
|
@@ -1417,8 +1417,8 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1417
1417
|
planPath?: string | undefined;
|
|
1418
1418
|
secretsDetected?: boolean | undefined;
|
|
1419
1419
|
secrets?: {
|
|
1420
|
-
type: string;
|
|
1421
1420
|
file: string;
|
|
1421
|
+
type: string;
|
|
1422
1422
|
line: number;
|
|
1423
1423
|
column: number;
|
|
1424
1424
|
pattern: string;
|
|
@@ -1482,7 +1482,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1482
1482
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1483
1483
|
id: string;
|
|
1484
1484
|
files: string[];
|
|
1485
|
-
releaseHint: "
|
|
1485
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1486
1486
|
breaking: boolean;
|
|
1487
1487
|
scope?: string | undefined;
|
|
1488
1488
|
body?: string | undefined;
|
|
@@ -1500,7 +1500,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1500
1500
|
files: string[];
|
|
1501
1501
|
scope?: string | undefined;
|
|
1502
1502
|
body?: string | undefined;
|
|
1503
|
-
releaseHint?: "
|
|
1503
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1504
1504
|
breaking?: boolean | undefined;
|
|
1505
1505
|
reasoning?: {
|
|
1506
1506
|
newBehavior?: boolean | undefined;
|
|
@@ -1543,7 +1543,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1543
1543
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1544
1544
|
id: string;
|
|
1545
1545
|
files: string[];
|
|
1546
|
-
releaseHint: "
|
|
1546
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1547
1547
|
breaking: boolean;
|
|
1548
1548
|
scope?: string | undefined;
|
|
1549
1549
|
body?: string | undefined;
|
|
@@ -1578,7 +1578,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1578
1578
|
files: string[];
|
|
1579
1579
|
scope?: string | undefined;
|
|
1580
1580
|
body?: string | undefined;
|
|
1581
|
-
releaseHint?: "
|
|
1581
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1582
1582
|
breaking?: boolean | undefined;
|
|
1583
1583
|
reasoning?: {
|
|
1584
1584
|
newBehavior?: boolean | undefined;
|
|
@@ -1614,7 +1614,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1614
1614
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1615
1615
|
id: string;
|
|
1616
1616
|
files: string[];
|
|
1617
|
-
releaseHint: "
|
|
1617
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1618
1618
|
breaking: boolean;
|
|
1619
1619
|
scope?: string | undefined;
|
|
1620
1620
|
body?: string | undefined;
|
|
@@ -1653,7 +1653,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1653
1653
|
files: string[];
|
|
1654
1654
|
scope?: string | undefined;
|
|
1655
1655
|
body?: string | undefined;
|
|
1656
|
-
releaseHint?: "
|
|
1656
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1657
1657
|
breaking?: boolean | undefined;
|
|
1658
1658
|
reasoning?: {
|
|
1659
1659
|
newBehavior?: boolean | undefined;
|
|
@@ -1692,9 +1692,9 @@ declare const PatchPlanRequestSchema: z.ZodObject<{
|
|
|
1692
1692
|
scope_?: string | undefined;
|
|
1693
1693
|
}, {
|
|
1694
1694
|
commitId: string;
|
|
1695
|
+
scope?: string | undefined;
|
|
1695
1696
|
message?: string | undefined;
|
|
1696
1697
|
type?: string | undefined;
|
|
1697
|
-
scope?: string | undefined;
|
|
1698
1698
|
body?: string | undefined;
|
|
1699
1699
|
scope_?: string | undefined;
|
|
1700
1700
|
}>;
|
|
@@ -1773,7 +1773,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1773
1773
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1774
1774
|
id: string;
|
|
1775
1775
|
files: string[];
|
|
1776
|
-
releaseHint: "
|
|
1776
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1777
1777
|
breaking: boolean;
|
|
1778
1778
|
scope?: string | undefined;
|
|
1779
1779
|
body?: string | undefined;
|
|
@@ -1791,7 +1791,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1791
1791
|
files: string[];
|
|
1792
1792
|
scope?: string | undefined;
|
|
1793
1793
|
body?: string | undefined;
|
|
1794
|
-
releaseHint?: "
|
|
1794
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1795
1795
|
breaking?: boolean | undefined;
|
|
1796
1796
|
reasoning?: {
|
|
1797
1797
|
newBehavior?: boolean | undefined;
|
|
@@ -1810,7 +1810,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1810
1810
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1811
1811
|
id: string;
|
|
1812
1812
|
files: string[];
|
|
1813
|
-
releaseHint: "
|
|
1813
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1814
1814
|
breaking: boolean;
|
|
1815
1815
|
scope?: string | undefined;
|
|
1816
1816
|
body?: string | undefined;
|
|
@@ -1833,7 +1833,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1833
1833
|
files: string[];
|
|
1834
1834
|
scope?: string | undefined;
|
|
1835
1835
|
body?: string | undefined;
|
|
1836
|
-
releaseHint?: "
|
|
1836
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1837
1837
|
breaking?: boolean | undefined;
|
|
1838
1838
|
reasoning?: {
|
|
1839
1839
|
newBehavior?: boolean | undefined;
|
|
@@ -1994,8 +1994,8 @@ declare const ResetResponseSchema: z.ZodObject<{
|
|
|
1994
1994
|
message: z.ZodString;
|
|
1995
1995
|
scope: z.ZodDefault<z.ZodString>;
|
|
1996
1996
|
}, "strip", z.ZodTypeAny, {
|
|
1997
|
-
message: string;
|
|
1998
1997
|
scope: string;
|
|
1998
|
+
message: string;
|
|
1999
1999
|
success: boolean;
|
|
2000
2000
|
}, {
|
|
2001
2001
|
message: string;
|
|
@@ -2029,11 +2029,11 @@ declare const GitStatusResponseSchema: z.ZodObject<{
|
|
|
2029
2029
|
binary: z.ZodDefault<z.ZodBoolean>;
|
|
2030
2030
|
isNewFile: z.ZodDefault<z.ZodBoolean>;
|
|
2031
2031
|
}, "strip", z.ZodTypeAny, {
|
|
2032
|
+
binary: boolean;
|
|
2032
2033
|
path: string;
|
|
2033
2034
|
status: "added" | "modified" | "deleted" | "renamed" | "copied";
|
|
2034
2035
|
additions: number;
|
|
2035
2036
|
deletions: number;
|
|
2036
|
-
binary: boolean;
|
|
2037
2037
|
isNewFile: boolean;
|
|
2038
2038
|
}, {
|
|
2039
2039
|
path: string;
|
|
@@ -2045,19 +2045,19 @@ declare const GitStatusResponseSchema: z.ZodObject<{
|
|
|
2045
2045
|
}>, "many">;
|
|
2046
2046
|
totalFiles: z.ZodNumber;
|
|
2047
2047
|
}, "strip", z.ZodTypeAny, {
|
|
2048
|
+
scope: string;
|
|
2048
2049
|
status: {
|
|
2049
2050
|
staged: string[];
|
|
2050
2051
|
unstaged: string[];
|
|
2051
2052
|
untracked: string[];
|
|
2052
2053
|
};
|
|
2053
|
-
scope: string;
|
|
2054
2054
|
totalFiles: number;
|
|
2055
2055
|
summaries: {
|
|
2056
|
+
binary: boolean;
|
|
2056
2057
|
path: string;
|
|
2057
2058
|
status: "added" | "modified" | "deleted" | "renamed" | "copied";
|
|
2058
2059
|
additions: number;
|
|
2059
2060
|
deletions: number;
|
|
2060
|
-
binary: boolean;
|
|
2061
2061
|
isNewFile: boolean;
|
|
2062
2062
|
}[];
|
|
2063
2063
|
}, {
|
|
@@ -2088,17 +2088,17 @@ declare const FileDiffResponseSchema: z.ZodObject<{
|
|
|
2088
2088
|
additions: z.ZodDefault<z.ZodNumber>;
|
|
2089
2089
|
deletions: z.ZodDefault<z.ZodNumber>;
|
|
2090
2090
|
}, "strip", z.ZodTypeAny, {
|
|
2091
|
+
file: string;
|
|
2092
|
+
scope: string;
|
|
2091
2093
|
additions: number;
|
|
2092
2094
|
deletions: number;
|
|
2093
|
-
scope: string;
|
|
2094
|
-
file: string;
|
|
2095
2095
|
diff: string;
|
|
2096
2096
|
}, {
|
|
2097
2097
|
file: string;
|
|
2098
2098
|
diff: string;
|
|
2099
|
+
scope?: string | undefined;
|
|
2099
2100
|
additions?: number | undefined;
|
|
2100
2101
|
deletions?: number | undefined;
|
|
2101
|
-
scope?: string | undefined;
|
|
2102
2102
|
}>;
|
|
2103
2103
|
type FileDiffResponse = z.infer<typeof FileDiffResponseSchema>;
|
|
2104
2104
|
/**
|
|
@@ -2112,8 +2112,8 @@ declare const SummarizeRequestSchema: z.ZodObject<{
|
|
|
2112
2112
|
scope: string;
|
|
2113
2113
|
file?: string | undefined;
|
|
2114
2114
|
}, {
|
|
2115
|
-
scope?: string | undefined;
|
|
2116
2115
|
file?: string | undefined;
|
|
2116
|
+
scope?: string | undefined;
|
|
2117
2117
|
}>;
|
|
2118
2118
|
type SummarizeRequest = z.infer<typeof SummarizeRequestSchema>;
|
|
2119
2119
|
/**
|
|
@@ -2128,13 +2128,13 @@ declare const SummarizeResponseSchema: z.ZodObject<{
|
|
|
2128
2128
|
}, "strip", z.ZodTypeAny, {
|
|
2129
2129
|
scope: string;
|
|
2130
2130
|
summary: string;
|
|
2131
|
-
tokensUsed?: number | undefined;
|
|
2132
2131
|
file?: string | undefined;
|
|
2132
|
+
tokensUsed?: number | undefined;
|
|
2133
2133
|
}, {
|
|
2134
2134
|
summary: string;
|
|
2135
|
+
file?: string | undefined;
|
|
2135
2136
|
scope?: string | undefined;
|
|
2136
2137
|
tokensUsed?: number | undefined;
|
|
2137
|
-
file?: string | undefined;
|
|
2138
2138
|
}>;
|
|
2139
2139
|
type SummarizeResponse = z.infer<typeof SummarizeResponseSchema>;
|
|
2140
2140
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts","../src/contract.ts","../src/helpers.ts","../src/schema/api.schema.ts","../src/schema/artifacts.schema.ts","../src/schema/commands.schema.ts","../src/schema/workflows.schema.ts","../src/schema/contract.schema.ts","../src/types/config.ts","../src/schema.ts","../src/schema/rest.schema.ts","../src/flags.ts","../src/env.ts","../src/routes.ts","../src/events.ts","../src/index.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["export const contractsSchemaId = \"kb.plugin.contracts/1\" as const;\n\nexport type ContractsSchemaId = typeof contractsSchemaId;\n\nexport const contractsVersion = \"1.0.0\" as const;\n","import type { PluginContracts } from \"./types\";\nimport { contractsSchemaId, contractsVersion } from \"./version\";\n\n/**\n * KB Labs Commit Plugin - Contracts Manifest\n *\n * Level 2: Type-safe contracts with as const for type extraction.\n * Defines artifacts, commands, and their relationships.\n */\nexport const pluginContractsManifest = {\n schema: contractsSchemaId,\n pluginId: \"@kb-labs/commit\",\n contractsVersion,\n artifacts: {\n \"commit.plan.json\": {\n id: \"commit.plan.json\",\n kind: \"json\",\n description:\n \"Current commit plan generated by LLM analysis of git changes.\",\n pathPattern: \".kb/commit/current/plan.json\",\n mediaType: \"application/json\",\n schemaRef: \"@kb-labs/commit-contracts/schema#CommitPlan\",\n example: {\n summary: \"Example commit plan with two commits\",\n payload: {\n schemaVersion: \"1.0\",\n commits: [\n {\n id: \"c1\",\n type: \"feat\",\n scope: \"ui\",\n message: \"add button component\",\n files: [\"src/components/Button.tsx\"],\n releaseHint: \"minor\",\n },\n ],\n },\n },\n },\n \"commit.status.json\": {\n id: \"commit.status.json\",\n kind: \"json\",\n description: \"Git status snapshot at plan generation time.\",\n pathPattern: \".kb/commit/current/status.json\",\n mediaType: \"application/json\",\n schemaRef: \"@kb-labs/commit-contracts/schema#GitStatusSnapshot\",\n },\n \"commit.history\": {\n id: \"commit.history\",\n kind: \"dir\",\n description: \"History of applied commit plans with results.\",\n pathPattern: \".kb/commit/history/\",\n },\n },\n commands: {\n commit: {\n id: \"commit\",\n description: \"Generate and apply commits (default flow).\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#CommitRunInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#CommitRunOutput\",\n format: \"zod\",\n },\n produces: [\"commit.plan.json\", \"commit.status.json\"],\n examples: [\"kb commit\", \"kb commit --dry-run\", \"kb commit --with-push\"],\n },\n \"commit:generate\": {\n id: \"commit:generate\",\n description: \"Generate commit plan from git changes using LLM.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#GenerateInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#GenerateOutput\",\n format: \"zod\",\n },\n produces: [\"commit.plan.json\", \"commit.status.json\"],\n examples: [\n \"kb commit generate\",\n \"kb commit generate --json\",\n \"kb commit generate --scope src/**\",\n ],\n },\n \"commit:apply\": {\n id: \"commit:apply\",\n description: \"Apply current commit plan (create local git commits).\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#ApplyInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#ApplyOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit apply\", \"kb commit apply --force\"],\n },\n \"commit:push\": {\n id: \"commit:push\",\n description: \"Push commits to remote repository.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#PushInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#PushOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit push\", \"kb commit push --force\"],\n },\n \"commit:open\": {\n id: \"commit:open\",\n description: \"Show current commit plan.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#OpenInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#OpenOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit open\", \"kb commit open --json\"],\n },\n \"commit:reset\": {\n id: \"commit:reset\",\n description: \"Clear current commit plan.\",\n output: {\n ref: \"@kb-labs/commit-contracts/schema#ResetOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit reset\"],\n },\n },\n} as const satisfies PluginContracts;\n\n// Extract types for use in manifest and commands\nexport type PluginArtifactIds = keyof typeof pluginContractsManifest.artifacts;\nexport type PluginCommandIds = keyof typeof pluginContractsManifest.commands;\n","/**\n * Type-safe helper functions for contracts\n * @module @kb-labs/commit-contracts/helpers\n */\n\nimport {\n pluginContractsManifest,\n type PluginArtifactIds,\n type PluginCommandIds,\n} from \"./contract\";\n\n/**\n * Get artifact path pattern by ID (type-safe)\n *\n * @example\n * const path = getArtifactPath('commit.plan.json');\n * // Returns: '.kb/commit/current/plan.json'\n */\nexport function getArtifactPath<T extends PluginArtifactIds>(id: T): string {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact.pathPattern;\n}\n\n/**\n * Get artifact metadata by ID (type-safe)\n *\n * @example\n * const artifact = getArtifact('commit.plan.json');\n * // artifact.kind, artifact.description, etc.\n */\nexport function getArtifact<T extends PluginArtifactIds>(id: T) {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact;\n}\n\n/**\n * Check if artifact ID exists in contracts (type-safe)\n *\n * @example\n * if (hasArtifact('commit.plan.json')) {\n * // TypeScript knows the type!\n * }\n */\nexport function hasArtifact(id: string): id is PluginArtifactIds {\n return id in pluginContractsManifest.artifacts;\n}\n\n/**\n * Get command metadata by ID (type-safe)\n *\n * @example\n * const command = getCommand('commit:generate');\n * // command.description, command.input, command.output, etc.\n */\nexport function getCommand<T extends PluginCommandIds>(id: T) {\n if (!pluginContractsManifest.commands) {\n throw new Error(\"Commands not defined in contracts\");\n }\n const command = pluginContractsManifest.commands[id];\n if (!command) {\n throw new Error(`Command ${String(id)} not found in contracts`);\n }\n return command;\n}\n\n/**\n * Check if command ID exists in contracts (type-safe)\n *\n * @example\n * if (hasCommand('commit:generate')) {\n * // TypeScript knows the type!\n * }\n */\nexport function hasCommand(id: string): id is PluginCommandIds {\n return (\n pluginContractsManifest.commands !== undefined &&\n id in pluginContractsManifest.commands\n );\n}\n\n/**\n * Type-safe identity function for command IDs (useful for validation)\n *\n * @example\n * const cmdId = getCommandId('commit:generate'); // Compile-time validation!\n */\nexport function getCommandId<T extends PluginCommandIds>(id: T): T {\n return id;\n}\n\n/**\n * Type-safe identity function for artifact IDs (useful for validation)\n *\n * @example\n * const artifactId = getArtifactId('commit.plan.json'); // Compile-time validation!\n */\nexport function getArtifactId<T extends PluginArtifactIds>(id: T): T {\n return id;\n}\n","import { z } from \"zod\";\n\nexport const schemaReferenceSchema = z.object({\n ref: z.string().min(1),\n format: z.enum([\"zod\", \"json-schema\", \"openapi\"]).optional(),\n description: z.string().optional(),\n});\n\nexport const restRouteContractSchema = z.object({\n id: z.string().min(1),\n method: z.string().min(1),\n path: z.string().min(1),\n description: z.string().optional(),\n request: schemaReferenceSchema.optional(),\n response: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n});\n\nexport const restApiContractSchema = z.object({\n basePath: z.string().min(1),\n routes: z.record(restRouteContractSchema),\n});\n\nexport const apiContractSchema = z.object({\n rest: restApiContractSchema.optional(),\n});\n","import { z } from \"zod\";\n\nexport const artifactExampleSchema = z.object({\n summary: z.string().optional(),\n payload: z.unknown().optional(),\n});\n\nexport const artifactContractSchema = z.object({\n id: z.string().min(1),\n kind: z.enum([\"file\", \"json\", \"markdown\", \"binary\", \"dir\", \"log\"]),\n description: z.string().optional(),\n pathPattern: z.string().min(1).optional(),\n mediaType: z.string().min(1).optional(),\n schemaRef: z.string().min(1).optional(),\n example: artifactExampleSchema.optional(),\n});\n\nexport const artifactsContractMapSchema = z.record(artifactContractSchema);\n","import { z } from \"zod\";\nimport { schemaReferenceSchema } from \"./api.schema\";\n\nexport const commandContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n input: schemaReferenceSchema.optional(),\n output: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n examples: z.array(z.string().min(1)).optional(),\n});\n\nexport const commandContractMapSchema = z.record(commandContractSchema);\n","import { z } from \"zod\";\n\nexport const workflowStepSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n commandId: z.string().min(1).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional(),\n});\n\nexport const workflowContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional(),\n steps: z.array(workflowStepSchema).optional(),\n});\n\nexport const workflowContractMapSchema = z.record(workflowContractSchema);\n","import { z } from \"zod\";\nimport { apiContractSchema } from \"./api.schema\";\nimport { artifactsContractMapSchema } from \"./artifacts.schema\";\nimport { commandContractMapSchema } from \"./commands.schema\";\nimport { workflowContractMapSchema } from \"./workflows.schema\";\nimport { contractsSchemaId } from \"../version\";\n\nexport const pluginContractsSchema = z\n .object({\n schema: z.literal(contractsSchemaId),\n pluginId: z.string().min(1),\n contractsVersion: z.string().min(1),\n artifacts: artifactsContractMapSchema,\n commands: commandContractMapSchema.optional(),\n workflows: workflowContractMapSchema.optional(),\n api: apiContractSchema.optional(),\n })\n .strict();\n\nexport type PluginContractsSchema = z.infer<typeof pluginContractsSchema>;\n\nexport function parsePluginContracts(input: unknown) {\n return pluginContractsSchema.parse(input);\n}\n","/**\n * Plugin Configuration Contract\n *\n * Defines the shape of plugin configuration stored in kb.config.json\n * under plugins.commit section.\n *\n * This type is the single source of truth for:\n * - defineSetup (setup handler knows what config to create)\n * - defineCommand (commands can access typed config)\n */\n\n/**\n * LLM configuration for commit generation\n */\nexport interface LLMConfig {\n /** Whether to use LLM for commit generation (default: true) */\n enabled: boolean;\n /** Temperature for LLM responses (0-1, default: 0.3) */\n temperature: number;\n /** Maximum tokens for LLM response (default: 2000) */\n maxTokens: number;\n}\n\n/**\n * Storage configuration\n */\nexport interface StorageConfig {\n /** Directory for commit plugin data (default: .kb/commit) */\n directory: string;\n}\n\n/**\n * Git configuration\n */\nexport interface GitConfig {\n /** Protected branches that require confirmation (default: ['main', 'master']) */\n protectedBranches: string[];\n /** Whether to auto-stage all changes before commit (default: false) */\n autoStage: boolean;\n}\n\n/**\n * A single commit scope definition\n */\nexport interface CommitScope {\n /** Scope identifier — used as value in selector and in API requests */\n id: string;\n /** Display label shown in Studio UI */\n label: string;\n /**\n * Relative path from workspace root to the target git repository.\n * Use \".\" for the workspace root itself.\n * @example \".\"\n * @example \"public/kb-labs\"\n * @example \"plugins/kb-labs-mind\"\n */\n path: string;\n /** Optional description shown in Studio selector */\n description?: string;\n}\n\n/**\n * Scope configuration\n */\nexport interface ScopeConfig {\n /** Default scope id to pre-select in Studio and use when not specified via CLI */\n default?: string;\n /**\n * Explicit list of available scopes.\n * If not provided, falls back to a single \"root\" scope (workspace root).\n *\n * @example\n * ```json\n * \"scopes\": [\n * { \"id\": \"root\", \"label\": \"workspace root\", \"path\": \".\" },\n * { \"id\": \"public/kb-labs\", \"label\": \"kb-labs (public)\", \"path\": \"public/kb-labs\" }\n * ]\n * ```\n */\n scopes?: CommitScope[];\n}\n\n/**\n * Plugin configuration stored in kb.config.json\n *\n * @example\n * ```json\n * {\n * \"plugins\": {\n * \"commit\": {\n * \"enabled\": true,\n * \"llm\": {\n * \"enabled\": true,\n * \"temperature\": 0.3,\n * \"maxTokens\": 2000\n * },\n * \"storage\": {\n * \"directory\": \".kb/commit\"\n * },\n * \"git\": {\n * \"protectedBranches\": [\"main\", \"master\"],\n * \"autoStage\": false\n * },\n * \"scope\": {\n * \"default\": \"kb-labs-commit-plugin\"\n * }\n * }\n * }\n * }\n * ```\n */\nexport interface CommitPluginConfig {\n /** Whether the plugin is enabled */\n enabled: boolean;\n /** LLM configuration */\n llm: LLMConfig;\n /** Storage configuration */\n storage: StorageConfig;\n /** Git configuration */\n git: GitConfig;\n /** Scope configuration */\n scope?: ScopeConfig;\n}\n\n/**\n * Environment variables supported by commit plugin\n * Must be declared in manifest.permissions.env.allow\n */\nexport const COMMIT_ENV_VARS = [\n \"KB_COMMIT_LLM_ENABLED\",\n \"KB_COMMIT_LLM_TEMPERATURE\",\n \"KB_COMMIT_LLM_MAX_TOKENS\",\n \"KB_COMMIT_STORAGE_DIR\",\n \"KB_COMMIT_AUTO_STAGE\",\n] as const;\n\nexport type CommitEnvVar = (typeof COMMIT_ENV_VARS)[number];\n\n/**\n * Default plugin configuration values\n */\nexport const defaultCommitConfig: CommitPluginConfig = {\n enabled: true,\n llm: {\n enabled: true,\n temperature: 0.3,\n maxTokens: 2000,\n },\n storage: {\n directory: \".kb/commit\",\n },\n git: {\n protectedBranches: [\"main\", \"master\"],\n autoStage: false,\n },\n scope: {\n default: 'root',\n scopes: [{ id: 'root', label: 'root', path: '.' }],\n },\n};\n\n/**\n * Resolve config with env variable overrides\n *\n * @param fileConfig - Config from kb.config.json (via useConfig)\n * @param env - Environment variables (from commitEnv.parse(runtime))\n */\nexport function resolveCommitConfig(\n fileConfig: Partial<CommitPluginConfig> = {},\n env: Partial<{\n KB_COMMIT_LLM_ENABLED: boolean;\n KB_COMMIT_LLM_TEMPERATURE: number;\n KB_COMMIT_LLM_MAX_TOKENS: number;\n KB_COMMIT_STORAGE_DIR: string;\n KB_COMMIT_AUTO_STAGE: boolean;\n }> = {},\n): CommitPluginConfig {\n const config: CommitPluginConfig = {\n enabled: fileConfig.enabled ?? defaultCommitConfig.enabled,\n llm: {\n enabled:\n env.KB_COMMIT_LLM_ENABLED ??\n fileConfig.llm?.enabled ??\n defaultCommitConfig.llm.enabled,\n temperature:\n env.KB_COMMIT_LLM_TEMPERATURE ??\n fileConfig.llm?.temperature ??\n defaultCommitConfig.llm.temperature,\n maxTokens:\n env.KB_COMMIT_LLM_MAX_TOKENS ??\n fileConfig.llm?.maxTokens ??\n defaultCommitConfig.llm.maxTokens,\n },\n storage: {\n directory:\n env.KB_COMMIT_STORAGE_DIR ??\n fileConfig.storage?.directory ??\n defaultCommitConfig.storage.directory,\n },\n git: {\n protectedBranches:\n fileConfig.git?.protectedBranches ??\n defaultCommitConfig.git.protectedBranches,\n autoStage:\n env.KB_COMMIT_AUTO_STAGE ??\n fileConfig.git?.autoStage ??\n defaultCommitConfig.git.autoStage,\n },\n scope: {\n default: fileConfig.scope?.default ?? defaultCommitConfig.scope?.default,\n scopes: fileConfig.scope?.scopes ?? defaultCommitConfig.scope?.scopes,\n },\n };\n\n return config;\n}\n","import { z } from \"zod\";\n\n// ============================================================================\n// Core Types\n// ============================================================================\n\n/**\n * Conventional commit types\n */\nexport const ConventionalTypeSchema = z.enum([\n \"feat\",\n \"fix\",\n \"refactor\",\n \"chore\",\n \"docs\",\n \"test\",\n \"build\",\n \"ci\",\n \"perf\",\n]);\n\nexport type ConventionalType = z.infer<typeof ConventionalTypeSchema>;\n\n/**\n * Release hint for semantic versioning\n */\nexport const ReleaseHintSchema = z.enum([\"none\", \"patch\", \"minor\", \"major\"]);\n\nexport type ReleaseHint = z.infer<typeof ReleaseHintSchema>;\n\n// ============================================================================\n// Git Status\n// ============================================================================\n\n/**\n * Git status snapshot\n */\nexport const GitStatusSchema = z.object({\n staged: z.array(z.string()),\n unstaged: z.array(z.string()),\n untracked: z.array(z.string()),\n});\n\nexport type GitStatus = z.infer<typeof GitStatusSchema>;\n\n/**\n * File summary with diff stats\n */\nexport const FileSummarySchema = z.object({\n path: z.string(),\n status: z.enum([\"added\", \"modified\", \"deleted\", \"renamed\", \"copied\"]),\n additions: z.number().int().min(0),\n deletions: z.number().int().min(0),\n binary: z.boolean().default(false),\n /** Whether file is truly new (never existed in repo history) */\n isNewFile: z.boolean().default(false),\n});\n\nexport type FileSummary = z.infer<typeof FileSummarySchema>;\n\n// ============================================================================\n// Commit Plan\n// ============================================================================\n\n/**\n * Reasoning for commit type classification\n */\nexport const CommitReasoningSchema = z.object({\n /** Does this change add NEW user-visible behavior? */\n newBehavior: z.boolean().default(false),\n /** Does this change fix BROKEN functionality? */\n fixesBug: z.boolean().default(false),\n /** Is this only INTERNAL restructuring? */\n internalOnly: z.boolean().default(false),\n /** Human-readable explanation of why this type was chosen */\n explanation: z.string().default(''),\n /** LLM confidence in this classification (0.0-1.0) */\n confidence: z.number().min(0).max(1).default(0.5),\n});\n\nexport type CommitReasoning = z.infer<typeof CommitReasoningSchema>;\n\n/**\n * A single commit group in the plan\n */\nexport const CommitGroupSchema = z.object({\n id: z.string(),\n type: ConventionalTypeSchema,\n scope: z.string().optional(),\n message: z.string().min(1),\n body: z.string().optional(),\n files: z.array(z.string()).min(1),\n releaseHint: ReleaseHintSchema.default(\"none\"),\n breaking: z.boolean().default(false),\n /** Reasoning for commit type classification (optional, added by LLM) */\n reasoning: CommitReasoningSchema.optional(),\n});\n\nexport type CommitGroup = z.infer<typeof CommitGroupSchema>;\n\n/**\n * Complete commit plan\n */\nexport const CommitPlanSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n repoRoot: z.string(),\n gitStatus: GitStatusSchema,\n commits: z.array(CommitGroupSchema),\n metadata: z.object({\n totalFiles: z.number().int().min(0),\n totalCommits: z.number().int().min(0),\n llmUsed: z.boolean(),\n tokensUsed: z.number().int().min(0).optional(),\n /** Whether LLM escalated to Phase 2 (requested diff for more context) */\n escalated: z.boolean().optional(),\n }),\n});\n\nexport type CommitPlan = z.infer<typeof CommitPlanSchema>;\n\n/**\n * Git status snapshot for storage\n */\nexport const GitStatusSnapshotSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n status: GitStatusSchema,\n summaries: z.array(FileSummarySchema),\n});\n\nexport type GitStatusSnapshot = z.infer<typeof GitStatusSnapshotSchema>;\n\n// ============================================================================\n// Command Input/Output Schemas\n// ============================================================================\n\n// --- commit (run) ---\nexport const CommitRunInputSchema = z.object({\n scope: z.string().optional(),\n dryRun: z.boolean().default(false),\n withPush: z.boolean().default(false),\n});\n\nexport type CommitRunInput = z.infer<typeof CommitRunInputSchema>;\n\nexport const CommitRunOutputSchema = z.object({\n plan: CommitPlanSchema,\n applied: z.boolean(),\n pushed: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string().optional(),\n message: z.string(),\n }),\n ),\n});\n\nexport type CommitRunOutput = z.infer<typeof CommitRunOutputSchema>;\n\n// --- commit:generate ---\nexport const GenerateInputSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type GenerateInput = z.infer<typeof GenerateInputSchema>;\n\nexport const GenerateOutputSchema = z.object({\n plan: CommitPlanSchema,\n planPath: z.string(),\n});\n\nexport type GenerateOutput = z.infer<typeof GenerateOutputSchema>;\n\n// --- commit:apply ---\nexport const ApplyInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type ApplyInput = z.infer<typeof ApplyInputSchema>;\n\nexport const ApplyOutputSchema = z.object({\n success: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()).default([]),\n});\n\nexport type ApplyOutput = z.infer<typeof ApplyOutputSchema>;\n\n// --- commit:push ---\nexport const PushInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type PushInput = z.infer<typeof PushInputSchema>;\n\nexport const PushOutputSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commits: z.number().int().min(0),\n});\n\nexport type PushOutput = z.infer<typeof PushOutputSchema>;\n\n// --- commit:open ---\nexport const OpenInputSchema = z.object({\n json: z.boolean().default(false),\n});\n\nexport type OpenInput = z.infer<typeof OpenInputSchema>;\n\nexport const OpenOutputSchema = z.object({\n hasPlan: z.boolean(),\n plan: CommitPlanSchema.optional(),\n planPath: z.string().optional(),\n stale: z.boolean().optional(),\n staleReason: z.string().optional(),\n});\n\nexport type OpenOutput = z.infer<typeof OpenOutputSchema>;\n\n// --- commit:reset ---\nexport const ResetOutputSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\nexport type ResetOutput = z.infer<typeof ResetOutputSchema>;\n\n// ============================================================================\n// Result Types (for core package)\n// ============================================================================\n\nexport const ApplyResultSchema = z.object({\n success: z.boolean(),\n appliedCommits: z.array(\n z.object({\n groupId: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()),\n});\n\nexport type ApplyResult = z.infer<typeof ApplyResultSchema>;\n\nexport const PushResultSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commitsPushed: z.number().int().min(0),\n error: z.string().optional(),\n});\n\nexport type PushResult = z.infer<typeof PushResultSchema>;\n\n// ============================================================================\n// REST API Responses\n// ============================================================================\n\n/**\n * GET /actions response\n * Returns empty object for actions widget (widget only needs action buttons)\n */\nexport const ActionsResponseSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type ActionsResponse = z.infer<typeof ActionsResponseSchema>;\n","import { z } from \"zod\";\nimport {\n CommitPlanSchema,\n GitStatusSchema,\n FileSummarySchema,\n ApplyResultSchema,\n PushResultSchema,\n} from \"../schema\";\n\n// ============================================================================\n// Scopes\n// ============================================================================\n\n/**\n * Single scope entry\n */\nexport const ScopeSchema = z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n path: z.string().min(1),\n description: z.string().optional(),\n});\n\nexport type Scope = z.infer<typeof ScopeSchema>;\n\n/**\n * GET /scopes response\n */\nexport const ScopesResponseSchema = z.object({\n scopes: z.array(ScopeSchema),\n});\n\nexport type ScopesResponse = z.infer<typeof ScopesResponseSchema>;\n\n// ============================================================================\n// Status\n// ============================================================================\n\n/**\n * Plan status lifecycle\n * - idle: No plan exists, need to generate\n * - ready: Plan generated, ready to apply\n * - applied: Plan applied as commits, ready to push\n * - pushed: Commits pushed to remote\n */\nexport const PlanStatusSchema = z.enum([\"idle\", \"ready\", \"applied\", \"pushed\"]);\n\nexport type PlanStatus = z.infer<typeof PlanStatusSchema>;\n\n/**\n * GET /status?scope=X response\n */\nexport const StatusResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n hasPlan: z.boolean(),\n planStatus: PlanStatusSchema.default(\"idle\"),\n planTimestamp: z.string().datetime().optional(),\n gitStatus: GitStatusSchema.optional(),\n filesChanged: z.number().int().min(0).default(0),\n commitsInPlan: z.number().int().min(0).default(0),\n commitsApplied: z.number().int().min(0).default(0),\n branch: z.string().optional(),\n workingDir: z.string().optional(),\n planStale: z.boolean().optional(),\n planStaleReason: z.string().optional(),\n});\n\nexport type StatusResponse = z.infer<typeof StatusResponseSchema>;\n\n// ============================================================================\n// Generate Plan\n// ============================================================================\n\n/**\n * POST /generate request body\n */\nexport const GenerateRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n dryRun: z.boolean().default(false),\n allowSecrets: z.boolean().default(false),\n autoConfirm: z.boolean().default(false),\n});\n\nexport type GenerateRequest = z.infer<typeof GenerateRequestSchema>;\n\n/**\n * Secret match location\n */\nexport const SecretMatchSchema = z.object({\n file: z.string(),\n line: z.number(),\n column: z.number(),\n type: z.string(),\n pattern: z.string(),\n matched: z.string(),\n context: z.string(),\n});\n\nexport type SecretMatch = z.infer<typeof SecretMatchSchema>;\n\n/**\n * POST /generate response\n */\nexport const GenerateResponseSchema = z.object({\n success: z.boolean(),\n // Success fields (when success=true)\n plan: CommitPlanSchema.optional(),\n planPath: z.string().optional(),\n scope: z.string().default(\"root\"),\n // Secrets detected fields (when success=false)\n secretsDetected: z.boolean().default(false),\n secrets: z.array(SecretMatchSchema).optional(),\n message: z.string().optional(),\n});\n\nexport type GenerateResponse = z.infer<typeof GenerateResponseSchema>;\n\n// ============================================================================\n// Get Plan\n// ============================================================================\n\n/**\n * GET /plan?scope=X response\n */\nexport const PlanResponseSchema = z.object({\n hasPlan: z.boolean(),\n plan: CommitPlanSchema.optional(),\n scope: z.string().default(\"root\"),\n});\n\nexport type PlanResponse = z.infer<typeof PlanResponseSchema>;\n\n// ============================================================================\n// Patch Plan (Edit Commit)\n// ============================================================================\n\n/**\n * PATCH /plan request body — edit a single commit in the plan\n */\nexport const PatchPlanRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n commitId: z.string().min(1),\n message: z.string().min(1).optional(),\n type: z.string().optional(),\n scope_: z.string().optional(),\n body: z.string().optional(),\n});\n\nexport type PatchPlanRequest = z.infer<typeof PatchPlanRequestSchema>;\n\n/**\n * PATCH /plan response\n */\nexport const PatchPlanResponseSchema = z.object({\n success: z.boolean(),\n scope: z.string().default(\"root\"),\n commitId: z.string(),\n});\n\nexport type PatchPlanResponse = z.infer<typeof PatchPlanResponseSchema>;\n\n// ============================================================================\n// Regenerate Commit\n// ============================================================================\n\n/**\n * POST /regenerate-commit request body\n */\nexport const RegenerateCommitRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n commitId: z.string().min(1),\n instruction: z.string().optional(),\n});\n\nexport type RegenerateCommitRequest = z.infer<typeof RegenerateCommitRequestSchema>;\n\n/**\n * POST /regenerate-commit response\n */\nexport const RegenerateCommitResponseSchema = z.object({\n success: z.boolean(),\n scope: z.string().default(\"root\"),\n commitId: z.string(),\n commit: CommitPlanSchema.shape.commits.element.optional(),\n});\n\nexport type RegenerateCommitResponse = z.infer<typeof RegenerateCommitResponseSchema>;\n\n// ============================================================================\n// Apply Commits\n// ============================================================================\n\n/**\n * POST /apply request body\n */\nexport const ApplyRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n force: z.boolean().default(false),\n /** Optional: apply only specific commits by ID. If omitted, applies all. */\n commitIds: z.array(z.string()).optional(),\n});\n\nexport type ApplyRequest = z.infer<typeof ApplyRequestSchema>;\n\n/**\n * POST /apply response\n */\nexport const ApplyResponseSchema = z.object({\n result: ApplyResultSchema,\n scope: z.string().default(\"root\"),\n});\n\nexport type ApplyResponse = z.infer<typeof ApplyResponseSchema>;\n\n// ============================================================================\n// Push Commits\n// ============================================================================\n\n/**\n * POST /push request body\n */\nexport const PushRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n remote: z.string().default(\"origin\"),\n force: z.boolean().default(false),\n});\n\nexport type PushRequest = z.infer<typeof PushRequestSchema>;\n\n/**\n * POST /push response\n */\nexport const PushResponseSchema = z.object({\n result: PushResultSchema,\n scope: z.string().default(\"root\"),\n});\n\nexport type PushResponse = z.infer<typeof PushResponseSchema>;\n\n// ============================================================================\n// Reset Plan\n// ============================================================================\n\n/**\n * DELETE /plan?scope=X response\n */\nexport const ResetResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n scope: z.string().default(\"root\"),\n});\n\nexport type ResetResponse = z.infer<typeof ResetResponseSchema>;\n\n// ============================================================================\n// Git Status\n// ============================================================================\n\n/**\n * GET /git-status?scope=X response\n */\nexport const GitStatusResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n status: GitStatusSchema,\n summaries: z.array(FileSummarySchema),\n totalFiles: z.number().int().min(0),\n});\n\nexport type GitStatusResponse = z.infer<typeof GitStatusResponseSchema>;\n\n// ============================================================================\n// File Diff\n// ============================================================================\n\n/**\n * GET /diff?scope=X&file=Y response\n */\nexport const FileDiffResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n file: z.string(),\n diff: z.string(),\n additions: z.number().int().min(0).default(0),\n deletions: z.number().int().min(0).default(0),\n});\n\nexport type FileDiffResponse = z.infer<typeof FileDiffResponseSchema>;\n\n// ============================================================================\n// Summarize Changes\n// ============================================================================\n\n/**\n * POST /summarize request body\n */\nexport const SummarizeRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n /** Optional file path - if provided, summarize only this file */\n file: z.string().optional(),\n});\n\nexport type SummarizeRequest = z.infer<typeof SummarizeRequestSchema>;\n\n/**\n * POST /summarize response\n */\nexport const SummarizeResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n file: z.string().optional(),\n summary: z.string(),\n /** Token usage for the LLM call */\n tokensUsed: z.number().int().min(0).optional(),\n});\n\nexport type SummarizeResponse = z.infer<typeof SummarizeResponseSchema>;\n","/**\n * Declarative flag definitions for commit plugin commands\n *\n * Using the new defineFlags system from @kb-labs/sdk for:\n * - Type safety\n * - Runtime validation\n * - Automatic type inference\n * - Consistent DX across commands\n */\n\nimport { defineFlags } from \"@kb-labs/sdk\";\n\n/**\n * Flags for commit:commit (run) command\n *\n * @example\n * ```bash\n * kb commit commit --scope=\"@kb-labs/core\" --dry-run --with-push\n * ```\n */\nexport const commitFlags = defineFlags({\n scope: {\n type: \"string\",\n description: \"Limit commits to specific package or path pattern\",\n examples: [\"@kb-labs/core\", \"packages/**\", \"kb-labs-mind/**\"],\n },\n json: {\n type: \"boolean\",\n description: \"Output result as JSON instead of formatted text\",\n default: false,\n },\n \"dry-run\": {\n type: \"boolean\",\n description: \"Preview commits without applying them to git\",\n default: false,\n },\n \"with-push\": {\n type: \"boolean\",\n description: \"Push commits to remote after applying\",\n default: false,\n },\n \"allow-secrets\": {\n type: \"boolean\",\n description:\n \"Allow committing files with detected secrets (requires manual confirmation). Use with caution after reviewing detected locations.\",\n default: false,\n },\n yes: {\n type: \"boolean\",\n description: \"Automatically confirm all prompts (non-interactive mode)\",\n default: false,\n },\n});\n\n/**\n * Inferred TypeScript type for commit command input\n *\n * Type resolves to:\n * {\n * scope?: string;\n * json: boolean;\n * 'dry-run': boolean;\n * 'with-push': boolean;\n * }\n */\nexport type CommitFlags = typeof commitFlags.infer;\n\n/**\n * Flags for commit:generate command\n *\n * @example\n * ```bash\n * kb commit generate --scope=\"@kb-labs/cli\" --json\n * ```\n */\nexport const generateFlags = defineFlags({\n scope: {\n type: \"string\",\n description: \"Limit analysis to specific package or path pattern\",\n examples: [\"@kb-labs/core\", \"packages/**\", \"kb-labs-mind/**\"],\n },\n json: {\n type: \"boolean\",\n description: \"Output commit plan as JSON instead of formatted text\",\n default: false,\n },\n \"allow-secrets\": {\n type: \"boolean\",\n description:\n \"Allow generating commits for files with detected secrets (requires manual confirmation). Use with caution after reviewing detected locations.\",\n default: false,\n },\n yes: {\n type: \"boolean\",\n description: \"Automatically confirm all prompts (non-interactive mode)\",\n default: false,\n },\n});\n\n/**\n * Inferred TypeScript type for generate command input\n *\n * Type resolves to:\n * {\n * scope?: string;\n * json: boolean;\n * }\n */\nexport type GenerateFlags = typeof generateFlags.infer;\n","/**\n * Environment variable definitions for commit plugin\n */\n\nimport { defineEnv } from \"@kb-labs/sdk\";\n\nexport const commitEnv = defineEnv({\n KB_COMMIT_LLM_ENABLED: {\n type: \"boolean\",\n default: true,\n description: \"Enable LLM-powered commit analysis\",\n },\n KB_COMMIT_LLM_TEMPERATURE: {\n type: \"number\",\n default: 0.3,\n description: \"LLM temperature for commit message generation (0-1)\",\n validate: (v) => {\n if (v < 0 || v > 1) {\n throw new Error(\"KB_COMMIT_LLM_TEMPERATURE must be between 0 and 1\");\n }\n },\n },\n KB_COMMIT_LLM_MAX_TOKENS: {\n type: \"number\",\n default: 2000,\n description: \"Maximum tokens for LLM commit analysis\",\n },\n KB_COMMIT_STORAGE_DIR: {\n type: \"string\",\n default: \".kb/commit\",\n description: \"Directory for storing commit history\",\n },\n KB_COMMIT_AUTO_STAGE: {\n type: \"boolean\",\n default: false,\n description: \"Automatically stage files before committing\",\n },\n});\n\nexport type CommitEnv = typeof commitEnv.type;\n","/**\n * @module @kb-labs/commit-contracts/routes\n * REST API route constants for commit plugin\n */\n\n/**\n * REST API base path for commit plugin\n */\nexport const COMMIT_BASE_PATH = \"/v1/plugins/commit\" as const;\n\n/**\n * REST API route paths (relative to basePath)\n *\n * These are used in both:\n * - manifest.rest.routes[].path (route definitions)\n * - manifest.studio.widgets[].data.source.routeId (widget data sources)\n * - manifest.studio.widgets[].actions[].endpoint.routeId (widget actions)\n */\nexport const COMMIT_ROUTES = {\n /** GET /scopes - List available scopes */\n SCOPES: \"/scopes\",\n\n /** GET /status - Get current status (plan + git) */\n STATUS: \"/status\",\n\n /** GET /plan - Get current commit plan */\n PLAN: \"/plan\",\n\n /** GET /git-status - Get git status with file details */\n GIT_STATUS: \"/git-status\",\n\n /** GET /files - Get file tree with diff statistics */\n FILES: \"/files\",\n\n /** GET /diff - Get diff for a specific file */\n DIFF: \"/diff\",\n\n /** POST /summarize - Summarize changes using LLM */\n SUMMARIZE: \"/summarize\",\n\n /** GET /actions - Get actions widget data */\n ACTIONS: \"/actions\",\n\n /** POST /generate - Generate new commit plan */\n GENERATE: \"/generate\",\n\n /** POST /apply - Apply commit plan */\n APPLY: \"/apply\",\n\n /** POST /push - Push commits to remote */\n PUSH: \"/push\",\n\n /** DELETE /plan - Delete current plan */\n RESET: \"/plan\",\n\n /** PATCH /plan - Edit a single commit in the plan */\n PATCH_PLAN: \"/plan\",\n\n /** POST /regenerate-commit - Regenerate a single commit */\n REGENERATE_COMMIT: \"/regenerate-commit\",\n} as const;\n\n/**\n * Full REST API URLs (basePath + route)\n * Useful for testing and documentation\n */\nexport const COMMIT_FULL_ROUTES = {\n SCOPES: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.SCOPES}`,\n STATUS: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.STATUS}`,\n PLAN: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.PLAN}`,\n GIT_STATUS: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.GIT_STATUS}`,\n FILES: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.FILES}`,\n DIFF: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.DIFF}`,\n SUMMARIZE: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.SUMMARIZE}`,\n ACTIONS: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.ACTIONS}`,\n GENERATE: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.GENERATE}`,\n APPLY: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.APPLY}`,\n PUSH: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.PUSH}`,\n RESET: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.RESET}`,\n PATCH_PLAN: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.PATCH_PLAN}`,\n REGENERATE_COMMIT: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.REGENERATE_COMMIT}`,\n} as const;\n\n/**\n * Widget-friendly route IDs (without leading slash)\n * Use these in manifest.studio.widgets[].data.source.routeId\n */\nexport const COMMIT_WIDGET_ROUTES = {\n SCOPES: \"scopes\",\n STATUS: \"status\",\n PLAN: \"plan\",\n GIT_STATUS: \"git-status\",\n FILES: \"files\",\n DIFF: \"diff\",\n SUMMARIZE: \"summarize\",\n ACTIONS: \"actions\",\n GENERATE: \"generate\",\n APPLY: \"apply\",\n PUSH: \"push\",\n RESET: \"plan\",\n PATCH_PLAN: \"plan\",\n REGENERATE_COMMIT: \"regenerate-commit\",\n} as const;\n\nexport type CommitRoute = (typeof COMMIT_ROUTES)[keyof typeof COMMIT_ROUTES];\nexport type CommitWidgetRoute =\n (typeof COMMIT_WIDGET_ROUTES)[keyof typeof COMMIT_WIDGET_ROUTES];\n","/**\n * @module @kb-labs/commit-contracts/events\n * Studio event definitions for commit plugin\n */\n\n/**\n * Event names for commit plugin widgets\n */\nexport const COMMIT_EVENTS = {\n /** Scope selector changed */\n SCOPE_CHANGED: \"scope:changed\",\n /** Form submitted (actions widget) */\n FORM_SUBMITTED: \"form:submitted\",\n /** Commit plan generated */\n PLAN_GENERATED: \"plan:generated\",\n} as const;\n\nexport type CommitEventName =\n (typeof COMMIT_EVENTS)[keyof typeof COMMIT_EVENTS];\n\n/**\n * Event payload types\n */\n\n/** Payload for scope:changed event */\nexport interface ScopeChangedPayload {\n /** Selected scope ID */\n scope: string;\n}\n\n/** Payload for form:submitted event */\nexport interface FormSubmittedPayload {\n /** Action ID that was submitted */\n action: string;\n /** Form data (if any) */\n data?: Record<string, unknown>;\n}\n\n/** Payload for plan:generated event */\nexport interface PlanGeneratedPayload {\n /** The generated commit plan */\n plan: {\n commits: Array<{\n type: string;\n scope?: string;\n message: string;\n body?: string;\n files: string[];\n }>;\n };\n /** Scope where plan was generated */\n scope: string;\n}\n\n/**\n * Union type for all commit event payloads\n */\nexport type CommitEventPayload =\n | ScopeChangedPayload\n | FormSubmittedPayload\n | PlanGeneratedPayload;\n","export {\n pluginContractsManifest,\n type PluginArtifactIds,\n type PluginCommandIds,\n} from \"./contract\";\nexport {\n getArtifactPath,\n getArtifact,\n hasArtifact,\n getCommand,\n hasCommand,\n getCommandId,\n getArtifactId,\n} from \"./helpers\";\nexport {\n parsePluginContracts,\n pluginContractsSchema,\n} from \"./schema/contract.schema\";\nexport { contractsSchemaId, contractsVersion } from \"./version\";\nexport * from \"./types\";\nexport * from \"./schema\";\nexport * from \"./schema/rest.schema\";\nexport * from \"./flags\";\nexport * from \"./env\";\nexport * from \"./routes\";\nexport * from \"./events\";\n\n/**\n * Cache key prefix for commit plugin\n * Used for platform cache namespacing: commit:git-status:*, commit:plan-applied:*\n */\nexport const COMMIT_CACHE_PREFIX = \"commit:\" as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/version.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/contract.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/helpers.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema/api.schema.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema/artifacts.schema.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema/commands.schema.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema/workflows.schema.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema/contract.schema.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/types/config.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema/rest.schema.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/flags.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/env.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/routes.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/events.ts","../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/index.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["export const contractsSchemaId = \"kb.plugin.contracts/1\" as const;\n\nexport type ContractsSchemaId = typeof contractsSchemaId;\n\nexport const contractsVersion = \"1.0.0\" as const;\n","import type { PluginContracts } from \"./types\";\nimport { contractsSchemaId, contractsVersion } from \"./version\";\n\n/**\n * KB Labs Commit Plugin - Contracts Manifest\n *\n * Level 2: Type-safe contracts with as const for type extraction.\n * Defines artifacts, commands, and their relationships.\n */\nexport const pluginContractsManifest = {\n schema: contractsSchemaId,\n pluginId: \"@kb-labs/commit\",\n contractsVersion,\n artifacts: {\n \"commit.plan.json\": {\n id: \"commit.plan.json\",\n kind: \"json\",\n description:\n \"Current commit plan generated by LLM analysis of git changes.\",\n pathPattern: \".kb/commit/current/plan.json\",\n mediaType: \"application/json\",\n schemaRef: \"@kb-labs/commit-contracts/schema#CommitPlan\",\n example: {\n summary: \"Example commit plan with two commits\",\n payload: {\n schemaVersion: \"1.0\",\n commits: [\n {\n id: \"c1\",\n type: \"feat\",\n scope: \"ui\",\n message: \"add button component\",\n files: [\"src/components/Button.tsx\"],\n releaseHint: \"minor\",\n },\n ],\n },\n },\n },\n \"commit.status.json\": {\n id: \"commit.status.json\",\n kind: \"json\",\n description: \"Git status snapshot at plan generation time.\",\n pathPattern: \".kb/commit/current/status.json\",\n mediaType: \"application/json\",\n schemaRef: \"@kb-labs/commit-contracts/schema#GitStatusSnapshot\",\n },\n \"commit.history\": {\n id: \"commit.history\",\n kind: \"dir\",\n description: \"History of applied commit plans with results.\",\n pathPattern: \".kb/commit/history/\",\n },\n },\n commands: {\n commit: {\n id: \"commit\",\n description: \"Generate and apply commits (default flow).\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#CommitRunInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#CommitRunOutput\",\n format: \"zod\",\n },\n produces: [\"commit.plan.json\", \"commit.status.json\"],\n examples: [\"kb commit\", \"kb commit --dry-run\", \"kb commit --with-push\"],\n },\n \"commit:generate\": {\n id: \"commit:generate\",\n description: \"Generate commit plan from git changes using LLM.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#GenerateInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#GenerateOutput\",\n format: \"zod\",\n },\n produces: [\"commit.plan.json\", \"commit.status.json\"],\n examples: [\n \"kb commit generate\",\n \"kb commit generate --json\",\n \"kb commit generate --scope src/**\",\n ],\n },\n \"commit:apply\": {\n id: \"commit:apply\",\n description: \"Apply current commit plan (create local git commits).\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#ApplyInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#ApplyOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit apply\", \"kb commit apply --force\"],\n },\n \"commit:push\": {\n id: \"commit:push\",\n description: \"Push commits to remote repository.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#PushInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#PushOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit push\", \"kb commit push --force\"],\n },\n \"commit:open\": {\n id: \"commit:open\",\n description: \"Show current commit plan.\",\n input: {\n ref: \"@kb-labs/commit-contracts/schema#OpenInput\",\n format: \"zod\",\n },\n output: {\n ref: \"@kb-labs/commit-contracts/schema#OpenOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit open\", \"kb commit open --json\"],\n },\n \"commit:reset\": {\n id: \"commit:reset\",\n description: \"Clear current commit plan.\",\n output: {\n ref: \"@kb-labs/commit-contracts/schema#ResetOutput\",\n format: \"zod\",\n },\n produces: [],\n examples: [\"kb commit reset\"],\n },\n },\n} as const satisfies PluginContracts;\n\n// Extract types for use in manifest and commands\nexport type PluginArtifactIds = keyof typeof pluginContractsManifest.artifacts;\nexport type PluginCommandIds = keyof typeof pluginContractsManifest.commands;\n","/**\n * Type-safe helper functions for contracts\n * @module @kb-labs/commit-contracts/helpers\n */\n\nimport {\n pluginContractsManifest,\n type PluginArtifactIds,\n type PluginCommandIds,\n} from \"./contract\";\n\n/**\n * Get artifact path pattern by ID (type-safe)\n *\n * @example\n * const path = getArtifactPath('commit.plan.json');\n * // Returns: '.kb/commit/current/plan.json'\n */\nexport function getArtifactPath<T extends PluginArtifactIds>(id: T): string {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact.pathPattern;\n}\n\n/**\n * Get artifact metadata by ID (type-safe)\n *\n * @example\n * const artifact = getArtifact('commit.plan.json');\n * // artifact.kind, artifact.description, etc.\n */\nexport function getArtifact<T extends PluginArtifactIds>(id: T) {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact;\n}\n\n/**\n * Check if artifact ID exists in contracts (type-safe)\n *\n * @example\n * if (hasArtifact('commit.plan.json')) {\n * // TypeScript knows the type!\n * }\n */\nexport function hasArtifact(id: string): id is PluginArtifactIds {\n return id in pluginContractsManifest.artifacts;\n}\n\n/**\n * Get command metadata by ID (type-safe)\n *\n * @example\n * const command = getCommand('commit:generate');\n * // command.description, command.input, command.output, etc.\n */\nexport function getCommand<T extends PluginCommandIds>(id: T) {\n if (!pluginContractsManifest.commands) {\n throw new Error(\"Commands not defined in contracts\");\n }\n const command = pluginContractsManifest.commands[id];\n if (!command) {\n throw new Error(`Command ${String(id)} not found in contracts`);\n }\n return command;\n}\n\n/**\n * Check if command ID exists in contracts (type-safe)\n *\n * @example\n * if (hasCommand('commit:generate')) {\n * // TypeScript knows the type!\n * }\n */\nexport function hasCommand(id: string): id is PluginCommandIds {\n return (\n pluginContractsManifest.commands !== undefined &&\n id in pluginContractsManifest.commands\n );\n}\n\n/**\n * Type-safe identity function for command IDs (useful for validation)\n *\n * @example\n * const cmdId = getCommandId('commit:generate'); // Compile-time validation!\n */\nexport function getCommandId<T extends PluginCommandIds>(id: T): T {\n return id;\n}\n\n/**\n * Type-safe identity function for artifact IDs (useful for validation)\n *\n * @example\n * const artifactId = getArtifactId('commit.plan.json'); // Compile-time validation!\n */\nexport function getArtifactId<T extends PluginArtifactIds>(id: T): T {\n return id;\n}\n","import { z } from \"zod\";\n\nexport const schemaReferenceSchema = z.object({\n ref: z.string().min(1),\n format: z.enum([\"zod\", \"json-schema\", \"openapi\"]).optional(),\n description: z.string().optional(),\n});\n\nexport const restRouteContractSchema = z.object({\n id: z.string().min(1),\n method: z.string().min(1),\n path: z.string().min(1),\n description: z.string().optional(),\n request: schemaReferenceSchema.optional(),\n response: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n});\n\nexport const restApiContractSchema = z.object({\n basePath: z.string().min(1),\n routes: z.record(restRouteContractSchema),\n});\n\nexport const apiContractSchema = z.object({\n rest: restApiContractSchema.optional(),\n});\n","import { z } from \"zod\";\n\nexport const artifactExampleSchema = z.object({\n summary: z.string().optional(),\n payload: z.unknown().optional(),\n});\n\nexport const artifactContractSchema = z.object({\n id: z.string().min(1),\n kind: z.enum([\"file\", \"json\", \"markdown\", \"binary\", \"dir\", \"log\"]),\n description: z.string().optional(),\n pathPattern: z.string().min(1).optional(),\n mediaType: z.string().min(1).optional(),\n schemaRef: z.string().min(1).optional(),\n example: artifactExampleSchema.optional(),\n});\n\nexport const artifactsContractMapSchema = z.record(artifactContractSchema);\n","import { z } from \"zod\";\nimport { schemaReferenceSchema } from \"./api.schema\";\n\nexport const commandContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n input: schemaReferenceSchema.optional(),\n output: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n examples: z.array(z.string().min(1)).optional(),\n});\n\nexport const commandContractMapSchema = z.record(commandContractSchema);\n","import { z } from \"zod\";\n\nexport const workflowStepSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n commandId: z.string().min(1).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional(),\n});\n\nexport const workflowContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional(),\n steps: z.array(workflowStepSchema).optional(),\n});\n\nexport const workflowContractMapSchema = z.record(workflowContractSchema);\n","import { z } from \"zod\";\nimport { apiContractSchema } from \"./api.schema\";\nimport { artifactsContractMapSchema } from \"./artifacts.schema\";\nimport { commandContractMapSchema } from \"./commands.schema\";\nimport { workflowContractMapSchema } from \"./workflows.schema\";\nimport { contractsSchemaId } from \"../version\";\n\nexport const pluginContractsSchema = z\n .object({\n schema: z.literal(contractsSchemaId),\n pluginId: z.string().min(1),\n contractsVersion: z.string().min(1),\n artifacts: artifactsContractMapSchema,\n commands: commandContractMapSchema.optional(),\n workflows: workflowContractMapSchema.optional(),\n api: apiContractSchema.optional(),\n })\n .strict();\n\nexport type PluginContractsSchema = z.infer<typeof pluginContractsSchema>;\n\nexport function parsePluginContracts(input: unknown) {\n return pluginContractsSchema.parse(input);\n}\n","/**\n * Plugin Configuration Contract\n *\n * Defines the shape of plugin configuration stored in kb.config.json\n * under plugins.commit section.\n *\n * This type is the single source of truth for:\n * - defineSetup (setup handler knows what config to create)\n * - defineCommand (commands can access typed config)\n */\n\n/**\n * LLM configuration for commit generation\n */\nexport interface LLMConfig {\n /** Whether to use LLM for commit generation (default: true) */\n enabled: boolean;\n /** Temperature for LLM responses (0-1, default: 0.3) */\n temperature: number;\n /** Maximum tokens for LLM response (default: 2000) */\n maxTokens: number;\n}\n\n/**\n * Storage configuration\n */\nexport interface StorageConfig {\n /** Directory for commit plugin data (default: .kb/commit) */\n directory: string;\n}\n\n/**\n * Git configuration\n */\nexport interface GitConfig {\n /** Protected branches that require confirmation (default: ['main', 'master']) */\n protectedBranches: string[];\n /** Whether to auto-stage all changes before commit (default: false) */\n autoStage: boolean;\n}\n\n/**\n * A single commit scope definition\n */\nexport interface CommitScope {\n /** Scope identifier — used as value in selector and in API requests */\n id: string;\n /** Display label shown in Studio UI */\n label: string;\n /**\n * Relative path from workspace root to the target git repository.\n * Use \".\" for the workspace root itself.\n * @example \".\"\n * @example \"public/kb-labs\"\n * @example \"plugins/kb-labs-mind\"\n */\n path: string;\n /** Optional description shown in Studio selector */\n description?: string;\n}\n\n/**\n * Scope configuration\n */\nexport interface ScopeConfig {\n /** Default scope id to pre-select in Studio and use when not specified via CLI */\n default?: string;\n /**\n * Explicit list of available scopes.\n * If not provided, falls back to a single \"root\" scope (workspace root).\n *\n * @example\n * ```json\n * \"scopes\": [\n * { \"id\": \"root\", \"label\": \"workspace root\", \"path\": \".\" },\n * { \"id\": \"public/kb-labs\", \"label\": \"kb-labs (public)\", \"path\": \"public/kb-labs\" }\n * ]\n * ```\n */\n scopes?: CommitScope[];\n}\n\n/**\n * Plugin configuration stored in kb.config.json\n *\n * @example\n * ```json\n * {\n * \"plugins\": {\n * \"commit\": {\n * \"enabled\": true,\n * \"llm\": {\n * \"enabled\": true,\n * \"temperature\": 0.3,\n * \"maxTokens\": 2000\n * },\n * \"storage\": {\n * \"directory\": \".kb/commit\"\n * },\n * \"git\": {\n * \"protectedBranches\": [\"main\", \"master\"],\n * \"autoStage\": false\n * },\n * \"scope\": {\n * \"default\": \"kb-labs-commit-plugin\"\n * }\n * }\n * }\n * }\n * ```\n */\nexport interface CommitPluginConfig {\n /** Whether the plugin is enabled */\n enabled: boolean;\n /** LLM configuration */\n llm: LLMConfig;\n /** Storage configuration */\n storage: StorageConfig;\n /** Git configuration */\n git: GitConfig;\n /** Scope configuration */\n scope?: ScopeConfig;\n}\n\n/**\n * Environment variables supported by commit plugin\n * Must be declared in manifest.permissions.env.allow\n */\nexport const COMMIT_ENV_VARS = [\n \"KB_COMMIT_LLM_ENABLED\",\n \"KB_COMMIT_LLM_TEMPERATURE\",\n \"KB_COMMIT_LLM_MAX_TOKENS\",\n \"KB_COMMIT_STORAGE_DIR\",\n \"KB_COMMIT_AUTO_STAGE\",\n] as const;\n\nexport type CommitEnvVar = (typeof COMMIT_ENV_VARS)[number];\n\n/**\n * Default plugin configuration values\n */\nexport const defaultCommitConfig: CommitPluginConfig = {\n enabled: true,\n llm: {\n enabled: true,\n temperature: 0.3,\n maxTokens: 2000,\n },\n storage: {\n directory: \".kb/commit\",\n },\n git: {\n protectedBranches: [\"main\", \"master\"],\n autoStage: false,\n },\n scope: {\n default: 'root',\n scopes: [{ id: 'root', label: 'root', path: '.' }],\n },\n};\n\n/**\n * Resolve config with env variable overrides\n *\n * @param fileConfig - Config from kb.config.json (via useConfig)\n * @param env - Environment variables (from commitEnv.parse(runtime))\n */\nexport function resolveCommitConfig(\n fileConfig: Partial<CommitPluginConfig> = {},\n env: Partial<{\n KB_COMMIT_LLM_ENABLED: boolean;\n KB_COMMIT_LLM_TEMPERATURE: number;\n KB_COMMIT_LLM_MAX_TOKENS: number;\n KB_COMMIT_STORAGE_DIR: string;\n KB_COMMIT_AUTO_STAGE: boolean;\n }> = {},\n): CommitPluginConfig {\n const config: CommitPluginConfig = {\n enabled: fileConfig.enabled ?? defaultCommitConfig.enabled,\n llm: {\n enabled:\n env.KB_COMMIT_LLM_ENABLED ??\n fileConfig.llm?.enabled ??\n defaultCommitConfig.llm.enabled,\n temperature:\n env.KB_COMMIT_LLM_TEMPERATURE ??\n fileConfig.llm?.temperature ??\n defaultCommitConfig.llm.temperature,\n maxTokens:\n env.KB_COMMIT_LLM_MAX_TOKENS ??\n fileConfig.llm?.maxTokens ??\n defaultCommitConfig.llm.maxTokens,\n },\n storage: {\n directory:\n env.KB_COMMIT_STORAGE_DIR ??\n fileConfig.storage?.directory ??\n defaultCommitConfig.storage.directory,\n },\n git: {\n protectedBranches:\n fileConfig.git?.protectedBranches ??\n defaultCommitConfig.git.protectedBranches,\n autoStage:\n env.KB_COMMIT_AUTO_STAGE ??\n fileConfig.git?.autoStage ??\n defaultCommitConfig.git.autoStage,\n },\n scope: {\n default: fileConfig.scope?.default ?? defaultCommitConfig.scope?.default,\n scopes: fileConfig.scope?.scopes ?? defaultCommitConfig.scope?.scopes,\n },\n };\n\n return config;\n}\n","import { z } from \"zod\";\n\n// ============================================================================\n// Core Types\n// ============================================================================\n\n/**\n * Conventional commit types\n */\nexport const ConventionalTypeSchema = z.enum([\n \"feat\",\n \"fix\",\n \"refactor\",\n \"chore\",\n \"docs\",\n \"test\",\n \"build\",\n \"ci\",\n \"perf\",\n]);\n\nexport type ConventionalType = z.infer<typeof ConventionalTypeSchema>;\n\n/**\n * Release hint for semantic versioning\n */\nexport const ReleaseHintSchema = z.enum([\"none\", \"patch\", \"minor\", \"major\"]);\n\nexport type ReleaseHint = z.infer<typeof ReleaseHintSchema>;\n\n// ============================================================================\n// Git Status\n// ============================================================================\n\n/**\n * Git status snapshot\n */\nexport const GitStatusSchema = z.object({\n staged: z.array(z.string()),\n unstaged: z.array(z.string()),\n untracked: z.array(z.string()),\n});\n\nexport type GitStatus = z.infer<typeof GitStatusSchema>;\n\n/**\n * File summary with diff stats\n */\nexport const FileSummarySchema = z.object({\n path: z.string(),\n status: z.enum([\"added\", \"modified\", \"deleted\", \"renamed\", \"copied\"]),\n additions: z.number().int().min(0),\n deletions: z.number().int().min(0),\n binary: z.boolean().default(false),\n /** Whether file is truly new (never existed in repo history) */\n isNewFile: z.boolean().default(false),\n});\n\nexport type FileSummary = z.infer<typeof FileSummarySchema>;\n\n// ============================================================================\n// Commit Plan\n// ============================================================================\n\n/**\n * Reasoning for commit type classification\n */\nexport const CommitReasoningSchema = z.object({\n /** Does this change add NEW user-visible behavior? */\n newBehavior: z.boolean().default(false),\n /** Does this change fix BROKEN functionality? */\n fixesBug: z.boolean().default(false),\n /** Is this only INTERNAL restructuring? */\n internalOnly: z.boolean().default(false),\n /** Human-readable explanation of why this type was chosen */\n explanation: z.string().default(''),\n /** LLM confidence in this classification (0.0-1.0) */\n confidence: z.number().min(0).max(1).default(0.5),\n});\n\nexport type CommitReasoning = z.infer<typeof CommitReasoningSchema>;\n\n/**\n * A single commit group in the plan\n */\nexport const CommitGroupSchema = z.object({\n id: z.string(),\n type: ConventionalTypeSchema,\n scope: z.string().optional(),\n message: z.string().min(1),\n body: z.string().optional(),\n files: z.array(z.string()).min(1),\n releaseHint: ReleaseHintSchema.default(\"none\"),\n breaking: z.boolean().default(false),\n /** Reasoning for commit type classification (optional, added by LLM) */\n reasoning: CommitReasoningSchema.optional(),\n});\n\nexport type CommitGroup = z.infer<typeof CommitGroupSchema>;\n\n/**\n * Complete commit plan\n */\nexport const CommitPlanSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n repoRoot: z.string(),\n gitStatus: GitStatusSchema,\n commits: z.array(CommitGroupSchema),\n metadata: z.object({\n totalFiles: z.number().int().min(0),\n totalCommits: z.number().int().min(0),\n llmUsed: z.boolean(),\n tokensUsed: z.number().int().min(0).optional(),\n /** Whether LLM escalated to Phase 2 (requested diff for more context) */\n escalated: z.boolean().optional(),\n }),\n});\n\nexport type CommitPlan = z.infer<typeof CommitPlanSchema>;\n\n/**\n * Git status snapshot for storage\n */\nexport const GitStatusSnapshotSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n status: GitStatusSchema,\n summaries: z.array(FileSummarySchema),\n});\n\nexport type GitStatusSnapshot = z.infer<typeof GitStatusSnapshotSchema>;\n\n// ============================================================================\n// Command Input/Output Schemas\n// ============================================================================\n\n// --- commit (run) ---\nexport const CommitRunInputSchema = z.object({\n scope: z.string().optional(),\n dryRun: z.boolean().default(false),\n withPush: z.boolean().default(false),\n});\n\nexport type CommitRunInput = z.infer<typeof CommitRunInputSchema>;\n\nexport const CommitRunOutputSchema = z.object({\n plan: CommitPlanSchema,\n applied: z.boolean(),\n pushed: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string().optional(),\n message: z.string(),\n }),\n ),\n});\n\nexport type CommitRunOutput = z.infer<typeof CommitRunOutputSchema>;\n\n// --- commit:generate ---\nexport const GenerateInputSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type GenerateInput = z.infer<typeof GenerateInputSchema>;\n\nexport const GenerateOutputSchema = z.object({\n plan: CommitPlanSchema,\n planPath: z.string(),\n});\n\nexport type GenerateOutput = z.infer<typeof GenerateOutputSchema>;\n\n// --- commit:apply ---\nexport const ApplyInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type ApplyInput = z.infer<typeof ApplyInputSchema>;\n\nexport const ApplyOutputSchema = z.object({\n success: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()).default([]),\n});\n\nexport type ApplyOutput = z.infer<typeof ApplyOutputSchema>;\n\n// --- commit:push ---\nexport const PushInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type PushInput = z.infer<typeof PushInputSchema>;\n\nexport const PushOutputSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commits: z.number().int().min(0),\n});\n\nexport type PushOutput = z.infer<typeof PushOutputSchema>;\n\n// --- commit:open ---\nexport const OpenInputSchema = z.object({\n json: z.boolean().default(false),\n});\n\nexport type OpenInput = z.infer<typeof OpenInputSchema>;\n\nexport const OpenOutputSchema = z.object({\n hasPlan: z.boolean(),\n plan: CommitPlanSchema.optional(),\n planPath: z.string().optional(),\n stale: z.boolean().optional(),\n staleReason: z.string().optional(),\n});\n\nexport type OpenOutput = z.infer<typeof OpenOutputSchema>;\n\n// --- commit:reset ---\nexport const ResetOutputSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\nexport type ResetOutput = z.infer<typeof ResetOutputSchema>;\n\n// ============================================================================\n// Result Types (for core package)\n// ============================================================================\n\nexport const ApplyResultSchema = z.object({\n success: z.boolean(),\n appliedCommits: z.array(\n z.object({\n groupId: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()),\n});\n\nexport type ApplyResult = z.infer<typeof ApplyResultSchema>;\n\nexport const PushResultSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commitsPushed: z.number().int().min(0),\n error: z.string().optional(),\n});\n\nexport type PushResult = z.infer<typeof PushResultSchema>;\n\n// ============================================================================\n// REST API Responses\n// ============================================================================\n\n/**\n * GET /actions response\n * Returns empty object for actions widget (widget only needs action buttons)\n */\nexport const ActionsResponseSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type ActionsResponse = z.infer<typeof ActionsResponseSchema>;\n","import { z } from \"zod\";\nimport {\n CommitPlanSchema,\n GitStatusSchema,\n FileSummarySchema,\n ApplyResultSchema,\n PushResultSchema,\n} from \"../schema\";\n\n// ============================================================================\n// Scopes\n// ============================================================================\n\n/**\n * Single scope entry\n */\nexport const ScopeSchema = z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n path: z.string().min(1),\n description: z.string().optional(),\n});\n\nexport type Scope = z.infer<typeof ScopeSchema>;\n\n/**\n * GET /scopes response\n */\nexport const ScopesResponseSchema = z.object({\n scopes: z.array(ScopeSchema),\n});\n\nexport type ScopesResponse = z.infer<typeof ScopesResponseSchema>;\n\n// ============================================================================\n// Status\n// ============================================================================\n\n/**\n * Plan status lifecycle\n * - idle: No plan exists, need to generate\n * - ready: Plan generated, ready to apply\n * - applied: Plan applied as commits, ready to push\n * - pushed: Commits pushed to remote\n */\nexport const PlanStatusSchema = z.enum([\"idle\", \"ready\", \"applied\", \"pushed\"]);\n\nexport type PlanStatus = z.infer<typeof PlanStatusSchema>;\n\n/**\n * GET /status?scope=X response\n */\nexport const StatusResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n hasPlan: z.boolean(),\n planStatus: PlanStatusSchema.default(\"idle\"),\n planTimestamp: z.string().datetime().optional(),\n gitStatus: GitStatusSchema.optional(),\n filesChanged: z.number().int().min(0).default(0),\n commitsInPlan: z.number().int().min(0).default(0),\n commitsApplied: z.number().int().min(0).default(0),\n branch: z.string().optional(),\n workingDir: z.string().optional(),\n planStale: z.boolean().optional(),\n planStaleReason: z.string().optional(),\n});\n\nexport type StatusResponse = z.infer<typeof StatusResponseSchema>;\n\n// ============================================================================\n// Generate Plan\n// ============================================================================\n\n/**\n * POST /generate request body\n */\nexport const GenerateRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n dryRun: z.boolean().default(false),\n allowSecrets: z.boolean().default(false),\n autoConfirm: z.boolean().default(false),\n});\n\nexport type GenerateRequest = z.infer<typeof GenerateRequestSchema>;\n\n/**\n * Secret match location\n */\nexport const SecretMatchSchema = z.object({\n file: z.string(),\n line: z.number(),\n column: z.number(),\n type: z.string(),\n pattern: z.string(),\n matched: z.string(),\n context: z.string(),\n});\n\nexport type SecretMatch = z.infer<typeof SecretMatchSchema>;\n\n/**\n * POST /generate response\n */\nexport const GenerateResponseSchema = z.object({\n success: z.boolean(),\n // Success fields (when success=true)\n plan: CommitPlanSchema.optional(),\n planPath: z.string().optional(),\n scope: z.string().default(\"root\"),\n // Secrets detected fields (when success=false)\n secretsDetected: z.boolean().default(false),\n secrets: z.array(SecretMatchSchema).optional(),\n message: z.string().optional(),\n});\n\nexport type GenerateResponse = z.infer<typeof GenerateResponseSchema>;\n\n// ============================================================================\n// Get Plan\n// ============================================================================\n\n/**\n * GET /plan?scope=X response\n */\nexport const PlanResponseSchema = z.object({\n hasPlan: z.boolean(),\n plan: CommitPlanSchema.optional(),\n scope: z.string().default(\"root\"),\n});\n\nexport type PlanResponse = z.infer<typeof PlanResponseSchema>;\n\n// ============================================================================\n// Patch Plan (Edit Commit)\n// ============================================================================\n\n/**\n * PATCH /plan request body — edit a single commit in the plan\n */\nexport const PatchPlanRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n commitId: z.string().min(1),\n message: z.string().min(1).optional(),\n type: z.string().optional(),\n scope_: z.string().optional(),\n body: z.string().optional(),\n});\n\nexport type PatchPlanRequest = z.infer<typeof PatchPlanRequestSchema>;\n\n/**\n * PATCH /plan response\n */\nexport const PatchPlanResponseSchema = z.object({\n success: z.boolean(),\n scope: z.string().default(\"root\"),\n commitId: z.string(),\n});\n\nexport type PatchPlanResponse = z.infer<typeof PatchPlanResponseSchema>;\n\n// ============================================================================\n// Regenerate Commit\n// ============================================================================\n\n/**\n * POST /regenerate-commit request body\n */\nexport const RegenerateCommitRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n commitId: z.string().min(1),\n instruction: z.string().optional(),\n});\n\nexport type RegenerateCommitRequest = z.infer<typeof RegenerateCommitRequestSchema>;\n\n/**\n * POST /regenerate-commit response\n */\nexport const RegenerateCommitResponseSchema = z.object({\n success: z.boolean(),\n scope: z.string().default(\"root\"),\n commitId: z.string(),\n commit: CommitPlanSchema.shape.commits.element.optional(),\n});\n\nexport type RegenerateCommitResponse = z.infer<typeof RegenerateCommitResponseSchema>;\n\n// ============================================================================\n// Apply Commits\n// ============================================================================\n\n/**\n * POST /apply request body\n */\nexport const ApplyRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n force: z.boolean().default(false),\n /** Optional: apply only specific commits by ID. If omitted, applies all. */\n commitIds: z.array(z.string()).optional(),\n});\n\nexport type ApplyRequest = z.infer<typeof ApplyRequestSchema>;\n\n/**\n * POST /apply response\n */\nexport const ApplyResponseSchema = z.object({\n result: ApplyResultSchema,\n scope: z.string().default(\"root\"),\n});\n\nexport type ApplyResponse = z.infer<typeof ApplyResponseSchema>;\n\n// ============================================================================\n// Push Commits\n// ============================================================================\n\n/**\n * POST /push request body\n */\nexport const PushRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n remote: z.string().default(\"origin\"),\n force: z.boolean().default(false),\n});\n\nexport type PushRequest = z.infer<typeof PushRequestSchema>;\n\n/**\n * POST /push response\n */\nexport const PushResponseSchema = z.object({\n result: PushResultSchema,\n scope: z.string().default(\"root\"),\n});\n\nexport type PushResponse = z.infer<typeof PushResponseSchema>;\n\n// ============================================================================\n// Reset Plan\n// ============================================================================\n\n/**\n * DELETE /plan?scope=X response\n */\nexport const ResetResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n scope: z.string().default(\"root\"),\n});\n\nexport type ResetResponse = z.infer<typeof ResetResponseSchema>;\n\n// ============================================================================\n// Git Status\n// ============================================================================\n\n/**\n * GET /git-status?scope=X response\n */\nexport const GitStatusResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n status: GitStatusSchema,\n summaries: z.array(FileSummarySchema),\n totalFiles: z.number().int().min(0),\n});\n\nexport type GitStatusResponse = z.infer<typeof GitStatusResponseSchema>;\n\n// ============================================================================\n// File Diff\n// ============================================================================\n\n/**\n * GET /diff?scope=X&file=Y response\n */\nexport const FileDiffResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n file: z.string(),\n diff: z.string(),\n additions: z.number().int().min(0).default(0),\n deletions: z.number().int().min(0).default(0),\n});\n\nexport type FileDiffResponse = z.infer<typeof FileDiffResponseSchema>;\n\n// ============================================================================\n// Summarize Changes\n// ============================================================================\n\n/**\n * POST /summarize request body\n */\nexport const SummarizeRequestSchema = z.object({\n scope: z.string().default(\"root\"),\n /** Optional file path - if provided, summarize only this file */\n file: z.string().optional(),\n});\n\nexport type SummarizeRequest = z.infer<typeof SummarizeRequestSchema>;\n\n/**\n * POST /summarize response\n */\nexport const SummarizeResponseSchema = z.object({\n scope: z.string().default(\"root\"),\n file: z.string().optional(),\n summary: z.string(),\n /** Token usage for the LLM call */\n tokensUsed: z.number().int().min(0).optional(),\n});\n\nexport type SummarizeResponse = z.infer<typeof SummarizeResponseSchema>;\n","/**\n * Declarative flag definitions for commit plugin commands\n *\n * Using the new defineFlags system from @kb-labs/sdk for:\n * - Type safety\n * - Runtime validation\n * - Automatic type inference\n * - Consistent DX across commands\n */\n\nimport { defineFlags } from \"@kb-labs/sdk\";\n\n/**\n * Flags for commit:commit (run) command\n *\n * @example\n * ```bash\n * kb commit commit --scope=\"@kb-labs/core\" --dry-run --with-push\n * ```\n */\nexport const commitFlags = defineFlags({\n scope: {\n type: \"string\",\n description: \"Limit commits to specific package or path pattern\",\n examples: [\"@kb-labs/core\", \"packages/**\", \"kb-labs-mind/**\"],\n },\n json: {\n type: \"boolean\",\n description: \"Output result as JSON instead of formatted text\",\n default: false,\n },\n \"dry-run\": {\n type: \"boolean\",\n description: \"Preview commits without applying them to git\",\n default: false,\n },\n \"with-push\": {\n type: \"boolean\",\n description: \"Push commits to remote after applying\",\n default: false,\n },\n \"allow-secrets\": {\n type: \"boolean\",\n description:\n \"Allow committing files with detected secrets (requires manual confirmation). Use with caution after reviewing detected locations.\",\n default: false,\n },\n yes: {\n type: \"boolean\",\n description: \"Automatically confirm all prompts (non-interactive mode)\",\n default: false,\n },\n});\n\n/**\n * Inferred TypeScript type for commit command input\n *\n * Type resolves to:\n * {\n * scope?: string;\n * json: boolean;\n * 'dry-run': boolean;\n * 'with-push': boolean;\n * }\n */\nexport type CommitFlags = typeof commitFlags.infer;\n\n/**\n * Flags for commit:generate command\n *\n * @example\n * ```bash\n * kb commit generate --scope=\"@kb-labs/cli\" --json\n * ```\n */\nexport const generateFlags = defineFlags({\n scope: {\n type: \"string\",\n description: \"Limit analysis to specific package or path pattern\",\n examples: [\"@kb-labs/core\", \"packages/**\", \"kb-labs-mind/**\"],\n },\n json: {\n type: \"boolean\",\n description: \"Output commit plan as JSON instead of formatted text\",\n default: false,\n },\n \"allow-secrets\": {\n type: \"boolean\",\n description:\n \"Allow generating commits for files with detected secrets (requires manual confirmation). Use with caution after reviewing detected locations.\",\n default: false,\n },\n yes: {\n type: \"boolean\",\n description: \"Automatically confirm all prompts (non-interactive mode)\",\n default: false,\n },\n});\n\n/**\n * Inferred TypeScript type for generate command input\n *\n * Type resolves to:\n * {\n * scope?: string;\n * json: boolean;\n * }\n */\nexport type GenerateFlags = typeof generateFlags.infer;\n","/**\n * Environment variable definitions for commit plugin\n */\n\nimport { defineEnv } from \"@kb-labs/sdk\";\n\nexport const commitEnv = defineEnv({\n KB_COMMIT_LLM_ENABLED: {\n type: \"boolean\",\n default: true,\n description: \"Enable LLM-powered commit analysis\",\n },\n KB_COMMIT_LLM_TEMPERATURE: {\n type: \"number\",\n default: 0.3,\n description: \"LLM temperature for commit message generation (0-1)\",\n validate: (v) => {\n if (v < 0 || v > 1) {\n throw new Error(\"KB_COMMIT_LLM_TEMPERATURE must be between 0 and 1\");\n }\n },\n },\n KB_COMMIT_LLM_MAX_TOKENS: {\n type: \"number\",\n default: 2000,\n description: \"Maximum tokens for LLM commit analysis\",\n },\n KB_COMMIT_STORAGE_DIR: {\n type: \"string\",\n default: \".kb/commit\",\n description: \"Directory for storing commit history\",\n },\n KB_COMMIT_AUTO_STAGE: {\n type: \"boolean\",\n default: false,\n description: \"Automatically stage files before committing\",\n },\n});\n\nexport type CommitEnv = typeof commitEnv.type;\n","/**\n * @module @kb-labs/commit-contracts/routes\n * REST API route constants for commit plugin\n */\n\n/**\n * REST API base path for commit plugin\n */\nexport const COMMIT_BASE_PATH = \"/v1/plugins/commit\" as const;\n\n/**\n * REST API route paths (relative to basePath)\n *\n * These are used in both:\n * - manifest.rest.routes[].path (route definitions)\n * - manifest.studio.widgets[].data.source.routeId (widget data sources)\n * - manifest.studio.widgets[].actions[].endpoint.routeId (widget actions)\n */\nexport const COMMIT_ROUTES = {\n /** GET /scopes - List available scopes */\n SCOPES: \"/scopes\",\n\n /** GET /status - Get current status (plan + git) */\n STATUS: \"/status\",\n\n /** GET /plan - Get current commit plan */\n PLAN: \"/plan\",\n\n /** GET /git-status - Get git status with file details */\n GIT_STATUS: \"/git-status\",\n\n /** GET /files - Get file tree with diff statistics */\n FILES: \"/files\",\n\n /** GET /diff - Get diff for a specific file */\n DIFF: \"/diff\",\n\n /** POST /summarize - Summarize changes using LLM */\n SUMMARIZE: \"/summarize\",\n\n /** GET /actions - Get actions widget data */\n ACTIONS: \"/actions\",\n\n /** POST /generate - Generate new commit plan */\n GENERATE: \"/generate\",\n\n /** POST /apply - Apply commit plan */\n APPLY: \"/apply\",\n\n /** POST /push - Push commits to remote */\n PUSH: \"/push\",\n\n /** DELETE /plan - Delete current plan */\n RESET: \"/plan\",\n\n /** PATCH /plan - Edit a single commit in the plan */\n PATCH_PLAN: \"/plan\",\n\n /** POST /regenerate-commit - Regenerate a single commit */\n REGENERATE_COMMIT: \"/regenerate-commit\",\n} as const;\n\n/**\n * Full REST API URLs (basePath + route)\n * Useful for testing and documentation\n */\nexport const COMMIT_FULL_ROUTES = {\n SCOPES: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.SCOPES}`,\n STATUS: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.STATUS}`,\n PLAN: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.PLAN}`,\n GIT_STATUS: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.GIT_STATUS}`,\n FILES: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.FILES}`,\n DIFF: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.DIFF}`,\n SUMMARIZE: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.SUMMARIZE}`,\n ACTIONS: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.ACTIONS}`,\n GENERATE: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.GENERATE}`,\n APPLY: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.APPLY}`,\n PUSH: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.PUSH}`,\n RESET: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.RESET}`,\n PATCH_PLAN: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.PATCH_PLAN}`,\n REGENERATE_COMMIT: `${COMMIT_BASE_PATH}${COMMIT_ROUTES.REGENERATE_COMMIT}`,\n} as const;\n\n/**\n * Widget-friendly route IDs (without leading slash)\n * Use these in manifest.studio.widgets[].data.source.routeId\n */\nexport const COMMIT_WIDGET_ROUTES = {\n SCOPES: \"scopes\",\n STATUS: \"status\",\n PLAN: \"plan\",\n GIT_STATUS: \"git-status\",\n FILES: \"files\",\n DIFF: \"diff\",\n SUMMARIZE: \"summarize\",\n ACTIONS: \"actions\",\n GENERATE: \"generate\",\n APPLY: \"apply\",\n PUSH: \"push\",\n RESET: \"plan\",\n PATCH_PLAN: \"plan\",\n REGENERATE_COMMIT: \"regenerate-commit\",\n} as const;\n\nexport type CommitRoute = (typeof COMMIT_ROUTES)[keyof typeof COMMIT_ROUTES];\nexport type CommitWidgetRoute =\n (typeof COMMIT_WIDGET_ROUTES)[keyof typeof COMMIT_WIDGET_ROUTES];\n","/**\n * @module @kb-labs/commit-contracts/events\n * Studio event definitions for commit plugin\n */\n\n/**\n * Event names for commit plugin widgets\n */\nexport const COMMIT_EVENTS = {\n /** Scope selector changed */\n SCOPE_CHANGED: \"scope:changed\",\n /** Form submitted (actions widget) */\n FORM_SUBMITTED: \"form:submitted\",\n /** Commit plan generated */\n PLAN_GENERATED: \"plan:generated\",\n} as const;\n\nexport type CommitEventName =\n (typeof COMMIT_EVENTS)[keyof typeof COMMIT_EVENTS];\n\n/**\n * Event payload types\n */\n\n/** Payload for scope:changed event */\nexport interface ScopeChangedPayload {\n /** Selected scope ID */\n scope: string;\n}\n\n/** Payload for form:submitted event */\nexport interface FormSubmittedPayload {\n /** Action ID that was submitted */\n action: string;\n /** Form data (if any) */\n data?: Record<string, unknown>;\n}\n\n/** Payload for plan:generated event */\nexport interface PlanGeneratedPayload {\n /** The generated commit plan */\n plan: {\n commits: Array<{\n type: string;\n scope?: string;\n message: string;\n body?: string;\n files: string[];\n }>;\n };\n /** Scope where plan was generated */\n scope: string;\n}\n\n/**\n * Union type for all commit event payloads\n */\nexport type CommitEventPayload =\n | ScopeChangedPayload\n | FormSubmittedPayload\n | PlanGeneratedPayload;\n","export {\n pluginContractsManifest,\n type PluginArtifactIds,\n type PluginCommandIds,\n} from \"./contract\";\nexport {\n getArtifactPath,\n getArtifact,\n hasArtifact,\n getCommand,\n hasCommand,\n getCommandId,\n getArtifactId,\n} from \"./helpers\";\nexport {\n parsePluginContracts,\n pluginContractsSchema,\n} from \"./schema/contract.schema\";\nexport { contractsSchemaId, contractsVersion } from \"./version\";\nexport * from \"./types\";\nexport * from \"./schema\";\nexport * from \"./schema/rest.schema\";\nexport * from \"./flags\";\nexport * from \"./env\";\nexport * from \"./routes\";\nexport * from \"./events\";\n\n/**\n * Cache key prefix for commit plugin\n * Used for platform cache namespacing: commit:git-status:*, commit:plan-applied:*\n */\nexport const COMMIT_CACHE_PREFIX = \"commit:\" as const;\n"]}
|
package/dist/schema.d.ts
CHANGED
|
@@ -39,11 +39,11 @@ declare const FileSummarySchema: z.ZodObject<{
|
|
|
39
39
|
/** Whether file is truly new (never existed in repo history) */
|
|
40
40
|
isNewFile: z.ZodDefault<z.ZodBoolean>;
|
|
41
41
|
}, "strip", z.ZodTypeAny, {
|
|
42
|
+
binary: boolean;
|
|
42
43
|
path: string;
|
|
43
44
|
status: "added" | "modified" | "deleted" | "renamed" | "copied";
|
|
44
45
|
additions: number;
|
|
45
46
|
deletions: number;
|
|
46
|
-
binary: boolean;
|
|
47
47
|
isNewFile: boolean;
|
|
48
48
|
}, {
|
|
49
49
|
path: string;
|
|
@@ -124,7 +124,7 @@ declare const CommitGroupSchema: z.ZodObject<{
|
|
|
124
124
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
125
125
|
id: string;
|
|
126
126
|
files: string[];
|
|
127
|
-
releaseHint: "
|
|
127
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
128
128
|
breaking: boolean;
|
|
129
129
|
scope?: string | undefined;
|
|
130
130
|
body?: string | undefined;
|
|
@@ -142,7 +142,7 @@ declare const CommitGroupSchema: z.ZodObject<{
|
|
|
142
142
|
files: string[];
|
|
143
143
|
scope?: string | undefined;
|
|
144
144
|
body?: string | undefined;
|
|
145
|
-
releaseHint?: "
|
|
145
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
146
146
|
breaking?: boolean | undefined;
|
|
147
147
|
reasoning?: {
|
|
148
148
|
newBehavior?: boolean | undefined;
|
|
@@ -212,7 +212,7 @@ declare const CommitPlanSchema: z.ZodObject<{
|
|
|
212
212
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
213
213
|
id: string;
|
|
214
214
|
files: string[];
|
|
215
|
-
releaseHint: "
|
|
215
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
216
216
|
breaking: boolean;
|
|
217
217
|
scope?: string | undefined;
|
|
218
218
|
body?: string | undefined;
|
|
@@ -230,7 +230,7 @@ declare const CommitPlanSchema: z.ZodObject<{
|
|
|
230
230
|
files: string[];
|
|
231
231
|
scope?: string | undefined;
|
|
232
232
|
body?: string | undefined;
|
|
233
|
-
releaseHint?: "
|
|
233
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
234
234
|
breaking?: boolean | undefined;
|
|
235
235
|
reasoning?: {
|
|
236
236
|
newBehavior?: boolean | undefined;
|
|
@@ -274,7 +274,7 @@ declare const CommitPlanSchema: z.ZodObject<{
|
|
|
274
274
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
275
275
|
id: string;
|
|
276
276
|
files: string[];
|
|
277
|
-
releaseHint: "
|
|
277
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
278
278
|
breaking: boolean;
|
|
279
279
|
scope?: string | undefined;
|
|
280
280
|
body?: string | undefined;
|
|
@@ -309,7 +309,7 @@ declare const CommitPlanSchema: z.ZodObject<{
|
|
|
309
309
|
files: string[];
|
|
310
310
|
scope?: string | undefined;
|
|
311
311
|
body?: string | undefined;
|
|
312
|
-
releaseHint?: "
|
|
312
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
313
313
|
breaking?: boolean | undefined;
|
|
314
314
|
reasoning?: {
|
|
315
315
|
newBehavior?: boolean | undefined;
|
|
@@ -356,11 +356,11 @@ declare const GitStatusSnapshotSchema: z.ZodObject<{
|
|
|
356
356
|
/** Whether file is truly new (never existed in repo history) */
|
|
357
357
|
isNewFile: z.ZodDefault<z.ZodBoolean>;
|
|
358
358
|
}, "strip", z.ZodTypeAny, {
|
|
359
|
+
binary: boolean;
|
|
359
360
|
path: string;
|
|
360
361
|
status: "added" | "modified" | "deleted" | "renamed" | "copied";
|
|
361
362
|
additions: number;
|
|
362
363
|
deletions: number;
|
|
363
|
-
binary: boolean;
|
|
364
364
|
isNewFile: boolean;
|
|
365
365
|
}, {
|
|
366
366
|
path: string;
|
|
@@ -379,11 +379,11 @@ declare const GitStatusSnapshotSchema: z.ZodObject<{
|
|
|
379
379
|
schemaVersion: "1.0";
|
|
380
380
|
createdAt: string;
|
|
381
381
|
summaries: {
|
|
382
|
+
binary: boolean;
|
|
382
383
|
path: string;
|
|
383
384
|
status: "added" | "modified" | "deleted" | "renamed" | "copied";
|
|
384
385
|
additions: number;
|
|
385
386
|
deletions: number;
|
|
386
|
-
binary: boolean;
|
|
387
387
|
isNewFile: boolean;
|
|
388
388
|
}[];
|
|
389
389
|
}, {
|
|
@@ -475,7 +475,7 @@ declare const CommitRunOutputSchema: z.ZodObject<{
|
|
|
475
475
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
476
476
|
id: string;
|
|
477
477
|
files: string[];
|
|
478
|
-
releaseHint: "
|
|
478
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
479
479
|
breaking: boolean;
|
|
480
480
|
scope?: string | undefined;
|
|
481
481
|
body?: string | undefined;
|
|
@@ -493,7 +493,7 @@ declare const CommitRunOutputSchema: z.ZodObject<{
|
|
|
493
493
|
files: string[];
|
|
494
494
|
scope?: string | undefined;
|
|
495
495
|
body?: string | undefined;
|
|
496
|
-
releaseHint?: "
|
|
496
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
497
497
|
breaking?: boolean | undefined;
|
|
498
498
|
reasoning?: {
|
|
499
499
|
newBehavior?: boolean | undefined;
|
|
@@ -537,7 +537,7 @@ declare const CommitRunOutputSchema: z.ZodObject<{
|
|
|
537
537
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
538
538
|
id: string;
|
|
539
539
|
files: string[];
|
|
540
|
-
releaseHint: "
|
|
540
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
541
541
|
breaking: boolean;
|
|
542
542
|
scope?: string | undefined;
|
|
543
543
|
body?: string | undefined;
|
|
@@ -572,7 +572,7 @@ declare const CommitRunOutputSchema: z.ZodObject<{
|
|
|
572
572
|
files: string[];
|
|
573
573
|
scope?: string | undefined;
|
|
574
574
|
body?: string | undefined;
|
|
575
|
-
releaseHint?: "
|
|
575
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
576
576
|
breaking?: boolean | undefined;
|
|
577
577
|
reasoning?: {
|
|
578
578
|
newBehavior?: boolean | undefined;
|
|
@@ -625,7 +625,7 @@ declare const CommitRunOutputSchema: z.ZodObject<{
|
|
|
625
625
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
626
626
|
id: string;
|
|
627
627
|
files: string[];
|
|
628
|
-
releaseHint: "
|
|
628
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
629
629
|
breaking: boolean;
|
|
630
630
|
scope?: string | undefined;
|
|
631
631
|
body?: string | undefined;
|
|
@@ -669,7 +669,7 @@ declare const CommitRunOutputSchema: z.ZodObject<{
|
|
|
669
669
|
files: string[];
|
|
670
670
|
scope?: string | undefined;
|
|
671
671
|
body?: string | undefined;
|
|
672
|
-
releaseHint?: "
|
|
672
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
673
673
|
breaking?: boolean | undefined;
|
|
674
674
|
reasoning?: {
|
|
675
675
|
newBehavior?: boolean | undefined;
|
|
@@ -756,7 +756,7 @@ declare const GenerateOutputSchema: z.ZodObject<{
|
|
|
756
756
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
757
757
|
id: string;
|
|
758
758
|
files: string[];
|
|
759
|
-
releaseHint: "
|
|
759
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
760
760
|
breaking: boolean;
|
|
761
761
|
scope?: string | undefined;
|
|
762
762
|
body?: string | undefined;
|
|
@@ -774,7 +774,7 @@ declare const GenerateOutputSchema: z.ZodObject<{
|
|
|
774
774
|
files: string[];
|
|
775
775
|
scope?: string | undefined;
|
|
776
776
|
body?: string | undefined;
|
|
777
|
-
releaseHint?: "
|
|
777
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
778
778
|
breaking?: boolean | undefined;
|
|
779
779
|
reasoning?: {
|
|
780
780
|
newBehavior?: boolean | undefined;
|
|
@@ -818,7 +818,7 @@ declare const GenerateOutputSchema: z.ZodObject<{
|
|
|
818
818
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
819
819
|
id: string;
|
|
820
820
|
files: string[];
|
|
821
|
-
releaseHint: "
|
|
821
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
822
822
|
breaking: boolean;
|
|
823
823
|
scope?: string | undefined;
|
|
824
824
|
body?: string | undefined;
|
|
@@ -853,7 +853,7 @@ declare const GenerateOutputSchema: z.ZodObject<{
|
|
|
853
853
|
files: string[];
|
|
854
854
|
scope?: string | undefined;
|
|
855
855
|
body?: string | undefined;
|
|
856
|
-
releaseHint?: "
|
|
856
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
857
857
|
breaking?: boolean | undefined;
|
|
858
858
|
reasoning?: {
|
|
859
859
|
newBehavior?: boolean | undefined;
|
|
@@ -887,7 +887,7 @@ declare const GenerateOutputSchema: z.ZodObject<{
|
|
|
887
887
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
888
888
|
id: string;
|
|
889
889
|
files: string[];
|
|
890
|
-
releaseHint: "
|
|
890
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
891
891
|
breaking: boolean;
|
|
892
892
|
scope?: string | undefined;
|
|
893
893
|
body?: string | undefined;
|
|
@@ -925,7 +925,7 @@ declare const GenerateOutputSchema: z.ZodObject<{
|
|
|
925
925
|
files: string[];
|
|
926
926
|
scope?: string | undefined;
|
|
927
927
|
body?: string | undefined;
|
|
928
|
-
releaseHint?: "
|
|
928
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
929
929
|
breaking?: boolean | undefined;
|
|
930
930
|
reasoning?: {
|
|
931
931
|
newBehavior?: boolean | undefined;
|
|
@@ -1079,7 +1079,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1079
1079
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1080
1080
|
id: string;
|
|
1081
1081
|
files: string[];
|
|
1082
|
-
releaseHint: "
|
|
1082
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1083
1083
|
breaking: boolean;
|
|
1084
1084
|
scope?: string | undefined;
|
|
1085
1085
|
body?: string | undefined;
|
|
@@ -1097,7 +1097,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1097
1097
|
files: string[];
|
|
1098
1098
|
scope?: string | undefined;
|
|
1099
1099
|
body?: string | undefined;
|
|
1100
|
-
releaseHint?: "
|
|
1100
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1101
1101
|
breaking?: boolean | undefined;
|
|
1102
1102
|
reasoning?: {
|
|
1103
1103
|
newBehavior?: boolean | undefined;
|
|
@@ -1141,7 +1141,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1141
1141
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1142
1142
|
id: string;
|
|
1143
1143
|
files: string[];
|
|
1144
|
-
releaseHint: "
|
|
1144
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1145
1145
|
breaking: boolean;
|
|
1146
1146
|
scope?: string | undefined;
|
|
1147
1147
|
body?: string | undefined;
|
|
@@ -1176,7 +1176,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1176
1176
|
files: string[];
|
|
1177
1177
|
scope?: string | undefined;
|
|
1178
1178
|
body?: string | undefined;
|
|
1179
|
-
releaseHint?: "
|
|
1179
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1180
1180
|
breaking?: boolean | undefined;
|
|
1181
1181
|
reasoning?: {
|
|
1182
1182
|
newBehavior?: boolean | undefined;
|
|
@@ -1213,7 +1213,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1213
1213
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1214
1214
|
id: string;
|
|
1215
1215
|
files: string[];
|
|
1216
|
-
releaseHint: "
|
|
1216
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1217
1217
|
breaking: boolean;
|
|
1218
1218
|
scope?: string | undefined;
|
|
1219
1219
|
body?: string | undefined;
|
|
@@ -1254,7 +1254,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1254
1254
|
files: string[];
|
|
1255
1255
|
scope?: string | undefined;
|
|
1256
1256
|
body?: string | undefined;
|
|
1257
|
-
releaseHint?: "
|
|
1257
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1258
1258
|
breaking?: boolean | undefined;
|
|
1259
1259
|
reasoning?: {
|
|
1260
1260
|
newBehavior?: boolean | undefined;
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema.ts"],"names":[],"mappings":"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","file":"schema.js","sourcesContent":["import { z } from \"zod\";\n\n// ============================================================================\n// Core Types\n// ============================================================================\n\n/**\n * Conventional commit types\n */\nexport const ConventionalTypeSchema = z.enum([\n \"feat\",\n \"fix\",\n \"refactor\",\n \"chore\",\n \"docs\",\n \"test\",\n \"build\",\n \"ci\",\n \"perf\",\n]);\n\nexport type ConventionalType = z.infer<typeof ConventionalTypeSchema>;\n\n/**\n * Release hint for semantic versioning\n */\nexport const ReleaseHintSchema = z.enum([\"none\", \"patch\", \"minor\", \"major\"]);\n\nexport type ReleaseHint = z.infer<typeof ReleaseHintSchema>;\n\n// ============================================================================\n// Git Status\n// ============================================================================\n\n/**\n * Git status snapshot\n */\nexport const GitStatusSchema = z.object({\n staged: z.array(z.string()),\n unstaged: z.array(z.string()),\n untracked: z.array(z.string()),\n});\n\nexport type GitStatus = z.infer<typeof GitStatusSchema>;\n\n/**\n * File summary with diff stats\n */\nexport const FileSummarySchema = z.object({\n path: z.string(),\n status: z.enum([\"added\", \"modified\", \"deleted\", \"renamed\", \"copied\"]),\n additions: z.number().int().min(0),\n deletions: z.number().int().min(0),\n binary: z.boolean().default(false),\n /** Whether file is truly new (never existed in repo history) */\n isNewFile: z.boolean().default(false),\n});\n\nexport type FileSummary = z.infer<typeof FileSummarySchema>;\n\n// ============================================================================\n// Commit Plan\n// ============================================================================\n\n/**\n * Reasoning for commit type classification\n */\nexport const CommitReasoningSchema = z.object({\n /** Does this change add NEW user-visible behavior? */\n newBehavior: z.boolean().default(false),\n /** Does this change fix BROKEN functionality? */\n fixesBug: z.boolean().default(false),\n /** Is this only INTERNAL restructuring? */\n internalOnly: z.boolean().default(false),\n /** Human-readable explanation of why this type was chosen */\n explanation: z.string().default(''),\n /** LLM confidence in this classification (0.0-1.0) */\n confidence: z.number().min(0).max(1).default(0.5),\n});\n\nexport type CommitReasoning = z.infer<typeof CommitReasoningSchema>;\n\n/**\n * A single commit group in the plan\n */\nexport const CommitGroupSchema = z.object({\n id: z.string(),\n type: ConventionalTypeSchema,\n scope: z.string().optional(),\n message: z.string().min(1),\n body: z.string().optional(),\n files: z.array(z.string()).min(1),\n releaseHint: ReleaseHintSchema.default(\"none\"),\n breaking: z.boolean().default(false),\n /** Reasoning for commit type classification (optional, added by LLM) */\n reasoning: CommitReasoningSchema.optional(),\n});\n\nexport type CommitGroup = z.infer<typeof CommitGroupSchema>;\n\n/**\n * Complete commit plan\n */\nexport const CommitPlanSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n repoRoot: z.string(),\n gitStatus: GitStatusSchema,\n commits: z.array(CommitGroupSchema),\n metadata: z.object({\n totalFiles: z.number().int().min(0),\n totalCommits: z.number().int().min(0),\n llmUsed: z.boolean(),\n tokensUsed: z.number().int().min(0).optional(),\n /** Whether LLM escalated to Phase 2 (requested diff for more context) */\n escalated: z.boolean().optional(),\n }),\n});\n\nexport type CommitPlan = z.infer<typeof CommitPlanSchema>;\n\n/**\n * Git status snapshot for storage\n */\nexport const GitStatusSnapshotSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n status: GitStatusSchema,\n summaries: z.array(FileSummarySchema),\n});\n\nexport type GitStatusSnapshot = z.infer<typeof GitStatusSnapshotSchema>;\n\n// ============================================================================\n// Command Input/Output Schemas\n// ============================================================================\n\n// --- commit (run) ---\nexport const CommitRunInputSchema = z.object({\n scope: z.string().optional(),\n dryRun: z.boolean().default(false),\n withPush: z.boolean().default(false),\n});\n\nexport type CommitRunInput = z.infer<typeof CommitRunInputSchema>;\n\nexport const CommitRunOutputSchema = z.object({\n plan: CommitPlanSchema,\n applied: z.boolean(),\n pushed: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string().optional(),\n message: z.string(),\n }),\n ),\n});\n\nexport type CommitRunOutput = z.infer<typeof CommitRunOutputSchema>;\n\n// --- commit:generate ---\nexport const GenerateInputSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type GenerateInput = z.infer<typeof GenerateInputSchema>;\n\nexport const GenerateOutputSchema = z.object({\n plan: CommitPlanSchema,\n planPath: z.string(),\n});\n\nexport type GenerateOutput = z.infer<typeof GenerateOutputSchema>;\n\n// --- commit:apply ---\nexport const ApplyInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type ApplyInput = z.infer<typeof ApplyInputSchema>;\n\nexport const ApplyOutputSchema = z.object({\n success: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()).default([]),\n});\n\nexport type ApplyOutput = z.infer<typeof ApplyOutputSchema>;\n\n// --- commit:push ---\nexport const PushInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type PushInput = z.infer<typeof PushInputSchema>;\n\nexport const PushOutputSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commits: z.number().int().min(0),\n});\n\nexport type PushOutput = z.infer<typeof PushOutputSchema>;\n\n// --- commit:open ---\nexport const OpenInputSchema = z.object({\n json: z.boolean().default(false),\n});\n\nexport type OpenInput = z.infer<typeof OpenInputSchema>;\n\nexport const OpenOutputSchema = z.object({\n hasPlan: z.boolean(),\n plan: CommitPlanSchema.optional(),\n planPath: z.string().optional(),\n stale: z.boolean().optional(),\n staleReason: z.string().optional(),\n});\n\nexport type OpenOutput = z.infer<typeof OpenOutputSchema>;\n\n// --- commit:reset ---\nexport const ResetOutputSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\nexport type ResetOutput = z.infer<typeof ResetOutputSchema>;\n\n// ============================================================================\n// Result Types (for core package)\n// ============================================================================\n\nexport const ApplyResultSchema = z.object({\n success: z.boolean(),\n appliedCommits: z.array(\n z.object({\n groupId: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()),\n});\n\nexport type ApplyResult = z.infer<typeof ApplyResultSchema>;\n\nexport const PushResultSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commitsPushed: z.number().int().min(0),\n error: z.string().optional(),\n});\n\nexport type PushResult = z.infer<typeof PushResultSchema>;\n\n// ============================================================================\n// REST API Responses\n// ============================================================================\n\n/**\n * GET /actions response\n * Returns empty object for actions widget (widget only needs action buttons)\n */\nexport const ActionsResponseSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type ActionsResponse = z.infer<typeof ActionsResponseSchema>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/commit/contracts/src/schema.ts"],"names":[],"mappings":"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","file":"schema.js","sourcesContent":["import { z } from \"zod\";\n\n// ============================================================================\n// Core Types\n// ============================================================================\n\n/**\n * Conventional commit types\n */\nexport const ConventionalTypeSchema = z.enum([\n \"feat\",\n \"fix\",\n \"refactor\",\n \"chore\",\n \"docs\",\n \"test\",\n \"build\",\n \"ci\",\n \"perf\",\n]);\n\nexport type ConventionalType = z.infer<typeof ConventionalTypeSchema>;\n\n/**\n * Release hint for semantic versioning\n */\nexport const ReleaseHintSchema = z.enum([\"none\", \"patch\", \"minor\", \"major\"]);\n\nexport type ReleaseHint = z.infer<typeof ReleaseHintSchema>;\n\n// ============================================================================\n// Git Status\n// ============================================================================\n\n/**\n * Git status snapshot\n */\nexport const GitStatusSchema = z.object({\n staged: z.array(z.string()),\n unstaged: z.array(z.string()),\n untracked: z.array(z.string()),\n});\n\nexport type GitStatus = z.infer<typeof GitStatusSchema>;\n\n/**\n * File summary with diff stats\n */\nexport const FileSummarySchema = z.object({\n path: z.string(),\n status: z.enum([\"added\", \"modified\", \"deleted\", \"renamed\", \"copied\"]),\n additions: z.number().int().min(0),\n deletions: z.number().int().min(0),\n binary: z.boolean().default(false),\n /** Whether file is truly new (never existed in repo history) */\n isNewFile: z.boolean().default(false),\n});\n\nexport type FileSummary = z.infer<typeof FileSummarySchema>;\n\n// ============================================================================\n// Commit Plan\n// ============================================================================\n\n/**\n * Reasoning for commit type classification\n */\nexport const CommitReasoningSchema = z.object({\n /** Does this change add NEW user-visible behavior? */\n newBehavior: z.boolean().default(false),\n /** Does this change fix BROKEN functionality? */\n fixesBug: z.boolean().default(false),\n /** Is this only INTERNAL restructuring? */\n internalOnly: z.boolean().default(false),\n /** Human-readable explanation of why this type was chosen */\n explanation: z.string().default(''),\n /** LLM confidence in this classification (0.0-1.0) */\n confidence: z.number().min(0).max(1).default(0.5),\n});\n\nexport type CommitReasoning = z.infer<typeof CommitReasoningSchema>;\n\n/**\n * A single commit group in the plan\n */\nexport const CommitGroupSchema = z.object({\n id: z.string(),\n type: ConventionalTypeSchema,\n scope: z.string().optional(),\n message: z.string().min(1),\n body: z.string().optional(),\n files: z.array(z.string()).min(1),\n releaseHint: ReleaseHintSchema.default(\"none\"),\n breaking: z.boolean().default(false),\n /** Reasoning for commit type classification (optional, added by LLM) */\n reasoning: CommitReasoningSchema.optional(),\n});\n\nexport type CommitGroup = z.infer<typeof CommitGroupSchema>;\n\n/**\n * Complete commit plan\n */\nexport const CommitPlanSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n repoRoot: z.string(),\n gitStatus: GitStatusSchema,\n commits: z.array(CommitGroupSchema),\n metadata: z.object({\n totalFiles: z.number().int().min(0),\n totalCommits: z.number().int().min(0),\n llmUsed: z.boolean(),\n tokensUsed: z.number().int().min(0).optional(),\n /** Whether LLM escalated to Phase 2 (requested diff for more context) */\n escalated: z.boolean().optional(),\n }),\n});\n\nexport type CommitPlan = z.infer<typeof CommitPlanSchema>;\n\n/**\n * Git status snapshot for storage\n */\nexport const GitStatusSnapshotSchema = z.object({\n schemaVersion: z.literal(\"1.0\"),\n createdAt: z.string().datetime(),\n status: GitStatusSchema,\n summaries: z.array(FileSummarySchema),\n});\n\nexport type GitStatusSnapshot = z.infer<typeof GitStatusSnapshotSchema>;\n\n// ============================================================================\n// Command Input/Output Schemas\n// ============================================================================\n\n// --- commit (run) ---\nexport const CommitRunInputSchema = z.object({\n scope: z.string().optional(),\n dryRun: z.boolean().default(false),\n withPush: z.boolean().default(false),\n});\n\nexport type CommitRunInput = z.infer<typeof CommitRunInputSchema>;\n\nexport const CommitRunOutputSchema = z.object({\n plan: CommitPlanSchema,\n applied: z.boolean(),\n pushed: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string().optional(),\n message: z.string(),\n }),\n ),\n});\n\nexport type CommitRunOutput = z.infer<typeof CommitRunOutputSchema>;\n\n// --- commit:generate ---\nexport const GenerateInputSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type GenerateInput = z.infer<typeof GenerateInputSchema>;\n\nexport const GenerateOutputSchema = z.object({\n plan: CommitPlanSchema,\n planPath: z.string(),\n});\n\nexport type GenerateOutput = z.infer<typeof GenerateOutputSchema>;\n\n// --- commit:apply ---\nexport const ApplyInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type ApplyInput = z.infer<typeof ApplyInputSchema>;\n\nexport const ApplyOutputSchema = z.object({\n success: z.boolean(),\n commits: z.array(\n z.object({\n id: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()).default([]),\n});\n\nexport type ApplyOutput = z.infer<typeof ApplyOutputSchema>;\n\n// --- commit:push ---\nexport const PushInputSchema = z.object({\n force: z.boolean().default(false),\n});\n\nexport type PushInput = z.infer<typeof PushInputSchema>;\n\nexport const PushOutputSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commits: z.number().int().min(0),\n});\n\nexport type PushOutput = z.infer<typeof PushOutputSchema>;\n\n// --- commit:open ---\nexport const OpenInputSchema = z.object({\n json: z.boolean().default(false),\n});\n\nexport type OpenInput = z.infer<typeof OpenInputSchema>;\n\nexport const OpenOutputSchema = z.object({\n hasPlan: z.boolean(),\n plan: CommitPlanSchema.optional(),\n planPath: z.string().optional(),\n stale: z.boolean().optional(),\n staleReason: z.string().optional(),\n});\n\nexport type OpenOutput = z.infer<typeof OpenOutputSchema>;\n\n// --- commit:reset ---\nexport const ResetOutputSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\nexport type ResetOutput = z.infer<typeof ResetOutputSchema>;\n\n// ============================================================================\n// Result Types (for core package)\n// ============================================================================\n\nexport const ApplyResultSchema = z.object({\n success: z.boolean(),\n appliedCommits: z.array(\n z.object({\n groupId: z.string(),\n sha: z.string(),\n message: z.string(),\n }),\n ),\n errors: z.array(z.string()),\n});\n\nexport type ApplyResult = z.infer<typeof ApplyResultSchema>;\n\nexport const PushResultSchema = z.object({\n success: z.boolean(),\n remote: z.string(),\n branch: z.string(),\n commitsPushed: z.number().int().min(0),\n error: z.string().optional(),\n});\n\nexport type PushResult = z.infer<typeof PushResultSchema>;\n\n// ============================================================================\n// REST API Responses\n// ============================================================================\n\n/**\n * GET /actions response\n * Returns empty object for actions widget (widget only needs action buttons)\n */\nexport const ActionsResponseSchema = z.object({\n scope: z.string().optional(),\n});\n\nexport type ActionsResponse = z.infer<typeof ActionsResponseSchema>;\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/commit-contracts",
|
|
3
3
|
"description": "Public contracts package for KB Labs Commit plugin. Provides typed guarantees about artifacts, commands, and APIs.",
|
|
4
|
-
"version": "2.119.0-canary.
|
|
4
|
+
"version": "2.119.0-canary.3edea00f6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"tsup": "^8.5.0",
|
|
37
37
|
"typescript": "^5.6.3",
|
|
38
38
|
"vitest": "^3.2.6",
|
|
39
|
-
"@kb-labs/devkit": "2.119.0-canary.
|
|
39
|
+
"@kb-labs/devkit": "2.119.0-canary.3edea00f6"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
42
42
|
"node": ">=22.0.0",
|