@kb-labs/commit-contracts 2.103.0 → 2.105.0-canary.f6d35e31
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":["../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/version.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/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;
|
|
@@ -1100,16 +1100,16 @@ declare const SecretMatchSchema: z.ZodObject<{
|
|
|
1100
1100
|
matched: z.ZodString;
|
|
1101
1101
|
context: z.ZodString;
|
|
1102
1102
|
}, "strip", z.ZodTypeAny, {
|
|
1103
|
-
type: string;
|
|
1104
1103
|
file: string;
|
|
1104
|
+
type: string;
|
|
1105
1105
|
line: number;
|
|
1106
1106
|
column: number;
|
|
1107
1107
|
pattern: string;
|
|
1108
1108
|
matched: string;
|
|
1109
1109
|
context: string;
|
|
1110
1110
|
}, {
|
|
1111
|
-
type: string;
|
|
1112
1111
|
file: string;
|
|
1112
|
+
type: string;
|
|
1113
1113
|
line: number;
|
|
1114
1114
|
column: number;
|
|
1115
1115
|
pattern: string;
|
|
@@ -1172,7 +1172,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1172
1172
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1173
1173
|
id: string;
|
|
1174
1174
|
files: string[];
|
|
1175
|
-
releaseHint: "
|
|
1175
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1176
1176
|
breaking: boolean;
|
|
1177
1177
|
scope?: string | undefined;
|
|
1178
1178
|
body?: string | undefined;
|
|
@@ -1190,7 +1190,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1190
1190
|
files: string[];
|
|
1191
1191
|
scope?: string | undefined;
|
|
1192
1192
|
body?: string | undefined;
|
|
1193
|
-
releaseHint?: "
|
|
1193
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1194
1194
|
breaking?: boolean | undefined;
|
|
1195
1195
|
reasoning?: {
|
|
1196
1196
|
newBehavior?: boolean | undefined;
|
|
@@ -1233,7 +1233,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1233
1233
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1234
1234
|
id: string;
|
|
1235
1235
|
files: string[];
|
|
1236
|
-
releaseHint: "
|
|
1236
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1237
1237
|
breaking: boolean;
|
|
1238
1238
|
scope?: string | undefined;
|
|
1239
1239
|
body?: string | undefined;
|
|
@@ -1268,7 +1268,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1268
1268
|
files: string[];
|
|
1269
1269
|
scope?: string | undefined;
|
|
1270
1270
|
body?: string | undefined;
|
|
1271
|
-
releaseHint?: "
|
|
1271
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1272
1272
|
breaking?: boolean | undefined;
|
|
1273
1273
|
reasoning?: {
|
|
1274
1274
|
newBehavior?: boolean | undefined;
|
|
@@ -1298,16 +1298,16 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1298
1298
|
matched: z.ZodString;
|
|
1299
1299
|
context: z.ZodString;
|
|
1300
1300
|
}, "strip", z.ZodTypeAny, {
|
|
1301
|
-
type: string;
|
|
1302
1301
|
file: string;
|
|
1302
|
+
type: string;
|
|
1303
1303
|
line: number;
|
|
1304
1304
|
column: number;
|
|
1305
1305
|
pattern: string;
|
|
1306
1306
|
matched: string;
|
|
1307
1307
|
context: string;
|
|
1308
1308
|
}, {
|
|
1309
|
-
type: string;
|
|
1310
1309
|
file: string;
|
|
1310
|
+
type: string;
|
|
1311
1311
|
line: number;
|
|
1312
1312
|
column: number;
|
|
1313
1313
|
pattern: string;
|
|
@@ -1334,7 +1334,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1334
1334
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1335
1335
|
id: string;
|
|
1336
1336
|
files: string[];
|
|
1337
|
-
releaseHint: "
|
|
1337
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1338
1338
|
breaking: boolean;
|
|
1339
1339
|
scope?: string | undefined;
|
|
1340
1340
|
body?: string | undefined;
|
|
@@ -1356,8 +1356,8 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1356
1356
|
} | undefined;
|
|
1357
1357
|
planPath?: string | undefined;
|
|
1358
1358
|
secrets?: {
|
|
1359
|
-
type: string;
|
|
1360
1359
|
file: string;
|
|
1360
|
+
type: string;
|
|
1361
1361
|
line: number;
|
|
1362
1362
|
column: number;
|
|
1363
1363
|
pattern: string;
|
|
@@ -1366,8 +1366,8 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1366
1366
|
}[] | undefined;
|
|
1367
1367
|
}, {
|
|
1368
1368
|
success: boolean;
|
|
1369
|
-
message?: string | undefined;
|
|
1370
1369
|
scope?: string | undefined;
|
|
1370
|
+
message?: string | undefined;
|
|
1371
1371
|
plan?: {
|
|
1372
1372
|
schemaVersion: "1.0";
|
|
1373
1373
|
createdAt: string;
|
|
@@ -1384,7 +1384,7 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1384
1384
|
files: string[];
|
|
1385
1385
|
scope?: string | undefined;
|
|
1386
1386
|
body?: string | undefined;
|
|
1387
|
-
releaseHint?: "
|
|
1387
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1388
1388
|
breaking?: boolean | undefined;
|
|
1389
1389
|
reasoning?: {
|
|
1390
1390
|
newBehavior?: boolean | undefined;
|
|
@@ -1405,8 +1405,8 @@ declare const GenerateResponseSchema: z.ZodObject<{
|
|
|
1405
1405
|
planPath?: string | undefined;
|
|
1406
1406
|
secretsDetected?: boolean | undefined;
|
|
1407
1407
|
secrets?: {
|
|
1408
|
-
type: string;
|
|
1409
1408
|
file: string;
|
|
1409
|
+
type: string;
|
|
1410
1410
|
line: number;
|
|
1411
1411
|
column: number;
|
|
1412
1412
|
pattern: string;
|
|
@@ -1470,7 +1470,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1470
1470
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1471
1471
|
id: string;
|
|
1472
1472
|
files: string[];
|
|
1473
|
-
releaseHint: "
|
|
1473
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1474
1474
|
breaking: boolean;
|
|
1475
1475
|
scope?: string | undefined;
|
|
1476
1476
|
body?: string | undefined;
|
|
@@ -1488,7 +1488,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1488
1488
|
files: string[];
|
|
1489
1489
|
scope?: string | undefined;
|
|
1490
1490
|
body?: string | undefined;
|
|
1491
|
-
releaseHint?: "
|
|
1491
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1492
1492
|
breaking?: boolean | undefined;
|
|
1493
1493
|
reasoning?: {
|
|
1494
1494
|
newBehavior?: boolean | undefined;
|
|
@@ -1531,7 +1531,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1531
1531
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1532
1532
|
id: string;
|
|
1533
1533
|
files: string[];
|
|
1534
|
-
releaseHint: "
|
|
1534
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1535
1535
|
breaking: boolean;
|
|
1536
1536
|
scope?: string | undefined;
|
|
1537
1537
|
body?: string | undefined;
|
|
@@ -1566,7 +1566,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1566
1566
|
files: string[];
|
|
1567
1567
|
scope?: string | undefined;
|
|
1568
1568
|
body?: string | undefined;
|
|
1569
|
-
releaseHint?: "
|
|
1569
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1570
1570
|
breaking?: boolean | undefined;
|
|
1571
1571
|
reasoning?: {
|
|
1572
1572
|
newBehavior?: boolean | undefined;
|
|
@@ -1602,7 +1602,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1602
1602
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1603
1603
|
id: string;
|
|
1604
1604
|
files: string[];
|
|
1605
|
-
releaseHint: "
|
|
1605
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1606
1606
|
breaking: boolean;
|
|
1607
1607
|
scope?: string | undefined;
|
|
1608
1608
|
body?: string | undefined;
|
|
@@ -1641,7 +1641,7 @@ declare const PlanResponseSchema: z.ZodObject<{
|
|
|
1641
1641
|
files: string[];
|
|
1642
1642
|
scope?: string | undefined;
|
|
1643
1643
|
body?: string | undefined;
|
|
1644
|
-
releaseHint?: "
|
|
1644
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1645
1645
|
breaking?: boolean | undefined;
|
|
1646
1646
|
reasoning?: {
|
|
1647
1647
|
newBehavior?: boolean | undefined;
|
|
@@ -1680,9 +1680,9 @@ declare const PatchPlanRequestSchema: z.ZodObject<{
|
|
|
1680
1680
|
scope_?: string | undefined;
|
|
1681
1681
|
}, {
|
|
1682
1682
|
commitId: string;
|
|
1683
|
+
scope?: string | undefined;
|
|
1683
1684
|
message?: string | undefined;
|
|
1684
1685
|
type?: string | undefined;
|
|
1685
|
-
scope?: string | undefined;
|
|
1686
1686
|
body?: string | undefined;
|
|
1687
1687
|
scope_?: string | undefined;
|
|
1688
1688
|
}>;
|
|
@@ -1761,7 +1761,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1761
1761
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1762
1762
|
id: string;
|
|
1763
1763
|
files: string[];
|
|
1764
|
-
releaseHint: "
|
|
1764
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1765
1765
|
breaking: boolean;
|
|
1766
1766
|
scope?: string | undefined;
|
|
1767
1767
|
body?: string | undefined;
|
|
@@ -1779,7 +1779,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1779
1779
|
files: string[];
|
|
1780
1780
|
scope?: string | undefined;
|
|
1781
1781
|
body?: string | undefined;
|
|
1782
|
-
releaseHint?: "
|
|
1782
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1783
1783
|
breaking?: boolean | undefined;
|
|
1784
1784
|
reasoning?: {
|
|
1785
1785
|
newBehavior?: boolean | undefined;
|
|
@@ -1798,7 +1798,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1798
1798
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1799
1799
|
id: string;
|
|
1800
1800
|
files: string[];
|
|
1801
|
-
releaseHint: "
|
|
1801
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1802
1802
|
breaking: boolean;
|
|
1803
1803
|
scope?: string | undefined;
|
|
1804
1804
|
body?: string | undefined;
|
|
@@ -1821,7 +1821,7 @@ declare const RegenerateCommitResponseSchema: z.ZodObject<{
|
|
|
1821
1821
|
files: string[];
|
|
1822
1822
|
scope?: string | undefined;
|
|
1823
1823
|
body?: string | undefined;
|
|
1824
|
-
releaseHint?: "
|
|
1824
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1825
1825
|
breaking?: boolean | undefined;
|
|
1826
1826
|
reasoning?: {
|
|
1827
1827
|
newBehavior?: boolean | undefined;
|
|
@@ -1982,8 +1982,8 @@ declare const ResetResponseSchema: z.ZodObject<{
|
|
|
1982
1982
|
message: z.ZodString;
|
|
1983
1983
|
scope: z.ZodDefault<z.ZodString>;
|
|
1984
1984
|
}, "strip", z.ZodTypeAny, {
|
|
1985
|
-
message: string;
|
|
1986
1985
|
scope: string;
|
|
1986
|
+
message: string;
|
|
1987
1987
|
success: boolean;
|
|
1988
1988
|
}, {
|
|
1989
1989
|
message: string;
|
|
@@ -2017,11 +2017,11 @@ declare const GitStatusResponseSchema: z.ZodObject<{
|
|
|
2017
2017
|
binary: z.ZodDefault<z.ZodBoolean>;
|
|
2018
2018
|
isNewFile: z.ZodDefault<z.ZodBoolean>;
|
|
2019
2019
|
}, "strip", z.ZodTypeAny, {
|
|
2020
|
+
binary: boolean;
|
|
2020
2021
|
path: string;
|
|
2021
2022
|
status: "added" | "modified" | "deleted" | "renamed" | "copied";
|
|
2022
2023
|
additions: number;
|
|
2023
2024
|
deletions: number;
|
|
2024
|
-
binary: boolean;
|
|
2025
2025
|
isNewFile: boolean;
|
|
2026
2026
|
}, {
|
|
2027
2027
|
path: string;
|
|
@@ -2033,19 +2033,19 @@ declare const GitStatusResponseSchema: z.ZodObject<{
|
|
|
2033
2033
|
}>, "many">;
|
|
2034
2034
|
totalFiles: z.ZodNumber;
|
|
2035
2035
|
}, "strip", z.ZodTypeAny, {
|
|
2036
|
+
scope: string;
|
|
2036
2037
|
status: {
|
|
2037
2038
|
staged: string[];
|
|
2038
2039
|
unstaged: string[];
|
|
2039
2040
|
untracked: string[];
|
|
2040
2041
|
};
|
|
2041
|
-
scope: string;
|
|
2042
2042
|
totalFiles: number;
|
|
2043
2043
|
summaries: {
|
|
2044
|
+
binary: boolean;
|
|
2044
2045
|
path: string;
|
|
2045
2046
|
status: "added" | "modified" | "deleted" | "renamed" | "copied";
|
|
2046
2047
|
additions: number;
|
|
2047
2048
|
deletions: number;
|
|
2048
|
-
binary: boolean;
|
|
2049
2049
|
isNewFile: boolean;
|
|
2050
2050
|
}[];
|
|
2051
2051
|
}, {
|
|
@@ -2076,17 +2076,17 @@ declare const FileDiffResponseSchema: z.ZodObject<{
|
|
|
2076
2076
|
additions: z.ZodDefault<z.ZodNumber>;
|
|
2077
2077
|
deletions: z.ZodDefault<z.ZodNumber>;
|
|
2078
2078
|
}, "strip", z.ZodTypeAny, {
|
|
2079
|
+
file: string;
|
|
2080
|
+
scope: string;
|
|
2079
2081
|
additions: number;
|
|
2080
2082
|
deletions: number;
|
|
2081
|
-
scope: string;
|
|
2082
|
-
file: string;
|
|
2083
2083
|
diff: string;
|
|
2084
2084
|
}, {
|
|
2085
2085
|
file: string;
|
|
2086
2086
|
diff: string;
|
|
2087
|
+
scope?: string | undefined;
|
|
2087
2088
|
additions?: number | undefined;
|
|
2088
2089
|
deletions?: number | undefined;
|
|
2089
|
-
scope?: string | undefined;
|
|
2090
2090
|
}>;
|
|
2091
2091
|
type FileDiffResponse = z.infer<typeof FileDiffResponseSchema>;
|
|
2092
2092
|
/**
|
|
@@ -2100,8 +2100,8 @@ declare const SummarizeRequestSchema: z.ZodObject<{
|
|
|
2100
2100
|
scope: string;
|
|
2101
2101
|
file?: string | undefined;
|
|
2102
2102
|
}, {
|
|
2103
|
-
scope?: string | undefined;
|
|
2104
2103
|
file?: string | undefined;
|
|
2104
|
+
scope?: string | undefined;
|
|
2105
2105
|
}>;
|
|
2106
2106
|
type SummarizeRequest = z.infer<typeof SummarizeRequestSchema>;
|
|
2107
2107
|
/**
|
|
@@ -2116,13 +2116,13 @@ declare const SummarizeResponseSchema: z.ZodObject<{
|
|
|
2116
2116
|
}, "strip", z.ZodTypeAny, {
|
|
2117
2117
|
scope: string;
|
|
2118
2118
|
summary: string;
|
|
2119
|
-
tokensUsed?: number | undefined;
|
|
2120
2119
|
file?: string | undefined;
|
|
2120
|
+
tokensUsed?: number | undefined;
|
|
2121
2121
|
}, {
|
|
2122
2122
|
summary: string;
|
|
2123
|
+
file?: string | undefined;
|
|
2123
2124
|
scope?: string | undefined;
|
|
2124
2125
|
tokensUsed?: number | undefined;
|
|
2125
|
-
file?: string | undefined;
|
|
2126
2126
|
}>;
|
|
2127
2127
|
type SummarizeResponse = z.infer<typeof SummarizeResponseSchema>;
|
|
2128
2128
|
|
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});\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});\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":["../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/version.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/contract.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/helpers.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/schema/api.schema.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/schema/artifacts.schema.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/schema/commands.schema.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/schema/workflows.schema.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/schema/contract.schema.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/types/config.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/schema.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/schema/rest.schema.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/flags.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/env.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/routes.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/plugins/commit/contracts/src/events.ts","../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/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});\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});\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;
|
|
@@ -1211,7 +1211,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1211
1211
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
1212
1212
|
id: string;
|
|
1213
1213
|
files: string[];
|
|
1214
|
-
releaseHint: "
|
|
1214
|
+
releaseHint: "minor" | "none" | "patch" | "major";
|
|
1215
1215
|
breaking: boolean;
|
|
1216
1216
|
scope?: string | undefined;
|
|
1217
1217
|
body?: string | undefined;
|
|
@@ -1250,7 +1250,7 @@ declare const OpenOutputSchema: z.ZodObject<{
|
|
|
1250
1250
|
files: string[];
|
|
1251
1251
|
scope?: string | undefined;
|
|
1252
1252
|
body?: string | undefined;
|
|
1253
|
-
releaseHint?: "
|
|
1253
|
+
releaseHint?: "minor" | "none" | "patch" | "major" | undefined;
|
|
1254
1254
|
breaking?: boolean | undefined;
|
|
1255
1255
|
reasoning?: {
|
|
1256
1256
|
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});\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":["../../../../../../Users/kirillbaranov/Desktop/work/kb-labs-workspace/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});\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.
|
|
4
|
+
"version": "2.105.0-canary.f6d35e31",
|
|
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.
|
|
39
|
+
"@kb-labs/devkit": "2.104.0"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
42
42
|
"node": ">=20.0.0",
|