perttool 0.3.0 → 0.4.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 (173) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/README.md +82 -22
  3. package/dist/analysis/temporal-deadline.d.ts +2 -2
  4. package/dist/analysis/temporal-deadline.d.ts.map +1 -1
  5. package/dist/analysis/temporal-deadline.js.map +1 -1
  6. package/dist/analysis/temporal-precedence.d.ts +2 -2
  7. package/dist/analysis/temporal-precedence.d.ts.map +1 -1
  8. package/dist/analysis/temporal-precedence.js.map +1 -1
  9. package/dist/analysis/temporal-resource.d.ts +2 -2
  10. package/dist/analysis/temporal-resource.d.ts.map +1 -1
  11. package/dist/analysis/temporal-resource.js.map +1 -1
  12. package/dist/application/contract4.js +3 -3
  13. package/dist/application/contract5-governance.d.ts +8 -0
  14. package/dist/application/contract5-governance.d.ts.map +1 -0
  15. package/dist/application/contract5-governance.js +12 -0
  16. package/dist/application/contract5-governance.js.map +1 -0
  17. package/dist/application/init.d.ts +3 -12
  18. package/dist/application/init.d.ts.map +1 -1
  19. package/dist/application/init.js +16 -138
  20. package/dist/application/init.js.map +1 -1
  21. package/dist/application/project.d.ts +4 -24
  22. package/dist/application/project.d.ts.map +1 -1
  23. package/dist/application/project.js +3 -52
  24. package/dist/application/project.js.map +1 -1
  25. package/dist/application/target-governance-init.d.ts +36 -0
  26. package/dist/application/target-governance-init.d.ts.map +1 -0
  27. package/dist/application/target-governance-init.js +185 -0
  28. package/dist/application/target-governance-init.js.map +1 -0
  29. package/dist/application/target-governance-mutation.d.ts +20 -0
  30. package/dist/application/target-governance-mutation.d.ts.map +1 -0
  31. package/dist/application/target-governance-mutation.js +175 -0
  32. package/dist/application/target-governance-mutation.js.map +1 -0
  33. package/dist/application/target-governance-project.d.ts +34 -0
  34. package/dist/application/target-governance-project.d.ts.map +1 -0
  35. package/dist/application/target-governance-project.js +80 -0
  36. package/dist/application/target-governance-project.js.map +1 -0
  37. package/dist/application/target-governance-projection.d.ts +18 -0
  38. package/dist/application/target-governance-projection.d.ts.map +1 -0
  39. package/dist/application/target-governance-projection.js +248 -0
  40. package/dist/application/target-governance-projection.js.map +1 -0
  41. package/dist/application/target-governance-write.d.ts +17 -0
  42. package/dist/application/target-governance-write.d.ts.map +1 -0
  43. package/dist/application/target-governance-write.js +55 -0
  44. package/dist/application/target-governance-write.js.map +1 -0
  45. package/dist/application/target-mutate.d.ts +4 -2
  46. package/dist/application/target-mutate.d.ts.map +1 -1
  47. package/dist/application/target-mutate.js +27 -2
  48. package/dist/application/target-mutate.js.map +1 -1
  49. package/dist/application/target-temporal-analysis.d.ts +6 -4
  50. package/dist/application/target-temporal-analysis.d.ts.map +1 -1
  51. package/dist/application/target-temporal-analysis.js +8 -3
  52. package/dist/application/target-temporal-analysis.js.map +1 -1
  53. package/dist/application/target-temporal-input.d.ts +5 -5
  54. package/dist/application/target-temporal-input.d.ts.map +1 -1
  55. package/dist/application/target-temporal-input.js +4 -2
  56. package/dist/application/target-temporal-input.js.map +1 -1
  57. package/dist/application/target-unit-migration-candidate.d.ts +2 -2
  58. package/dist/application/target-unit-migration-candidate.d.ts.map +1 -1
  59. package/dist/application/target-unit-migration-candidate.js +8 -4
  60. package/dist/application/target-unit-migration-candidate.js.map +1 -1
  61. package/dist/application/target-unit-migration-request.d.ts +4 -4
  62. package/dist/application/target-unit-migration-request.d.ts.map +1 -1
  63. package/dist/application/target-unit-migration-request.js +4 -2
  64. package/dist/application/target-unit-migration-request.js.map +1 -1
  65. package/dist/application/target-unit-migration-result.d.ts +2 -2
  66. package/dist/application/target-unit-migration-result.d.ts.map +1 -1
  67. package/dist/application/target-unit-migration-result.js.map +1 -1
  68. package/dist/application/unit-migration.d.ts +4 -1
  69. package/dist/application/unit-migration.d.ts.map +1 -1
  70. package/dist/application/unit-migration.js +5 -3
  71. package/dist/application/unit-migration.js.map +1 -1
  72. package/dist/cli.js +144 -131
  73. package/dist/cli.js.map +1 -1
  74. package/dist/command/registry.d.ts +7 -1
  75. package/dist/command/registry.d.ts.map +1 -1
  76. package/dist/command/registry.js.map +1 -1
  77. package/dist/command/target-governance-discovery.d.ts +31 -0
  78. package/dist/command/target-governance-discovery.d.ts.map +1 -0
  79. package/dist/command/target-governance-discovery.js +390 -0
  80. package/dist/command/target-governance-discovery.js.map +1 -0
  81. package/dist/command/target-governance-usage.d.ts +22 -0
  82. package/dist/command/target-governance-usage.d.ts.map +1 -0
  83. package/dist/command/target-governance-usage.js +116 -0
  84. package/dist/command/target-governance-usage.js.map +1 -0
  85. package/dist/command/usage.d.ts +2 -0
  86. package/dist/command/usage.d.ts.map +1 -1
  87. package/dist/command/usage.js +43 -25
  88. package/dist/command/usage.js.map +1 -1
  89. package/dist/conversion/mermaid-import.d.ts.map +1 -1
  90. package/dist/conversion/mermaid-import.js +3 -2
  91. package/dist/conversion/mermaid-import.js.map +1 -1
  92. package/dist/conversion/mermaid.d.ts.map +1 -1
  93. package/dist/conversion/mermaid.js +27 -0
  94. package/dist/conversion/mermaid.js.map +1 -1
  95. package/dist/formatter/source-formatter.d.ts.map +1 -1
  96. package/dist/formatter/source-formatter.js +13 -2
  97. package/dist/formatter/source-formatter.js.map +1 -1
  98. package/dist/formatter/target-source-formatter.d.ts +2 -1
  99. package/dist/formatter/target-source-formatter.d.ts.map +1 -1
  100. package/dist/formatter/target-source-formatter.js +18 -2
  101. package/dist/formatter/target-source-formatter.js.map +1 -1
  102. package/dist/governance/authority.d.ts +21 -0
  103. package/dist/governance/authority.d.ts.map +1 -0
  104. package/dist/governance/authority.js +206 -0
  105. package/dist/governance/authority.js.map +1 -0
  106. package/dist/governance/guidance.d.ts +2 -0
  107. package/dist/governance/guidance.d.ts.map +1 -0
  108. package/dist/governance/guidance.js +2 -0
  109. package/dist/governance/guidance.js.map +1 -0
  110. package/dist/governance/source.d.ts +37 -0
  111. package/dist/governance/source.d.ts.map +1 -0
  112. package/dist/governance/source.js +103 -0
  113. package/dist/governance/source.js.map +1 -0
  114. package/dist/governance/types.d.ts +41 -0
  115. package/dist/governance/types.d.ts.map +1 -0
  116. package/dist/governance/types.js +2 -0
  117. package/dist/governance/types.js.map +1 -0
  118. package/dist/help/guide.d.ts +8 -5
  119. package/dist/help/guide.d.ts.map +1 -1
  120. package/dist/help/guide.js.map +1 -1
  121. package/dist/help/registry.js +2 -2
  122. package/dist/help/registry.js.map +1 -1
  123. package/dist/help/target-governance-guide.d.ts +10 -0
  124. package/dist/help/target-governance-guide.d.ts.map +1 -0
  125. package/dist/help/target-governance-guide.js +57 -0
  126. package/dist/help/target-governance-guide.js.map +1 -0
  127. package/dist/index.d.ts +17 -12
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +6 -6
  130. package/dist/index.js.map +1 -1
  131. package/dist/io/safe-write.d.ts +4 -0
  132. package/dist/io/safe-write.d.ts.map +1 -1
  133. package/dist/io/safe-write.js +22 -1
  134. package/dist/io/safe-write.js.map +1 -1
  135. package/dist/io/target-safe-write.d.ts +5 -2
  136. package/dist/io/target-safe-write.d.ts.map +1 -1
  137. package/dist/io/target-safe-write.js +20 -2
  138. package/dist/io/target-safe-write.js.map +1 -1
  139. package/dist/migration/grammar-boundary.d.ts +1 -1
  140. package/dist/migration/grammar-boundary.d.ts.map +1 -1
  141. package/dist/migration/grammar-boundary.js +7 -4
  142. package/dist/migration/grammar-boundary.js.map +1 -1
  143. package/dist/model/declaration-fields.d.ts +7 -0
  144. package/dist/model/declaration-fields.d.ts.map +1 -1
  145. package/dist/model/declaration-fields.js +18 -0
  146. package/dist/model/declaration-fields.js.map +1 -1
  147. package/dist/mutation/advance.d.ts +11 -0
  148. package/dist/mutation/advance.d.ts.map +1 -1
  149. package/dist/mutation/advance.js +16 -3
  150. package/dist/mutation/advance.js.map +1 -1
  151. package/dist/mutation/project.d.ts +5 -1
  152. package/dist/mutation/project.d.ts.map +1 -1
  153. package/dist/mutation/project.js +99 -6
  154. package/dist/mutation/project.js.map +1 -1
  155. package/dist/mutation/target-types.d.ts +18 -1
  156. package/dist/mutation/target-types.d.ts.map +1 -1
  157. package/dist/mutation/types.d.ts +8 -1
  158. package/dist/mutation/types.d.ts.map +1 -1
  159. package/dist/parser/document-parser.d.ts +7 -0
  160. package/dist/parser/document-parser.d.ts.map +1 -1
  161. package/dist/parser/document-parser.js +57 -2
  162. package/dist/parser/document-parser.js.map +1 -1
  163. package/dist/semantic/target-validator.d.ts +11 -1
  164. package/dist/semantic/target-validator.d.ts.map +1 -1
  165. package/dist/semantic/target-validator.js +45 -2
  166. package/dist/semantic/target-validator.js.map +1 -1
  167. package/dist/semantic/validator.d.ts +1 -0
  168. package/dist/semantic/validator.d.ts.map +1 -1
  169. package/dist/semantic/validator.js +29 -1
  170. package/dist/semantic/validator.js.map +1 -1
  171. package/dist/version.d.ts +1 -1
  172. package/dist/version.js +1 -1
  173. package/package.json +1 -1
