perttool 0.11.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/README.md +8 -1
  3. package/dist/application/cli-facade.d.ts +2 -1
  4. package/dist/application/cli-facade.d.ts.map +1 -1
  5. package/dist/application/cli-facade.js +2 -1
  6. package/dist/application/cli-facade.js.map +1 -1
  7. package/dist/application/contract11-candidate.d.ts +23 -0
  8. package/dist/application/contract11-candidate.d.ts.map +1 -0
  9. package/dist/application/contract11-candidate.js +48 -0
  10. package/dist/application/contract11-candidate.js.map +1 -0
  11. package/dist/application/contract11-migration.d.ts +35 -0
  12. package/dist/application/contract11-migration.d.ts.map +1 -0
  13. package/dist/application/contract11-migration.js +46 -0
  14. package/dist/application/contract11-migration.js.map +1 -0
  15. package/dist/application/contract11-runtime.d.ts +11 -0
  16. package/dist/application/contract11-runtime.d.ts.map +1 -0
  17. package/dist/application/contract11-runtime.js +65 -0
  18. package/dist/application/contract11-runtime.js.map +1 -0
  19. package/dist/application/contract8-milestone-acceptance.d.ts +6 -0
  20. package/dist/application/contract8-milestone-acceptance.d.ts.map +1 -1
  21. package/dist/application/contract8-milestone-acceptance.js +10 -1
  22. package/dist/application/contract8-milestone-acceptance.js.map +1 -1
  23. package/dist/application/contract9-projection.d.ts +1 -1
  24. package/dist/application/contract9-projection.d.ts.map +1 -1
  25. package/dist/application/contract9-projection.js.map +1 -1
  26. package/dist/application/plan-review-mutation.d.ts +52 -0
  27. package/dist/application/plan-review-mutation.d.ts.map +1 -0
  28. package/dist/application/plan-review-mutation.js +86 -0
  29. package/dist/application/plan-review-mutation.js.map +1 -0
  30. package/dist/assurance/canonical.d.ts +3 -1
  31. package/dist/assurance/canonical.d.ts.map +1 -1
  32. package/dist/assurance/canonical.js +2 -2
  33. package/dist/assurance/canonical.js.map +1 -1
  34. package/dist/cli.js +490 -132
  35. package/dist/cli.js.map +1 -1
  36. package/dist/command/contract11-discovery.d.ts +17 -0
  37. package/dist/command/contract11-discovery.d.ts.map +1 -0
  38. package/dist/command/contract11-discovery.js +129 -0
  39. package/dist/command/contract11-discovery.js.map +1 -0
  40. package/dist/command/contract11-usage.d.ts +24 -0
  41. package/dist/command/contract11-usage.d.ts.map +1 -0
  42. package/dist/command/contract11-usage.js +39 -0
  43. package/dist/command/contract11-usage.js.map +1 -0
  44. package/dist/core/index.d.ts +2 -2
  45. package/dist/core/index.d.ts.map +1 -1
  46. package/dist/core/index.js +2 -1
  47. package/dist/core/index.js.map +1 -1
  48. package/dist/help/contract11-guide.d.ts +10 -0
  49. package/dist/help/contract11-guide.d.ts.map +1 -0
  50. package/dist/help/contract11-guide.js +73 -0
  51. package/dist/help/contract11-guide.js.map +1 -0
  52. package/dist/index.d.ts +19 -5
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +15 -4
  55. package/dist/index.js.map +1 -1
  56. package/dist/model/canonical-json.d.ts +3 -0
  57. package/dist/model/canonical-json.d.ts.map +1 -0
  58. package/dist/model/canonical-json.js +47 -0
  59. package/dist/model/canonical-json.js.map +1 -0
  60. package/dist/model/rfc8785.d.ts +2 -0
  61. package/dist/model/rfc8785.d.ts.map +1 -0
  62. package/dist/model/rfc8785.js +47 -0
  63. package/dist/model/rfc8785.js.map +1 -0
  64. package/dist/plan-review/advance.d.ts +28 -0
  65. package/dist/plan-review/advance.d.ts.map +1 -0
  66. package/dist/plan-review/advance.js +67 -0
  67. package/dist/plan-review/advance.js.map +1 -0
  68. package/dist/plan-review/authority.d.ts +4 -0
  69. package/dist/plan-review/authority.d.ts.map +1 -0
  70. package/dist/plan-review/authority.js +21 -0
  71. package/dist/plan-review/authority.js.map +1 -0
  72. package/dist/plan-review/basis.d.ts +25 -0
  73. package/dist/plan-review/basis.d.ts.map +1 -0
  74. package/dist/plan-review/basis.js +287 -0
  75. package/dist/plan-review/basis.js.map +1 -0
  76. package/dist/plan-review/format.d.ts +5 -0
  77. package/dist/plan-review/format.d.ts.map +1 -0
  78. package/dist/plan-review/format.js +54 -0
  79. package/dist/plan-review/format.js.map +1 -0
  80. package/dist/plan-review/lifecycle.d.ts +11 -0
  81. package/dist/plan-review/lifecycle.d.ts.map +1 -0
  82. package/dist/plan-review/lifecycle.js +80 -0
  83. package/dist/plan-review/lifecycle.js.map +1 -0
  84. package/dist/plan-review/mutation-types.d.ts +112 -0
  85. package/dist/plan-review/mutation-types.d.ts.map +1 -0
  86. package/dist/plan-review/mutation-types.js +4 -0
  87. package/dist/plan-review/mutation-types.js.map +1 -0
  88. package/dist/plan-review/mutation.d.ts +4 -0
  89. package/dist/plan-review/mutation.d.ts.map +1 -0
  90. package/dist/plan-review/mutation.js +421 -0
  91. package/dist/plan-review/mutation.js.map +1 -0
  92. package/dist/plan-review/projection.d.ts +4 -0
  93. package/dist/plan-review/projection.d.ts.map +1 -0
  94. package/dist/plan-review/projection.js +19 -0
  95. package/dist/plan-review/projection.js.map +1 -0
  96. package/dist/plan-review/request-size.d.ts +3 -0
  97. package/dist/plan-review/request-size.d.ts.map +1 -0
  98. package/dist/plan-review/request-size.js +86 -0
  99. package/dist/plan-review/request-size.js.map +1 -0
  100. package/dist/plan-review/request.d.ts +11 -0
  101. package/dist/plan-review/request.d.ts.map +1 -0
  102. package/dist/plan-review/request.js +268 -0
  103. package/dist/plan-review/request.js.map +1 -0
  104. package/dist/plan-review/source-lexical.d.ts +23 -0
  105. package/dist/plan-review/source-lexical.d.ts.map +1 -0
  106. package/dist/plan-review/source-lexical.js +75 -0
  107. package/dist/plan-review/source-lexical.js.map +1 -0
  108. package/dist/plan-review/source-types.d.ts +81 -0
  109. package/dist/plan-review/source-types.d.ts.map +1 -0
  110. package/dist/plan-review/source-types.js +2 -0
  111. package/dist/plan-review/source-types.js.map +1 -0
  112. package/dist/plan-review/source.d.ts +16 -0
  113. package/dist/plan-review/source.d.ts.map +1 -0
  114. package/dist/plan-review/source.js +346 -0
  115. package/dist/plan-review/source.js.map +1 -0
  116. package/dist/plan-review/write.d.ts +4 -0
  117. package/dist/plan-review/write.d.ts.map +1 -0
  118. package/dist/plan-review/write.js +51 -0
  119. package/dist/plan-review/write.js.map +1 -0
  120. package/dist/planning-pool/history-guard.d.ts +7 -1
  121. package/dist/planning-pool/history-guard.d.ts.map +1 -1
  122. package/dist/planning-pool/history-guard.js +13 -12
  123. package/dist/planning-pool/history-guard.js.map +1 -1
  124. package/dist/planning-pool/projection.d.ts +1 -1
  125. package/dist/planning-pool/projection.d.ts.map +1 -1
  126. package/dist/planning-pool/projection.js.map +1 -1
  127. package/dist/planning-pool/source-lexical.d.ts.map +1 -1
  128. package/dist/planning-pool/source-lexical.js +2 -22
  129. package/dist/planning-pool/source-lexical.js.map +1 -1
  130. package/dist/recommendation/override-types.d.ts +2 -2
  131. package/dist/recommendation/override-types.d.ts.map +1 -1
  132. package/dist/recommendation/override.d.ts +1 -1
  133. package/dist/recommendation/override.d.ts.map +1 -1
  134. package/dist/recommendation/override.js +6 -5
  135. package/dist/recommendation/override.js.map +1 -1
  136. package/dist/schema/registry.d.ts +1 -1
  137. package/dist/schema/registry.d.ts.map +1 -1
  138. package/dist/schema/registry.js +5 -2
  139. package/dist/schema/registry.js.map +1 -1
  140. package/dist/temporal-schedule/source-lexical.d.ts +5 -0
  141. package/dist/temporal-schedule/source-lexical.d.ts.map +1 -1
  142. package/dist/temporal-schedule/source-lexical.js +21 -4
  143. package/dist/temporal-schedule/source-lexical.js.map +1 -1
  144. package/dist/version.d.ts +1 -1
  145. package/dist/version.d.ts.map +1 -1
  146. package/dist/version.js +2 -1
  147. package/dist/version.js.map +1 -1
  148. package/package.json +1 -1
  149. package/schemas/Perttool.AdvanceResult.v4.schema.json +4 -1
  150. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
  151. package/schemas/Perttool.AnalysisResult.v7.schema.json +1 -1
  152. package/schemas/Perttool.CheckResult.v6.schema.json +1 -1
  153. package/schemas/Perttool.CliError.v1.schema.json +1 -1
  154. package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
  155. package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
  156. package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
  157. package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
  158. package/schemas/Perttool.HistoricalGraphResult.v1.schema.json +1 -1
  159. package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
  160. package/schemas/Perttool.InitResult.v1.schema.json +1 -1
  161. package/schemas/Perttool.MilestoneAcceptanceMigrationResult.v1.schema.json +1 -1
  162. package/schemas/Perttool.MilestoneAcceptanceResult.v1.schema.json +1 -1
  163. package/schemas/Perttool.MutationResult.v6.schema.json +1 -1
  164. package/schemas/{Perttool.NextResult.v8.schema.json → Perttool.NextResult.v9.schema.json} +40 -7
  165. package/schemas/Perttool.PlanAssuranceResult.v2.schema.json +1 -1
  166. package/schemas/Perttool.PlanReviewMutationResult.v1.schema.json +2203 -0
  167. package/schemas/Perttool.PlanReviewResult.v1.schema.json +245 -0
  168. package/schemas/Perttool.PlanningMutationResult.v1.schema.json +1 -1
  169. package/schemas/Perttool.PlanningPoolResult.v1.schema.json +1 -1
  170. package/schemas/Perttool.PlanningReshapePreflightResult.v1.schema.json +1 -1
  171. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
  172. package/schemas/Perttool.ProjectResult.v5.schema.json +1 -1
  173. package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
  174. package/schemas/Perttool.UnitMigrationResult.v5.schema.json +1 -1
  175. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
  176. package/dist/perttool-vscode-private-0.0.0-d1578b9.vsix +0 -0
