perttool 0.2.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 (259) hide show
  1. package/CHANGELOG.md +81 -1
  2. package/README.md +121 -28
  3. package/dist/analysis/temporal-deadline.d.ts +59 -0
  4. package/dist/analysis/temporal-deadline.d.ts.map +1 -0
  5. package/dist/analysis/temporal-deadline.js +387 -0
  6. package/dist/analysis/temporal-deadline.js.map +1 -0
  7. package/dist/analysis/temporal-precedence.d.ts +45 -0
  8. package/dist/analysis/temporal-precedence.d.ts.map +1 -0
  9. package/dist/analysis/temporal-precedence.js +123 -0
  10. package/dist/analysis/temporal-precedence.js.map +1 -0
  11. package/dist/analysis/temporal-resource.d.ts +66 -0
  12. package/dist/analysis/temporal-resource.d.ts.map +1 -0
  13. package/dist/analysis/temporal-resource.js +292 -0
  14. package/dist/analysis/temporal-resource.js.map +1 -0
  15. package/dist/application/check.d.ts +16 -0
  16. package/dist/application/check.d.ts.map +1 -1
  17. package/dist/application/check.js +51 -0
  18. package/dist/application/check.js.map +1 -1
  19. package/dist/application/contract4.d.ts +17 -0
  20. package/dist/application/contract4.d.ts.map +1 -0
  21. package/dist/application/contract4.js +27 -0
  22. package/dist/application/contract4.js.map +1 -0
  23. package/dist/application/contract5-governance.d.ts +8 -0
  24. package/dist/application/contract5-governance.d.ts.map +1 -0
  25. package/dist/application/contract5-governance.js +12 -0
  26. package/dist/application/contract5-governance.js.map +1 -0
  27. package/dist/application/init.d.ts +3 -11
  28. package/dist/application/init.d.ts.map +1 -1
  29. package/dist/application/init.js +16 -129
  30. package/dist/application/init.js.map +1 -1
  31. package/dist/application/mutate.d.ts +19 -0
  32. package/dist/application/mutate.d.ts.map +1 -1
  33. package/dist/application/mutate.js +34 -16
  34. package/dist/application/mutate.js.map +1 -1
  35. package/dist/application/next.d.ts +2 -0
  36. package/dist/application/next.d.ts.map +1 -1
  37. package/dist/application/next.js +7 -1
  38. package/dist/application/next.js.map +1 -1
  39. package/dist/application/project.d.ts +4 -22
  40. package/dist/application/project.d.ts.map +1 -1
  41. package/dist/application/project.js +3 -51
  42. package/dist/application/project.js.map +1 -1
  43. package/dist/application/target-check.d.ts +34 -0
  44. package/dist/application/target-check.d.ts.map +1 -0
  45. package/dist/application/target-check.js +90 -0
  46. package/dist/application/target-check.js.map +1 -0
  47. package/dist/application/target-governance-init.d.ts +36 -0
  48. package/dist/application/target-governance-init.d.ts.map +1 -0
  49. package/dist/application/target-governance-init.js +185 -0
  50. package/dist/application/target-governance-init.js.map +1 -0
  51. package/dist/application/target-governance-mutation.d.ts +20 -0
  52. package/dist/application/target-governance-mutation.d.ts.map +1 -0
  53. package/dist/application/target-governance-mutation.js +175 -0
  54. package/dist/application/target-governance-mutation.js.map +1 -0
  55. package/dist/application/target-governance-project.d.ts +34 -0
  56. package/dist/application/target-governance-project.d.ts.map +1 -0
  57. package/dist/application/target-governance-project.js +80 -0
  58. package/dist/application/target-governance-project.js.map +1 -0
  59. package/dist/application/target-governance-projection.d.ts +18 -0
  60. package/dist/application/target-governance-projection.d.ts.map +1 -0
  61. package/dist/application/target-governance-projection.js +248 -0
  62. package/dist/application/target-governance-projection.js.map +1 -0
  63. package/dist/application/target-governance-write.d.ts +17 -0
  64. package/dist/application/target-governance-write.d.ts.map +1 -0
  65. package/dist/application/target-governance-write.js +55 -0
  66. package/dist/application/target-governance-write.js.map +1 -0
  67. package/dist/application/target-grammar-boundary.d.ts +22 -0
  68. package/dist/application/target-grammar-boundary.d.ts.map +1 -0
  69. package/dist/application/target-grammar-boundary.js +91 -0
  70. package/dist/application/target-grammar-boundary.js.map +1 -0
  71. package/dist/application/target-mutate.d.ts +10 -0
  72. package/dist/application/target-mutate.d.ts.map +1 -0
  73. package/dist/application/target-mutate.js +81 -0
  74. package/dist/application/target-mutate.js.map +1 -0
  75. package/dist/application/target-project.d.ts +28 -0
  76. package/dist/application/target-project.d.ts.map +1 -0
  77. package/dist/application/target-project.js +60 -0
  78. package/dist/application/target-project.js.map +1 -0
  79. package/dist/application/target-temporal-analysis.d.ts +140 -0
  80. package/dist/application/target-temporal-analysis.d.ts.map +1 -0
  81. package/dist/application/target-temporal-analysis.js +414 -0
  82. package/dist/application/target-temporal-analysis.js.map +1 -0
  83. package/dist/application/target-temporal-input.d.ts +86 -0
  84. package/dist/application/target-temporal-input.d.ts.map +1 -0
  85. package/dist/application/target-temporal-input.js +240 -0
  86. package/dist/application/target-temporal-input.js.map +1 -0
  87. package/dist/application/target-unit-migration-candidate.d.ts +60 -0
  88. package/dist/application/target-unit-migration-candidate.d.ts.map +1 -0
  89. package/dist/application/target-unit-migration-candidate.js +294 -0
  90. package/dist/application/target-unit-migration-candidate.js.map +1 -0
  91. package/dist/application/target-unit-migration-request.d.ts +35 -0
  92. package/dist/application/target-unit-migration-request.d.ts.map +1 -0
  93. package/dist/application/target-unit-migration-request.js +70 -0
  94. package/dist/application/target-unit-migration-request.js.map +1 -0
  95. package/dist/application/target-unit-migration-result.d.ts +66 -0
  96. package/dist/application/target-unit-migration-result.d.ts.map +1 -0
  97. package/dist/application/target-unit-migration-result.js +86 -0
  98. package/dist/application/target-unit-migration-result.js.map +1 -0
  99. package/dist/application/unit-migration.d.ts +16 -0
  100. package/dist/application/unit-migration.d.ts.map +1 -0
  101. package/dist/application/unit-migration.js +11 -0
  102. package/dist/application/unit-migration.js.map +1 -0
  103. package/dist/cli.js +383 -132
  104. package/dist/cli.js.map +1 -1
  105. package/dist/command/discovery.d.ts +3 -3
  106. package/dist/command/discovery.d.ts.map +1 -1
  107. package/dist/command/discovery.js +149 -22
  108. package/dist/command/discovery.js.map +1 -1
  109. package/dist/command/registry.d.ts +8 -2
  110. package/dist/command/registry.d.ts.map +1 -1
  111. package/dist/command/registry.js +14 -1
  112. package/dist/command/registry.js.map +1 -1
  113. package/dist/command/target-governance-discovery.d.ts +31 -0
  114. package/dist/command/target-governance-discovery.d.ts.map +1 -0
  115. package/dist/command/target-governance-discovery.js +390 -0
  116. package/dist/command/target-governance-discovery.js.map +1 -0
  117. package/dist/command/target-governance-usage.d.ts +22 -0
  118. package/dist/command/target-governance-usage.d.ts.map +1 -0
  119. package/dist/command/target-governance-usage.js +116 -0
  120. package/dist/command/target-governance-usage.js.map +1 -0
  121. package/dist/command/usage.d.ts +2 -0
  122. package/dist/command/usage.d.ts.map +1 -1
  123. package/dist/command/usage.js +44 -26
  124. package/dist/command/usage.js.map +1 -1
  125. package/dist/conversion/mermaid-import.d.ts.map +1 -1
  126. package/dist/conversion/mermaid-import.js +3 -2
  127. package/dist/conversion/mermaid-import.js.map +1 -1
  128. package/dist/conversion/mermaid.d.ts.map +1 -1
  129. package/dist/conversion/mermaid.js +27 -0
  130. package/dist/conversion/mermaid.js.map +1 -1
  131. package/dist/formatter/source-formatter.d.ts +12 -0
  132. package/dist/formatter/source-formatter.d.ts.map +1 -1
  133. package/dist/formatter/source-formatter.js +59 -6
  134. package/dist/formatter/source-formatter.js.map +1 -1
  135. package/dist/formatter/target-source-formatter.d.ts +9 -0
  136. package/dist/formatter/target-source-formatter.d.ts.map +1 -0
  137. package/dist/formatter/target-source-formatter.js +52 -0
  138. package/dist/formatter/target-source-formatter.js.map +1 -0
  139. package/dist/governance/authority.d.ts +21 -0
  140. package/dist/governance/authority.d.ts.map +1 -0
  141. package/dist/governance/authority.js +206 -0
  142. package/dist/governance/authority.js.map +1 -0
  143. package/dist/governance/guidance.d.ts +2 -0
  144. package/dist/governance/guidance.d.ts.map +1 -0
  145. package/dist/governance/guidance.js +2 -0
  146. package/dist/governance/guidance.js.map +1 -0
  147. package/dist/governance/source.d.ts +37 -0
  148. package/dist/governance/source.d.ts.map +1 -0
  149. package/dist/governance/source.js +103 -0
  150. package/dist/governance/source.js.map +1 -0
  151. package/dist/governance/types.d.ts +41 -0
  152. package/dist/governance/types.d.ts.map +1 -0
  153. package/dist/governance/types.js +2 -0
  154. package/dist/governance/types.js.map +1 -0
  155. package/dist/help/guide.d.ts +8 -5
  156. package/dist/help/guide.d.ts.map +1 -1
  157. package/dist/help/guide.js +1 -1
  158. package/dist/help/guide.js.map +1 -1
  159. package/dist/help/registry.d.ts.map +1 -1
  160. package/dist/help/registry.js +124 -13
  161. package/dist/help/registry.js.map +1 -1
  162. package/dist/help/target-governance-guide.d.ts +10 -0
  163. package/dist/help/target-governance-guide.d.ts.map +1 -0
  164. package/dist/help/target-governance-guide.js +57 -0
  165. package/dist/help/target-governance-guide.js.map +1 -0
  166. package/dist/index.d.ts +25 -17
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +8 -8
  169. package/dist/index.js.map +1 -1
  170. package/dist/io/safe-write.d.ts +11 -0
  171. package/dist/io/safe-write.d.ts.map +1 -1
  172. package/dist/io/safe-write.js +40 -10
  173. package/dist/io/safe-write.js.map +1 -1
  174. package/dist/io/target-safe-write.d.ts +10 -0
  175. package/dist/io/target-safe-write.d.ts.map +1 -0
  176. package/dist/io/target-safe-write.js +51 -0
  177. package/dist/io/target-safe-write.js.map +1 -0
  178. package/dist/migration/conversion.d.ts +40 -0
  179. package/dist/migration/conversion.d.ts.map +1 -0
  180. package/dist/migration/conversion.js +106 -0
  181. package/dist/migration/conversion.js.map +1 -0
  182. package/dist/migration/grammar-boundary.d.ts +20 -0
  183. package/dist/migration/grammar-boundary.d.ts.map +1 -0
  184. package/dist/migration/grammar-boundary.js +95 -0
  185. package/dist/migration/grammar-boundary.js.map +1 -0
  186. package/dist/migration/request.d.ts +79 -0
  187. package/dist/migration/request.d.ts.map +1 -0
  188. package/dist/migration/request.js +308 -0
  189. package/dist/migration/request.js.map +1 -0
  190. package/dist/model/calendar-arithmetic.d.ts +46 -0
  191. package/dist/model/calendar-arithmetic.d.ts.map +1 -0
  192. package/dist/model/calendar-arithmetic.js +236 -0
  193. package/dist/model/calendar-arithmetic.js.map +1 -0
  194. package/dist/model/calendar.d.ts +22 -0
  195. package/dist/model/calendar.d.ts.map +1 -0
  196. package/dist/model/calendar.js +83 -0
  197. package/dist/model/calendar.js.map +1 -0
  198. package/dist/model/declaration-fields.d.ts +22 -0
  199. package/dist/model/declaration-fields.d.ts.map +1 -0
  200. package/dist/model/declaration-fields.js +72 -0
  201. package/dist/model/declaration-fields.js.map +1 -0
  202. package/dist/model/exact-duration-source.d.ts +10 -0
  203. package/dist/model/exact-duration-source.d.ts.map +1 -0
  204. package/dist/model/exact-duration-source.js +69 -0
  205. package/dist/model/exact-duration-source.js.map +1 -0
  206. package/dist/model/rational.d.ts +2 -2
  207. package/dist/model/rational.d.ts.map +1 -1
  208. package/dist/model/rational.js +3 -1
  209. package/dist/model/rational.js.map +1 -1
  210. package/dist/model/syntax.d.ts +9 -2
  211. package/dist/model/syntax.d.ts.map +1 -1
  212. package/dist/model/syntax.js +20 -4
  213. package/dist/model/syntax.js.map +1 -1
  214. package/dist/model/target-calendar.d.ts +25 -0
  215. package/dist/model/target-calendar.d.ts.map +1 -0
  216. package/dist/model/target-calendar.js +56 -0
  217. package/dist/model/target-calendar.js.map +1 -0
  218. package/dist/mutation/advance.d.ts +11 -0
  219. package/dist/mutation/advance.d.ts.map +1 -1
  220. package/dist/mutation/advance.js +37 -7
  221. package/dist/mutation/advance.js.map +1 -1
  222. package/dist/mutation/milestone.d.ts +10 -1
  223. package/dist/mutation/milestone.d.ts.map +1 -1
  224. package/dist/mutation/milestone.js +77 -21
  225. package/dist/mutation/milestone.js.map +1 -1
  226. package/dist/mutation/project.d.ts +11 -1
  227. package/dist/mutation/project.d.ts.map +1 -1
  228. package/dist/mutation/project.js +117 -11
  229. package/dist/mutation/project.js.map +1 -1
  230. package/dist/mutation/target-types.d.ts +59 -0
  231. package/dist/mutation/target-types.d.ts.map +1 -0
  232. package/dist/mutation/target-types.js +2 -0
  233. package/dist/mutation/target-types.js.map +1 -0
  234. package/dist/mutation/task.d.ts +12 -1
  235. package/dist/mutation/task.d.ts.map +1 -1
  236. package/dist/mutation/task.js +108 -49
  237. package/dist/mutation/task.js.map +1 -1
  238. package/dist/mutation/types.d.ts +16 -3
  239. package/dist/mutation/types.d.ts.map +1 -1
  240. package/dist/parser/document-parser.d.ts +21 -0
  241. package/dist/parser/document-parser.d.ts.map +1 -1
  242. package/dist/parser/document-parser.js +197 -38
  243. package/dist/parser/document-parser.js.map +1 -1
  244. package/dist/recommendation/override-types.d.ts +2 -2
  245. package/dist/recommendation/override.d.ts +2 -2
  246. package/dist/recommendation/override.d.ts.map +1 -1
  247. package/dist/recommendation/override.js +49 -12
  248. package/dist/recommendation/override.js.map +1 -1
  249. package/dist/semantic/target-validator.d.ts +46 -0
  250. package/dist/semantic/target-validator.d.ts.map +1 -0
  251. package/dist/semantic/target-validator.js +130 -0
  252. package/dist/semantic/target-validator.js.map +1 -0
  253. package/dist/semantic/validator.d.ts +3 -0
  254. package/dist/semantic/validator.d.ts.map +1 -1
  255. package/dist/semantic/validator.js +78 -5
  256. package/dist/semantic/validator.js.map +1 -1
  257. package/dist/version.d.ts +1 -1
  258. package/dist/version.js +1 -1
  259. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,28 +1,29 @@
