gh-inari 0.14.1 → 0.15.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 (220) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/README.md +32 -0
  3. package/dist/agent-authority/branch-advance.d.ts +61 -3
  4. package/dist/agent-authority/branch-advance.js +326 -115
  5. package/dist/agent-authority/branch-advance.js.map +1 -1
  6. package/dist/agent-authority/capability-admission.d.ts +7 -7
  7. package/dist/agent-authority/capability-admission.js +7 -17
  8. package/dist/agent-authority/capability-admission.js.map +1 -1
  9. package/dist/agent-authority/session-authentication.d.ts +16 -7
  10. package/dist/agent-authority/session-authentication.js +18 -0
  11. package/dist/agent-authority/session-authentication.js.map +1 -1
  12. package/dist/authorized-execution.d.ts +118 -0
  13. package/dist/authorized-execution.js +658 -0
  14. package/dist/authorized-execution.js.map +1 -0
  15. package/dist/branch-naming.d.ts +16 -0
  16. package/dist/branch-naming.js +67 -6
  17. package/dist/branch-naming.js.map +1 -1
  18. package/dist/cli-core.d.ts +10 -1
  19. package/dist/cli-core.js +676 -34
  20. package/dist/cli-core.js.map +1 -1
  21. package/dist/command-contract.d.ts +10 -6
  22. package/dist/command-contract.js +32 -2
  23. package/dist/command-contract.js.map +1 -1
  24. package/dist/endpoint-api.d.ts +134 -0
  25. package/dist/endpoint-api.js +384 -0
  26. package/dist/endpoint-api.js.map +1 -0
  27. package/dist/endpoint-authorization.d.ts +114 -0
  28. package/dist/endpoint-authorization.js +506 -0
  29. package/dist/endpoint-authorization.js.map +1 -0
  30. package/dist/endpoint-capability.d.ts +30 -0
  31. package/dist/endpoint-capability.js +67 -0
  32. package/dist/endpoint-capability.js.map +1 -0
  33. package/dist/endpoint-http.d.ts +14 -0
  34. package/dist/endpoint-http.js +154 -0
  35. package/dist/endpoint-http.js.map +1 -0
  36. package/dist/endpoint-onboarding-client.d.ts +23 -0
  37. package/dist/endpoint-onboarding-client.js +95 -0
  38. package/dist/endpoint-onboarding-client.js.map +1 -0
  39. package/dist/endpoint-onboarding.d.ts +38 -0
  40. package/dist/endpoint-onboarding.js +173 -0
  41. package/dist/endpoint-onboarding.js.map +1 -0
  42. package/dist/endpoint-read-query.d.ts +30 -0
  43. package/dist/endpoint-read-query.js +81 -0
  44. package/dist/endpoint-read-query.js.map +1 -0
  45. package/dist/endpoint-reconciliation.d.ts +107 -0
  46. package/dist/endpoint-reconciliation.js +275 -0
  47. package/dist/endpoint-reconciliation.js.map +1 -0
  48. package/dist/endpoint-runtime-presence.d.ts +99 -0
  49. package/dist/endpoint-runtime-presence.js +259 -0
  50. package/dist/endpoint-runtime-presence.js.map +1 -0
  51. package/dist/endpoint-webhook.d.ts +124 -0
  52. package/dist/endpoint-webhook.js +525 -0
  53. package/dist/endpoint-webhook.js.map +1 -0
  54. package/dist/endpoint-work-projection.d.ts +145 -0
  55. package/dist/endpoint-work-projection.js +512 -0
  56. package/dist/endpoint-work-projection.js.map +1 -0
  57. package/dist/github/adapter.d.ts +13 -0
  58. package/dist/github/adapter.js +33 -2
  59. package/dist/github/adapter.js.map +1 -1
  60. package/dist/github/app-installation-credential-broker.js +4 -2
  61. package/dist/github/app-installation-credential-broker.js.map +1 -1
  62. package/dist/github/app-provider-credential-broker.d.ts +28 -0
  63. package/dist/github/app-provider-credential-broker.js +9 -0
  64. package/dist/github/app-provider-credential-broker.js.map +1 -0
  65. package/dist/github/app-user-credential-broker.d.ts +61 -0
  66. package/dist/github/app-user-credential-broker.js +587 -0
  67. package/dist/github/app-user-credential-broker.js.map +1 -0
  68. package/dist/github/app-user-credential-store.d.ts +39 -0
  69. package/dist/github/app-user-credential-store.js +166 -0
  70. package/dist/github/app-user-credential-store.js.map +1 -0
  71. package/dist/github/app-user-credential.d.ts +83 -0
  72. package/dist/github/app-user-credential.js +347 -0
  73. package/dist/github/app-user-credential.js.map +1 -0
  74. package/dist/github/direct-app-execution.d.ts +23 -2
  75. package/dist/github/direct-app-execution.js +184 -22
  76. package/dist/github/direct-app-execution.js.map +1 -1
  77. package/dist/github/effect-authorizer.d.ts +14 -1
  78. package/dist/github/effect-authorizer.js +79 -0
  79. package/dist/github/effect-authorizer.js.map +1 -1
  80. package/dist/github/endpoint-human-auth.d.ts +63 -0
  81. package/dist/github/endpoint-human-auth.js +534 -0
  82. package/dist/github/endpoint-human-auth.js.map +1 -0
  83. package/dist/github/index.d.ts +5 -0
  84. package/dist/github/index.js +5 -0
  85. package/dist/github/index.js.map +1 -1
  86. package/dist/github/native-http-transport.js +2 -1
  87. package/dist/github/native-http-transport.js.map +1 -1
  88. package/dist/github/pr-publication-adapter.d.ts +40 -0
  89. package/dist/github/pr-publication-adapter.js +70 -0
  90. package/dist/github/pr-publication-adapter.js.map +1 -0
  91. package/dist/github/release-history-adapter.d.ts +40 -0
  92. package/dist/github/release-history-adapter.js +372 -0
  93. package/dist/github/release-history-adapter.js.map +1 -0
  94. package/dist/hosted-endpoint-oauth.d.ts +35 -0
  95. package/dist/hosted-endpoint-oauth.js +240 -0
  96. package/dist/hosted-endpoint-oauth.js.map +1 -0
  97. package/dist/hosted-endpoint-presence-reader.d.ts +34 -0
  98. package/dist/hosted-endpoint-presence-reader.js +202 -0
  99. package/dist/hosted-endpoint-presence-reader.js.map +1 -0
  100. package/dist/hosted-endpoint-work-reader.d.ts +45 -0
  101. package/dist/hosted-endpoint-work-reader.js +288 -0
  102. package/dist/hosted-endpoint-work-reader.js.map +1 -0
  103. package/dist/hosted-endpoint.d.ts +17 -0
  104. package/dist/hosted-endpoint.js +63 -0
  105. package/dist/hosted-endpoint.js.map +1 -0
  106. package/dist/hosted-worker.d.ts +33 -0
  107. package/dist/hosted-worker.js +254 -133
  108. package/dist/hosted-worker.js.map +1 -1
  109. package/dist/implementation-change-identity.d.ts +5 -1
  110. package/dist/implementation-change-identity.js +51 -2
  111. package/dist/implementation-change-identity.js.map +1 -1
  112. package/dist/implementation-contract.js +8 -2
  113. package/dist/implementation-contract.js.map +1 -1
  114. package/dist/implementation-frontier-composition.d.ts +25 -0
  115. package/dist/implementation-frontier-composition.js +76 -0
  116. package/dist/implementation-frontier-composition.js.map +1 -1
  117. package/dist/index.d.ts +15 -0
  118. package/dist/index.js +15 -0
  119. package/dist/index.js.map +1 -1
  120. package/dist/integration-routing-adapters.d.ts +20 -0
  121. package/dist/integration-routing-adapters.js +43 -0
  122. package/dist/integration-routing-adapters.js.map +1 -0
  123. package/dist/integration-routing.d.ts +75 -0
  124. package/dist/integration-routing.js +427 -0
  125. package/dist/integration-routing.js.map +1 -0
  126. package/dist/local-control/admission-client.d.ts +38 -0
  127. package/dist/local-control/admission-client.js +238 -0
  128. package/dist/local-control/admission-client.js.map +1 -0
  129. package/dist/local-control/admission-server.d.ts +40 -0
  130. package/dist/local-control/admission-server.js +626 -0
  131. package/dist/local-control/admission-server.js.map +1 -0
  132. package/dist/local-control/config.d.ts +76 -0
  133. package/dist/local-control/config.js +568 -0
  134. package/dist/local-control/config.js.map +1 -0
  135. package/dist/local-control/execution-intent.d.ts +22 -0
  136. package/dist/local-control/execution-intent.js +130 -0
  137. package/dist/local-control/execution-intent.js.map +1 -0
  138. package/dist/local-control/executor-client.d.ts +33 -0
  139. package/dist/local-control/executor-client.js +163 -0
  140. package/dist/local-control/executor-client.js.map +1 -0
  141. package/dist/local-control/executor-http.d.ts +27 -0
  142. package/dist/local-control/executor-http.js +304 -0
  143. package/dist/local-control/executor-http.js.map +1 -0
  144. package/dist/local-control/executor-server.d.ts +25 -0
  145. package/dist/local-control/executor-server.js +392 -0
  146. package/dist/local-control/executor-server.js.map +1 -0
  147. package/dist/local-control/identity.d.ts +20 -0
  148. package/dist/local-control/identity.js +61 -0
  149. package/dist/local-control/identity.js.map +1 -0
  150. package/dist/local-control/session-binding.d.ts +74 -0
  151. package/dist/local-control/session-binding.js +346 -0
  152. package/dist/local-control/session-binding.js.map +1 -0
  153. package/dist/local-control/session-launcher.d.ts +38 -0
  154. package/dist/local-control/session-launcher.js +305 -0
  155. package/dist/local-control/session-launcher.js.map +1 -0
  156. package/dist/local-control/session-store.d.ts +33 -0
  157. package/dist/local-control/session-store.js +268 -0
  158. package/dist/local-control/session-store.js.map +1 -0
  159. package/dist/local-runtime-profile.d.ts +53 -0
  160. package/dist/local-runtime-profile.js +215 -0
  161. package/dist/local-runtime-profile.js.map +1 -0
  162. package/dist/markdown-ast.d.ts +36 -0
  163. package/dist/markdown-ast.js +130 -0
  164. package/dist/markdown-ast.js.map +1 -0
  165. package/dist/mcp/apps/inari-app.d.ts +11 -0
  166. package/dist/mcp/apps/inari-app.js +163 -0
  167. package/dist/mcp/apps/inari-app.js.map +1 -0
  168. package/dist/mcp/http-transport.js +1 -2
  169. package/dist/mcp/http-transport.js.map +1 -1
  170. package/dist/mcp/index.d.ts +1 -0
  171. package/dist/mcp/index.js +1 -0
  172. package/dist/mcp/index.js.map +1 -1
  173. package/dist/mcp/server.d.ts +1 -1
  174. package/dist/mcp/server.js +24 -11
  175. package/dist/mcp/server.js.map +1 -1
  176. package/dist/mcp/stdio.js +1 -1
  177. package/dist/mcp/stdio.js.map +1 -1
  178. package/dist/mcp/tools.d.ts +29 -2
  179. package/dist/mcp/tools.js +73 -3
  180. package/dist/mcp/tools.js.map +1 -1
  181. package/dist/pr-publication.d.ts +151 -0
  182. package/dist/pr-publication.js +480 -0
  183. package/dist/pr-publication.js.map +1 -0
  184. package/dist/pull-request-template.d.ts +6 -0
  185. package/dist/pull-request-template.js +123 -187
  186. package/dist/pull-request-template.js.map +1 -1
  187. package/dist/relay/local-runtime-config.d.ts +37 -10
  188. package/dist/relay/local-runtime-config.js +311 -20
  189. package/dist/relay/local-runtime-config.js.map +1 -1
  190. package/dist/relay/local-runtime.d.ts +1 -0
  191. package/dist/relay/local-runtime.js +32 -4
  192. package/dist/relay/local-runtime.js.map +1 -1
  193. package/dist/release-certification.d.ts +1 -1
  194. package/dist/release-history-governance.d.ts +33 -0
  195. package/dist/release-history-governance.js +85 -0
  196. package/dist/release-history-governance.js.map +1 -0
  197. package/dist/release-pr-publication.d.ts +39 -0
  198. package/dist/release-pr-publication.js +63 -0
  199. package/dist/release-pr-publication.js.map +1 -0
  200. package/dist/release-preparation-plan.d.ts +152 -0
  201. package/dist/release-preparation-plan.js +531 -0
  202. package/dist/release-preparation-plan.js.map +1 -0
  203. package/dist/release-preparation.d.ts +66 -0
  204. package/dist/release-preparation.js +502 -0
  205. package/dist/release-preparation.js.map +1 -0
  206. package/dist/repository-setup.d.ts +69 -0
  207. package/dist/repository-setup.js +435 -0
  208. package/dist/repository-setup.js.map +1 -0
  209. package/dist/session-authorized-change-executor.d.ts +26 -24
  210. package/dist/session-authorized-change-executor.js +255 -192
  211. package/dist/session-authorized-change-executor.js.map +1 -1
  212. package/dist/skill.d.ts +1 -1
  213. package/dist/skill.js +3 -1
  214. package/dist/skill.js.map +1 -1
  215. package/dist/worker-http.d.ts +12 -0
  216. package/dist/worker-http.js +31 -0
  217. package/dist/worker-http.js.map +1 -0
  218. package/dist/worker.js +6 -23
  219. package/dist/worker.js.map +1 -1
  220. package/package.json +21 -4
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inari",
3
- "version": "0.14.1",
3
+ "version": "0.15.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
@@ -37,6 +37,21 @@ npx --yes gh-inari --version --json
37
37
 
