gh-inari 0.10.2 → 0.13.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 (413) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/README.md +98 -236
  3. package/branch-naming-authority.d.mts +2 -0
  4. package/branch-naming-authority.mjs +4 -0
  5. package/dist/agent-authority/branch-advance.d.ts +82 -0
  6. package/dist/agent-authority/branch-advance.js +490 -0
  7. package/dist/agent-authority/branch-advance.js.map +1 -0
  8. package/dist/agent-authority/capability-admission.d.ts +87 -0
  9. package/dist/agent-authority/capability-admission.js +660 -0
  10. package/dist/agent-authority/capability-admission.js.map +1 -0
  11. package/dist/agent-authority/capability-provenance.d.ts +85 -0
  12. package/dist/agent-authority/capability-provenance.js +528 -0
  13. package/dist/agent-authority/capability-provenance.js.map +1 -0
  14. package/dist/agent-authority/capability.d.ts +62 -0
  15. package/dist/agent-authority/capability.js +184 -0
  16. package/dist/agent-authority/capability.js.map +1 -0
  17. package/dist/agent-authority/codec.d.ts +34 -0
  18. package/dist/agent-authority/codec.js +80 -0
  19. package/dist/agent-authority/codec.js.map +1 -0
  20. package/dist/agent-authority/delegator-key.d.ts +88 -0
  21. package/dist/agent-authority/delegator-key.js +536 -0
  22. package/dist/agent-authority/delegator-key.js.map +1 -0
  23. package/dist/agent-authority/delegator-lifecycle.d.ts +86 -0
  24. package/dist/agent-authority/delegator-lifecycle.js +462 -0
  25. package/dist/agent-authority/delegator-lifecycle.js.map +1 -0
  26. package/dist/agent-authority/delegator-operations.d.ts +168 -0
  27. package/dist/agent-authority/delegator-operations.js +307 -0
  28. package/dist/agent-authority/delegator-operations.js.map +1 -0
  29. package/dist/agent-authority/delegator-trust.d.ts +134 -0
  30. package/dist/agent-authority/delegator-trust.js +268 -0
  31. package/dist/agent-authority/delegator-trust.js.map +1 -0
  32. package/dist/agent-authority/delegator.d.ts +99 -0
  33. package/dist/agent-authority/delegator.js +247 -0
  34. package/dist/agent-authority/delegator.js.map +1 -0
  35. package/dist/agent-authority/direct-app-client.d.ts +78 -0
  36. package/dist/agent-authority/direct-app-client.js +246 -0
  37. package/dist/agent-authority/direct-app-client.js.map +1 -0
  38. package/dist/agent-authority/direct-app-http.d.ts +48 -0
  39. package/dist/agent-authority/direct-app-http.js +195 -0
  40. package/dist/agent-authority/direct-app-http.js.map +1 -0
  41. package/dist/agent-authority/ed25519-jwk.d.ts +32 -0
  42. package/dist/agent-authority/ed25519-jwk.js +86 -0
  43. package/dist/agent-authority/ed25519-jwk.js.map +1 -0
  44. package/dist/agent-authority/index.d.ts +20 -0
  45. package/dist/agent-authority/index.js +21 -0
  46. package/dist/agent-authority/index.js.map +1 -0
  47. package/dist/agent-authority/managed-runtime.d.ts +140 -0
  48. package/dist/agent-authority/managed-runtime.js +200 -0
  49. package/dist/agent-authority/managed-runtime.js.map +1 -0
  50. package/dist/agent-authority/protected-paths.d.ts +95 -0
  51. package/dist/agent-authority/protected-paths.js +297 -0
  52. package/dist/agent-authority/protected-paths.js.map +1 -0
  53. package/dist/agent-authority/runtime-authority-lifecycle.d.ts +2 -0
  54. package/dist/agent-authority/runtime-authority-lifecycle.js +3 -0
  55. package/dist/agent-authority/runtime-authority-lifecycle.js.map +1 -0
  56. package/dist/agent-authority/runtime-authority-operations.d.ts +2 -0
  57. package/dist/agent-authority/runtime-authority-operations.js +3 -0
  58. package/dist/agent-authority/runtime-authority-operations.js.map +1 -0
  59. package/dist/agent-authority/runtime-authority-trust.d.ts +2 -0
  60. package/dist/agent-authority/runtime-authority-trust.js +3 -0
  61. package/dist/agent-authority/runtime-authority-trust.js.map +1 -0
  62. package/dist/agent-authority/runtime-authority.d.ts +2 -0
  63. package/dist/agent-authority/runtime-authority.js +3 -0
  64. package/dist/agent-authority/runtime-authority.js.map +1 -0
  65. package/dist/agent-authority/runtime-key.d.ts +2 -0
  66. package/dist/agent-authority/runtime-key.js +3 -0
  67. package/dist/agent-authority/runtime-key.js.map +1 -0
  68. package/dist/agent-authority/session-authentication.d.ts +95 -0
  69. package/dist/agent-authority/session-authentication.js +229 -0
  70. package/dist/agent-authority/session-authentication.js.map +1 -0
  71. package/dist/agent-authority/session-bundle.d.ts +125 -0
  72. package/dist/agent-authority/session-bundle.js +561 -0
  73. package/dist/agent-authority/session-bundle.js.map +1 -0
  74. package/dist/agent-authority/session-certificate.d.ts +161 -0
  75. package/dist/agent-authority/session-certificate.js +532 -0
  76. package/dist/agent-authority/session-certificate.js.map +1 -0
  77. package/dist/agent-authority/session-issuance.d.ts +128 -0
  78. package/dist/agent-authority/session-issuance.js +400 -0
  79. package/dist/agent-authority/session-issuance.js.map +1 -0
  80. package/dist/agent-authority/session-request.d.ts +130 -0
  81. package/dist/agent-authority/session-request.js +604 -0
  82. package/dist/agent-authority/session-request.js.map +1 -0
  83. package/dist/artifact-contract-governance.d.ts +45 -0
  84. package/dist/artifact-contract-governance.js +160 -0
  85. package/dist/artifact-contract-governance.js.map +1 -0
  86. package/dist/artifact.d.ts +23 -1
  87. package/dist/artifact.js +77 -31
  88. package/dist/artifact.js.map +1 -1
  89. package/dist/branch-creation-ruleset.d.ts +90 -0
  90. package/dist/branch-creation-ruleset.js +190 -0
  91. package/dist/branch-creation-ruleset.js.map +1 -0
  92. package/dist/branch-naming.d.ts +53 -0
  93. package/dist/branch-naming.js +116 -0
  94. package/dist/branch-naming.js.map +1 -0
  95. package/dist/change/machine/abort-execution-machine.d.ts +173 -0
  96. package/dist/change/machine/abort-execution-machine.js +409 -0
  97. package/dist/change/machine/abort-execution-machine.js.map +1 -0
  98. package/dist/change/machine/issuance-execution-machine.d.ts +201 -0
  99. package/dist/change/machine/issuance-execution-machine.js +588 -0
  100. package/dist/change/machine/issuance-execution-machine.js.map +1 -0
  101. package/dist/change/machine/lifecycle-machine.d.ts +70 -0
  102. package/dist/change/machine/lifecycle-machine.js +163 -0
  103. package/dist/change/machine/lifecycle-machine.js.map +1 -0
  104. package/dist/change/machine/ready-execution-machine.d.ts +122 -0
  105. package/dist/change/machine/ready-execution-machine.js +405 -0
  106. package/dist/change/machine/ready-execution-machine.js.map +1 -0
  107. package/dist/change/machine/trusted-execution-adapter.d.ts +76 -0
  108. package/dist/change/machine/trusted-execution-adapter.js +1040 -0
  109. package/dist/change/machine/trusted-execution-adapter.js.map +1 -0
  110. package/dist/change-execution-port.d.ts +177 -0
  111. package/dist/change-execution-port.js +375 -0
  112. package/dist/change-execution-port.js.map +1 -0
  113. package/dist/change-executor.d.ts +6 -0
  114. package/dist/change-executor.js +7 -0
  115. package/dist/change-executor.js.map +1 -0
  116. package/dist/change-failure-diagnostics.d.ts +14 -0
  117. package/dist/change-failure-diagnostics.js +84 -0
  118. package/dist/change-failure-diagnostics.js.map +1 -0
  119. package/dist/change-handoff.d.ts +92 -0
  120. package/dist/change-handoff.js +416 -0
  121. package/dist/change-handoff.js.map +1 -0
  122. package/dist/change-provenance-record.d.ts +92 -0
  123. package/dist/change-provenance-record.js +364 -0
  124. package/dist/change-provenance-record.js.map +1 -0
  125. package/dist/change-publish-projection.d.ts +63 -0
  126. package/dist/change-publish-projection.js +193 -0
  127. package/dist/change-publish-projection.js.map +1 -0
  128. package/dist/change-trusted-executor.d.ts +18 -0
  129. package/dist/change-trusted-executor.js +23 -0
  130. package/dist/change-trusted-executor.js.map +1 -0
  131. package/dist/change.d.ts +891 -0
  132. package/dist/change.js +5358 -0
  133. package/dist/change.js.map +1 -0
  134. package/dist/cli-core.d.ts +26 -8
  135. package/dist/cli-core.js +2314 -310
  136. package/dist/cli-core.js.map +1 -1
  137. package/dist/cli.d.ts +2 -2
  138. package/dist/cli.js +15 -11
  139. package/dist/cli.js.map +1 -1
  140. package/dist/command-contract.d.ts +72 -13
  141. package/dist/command-contract.js +260 -18
  142. package/dist/command-contract.js.map +1 -1
  143. package/dist/contract/artifact-contract.d.ts +193 -0
  144. package/dist/contract/artifact-contract.js +951 -0
  145. package/dist/contract/artifact-contract.js.map +1 -0
  146. package/dist/contract/effective-artifact-contract.d.ts +47 -0
  147. package/dist/contract/effective-artifact-contract.js +251 -0
  148. package/dist/contract/effective-artifact-contract.js.map +1 -0
  149. package/dist/contract/index.d.ts +4 -0
  150. package/dist/contract/index.js +4 -0
  151. package/dist/contract/index.js.map +1 -1
  152. package/dist/contract/ir.d.ts +30 -0
  153. package/dist/contract/ir.js +31 -1
  154. package/dist/contract/ir.js.map +1 -1
  155. package/dist/contract/issue-form.js +5 -2
  156. package/dist/contract/issue-form.js.map +1 -1
  157. package/dist/contract/native-template-projection.d.ts +60 -0
  158. package/dist/contract/native-template-projection.js +295 -0
  159. package/dist/contract/native-template-projection.js.map +1 -0
  160. package/dist/contract/schema.d.ts +3 -1
  161. package/dist/contract/schema.js.map +1 -1
  162. package/dist/contract/semantic-artifact.d.ts +53 -0
  163. package/dist/contract/semantic-artifact.js +649 -0
  164. package/dist/contract/semantic-artifact.js.map +1 -0
  165. package/dist/github/actions-change-execution-adapter.d.ts +120 -0
  166. package/dist/github/actions-change-execution-adapter.js +1145 -0
  167. package/dist/github/actions-change-execution-adapter.js.map +1 -0
  168. package/dist/github/actions-change-executor.d.ts +84 -0
  169. package/dist/github/actions-change-executor.js +650 -0
  170. package/dist/github/actions-change-executor.js.map +1 -0
  171. package/dist/github/adapter.d.ts +164 -40
  172. package/dist/github/adapter.js +1793 -371
  173. package/dist/github/adapter.js.map +1 -1
  174. package/dist/github/app-installation-credential-broker.d.ts +135 -0
  175. package/dist/github/app-installation-credential-broker.js +969 -0
  176. package/dist/github/app-installation-credential-broker.js.map +1 -0
  177. package/dist/github/app-principal.d.ts +11 -0
  178. package/dist/github/app-principal.js +11 -0
  179. package/dist/github/app-principal.js.map +1 -0
  180. package/dist/github/app-repository-evidence-reader.d.ts +37 -0
  181. package/dist/github/app-repository-evidence-reader.js +175 -0
  182. package/dist/github/app-repository-evidence-reader.js.map +1 -0
  183. package/dist/github/app-semantic-pr-mutation.d.ts +26 -0
  184. package/dist/github/app-semantic-pr-mutation.js +321 -0
  185. package/dist/github/app-semantic-pr-mutation.js.map +1 -0
  186. package/dist/github/capability.d.ts +7 -1
  187. package/dist/github/capability.js +52 -0
  188. package/dist/github/capability.js.map +1 -1
  189. package/dist/github/change-actions-remote-executor.d.ts +6 -0
  190. package/dist/github/change-actions-remote-executor.js +7 -0
  191. package/dist/github/change-actions-remote-executor.js.map +1 -0
  192. package/dist/github/change-effect-adapter.d.ts +143 -0
  193. package/dist/github/change-effect-adapter.js +653 -0
  194. package/dist/github/change-effect-adapter.js.map +1 -0
  195. package/dist/github/change-state-projector.d.ts +88 -0
  196. package/dist/github/change-state-projector.js +604 -0
  197. package/dist/github/change-state-projector.js.map +1 -0
  198. package/dist/github/direct-app-execution.d.ts +43 -0
  199. package/dist/github/direct-app-execution.js +179 -0
  200. package/dist/github/direct-app-execution.js.map +1 -0
  201. package/dist/github/effect-authorizer.d.ts +302 -0
  202. package/dist/github/effect-authorizer.js +921 -0
  203. package/dist/github/effect-authorizer.js.map +1 -0
  204. package/dist/github/errors.d.ts +6 -14
  205. package/dist/github/errors.js +11 -17
  206. package/dist/github/errors.js.map +1 -1
  207. package/dist/github/gh-auth-credential.d.ts +24 -0
  208. package/dist/github/gh-auth-credential.js +50 -0
  209. package/dist/github/gh-auth-credential.js.map +1 -0
  210. package/dist/github/git-data-capability.d.ts +133 -0
  211. package/dist/github/git-data-capability.js +289 -0
  212. package/dist/github/git-data-capability.js.map +1 -0
  213. package/dist/github/index.d.ts +18 -1
  214. package/dist/github/index.js +17 -1
  215. package/dist/github/index.js.map +1 -1
  216. package/dist/github/issue-relation-mutation-adapter.d.ts +68 -0
  217. package/dist/github/issue-relation-mutation-adapter.js +244 -0
  218. package/dist/github/issue-relation-mutation-adapter.js.map +1 -0
  219. package/dist/github/issue-relation-observation-adapter.d.ts +97 -0
  220. package/dist/github/issue-relation-observation-adapter.js +374 -0
  221. package/dist/github/issue-relation-observation-adapter.js.map +1 -0
  222. package/dist/github/issuer-authority.d.ts +8 -0
  223. package/dist/github/issuer-authority.js +9 -0
  224. package/dist/github/issuer-authority.js.map +1 -0
  225. package/dist/github/local-repository-context.d.ts +47 -0
  226. package/dist/github/local-repository-context.js +166 -0
  227. package/dist/github/local-repository-context.js.map +1 -0
  228. package/dist/github/native-http-transport.d.ts +105 -0
  229. package/dist/github/native-http-transport.js +348 -0
  230. package/dist/github/native-http-transport.js.map +1 -0
  231. package/dist/github/provider-failure.d.ts +30 -0
  232. package/dist/github/provider-failure.js +160 -0
  233. package/dist/github/provider-failure.js.map +1 -0
  234. package/dist/github/repository-evidence-reader.d.ts +88 -0
  235. package/dist/github/repository-evidence-reader.js +362 -0
  236. package/dist/github/repository-evidence-reader.js.map +1 -0
  237. package/dist/github/types.d.ts +299 -2
  238. package/dist/github/user-credential.d.ts +43 -0
  239. package/dist/github/user-credential.js +81 -0
  240. package/dist/github/user-credential.js.map +1 -0
  241. package/dist/github/user-identity.d.ts +23 -0
  242. package/dist/github/user-identity.js +47 -0
  243. package/dist/github/user-identity.js.map +1 -0
  244. package/dist/golden-path-entry.d.ts +150 -0
  245. package/dist/golden-path-entry.js +1005 -0
  246. package/dist/golden-path-entry.js.map +1 -0
  247. package/dist/golden-path-governance.d.ts +84 -0
  248. package/dist/golden-path-governance.js +314 -0
  249. package/dist/golden-path-governance.js.map +1 -0
  250. package/dist/golden-path-implementation.d.ts +59 -0
  251. package/dist/golden-path-implementation.js +480 -0
  252. package/dist/golden-path-implementation.js.map +1 -0
  253. package/dist/golden-path-recovery.d.ts +57 -0
  254. package/dist/golden-path-recovery.js +412 -0
  255. package/dist/golden-path-recovery.js.map +1 -0
  256. package/dist/golden-path-review.d.ts +75 -0
  257. package/dist/golden-path-review.js +183 -0
  258. package/dist/golden-path-review.js.map +1 -0
  259. package/dist/golden-path-status.d.ts +302 -0
  260. package/dist/golden-path-status.js +1147 -0
  261. package/dist/golden-path-status.js.map +1 -0
  262. package/dist/governance.d.ts +57 -6
  263. package/dist/governance.js +187 -8
  264. package/dist/governance.js.map +1 -1
  265. package/dist/implementation-authorization.d.ts +145 -0
  266. package/dist/implementation-authorization.js +615 -0
  267. package/dist/implementation-authorization.js.map +1 -0
  268. package/dist/implementation-change-identity.d.ts +140 -0
  269. package/dist/implementation-change-identity.js +476 -0
  270. package/dist/implementation-change-identity.js.map +1 -0
  271. package/dist/implementation-conformance.d.ts +116 -0
  272. package/dist/implementation-conformance.js +603 -0
  273. package/dist/implementation-conformance.js.map +1 -0
  274. package/dist/implementation-contract.d.ts +239 -0
  275. package/dist/implementation-contract.js +1033 -0
  276. package/dist/implementation-contract.js.map +1 -0
  277. package/dist/implementation-execution-evidence.d.ts +55 -0
  278. package/dist/implementation-execution-evidence.js +253 -0
  279. package/dist/implementation-execution-evidence.js.map +1 -0
  280. package/dist/implementation-frontier-composition.d.ts +38 -0
  281. package/dist/implementation-frontier-composition.js +432 -0
  282. package/dist/implementation-frontier-composition.js.map +1 -0
  283. package/dist/implementation-frontier.d.ts +100 -0
  284. package/dist/implementation-frontier.js +904 -0
  285. package/dist/implementation-frontier.js.map +1 -0
  286. package/dist/implementation-lifecycle.d.ts +52 -0
  287. package/dist/implementation-lifecycle.js +241 -0
  288. package/dist/implementation-lifecycle.js.map +1 -0
  289. package/dist/implementation-readiness.d.ts +72 -0
  290. package/dist/implementation-readiness.js +381 -0
  291. package/dist/implementation-readiness.js.map +1 -0
  292. package/dist/implementation-rework.d.ts +149 -0
  293. package/dist/implementation-rework.js +437 -0
  294. package/dist/implementation-rework.js.map +1 -0
  295. package/dist/implementation-scope-projection.d.ts +102 -0
  296. package/dist/implementation-scope-projection.js +533 -0
  297. package/dist/implementation-scope-projection.js.map +1 -0
  298. package/dist/implementation-session-binding.d.ts +71 -0
  299. package/dist/implementation-session-binding.js +297 -0
  300. package/dist/implementation-session-binding.js.map +1 -0
  301. package/dist/index.d.ts +50 -0
  302. package/dist/index.js +52 -0
  303. package/dist/index.js.map +1 -1
  304. package/dist/issue-relationship-executor.d.ts +75 -0
  305. package/dist/issue-relationship-executor.js +352 -0
  306. package/dist/issue-relationship-executor.js.map +1 -0
  307. package/dist/issue-relationship.d.ts +86 -0
  308. package/dist/issue-relationship.js +387 -0
  309. package/dist/issue-relationship.js.map +1 -0
  310. package/dist/issuer-identity.d.ts +18 -0
  311. package/dist/issuer-identity.js +21 -0
  312. package/dist/issuer-identity.js.map +1 -0
  313. package/dist/legacy-artifact-convergence.d.ts +77 -0
  314. package/dist/legacy-artifact-convergence.js +515 -0
  315. package/dist/legacy-artifact-convergence.js.map +1 -0
  316. package/dist/mcp/index.d.ts +3 -0
  317. package/dist/mcp/index.js +4 -0
  318. package/dist/mcp/index.js.map +1 -0
  319. package/dist/mcp/server.d.ts +18 -0
  320. package/dist/mcp/server.js +33 -0
  321. package/dist/mcp/server.js.map +1 -0
  322. package/dist/mcp/session-app-bridge.d.ts +19 -0
  323. package/dist/mcp/session-app-bridge.js +24 -0
  324. package/dist/mcp/session-app-bridge.js.map +1 -0
  325. package/dist/mcp/stdio.d.ts +13 -0
  326. package/dist/mcp/stdio.js +109 -0
  327. package/dist/mcp/stdio.js.map +1 -0
  328. package/dist/mcp/tools.d.ts +651 -0
  329. package/dist/mcp/tools.js +1651 -0
  330. package/dist/mcp/tools.js.map +1 -0
  331. package/dist/operational-discovery.d.ts +122 -0
  332. package/dist/operational-discovery.js +497 -0
  333. package/dist/operational-discovery.js.map +1 -0
  334. package/dist/operational-observation.d.ts +260 -0
  335. package/dist/operational-observation.js +985 -0
  336. package/dist/operational-observation.js.map +1 -0
  337. package/dist/pr-policy.js +31 -7
  338. package/dist/pr-policy.js.map +1 -1
  339. package/dist/pull-request-template.js +2 -2
  340. package/dist/pull-request-template.js.map +1 -1
  341. package/dist/reconciliation.d.ts +64 -3
  342. package/dist/reconciliation.js +304 -5
  343. package/dist/reconciliation.js.map +1 -1
  344. package/dist/release-certification.d.ts +76 -0
  345. package/dist/release-certification.js +135 -0
  346. package/dist/release-certification.js.map +1 -0
  347. package/dist/self-dogfood-marker.d.ts +8 -0
  348. package/dist/self-dogfood-marker.js +15 -0
  349. package/dist/self-dogfood-marker.js.map +1 -0
  350. package/dist/semantic-branch-executor.d.ts +84 -0
  351. package/dist/semantic-branch-executor.js +215 -0
  352. package/dist/semantic-branch-executor.js.map +1 -0
  353. package/dist/semantic-branch-observation.d.ts +90 -0
  354. package/dist/semantic-branch-observation.js +278 -0
  355. package/dist/semantic-branch-observation.js.map +1 -0
  356. package/dist/semantic-branch-projection.d.ts +103 -0
  357. package/dist/semantic-branch-projection.js +528 -0
  358. package/dist/semantic-branch-projection.js.map +1 -0
  359. package/dist/semantic-issue-closure-executor.d.ts +60 -0
  360. package/dist/semantic-issue-closure-executor.js +180 -0
  361. package/dist/semantic-issue-closure-executor.js.map +1 -0
  362. package/dist/semantic-issue-closure.d.ts +125 -0
  363. package/dist/semantic-issue-closure.js +488 -0
  364. package/dist/semantic-issue-closure.js.map +1 -0
  365. package/dist/semantic-issue-executor.d.ts +103 -0
  366. package/dist/semantic-issue-executor.js +463 -0
  367. package/dist/semantic-issue-executor.js.map +1 -0
  368. package/dist/semantic-issue-lifecycle.d.ts +120 -0
  369. package/dist/semantic-issue-lifecycle.js +499 -0
  370. package/dist/semantic-issue-lifecycle.js.map +1 -0
  371. package/dist/semantic-issue-observation.d.ts +145 -0
  372. package/dist/semantic-issue-observation.js +975 -0
  373. package/dist/semantic-issue-observation.js.map +1 -0
  374. package/dist/semantic-issue-projection.d.ts +159 -0
  375. package/dist/semantic-issue-projection.js +969 -0
  376. package/dist/semantic-issue-projection.js.map +1 -0
  377. package/dist/semantic-issue-relation-executor.d.ts +81 -0
  378. package/dist/semantic-issue-relation-executor.js +425 -0
  379. package/dist/semantic-issue-relation-executor.js.map +1 -0
  380. package/dist/semantic-issue-relations.d.ts +121 -0
  381. package/dist/semantic-issue-relations.js +823 -0
  382. package/dist/semantic-issue-relations.js.map +1 -0
  383. package/dist/semantic-pr-executor.d.ts +105 -0
  384. package/dist/semantic-pr-executor.js +340 -0
  385. package/dist/semantic-pr-executor.js.map +1 -0
  386. package/dist/semantic-pr-mutation.d.ts +207 -0
  387. package/dist/semantic-pr-mutation.js +873 -0
  388. package/dist/semantic-pr-mutation.js.map +1 -0
  389. package/dist/semantic-pr-observation.d.ts +153 -0
  390. package/dist/semantic-pr-observation.js +1245 -0
  391. package/dist/semantic-pr-observation.js.map +1 -0
  392. package/dist/semantic-pr-projection.d.ts +146 -0
  393. package/dist/semantic-pr-projection.js +857 -0
  394. package/dist/semantic-pr-projection.js.map +1 -0
  395. package/dist/semantic-template.js +222 -96
  396. package/dist/semantic-template.js.map +1 -1
  397. package/dist/session-authorized-change-executor.d.ts +118 -0
  398. package/dist/session-authorized-change-executor.js +606 -0
  399. package/dist/session-authorized-change-executor.js.map +1 -0
  400. package/dist/skill.d.ts +40 -6
  401. package/dist/skill.js +325 -23
  402. package/dist/skill.js.map +1 -1
  403. package/dist/worker.d.ts +41 -0
  404. package/dist/worker.js +131 -0
  405. package/dist/worker.js.map +1 -0
  406. package/package.json +231 -15
  407. package/scripts/certification-evidence.d.mts +304 -0
  408. package/scripts/certification-evidence.mjs +1874 -0
  409. package/skills/inari/SKILL.md +57 -8
  410. package/dist/github/transport.d.ts +0 -43
  411. package/dist/github/transport.js +0 -161
  412. package/dist/github/transport.js.map +0 -1
  413. package/gh-inari +0 -117
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inari",
3
- "version": "0.10.2",
3
+ "version": "0.13.0",
4
4
  "description": "Governed GitHub Issue/PR/template workflows via the inari CLI. Prefer inari over raw gh for operations it owns; use inari skill for operational playbooks.",
