@difflab/pi 0.6.0 → 0.7.0-rc.202609271854.6af8600

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +11 -9
  2. package/agents/diffpi-orchestrator.md +6 -4
  3. package/agents/diffpi-plan-reviewer.md +27 -0
  4. package/agents/diffpi-planner.md +5 -5
  5. package/agents/diffpi-reviewer.md +4 -4
  6. package/agents/diffpi-worker.md +1 -1
  7. package/dist/assets.d.ts +0 -1
  8. package/dist/assets.d.ts.map +1 -1
  9. package/dist/cli.js +446 -160
  10. package/dist/commands/plan.d.ts +2 -2
  11. package/dist/commands/plan.d.ts.map +1 -1
  12. package/dist/commands/review.d.ts +2 -2
  13. package/dist/commands/review.d.ts.map +1 -1
  14. package/dist/environment.d.ts +2 -0
  15. package/dist/environment.d.ts.map +1 -1
  16. package/dist/extensions/index.js +1841 -3858
  17. package/dist/extensions/tuicrx.d.ts +8 -1
  18. package/dist/extensions/tuicrx.d.ts.map +1 -1
  19. package/dist/index.d.ts +8 -7
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +951 -349
  22. package/dist/plan/markdown.d.ts +4 -1
  23. package/dist/plan/markdown.d.ts.map +1 -1
  24. package/dist/{tools/plan-schema.d.ts → plan/schema.d.ts} +113 -75
  25. package/dist/plan/schema.d.ts.map +1 -0
  26. package/dist/plan/store.d.ts +39 -1
  27. package/dist/plan/store.d.ts.map +1 -1
  28. package/dist/plan/types.d.ts +27 -3
  29. package/dist/plan/types.d.ts.map +1 -1
  30. package/dist/review/github-review-backend.d.ts.map +1 -1
  31. package/dist/review/gitlab-review-backend.d.ts.map +1 -1
  32. package/dist/review/index.d.ts +6 -6
  33. package/dist/review/index.d.ts.map +1 -1
  34. package/dist/review/local-review-backend.d.ts +3 -0
  35. package/dist/review/local-review-backend.d.ts.map +1 -0
  36. package/dist/review/review-backend.d.ts +3 -2
  37. package/dist/review/review-backend.d.ts.map +1 -1
  38. package/dist/review/review-markdown.d.ts +4 -1
  39. package/dist/review/review-markdown.d.ts.map +1 -1
  40. package/dist/review/review-state.d.ts +20 -0
  41. package/dist/review/review-state.d.ts.map +1 -0
  42. package/dist/review/types.d.ts +28 -0
  43. package/dist/review/types.d.ts.map +1 -1
  44. package/dist/store.d.ts +2 -0
  45. package/dist/store.d.ts.map +1 -1
  46. package/dist/tools/index.js +1668 -607
  47. package/dist/tools/plan.d.ts.map +1 -1
  48. package/dist/tools/review.d.ts +38 -0
  49. package/dist/tools/review.d.ts.map +1 -1
  50. package/package.json +2 -4
  51. package/skills/plan/SKILL.md +8 -14
  52. package/skills/plan/references/design-quality.md +30 -0
  53. package/skills/plan/references/workflows/annotate.md +11 -0
  54. package/skills/plan/references/workflows/finalize.md +7 -0
  55. package/skills/plan/references/workflows/go.md +8 -0
  56. package/skills/plan/references/workflows/help.md +10 -0
  57. package/skills/plan/references/workflows/init.md +5 -0
  58. package/skills/plan/references/workflows/new.md +7 -0
  59. package/skills/plan/references/workflows/update.md +7 -0
  60. package/skills/review/SKILL.md +7 -7
  61. package/skills/review/references/review-standards.md +8 -1
  62. package/skills/review/references/workflows/address.md +11 -0
  63. package/skills/review/references/workflows/auto.md +18 -0
  64. package/skills/review/references/workflows/complete.md +7 -0
  65. package/skills/review/references/workflows/edit.md +7 -0
  66. package/skills/review/references/workflows/help.md +36 -0
  67. package/skills/review/references/workflows/merge.md +6 -0
  68. package/skills/review/references/workflows/new.md +19 -0
  69. package/skills/review/references/workflows/open.md +3 -0
  70. package/skills/review/references/workflows/publish.md +8 -0
  71. package/skills/review/references/workflows/status.md +3 -0
  72. package/templates/plan/PLAN.md +17 -11
  73. package/templates/plan/implementation.md +34 -12
  74. package/dist/commands.d.ts +0 -22
  75. package/dist/commands.d.ts.map +0 -1
  76. package/dist/extensions/cmdtsx.d.ts +0 -2
  77. package/dist/extensions/cmdtsx.d.ts.map +0 -1
  78. package/dist/tools/plan-schema.d.ts.map +0 -1
  79. package/dist/workflow.d.ts +0 -80
  80. package/dist/workflow.d.ts.map +0 -1
  81. package/workflows/plan/annotate.md +0 -13
  82. package/workflows/plan/finalize.md +0 -15
  83. package/workflows/plan/go.md +0 -20
  84. package/workflows/plan/help.md +0 -20
  85. package/workflows/plan/init.md +0 -13
  86. package/workflows/plan/new.md +0 -20
  87. package/workflows/plan/update.md +0 -18
  88. package/workflows/review/address.md +0 -8
  89. package/workflows/review/auto.md +0 -8
  90. package/workflows/review/complete.md +0 -7
  91. package/workflows/review/edit.md +0 -7
  92. package/workflows/review/help.md +0 -14
  93. package/workflows/review/merge.md +0 -6
  94. package/workflows/review/new.md +0 -7
  95. package/workflows/review/publish.md +0 -6
