@davidahmann/mill 0.1.4 → 0.2.1

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 (249) hide show
  1. package/README.md +141 -32
  2. package/dist/audit/repository.d.ts.map +1 -1
  3. package/dist/audit/repository.js +2 -0
  4. package/dist/audit/repository.js.map +1 -1
  5. package/dist/cli-program.d.ts.map +1 -1
  6. package/dist/cli-program.js +189 -0
  7. package/dist/cli-program.js.map +1 -1
  8. package/dist/contracts/schemas.d.ts +467 -2
  9. package/dist/contracts/schemas.d.ts.map +1 -1
  10. package/dist/contracts/schemas.js +211 -1
  11. package/dist/contracts/schemas.js.map +1 -1
  12. package/dist/index.d.ts +7 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +7 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/planning/closure.d.ts +24 -0
  17. package/dist/planning/closure.d.ts.map +1 -0
  18. package/dist/planning/closure.js +68 -0
  19. package/dist/planning/closure.js.map +1 -0
  20. package/dist/planning/outcomes.d.ts +6 -0
  21. package/dist/planning/outcomes.d.ts.map +1 -0
  22. package/dist/planning/outcomes.js +36 -0
  23. package/dist/planning/outcomes.js.map +1 -0
  24. package/dist/planning/tasks.d.ts +32 -0
  25. package/dist/planning/tasks.d.ts.map +1 -0
  26. package/dist/planning/tasks.js +305 -0
  27. package/dist/planning/tasks.js.map +1 -0
  28. package/dist/repository/intelligence.d.ts +78 -0
  29. package/dist/repository/intelligence.d.ts.map +1 -0
  30. package/dist/repository/intelligence.js +537 -0
  31. package/dist/repository/intelligence.js.map +1 -0
  32. package/dist/repository/native-adoption.d.ts +36 -0
  33. package/dist/repository/native-adoption.d.ts.map +1 -0
  34. package/dist/repository/native-adoption.js +146 -0
  35. package/dist/repository/native-adoption.js.map +1 -0
  36. package/dist/repository/scan.d.ts.map +1 -1
  37. package/dist/repository/scan.js +4 -0
  38. package/dist/repository/scan.js.map +1 -1
  39. package/dist/runtime/authority-plans.d.ts +43 -0
  40. package/dist/runtime/authority-plans.d.ts.map +1 -0
  41. package/dist/runtime/authority-plans.js +173 -0
  42. package/dist/runtime/authority-plans.js.map +1 -0
  43. package/dist/runtime/codex.d.ts.map +1 -1
  44. package/dist/runtime/codex.js +24 -5
  45. package/dist/runtime/codex.js.map +1 -1
  46. package/dist/runtime/context.d.ts.map +1 -1
  47. package/dist/runtime/context.js +36 -0
  48. package/dist/runtime/context.js.map +1 -1
  49. package/dist/runtime/delivery.d.ts +8 -1
  50. package/dist/runtime/delivery.d.ts.map +1 -1
  51. package/dist/runtime/delivery.js +187 -74
  52. package/dist/runtime/delivery.js.map +1 -1
  53. package/dist/runtime/effect-boundary.d.ts +38 -0
  54. package/dist/runtime/effect-boundary.d.ts.map +1 -0
  55. package/dist/runtime/effect-boundary.js +59 -0
  56. package/dist/runtime/effect-boundary.js.map +1 -0
  57. package/dist/runtime/github.d.ts +24 -0
  58. package/dist/runtime/github.d.ts.map +1 -1
  59. package/dist/runtime/github.js +117 -2
  60. package/dist/runtime/github.js.map +1 -1
  61. package/dist/runtime/inputs.js.map +1 -1
  62. package/dist/runtime/lifecycle.d.ts +5 -0
  63. package/dist/runtime/lifecycle.d.ts.map +1 -1
  64. package/dist/runtime/lifecycle.js +60 -16
  65. package/dist/runtime/lifecycle.js.map +1 -1
  66. package/dist/runtime/merge.d.ts +73 -0
  67. package/dist/runtime/merge.d.ts.map +1 -0
  68. package/dist/runtime/merge.js +299 -0
  69. package/dist/runtime/merge.js.map +1 -0
  70. package/dist/runtime/public-metadata.d.ts +3 -0
  71. package/dist/runtime/public-metadata.d.ts.map +1 -0
  72. package/dist/runtime/public-metadata.js +15 -0
  73. package/dist/runtime/public-metadata.js.map +1 -0
  74. package/dist/runtime/repair.d.ts +12 -0
  75. package/dist/runtime/repair.d.ts.map +1 -0
  76. package/dist/runtime/repair.js +34 -0
  77. package/dist/runtime/repair.js.map +1 -0
  78. package/dist/runtime/repository.d.ts +18 -0
  79. package/dist/runtime/repository.d.ts.map +1 -1
  80. package/dist/runtime/repository.js +114 -2
  81. package/dist/runtime/repository.js.map +1 -1
  82. package/dist/runtime/state.d.ts +42 -1
  83. package/dist/runtime/state.d.ts.map +1 -1
  84. package/dist/runtime/state.js +324 -11
  85. package/dist/runtime/state.js.map +1 -1
  86. package/dist/runtime/usage.d.ts +12 -0
  87. package/dist/runtime/usage.d.ts.map +1 -0
  88. package/dist/runtime/usage.js +45 -0
  89. package/dist/runtime/usage.js.map +1 -0
  90. package/dist/runtime/verifier.d.ts.map +1 -1
  91. package/dist/runtime/verifier.js +12 -0
  92. package/dist/runtime/verifier.js.map +1 -1
  93. package/dist/runtime/worker.d.ts +1 -0
  94. package/dist/runtime/worker.d.ts.map +1 -1
  95. package/dist/runtime/worker.js.map +1 -1
  96. package/dist/version.d.ts +1 -1
  97. package/dist/version.js +1 -1
  98. package/dist/workflows/founder.d.ts.map +1 -1
  99. package/dist/workflows/founder.js +5 -0
  100. package/dist/workflows/founder.js.map +1 -1
  101. package/node_modules/typescript/LICENSE.txt +55 -0
  102. package/node_modules/typescript/README.md +50 -0
  103. package/node_modules/typescript/SECURITY.md +39 -0
  104. package/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  105. package/node_modules/typescript/bin/tsc +2 -0
  106. package/node_modules/typescript/bin/tsserver +2 -0
  107. package/node_modules/typescript/lib/_tsc.js +134465 -0
  108. package/node_modules/typescript/lib/_tsserver.js +659 -0
  109. package/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  110. package/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2129 -0
  111. package/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2125 -0
  112. package/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2129 -0
  113. package/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2129 -0
  114. package/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2125 -0
  115. package/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2129 -0
  116. package/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2129 -0
  117. package/node_modules/typescript/lib/lib.d.ts +20 -0
  118. package/node_modules/typescript/lib/lib.decorators.d.ts +382 -0
  119. package/node_modules/typescript/lib/lib.decorators.legacy.d.ts +20 -0
  120. package/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +18 -0
  121. package/node_modules/typescript/lib/lib.dom.d.ts +45125 -0
  122. package/node_modules/typescript/lib/lib.dom.iterable.d.ts +18 -0
  123. package/node_modules/typescript/lib/lib.es2015.collection.d.ts +150 -0
  124. package/node_modules/typescript/lib/lib.es2015.core.d.ts +595 -0
  125. package/node_modules/typescript/lib/lib.es2015.d.ts +26 -0
  126. package/node_modules/typescript/lib/lib.es2015.generator.d.ts +75 -0
  127. package/node_modules/typescript/lib/lib.es2015.iterable.d.ts +603 -0
  128. package/node_modules/typescript/lib/lib.es2015.promise.d.ts +79 -0
  129. package/node_modules/typescript/lib/lib.es2015.proxy.d.ts +126 -0
  130. package/node_modules/typescript/lib/lib.es2015.reflect.d.ts +142 -0
  131. package/node_modules/typescript/lib/lib.es2015.symbol.d.ts +44 -0
  132. package/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +324 -0
  133. package/node_modules/typescript/lib/lib.es2016.array.include.d.ts +114 -0
  134. package/node_modules/typescript/lib/lib.es2016.d.ts +19 -0
  135. package/node_modules/typescript/lib/lib.es2016.full.d.ts +21 -0
  136. package/node_modules/typescript/lib/lib.es2016.intl.d.ts +29 -0
  137. package/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +19 -0
  138. package/node_modules/typescript/lib/lib.es2017.d.ts +24 -0
  139. package/node_modules/typescript/lib/lib.es2017.date.d.ts +29 -0
  140. package/node_modules/typescript/lib/lib.es2017.full.d.ts +21 -0
  141. package/node_modules/typescript/lib/lib.es2017.intl.d.ts +42 -0
  142. package/node_modules/typescript/lib/lib.es2017.object.d.ts +47 -0
  143. package/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +133 -0
  144. package/node_modules/typescript/lib/lib.es2017.string.d.ts +43 -0
  145. package/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +51 -0
  146. package/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +75 -0
  147. package/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +51 -0
  148. package/node_modules/typescript/lib/lib.es2018.d.ts +22 -0
  149. package/node_modules/typescript/lib/lib.es2018.full.d.ts +22 -0
  150. package/node_modules/typescript/lib/lib.es2018.intl.d.ts +81 -0
  151. package/node_modules/typescript/lib/lib.es2018.promise.d.ts +28 -0
  152. package/node_modules/typescript/lib/lib.es2018.regexp.d.ts +35 -0
  153. package/node_modules/typescript/lib/lib.es2019.array.d.ts +77 -0
  154. package/node_modules/typescript/lib/lib.es2019.d.ts +22 -0
  155. package/node_modules/typescript/lib/lib.es2019.full.d.ts +22 -0
  156. package/node_modules/typescript/lib/lib.es2019.intl.d.ts +21 -0
  157. package/node_modules/typescript/lib/lib.es2019.object.d.ts +31 -0
  158. package/node_modules/typescript/lib/lib.es2019.string.d.ts +35 -0
  159. package/node_modules/typescript/lib/lib.es2019.symbol.d.ts +22 -0
  160. package/node_modules/typescript/lib/lib.es2020.bigint.d.ts +763 -0
  161. package/node_modules/typescript/lib/lib.es2020.d.ts +25 -0
  162. package/node_modules/typescript/lib/lib.es2020.date.d.ts +40 -0
  163. package/node_modules/typescript/lib/lib.es2020.full.d.ts +22 -0
  164. package/node_modules/typescript/lib/lib.es2020.intl.d.ts +472 -0
  165. package/node_modules/typescript/lib/lib.es2020.number.d.ts +26 -0
  166. package/node_modules/typescript/lib/lib.es2020.promise.d.ts +45 -0
  167. package/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +97 -0
  168. package/node_modules/typescript/lib/lib.es2020.string.d.ts +42 -0
  169. package/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +39 -0
  170. package/node_modules/typescript/lib/lib.es2021.d.ts +21 -0
  171. package/node_modules/typescript/lib/lib.es2021.full.d.ts +22 -0
  172. package/node_modules/typescript/lib/lib.es2021.intl.d.ts +164 -0
  173. package/node_modules/typescript/lib/lib.es2021.promise.d.ts +46 -0
  174. package/node_modules/typescript/lib/lib.es2021.string.d.ts +31 -0
  175. package/node_modules/typescript/lib/lib.es2021.weakref.d.ts +76 -0
  176. package/node_modules/typescript/lib/lib.es2022.array.d.ts +119 -0
  177. package/node_modules/typescript/lib/lib.es2022.d.ts +23 -0
  178. package/node_modules/typescript/lib/lib.es2022.error.d.ts +73 -0
  179. package/node_modules/typescript/lib/lib.es2022.full.d.ts +22 -0
  180. package/node_modules/typescript/lib/lib.es2022.intl.d.ts +143 -0
  181. package/node_modules/typescript/lib/lib.es2022.object.d.ts +24 -0
  182. package/node_modules/typescript/lib/lib.es2022.regexp.d.ts +37 -0
  183. package/node_modules/typescript/lib/lib.es2022.string.d.ts +23 -0
  184. package/node_modules/typescript/lib/lib.es2023.array.d.ts +922 -0
  185. package/node_modules/typescript/lib/lib.es2023.collection.d.ts +19 -0
  186. package/node_modules/typescript/lib/lib.es2023.d.ts +20 -0
  187. package/node_modules/typescript/lib/lib.es2023.full.d.ts +22 -0
  188. package/node_modules/typescript/lib/lib.es2023.intl.d.ts +62 -0
  189. package/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +63 -0
  190. package/node_modules/typescript/lib/lib.es2024.collection.d.ts +27 -0
  191. package/node_modules/typescript/lib/lib.es2024.d.ts +24 -0
  192. package/node_modules/typescript/lib/lib.es2024.full.d.ts +22 -0
  193. package/node_modules/typescript/lib/lib.es2024.object.d.ts +27 -0
  194. package/node_modules/typescript/lib/lib.es2024.promise.d.ts +33 -0
  195. package/node_modules/typescript/lib/lib.es2024.regexp.d.ts +23 -0
  196. package/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +66 -0
  197. package/node_modules/typescript/lib/lib.es2024.string.d.ts +27 -0
  198. package/node_modules/typescript/lib/lib.es2025.collection.d.ts +94 -0
  199. package/node_modules/typescript/lib/lib.es2025.d.ts +23 -0
  200. package/node_modules/typescript/lib/lib.es2025.float16.d.ts +443 -0
  201. package/node_modules/typescript/lib/lib.es2025.full.d.ts +22 -0
  202. package/node_modules/typescript/lib/lib.es2025.intl.d.ts +200 -0
  203. package/node_modules/typescript/lib/lib.es2025.iterator.d.ts +146 -0
  204. package/node_modules/typescript/lib/lib.es2025.promise.d.ts +32 -0
  205. package/node_modules/typescript/lib/lib.es2025.regexp.d.ts +30 -0
  206. package/node_modules/typescript/lib/lib.es5.d.ts +4599 -0
  207. package/node_modules/typescript/lib/lib.es6.d.ts +21 -0
  208. package/node_modules/typescript/lib/lib.esnext.array.d.ts +33 -0
  209. package/node_modules/typescript/lib/lib.esnext.collection.d.ts +47 -0
  210. package/node_modules/typescript/lib/lib.esnext.d.ts +27 -0
  211. package/node_modules/typescript/lib/lib.esnext.date.d.ts +21 -0
  212. package/node_modules/typescript/lib/lib.esnext.decorators.d.ts +26 -0
  213. package/node_modules/typescript/lib/lib.esnext.disposable.d.ts +191 -0
  214. package/node_modules/typescript/lib/lib.esnext.error.d.ts +22 -0
  215. package/node_modules/typescript/lib/lib.esnext.full.d.ts +22 -0
  216. package/node_modules/typescript/lib/lib.esnext.intl.d.ts +107 -0
  217. package/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +23 -0
  218. package/node_modules/typescript/lib/lib.esnext.temporal.d.ts +485 -0
  219. package/node_modules/typescript/lib/lib.esnext.typedarrays.d.ts +90 -0
  220. package/node_modules/typescript/lib/lib.scripthost.d.ts +320 -0
  221. package/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +18 -0
  222. package/node_modules/typescript/lib/lib.webworker.d.ts +15606 -0
  223. package/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +21 -0
  224. package/node_modules/typescript/lib/lib.webworker.iterable.d.ts +18 -0
  225. package/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2129 -0
  226. package/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2129 -0
  227. package/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2125 -0
  228. package/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2129 -0
  229. package/node_modules/typescript/lib/tsc.js +8 -0
  230. package/node_modules/typescript/lib/tsserver.js +8 -0
  231. package/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  232. package/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  233. package/node_modules/typescript/lib/typesMap.json +497 -0
  234. package/node_modules/typescript/lib/typescript.d.ts +11448 -0
  235. package/node_modules/typescript/lib/typescript.js +201039 -0
  236. package/node_modules/typescript/lib/typingsInstaller.js +8 -0
  237. package/node_modules/typescript/lib/watchGuard.js +53 -0
  238. package/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2129 -0
  239. package/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2125 -0
  240. package/node_modules/typescript/package.json +118 -0
  241. package/package.json +7 -4
  242. package/schemas/audit-report.schema.json +1 -0
  243. package/schemas/change-request.schema.json +189 -0
  244. package/schemas/context-manifest.schema.json +50 -0
  245. package/schemas/delivery-record.schema.json +109 -0
  246. package/schemas/mill-config.schema.json +50 -2
  247. package/schemas/repository-intelligence.schema.json +200 -0
  248. package/schemas/review-result.schema.json +21 -0
  249. package/schemas/task-packet.schema.json +12 -0
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "typescript",
3
+ "author": "Microsoft Corp.",
4
+ "homepage": "https://www.typescriptlang.org/",
5
+ "version": "6.0.3",
6
+ "license": "Apache-2.0",
7
+ "description": "TypeScript is a language for application scale JavaScript development",
8
+ "keywords": [
9
+ "TypeScript",
10
+ "Microsoft",
11
+ "compiler",
12
+ "language",
13
+ "javascript"
14
+ ],
15
+ "bugs": {
16
+ "url": "https://github.com/microsoft/TypeScript/issues"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/microsoft/TypeScript.git"
21
+ },
22
+ "main": "./lib/typescript.js",
23
+ "typings": "./lib/typescript.d.ts",
24
+ "bin": {
25
+ "tsc": "./bin/tsc",
26
+ "tsserver": "./bin/tsserver"
27
+ },
28
+ "engines": {
29
+ "node": ">=14.17"
30
+ },
31
+ "files": [
32
+ "bin",
33
+ "lib",
34
+ "!lib/enu",
35
+ "LICENSE.txt",
36
+ "README.md",
37
+ "SECURITY.md",
38
+ "ThirdPartyNoticeText.txt",
39
+ "!**/.gitattributes"
40
+ ],
41
+ "devDependencies": {
42
+ "@dprint/formatter": "^0.4.1",
43
+ "@dprint/typescript": "0.93.4",
44
+ "@esfx/canceltoken": "^1.0.0",
45
+ "@eslint/js": "^10.0.1",
46
+ "@octokit/rest": "^22.0.1",
47
+ "@types/chai": "^4.3.20",
48
+ "@types/minimist": "^1.2.5",
49
+ "@types/mocha": "^10.0.10",
50
+ "@types/ms": "^2.1.0",
51
+ "@types/node": "latest",
52
+ "@types/source-map-support": "^0.5.10",
53
+ "@types/which": "^3.0.4",
54
+ "@typescript-eslint/rule-tester": "^8.56.1",
55
+ "@typescript-eslint/type-utils": "^8.56.1",
56
+ "@typescript-eslint/utils": "^8.56.1",
57
+ "azure-devops-node-api": "^15.1.3",
58
+ "c8": "^10.1.3",
59
+ "chai": "^4.5.0",
60
+ "chokidar": "^4.0.3",
61
+ "diff": "^8.0.3",
62
+ "dprint": "^0.49.1",
63
+ "esbuild": "^0.27.3",
64
+ "eslint": "^10.0.2",
65
+ "eslint-plugin-regexp": "^3.0.0",
66
+ "fast-xml-parser": "^5.4.1",
67
+ "glob": "^10.5.0",
68
+ "globals": "^17.4.0",
69
+ "hereby": "^1.12.0",
70
+ "jsonc-parser": "^3.3.1",
71
+ "knip": "^5.85.0",
72
+ "minimist": "^1.2.8",
73
+ "mocha": "^10.8.2",
74
+ "mocha-fivemat-progress-reporter": "^0.1.0",
75
+ "monocart-coverage-reports": "^2.12.9",
76
+ "ms": "^2.1.3",
77
+ "picocolors": "^1.1.1",
78
+ "playwright": "^1.58.2",
79
+ "source-map-support": "^0.5.21",
80
+ "tslib": "^2.8.1",
81
+ "typescript": "^5.9.3",
82
+ "typescript-eslint": "^8.56.1",
83
+ "which": "^3.0.1"
84
+ },
85
+ "overrides": {
86
+ "typescript@*": "$typescript"
87
+ },
88
+ "scripts": {
89
+ "test": "hereby runtests-parallel --light=false",
90
+ "test:eslint-rules": "hereby run-eslint-rules-tests",
91
+ "build": "npm run build:compiler && npm run build:tests",
92
+ "build:compiler": "hereby local",
93
+ "build:tests": "hereby tests",
94
+ "build:tests:notypecheck": "hereby tests --no-typecheck",
95
+ "clean": "hereby clean",
96
+ "gulp": "hereby",
97
+ "lint": "hereby lint",
98
+ "knip": "hereby knip",
99
+ "format": "dprint fmt",
100
+ "setup-hooks": "node scripts/link-hooks.mjs"
101
+ },
102
+ "browser": {
103
+ "fs": false,
104
+ "os": false,
105
+ "path": false,
106
+ "crypto": false,
107
+ "buffer": false,
108
+ "source-map-support": false,
109
+ "inspector": false,
110
+ "perf_hooks": false
111
+ },
112
+ "packageManager": "npm@8.19.4",
113
+ "volta": {
114
+ "node": "22.22.0",
115
+ "npm": "8.19.4"
116
+ },
117
+ "gitHead": "050880ce59e30b356b686bd3144efe24f875ebc8"
118
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidahmann/mill",
3
- "version": "0.1.4",
3
+ "version": "0.2.1",
4
4
  "description": "A local-first, repo-native software factory from approved product intent to reviewed draft PRs.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "David Ahmann",