5
5
  "skills": "skills/inari"
6
6
  }
package/README.md CHANGED
@@ -1,305 +1,165 @@
1
+ <p align="center">
2
+ <img src="./docs/assets/readme/inari-hero.webp" alt="INARI — Deterministic GitHub Governance. Issue → Change → PR → Merge. Canonical · Deterministic · Machine-verifiable." width="100%">
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="https://github.com/yohn-jp/gh-inari/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/yohn-jp/gh-inari/actions/workflows/ci.yml/badge.svg"></a>
7
+ <a href="https://www.npmjs.com/package/gh-inari"><img alt="npm" src="https://img.shields.io/npm/v/gh-inari"></a>
8
+ <a href="https://www.npmjs.com/package/gh-inari"><img alt="Node" src="https://img.shields.io/node/v/gh-inari"></a>
9
+ <a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/gh-inari"></a>
10
+ </p>
11
+
1
12
  # Inari
2
13
 
3
- Inari (`inari`, packaged as `gh-inari`) is a governed GitHub CLI focused on repository governance: it turns a repository's native Issue Forms and pull request templates into deterministic typed contracts. It validates structured JSON, renders canonical Markdown, and performs GitHub mutations only after the contract, input, and rendered artifact have all passed validation. Every command Inari does not govern passes through to the real `gh` binary unchanged.
14
+ **Deterministic GitHub Governance**
15
+
16
+ Inari (`inari`, published as `gh-inari`) turns repository-governed GitHub workflows into typed, deterministic contracts. It compiles repository-native Issue Forms and pull request templates, validates semantic input, renders canonical artifacts, and mediates governed work from **Issue → Change → PR → Merge**.
4
17
 