@@ -1,6 +1,9 @@
1
- import type { PlanDocument, PlanValidationIssue, PlanValidationOptions } from './types';
1
+ import type { PlanDocument, PlanImplementationBrief, PlanPhase, PlanRecord, PlanValidationIssue, PlanValidationOptions } from './types';
2
2
  export declare function countDesignWords(plan: PlanDocument): number;
3
3
  export declare function validatePlanDocument(plan: PlanDocument, options?: PlanValidationOptions): PlanValidationIssue[];
4
+ export declare function validatePlanBriefs(plan: PlanDocument, briefs: readonly PlanImplementationBrief[]): PlanValidationIssue[];
5
+ export declare function validatePlanRecord(record: PlanRecord, options?: PlanValidationOptions): Promise<PlanValidationIssue[]>;
6
+ export declare function renderImplementationBrief(planRevision: number, ordinal: number, phase: PlanPhase, brief: PlanImplementationBrief): string;
4
7
  export declare function renderPlanDocument(plan: PlanDocument, previousSource?: string): string;
5
8
  export declare function parsePlanDocument(source: string, ref?: string): PlanDocument;
6
9
  //# sourceMappingURL=markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/plan/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EAIZ,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAkBjB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAM3D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,qBAA0B,GAAG,mBAAmB,EAAE,CA8CnH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CA4DtF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAY,GAAG,YAAY,CA6B/E"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/plan/markdown.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,SAAS,EACT,UAAU,EAGV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAgDjB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAM3D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,qBAA0B,GAAG,mBAAmB,EAAE,CAuDnH;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,SAAS,uBAAuB,EAAE,GACzC,mBAAmB,EAAE,CAqDvB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAMhC;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,uBAAuB,GAC7B,MAAM,CAsDR;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAgEtF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAY,GAAG,YAAY,CA6B/E"}
@@ -1,26 +1,4 @@
1
1
  import { z } from 'zod';