@@ -40,17 +40,21 @@
40
40
  "format:check": "prettier --check .",
41
41
  "lint": "eslint . --max-warnings 0",
42
42
  "typecheck": "tsc -p tsconfig.json",
43
- "test": "vitest run",
44
- "test:coverage": "vitest run --coverage",
43
+ "test": "vitest run --configLoader native",
44
+ "test:coverage": "vitest run --configLoader native --coverage",
45
45
  "test:package": "npm run clean && npm run build && node scripts/test-package.mjs",
46
46
  "check": "npm run format:check && npm run lint && npm run typecheck && npm run check:workflows && npm run schemas:check && npm run test:coverage && npm run test:package",
47
47
  "prepack": "npm run clean && npm run build"
48
48
  },
49
49
  "dependencies": {
50
50
  "commander": "15.0.0",
51
+ "typescript": "6.0.3",
51
52
  "yaml": "2.9.0",
52
53
  "zod": "4.5.4"
53
54
  },
55
+ "bundleDependencies": [
56
+ "typescript"
57
+ ],
54
58
  "devDependencies": {
55
59
  "@eslint/js": "10.0.1",
56
60
  "@types/node": "24.13.3",
@@ -58,7 +62,6 @@
58
62
  "ajv": "8.20.0",
59
63
  "eslint": "10.9.1",
60
64
  "prettier": "3.9.6",
61
- "typescript": "6.0.3",
62
65
  "typescript-eslint": "8.68.0",
63
66
  "vitest": "4.1.11"
64
67
  },