5
- Migrated repositories can author semantic template contracts under `.github/inari/` and regenerate the committed GitHub-native projections with `inari template sync`; see [Semantic template authority](docs/SEMANTIC_TEMPLATES.md).
18
+ Inari is intentionally not a general `gh` wrapper. Governed operations run through a closed, versioned command surface; unsupported or ambiguous behavior fails closed.
6
19
 
7
- ## Install and invoke
20
+ ## Quick start
8
21
 
9
- The canonical agent- and human-facing surface is the `inari` executable from
10
- the `gh-inari` npm package. It is a strict superset of `gh`: commands Inari
11
- governs (Issue and PR schema/validate/render/create/explain/get/check/edit/
12
- normalize/sync) run under governance, and every other command falls through
13
- to the real `gh` binary with the original argv and exit status preserved.
22
+ Requires Node.js 24 or newer.
14
23
 
15
24
  ```bash
16
25
  npm install --global gh-inari
26
+
17
27
  inari --version --json
28
+ inari template list
29
+ inari issue schema feature --json
18
30
  ```
19
31
 
20
- For an ephemeral or PATH-independent session, use `npx` directly — the
21
- deterministic fallback when no global install is present or the npm bin
22
- directory is not on `PATH`:
32
+ For an ephemeral or PATH-independent invocation:
23
33
 