1
1
  export { checkDocument } from "./application/check.js";
2
- export { analyzeDocument } from "./application/analyze.js";
2
+ export { analyzeDocument, selectNextTasks, } from "./application/contract4.js";
3
3
  export { getAgentHelp } from "./application/agent-help.js";
4
4
  export { getProjectMetadata } from "./application/project.js";
5
5
  export { planProjectInit, projectInitResultToJson, renderProjectInitResult, serializeProjectInitResult, withProjectInitOutput, } from "./application/init.js";
6
6
  export { planFormat } from "./application/format.js";
7
- export { selectNextTasks } from "./application/next.js";
8
7
  export { recommendationAnalysisToJson } from "./recommendation/json.js";
9
8
  export { canonicalOverrideArtifact, humanOverrideDecisionToJson, overrideValidationResultToJson, validateOverride, } from "./recommendation/override.js";
10
- export { planMutation } from "./application/mutate.js";
11
- export { planAdvance } from "./mutation/advance.js";
9
+ export { planAdvance, planBatchMutation, planMutation, } from "./application/contract5-governance.js";
10
+ export { planUnitMigration, withUnitMigrationWrite, } from "./application/unit-migration.js";
12
11
  export { exportMermaid } from "./conversion/mermaid.js";
13
12
  export { importMermaid } from "./conversion/mermaid-import.js";