@@ -1,145 +1,23 @@
1
- import { digestDocumentBytes } from "../io/document-file.js";
2
- import { mutationDiagnostic } from "../mutation/diagnostics.js";
1
+ import { TARGET_GRAMMAR_4_CAPABILITY } from "../parser/document-parser.js";
3
2
  import { TOOL_VERSION } from "../version.js";
4
- import { checkDocument } from "./check.js";
5
- const requestFields = new Set([
6
- "projectId",
7
- "title",
8
- "durationUnit",
9
- "initialMilestone",
10
- "initialMilestoneTitle",
11
- "finish",
12
- "version",
13
- "asOf",
14
- "velocity",
15
- "initialMilestoneDeadline",
16
- ]);
17
- const previewWrite = Object.freeze({
18
- mode: "preview",
19
- target: null,
20
- written: false,
21
- });
22
- function requestError(value) {
23
- if (value === null || typeof value !== "object" || Array.isArray(value)) {
24
- return "project init request is not an object";
25
- }
26
- const request = value;
27
- if (Object.keys(request).some((name) => !requestFields.has(name))) {
28
- return "project init request contains unsupported fields";
29
- }
30
- for (const field of [
31
- "projectId",
32
- "title",
33
- "initialMilestone",
34
- "initialMilestoneTitle",
35
- "finish",
36
- ]) {
37
- if (typeof request[field] !== "string") {
38
- return `project init request requires string field ${field}`;
39
- }
40
- }
41
- if (request["durationUnit"] !== "day" &&
42
- request["durationUnit"] !== "hour" &&
43
- request["durationUnit"] !== "point") {
44
- return "project init durationUnit must be day, hour, or point";
45
- }
46
- if (request["version"] !== undefined &&
47
- (!Number.isSafeInteger(request["version"]) ||
48
- request["version"] < 0 ||
49
- request["version"] > 2_147_483_647)) {
50
- return "project init version must be an integer from 0 to 2147483647";
51
- }
52
- for (const field of ["asOf", "velocity", "initialMilestoneDeadline"]) {
53
- if (request[field] !== undefined && typeof request[field] !== "string") {
54
- return `project init ${field} must be a string when provided`;
55
- }
56
- }
57
- if (request["finish"] !== request["initialMilestone"]) {
58
- return "project init finish must equal initialMilestone in initialization version 1";
59
- }
60
- if (request["durationUnit"] === "point" && request["velocity"] === undefined) {
61
- return "project init with point durationUnit requires velocity";
62
- }
63
- if (request["initialMilestoneDeadline"] !== undefined &&
64
- ((request["version"] !== 2 && request["version"] !== 3) ||
65
- request["asOf"] === undefined)) {
66
- return "project init initialMilestoneDeadline requires version 2 or 3 and asOf";
67
- }
68
- return undefined;
69
- }
70
- function renderCandidate(request) {
71
- const fields = [
72
- ` version ${request.version ?? 1}`,
73
- ` title ${JSON.stringify(request.title)}`,
74
- ...(request.asOf === undefined ? [] : [` as_of ${request.asOf}`]),
75
- ` duration_unit ${request.durationUnit}`,
76
- ...(request.velocity === undefined ? [] : [` velocity ${request.velocity}`]),
77
- ` finish ${request.finish}`,
78
- ];
79
- return [
80
- `project ${request.projectId}:`,
81
- ...fields,
82
- "",
83
- `milestone ${request.initialMilestone}:`,
84
- ` title ${JSON.stringify(request.initialMilestoneTitle)}`,
85
- " state reached",
86
- ...(request.initialMilestoneDeadline === undefined
87
- ? []
88
- : [` deadline ${request.initialMilestoneDeadline}`]),
89
- "",
90
- ].join("\n");
91
- }
92
- function result(values) {
93
- return {
3
+ import { planTargetGovernanceProjectInit, } from "./target-governance-init.js";
4
+ export function planProjectInit(request) {
5
+ const planned = planTargetGovernanceProjectInit(request, TARGET_GRAMMAR_4_CAPABILITY);
6
+ return Object.freeze({
94
7
  schemaVersion: "Perttool.InitResult.v1",
95
- cliContractVersion: 4,
8
+ cliContractVersion: 5,
96
9
  toolVersion: TOOL_VERSION,
97
10
  operation: "project.init",
11
+ ok: planned.ok,
12
+ documentId: planned.documentId,
98
13
  source: null,
99
14
  sourceDigest: null,
100
- write: previewWrite,
101
- ...values,
102
- };
103
- }
104
- export function planProjectInit(request) {
105
- const error = requestError(request);
106
- if (error !== undefined) {
107
- return result({
108
- ok: false,
109
- documentId: null,
110
- candidateText: null,
111
- candidateDigest: null,
112
- edits: [],
113
- diagnostics: [mutationDiagnostic("PTMUT-301", error)],
114
- diagnosticsTruncated: false,
115
- });
116
- }
117
- const candidateText = renderCandidate(request);
118
- const checked = checkDocument(candidateText);
119
- if (!checked.ok) {
120
- return result({
121
- ok: false,
122
- documentId: null,
123
- candidateText: null,
124
- candidateDigest: null,
125
- edits: [],
126
- diagnostics: checked.diagnostics,
127
- diagnosticsTruncated: checked.diagnosticsTruncated,
128
- });
129
- }
130
- const edit = Object.freeze({
131
- startOffset: 0,
132
- endOffset: 0,
133
- replacement: candidateText,
134
- });
135
- return result({
136
- ok: true,
137
- documentId: checked.documentId,
138
- candidateText,
139
- candidateDigest: digestDocumentBytes(Buffer.from(candidateText, "utf8")),
140
- edits: Object.freeze([edit]),
141
- diagnostics: checked.diagnostics,
142
- diagnosticsTruncated: checked.diagnosticsTruncated,
15
+ candidateText: planned.candidateText,
16
+ candidateDigest: planned.candidateDigest,
17
+ edits: planned.edits,
18
+ write: planned.write,
19
+ diagnostics: planned.diagnostics,
20
+ diagnosticsTruncated: planned.diagnosticsTruncated,
143
21
  });
144
22
  }
145
23
  export function withProjectInitOutput(value, output) {
@@ -152,14 +30,14 @@ export function withProjectInitOutput(value, output) {
152
30
  output.digest !== value.candidateDigest) {
153
31
  throw new Error("project init output does not match the candidate");
154
32
  }
155
- return {
33
+ return Object.freeze({
156
34
  ...value,
157
35
  write: Object.freeze({
158
36
  mode: "out",
159
37
  target: output.target,
160
38
  written: true,
161
39
  }),
162
- };
40
+ });
163
41
  }
164
42
  function diagnosticToJson(diagnostic) {
165
43
  const spanToJson = (span) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/application/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/application/init.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,7 @@
1
- import type { Diagnostic } from "../model/diagnostics.js";
2
- import type { TargetCalendarValue } from "../model/target-calendar.js";
3
- import { type CheckOptions } from "./check.js";
1
+ import { type TargetGovernanceProjectMetadata, type TargetGovernanceProjectMetadataResult } from "./target-governance-project.js";
2
+ import type { CheckOptions } from "./check.js";
4
3
  export type ProjectMetadataDurationUnit = "day" | "hour" | "point";
5
- export interface ProjectMetadata {
6
- readonly id: string;
7
- readonly version: number;
8
- readonly title: string;
9
- readonly description: string | null;
10
- readonly asOf: TargetCalendarValue | null;
11
- readonly durationUnit: ProjectMetadataDurationUnit;
12
- readonly velocity: string | null;
13
- readonly finish: string;
14
- readonly finishDeadline: TargetCalendarValue | null;
15
- readonly criticalEpsilon: string | null;
16
- readonly targetDuration: string | null;
17
- }
18
- export interface ProjectMetadataResult {
19
- readonly ok: boolean;
20
- readonly documentId: string | null;
21
- readonly grammarVersion: number | null;
22
- readonly project: ProjectMetadata | null;
23
- readonly diagnostics: readonly Diagnostic[];
24
- readonly diagnosticsTruncated: boolean;
25
- }
4
+ export type ProjectMetadata = TargetGovernanceProjectMetadata;
5
+ export type ProjectMetadataResult = TargetGovernanceProjectMetadataResult;
26
6
  export declare function getProjectMetadata(text: string, options?: CheckOptions): ProjectMetadataResult;
27
7
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/application/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC;AAcD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,qBAAqB,CAgDvB"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/application/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,qCAAqC,EAC3C,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAC9D,MAAM,MAAM,qBAAqB,GAAG,qCAAqC,CAAC;AAE1E,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,qBAAqB,CAMvB"}
@@ -1,55 +1,6 @@
1
- import { fieldNamed } from "../model/syntax.js";
2
- import { checkDocument } from "./check.js";
3
- function optionalString(value) {
4
- return typeof value === "string" ? value : null;
5
- }
6
- function optionalLiteral(value) {
7
- return value !== null &&
8
- typeof value === "object" &&
9
- typeof value.text === "string"
10
- ? value.text
11
- : null;
12
- }
1
+ import { getTargetGovernanceProjectMetadata, } from "./target-governance-project.js";
2
+ import { TARGET_GRAMMAR_4_CAPABILITY } from "../parser/document-parser.js";
13
3
  export function getProjectMetadata(text, options = {}) {
14
- const checked = checkDocument(text, options);
15
- const declaration = checked.document.declarations.find(({ kind }) => kind === "project");
16
- if (!checked.ok || declaration === undefined || checked.grammarVersion === null) {
17
- return {
18
- ok: false,
19
- documentId: checked.documentId,
20
- grammarVersion: null,
21
- project: null,
22
- diagnostics: checked.diagnostics,
23
- diagnosticsTruncated: checked.diagnosticsTruncated,
24
- };
25
- }
26
- const title = fieldNamed(declaration, "title")?.value;
27
- const durationUnit = fieldNamed(declaration, "duration_unit")?.value;
28
- const finish = fieldNamed(declaration, "finish")?.value;
29
- if (typeof title !== "string" ||
30
- (durationUnit !== "day" && durationUnit !== "hour" && durationUnit !== "point") ||
31
- typeof finish !== "string") {
32
- throw new Error("valid project document is missing required project metadata");
33
- }
34
- return {
35
- ok: true,
36
- documentId: checked.documentId,
37
- grammarVersion: checked.grammarVersion,
38
- project: {
39
- id: declaration.id,
40
- version: checked.grammarVersion,
41
- title,
42
- description: optionalString(fieldNamed(declaration, "description")?.value),
43
- asOf: checked.temporalInputs?.anchor ?? null,
44
- durationUnit,
45
- velocity: optionalLiteral(fieldNamed(declaration, "velocity")?.value),
46
- finish,
47
- finishDeadline: checked.temporalInputs?.milestoneDeadlines.find(({ milestoneId }) => milestoneId === finish)?.deadline ?? null,
48
- criticalEpsilon: optionalLiteral(fieldNamed(declaration, "critical_epsilon")?.value),
49
- targetDuration: optionalLiteral(fieldNamed(declaration, "target_duration")?.value),
50
- },
51
- diagnostics: checked.diagnostics,
52
- diagnosticsTruncated: checked.diagnosticsTruncated,
53
- };
4
+ return getTargetGovernanceProjectMetadata(text, TARGET_GRAMMAR_4_CAPABILITY, options);
54
5
  }
55
6
  //# sourceMappingURL=project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/application/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/application/project.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,GAGnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAO3E,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAO,GAAiB,EAAE;IAE1B,OAAO,kCAAkC,CACvC,IAAI,EACJ,2BAA2B,EAC3B,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { Diagnostic } from "../model/diagnostics.js";
2
+ import type { TextEdit } from "../mutation/text-edits.js";
3
+ import type { TargetGrammar4Capability } from "../parser/document-parser.js";
4
+ import { GOVERNANCE_DIRECT_EDIT_WARNING } from "../governance/guidance.js";
5
+ import { type TargetValidationOptions } from "../semantic/target-validator.js";
6
+ import type { ProjectInitDurationUnit, ProjectInitWrite } from "./init.js";
7
+ export { GOVERNANCE_DIRECT_EDIT_WARNING };
8
+ export interface TargetGovernanceProjectInitRequest {
9
+ readonly projectId: string;
10
+ readonly title: string;
11
+ readonly durationUnit: ProjectInitDurationUnit;
12
+ readonly initialMilestone: string;
13
+ readonly initialMilestoneTitle: string;
14
+ readonly finish: string;
15
+ readonly version?: number;
16
+ readonly asOf?: string;
17
+ readonly velocity?: string;
18
+ readonly initialMilestoneDeadline?: string;
19
+ readonly goalOwner?: string;
20
+ readonly goalDelegates?: readonly string[];
21
+ readonly dagOwner?: string;
22
+ readonly dagDelegates?: readonly string[];
23
+ }
24
+ export interface TargetGovernanceProjectInitResult {
25
+ readonly ok: boolean;
26
+ readonly documentId: string | null;
27
+ readonly grammarVersion: 1 | 2 | 3 | 4 | null;
28
+ readonly candidateText: string | null;
29
+ readonly candidateDigest: string | null;
30
+ readonly edits: readonly TextEdit[];
31
+ readonly write: ProjectInitWrite;
32
+ readonly diagnostics: readonly Diagnostic[];
33
+ readonly diagnosticsTruncated: boolean;
34
+ }
35
+ export declare function planTargetGovernanceProjectInit(request: unknown, capability: TargetGrammar4Capability, options?: TargetValidationOptions): TargetGovernanceProjectInitResult;
36
+ //# sourceMappingURL=target-governance-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-governance-init.d.ts","sourceRoot":"","sources":["../../src/application/target-governance-init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC;AAyKD,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,uBAA4B,GACpC,iCAAiC,CAoDnC"}
@@ -0,0 +1,185 @@
1
+ import { digestDocumentBytes } from "../io/document-file.js";
2
+ import { mutationDiagnostic } from "../mutation/diagnostics.js";
3
+ import { GOVERNANCE_DIRECT_EDIT_WARNING } from "../governance/guidance.js";
4
+ import { validateTargetGrammar4Document, } from "../semantic/target-validator.js";
5
+ export { GOVERNANCE_DIRECT_EDIT_WARNING };
6
+ const requestFields = new Set([
7
+ "projectId",
8
+ "title",
9
+ "durationUnit",
10
+ "initialMilestone",
11
+ "initialMilestoneTitle",
12
+ "finish",
13
+ "version",
14
+ "asOf",
15
+ "velocity",
16
+ "initialMilestoneDeadline",
17
+ "goalOwner",
18
+ "goalDelegates",
19
+ "dagOwner",
20
+ "dagDelegates",
21
+ ]);
22
+ const principalPattern = /^[A-Za-z][A-Za-z0-9_-]*$/;
23
+ const previewWrite = Object.freeze({
24
+ mode: "preview",
25
+ target: null,
26
+ written: false,
27
+ });
28
+ function hasGovernance(request) {
29
+ return (request.goalOwner !== undefined ||
30
+ request.goalDelegates !== undefined ||
31
+ request.dagOwner !== undefined ||
32
+ request.dagDelegates !== undefined);
33
+ }
34
+ function requestError(value) {
35
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
36
+ return "project init request is not an object";
37
+ }
38
+ const request = value;
39
+ if (Object.keys(request).some((field) => !requestFields.has(field))) {
40
+ return "project init request contains unsupported fields";
41
+ }
42
+ for (const field of [
43
+ "projectId",
44
+ "title",
45
+ "initialMilestone",
46
+ "initialMilestoneTitle",
47
+ "finish",
48
+ ]) {
49
+ if (typeof request[field] !== "string") {
50
+ return `project init request requires string field ${field}`;
51
+ }
52
+ }
53
+ if (request["durationUnit"] !== "day" &&
54
+ request["durationUnit"] !== "hour" &&
55
+ request["durationUnit"] !== "point") {
56
+ return "project init durationUnit must be day, hour, or point";
57
+ }
58
+ if (request["version"] !== undefined &&
59
+ (!Number.isSafeInteger(request["version"]) ||
60
+ request["version"] < 1 ||
61
+ request["version"] > 4)) {
62
+ return "project init version must be an integer from 1 to 4";
63
+ }
64
+ for (const field of ["asOf", "velocity", "initialMilestoneDeadline"]) {
65
+ if (request[field] !== undefined && typeof request[field] !== "string") {
66
+ return `project init ${field} must be a string when provided`;
67
+ }
68
+ }
69
+ for (const field of ["goalOwner", "dagOwner"]) {
70
+ const principal = request[field];
71
+ if (principal !== undefined &&
72
+ (typeof principal !== "string" || !principalPattern.test(principal))) {
73
+ return `project init ${field} must be a principal when provided`;
74
+ }
75
+ }
76
+ for (const field of ["goalDelegates", "dagDelegates"]) {
77
+ const principals = request[field];
78
+ if (principals !== undefined &&
79
+ (!Array.isArray(principals) ||
80
+ principals.some((principal) => typeof principal !== "string" || !principalPattern.test(principal)))) {
81
+ return `project init ${field} must be a principal list when provided`;
82
+ }
83
+ }
84
+ if (request["finish"] !== request["initialMilestone"]) {
85
+ return "project init finish must equal initialMilestone in initialization version 1";
86
+ }
87
+ if (request["durationUnit"] === "point" && request["velocity"] === undefined) {
88
+ return "project init with point durationUnit requires velocity";
89
+ }
90
+ const governance = hasGovernance(request);
91
+ if (governance && request["version"] !== undefined && request["version"] !== 4) {
92
+ return "project init governance fields require version 4";
93
+ }
94
+ const version = governance ? 4 : (request["version"] ?? 1);
95
+ if (request["initialMilestoneDeadline"] !== undefined &&
96
+ ((version !== 2 && version !== 3 && version !== 4) ||
97
+ request["asOf"] === undefined)) {
98
+ return "project init initialMilestoneDeadline requires version 2, 3, or 4 and asOf";
99
+ }
100
+ return undefined;
101
+ }
102
+ function principalList(values) {
103
+ return `[${values.join(", ")}]`;
104
+ }
105
+ function renderCandidate(request) {
106
+ const version = hasGovernance(request) ? 4 : (request.version ?? 1);
107
+ return [
108
+ GOVERNANCE_DIRECT_EDIT_WARNING,
109
+ `project ${request.projectId}:`,
110
+ ` version ${version}`,
111
+ ` title ${JSON.stringify(request.title)}`,
112
+ ...(request.asOf === undefined ? [] : [` as_of ${request.asOf}`]),
113
+ ` duration_unit ${request.durationUnit}`,
114
+ ...(request.velocity === undefined ? [] : [` velocity ${request.velocity}`]),
115
+ ` finish ${request.finish}`,
116
+ ...(request.goalOwner === undefined
117
+ ? []
118
+ : [` goal_owner ${request.goalOwner}`]),
119
+ ...(request.goalDelegates === undefined
120
+ ? []
121
+ : [` goal_delegates ${principalList(request.goalDelegates)}`]),
122
+ ...(request.dagOwner === undefined
123
+ ? []
124
+ : [` dag_owner ${request.dagOwner}`]),
125
+ ...(request.dagDelegates === undefined
126
+ ? []
127
+ : [` dag_delegates ${principalList(request.dagDelegates)}`]),
128
+ "",
129
+ `milestone ${request.initialMilestone}:`,
130
+ ` title ${JSON.stringify(request.initialMilestoneTitle)}`,
131
+ " state reached",
132
+ ...(request.initialMilestoneDeadline === undefined
133
+ ? []
134
+ : [` deadline ${request.initialMilestoneDeadline}`]),
135
+ "",
136
+ ].join("\n");
137
+ }
138
+ export function planTargetGovernanceProjectInit(request, capability, options = {}) {
139
+ const error = requestError(request);
140
+ if (error !== undefined) {
141
+ return {
142
+ ok: false,
143
+ documentId: null,
144
+ grammarVersion: null,
145
+ candidateText: null,
146
+ candidateDigest: null,
147
+ edits: [],
148
+ write: previewWrite,
149
+ diagnostics: [mutationDiagnostic("PTMUT-301", error)],
150
+ diagnosticsTruncated: false,
151
+ };
152
+ }
153
+ const candidateText = renderCandidate(request);
154
+ const checked = validateTargetGrammar4Document(candidateText, capability, options);
155
+ if (!checked.ok || checked.validatedDocument === null) {
156
+ return {
157
+ ok: false,
158
+ documentId: checked.documentId,
159
+ grammarVersion: null,
160
+ candidateText: null,
161
+ candidateDigest: null,
162
+ edits: [],
163
+ write: previewWrite,
164
+ diagnostics: checked.diagnostics,
165
+ diagnosticsTruncated: checked.diagnosticsTruncated,
166
+ };
167
+ }
168
+ const edit = Object.freeze({
169
+ startOffset: 0,
170
+ endOffset: 0,
171
+ replacement: candidateText,
172
+ });
173
+ return {
174
+ ok: true,
175
+ documentId: checked.documentId,
176
+ grammarVersion: checked.validatedDocument.grammarVersion,
177
+ candidateText,
178
+ candidateDigest: digestDocumentBytes(Buffer.from(candidateText, "utf8")),
179
+ edits: Object.freeze([edit]),
180
+ write: previewWrite,
181
+ diagnostics: checked.diagnostics,
182
+ diagnosticsTruncated: checked.diagnosticsTruncated,
183
+ };
184
+ }
185
+ //# sourceMappingURL=target-governance-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-governance-init.js","sourceRoot":"","sources":["../../src/application/target-governance-init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { GovernanceDecisionV1, GovernanceRequestInput } from "../governance/types.js";
2
+ import type { TargetGovernanceBatchMutation, TargetGovernanceMutation } from "../mutation/target-types.js";
3
+ import type { MutationOptions, MutationResult } from "../mutation/types.js";
4
+ import { type AdvanceResult } from "../mutation/advance.js";
5
+ import type { TargetGrammar4Capability } from "../parser/document-parser.js";
6
+ export interface TargetGovernanceMutationOptions extends MutationOptions {
7
+ readonly governance?: GovernanceRequestInput;
8
+ }
9
+ export interface TargetGovernanceMutationResultV2 extends MutationResult {
10
+ readonly schemaVersion: "Perttool.MutationResult.v2";
11
+ readonly governance: GovernanceDecisionV1 | null;
12
+ }
13
+ export interface TargetGovernanceAdvanceResultV2 extends AdvanceResult {
14
+ readonly schemaVersion: "Perttool.MutationResult.v2";
15
+ readonly governance: GovernanceDecisionV1 | null;
16
+ }
17
+ export declare function planTargetGovernanceMutation(text: string, mutation: TargetGovernanceMutation, capability: TargetGrammar4Capability, options?: TargetGovernanceMutationOptions): TargetGovernanceMutationResultV2;
18
+ export declare function planTargetGovernanceBatchMutation(text: string, mutation: TargetGovernanceBatchMutation, capability: TargetGrammar4Capability, options?: TargetGovernanceMutationOptions): TargetGovernanceMutationResultV2;
19
+ export declare function planTargetGovernanceAdvance(text: string, capability: TargetGrammar4Capability, options?: TargetGovernanceMutationOptions): TargetGovernanceAdvanceResultV2;
20
+ //# sourceMappingURL=target-governance-mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-governance-mutation.d.ts","sourceRoot":"","sources":["../../src/application/target-governance-mutation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,KAAK,EACV,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAU7E,MAAM,WAAW,+BAAgC,SAAQ,eAAe;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;CAC9C;AAED,MAAM,WAAW,gCAAiC,SAAQ,cAAc;IACtE,QAAQ,CAAC,aAAa,EAAE,4BAA4B,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,+BACf,SAAQ,aAAa;IACrB,QAAQ,CAAC,aAAa,EAAE,4BAA4B,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAClD;AA8JD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,+BAAoC,GAC5C,gCAAgC,CAiClC;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,6BAA6B,EACvC,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,+BAAoC,GAC5C,gCAAgC,CAiClC;AA8BD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,+BAAoC,GAC5C,+BAA+B,CAoCjC"}