24
34
  ```bash
25
35
  npx --yes gh-inari --version --json
26
36
  ```
27
37
 
28
- `pnpm dlx gh-inari ...` is equivalent when pnpm is the session's package
29
- runner.
38
+ Inari uses the current GitHub authentication and repository context. Use `--repository owner/name` when the target is not the current checkout.
30
39
 
31
- Agent execution hooks (Codex, Claude Code, Mottainai-style) that rewrite
32
- outbound `gh` invocations should normalize only the executable name:
40
+ ## The governed path
33
41
 
34
42
  ```text
35
- argv[0] == "gh" -> argv[0] = "inari"
43
+ Issue Change → PR → Merge
44
+ intent governed review explicit
45
+ execution outcome
36
46
  ```
37
47
 
38
- The hook must not maintain its own table of which subcommands are governed
39
- (e.g. `gh pr create -> inari`, `gh issue edit -> inari`) — Inari is the sole
40
- authority for that routing decision, and every unowned command already
41
- delegates to real `gh` unchanged. The hook's only job is the executable
42
- boundary, not the command tree.
48
+ A repository defines the contracts. Inari resolves those authorities, validates structured intent, produces canonical GitHub artifacts, and keeps lifecycle transitions bounded by explicit semantics rather than free-form CLI mutation.
43
49
 