14
13
  export { buildResidualGraph, computeEffectiveReached } from "./analysis/graph.js";
15
14
  export { analyzePrecedence } from "./analysis/precedence.js";
16
15
  export { analyzeResources } from "./analysis/resource.js";
17
16
  export { getHelp } from "./help/registry.js";
18
- export { commandDescriptorToJson, commandOptionSets, getAgentHelpCommandHelp, } from "./command/registry.js";
19
- export { CONTRACT3_COMMAND_REGISTRY as COMMAND_REGISTRY, commandHelpResultToJson, commandRegistryToJson, getCommandDiscovery, renderCommandHelpResult, serializeCommandHelpResult, } from "./command/discovery.js";
20
- export { commandUsageErrorToJson, renderCommandUsageError, serializeCommandUsageError, validateCommandInvocation, } from "./command/usage.js";
21
- export { getGuide, guideResultToJson, renderGuideResult, serializeGuideResult, } from "./help/guide.js";
22
- export type { CommandExample, CommandHandler, CommandOutputDescriptor, ExitStatusDescriptor, OperandDescriptor, OptionDescriptor, ProjectedCommandDescriptor, ProjectedCommandDescriptor as CommandDescriptor, SharedOptionGroup, } from "./command/registry.js";
23
- export type { CommandHelpQuery, CommandHelpResult, CommandResourceSummary, } from "./command/discovery.js";
24
- export type { CommandHelpTarget, CommandInvocationValidation, CommandOptionOccurrence, CommandUsageError, CommandUsageErrorKind, CommandUsageSuggestion, CommandUsageSuggestionKind, InvalidCommandInvocation, ValidCommandInvocation, } from "./command/usage.js";
25
- export type { GuideResult } from "./help/guide.js";
17
+ export { commandOptionSets, getAgentHelpCommandHelp, } from "./command/registry.js";
18
+ export { TARGET_GOVERNANCE_COMMAND_REGISTRY as COMMAND_REGISTRY, getTargetGovernanceCommandDiscovery as getCommandDiscovery, renderTargetGovernanceCommandHelpResult as renderCommandHelpResult, serializeTargetGovernanceCommandHelpResult as serializeCommandHelpResult, targetGovernanceCommandDescriptorToJson as commandDescriptorToJson, targetGovernanceCommandHelpResultToJson as commandHelpResultToJson, targetGovernanceCommandRegistryToJson as commandRegistryToJson, } from "./command/target-governance-discovery.js";
19
+ export { renderTargetGovernanceCommandUsageError as renderCommandUsageError, serializeTargetGovernanceCommandUsageError as serializeCommandUsageError, targetGovernanceCommandUsageErrorToJson as commandUsageErrorToJson, validateTargetGovernanceCommandInvocation as validateCommandInvocation, } from "./command/target-governance-usage.js";
20
+ export { getTargetGovernanceGuide as getGuide, renderTargetGovernanceGuideResult as renderGuideResult, serializeTargetGovernanceGuideResult as serializeGuideResult, targetGovernanceGuideResultToJson as guideResultToJson, } from "./help/target-governance-guide.js";
21
+ export type { CommandExample, CommandHandler, CommandOutputDescriptor, ExitStatusDescriptor, OperandDescriptor, SharedOptionGroup, } from "./command/registry.js";
22
+ export type { CommandHelpQuery, CommandResourceSummary, } from "./command/discovery.js";
23
+ export type { CommandHelpTarget, CommandOptionOccurrence, CommandUsageError, CommandUsageErrorKind, CommandUsageSuggestion, CommandUsageSuggestionKind, } from "./command/usage.js";
24
+ export type { TargetGovernanceCommandDescriptor as CommandDescriptor, TargetGovernanceCommandDescriptor as ProjectedCommandDescriptor, TargetGovernanceCommandHelpResult as CommandHelpResult, TargetGovernanceOptionDescriptor as OptionDescriptor, } from "./command/target-governance-discovery.js";
25
+ export type { TargetGovernanceCommandInvocationValidation as CommandInvocationValidation, TargetGovernanceInvalidCommandInvocation as InvalidCommandInvocation, TargetGovernanceValidCommandInvocation as ValidCommandInvocation, } from "./command/target-governance-usage.js";
26
+ export type { TargetGovernanceGuideResult as GuideResult, } from "./help/target-governance-guide.js";
26
27
  export { getAgentGuidance, getBundledAgentGuidance, } from "./guidance/query.js";