2
- declare const planTaskDraftSchema: z.ZodObject<{
3
- id: z.ZodString;
4
- title: z.ZodString;
5
- steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
- fileScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
- acceptanceCriteria: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
- }, z.core.$strict>;
10
- declare const planPhaseDraftSchema: z.ZodObject<{
11
- id: z.ZodString;
12
- title: z.ZodString;
13
- objective: z.ZodString;
14
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
15
- tasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
16
- id: z.ZodString;
17
- title: z.ZodString;
18
- steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
- fileScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
- acceptanceCriteria: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
- }, z.core.$strict>>>;
23
- }, z.core.$strict>;
24
2
  export declare const planContextParametersSchema: z.ZodObject<{
25
3
  cwd: z.ZodOptional<z.ZodString>;
26
4
  plan: z.ZodOptional<z.ZodString>;
@@ -40,71 +18,133 @@ export declare const planInitParametersSchema: z.ZodObject<{
40
18
  title: z.ZodOptional<z.ZodString>;
41
19
  intent: z.ZodOptional<z.ZodString>;
42
20
  issueId: z.ZodOptional<z.ZodString>;
43
- issueUrl: z.ZodOptional<z.ZodString>;
21
+ issueUrl: z.ZodOptional<z.ZodURL>;
22
+ request: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
23
+ kind: z.ZodLiteral<"annotation">;
24
+ text: z.ZodString;
25
+ response: z.ZodString;
26
+ }, z.core.$strict>, z.ZodObject<{
27
+ kind: z.ZodLiteral<"user">;
28
+ text: z.ZodString;
29
+ response: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strict>, z.ZodObject<{
31
+ kind: z.ZodLiteral<"blocker">;
32
+ text: z.ZodString;
33
+ response: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strict>], "kind">>;
44
35
  open: z.ZodOptional<z.ZodBoolean>;
45
36
  }, z.core.$strict>;
46
- export declare const planUpdateOverviewParametersSchema: z.ZodObject<{
47
- cwd: z.ZodOptional<z.ZodString>;
48
- plan: z.ZodString;
49
- expectedPlanRevision: z.ZodNumber;
50
- intent: z.ZodOptional<z.ZodString>;
51
- requirements: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
- design: z.ZodOptional<z.ZodObject<{
37
+ export declare const planApplyRevisionParametersSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
38
+ request: z.ZodDiscriminatedUnion<[z.ZodObject<{
39
+ kind: z.ZodLiteral<"annotation">;
40
+ text: z.ZodString;
41
+ response: z.ZodString;
42
+ }, z.core.$strict>, z.ZodObject<{
43
+ kind: z.ZodLiteral<"user">;
44
+ text: z.ZodString;
45
+ response: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strict>, z.ZodObject<{
47
+ kind: z.ZodLiteral<"blocker">;
48
+ text: z.ZodString;
49
+ response: z.ZodOptional<z.ZodString>;
50
+ }, z.core.$strict>], "kind">;
51
+ title: z.ZodString;
52
+ intent: z.ZodString;
53
+ requirements: z.ZodArray<z.ZodString>;
54
+ design: z.ZodObject<{
53
55
  bigIdeas: z.ZodString;
54
56
  keyApiUpdates: z.ZodString;
55
57
  consequences: z.ZodString;
56
- }, z.core.$strict>>;
57
- references: z.ZodOptional<z.ZodArray<z.ZodObject<{
58
+ }, z.core.$strict>;
59
+ references: z.ZodArray<z.ZodObject<{
58
60
  id: z.ZodString;
59
61
  value: z.ZodString;
60
- }, z.core.$strict>>>;
61
- }, z.core.$strict>;
62
- export declare const planAddPhaseParametersSchema: z.ZodObject<{
63
- cwd: z.ZodOptional<z.ZodString>;
64
- plan: z.ZodString;
65
- expectedPlanRevision: z.ZodNumber;
66
- afterPhaseId: z.ZodOptional<z.ZodString>;
67
- phase: z.ZodObject<{
62
+ }, z.core.$strict>>;
63
+ phases: z.ZodArray<z.ZodObject<{
68
64
  id: z.ZodString;
69
65
  title: z.ZodString;
70
66
  objective: z.ZodString;
71
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
72
- tasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
67
+ dependencies: z.ZodArray<z.ZodString>;
68
+ tasks: z.ZodArray<z.ZodObject<{
73
69
  id: z.ZodString;
74
70
  title: z.ZodString;
75
- steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
76
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
77
- fileScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
78
- acceptanceCriteria: z.ZodOptional<z.ZodArray<z.ZodString>>;
79
- }, z.core.$strict>>>;
80
- }, z.core.$strict>;
81
- }, z.core.$strict>;
82
- export declare const planRemovePhaseParametersSchema: z.ZodObject<{
71
+ dependencies: z.ZodArray<z.ZodString>;
72
+ }, z.core.$strict>>;
73
+ }, z.core.$strict>>;
74
+ briefs: z.ZodArray<z.ZodObject<{
75
+ phaseId: z.ZodString;
76
+ summary: z.ZodString;
77
+ apiChanges: z.ZodArray<z.ZodString>;
78
+ libraries: z.ZodArray<z.ZodString>;
79
+ constraints: z.ZodArray<z.ZodString>;
80
+ tasks: z.ZodArray<z.ZodObject<{
81
+ taskId: z.ZodString;
82
+ steps: z.ZodArray<z.ZodString>;
83
+ fileScopes: z.ZodArray<z.ZodString>;
84
+ acceptanceCriteria: z.ZodArray<z.ZodString>;
85
+ }, z.core.$strict>>;
86
+ }, z.core.$strict>>;
87
+ mode: z.ZodLiteral<"create">;
83
88
  cwd: z.ZodOptional<z.ZodString>;
84
- plan: z.ZodString;
85
- expectedPlanRevision: z.ZodNumber;
86
- phaseId: z.ZodString;
87
- reason: z.ZodString;
88
- }, z.core.$strict>;
89
- export declare const planUpdatePhaseParametersSchema: z.ZodObject<{
89
+ shortSlug: z.ZodString;
90
+ branch: z.ZodOptional<z.ZodString>;
91
+ issueId: z.ZodOptional<z.ZodString>;
92
+ issueUrl: z.ZodOptional<z.ZodURL>;
93
+ }, z.core.$strict>, z.ZodObject<{
94
+ request: z.ZodDiscriminatedUnion<[z.ZodObject<{
95
+ kind: z.ZodLiteral<"annotation">;
96
+ text: z.ZodString;
97
+ response: z.ZodString;
98
+ }, z.core.$strict>, z.ZodObject<{
99
+ kind: z.ZodLiteral<"user">;
100
+ text: z.ZodString;
101
+ response: z.ZodOptional<z.ZodString>;
102
+ }, z.core.$strict>, z.ZodObject<{
103
+ kind: z.ZodLiteral<"blocker">;
104
+ text: z.ZodString;
105
+ response: z.ZodOptional<z.ZodString>;
106
+ }, z.core.$strict>], "kind">;
107
+ title: z.ZodString;
108
+ intent: z.ZodString;
109
+ requirements: z.ZodArray<z.ZodString>;
110
+ design: z.ZodObject<{
111
+ bigIdeas: z.ZodString;
112
+ keyApiUpdates: z.ZodString;
113
+ consequences: z.ZodString;
114
+ }, z.core.$strict>;
115
+ references: z.ZodArray<z.ZodObject<{
116
+ id: z.ZodString;
117
+ value: z.ZodString;
118
+ }, z.core.$strict>>;
119
+ phases: z.ZodArray<z.ZodObject<{
120
+ id: z.ZodString;
121
+ title: z.ZodString;
122
+ objective: z.ZodString;
123
+ dependencies: z.ZodArray<z.ZodString>;
124
+ tasks: z.ZodArray<z.ZodObject<{
125
+ id: z.ZodString;
126
+ title: z.ZodString;
127
+ dependencies: z.ZodArray<z.ZodString>;
128
+ }, z.core.$strict>>;
129
+ }, z.core.$strict>>;
130
+ briefs: z.ZodArray<z.ZodObject<{
131
+ phaseId: z.ZodString;
132
+ summary: z.ZodString;
133
+ apiChanges: z.ZodArray<z.ZodString>;
134
+ libraries: z.ZodArray<z.ZodString>;
135
+ constraints: z.ZodArray<z.ZodString>;
136
+ tasks: z.ZodArray<z.ZodObject<{
137
+ taskId: z.ZodString;
138
+ steps: z.ZodArray<z.ZodString>;
139
+ fileScopes: z.ZodArray<z.ZodString>;
140
+ acceptanceCriteria: z.ZodArray<z.ZodString>;
141
+ }, z.core.$strict>>;
142
+ }, z.core.$strict>>;
143
+ mode: z.ZodLiteral<"amend">;
90
144
  cwd: z.ZodOptional<z.ZodString>;
91
145
  plan: z.ZodString;
92
146
  expectedPlanRevision: z.ZodNumber;
93
- phaseId: z.ZodString;
94
- patch: z.ZodObject<{
95
- title: z.ZodOptional<z.ZodString>;
96
- objective: z.ZodOptional<z.ZodString>;
97
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
98
- tasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
99
- id: z.ZodString;
100
- title: z.ZodString;
101
- steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
102
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
- fileScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
104
- acceptanceCriteria: z.ZodOptional<z.ZodArray<z.ZodString>>;
105
- }, z.core.$strict>>>;
106
- }, z.core.$strict>;
107
- }, z.core.$strict>;
147
+ }, z.core.$strict>], "mode">;
108
148
  export declare const planValidateParametersSchema: z.ZodObject<{
109
149
  cwd: z.ZodOptional<z.ZodString>;
110
150
  plan: z.ZodString;
@@ -205,7 +245,5 @@ export declare const planUpdateStatusParametersSchema: z.ZodObject<{
205
245
  }, z.core.$strict>>;
206
246
  }, z.core.$strict>>;