@@ -39,6 +39,7 @@
39
39
  "release"
40
40
  ]
41
41
  },
42
+ "assurance": { "type": "string", "enum": ["structural", "executed"] },
42
43
  "status": { "type": "string", "enum": ["passed", "blocked"] },
43
44
  "summary": { "type": "string", "minLength": 1 },
44
45
  "evidence": {
@@ -0,0 +1,189 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": { "type": "string", "const": "1" },
6
+ "repositoryIntelligence": { "type": "boolean", "const": true },
7
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*$" },
8
+ "kind": {
9
+ "type": "string",
10
+ "enum": ["prd", "plan", "bug", "review", "maintenance"]
11
+ },
12
+ "source": {
13
+ "type": "object",
14
+ "properties": {
15
+ "path": { "type": "string", "minLength": 1 },
16
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
17
+ },
18
+ "required": ["path", "digest"],
19
+ "additionalProperties": false
20
+ },
21
+ "productPath": {
22
+ "type": "string",
23
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[^*?[\\]\\\\]+(?:\\/\\*\\*)?$"
24
+ },
25
+ "scenariosPath": {
26
+ "type": "string",
27
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[^*?[\\]\\\\]+(?:\\/\\*\\*)?$"
28
+ },
29
+ "policyPath": {
30
+ "type": "string",
31
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[^*?[\\]\\\\]+(?:\\/\\*\\*)?$"
32
+ },
33
+ "commit": {
34
+ "type": "object",
35
+ "properties": {
36
+ "message": { "type": "string", "minLength": 1 },
37
+ "authorName": { "type": "string", "minLength": 1 },
38
+ "authorEmail": {
39
+ "type": "string",
40
+ "format": "email",
41
+ "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
42
+ }
43
+ },
44
+ "required": ["message", "authorName", "authorEmail"],
45
+ "additionalProperties": false
46
+ },
47
+ "budget": {
48
+ "type": "object",
49
+ "properties": {
50
+ "deadlineSeconds": { "type": "integer", "minimum": 1, "maximum": 7200 },
51
+ "maxContextBytes": {
52
+ "type": "integer",
53
+ "minimum": 1024,
54
+ "maximum": 16777216
55
+ },
56
+ "maxOutputBytes": {
57
+ "type": "integer",
58
+ "minimum": 1024,
59
+ "maximum": 10000000
60
+ },
61
+ "retryCount": { "type": "integer", "minimum": 0, "maximum": 1 }
62
+ },
63
+ "required": ["deadlineSeconds", "maxOutputBytes", "retryCount"],
64
+ "additionalProperties": false
65
+ },
66
+ "readyOutcomeId": { "type": "string", "minLength": 1 },
67
+ "tasks": {
68
+ "minItems": 1,
69
+ "maxItems": 100,
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "properties": {
74
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*$" },
75
+ "outcomeId": {
76
+ "type": "string",
77
+ "pattern": "^OUT-[A-Z0-9][A-Z0-9-]*$"
78
+ },
79
+ "supersedesTaskDigest": {
80
+ "type": "string",
81
+ "pattern": "^sha256:[a-f0-9]{64}$"
82
+ },
83
+ "title": { "type": "string", "minLength": 1 },
84
+ "objective": { "type": "string", "minLength": 1 },
85
+ "dependsOn": {
86
+ "type": "array",
87
+ "items": { "type": "string", "pattern": "^OUT-[A-Z0-9][A-Z0-9-]*$" }
88
+ },
89
+ "impactPath": {
90
+ "type": "string",
91
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[^*?[\\]\\\\]+(?:\\/\\*\\*)?$"
92
+ },
93
+ "allowedPaths": {
94
+ "minItems": 1,
95
+ "type": "array",
96
+ "items": {
97
+ "type": "string",
98
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[^*?[\\]\\\\]+(?:\\/\\*\\*)?$"
99
+ }
100
+ },
101
+ "contextPaths": {
102
+ "minItems": 1,
103
+ "type": "array",
104
+ "items": { "type": "string", "minLength": 1 }
105
+ },
106
+ "attestations": {
107
+ "default": [],
108
+ "type": "array",
109
+ "items": {
110
+ "type": "object",
111
+ "properties": {
112
+ "id": {
113
+ "type": "string",
114
+ "pattern": "^ATT-[A-Z0-9][A-Z0-9-]*$"
115
+ },
116
+ "approvedBy": { "type": "string", "minLength": 1 },
117
+ "approvedAt": {
118
+ "type": "string",
119
+ "format": "date-time",
120
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
121
+ },
122
+ "expiresAt": {
123
+ "type": "string",
124
+ "format": "date-time",
125
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
126
+ },
127
+ "claims": {
128
+ "minItems": 1,
129
+ "type": "array",
130
+ "items": {
131
+ "type": "object",
132
+ "properties": {
133
+ "kind": {
134
+ "type": "string",
135
+ "enum": ["acceptance", "invariant", "scenario"]
136
+ },
137
+ "id": { "type": "string", "minLength": 1 },
138
+ "digest": {
139
+ "type": "string",
140
+ "pattern": "^sha256:[a-f0-9]{64}$"
141
+ }
142
+ },
143
+ "required": ["kind", "id", "digest"],
144
+ "additionalProperties": false
145
+ }
146
+ }
147
+ },
148
+ "required": [
149
+ "id",
150
+ "approvedBy",
151
+ "approvedAt",
152
+ "expiresAt",
153
+ "claims"
154
+ ],
155
+ "additionalProperties": false
156
+ }
157
+ }
158
+ },
159
+ "required": [
160
+ "id",
161
+ "outcomeId",
162
+ "title",
163
+ "objective",
164
+ "dependsOn",
165
+ "impactPath",
166
+ "allowedPaths",
167
+ "contextPaths"
168
+ ],
169
+ "additionalProperties": false
170
+ }
171
+ }
172
+ },
173
+ "required": [
174
+ "schemaVersion",
175
+ "id",
176
+ "kind",
177
+ "source",
178
+ "productPath",
179
+ "scenariosPath",
180
+ "policyPath",
181
+ "commit",
182
+ "budget",
183
+ "readyOutcomeId",
184
+ "tasks"
185
+ ],
186
+ "additionalProperties": false,
187
+ "$id": "https://github.com/davidahmann/mill/schemas/change-request.schema.json",
188
+ "title": "ChangeRequest"
189
+ }
@@ -3,6 +3,56 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "schemaVersion": { "type": "string", "const": "1" },
6
+ "repositoryContext": {
7
+ "type": "object",
8
+ "properties": {
9
+ "authority": { "type": "string", "const": "derived_read_only" },
10
+ "sourceCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
11
+ "mapDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
12
+ "extractorVersion": { "type": "string", "minLength": 1 },
13
+ "modules": {
14
+ "maxItems": 24,
15
+ "type": "array",
16
+ "items": {
17
+ "type": "object",
18
+ "properties": {
19
+ "path": { "type": "string", "minLength": 1 },
20
+ "digest": {
21
+ "type": "string",
22
+ "pattern": "^sha256:[a-f0-9]{64}$"
23
+ },
24
+ "localImports": {
25
+ "type": "array",
26
+ "items": { "type": "string" }
27
+ },
28
+ "unresolvedImports": {
29
+ "type": "integer",
30
+ "minimum": 0,
31
+ "maximum": 9007199254740991
32
+ }
33
+ },
34
+ "required": ["path", "digest", "localImports", "unresolvedImports"],
35
+ "additionalProperties": false
36
+ }
37
+ },
38
+ "omittedModules": {
39
+ "type": "integer",
40
+ "minimum": 0,
41
+ "maximum": 9007199254740991
42
+ },
43
+ "unknowns": { "type": "array", "items": { "type": "string" } }
44
+ },
45
+ "required": [
46
+ "authority",
47
+ "sourceCommit",
48
+ "mapDigest",
49
+ "extractorVersion",
50
+ "modules",
51
+ "omittedModules",
52
+ "unknowns"
53
+ ],
54
+ "additionalProperties": false
55
+ },
6
56
  "taskDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
