arkgate 4.7.5 → 4.8.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 (63) hide show
  1. package/CHANGELOG.md +39 -3
  2. package/README.md +24 -12
  3. package/bin/lib/analysis-engine.mjs +6 -6
  4. package/bin/lib/ark-order-error.mjs +18 -0
  5. package/bin/lib/ark-order-facts.mjs +53 -0
  6. package/bin/lib/ark-order-invariants.mjs +160 -0
  7. package/bin/lib/ark-order-sensors.mjs +118 -0
  8. package/bin/lib/ark-order-types.mjs +11 -0
  9. package/bin/lib/ark-run-sensors.mjs +13 -5
  10. package/bin/lib/config-contract.mjs +16 -72
  11. package/bin/lib/config-extras.mjs +151 -0
  12. package/bin/lib/diagnostic-catalog.mjs +7 -2
  13. package/bin/lib/extra-merge-teeth.mjs +8 -2
  14. package/bin/lib/install-migrate.mjs +4 -2
  15. package/bin/lib/managed-upgrade.mjs +1 -1
  16. package/bin/lib/mcp-adoption.mjs +9 -3
  17. package/bin/lib/remediation.mjs +48 -9
  18. package/bin/lib/resolved-candidate-facts.mjs +43 -0
  19. package/bin/lib/skill-install.mjs +17 -2
  20. package/bin/lib/start-preview.mjs +1 -0
  21. package/bin/lib/status-manifest.mjs +1 -1
  22. package/bin/lib/write-path-capabilities.mjs +2 -2
  23. package/dist/{configTypes-CgJimx9o.d.ts → configTypes-BdCe_gvv.d.ts} +22 -6
  24. package/dist/diagnosticCatalog-RiKPUFRG.d.ts +2307 -0
  25. package/dist/eslint/index.cjs +7 -6
  26. package/dist/eslint/index.d.ts +33 -2
  27. package/dist/eslint/index.js +7 -6
  28. package/dist/index.cjs +35 -35
  29. package/dist/index.d.ts +271 -2554
  30. package/dist/index.js +35 -35
  31. package/dist/nestjs/index.cjs +18 -0
  32. package/dist/nestjs/index.d.ts +24 -0
  33. package/dist/nestjs/index.js +18 -0
  34. package/dist/order/index.cjs +1 -0
  35. package/dist/order/index.d.ts +79 -0
  36. package/dist/order/index.js +1 -0
  37. package/dist/runtime/index.cjs +25 -0
  38. package/dist/runtime/index.d.ts +497 -0
  39. package/dist/runtime/index.js +25 -0
  40. package/dist/types-C9KApBzX.d.ts +1237 -0
  41. package/dist/types-DCSlrRnV.d.ts +181 -0
  42. package/docs/README.md +4 -5
  43. package/docs/agent-guide.md +1 -1
  44. package/docs/ai-gates.md +9 -2
  45. package/docs/configuration.md +13 -6
  46. package/docs/develop.md +12 -3
  47. package/docs/diagnostics.md +57 -3
  48. package/docs/package-surface.md +21 -17
  49. package/docs/product-voice.md +2 -1
  50. package/docs/use.md +8 -0
  51. package/package.json +21 -2
  52. package/schemas/ark.config.schema.json +54 -2
  53. package/schemas/ark.resolved-candidate-facts.schema.json +1 -1
  54. package/server.json +2 -2
  55. package/templates/agent-skills/README.md +1 -1
  56. package/templates/agent-skills/ark-adopt/SKILL.md +2 -2
  57. package/templates/agent-skills/ark-contract/SKILL.md +1 -1
  58. package/templates/agent-skills/ark-place/SKILL.md +15 -6
  59. package/templates/agent-skills/ark-runtime/SKILL.md +10 -15
  60. package/templates/skills/ark-adopt.md +2 -2
  61. package/templates/skills/ark-contract.md +1 -1
  62. package/templates/skills/ark-place.md +15 -6
  63. package/templates/skills/ark-runtime.md +10 -15
package/CHANGELOG.md CHANGED
@@ -3,7 +3,43 @@
3
3
  All notable changes to ArkGate (`arkgate`; formerly `ark-runtime-kernel`) are documented here or
4
4
  in the immutable pre-2.0 archive linked below.
5
5
 