207
247
  }, z.core.$strict>;
208
- export type PlanTaskDraft = z.infer<typeof planTaskDraftSchema>;
209
- export type PlanPhaseDraft = z.infer<typeof planPhaseDraftSchema>;
210
- export {};
211
- //# sourceMappingURL=plan-schema.d.ts.map
248
+ export type PlanRevisionDraft = z.infer<typeof planApplyRevisionParametersSchema>;
249
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/plan/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0DxB,eAAO,MAAM,2BAA2B;;;;;;;;;;;kBAO7B,CAAC;AAEZ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;kBAY1B,CAAC;AAEZ,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAqB5C,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;kBAE9B,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;;;;;kBAYjC,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;kBAS9B,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;kBAY9B,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;kBAAkE,CAAC;AAE1G,eAAO,MAAM,kCAAkC;;;;;;;;;kBAOpC,CAAC;AAEZ,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BlC,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type DiffpiLogEntry, type NewLogEntry } from '../log';
2
- import type { PlanDocument, PlanLogEntry, PlanRecord, PlanStatus } from './types';
2
+ import type { PlanAuthoringRequest, PlanDocument, PlanImplementationBrief, PlanLogEntry, PlanRecord, PlanStatus } from './types';
3
3
  export type NewPlanLogEntry = NewLogEntry<PlanLogEntry & DiffpiLogEntry>;