7
57
  "baseCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
8
58
  "provider": { "type": "string", "const": "openai" },
@@ -69,6 +69,46 @@
69
69
  "type": "array",
70
70
  "items": { "type": "string", "minLength": 1 }
71
71
  },
72
+ "checkProducers": {
73
+ "type": "object",
74
+ "propertyNames": { "type": "string", "minLength": 1 },
75
+ "additionalProperties": {
76
+ "type": "object",
77
+ "properties": {
78
+ "appId": {
79
+ "type": "integer",
80
+ "exclusiveMinimum": 0,
81
+ "maximum": 9007199254740991
82
+ },
83
+ "workflowPath": {
84
+ "type": "string",
85
+ "pattern": "^\\.github\\/workflows\\/[A-Za-z0-9._-]+\\.ya?ml$"
86
+ },
87
+ "pullRequestEvent": { "type": "string", "const": "pull_request" },
88
+ "postMergeEvent": { "type": "string", "const": "push" }
89
+ },
90
+ "required": [
91
+ "appId",
92
+ "workflowPath",
93
+ "pullRequestEvent",
94
+ "postMergeEvent"
95
+ ],
96
+ "additionalProperties": false
97
+ }
98
+ },
99
+ "postMergeRequiredChecks": {
100
+ "minItems": 1,
101
+ "type": "array",
102
+ "items": { "type": "string", "minLength": 1 }
103
+ },
104
+ "postMergePolicySource": {
105
+ "type": "string",
106
+ "enum": ["configured", "implicit_default", "legacy_migrated"]
107
+ },
108
+ "legacyPostMergePolicyConfigDigest": {
109
+ "type": "string",
110
+ "pattern": "^sha256:[a-f0-9]{64}$"
111
+ },
72
112
  "reviewPolicy": {
73
113
  "type": "object",
74
114
  "properties": {
@@ -152,6 +192,75 @@
152
192
  "additionalProperties": false
153
193
  }
154
194
  },