6
- ## Unreleased
6
+ ## 4.8.0 — 2026-08-29
7
+
8
+ **Minor** over **4.7.6**. One npm package **`arkgate`**: extras opt-in by config + subpath.
9
+ **ArkOrder** (`arkgate/order`) on schema `1.3`. **ArkRun** kernel is `arkgate/runtime` in
10
+ the same tarball. `@arkgate/runtime` is **deprecated**. Does not close `K01` / `Z09`.
11
+ ArkRules unchanged.
12
+
13
+ **Status: published** (on npm `latest`; see `docs/releases/4.8.0.md`).
14
+
15
+ ### Added
16
+ - **ArkOrder extra (`arkOrder`):** optional, silent when absent. Enforced skip: missing plane, Domain import of `arkgate/order`, generic `update` of ξ.
17
+ - **`arkgate/order`:** `createOrderPlane` with `release` / `project` / `ingest` / `proposeRelease`. Root `arkgate` export stays the gate.
18
+ - **Billing gallery:** `examples/arkorder-billing/` consumer projector (`plan` / `cycle` / `tenancy`).
19
+ - **`arkgate/runtime` and `arkgate/nestjs`:** real subpaths of package `arkgate` (ADR 0031). Root export stays the gate.
20
+
21
+ ### Changed
22
+ - **`@arkgate/runtime` deprecated.** Prefer `import { createStrictArkKernel } from 'arkgate/runtime'`. Companion remains a leftover 0.x `experimental` pin.
23
+ - **Gate waist (WH01 / ADR 0026):** the parity-capable check is config + resolved-candidate-facts → one analysis-result. New doctor advisory surfaces must project existing facts and must not become a second verdict. Does not move shipped compass/coach. Does not close `K01` / `Z09`.
24
+ - **Config schema `1.3`:** additive `arkOrder`. `1.2` configs migrate. Absence is silent.
25
+
26
+ ### Fixed
27
+ - **`K01` honesty:** 4.7.6 shipped workflow OCC / lease / `tx` / `resume` primitives. It does not close in-process bus commit gaps or durable outbox. `K01` stays parked.
28
+ - **Release-surface pin:** ROADMAP / CONTRIBUTING / `q06ReleaseSurfaces` name npm `latest` as **4.7.6** (the #173 merge left the 4.7.5 pin).
29
+ - **CodeQL alert 16:** `scripts/release-npm.mjs` invokes npm with `execFileSync` and an argv array (no shell). Closes `js/shell-command-injection-from-environment`.
30
+ - **Antigravity MCP path:** `--install-agent-gates --tools antigravity` (and compact start) writes official workspace `.agents/mcp_config.json`. Doctor evidence for host `antigravity` no longer treats shared `.mcp.json` as loaded by the host.
31
+
32
+ ## 4.7.6 — 2026-08-26
33
+
34
+ **Patch** over **4.7.5**. Production durability *primitives* for ArkRun (`tx`, OCC, leases, `resume`). Adds those hooks to the workflow engine. **No required config migration.** Companion `@arkgate/runtime` is republished as `0.1.0-experimental.1`.
35
+ Does **not** close `K01` (in-process bus commit gaps and durable outbox remain).
36
+
37
+ **Status: published** (on npm `latest`; see `docs/releases/4.7.6.md`).
38
+
39
+ ### Changed
40
+ - **ArkRun (Workflow Engine):** added `tx` argument to `EventBus` and Sagas for database transactions.
41
+ - **ArkRun (Workflow Engine):** added optimistic concurrency control (`version` increments) and worker lease (`claim()`, `ownerId`, `expiresAt`) primitives.
42
+ - **ArkRun (Workflow Engine):** added `engine.resume()` to rehydrate interrupted sagas without repeating completed steps.
7
43
 
8
44
  ## 4.7.5 — 2026-08-26
9
45
 
@@ -12,7 +48,7 @@ pipeline, product-voice lock, and npm/MCP description use the deny: when the age
12
48
  writes a bad import, the write doesn’t land. **No required config migration.** Does
13
49
  not close Z09 / K01. Companion `@arkgate/runtime` is not republished.
14
50
 
15
- **Status: prepared** (not on npm `latest` until publish; see `docs/releases/4.7.5.md`).
51
+ **Status: published** (on npm `latest`; see `docs/releases/4.7.5.md`).
16
52
 
17
53
  ### Changed
18
54
 
@@ -31,7 +67,7 @@ not close Z09 / K01. Companion `@arkgate/runtime` is not republished.
31
67
  install the companion from the registry. **No required config migration.** Does not
32
68
  close Z09 / K01.
33
69
 
34
- **Status: published** (on npm `latest`; see `docs/releases/4.7.4.md`). Companion:
70
+ **Status: published** (see `docs/releases/4.7.4.md`). Companion:
35
71
  `npm view @arkgate/runtime dist-tags --json`.
36
72
 
37
73
  ### Added
package/README.md CHANGED
@@ -29,12 +29,11 @@ Works with Cursor, Claude, Codex, and Grok.
29
29
 
30
30
  </div>
31
31
 
32
- > **ArkGate 4.7.5** (tree). npm `latest` remains **4.7.4** until this patch publishes.
33
- > Write. Check. Ship. Adopted = required GitHub status running
34
- > `arkgate-check --strict-merge`, or an explicit `advisory-only` stance.
32
+ > **ArkGate 4.8.0** is on npm `latest`. Write. Check. Ship. Adopted = required GitHub
33
+ > status running `arkgate-check --strict-merge`, or an explicit `advisory-only` stance.
35
34
  > Status is compact (`arkgate-check --doctor`; `--all` for Details). Optional **ArkRun**
36
- > (`@arkgate/runtime`, `experimental`) is an in-memory runtime — not Postgres.
37
- > [4.7.5](docs/releases/4.7.5.md) · [4.7.4](docs/releases/4.7.4.md) · [Docs hub](docs/README.md) · [Voice](docs/product-voice.md)
35
+ > (`arkgate/runtime`) is an in-memory runtime — not Postgres. `@arkgate/runtime` is deprecated.
36
+ > [4.8.0](docs/releases/4.8.0.md) · [4.7.6](docs/releases/4.7.6.md) · [Docs hub](docs/README.md) · [Voice](docs/product-voice.md)
38
37
 
39
38
  ---
40
39
 
@@ -98,7 +97,7 @@ once you adopt. The other two are optional.
98
97
  | **While the agent writes** | The write doesn’t land on supported hosts; warning only elsewhere | Always (ArkGate) |
99
98
  | **Before merge** | `arkgate-check` as a **required** CI status | Always (ArkGate) |
100
99
  | **ArkRules** | Optional policies *inside* a layer | When you ask |
101
- | **ArkRun** | Optional experimental runtime (`@arkgate/runtime`) | Off unless you turn it on |
100
+ | **ArkRun** | Optional experimental runtime (`arkgate/runtime`) | Off unless you turn it on |
102
101
 
103
102
  Layers (who may import whom) always run. ArkRules and ArkRun change no inter-layer
104
103
  verdict when absent. Label leftovers **`[Layer]`** vs **`[ArkRules]`**.
@@ -121,6 +120,20 @@ check: [4.3.0 — What ArkGate is / isn't](docs/releases/4.3.0.md#what-arkgate-i
121
120
 
122
121
  ---
123
122
 
123
+ ## Why it exists
124
+
125
+ AI coding agents generate code at unprecedented speeds. However, they tend to take the shortest path to solve a problem. If an agent needs data in a Domain layer, it might directly import a database adapter. Left unchecked, this creates spaghetti code and technical debt at light speed.
126
+
127
+ Traditional linters catch these architectural violations in CI *after* the agent has finished its work, breaking the flow.
128
+
129
+ ArkGate solves this by shifting the check to the exact moment of writing:
130
+
131
+ 1. **Fail fast at the write boundary.** Through IDE hooks and MCP, ArkGate intercepts the file write. If the agent writes a bad import, the write doesn't land. The agent gets immediate feedback and can self-correct before saving to disk.
132
+ 2. **The check is the single source of truth.** A simple `ark.config.json` defines your layers and allowed edges.
133
+ 3. **Honest reporting.** Green imports do not equal elegant design. ArkGate separates structural correctness from design smells, providing an improvement compass to guide leftover design work without blocking the PR.
134
+
135
+ ---
136
+
124
137
  ## Status lights (not settings)
125
138
 
126
139
  ```text
@@ -227,12 +240,10 @@ More: [docs/develop.md](docs/develop.md) · skills install: [docs/agent-guide.md
227
240
  Gates need **no** app runtime. Skip this unless you want an optional runtime
228
241
  for decoupling.
229
242
 
230
- **ArkRun** (`@arkgate/runtime`, npm tag `experimental`) is that runtime. Each
243
+ **ArkRun** (`arkgate/runtime`, same npm package) is that runtime. Each
231
244
  `createStrictArkKernel()` call is a new instance — no process singleton. Data
232
245
  lives in memory and **dies on restart**. Fine for local. Not Postgres, not an
233
- outbox, not Temporal.
234
-
235
- The `arkgate` tarball does not bundle it.
246
+ outbox, not Temporal. `@arkgate/runtime` is deprecated.
236
247
 
237
248
  ### Durability stance
238
249
 
@@ -255,8 +266,9 @@ interfaces for production. Details: [docs/production-hardening.md](docs/producti
255
266
  | Config · package surface · TS | [configuration](docs/configuration.md) · [package-surface](docs/package-surface.md) · [typescript-support](docs/typescript-support.md) |
256
267
  | Brownfield | [docs/brownfield-adoption.md](docs/brownfield-adoption.md) |
257
268
  | Security | [SECURITY.md](SECURITY.md) |
258
- | Current tree (4.7.5) | [docs/releases/4.7.5.md](docs/releases/4.7.5.md) · [CHANGELOG](CHANGELOG.md) |
259
- | Current published (4.7.4 on npm `latest`) | [docs/releases/4.7.4.md](docs/releases/4.7.4.md) |
269
+ | Current published (4.8.0 on npm `latest`) | [docs/releases/4.8.0.md](docs/releases/4.8.0.md) · [CHANGELOG](CHANGELOG.md) |
270
+ | Prior published (4.7.6) | [docs/releases/4.7.6.md](docs/releases/4.7.6.md) |
271
+ | Prior published (4.7.5) | [docs/releases/4.7.5.md](docs/releases/4.7.5.md) |
260
272
  | Prior published (4.7.3) | [docs/releases/4.7.3.md](docs/releases/4.7.3.md) |
261
273
  | Prior published (4.7.2) | [docs/releases/4.7.2.md](docs/releases/4.7.2.md) |
262
274
  | Prior published (4.7.1) | [docs/releases/4.7.1.md](docs/releases/4.7.1.md) |