44
- The `gh inari ...` extension form remains supported as a compatibility path:
50
+ The Change surface exposes bounded lifecycle operations:
45
51
 
46
52
  ```bash
47
- gh extension install yohn-jp/gh-inari
48
- gh inari --version --json
53
+ inari change issue <number> --json
54
+ inari change show <number> --json
55
+ inari change ready <number> --json
56
+ inari change abort <number> --json
49
57
  ```
50
58
 
51
- The package name is `gh-inari`; its npm executables are `gh-inari` and
52
- `inari`, both resolving to the same entrypoint. The GitHub CLI extension
53
- command is `gh inari`. The extension launcher bootstraps only production
54
- dependencies inside its own installation directory and never changes the
55
- consumer repository.
59
+ The normative end-to-end model lives in [Inari Golden Path Architecture](./docs/GOLDEN_PATH_ARCHITECTURE.md).
56
60
 
57
- Global npm bin directories are environment-specific; use `npx --yes gh-inari`
58
- instead of repairing shell startup files when `inari` is not found.
61
+ ## Design principles
59
62
 
60
- ## Update, uninstall, and diagnostics
63
+ | Principle | Contract |
64
+ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
65
+ | **Canonical** | One governed semantic input produces one canonical projection. Native GitHub artifacts remain interoperable, while ambiguity fails closed. |
66
+ | **Deterministic** | Resolution, validation, rendering, reconciliation, and lifecycle decisions are explicit and reproducible. |
67
+ | **Machine-verifiable** | Schemas, structured diagnostics, bounded JSON projections, and lifecycle evidence are designed for both humans and agents. |
61
68
 
62
- For a global npm install:
69
+ ## Core workflows
63
70
 
64
- ```bash
65
- npm install --global gh-inari@latest
66
- npm uninstall --global gh-inari
67
- ```
71
+ | Surface | Purpose | Start here |
72
+ | ------------- | ------------------------------------------------------------------------------ | -------------------------------------------- |
73
+ | Templates | Discover and synchronize repository governance | `inari template list`, `inari template sync` |
74
+ | Issues | Schema, validate, render, create, read, observe, and reconcile governed Issues | `inari issue --help` |
75
+ | Pull requests | Apply the same semantic pipeline to governed PRs | `inari pr --help` |
76
+ | Change | Enter and inspect the governed execution lifecycle | `inari change --help` |
77
+ | Diagnostics | Verify the installed runtime and required capabilities | `inari --diagnose --json` |
68
78
 
69
- For the `gh inari` extension form:
70
-
71
- ```bash
72
- gh extension upgrade inari
73
- gh extension remove inari
74
- ```
75
-
76
- The bounded diagnostic path checks the install without touching repository
77
- files. It reports a short, actionable recovery command for a missing or
78
- stale install:
79
-
80
- ```bash
81
- inari --diagnose --json
82
- npx --yes gh-inari --diagnose --json
83
- ```
84
-
85
- `--version --json` is the machine-readable self-check. Its stable fields are
86
- `name`, `version`, `protocol`, `capabilities`, and `invocation`; use
87
- `--require-capability <id>` and `--minimum-version <version>` for a
88
- mutation-sensitive preflight. A failed check exits `2` and includes one
89
- recovery command. The current capability identifiers are
90
- `canonical-invocation`, `machine-readable-version`, `capability-diagnostics`,
91
- and `extension-bootstrap`.
92
-
93
- The `inari` executable is canonical. The direct package executable
94
- `gh-inari` and the `gh inari` extension form are compatibility paths with the
95
- same governed command semantics; prefer `inari` for agent and human-facing
96
- commands:
79
+ Typical structured preparation remains explicit:
97
80
 
98
81
  ```bash
99
82
  inari issue schema feature --json
100
- gh-inari issue schema feature --json
101
- gh inari issue schema feature --json
83
+ inari issue validate --template feature --from issue.json
84
+ inari issue render --template feature --from issue.json
85
+ inari issue create --template feature --from issue.json
102
86
  ```
103
87
 
104
- The repository launcher also supports a clean checkout as a local extension:
88
+ Use `--from -` to read JSON from stdin. Use `inari <domain> --help` for the exact versioned command contract rather than relying on a duplicated command catalog in this README.
105
89
 
106
- ```bash
107
- pnpm install --frozen-lockfile
108
- pnpm run build
109
- gh extension install . --force
110
- gh inari --version --json
111
- ```
90
+ ## Repository governance
112
91
 
113
- For a prerelease or local packed artifact, select the package explicitly
114
- without adding it to a consumer manifest:
92
+ Repository-native governance remains the interoperability boundary. Issue Forms under `.github/ISSUE_TEMPLATE/**` and supported pull request templates are compiled into typed contracts. Repositories using Inari's semantic template authority can define contracts under `.github/inari/` and regenerate their GitHub-native projections with:
115
93
 
116
94
  ```bash
117
- npx --yes gh-inari@next --version --json
118
- npm pack
119
- npx --yes --package=./gh-inari-&lt;version&gt;.tgz gh-inari --version --json
95
+ inari template sync
120
96
  ```