27
28
  export { agentGuidanceResultToJson, serializeAgentGuidanceResult, } from "./guidance/projection.js";
28
29
  export { agentGuidanceExitCode, renderAgentGuidanceText, } from "./guidance/text.js";
@@ -36,7 +37,8 @@ export * from "./model/rational.js";
36
37
  export * from "./model/units.js";
37
38
  export { parseDocument } from "./parser/document-parser.js";
38
39
  export { validateDocument } from "./semantic/validator.js";
39
- export type { CheckOptions, CheckResult, CheckSummary } from "./application/check.js";
40
+ export { GOVERNANCE_DIRECT_EDIT_WARNING } from "./governance/guidance.js";
41
+ export type { CheckOptions, CheckResult, CheckSummary, MilestoneDeadlineInput, TaskTemporalConstraint, TemporalInputs, } from "./application/check.js";
40
42
  export type { ProjectMetadata, ProjectMetadataDurationUnit, ProjectMetadataResult, } from "./application/project.js";
41
43
  export type { ProjectInitDurationUnit, ProjectInitRequest, ProjectInitResult, ProjectInitWrite, } from "./application/init.js";
42
44
  export { AGENT_GUIDANCE_DIRECTIVES, AGENT_GUIDANCE_ORIGINS, AGENT_GUIDANCE_PROVIDER_IDS, AGENT_GUIDANCE_RISK_KINDS, AGENT_GUIDANCE_SCOPE_IDS, AGENT_GUIDANCE_SUPPORT_STATUSES, AGENT_GUIDANCE_SURFACE_IDS, } from "./guidance/types.js";