195
+ "mergeApproval": {
196
+ "type": "object",
197
+ "properties": {
198
+ "plan": {
199
+ "type": "object",
200
+ "properties": {
201
+ "schemaVersion": { "type": "string", "const": "1" },
202
+ "repositoryNodeId": { "type": "string", "minLength": 1 },
203
+ "pullRequestNumber": {
204
+ "type": "integer",
205
+ "exclusiveMinimum": 0,
206
+ "maximum": 9007199254740991
207
+ },
208
+ "pullRequestNodeId": { "type": "string", "minLength": 1 },
209
+ "headCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
210
+ "baseCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
211
+ "candidateTree": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
212
+ "actorLogin": { "type": "string", "minLength": 1 },
213
+ "actorId": {
214
+ "type": "integer",
215
+ "exclusiveMinimum": 0,
216
+ "maximum": 9007199254740991
217
+ },
218
+ "policyDigest": {
219
+ "type": "string",
220
+ "pattern": "^sha256:[a-f0-9]{64}$"
221
+ },
222
+ "method": { "type": "string", "enum": ["merge", "squash"] },
223
+ "markReady": { "type": "boolean" },
224
+ "expiresAt": {
225
+ "type": "string",
226
+ "format": "date-time",
227
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
228
+ }
229
+ },
230
+ "required": [
231
+ "schemaVersion",
232
+ "repositoryNodeId",
233
+ "pullRequestNumber",
234
+ "pullRequestNodeId",
235
+ "headCommit",
236
+ "baseCommit",
237
+ "candidateTree",
238
+ "actorLogin",
239
+ "actorId",
240
+ "policyDigest",
241
+ "method",
242
+ "markReady",
243
+ "expiresAt"
244
+ ],
245
+ "additionalProperties": false
246
+ },
247
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
248
+ "state": {
249
+ "type": "string",
250
+ "enum": [
251
+ "planned",
252
+ "ready_started",
253
+ "ready_verified",
254
+ "merge_started",
255
+ "effect_unknown",
256
+ "merged"
257
+ ]
258
+ },
259
+ "approvalSource": { "type": "string", "const": "attended_operator" }
260
+ },
261
+ "required": ["plan", "digest", "state"],
262
+ "additionalProperties": false
263
+ },
155
264
  "remoteHeadCommit": {
156
265
  "anyOf": [
157
266
  { "type": "string", "pattern": "^[a-f0-9]{40}$" },
@@ -81,6 +81,39 @@
81
81
  "type": "array",
82
82
  "items": { "type": "string", "minLength": 1 }
83
83
  },
84
+ "checkProducers": {
85
+ "type": "object",
86
+ "propertyNames": { "type": "string", "minLength": 1 },
87
+ "additionalProperties": {
88
+ "type": "object",
89
+ "properties": {
90
+ "appId": {
91
+ "type": "integer",
92
+ "exclusiveMinimum": 0,
93
+ "maximum": 9007199254740991
94
+ },
95
+ "workflowPath": {
96
+ "type": "string",
97
+ "pattern": "^\\.github\\/workflows\\/[A-Za-z0-9._-]+\\.ya?ml$"
98
+ },
99
+ "pullRequestEvent": { "type": "string", "const": "pull_request" },
100
+ "postMergeEvent": { "type": "string", "const": "push" }
101
+ },
102
+ "required": [
103
+ "appId",
104
+ "workflowPath",
105
+ "pullRequestEvent",
106
+ "postMergeEvent"
107
+ ],
108
+ "additionalProperties": false
109
+ }
110
+ },
111
+ "attendedMerge": { "type": "boolean", "const": true },
112
+ "postMergeRequiredChecks": {
113
+ "minItems": 1,
114
+ "type": "array",
115
+ "items": { "type": "string", "minLength": 1 }
116
+ },
84
117
  "reviewPolicy": {
85
118
  "type": "object",
86
119
  "properties": {
@@ -189,10 +222,25 @@
189
222
  "type": "string",
190
223
  "pattern": "^(?!\\.\\.?$)(?!.*[,/])[^*?[\\]\\\\]+$"
191
224
  }
192
- }
225
+ },
226
+ "executableFixtureScratch": { "type": "boolean", "const": true }
193
227
  },
194
228
  "required": ["argv", "cwd", "controlPaths", "capability"],
195
- "additionalProperties": false
229
+ "additionalProperties": false,
230
+ "allOf": [
231
+ {
232
+ "if": {
233
+ "properties": { "executableFixtureScratch": { "const": true } },
234
+ "required": ["executableFixtureScratch"]
235
+ },
236
+ "then": {
237
+ "properties": {
238
+ "execution": { "const": "oci" },
239
+ "capability": { "enum": ["test", "package"] }
240
+ }
241
+ }
242
+ }
243
+ ]
196
244
  }
197
245
  }
198
246
  },