121
97
 
122
- Inari uses the current `gh` authentication and repository context. It does not maintain a second credential store. Use `--repository owner/name` when the target repository is not the current checkout.
123
-
124
- ## Codex Plugin
98
+ See [Semantic template authority](./docs/SEMANTIC_TEMPLATES.md) for the authority and projection rules.
125
99
 
126
- The same published `gh-inari` package is also a valid Codex Plugin no
127
- second install artifact is needed. Installing or unpacking `gh-inari` (any
128
- of the paths above) ships `.codex-plugin/plugin.json` and
129
- `skills/inari/SKILL.md` alongside the CLI. Codex requires explicit
130
- marketplace registration and installation via Codex plugin commands to
131
- activate the skill; standard `npm install` alone does not automatically
132
- surface the plugin to Codex-aware agents.
100
+ Existing artifacts use the same compiler-owned semantic pipeline for validation and remediation. `get`, `view`, and `observe` deliberately expose different bounded projections; `check`, `edit`, `normalize`, and `sync` preserve explicit semantic intent and fail closed when preservation cannot be proven.
133
101
 
134
- To discover and install it from this repository's marketplace:
102
+ ## Implementation contracts
135
103
 
136
- ```bash
137
- codex plugin marketplace add .
138
- ```
104
+ One bounded execution session can be represented as a versioned `Implementation` contract. It records the objective, architecture decision, explicit `READONLY` / `WRITE` / `CREATE` / `DELETE` / `DENY` scopes, verification requirements, and base binding.
139
105
 
140
- In Codex, run `/plugins`, select the `gh-inari` marketplace, and install
141
- `inari`. Start a new Codex session after installation so the bundled Skill
142
- is available.
106
+ `WRITE` is fail-closed and never implies `CREATE` or `DELETE`.
143
107
 
144
- The Skill is deliberately thin: it identifies governed GitHub Issue/PR/
145
- template workflows as Inari-owned and routes agents to `inari skill` /
146
- `inari skill <scenario>` for the actual operational playbooks, and to
147
- `inari <domain> --help` for exact command syntax. It does not duplicate
148
- scenario content, so it stays correct as `inari skill` evolves. Raw `gh`
149
- remains available for anything outside Inari's governed surface.
108
+ The normative contract is documented in [Implementation Contract](./docs/IMPLEMENTATION_CONTRACT.md).
150
109
 
151
- ## Commands
110
+ ## Agents, Codex Plugin, and MCP
152
111
 
153
- ```bash
154
- inari template list
155
- inari issue schema <template> --json
156
- inari issue validate --template <template> --from issue.json
157
- inari issue render --template <template> --from issue.json
158
- inari issue create --template <template> --from issue.json
159
- inari pr schema <template> --json
160
- inari pr validate --template <template> --from pr.json
161
- inari pr render --template <template> --from pr.json
162
- inari pr create --template <template> --from pr.json
163
- inari issue validate <number> --template <template> --json
164
- inari pr validate <number> --template <template> --json
165
- inari issue explain <number> --template <template> --json
166
- inari pr explain <number> --template <template> --json
167
- inari issue get <number> [--template <template>] --json
168
- inari pr get <number> [--template <template>] --json
169
- inari issue check <number> [--template <template>]
170
- inari pr check <number> [--template <template>]
171
- inari issue edit <number> [--from patch.json] [--field name=value] [--title title] [--dry-run]
172
- inari pr edit <number> [--from patch.json] [--field name=value] [--title title] [--base branch] [--maintainer-can-modify] [--dry-run]
173
- inari issue normalize <number> [--dry-run]
174
- inari pr normalize <number> [--dry-run]
175
- inari issue sync <number> --from desired.json [--dry-run]
176
- inari pr sync <number> --from desired.json [--dry-run]
177
- ```
112
+ The published `gh-inari` package also contains the Codex Plugin manifest and bundled Inari Skill. There is no second package artifact. Codex plugin activation remains explicit; a normal npm install does not silently activate the plugin for an agent.
178
113
 
179
- `--from -` reads JSON from stdin. Create input uses an envelope when mutation metadata is needed:
114
+ The bundled Skill stays deliberately thin: it routes governed workflows to `inari skill`, scenario-specific guidance, and the CLI's versioned help rather than duplicating operational policy.
180
115
 
181
- ```json
182
- {
183
- "fields": { "summary": "A reproducible defect" },
184
- "title": "fix: correct the parser",
185
- "labels": ["bug"]
186
- }
187
- ```
116
+ Inari also exposes MCP-facing capabilities backed by the same Core contracts and bounded projections used by the CLI. MCP is not a raw GitHub API pass-through.
188
117
 