@@ -44,8 +46,9 @@ export type { AgentGuidanceAlias, AgentGuidanceArtifact, AgentGuidanceArtifactPr
44
46
  export type { ConversionLoss, ConversionLossReport, MermaidAnalysisMode, MermaidExportOptions, MermaidExportResult, MermaidProfile, } from "./conversion/mermaid.js";
45
47
  export type { GeneratedId, MermaidImportOptions, MermaidImportResult, } from "./conversion/mermaid-import.js";
46
48
  export type { FormatPreviewOptions, FormatPreviewResult, } from "./application/format.js";
47
- export type { AnalysisMode, AnalysisResult, AnalyzeOptions, } from "./application/analyze.js";
48
- export type { ExplanationNode, NextGroups, NextOptions, NextResult, NextResultV3, NextTask, ResourceRejection, TaskClassification, UnsatisfiedEdgeExplanation, } from "./application/next.js";
49
+ export type { AnalysisMode, AnalyzeOptions, } from "./application/analyze.js";
50
+ export type { ExplanationNode, NextGroups, NextOptions, NextResultV3, NextTask, ResourceRejection, TaskClassification, UnsatisfiedEdgeExplanation, } from "./application/next.js";
51
+ export type { AnalysisResultV3 as AnalysisResult, AnalysisResultV3, NextResultV4 as NextResult, NextResultV4, } from "./application/contract4.js";
49
52
  export type { RecommendationAnalysis, RecommendationComparison, RecommendationComparisonScope, RecommendationDecisionPhase, RecommendationDecisionRole, RecommendationDecisionStep, RecommendationDescription, RecommendationDescriptionParameter, RecommendationEntityKind, RecommendationEntityReference, RecommendationExplanationStatus, RecommendationExplanationTaskDecision, RecommendationExpression, RecommendationExpressionTerm, RecommendationFact, RecommendationProvenance, RecommendationProvenanceKind, RecommendationReasonCode, RecommendationReasonEffect, RecommendationReasonOccurrence, RecommendationRelation, RecommendationResultDecision, RecommendationScalarValue, RecommendationUnit, RecommendationValue, } from "./recommendation/explanation-types.js";
50
53
  export type { RecommendationCriticalClass, RecommendationDistance, RecommendationRankingRuleId, RecommendationTier, } from "./recommendation/types.js";
51
54
  export type { HumanOverrideDecision, HumanOverrideReasonCode, OverrideActor, OverrideDecisionSource, OverrideEvidenceKind, OverrideEvidenceReference, OverrideFeasibility, OverrideReason, OverrideRequest, OverrideResourceWitness, OverrideSelection, OverrideTaskDecision, OverrideTriggerCode, OverrideValidationResult, } from "./recommendation/override-types.js";
@@ -57,8 +60,13 @@ export type { DocumentNode, DeclarationNode, FieldNode, TriviaNode, VelocityValu
57
60
  export type { ParseOptions } from "./parser/document-parser.js";
58
61
  export type { FormatOptions, FormatResult, } from "./formatter/source-formatter.js";
59
62
  export type { TextEdit } from "./mutation/text-edits.js";
60
- export type { AdvanceDetails, AdvanceResult, AdvanceRetainedEdge, AdvanceRetentionReason, } from "./mutation/advance.js";
63
+ export type { AdvanceDetails, AdvanceRetainedEdge, AdvanceRetentionReason, } from "./mutation/advance.js";
64
+ export type { AdvanceResultV2 as AdvanceResult, AdvanceResultV2, MutationResultV2 as MutationResult, MutationResultV2, } from "./application/contract5-governance.js";
61
65
  export type { DocumentContent } from "./io/document-file.js";
62
66
  export type { CreateArtifactOptions, CreateDocumentOptions, DocumentWriteResult, ReplaceDocumentOptions, SafeWriteConflictReason, SafeWriteVerificationReason, } from "./io/safe-write.js";
63
- export type { AddGateMutation, AddMilestoneMutation, AddResourceMutation, AddTaskMutation, AtomicMutation, BatchMutation, FinishTaskMutation, GateDefinition, GateFieldSet, GateMutation, MilestoneClearableField, MilestoneDefinition, MilestoneFieldSet, MilestoneMutation, MilestoneMutationState, Mutation, MutationOptions, MutationResult, RemoveMilestoneMutation, RemoveGateMutation, RemoveResourceMutation, RemoveTaskMutation, ProjectClearableField, ProjectDurationUnit, ProjectFieldSet, ProjectMutation, ResourceClearableField, ResourceDefinition, ResourceFieldSet, ResourceMutation, SetMilestoneMutation, SetGateMutation, SetProjectMutation, SetResourceMutation, SetTaskMutation, TaskClearableField, TaskDefinition, TaskEstimateInput, TaskFieldSet, TaskMutation, TaskMutationStatus, TaskRequirementInput, } from "./mutation/types.js";
67
+ export type { AddGateMutation, AddMilestoneMutation, AddResourceMutation, AddTaskMutation, AtomicMutation, BatchMutation, FinishTaskMutation, GateDefinition, GateFieldSet, GateMutation, MilestoneClearableField, MilestoneDefinition, MilestoneFieldSet, MilestoneMutation, MilestoneMutationState, Mutation, MutationOptions, RemoveMilestoneMutation, RemoveGateMutation, RemoveResourceMutation, RemoveTaskMutation, ProjectClearableField, ProjectDurationUnit, ProjectFieldSet, ProjectMutation, ResourceClearableField, ResourceDefinition, ResourceFieldSet, ResourceMutation, SetMilestoneMutation, SetGateMutation, SetProjectMutation, SetResourceMutation, SetTaskMutation, TaskClearableField, TaskDefinition, TaskEstimateInput, TaskFieldSet, TaskMutation, TaskMutationStatus, TaskRequirementInput, } from "./mutation/types.js";
68
+ export type { GovernanceDecisionV1, GovernanceDenialCause, GovernancePersistenceIntent, GovernanceRequest, GovernanceRequestInput, GovernanceScope, GovernanceScopeDecision, } from "./governance/types.js";
69
+ export type { DeclaredGovernance, EffectiveGovernance, GovernanceMetadata, GovernanceSourceSnapshot, PrincipalId, } from "./governance/source.js";
70
+ export type { UnitMigrationConvertedField, UnitMigrationEffectiveVelocity, UnitMigrationExactValue, UnitMigrationOptions, UnitMigrationResult, UnitMigrationWrite, } from "./application/unit-migration.js";
71
+ export type { UnitMigrationCause, UnitMigrationDiagnosticCode, UnitMigrationRequest, UnitMigrationUnavailableCause, } from "./migration/request.js";
64
72
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,24 +1,23 @@
1
1
  export { checkDocument } from "./application/check.js";
2
- export { analyzeDocument } from "./application/analyze.js";
2
+ export { analyzeDocument, selectNextTasks, } from "./application/contract4.js";
3
3
  export { getAgentHelp } from "./application/agent-help.js";
4
4
  export { getProjectMetadata } from "./application/project.js";
5
5
  export { planProjectInit, projectInitResultToJson, renderProjectInitResult, serializeProjectInitResult, withProjectInitOutput, } from "./application/init.js";
6
6
  export { planFormat } from "./application/format.js";
7
- export { selectNextTasks } from "./application/next.js";
8
7
  export { recommendationAnalysisToJson } from "./recommendation/json.js";
9
8
  export { canonicalOverrideArtifact, humanOverrideDecisionToJson, overrideValidationResultToJson, validateOverride, } from "./recommendation/override.js";
10
- export { planMutation } from "./application/mutate.js";
11
- export { planAdvance } from "./mutation/advance.js";
9
+ export { planAdvance, planBatchMutation, planMutation, } from "./application/contract5-governance.js";
10
+ export { planUnitMigration, withUnitMigrationWrite, } from "./application/unit-migration.js";
12
11
  export { exportMermaid } from "./conversion/mermaid.js";
13
12
  export { importMermaid } from "./conversion/mermaid-import.js";
14
13
  export { buildResidualGraph, computeEffectiveReached } from "./analysis/graph.js";
15
14
  export { analyzePrecedence } from "./analysis/precedence.js";
16
15
  export { analyzeResources } from "./analysis/resource.js";
17
16
  export { getHelp } from "./help/registry.js";
18
- export { commandDescriptorToJson, commandOptionSets, getAgentHelpCommandHelp, } from "./command/registry.js";
19
- export { CONTRACT3_COMMAND_REGISTRY as COMMAND_REGISTRY, commandHelpResultToJson, commandRegistryToJson, getCommandDiscovery, renderCommandHelpResult, serializeCommandHelpResult, } from "./command/discovery.js";
20
- export { commandUsageErrorToJson, renderCommandUsageError, serializeCommandUsageError, validateCommandInvocation, } from "./command/usage.js";
21
- export { getGuide, guideResultToJson, renderGuideResult, serializeGuideResult, } from "./help/guide.js";
17
+ export { commandOptionSets, getAgentHelpCommandHelp, } from "./command/registry.js";
18
+ export { TARGET_GOVERNANCE_COMMAND_REGISTRY as COMMAND_REGISTRY, getTargetGovernanceCommandDiscovery as getCommandDiscovery, renderTargetGovernanceCommandHelpResult as renderCommandHelpResult, serializeTargetGovernanceCommandHelpResult as serializeCommandHelpResult, targetGovernanceCommandDescriptorToJson as commandDescriptorToJson, targetGovernanceCommandHelpResultToJson as commandHelpResultToJson, targetGovernanceCommandRegistryToJson as commandRegistryToJson, } from "./command/target-governance-discovery.js";
19
+ export { renderTargetGovernanceCommandUsageError as renderCommandUsageError, serializeTargetGovernanceCommandUsageError as serializeCommandUsageError, targetGovernanceCommandUsageErrorToJson as commandUsageErrorToJson, validateTargetGovernanceCommandInvocation as validateCommandInvocation, } from "./command/target-governance-usage.js";
20
+ export { getTargetGovernanceGuide as getGuide, renderTargetGovernanceGuideResult as renderGuideResult, serializeTargetGovernanceGuideResult as serializeGuideResult, targetGovernanceGuideResultToJson as guideResultToJson, } from "./help/target-governance-guide.js";
22
21
  export { getAgentGuidance, getBundledAgentGuidance, } from "./guidance/query.js";
23
22
  export { agentGuidanceResultToJson, serializeAgentGuidanceResult, } from "./guidance/projection.js";
24
23
  export { agentGuidanceExitCode, renderAgentGuidanceText, } from "./guidance/text.js";
@@ -32,5 +31,6 @@ export * from "./model/rational.js";
32
31
  export * from "./model/units.js";
33
32
  export { parseDocument } from "./parser/document-parser.js";
34
33
  export { validateDocument } from "./semantic/validator.js";
34
+ export { GOVERNANCE_DIRECT_EDIT_WARNING } from "./governance/guidance.js";
35
35
  export { AGENT_GUIDANCE_DIRECTIVES, AGENT_GUIDANCE_ORIGINS, AGENT_GUIDANCE_PROVIDER_IDS, AGENT_GUIDANCE_RISK_KINDS, AGENT_GUIDANCE_SCOPE_IDS, AGENT_GUIDANCE_SUPPORT_STATUSES, AGENT_GUIDANCE_SURFACE_IDS, } from "./guidance/types.js";
36
36
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ export interface ReplaceDocumentOptions {
17
17
  export interface CreateDocumentOptions {
18
18
  readonly mode?: number;
19
19
  }
20
+ export interface CreateDocumentFromSourceOptions extends CreateDocumentOptions {
21
+ readonly initialDigest: string;
22
+ }
20
23
  export interface CreateArtifactOptions {
21
24
  readonly mode?: number;
22
25
  }
@@ -27,7 +30,15 @@ export interface DocumentWriteResult {
27
30
  readonly bytesWritten: number;
28
31
  readonly written: boolean;
29
32
  }
33
+ export interface DocumentCandidateValidation {
34
+ readonly ok: boolean;
35
+ readonly diagnostics: readonly Diagnostic[];
36
+ }
37
+ export type DocumentCandidateValidator = (text: string) => DocumentCandidateValidation;
38
+ export declare function replaceValidatedDocumentFile(target: string, candidateText: string, options: ReplaceDocumentOptions, validator: DocumentCandidateValidator): Promise<DocumentWriteResult>;
30
39
  export declare function replaceDocumentFile(target: string, candidateText: string, options: ReplaceDocumentOptions): Promise<DocumentWriteResult>;
40
+ export declare function createValidatedDocumentFile(target: string, candidateText: string, validator: DocumentCandidateValidator, options?: CreateDocumentOptions): Promise<DocumentWriteResult>;
41
+ export declare function createValidatedDocumentFileFromSource(source: string, target: string, candidateText: string, validator: DocumentCandidateValidator, options: CreateDocumentFromSourceOptions): Promise<DocumentWriteResult>;
31
42
  export declare function createDocumentFile(target: string, candidateText: string, options?: CreateDocumentOptions): Promise<DocumentWriteResult>;
32
43
  export declare function createArtifactFile(target: string, artifact: string, options?: CreateArtifactOptions): Promise<DocumentWriteResult>;
33
44
  //# sourceMappingURL=safe-write.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-write.d.ts","sourceRoot":"","sources":["../../src/io/safe-write.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM1D,MAAM,MAAM,uBAAuB,GAC/B,0BAA0B,GAC1B,gBAAgB,GAChB,SAAS,GACT,kBAAkB,GAClB,eAAe,CAAC;AAEpB,qBAAa,sBAAuB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,MAAM,EAAE,uBAAuB;IAD1C,YACW,MAAM,EAAE,uBAAuB,EACxC,OAAO,EAAE,MAAM,EAIhB;CACF;AAED,MAAM,MAAM,2BAA2B,GACnC,mBAAmB,GACnB,4BAA4B,GAC5B,oBAAoB,CAAC;AAEzB,qBAAa,0BAA2B,SAAQ,KAAK;IAEjD,QAAQ,CAAC,MAAM,EAAE,2BAA2B;IAE5C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE;IAH7C,YACW,MAAM,EAAE,2BAA2B,EAC5C,OAAO,EAAE,MAAM,EACN,WAAW,GAAE,SAAS,UAAU,EAAO,EAIjD;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAyLD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CA4D9B;AAeD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAsC9B;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAsC9B"}
1
+ {"version":3,"file":"safe-write.d.ts","sourceRoot":"","sources":["../../src/io/safe-write.ts"],"names":[],"mappings":"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"}
@@ -74,8 +74,17 @@ async function currentWritableSource(path) {
74
74
  throw error;
75
75
  }
76
76
  }
77
- function validateCandidate(candidateText) {
78
- const checked = checkDocument(candidateText);
77
+ async function assertCurrentSource(path, initialDigest) {
78
+ const current = await currentWritableSource(path);
79
+ if (current.digest !== initialDigest) {
80
+ throw new SafeWriteConflictError("source_changed", `document changed after the initial read: ${path}`);
81
+ }
82
+ }
83
+ function validateActiveCandidate(text) {
84
+ return checkDocument(text);
85
+ }
86
+ function validateCandidate(candidateText, validator) {
87
+ const checked = validator(candidateText);
79
88
  if (!checked.ok) {
80
89
  throw new SafeWriteVerificationError("invalid_candidate", "safe-write candidate failed document validation", checked.diagnostics);
81
90
  }
@@ -138,12 +147,12 @@ async function syncParentDirectory(target) {
138
147
  await handle.close();
139
148
  }
140
149
  }
141
- async function verifyWrittenDocument(target, candidateDigest) {
150
+ async function verifyWrittenDocument(target, candidateDigest, validator) {
142
151
  const written = await readDocumentFile(target);
143
152
  if (written.digest !== candidateDigest) {
144
153
  throw new SafeWriteVerificationError("post_write_digest_mismatch", `written document digest does not match candidate: ${target}`);
145
154
  }
146
- const checked = checkDocument(written.text);
155
+ const checked = validator(written.text);
147
156
  if (!checked.ok) {
148
157
  throw new SafeWriteVerificationError("post_write_invalid", `written document failed revalidation: ${target}`, checked.diagnostics);
149
158
  }
@@ -154,8 +163,8 @@ async function verifyWrittenArtifact(target, candidateDigest) {
154
163
  throw new SafeWriteVerificationError("post_write_digest_mismatch", `written artifact digest does not match candidate: ${target}`);
155
164
  }
156
165
  }
157
- export async function replaceDocumentFile(target, candidateText, options) {
158
- const candidateBytes = validateCandidate(candidateText);
166
+ export async function replaceValidatedDocumentFile(target, candidateText, options, validator) {
167
+ const candidateBytes = validateCandidate(candidateText, validator);
159
168
  const candidateDigest = digestDocumentBytes(candidateBytes);
160
169
  if (options.expectedDigest !== undefined &&
161
170
  options.expectedDigest !== options.initialDigest) {
@@ -184,7 +193,7 @@ export async function replaceDocumentFile(target, candidateText, options) {
184
193
  await rename(temporaryPath, target);
185
194
  renamed = true;
186
195
  await syncParentDirectory(target);
187
- await verifyWrittenDocument(target, candidateDigest);
196
+ await verifyWrittenDocument(target, candidateDigest, validator);
188
197
  }
189
198
  finally {
190
199
  if (!renamed)
@@ -198,6 +207,9 @@ export async function replaceDocumentFile(target, candidateText, options) {
198
207
  written: true,
199
208
  };
200
209
  }
210
+ export async function replaceDocumentFile(target, candidateText, options) {
211
+ return replaceValidatedDocumentFile(target, candidateText, options, validateActiveCandidate);
212
+ }
201
213
  async function assertTargetAbsent(target) {
202
214
  try {
203
215
  const targetStat = await lstat(target);
@@ -209,13 +221,19 @@ async function assertTargetAbsent(target) {
209
221
  throw error;
210
222
  }
211
223
  }
212
- export async function createDocumentFile(target, candidateText, options = {}) {
213
- const candidateBytes = validateCandidate(candidateText);
224
+ async function createValidatedDocumentFileInternal(target, candidateText, validator, options, source) {
225
+ const candidateBytes = validateCandidate(candidateText, validator);
214
226
  const candidateDigest = digestDocumentBytes(candidateBytes);
227
+ if (source !== undefined) {
228
+ await assertCurrentSource(source.path, source.initialDigest);
229
+ }
215
230
  await assertTargetAbsent(target);
216
231
  const temporaryPath = await writeAndSyncTemporary(target, candidateBytes, options.mode ?? (0o666 & ~process.umask()));
217
232
  let linked = false;
218
233
  try {
234
+ if (source !== undefined) {
235
+ await assertCurrentSource(source.path, source.initialDigest);
236
+ }
219
237
  await assertTargetAbsent(target);
220
238
  try {
221
239
  await link(temporaryPath, target);
@@ -228,7 +246,7 @@ export async function createDocumentFile(target, candidateText, options = {}) {
228
246
  throw error;
229
247
  }
230
248
  await syncParentDirectory(target);
231
- await verifyWrittenDocument(target, candidateDigest);
249
+ await verifyWrittenDocument(target, candidateDigest, validator);
232
250
  }
233
251
  finally {
234
252
  await unlink(temporaryPath).catch(() => undefined);
@@ -243,6 +261,18 @@ export async function createDocumentFile(target, candidateText, options = {}) {
243
261
  written: true,
244
262
  };
245
263
  }
264
+ export async function createValidatedDocumentFile(target, candidateText, validator, options = {}) {
265
+ return createValidatedDocumentFileInternal(target, candidateText, validator, options, undefined);
266
+ }
267
+ export async function createValidatedDocumentFileFromSource(source, target, candidateText, validator, options) {
268
+ return createValidatedDocumentFileInternal(target, candidateText, validator, options, {
269
+ path: source,
270
+ initialDigest: options.initialDigest,
271
+ });
272
+ }
273
+ export async function createDocumentFile(target, candidateText, options = {}) {
274
+ return createValidatedDocumentFile(target, candidateText, validateActiveCandidate, options);
275
+ }
246
276
  export async function createArtifactFile(target, artifact, options = {}) {
247
277
  const candidateBytes = Buffer.from(artifact, "utf8");
248
278
  const candidateDigest = digestDocumentBytes(candidateBytes);
@@ -1 +1 @@
1
- {"version":3,"file":"safe-write.js","sourceRoot":"","sources":["../../src/io/safe-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-write.js","sourceRoot":"","sources":["../../src/io/safe-write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { TargetGrammar4Capability, TargetGrammar3Capability, TargetGrammar2Capability } from "../parser/document-parser.js";
2
+ import { type CreateDocumentOptions, type CreateDocumentFromSourceOptions, type DocumentWriteResult, type ReplaceDocumentOptions } from "./safe-write.js";
3
+ export declare function replaceTargetDocumentFile(target: string, candidateText: string, capability: TargetGrammar2Capability, options: ReplaceDocumentOptions): Promise<DocumentWriteResult>;
4
+ export declare function createTargetDocumentFile(target: string, candidateText: string, capability: TargetGrammar2Capability, options?: CreateDocumentOptions): Promise<DocumentWriteResult>;
5
+ export declare function replaceTargetGrammar3DocumentFile(target: string, candidateText: string, capability: TargetGrammar3Capability, options: ReplaceDocumentOptions): Promise<DocumentWriteResult>;
6
+ export declare function createTargetGrammar3DocumentFile(target: string, candidateText: string, capability: TargetGrammar3Capability, options?: CreateDocumentOptions): Promise<DocumentWriteResult>;
7
+ export declare function replaceTargetGrammar4DocumentFile(target: string, candidateText: string, capability: TargetGrammar4Capability, options: ReplaceDocumentOptions): Promise<DocumentWriteResult>;
8
+ export declare function createTargetGrammar4DocumentFile(target: string, candidateText: string, capability: TargetGrammar4Capability, options?: CreateDocumentOptions): Promise<DocumentWriteResult>;
9
+ export declare function createTargetGrammar4DocumentFileFromSource(source: string, target: string, candidateText: string, capability: TargetGrammar4Capability, options: CreateDocumentFromSourceOptions): Promise<DocumentWriteResult>;
10
+ //# sourceMappingURL=target-safe-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-safe-write.d.ts","sourceRoot":"","sources":["../../src/io/target-safe-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EAEpC,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AAsCzB,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,wBAAwB,EACpC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,wBAAwB,EACpC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,wBAAwB,EACpC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,wBAAwB,EACpC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,0CAA0C,CAC9D,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,wBAAwB,EACpC,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,mBAAmB,CAAC,CAQ9B"}
@@ -0,0 +1,51 @@
1
+ import { validateTargetGrammar4Document, validateTargetGrammar3Document, validateTargetDocument, } from "../semantic/target-validator.js";
2
+ import { createValidatedDocumentFile, createValidatedDocumentFileFromSource, replaceValidatedDocumentFile, } from "./safe-write.js";
3
+ function targetValidator(capability) {
4
+ return (text) => {
5
+ const checked = validateTargetDocument(text, capability);
6
+ return {
7
+ ok: checked.ok,
8
+ diagnostics: checked.diagnostics,
9
+ };
10
+ };
11
+ }
12
+ function targetGrammar3Validator(capability) {
13
+ return (text) => {
14
+ const checked = validateTargetGrammar3Document(text, capability);
15
+ return {
16
+ ok: checked.ok,
17
+ diagnostics: checked.diagnostics,
18
+ };
19
+ };
20
+ }
21
+ function targetGrammar4Validator(capability) {
22
+ return (text) => {
23
+ const checked = validateTargetGrammar4Document(text, capability);
24
+ return {
25
+ ok: checked.ok,
26
+ diagnostics: checked.diagnostics,
27
+ };
28
+ };
29
+ }
30
+ export async function replaceTargetDocumentFile(target, candidateText, capability, options) {
31
+ return replaceValidatedDocumentFile(target, candidateText, options, targetValidator(capability));
32
+ }
33
+ export async function createTargetDocumentFile(target, candidateText, capability, options = {}) {
34
+ return createValidatedDocumentFile(target, candidateText, targetValidator(capability), options);
35
+ }
36
+ export async function replaceTargetGrammar3DocumentFile(target, candidateText, capability, options) {
37
+ return replaceValidatedDocumentFile(target, candidateText, options, targetGrammar3Validator(capability));
38
+ }
39
+ export async function createTargetGrammar3DocumentFile(target, candidateText, capability, options = {}) {
40
+ return createValidatedDocumentFile(target, candidateText, targetGrammar3Validator(capability), options);
41
+ }
42
+ export async function replaceTargetGrammar4DocumentFile(target, candidateText, capability, options) {
43
+ return replaceValidatedDocumentFile(target, candidateText, options, targetGrammar4Validator(capability));
44
+ }
45
+ export async function createTargetGrammar4DocumentFile(target, candidateText, capability, options = {}) {
46
+ return createValidatedDocumentFile(target, candidateText, targetGrammar4Validator(capability), options);
47
+ }
48
+ export async function createTargetGrammar4DocumentFileFromSource(source, target, candidateText, capability, options) {
49
+ return createValidatedDocumentFileFromSource(source, target, candidateText, targetGrammar4Validator(capability), options);
50
+ }
51
+ //# sourceMappingURL=target-safe-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-safe-write.js","sourceRoot":"","sources":["../../src/io/target-safe-write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type ExactDurationSourceToken } from "../model/exact-duration-source.js";
2
+ import type { Rational } from "../model/rational.js";
3
+ import type { DurationUnit } from "../model/units.js";
4
+ import { type MigrationGrammarDisposition, type MigrationGrammarVersion, type MigrationQualification, type MigrationReversibility, type MigrationVelocityDisposition } from "./grammar-boundary.js";
5
+ import type { ExactMigrationVelocity, UnitMigrationDurationField } from "./request.js";
6
+ export interface ExactUnitMigrationValue extends Rational {
7
+ readonly unit: DurationUnit;
8
+ }
9
+ export interface ExactUnitMigrationConvertedField {
10
+ readonly entityKind: "project" | "task";
11
+ readonly entityId: string;
12
+ readonly fieldPath: string;
13
+ readonly original: ExactUnitMigrationValue;
14
+ readonly converted: ExactUnitMigrationValue;
15
+ readonly canonicalToken: string;
16
+ readonly tokenClassification: ExactDurationSourceToken["classification"];
17
+ }
18
+ export interface ExactUnitMigrationConversionInput {
19
+ readonly ok: true;
20
+ readonly sourceGrammarVersion: MigrationGrammarVersion;
21
+ readonly sourceUnit: DurationUnit;
22
+ readonly targetUnit: DurationUnit;
23
+ readonly changed: boolean;
24
+ readonly effectiveVelocity: ExactMigrationVelocity | null;
25
+ readonly velocityDisposition: MigrationVelocityDisposition | null;
26
+ readonly durationInventory: readonly UnitMigrationDurationField[];
27
+ }
28
+ export interface ExactUnitMigrationConversion {
29
+ readonly sourceGrammarVersion: MigrationGrammarVersion;
30
+ readonly targetGrammarVersion: MigrationGrammarVersion;
31
+ readonly grammarDisposition: MigrationGrammarDisposition;
32
+ readonly sourceUnit: DurationUnit;
33
+ readonly targetUnit: DurationUnit;
34
+ readonly changed: boolean;
35
+ readonly convertedFields: readonly ExactUnitMigrationConvertedField[];
36
+ readonly reversibility: MigrationReversibility;
37
+ readonly qualifications: readonly MigrationQualification[];
38
+ }
39
+ export declare function convertPreparedUnitMigrationRequest(input: ExactUnitMigrationConversionInput): ExactUnitMigrationConversion;
40
+ //# sourceMappingURL=conversion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../src/migration/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,uBAAwB,SAAQ,QAAQ;IACvD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC1D,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,iBAAiB,EAAE,SAAS,0BAA0B,EAAE,CAAC;CACnE;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;IACvD,QAAQ,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;IACvD,QAAQ,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACtE,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC5D;AAuGD,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,iCAAiC,GACvC,4BAA4B,CA6C9B"}
@@ -0,0 +1,106 @@
1
+ import { serializeExactDurationSource, } from "../model/exact-duration-source.js";
2
+ import { divide, multiply, rational } from "../model/rational.js";
3
+ import { selectExactDurationGrammarBoundary, } from "./grammar-boundary.js";
4
+ function exactValue(value, unit) {
5
+ const normalized = rational(value.numerator, value.denominator);
6
+ return Object.freeze({
7
+ numerator: normalized.numerator,
8
+ denominator: normalized.denominator,
9
+ unit,
10
+ });
11
+ }
12
+ function exactPositive(value, name) {
13
+ const normalized = rational(value.numerator, value.denominator);
14
+ if (normalized.numerator <= 0n) {
15
+ throw new Error(`${name} must be positive`);
16
+ }
17
+ return normalized;
18
+ }
19
+ function targetPerSource(input) {
20
+ if (!input.changed) {
21
+ if (input.sourceUnit !== input.targetUnit) {
22
+ throw new Error("unchanged migration must retain the source unit");
23
+ }
24
+ if (input.effectiveVelocity !== null ||
25
+ input.velocityDisposition !== null) {
26
+ throw new Error("unchanged migration must not select a velocity");
27
+ }
28
+ return null;
29
+ }
30
+ const velocity = input.effectiveVelocity;
31
+ if (velocity === null || input.velocityDisposition === null) {
32
+ throw new Error("changing migration requires an effective velocity");
33
+ }
34
+ const points = exactPositive(velocity.points, "velocity points");
35
+ const period = exactPositive(velocity.period, "velocity period");
36
+ if (input.sourceUnit === "point") {
37
+ if (input.targetUnit === "point" ||
38
+ velocity.periodUnit !== input.targetUnit) {
39
+ throw new Error("Point migration target must match the velocity period unit");
40
+ }
41
+ return divide(period, points);
42
+ }
43
+ if (input.targetUnit !== "point" ||
44
+ velocity.periodUnit !== input.sourceUnit) {
45
+ throw new Error("time migration source must match the velocity period unit");
46
+ }
47
+ return divide(points, period);
48
+ }
49
+ function convertField(field, sourceUnit, targetUnit, factor) {
50
+ if (field.sourceUnit !== sourceUnit) {
51
+ throw new Error(`migration inventory field ${field.fieldPath} has the wrong source unit`);
52
+ }
53
+ const original = exactValue(field.sourceValue, sourceUnit);
54
+ if (original.numerator < 0n) {
55
+ throw new Error(`migration inventory field ${field.fieldPath} must not be negative`);
56
+ }
57
+ const converted = exactValue(multiply(original, factor), targetUnit);
58
+ const serialized = serializeExactDurationSource(converted, targetUnit);
59
+ const token = Object.freeze({ ...serialized });
60
+ return {
61
+ record: Object.freeze({
62
+ entityKind: field.entityKind,
63
+ entityId: field.entityId,
64
+ fieldPath: field.fieldPath,
65
+ original,
66
+ converted,
67
+ canonicalToken: token.token,
68
+ tokenClassification: token.classification,
69
+ }),
70
+ token,
71
+ };
72
+ }
73
+ export function convertPreparedUnitMigrationRequest(input) {
74
+ if (input.ok !== true) {
75
+ throw new TypeError("exact unit conversion requires a successful prepared request");
76
+ }
77
+ if (!Array.isArray(input.durationInventory)) {
78
+ throw new TypeError("durationInventory must be an array");
79
+ }
80
+ const factor = targetPerSource(input);
81
+ const convertedFields = [];
82
+ const generatedTokens = [];
83
+ if (factor !== null) {
84
+ for (const field of input.durationInventory) {
85
+ const converted = convertField(field, input.sourceUnit, input.targetUnit, factor);
86
+ convertedFields.push(converted.record);
87
+ generatedTokens.push(converted.token);
88
+ }
89
+ }
90
+ const grammar = selectExactDurationGrammarBoundary(input.sourceGrammarVersion, generatedTokens, {
91
+ migrationChanged: input.changed,
92
+ velocityDisposition: input.velocityDisposition,
93
+ });
94
+ return Object.freeze({
95
+ sourceGrammarVersion: grammar.sourceGrammarVersion,
96
+ targetGrammarVersion: grammar.targetGrammarVersion,
97
+ grammarDisposition: grammar.grammarDisposition,
98
+ sourceUnit: input.sourceUnit,
99
+ targetUnit: input.targetUnit,
100
+ changed: input.changed,
101
+ convertedFields: Object.freeze(convertedFields),
102
+ reversibility: grammar.reversibility,
103
+ qualifications: grammar.qualifications,
104
+ });
105
+ }
106
+ //# sourceMappingURL=conversion.js.map