4
4
  export interface PlanStoreOptions {
5
5
  homeDir?: string;
@@ -15,6 +15,41 @@ export interface PlanResolution {
15
15
  record?: PlanRecord;
16
16
  ambiguous: boolean;
17
17
  }
18
+ export interface PlanTaskDraft {
19
+ id: string;
20
+ title: string;
21
+ dependencies: string[];
22
+ }
23
+ export interface PlanPhaseDraft {
24
+ id: string;
25
+ title: string;
26
+ objective: string;
27
+ dependencies: string[];
28
+ tasks: PlanTaskDraft[];
29
+ }
30
+ interface PlanRevisionContent {
31
+ request: PlanAuthoringRequest;
32
+ title: string;
33
+ intent: string;
34
+ requirements: string[];
35
+ design: PlanDocument['design'];
36
+ references: PlanDocument['references'];
37
+ phases: PlanPhaseDraft[];
38
+ briefs: PlanImplementationBrief[];
39
+ }
40
+ export interface CreatePlanRevisionRequest extends PlanRevisionContent {
41
+ mode: 'create';
42
+ shortSlug: string;
43
+ branch: string;
44
+ issueId?: string;
45
+ issueUrl?: string;
46
+ }
47
+ export interface AmendPlanRevisionRequest extends PlanRevisionContent {
48
+ mode: 'amend';
49
+ plan: string;
50
+ expectedPlanRevision: number;
51
+ }
52
+ export type PlanRevisionRequest = CreatePlanRevisionRequest | AmendPlanRevisionRequest;
18
53
  export interface InitPlanInput {
19
54
  cwd: string;
20
55
  shortSlug: string;
@@ -23,15 +58,18 @@ export interface InitPlanInput {
23
58
  intent?: string;
24
59
  issueId?: string;
25
60
  issueUrl?: string;
61
+ request?: PlanAuthoringRequest;
26
62
  }
27
63
  export interface PlanStore {
28
64
  context(cwd: string, query?: string, filters?: ResolvePlanFilters): Promise<PlanResolution>;
29
65
  init(input: InitPlanInput): Promise<PlanRecord>;
30
66
  read(cwd: string, query: string, filters?: ResolvePlanFilters): Promise<PlanRecord>;
31
67
  mutate(cwd: string, query: string, operation: string, update: (document: PlanDocument) => PlanDocument | Promise<PlanDocument>): Promise<PlanRecord>;
68
+ applyRevision(cwd: string, request: PlanRevisionRequest): Promise<PlanRecord>;
32
69
  log(cwd: string, query: string, event: NewPlanLogEntry): Promise<PlanLogEntry>;
33
70
  }
34
71
  export declare function planRecordName(shortSlug: string, date?: Date): string;
35
72
  export declare function resolvePlan(cwd: string, query?: string, filters?: ResolvePlanFilters, options?: PlanStoreOptions): Promise<PlanResolution>;
36
73
  export declare function createPlanStore(options?: PlanStoreOptions): PlanStore;
74
+ export {};
37
75
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/plan/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAI/E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIlF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5F,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GACvE,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAChF;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,OAAa,GAAG,MAAM,CAG3E;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,kBAAuB,EAChC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAqBzB;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAuFzE"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/plan/store.ts"],"names":[],"mappings":"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"}
@@ -42,10 +42,7 @@ export interface PlanTask {
42
42
  id: string;
43
43
  revision: number;
44
44
  title: string;
45
- steps?: string[];
46
45
  dependencies: string[];
47
- fileScopes: string[];
48
- acceptanceCriteria: string[];
49
46
  status: PlanTaskStatus;
50
47
  owner?: string;
51
48
  executionId?: string;
@@ -63,6 +60,30 @@ export interface PlanPhase {
63
60
  commit?: PlanCommit;
64
61
  blocker?: PlanBlocker;
65
62
  }
63
+ export interface PlanBriefTask {
64
+ taskId: string;
65
+ steps: string[];
66
+ fileScopes: string[];
67
+ acceptanceCriteria: string[];
68
+ }
69
+ export interface PlanImplementationBrief {
70
+ phaseId: string;
71
+ summary: string;
72
+ apiChanges: string[];
73
+ libraries: string[];
74
+ constraints: string[];
75
+ tasks: PlanBriefTask[];
76
+ }
77
+ export type PlanRequestKind = 'user' | 'annotation' | 'blocker';
78
+ export type PlanAuthoringRequest = {
79
+ kind: 'annotation';
80
+ text: string;
81
+ response: string;
82
+ } | {
83
+ kind: 'user' | 'blocker';
84
+ text: string;
85
+ response?: string;
86
+ };
66
87
  export interface PlanExecution {
67
88
  id: string;
68
89
  commitMode: PlanCommitMode;
@@ -80,6 +101,8 @@ export interface PlanDocument {
80
101
  revision: number;
81
102
  title: string;
82
103
  branch: string;
104
+ issueId?: string;
105
+ issueUrl?: string;
83
106
  intent: string;
84
107
  requirements: string[];
85
108
  design: PlanDesign;
@@ -114,6 +137,7 @@ export interface PlanValidationIssue {
114
137
  }
115
138
  export interface PlanValidationOptions {
116
139
  strict?: boolean;
140
+ checkSnapshots?: boolean;
117
141
  }
118
142
  export interface PlanRecord {
119
143
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plan/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC;AACrF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAC9F,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAC7C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9D,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GACrB,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzG,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AACzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plan/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"github-review-backend.d.ts","sourceRoot":"","sources":["../../src/review/github-review-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,SAAS,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CA4L/E;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,MAAM,GACtB,MAAM,CAIR"}
1
+ {"version":3,"file":"github-review-backend.d.ts","sourceRoot":"","sources":["../../src/review/github-review-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,SAAS,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAmP/E;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,MAAM,GACtB,MAAM,CAIR"}
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab-review-backend.d.ts","sourceRoot":"","sources":["../../src/review/gitlab-review-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAsB,MAAM,SAAS,CAAC;AAE9E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CA4F/E;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAM5F;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAYjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAO1D"}
1
+ {"version":3,"file":"gitlab-review-backend.d.ts","sourceRoot":"","sources":["../../src/review/gitlab-review-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAiB,WAAW,EAAsB,MAAM,SAAS,CAAC;AAE7F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAmI/E;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAM5F;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAYjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAO1D"}
@@ -1,8 +1,8 @@
1
- export { dedupeFindings, findingSchema, findingsSchema, localReviewAuthor, reviewRecordName, reviewSlug, severitySchema, toReviewComments, withRemoteProvenance, yymmdd, } from './types';
2
- export type { Finding, ReviewBackend, ReviewComment, ReviewDocInput, ReviewDraft, ReviewEvent, ReviewReply, ReviewSide, ReviewThreadRecord, Severity, } from './types';
3
- export { renderReviewDoc } from './review-markdown';
4
- export { assertReviewEventSupported, createRemoteReviewBackend, githubReviewSubmissionEndpoint, hasGitlabDraftNotes, parseGitlabDiffRefs, } from './review-backend';
1
+ export { dedupeFindings, findingSchema, findingsSchema, isLocalResponse, localResponseMarker, parseReviewThreadAction, localReviewAuthor, reviewRecordName, reviewSlug, severitySchema, toReviewComments, withRemoteProvenance, yymmdd, } from './types';
2
+ export type { Finding, LocalReviewBackendOptions, ReviewBackend, ReviewComment, ReviewDocInput, ReviewDraft, ReviewEvent, ReviewReply, ReviewSide, ReviewThreadAction, ReviewThreadArtifactOptions, ReviewThreadRecord, Severity, } from './types';
3
+ export { parseThreadArtifact, renderReviewDoc, renderThreadArtifact, upsertThreadReply } from './review-markdown';
4
+ export { assertReviewEventSupported, createLocalReviewBackend, createRemoteReviewBackend, githubReviewSubmissionEndpoint, hasGitlabDraftNotes, parseGitlabDiffRefs, } from './review-backend';
5
5
  export type { GitlabDiffRefs } from './review-backend';
6
- export { captureLocalReview, readLocalReview } from './local-reviews';
7
- export type { CaptureLocalReviewInput, LocalReviewDump } from './local-reviews';
6
+ export { loadReviewPublicationState, reviewBodyFingerprint, reviewCommentFingerprint, reviewReplyFingerprint, saveReviewPublicationState, unpublishedReviewComments, } from './review-state';
7
+ export type { ReviewPublicationState } from './review-state';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/review/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,OAAO,EACP,yBAAyB,EACzB,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,EAClB,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LocalReviewBackendOptions, ReviewBackend } from './types';
2
+ export declare function LocalReviewBackend(options: LocalReviewBackendOptions): ReviewBackend;
3
+ //# sourceMappingURL=local-review-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-review-backend.d.ts","sourceRoot":"","sources":["../../src/review/local-review-backend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAqCpF"}
@@ -1,7 +1,8 @@
1
1
  import type { VcsInfo } from '../environment';
2
- import type { ReviewBackend } from './types';
3
- export type { ReviewBackend, ReviewComment, ReviewDraft, ReviewEvent, ReviewReply, ReviewSide } from './types';
2
+ import type { LocalReviewBackendOptions, ReviewBackend } from './types';
3
+ export type { LocalReviewBackendOptions, ReviewBackend, ReviewComment, ReviewDraft, ReviewEvent, ReviewReply, ReviewSide, } from './types';
4
4
  export { githubReviewSubmissionEndpoint } from './github-review-backend';
5
5
  export { assertReviewEventSupported, hasGitlabDraftNotes, parseGitlabDiffRefs, type GitlabDiffRefs, } from './gitlab-review-backend';
6
6
  export declare function createRemoteReviewBackend(vcs: VcsInfo, number: number): ReviewBackend;
7
+ export declare function createLocalReviewBackend(options: LocalReviewBackendOptions): ReviewBackend;
7
8
  //# sourceMappingURL=review-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-backend.d.ts","sourceRoot":"","sources":["../../src/review/review-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAIrF"}
1
+ {"version":3,"file":"review-backend.d.ts","sourceRoot":"","sources":["../../src/review/review-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE,YAAY,EACV,yBAAyB,EACzB,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAIrF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAE1F"}
@@ -1,3 +1,6 @@
1
- import type { ReviewDocInput } from './types';
1
+ import type { ReviewDocInput, ReviewThreadArtifactOptions, ReviewThreadRecord } from './types';
2
2
  export declare function renderReviewDoc(input: ReviewDocInput): string;
3
+ export declare function renderThreadArtifact(title: string, target: string, threads: readonly ReviewThreadRecord[], options?: ReviewThreadArtifactOptions): string;
4
+ export declare function parseThreadArtifact(content: string): ReviewThreadRecord[];
5
+ export declare function upsertThreadReply(content: string, threadId: string, body: string, question?: boolean, resolved?: boolean): string;
3
6
  //# sourceMappingURL=review-markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-markdown.d.ts","sourceRoot":"","sources":["../../src/review/review-markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA8B7D"}
1
+ {"version":3,"file":"review-markdown.d.ts","sourceRoot":"","sources":["../../src/review/review-markdown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA2B/F,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA8B7D;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,OAAO,GAAE,2BAAgC,GACxC,MAAM,CAwDR;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAoBzE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,CAiBR"}
@@ -0,0 +1,20 @@
1
+ import type { VcsInfo } from '../environment';
2
+ import type { ReviewComment } from './types';
3
+ export interface ReviewPublicationState {
4
+ target: string;
5
+ bodies: string[];
6
+ comments: string[];
7
+ stagedComments: string[];
8
+ replies: string[];
9
+ overlayPath?: string;
10
+ }
11
+ export declare function reviewBodyFingerprint(body: string): string;
12
+ export declare function reviewCommentFingerprint(comment: ReviewComment): string;
13
+ export declare function reviewReplyFingerprint(threadId: string, body: string): string;
14
+ export declare function unpublishedReviewComments(comments: readonly ReviewComment[], knownFingerprints: ReadonlySet<string>): ReviewComment[];
15
+ export declare function loadReviewPublicationState(cwd: string, vcs: VcsInfo, number: number, homeDir?: string): Promise<{
16
+ path: string;
17
+ state: ReviewPublicationState;
18
+ }>;
19
+ export declare function saveReviewPublicationState(path: string, state: ReviewPublicationState): Promise<void>;
20
+ //# sourceMappingURL=review-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-state.d.ts","sourceRoot":"","sources":["../../src/review/review-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAEvE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,aAAa,EAAE,CAEjB;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAe1D;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3G"}
@@ -7,6 +7,8 @@ export interface ReviewComment {
7
7
  line?: number;
8
8
  side?: ReviewSide;
9
9
  body: string;
10
+ author?: string;
11
+ sourceCommentId?: string;
10
12
  }
11
13
  export interface ReviewDraft {
12
14
  comments: ReviewComment[];
@@ -16,10 +18,15 @@ export interface ReviewThreadRecord {
16
18
  id: string;
17
19
  file?: string;
18
20
  line?: number;
21
+ rootCommentId?: string;
22
+ commentIds?: string[];
23
+ commentNodeIds?: string[];
19
24
  body: string;
20
25
  author?: string;
21
26
  resolved: boolean;
27
+ addressed?: boolean;
22
28
  question: boolean;
29
+ reply?: string;
23
30
  replies?: string[];
24
31
  }
25
32
  export interface ReviewReply {
@@ -29,11 +36,25 @@ export interface ReviewReply {
29
36
  question?: boolean;
30
37
  }
31
38
  export interface ReviewBackend {
39
+ readonly kind: 'local' | 'remote';
32
40
  stage(draft: ReviewDraft): Promise<void>;
41
+ readDraft(): Promise<ReviewDraft>;
33
42
  listThreads(): Promise<ReviewThreadRecord[]>;
34
43
  reply(input: ReviewReply): Promise<void>;
44
+ setResolved?(threadId: string, resolved: boolean): Promise<void>;
45
+ deleteThread?(threadId: string): Promise<void>;
35
46
  publish(event: ReviewEvent): Promise<void>;
36
47
  }
48
+ export interface LocalReviewBackendOptions {
49
+ session: string;
50
+ artifactPath: string;
51
+ author: string;
52
+ }
53
+ export interface ReviewThreadArtifactOptions {
54
+ timestamp?: string;
55
+ number?: number;
56
+ url?: string;
57
+ }
37
58
  export declare const severitySchema: z.ZodEnum<{
38
59
  BLOCKING: "BLOCKING";
39
60
  CONSIDER: "CONSIDER";
@@ -83,6 +104,13 @@ export interface ReviewDocInput {
83
104
  export declare function reviewSlug(input: string): string;
84
105
  export declare function yymmdd(date?: Date): string;
85
106
  export declare function reviewRecordName(target: string, date?: Date): string;
107
+ export declare function localResponseMarker(threadId: string): string;
108
+ export declare function isLocalResponse(body: string): boolean;
109
+ export type ReviewThreadAction = 'reopen' | 'resolve' | 'delete';
110
+ export declare function parseReviewThreadAction(body: string): {
111
+ action?: ReviewThreadAction;
112
+ body: string;
113
+ };
86
114
  export declare function dedupeFindings(findings: Finding[]): Finding[];
87
115
  export declare function toReviewComments(findings: Finding[], model?: string): ReviewComment[];
88
116
  export declare function withRemoteProvenance(body: string, model: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/review/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/review/types.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -12,4 +12,6 @@ export declare function storeDir(cwd: string, homeDir?: string): Promise<string>
12
12
  export declare function plansDir(cwd: string, homeDir?: string): Promise<string>;
13
13
  export declare function logsDir(cwd: string, homeDir?: string): Promise<string>;
14
14
  export declare function reviewsDir(cwd: string, homeDir?: string): Promise<string>;
15
+ export declare function completedReviewsDir(cwd: string, homeDir?: string): Promise<string>;
16
+ export declare function sessionsDir(cwd: string, homeDir?: string): Promise<string>;
15
17
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAY,GAAG,MAAM,CAE3D;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAetF;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAKhF;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAK/E;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlF"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAY,GAAG,MAAM,CAE3D;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAetF;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAKhF;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAK/E;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlF;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAK3F;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnF"}