189
- The `fields` object is the semantic input contract shown by `schema`; the same schema output exposes the separate required create metadata schema. Issue creation also accepts `assignees`; pull request creation accepts `head`, `base`, `draft`, and `maintainerCanModify`. Caller-supplied `title` metadata is required for both create commands, and `--title`, `--head`, and `--base` override envelope metadata. Existing `edit` commands use the remote artifact as their patch base: `--title` is supported for Issues and pull requests, while pull requests also support `--base` and `--maintainer-can-modify`; `--draft` is rejected for edit because pull-request PATCH does not accept it. Omitted values are preserved and unsupported or immutable metadata is rejected.
190
-
191
- `pr sync --from` accepts a complete pull-request desired-state envelope. Use
192
- `inari pr sync --help` for the top-level contract, or
193
- `inari pr schema <template> --json` for its machine-readable `syncInput.schema`
194
- and a valid `syncInput.minimalExample`.
195
- `issue sync --from` overlays supplied semantic fields and metadata onto the
196
- current artifact, preserving values omitted from the input.
197
-
198
- Schema and validation output is JSON. `--json` makes render and create output JSON as well. Validation failures return exit status `2`; usage errors return `1`; GitHub/transport failures return `3`. Error objects contain stable `code`, `path` where applicable, and ordered `violations`.
199
-
200
- `issue get` and `pr get` are canonical-only v1 reads. They resolve the target
201
- repository's default-branch governance, select the supported native template,
202
- parse the existing artifact with the same parser and semantic validator as
203
- `validate`/`explain`, and emit only canonical `fields` plus minimal artifact
204
- metadata. Successful reads report `projection: "canonical"`; wrong-template,
205
- unparseable, ambiguous, and semantically invalid artifacts report structured
206
- diagnostics with `projection: "unavailable"` and never return guessed fields.
207
- When `--template` is omitted, Inari first looks for the bounded invisible
208
- template identity marker every rendered artifact now carries. A valid marker
209
- resolves the contract directly; an unknown, stale, or wrong-kind marker fails
210
- closed with a diagnostic instead of guessing another template. Artifacts
211
- without a marker fall back to evaluating all supported candidates
212
- deterministically; multiple structural matches fail closed. Native template
213
- boilerplate and raw Markdown are intentionally absent from successful output.
214
-
215
- Existing artifact remediation uses one semantic pipeline for both Issues and
216
- pull requests. `check` is read-only and classifies an artifact as
217
- `valid-current`, `non-canonical`, `semantically-invalid`, `unsupported`, or
218
- `ambiguous`. `edit` applies an explicit semantic/metadata patch from JSON or
219
- direct CLI options; it never accepts raw Markdown as the mutation contract. `normalize` re-renders a
220
- parseable, semantically valid artifact and fails closed when preservation is
221
- not proven. `issue sync` overlays its input onto the current canonical state,
222
- while `pr sync` treats its input as the complete desired semantic state; both
223
- reconcile the canonical projection deterministically. A successful no-op is
224
- reported explicitly, and `--dry-run` returns a bounded semantic/rendered diff
225
- plus the validated resulting fields, metadata, and canonical body without
226
- calling a GitHub mutation.
227
-
228
- ## Source of truth and supported semantics
229
-
230
- `.github/ISSUE_TEMPLATE/**` remains the Issue source of truth. For pull requests, Inari discovers GitHub's supported repository locations: `pull_request_template` files under the repository root, `docs/`, or `.github/`, plus `PULL_REQUEST_TEMPLATE/` directories under each location. Native PR template filenames and the `.md`/`.txt` extensions supported by Inari are matched case-insensitively. Other PR-template extension surfaces are intentionally unsupported in v1 and fail closed. Inari discovers and compiles those files; it does not replace them with a proprietary body schema. Supported Issue Form nodes are `input`, `textarea` (including native `render` code fences), single- and multi-select `dropdown`, `checkboxes`, and `markdown`. Browser-only or ambiguous behavior, such as uploads or unsupported textarea rendering modes, fails closed. Markdown nodes are retained for contract/schema explainability but never emitted into an Issue body.
231
-
232
- Issue dependencies are a separate, template-independent semantic object. Structured Issue envelopes may provide `dependencies.blockedBy` and `dependencies.blocks`; each reference is the canonical `{ "repositoryHost": "github.com", "repositoryId": "<decimal REST repository database id>", "repository": "owner/name", "number": N }` identity. `repositoryHost` plus `repositoryId` is authoritative: the host/install boundary prevents IDs from different GH_HOST/GHES installations colliding. Within one host, rename/transfer preserves the repository identity tuple and changes only the optional locator; cross-host migration is a different identity. The GitHub adapter obtains this decimal ID from the REST repository endpoint through `gh api`, including for repository overrides through a read-only identity lookup; a context that cannot obtain it does not synthesize one from owner/name. Inari sorts and validates these references (including duplicate, self, malformed, and contradictory declarations) before rendering. Non-empty dependencies are preserved in a bounded reserved body marker and projected back as normalized JSON; ordinary Markdown and GitHub-native dependency metadata are never inferred as semantic input. GitHub-native dependency state is not currently mutated by Inari, so there is no competing authority or implicit drift reconciliation.
233
-
234
- Native PR Markdown expresses structure but not policy. A small versioned overlay may add constraints unavailable in Markdown without changing section order or content. The supported v1 form is:
235
-
236
- ```yaml
237
- version: 1
238
- template: default
239
- sections:
240
- - section: linked_issue
241
- linkedIssue: true
242
- - section: summary
243
- required: true
244
- minLength: 20
245
- - section: acceptance
246
- checklist:
247
- minCompleted: 1
248
- requireComplete: false
249
- ```
118
+ ## Architecture
250
119
 
251
- One repository policy file can bind several native PR templates with `templates`; every entry in a multi-template policy must identify one template by stable `id`, `path`, or unique `name`:
120
+ The README is an entry point, not a second architecture authority. Use these documents for normative detail:
252
121
 
253
- ```yaml
254
- version: 1
255
- templates:
256
- - template: default
257
- sections: []
258
- - template:
259
- path: .github/PULL_REQUEST_TEMPLATE/release.md
260
- sections: []
261
- ```
122
+ | Authority | Scope |
123
+ | -------------------------------------------------------------- | --------------------------------------------------------------------- |
124
+ | [Golden Path Architecture](./docs/GOLDEN_PATH_ARCHITECTURE.md) | End-to-end governed lifecycle and composition |
125
+ | [Architecture Vocabulary](./docs/ARCHITECTURE.md) | Canonical provider, credential, principal, and observation vocabulary |
126
+ | [Semantic Templates](./docs/SEMANTIC_TEMPLATES.md) | Semantic template authority and GitHub-native projections |
127
+ | [Implementation Contract](./docs/IMPLEMENTATION_CONTRACT.md) | Bounded implementation-session contract and scope model |
262
128
 
263
- Template and section bindings are deterministic. Stale, unknown, or ambiguous template/section references fail closed. `linkedIssue: true` means that the field contains a GitHub closing reference: `close`, `closes`, `closed`, `fix`, `fixes`, `fixed`, `resolve`, `resolves`, or `resolved`, followed by `#ISSUE-NUMBER` or `OWNER/REPOSITORY#ISSUE-NUMBER`, with an optional colon and case-insensitive keyword. This validates syntax only; GitHub applies automatic linking/closure only under its own contextual rules, including the target default branch.
129
+ ## Safety model
264
130
 
265
- When `issue create` or `pr create` omits `--template`, the shared resolver uses
266
- the repository's optional `.github/inari/template-resolution.yml` authority:
131
+ Inari keeps mutation behind validated semantic boundaries:
267
132
 
268
- ```yaml
269
- version: 1
270
- defaults:
271
- issue: feature
272
- pr: default
133
+ ```text
134
+ resolve authority
135
+ → compile contract
136
+ validate semantic input
137
+ render canonical artifact
138
+ → verify round-trip
139
+ → perform the governed provider operation
273
140
  ```
274
141
 
275
- The precedence is explicit selector, configured default, sole candidate,
276
- interactive TTY selection, then bounded failure. Non-interactive execution never
277
- guesses among multiple candidates. An invalid or unavailable configured default
278
- also fails closed. Candidate identifiers and an explicit `--template` recovery
279
- action are included in structured ambiguity diagnostics.
280
-
281
- Issue Form top-level `title` is a fixed native prefix for create validation, but it does not satisfy the caller's required title metadata by itself. An explicit caller title is used as supplied without inferred prefix concatenation or automatic generation. Top-level `labels` are repository-governed defaults and are always retained; caller-supplied labels are appended in order with duplicates removed. Top-level `assignees`, `projects`, and `type`, and upload fields remain unsupported and fail closed rather than being approximated.
142
+ Schema, validation, rendering, observation, and dry-run paths do not become implicit mutation paths. Unsupported, ambiguous, unparseable, or semantically invalid state fails closed before provider mutation.
282
143
 
283
- ## Scope
144
+ Inari does not maintain a second credential store. Provider credentials and authority remain explicit parts of the architecture; see [Architecture Vocabulary](./docs/ARCHITECTURE.md).
284
145
 
285
- Inari owns repository-governed GitHub mutations: it reads repository-native governance, exposes it as machine-readable contracts, validates structured input against that governance, renders the canonical artifact, and performs the corresponding `gh` operation — or rejects it with actionable feedback.
146
+ ## Installation and diagnostics
286
147
 
287
- Inari is not a general GitHub CLI wrapper. Generic read/query operations such as `pr view`, `issue view`, diff/search summarization, or token-efficient GitHub inspection remain out of scope; `get` only reconstructs artifacts that match the repository-governed canonical contract.
148
+ Update or remove a global installation with npm:
288
149
 
289
- ## Safety and existing artifacts
290
-
291
- Every create path is:
292
-
293
- ```text
294
- resolve template -> compile contract -> validate semantic JSON
295
- -> render canonical Markdown -> construct validated-rendered artifact -> call gh
150
+ ```bash
151
+ npm install --global gh-inari@latest
152
+ npm uninstall --global gh-inari
296
153
  ```