38
38
  Inari uses the current GitHub authentication and repository context. Use `--repository owner/name` when the target is not the current checkout.
39
39
 
40
+ To connect a repository Runtime, install the Inari GitHub App, then run the
41
+ repository setup Golden Path:
42
+
43
+ ```bash
44
+ inari setup
45
+ # If setup reports trust-pending, open the printed Runtime Authority record
46
+ # in a governed trust PR and merge it on the protected default branch.
47
+ inari setup
48
+ inari runtime connect
49
+ ```
50
+
51
+ Setup stores only a repository-scoped, secret-free Runtime profile. It never
52
+ commits, pushes, approves, or merges Runtime Authority trust; `ready` is
53
+ reported only after canonical protected-ref readiness succeeds.
54
+
40
55
  ## The governed path
41
56
 
42
57
  ```text
@@ -58,6 +73,23 @@ inari change abort <number> --json
58
73
 
59
74
  The normative end-to-end model lives in [Inari Golden Path Architecture](./docs/GOLDEN_PATH_ARCHITECTURE.md).
60
75
 
76
+ ### Integration routing
77
+
78
+ Epic work may use three governed integration levels:
79
+
80
+ ```text
81
+ Epic (epic/<number>-<slug>)
82
+ <- source Issue (issue/<number>-<slug>)
83
+ <- Implementation (feat|fix|refactor|test|docs|chore/<number>-<slug>)
84
+ ```
85
+
86
+ Implementation PRs target the source-Issue branch, source-Issue integration PRs
87
+ target the parent Epic branch, and Epic integration PRs target the governed
88
+ default branch. The canonical routing projection validates relationships and
89
+ uses branch names only as identity/consistency evidence. Sibling Implementations
90
+ may proceed concurrently; merge order is not a dependency DAG. Standalone
91
+ Issues and explicitly legacy in-flight Epic routes remain compatible.
92
+
61
93
  ## Design principles
62
94
 
63
95
  | Principle | Contract |
@@ -1,10 +1,11 @@
1
1
  import { type CapabilityExecutionProvenance } from "./capability-provenance.js";
2
- import type { AuthenticatedSessionContext } from "./session-authentication.js";
2
+ import type { SessionAdmissionAuthorizationContext } from "./session-authentication.js";
3
3
  import type { SessionAgentMetadata } from "./session-bundle.js";
4
4
  import { type ImplementationReworkMarker } from "../implementation-rework.js";
5
+ import type { ImplementationScopeOperation } from "../implementation-contract.js";
5
6
  import { type GitHubBranchAdvanceCapability } from "../github/git-data-capability.js";
6
7
  import type { AdmittedSessionCapability } from "./capability-admission.js";
7
- import type { RepositoryIdentity } from "../github/effect-authorizer.js";
8
+ import { type RepositoryIdentity } from "../github/effect-authorizer.js";
8
9
  export declare const BRANCH_ADVANCE_CONTRACT_VERSION: 1;
9
10
  export declare const BRANCH_ADVANCE_OPERATION: "branch.advance";
10
11
  export declare const BRANCH_ADVANCE_OUTCOMES: readonly ["advanced", "idempotent", "stale", "failed", "recovery-required"];
@@ -72,11 +73,68 @@ export interface BranchAdvanceCapabilityBroker {
72
73
  }, operation: (capability: GitHubBranchAdvanceCapability) => Promise<T>) => Promise<T>;
73
74
  }
74
75
  export interface ExecuteBranchAdvanceOptions {
75
- readonly context: AuthenticatedSessionContext;
76
+ readonly context: SessionAdmissionAuthorizationContext;
76
77
  readonly broker: BranchAdvanceCapabilityBroker;
77
78
  readonly admission: AdmittedSessionCapability;
78
79
  readonly request?: unknown;
79
80
  readonly now?: Date | number | (() => Date | number);
80
81
  }
82
+ export type BranchAdvanceAuthorizedPathOperation = Exclude<ImplementationScopeOperation, "READONLY">;
83
+ export interface BranchAdvanceAuthorizedPath {
84
+ readonly path: string;
85
+ /** The exact Implementation scope operations admitted for this requested path. */
86
+ readonly operations: readonly BranchAdvanceAuthorizedPathOperation[];
87
+ }
88
+ /**
89
+ * Bounded path authorization issued after Session/Implementation Admission.
90
+ * The request digest binds this evidence to the complete signed semantic
91
+ * request without carrying the Session request signature or Session context.
92
+ */
93
+ export interface BranchAdvanceAuthorizationEvidence {
94
+ readonly version: 1;
95
+ readonly requestDigest: string;
96
+ readonly implementation: Readonly<{
97
+ number: number;
98
+ governedBodyDigest: string;
99
+ }>;
100
+ readonly paths: readonly BranchAdvanceAuthorizedPath[];
101
+ }
102
+ export interface BranchAdvanceAuthorizationOptions {
103
+ readonly context: SessionAdmissionAuthorizationContext;
104
+ readonly admission: AdmittedSessionCapability;
105
+ readonly request?: unknown;
106
+ }
107
+ export type BranchAdvanceAuthorizationResult = Readonly<{
108
+ readonly valid: true;
109
+ readonly request: BranchAdvanceSemanticRequest;
110
+ readonly authorization: BranchAdvanceAuthorizationEvidence;
111
+ }> | Readonly<{
112
+ readonly valid: false;
113
+ readonly failure: BranchAdvanceSemanticResult;
114
+ }>;
115
+ export interface ExecuteBranchAdvanceEffectsOptions {
116
+ readonly repository: RepositoryIdentity;
117
+ readonly provenance: CapabilityExecutionProvenance;
118
+ readonly request: unknown;
119
+ readonly authorization: unknown;
120
+ readonly broker: BranchAdvanceCapabilityBroker;
121
+ readonly now?: Date | number | (() => Date | number);
122
+ }
81
123
  export declare function validateBranchAdvanceSemanticRequest(input: unknown): BranchAdvanceValidationResult;
124
+ export interface BranchAdvanceAuthorizationValidationResult {
125
+ readonly valid: boolean;
126
+ readonly authorization?: BranchAdvanceAuthorizationEvidence;
127
+ readonly diagnostics: readonly string[];
128
+ }
129
+ /** Validate the bounded Admission evidence against the exact branch request. */
130
+ export declare function validateBranchAdvanceAuthorizationEvidence(input: unknown, requestInput: unknown): BranchAdvanceAuthorizationValidationResult;
131
+ /**
132
+ * Complete Session, capability, binding, protected-path, and Implementation
133
+ * scope authorization before the post-admission execution boundary. No Git
134
+ * provider capability or mutation is acquired here.
135
+ */
136
+ export declare function authorizeBranchAdvance(options: BranchAdvanceAuthorizationOptions): BranchAdvanceAuthorizationResult;
137
+ /** Execute only provider effects from an Admission-authorized branch request. */
138
+ export declare function executeBranchAdvanceEffects(options: ExecuteBranchAdvanceEffectsOptions): Promise<BranchAdvanceSemanticResult>;
139
+ /** Compatibility composition: authorize first, then share the same provider-effect primitive. */
82
140
  export declare function executeBranchAdvance(options: ExecuteBranchAdvanceOptions): Promise<BranchAdvanceSemanticResult>;