@@ -0,0 +1,54 @@
1
+ // R: Format Plan Review declarations while preserving the surrounding source.
2
+ import { canonicalizeEventDateTimeSourceToken } from "../model/calendar.js";
3
+ import { formatValidatedSource } from "../mutation/validated-source.js";
4
+ import { formatPlanningPoolSource } from "../planning-pool/format.js";
5
+ import { PLANNING_POOL_SOURCE_CAPABILITY } from "../planning-pool/source.js";
6
+ import { parseQuotedString } from "../temporal-schedule/source-values.js";
7
+ import { planReviewBaseText, planReviewFields, scanPlanReviewDeclarationBlocks, } from "./source-lexical.js";
8
+ import { parsePlanReviewSource, PLAN_REVIEW_SOURCE_CAPABILITY, } from "./source.js";
9
+ function lineEdit(line, replacement) {
10
+ return Object.freeze({
11
+ startOffset: line.start,
12
+ endOffset: line.contentEnd,
13
+ replacement,
14
+ });
15
+ }
16
+ function canonicalValue(field) {
17
+ if (["reason", "locator", "resolution_reason"].includes(field.name)) {
18
+ const value = parseQuotedString(field.rawValue);
19
+ return value === null ? null : JSON.stringify(value);
20
+ }
21
+ if (field.name === "created_at" || field.name === "resolved_at") {
22
+ return canonicalizeEventDateTimeSourceToken(field.rawValue);
23
+ }
24
+ return field.rawValue;
25
+ }
26
+ function planReviewOwnedEdits(text) {
27
+ const edits = [];
28
+ for (const block of scanPlanReviewDeclarationBlocks(text)) {
29
+ for (const field of planReviewFields(block)) {
30
+ const value = canonicalValue(field);
31
+ const replacement = value === null ? null : ` ${field.name} ${value}`;
32
+ if (replacement !== null && replacement !== field.line.text) {
33
+ edits.push(lineEdit(field.line, replacement));
34
+ }
35
+ }
36
+ }
37
+ return Object.freeze(edits);
38
+ }
39
+ function lowerOwnedEdits(text) {
40
+ const blocks = scanPlanReviewDeclarationBlocks(text);
41
+ const lowerText = planReviewBaseText(text, blocks);
42
+ const formatted = formatPlanningPoolSource(lowerText, PLANNING_POOL_SOURCE_CAPABILITY);
43
+ if (!formatted.ok) {
44
+ throw new Error("validated Grammar 10 base failed Grammar 9 formatting");
45
+ }
46
+ return formatted.edits;
47
+ }
48
+ export function formatPlanReviewSource(text, capability, options = {}) {
49
+ if (capability !== PLAN_REVIEW_SOURCE_CAPABILITY) {
50
+ throw new TypeError("the target Grammar 10 Plan Review source capability is required");
51
+ }
52
+ return formatValidatedSource(text, (candidate) => parsePlanReviewSource(candidate, capability, options), () => [...lowerOwnedEdits(text), ...planReviewOwnedEdits(text)], "Grammar 10 Plan Review formatter", "Grammar 10 Plan Review formatter produced an invalid candidate");
53
+ }
54
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/plan-review/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Diagnostic } from "../model/diagnostics.js";
2
+ export interface PlanReviewLifecycleAssessment {
3
+ readonly ok: boolean;
4
+ readonly removedTaskIds: readonly string[];
5
+ readonly removedRequestIds: readonly string[];
6
+ readonly blockingRequestIds: readonly string[];
7
+ readonly diagnostics: readonly Diagnostic[];
8
+ }
9
+ /** Inspect a complete final candidate. The caller must also validate its full Grammar 10 source. */
10
+ export declare function assessPlanReviewTaskLifecycle(inputText: string, candidateText: string, mode: "ordinary" | "advance"): PlanReviewLifecycleAssessment;
11
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/plan-review/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAa1D,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAiDD,oGAAoG;AACpG,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,6BAA6B,CA2C/B"}
@@ -0,0 +1,80 @@
1
+ import { scanTemporalDeclarationBlocks } from "../temporal-schedule/source-lexical.js";
2
+ import { planReviewFields, scanPlanReviewDeclarationBlocks, } from "./source-lexical.js";
3
+ import { parsePlanReviewSource, PLAN_REVIEW_SOURCE_CAPABILITY, } from "./source.js";
4
+ function declarationBytes(text, block) {
5
+ return text.slice(block.header.start, block.lines.at(-1)?.end ?? block.header.end);
6
+ }
7
+ function outcome(block) {
8
+ return planReviewFields(block).find(({ name }) => name === "outcome")?.rawValue ?? null;
9
+ }
10
+ function taskIds(text) {
11
+ return new Set(scanTemporalDeclarationBlocks(text)
12
+ .filter(({ kind }) => kind === "task").map(({ id }) => id));
13
+ }
14
+ function error(ids, message) {
15
+ return Object.freeze({
16
+ code: "PTREV-108",
17
+ severity: "error",
18
+ message,
19
+ helpTopic: "editing",
20
+ data: Object.freeze({ request_ids: Object.freeze([...ids]) }),
21
+ });
22
+ }
23
+ function inspectRequest(input) {
24
+ const { request, candidateBlock, removedTasks, mode } = input;
25
+ if (candidateBlock === undefined) {
26
+ return mode === "advance" && request.outcome !== null &&
27
+ removedTasks.has(request.taskId) ? "removed" : "blocked";
28
+ }
29
+ if (request.outcome === null && removedTasks.has(request.taskId) &&
30
+ outcome(candidateBlock) !== "plan_changed")
31
+ return "blocked";
32
+ if (mode === "ordinary" && request.outcome !== null &&
33
+ declarationBytes(input.inputText, input.inputBlock) !==
34
+ declarationBytes(input.candidateText, candidateBlock))
35
+ return "altered";
36
+ return "retained";
37
+ }
38
+ /** Inspect a complete final candidate. The caller must also validate its full Grammar 10 source. */
39
+ export function assessPlanReviewTaskLifecycle(inputText, candidateText, mode) {
40
+ const input = parsePlanReviewSource(inputText, PLAN_REVIEW_SOURCE_CAPABILITY);
41
+ if (!input.ok || input.model === null) {
42
+ throw new TypeError("a valid Grammar 10 Plan Review input is required");
43
+ }
44
+ const currentTasks = taskIds(candidateText);
45
+ const removedTaskIds = [...taskIds(inputText)].filter((id) => !currentTasks.has(id));
46
+ const removedTasks = new Set(removedTaskIds);
47
+ const inputBlocks = new Map(scanPlanReviewDeclarationBlocks(inputText)
48
+ .map((block) => [block.id, block]));
49
+ const candidateBlocks = new Map(scanPlanReviewDeclarationBlocks(candidateText)
50
+ .map((block) => [block.id, block]));
51
+ const removedRequestIds = [];
52
+ const blockingRequestIds = [];
53
+ const alteredResolvedIds = [];
54
+ for (const request of input.model.requests) {
55
+ const state = inspectRequest({
56
+ request, inputText, candidateText,
57
+ inputBlock: inputBlocks.get(request.id),
58
+ candidateBlock: candidateBlocks.get(request.id), removedTasks, mode,
59
+ });
60
+ if (state === "removed")
61
+ removedRequestIds.push(request.id);
62
+ if (state === "blocked")
63
+ blockingRequestIds.push(request.id);
64
+ if (state === "altered")
65
+ alteredResolvedIds.push(request.id);
66
+ }
67
+ const diagnostics = [];
68
+ if (blockingRequestIds.length > 0)
69
+ diagnostics.push(error(blockingRequestIds, `Task removal or request deletion would orphan Plan Review request(s): ${blockingRequestIds.join(", ")}`));
70
+ if (alteredResolvedIds.length > 0)
71
+ diagnostics.push(error(alteredResolvedIds, `Ordinary mutation changed resolved Plan Review declaration(s): ${alteredResolvedIds.join(", ")}`));
72
+ return Object.freeze({
73
+ ok: diagnostics.length === 0,
74
+ removedTaskIds: Object.freeze(removedTaskIds),
75
+ removedRequestIds: Object.freeze(removedRequestIds),
76
+ blockingRequestIds: Object.freeze(blockingRequestIds),
77
+ diagnostics: Object.freeze(diagnostics),
78
+ });
79
+ }
80
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/plan-review/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import type { Diagnostic } from "../model/diagnostics.js";
2
+ import type { BatchMutation } from "../mutation/types.js";
3
+ import type { TextEdit } from "../mutation/text-edits.js";
4
+ import type { PlanReviewProjectionV1, PlanReviewRequestSource } from "./source-types.js";
5
+ export declare const PLAN_REVIEW_CREATE_REQUEST_ID: "Perttool.PlanReviewCreateRequest.v1";
6
+ export declare const PLAN_REVIEW_RESOLVE_REQUEST_ID: "Perttool.PlanReviewResolveRequest.v1";
7
+ export declare const PLAN_REVIEW_AUTHORITY_ID: "Perttool.PlanReviewAuthorityDecision.v1";
8
+ export interface PlanReviewCreateRequestV1 {
9
+ readonly schemaVersion: typeof PLAN_REVIEW_CREATE_REQUEST_ID;
10
+ readonly requestId: string;
11
+ readonly taskId: string;
12
+ readonly reason: string;
13
+ readonly createdAt: string;
14
+ readonly actor: string;
15
+ readonly locator?: string;
16
+ }
17
+ export interface PlanReviewResolveRequestV1 {
18
+ readonly schemaVersion: typeof PLAN_REVIEW_RESOLVE_REQUEST_ID;
19
+ readonly requestId: string;
20
+ readonly outcome: "plan_retained" | "plan_changed";
21
+ readonly resolvedAt: string;
22
+ readonly actor: string;
23
+ readonly resolutionReason: string;
24
+ readonly acceptedOwners?: readonly string[];
25
+ readonly request?: BatchMutation;
26
+ }
27
+ export interface NormalizedPlanReviewCreateRequestV1 extends Omit<PlanReviewCreateRequestV1, "locator"> {
28
+ readonly locator: string | null;
29
+ }
30
+ export interface NormalizedPlanReviewResolveRequestV1 extends Omit<PlanReviewResolveRequestV1, "acceptedOwners" | "request"> {
31
+ readonly acceptedOwners: readonly string[];
32
+ readonly request: BatchMutation | null;
33
+ readonly canonicalChangeRequest: string | null;
34
+ readonly changeRequestDigest: string | null;
35
+ }
36
+ export interface PlanReviewAuthorityDecisionV1 {
37
+ readonly model_version: 1;
38
+ readonly request_id: string;
39
+ readonly source_digest: string;
40
+ readonly candidate_digest: string;
41
+ readonly actor: string;
42
+ readonly effective_dag_owner: string;
43
+ readonly effective_dag_delegates: readonly string[];
44
+ readonly actor_direct: boolean;
45
+ readonly owner_confirmation_required: boolean;
46
+ readonly owner_confirmation_satisfied: boolean;
47
+ readonly authorized: boolean;
48
+ }
49
+ export interface PlanReviewComposedMutationResult {
50
+ readonly ok: boolean;
51
+ readonly changed: boolean;
52
+ readonly originalDigest: string;
53
+ readonly updatedDigest: string | null;
54
+ readonly updatedText: string | null;
55
+ readonly edits: readonly TextEdit[];
56
+ readonly diagnostics: readonly Diagnostic[];
57
+ readonly diagnosticsTruncated: boolean;
58
+ readonly [field: string]: unknown;
59
+ }
60
+ export interface PlanReviewMutationPlanBasis {
61
+ readonly status: "unchanged" | "changed";
62
+ readonly beforeDigest: string | null;
63
+ readonly afterDigest: string | null;
64
+ }
65
+ export interface PlanReviewMutationCoreResult {
66
+ readonly operation: "create" | "resolve";
67
+ readonly ok: boolean;
68
+ readonly documentId: string | null;
69
+ readonly changed: boolean;
70
+ readonly originalDigest: string;
71
+ readonly updatedDigest: string | null;
72
+ readonly updatedText: string | null;
73
+ readonly diff: string | null;
74
+ readonly edits: readonly TextEdit[];
75
+ readonly requestBefore: PlanReviewRequestSource | null;
76
+ readonly requestAfter: PlanReviewRequestSource | null;
77
+ readonly projectionBefore: PlanReviewProjectionV1 | null;
78
+ readonly projectionAfter: PlanReviewProjectionV1 | null;
79
+ readonly planBasis: PlanReviewMutationPlanBasis;
80
+ readonly planReviewAuthority: PlanReviewAuthorityDecisionV1 | null;
81
+ readonly composedMutation: PlanReviewComposedMutationResult | null;
82
+ readonly diagnostics: readonly Diagnostic[];
83
+ readonly diagnosticsTruncated: boolean;
84
+ }
85
+ export interface PlanReviewMutationOptions {
86
+ readonly originalLabel?: string;
87
+ readonly updatedLabel?: string;
88
+ readonly expectedDigest?: string;
89
+ readonly maxDiagnostics?: number;
90
+ }
91
+ export interface PlanReviewMutationDependencies {
92
+ readonly composeBatch: (text: string, request: BatchMutation, authority: Readonly<{
93
+ actor: string;
94
+ acceptedOwners: readonly string[];
95
+ }>) => PlanReviewComposedMutationResult;
96
+ }
97
+ export type PlanReviewPersistenceRequest = {
98
+ readonly mode: "in_place";
99
+ readonly target: string;
100
+ readonly expectedDigest?: string;
101
+ } | {
102
+ readonly mode: "out";
103
+ readonly source: string;
104
+ readonly target: string;
105
+ readonly fileMode?: number;
106
+ };
107
+ export interface PlanReviewWriteProjection {
108
+ readonly mode: "in_place" | "out";
109
+ readonly target: string;
110
+ readonly written: boolean;
111
+ }
112
+ //# sourceMappingURL=mutation-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-types.d.ts","sourceRoot":"","sources":["../../src/plan-review/mutation-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export const PLAN_REVIEW_CREATE_REQUEST_ID = "Perttool.PlanReviewCreateRequest.v1";
2
+ export const PLAN_REVIEW_RESOLVE_REQUEST_ID = "Perttool.PlanReviewResolveRequest.v1";
3
+ export const PLAN_REVIEW_AUTHORITY_ID = "Perttool.PlanReviewAuthorityDecision.v1";
4
+ //# sourceMappingURL=mutation-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-types.js","sourceRoot":"","sources":["../../src/plan-review/mutation-types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,6BAA6B,GACxC,qCAA8C,CAAC;AACjD,MAAM,CAAC,MAAM,8BAA8B,GACzC,sCAA+C,CAAC;AAClD,MAAM,CAAC,MAAM,wBAAwB,GACnC,yCAAkD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { PlanReviewMutationCoreResult, PlanReviewMutationDependencies, PlanReviewMutationOptions } from "./mutation-types.js";
2
+ export declare function planPlanReviewCreate(text: string, input: unknown, options?: PlanReviewMutationOptions): PlanReviewMutationCoreResult;
3
+ export declare function planPlanReviewResolve(text: string, input: unknown, options?: PlanReviewMutationOptions, dependencies?: PlanReviewMutationDependencies): PlanReviewMutationCoreResult;
4
+ //# sourceMappingURL=mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../../src/plan-review/mutation.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAIV,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EAE1B,MAAM,qBAAqB,CAAC;AAyO7B,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,yBAA8B,GACtC,4BAA4B,CAuC9B;AA+UD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,yBAA8B,EACvC,YAAY,GAAE,8BAAoD,GACjE,4BAA4B,CA0B9B"}