297
154
 
298
- `prepareIssueArtifact` and `preparePullRequestArtifact` are the trusted preparation boundary for library callers. Each reparses the exact rendered body with the same compiled contract, revalidates the reconstructed values, and compares them deterministically with the validated/materialized source values before producing an opaque, frozen capability carrying the target repository/ref provenance. The public `phase: "validated-rendered"` string is informational; a caller-created or spread object is rejected by the mutation adapter, and there is no public marker helper.
155
+ Run the bounded standalone diagnostic without changing repository files:
299
156
 
300
- Schema, validate, render, check, and every `--dry-run` remediation path never call a remote mutation. Invalid, ambiguous, unparseable, or unsupported pre-flight state cannot reach the mutation adapter. Existing Issue and PR validation and remediation fetch artifacts through the typed `gh` adapter, reconstruct semantic values, and call the same compiler-owned parser, validator, renderer, and freshness/reconciliation boundary. Renderer/parser drift fails with the typed `ARTIFACT_ROUND_TRIP_INVALID` preparation error; normalization never invents missing intent.
157
+ ```bash
158
+ inari --diagnose --json
159
+ npx --yes gh-inari --diagnose --json
160
+ ```
301
161
 
302
- The public compiler, contract, validation, rendering, and adapter boundaries are library APIs. Future Actions or App adapters can use them without invoking or scraping CLI output.
162
+ `inari --version --json` is the machine-readable self-check. The canonical executable is `inari`; `gh-inari` is an npm bin alias resolving to the same entry point.
303
163
 
304
164
  ## Development
305
165
 
@@ -308,6 +168,8 @@ pnpm install --frozen-lockfile
308
168
  pnpm run verify
309
169
  ```
310
170
 
171
+ `pnpm run verify` is the repository's authoritative local verification entry point.
172
+
311
173
  ## License
312
174
 
313
- MIT — see [LICENSE](LICENSE).
175
+ MIT — see [LICENSE](./LICENSE).
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import the Core branch-naming module instead. */
2
+ export * from "./dist/branch-naming.js";
@@ -0,0 +1,4 @@
1
+ // Compatibility entrypoint for the pre-Core branch-naming filename.
2
+ // The implementation lives in the packaged Core module; this file deliberately
3
+ // contains no independent grammar, parser, or derivation logic.
4
+ export * from "./dist/branch-naming.js";
@@ -0,0 +1,82 @@
1
+ import { type CapabilityExecutionProvenance } from "./capability-provenance.js";
2
+ import type { AuthenticatedSessionContext } from "./session-authentication.js";
3
+ import type { SessionAgentMetadata } from "./session-bundle.js";
4
+ import { type ImplementationReworkMarker } from "../implementation-rework.js";
5
+ import { type GitHubBranchAdvanceCapability } from "../github/git-data-capability.js";
6
+ import type { AdmittedSessionCapability } from "./capability-admission.js";
7
+ import type { RepositoryIdentity } from "../github/effect-authorizer.js";
8
+ export declare const BRANCH_ADVANCE_CONTRACT_VERSION: 1;
9
+ export declare const BRANCH_ADVANCE_OPERATION: "branch.advance";
10
+ export declare const BRANCH_ADVANCE_OUTCOMES: readonly ["advanced", "idempotent", "stale", "failed", "recovery-required"];
11
+ export type BranchAdvanceOutcome = (typeof BRANCH_ADVANCE_OUTCOMES)[number];
12
+ export declare const BRANCH_ADVANCE_FAILURE_CODES: readonly ["BRANCH_ADVANCE_FAILED"];
13
+ export type BranchAdvanceFailureCode = "BRANCH_ADVANCE_FAILED";
14
+ export type BranchAdvanceFailureReason = "request" | "authorization" | "branch-state" | "protected-path" | "stale-head" | "provider" | "verification" | "recovery-required";
15
+ export interface BranchAdvanceCommitAuthor {
16
+ readonly name: string;
17
+ readonly email?: string;
18
+ }
19
+ export type BranchAdvanceChange = {
20
+ readonly operation: "upsert";
21
+ readonly path: string;
22
+ readonly mode: "100644" | "100755";
23
+ readonly content: string;
24
+ } | {
25
+ readonly operation: "delete";
26
+ readonly path: string;
27
+ };
28
+ export interface BranchAdvanceSemanticRequest {
29
+ readonly version: 1;
30
+ readonly issue: number;
31
+ readonly branch: string;
32
+ readonly expectedHead: string;
33
+ readonly changes: readonly BranchAdvanceChange[];
34
+ readonly commit: Readonly<{
35
+ message: string;
36
+ author?: Readonly<BranchAdvanceCommitAuthor>;
37
+ }>;
38
+ /** Required when re-entering from a canonical Change in REVIEW. */
39
+ readonly rework?: ImplementationReworkMarker;
40
+ readonly agent?: SessionAgentMetadata;
41
+ }
42
+ export interface BranchAdvanceExecutionFailure {
43
+ readonly code: "BRANCH_ADVANCE_FAILED";
44
+ readonly reason: BranchAdvanceFailureReason;
45
+ readonly message: string;
46
+ }
47
+ export interface BranchAdvanceSemanticResult {
48
+ readonly version: 1;
49
+ readonly operation: "branch.advance";
50
+ readonly status: "succeeded" | "failed";
51
+ readonly outcome: BranchAdvanceOutcome;
52
+ readonly branch: string;
53
+ readonly expectedHead: string;
54
+ readonly resultingHead?: string;
55
+ readonly provenance?: CapabilityExecutionProvenance;
56
+ readonly failure?: BranchAdvanceExecutionFailure;
57
+ }
58
+ export interface BranchAdvanceDiagnostic {
59
+ readonly code: "BRANCH_ADVANCE_FAILED";
60
+ readonly reason: BranchAdvanceFailureReason;
61
+ readonly path: string;
62
+ readonly message: string;
63
+ }
64
+ export interface BranchAdvanceValidationResult {
65
+ readonly valid: boolean;
66
+ readonly value?: BranchAdvanceSemanticRequest;
67
+ readonly diagnostics: readonly BranchAdvanceDiagnostic[];
68
+ }
69
+ export interface BranchAdvanceCapabilityBroker {
70
+ withBranchAdvanceCapability: <T>(request: {
71
+ readonly target: RepositoryIdentity;
72
+ }, operation: (capability: GitHubBranchAdvanceCapability) => Promise<T>) => Promise<T>;
73
+ }
74
+ export interface ExecuteBranchAdvanceOptions {
75
+ readonly context: AuthenticatedSessionContext;
76
+ readonly broker: BranchAdvanceCapabilityBroker;
77
+ readonly admission: AdmittedSessionCapability;
78
+ readonly request?: unknown;
79
+ readonly now?: Date | number | (() => Date | number);
80
+ }
81
+ export declare function validateBranchAdvanceSemanticRequest(input: unknown): BranchAdvanceValidationResult;
82
+ export declare function executeBranchAdvance(options: ExecuteBranchAdvanceOptions): Promise<BranchAdvanceSemanticResult>;