arkgate 4.8.4 → 4.8.6
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.
- package/CHANGELOG.md +69 -2
- package/README.md +20 -11
- package/bin/lib/agent-homes.mjs +41 -6
- package/bin/lib/analysis-engine.mjs +8 -8
- package/bin/lib/ark-order-invariants.mjs +199 -13
- package/bin/lib/ark-order-sensors.mjs +4 -0
- package/bin/lib/ark-order-types.mjs +3 -0
- package/bin/lib/check-args.mjs +2 -0
- package/bin/lib/diagnostic-catalog.mjs +7 -3
- package/bin/lib/first-run-help.mjs +4 -4
- package/bin/lib/remediation.mjs +20 -5
- package/bin/lib/skill-catalog-apply.mjs +18 -1
- package/bin/lib/skill-install.mjs +4 -3
- package/bin/lib/upgrade-whats-new.mjs +1 -1
- package/dist/{diagnosticCatalog-DgTs0abp.d.ts → diagnosticCatalog-D_DI7qrZ.d.ts} +1 -1
- package/dist/eslint/index.cjs +5 -5
- package/dist/eslint/index.js +5 -5
- package/dist/index.cjs +17 -17
- package/dist/index.d.ts +5 -3
- package/dist/index.js +13 -13
- package/dist/nestjs/index.cjs +5 -5
- package/dist/nestjs/index.d.ts +1 -1
- package/dist/nestjs/index.js +5 -5
- package/dist/order/index.cjs +1 -1
- package/dist/order/index.d.ts +69 -9
- package/dist/order/index.js +1 -1
- package/dist/runtime/index.cjs +15 -15
- package/dist/runtime/index.d.ts +27 -4
- package/dist/runtime/index.js +15 -15
- package/dist/{types-D95drJ3_.d.ts → types-DrqsOiTY.d.ts} +21 -6
- package/docs/README.md +6 -4
- package/docs/agent-guide.md +6 -4
- package/docs/ai-gates.md +18 -4
- package/docs/arkorder.md +228 -0
- package/docs/configuration.md +14 -5
- package/docs/develop.md +10 -4
- package/docs/diagnostics.md +41 -4
- package/docs/enthusiast/how-to-agent-gates.md +1 -1
- package/docs/package-surface.md +14 -9
- package/docs/product-voice.md +3 -3
- package/docs/use.md +1 -1
- package/package.json +2 -1
- package/server.json +2 -2
- package/templates/agent-skills/README.md +1 -1
- package/templates/agent-skills/ark-adopt/SKILL.md +4 -4
- package/templates/agent-skills/ark-architect/SKILL.md +1 -1
- package/templates/agent-skills/ark-autopilot/SKILL.md +4 -4
- package/templates/agent-skills/ark-contract/SKILL.md +1 -1
- package/templates/agent-skills/ark-coverage/SKILL.md +3 -2
- package/templates/agent-skills/ark-explain/SKILL.md +3 -2
- package/templates/agent-skills/ark-explore/SKILL.md +3 -2
- package/templates/agent-skills/ark-fix/SKILL.md +1 -1
- package/templates/agent-skills/ark-loop/SKILL.md +1 -1
- package/templates/agent-skills/ark-place/SKILL.md +8 -8
- package/templates/agent-skills/ark-runtime/SKILL.md +3 -0
- package/templates/agent-skills/ark-think/SKILL.md +2 -2
- package/templates/agent-skills/ark-upgrade/SKILL.md +3 -3
- package/templates/skills/ark-adopt.md +4 -4
- package/templates/skills/ark-architect.md +1 -1
- package/templates/skills/ark-autopilot.md +4 -4
- package/templates/skills/ark-contract.md +1 -1
- package/templates/skills/ark-coverage.md +3 -2
- package/templates/skills/ark-explain.md +3 -2
- package/templates/skills/ark-explore.md +3 -2
- package/templates/skills/ark-fix.md +1 -1
- package/templates/skills/ark-loop.md +1 -1
- package/templates/skills/ark-place.md +8 -8
- package/templates/skills/ark-runtime.md +3 -0
- package/templates/skills/ark-think.md +2 -2
- package/templates/skills/ark-upgrade.md +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,9 +3,76 @@
|
|
|
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
|
+
## 4.8.6 — 2026-08-31
|
|
7
|
+
|
|
8
|
+
**Patch** over **4.8.5**. Phase **LV** — ArkOrder valved loop. First `release()`
|
|
9
|
+
freezes ξ; later pattern change is `proposeRelease` then `apply`. σ identity is
|
|
10
|
+
not ξ identity. ingest returns a closed residual. Capacity is data. ArkRun
|
|
11
|
+
carries the decision tape. **No required config migration.** Does not close
|
|
12
|
+
`K01` / `Z09`. No `/ark-order` skill. Do not npm-publish from this item until
|
|
13
|
+
the maintainer tag.
|
|
14
|
+
|
|
15
|
+
**Status: prepared** (tree ready; npm `latest` remains **4.8.5** until publish).
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **`apply(ProposeResult)`** on `createOrderPlane`. Unvalved second freeze of a
|
|
19
|
+
different ξ fails `ARKORDER_UNVALVED_RELEASE` at runtime (not a lexical sensor).
|
|
20
|
+
- **`xiHash` / `sigmaHash` / `refreshSigma`** — saldo refresh does not mint a pattern.
|
|
21
|
+
- **Ingest residual** `absorb | escalate_up | hold` bound to `xiHash` + event
|
|
22
|
+
identity. Closed `reasonCode`: `not-in-pattern` | `stale-sigma` | `pack` |
|
|
23
|
+
`capacity`. `proposed_patch` only on `escalate_up`. `IngestEscalate.target` remains.
|
|
24
|
+
- **Capacity pack as data** (`kind` / `sigmaKey` / `payloadKey` / `op`). No user
|
|
25
|
+
predicates. Over-cap is residual, not a homemade kind.
|
|
26
|
+
- **ArkRun decision tape** on the information package (`{ xiHash, event, residual }`).
|
|
27
|
+
Component snapshot API unchanged. `shadow` / `compare` / `replay` in-process.
|
|
28
|
+
- **`ReleaseStore` port** with in-memory default. Optional catalog digest keyed by
|
|
29
|
+
`catalogReleaseId`. Not durable. Not K01.
|
|
30
|
+
- Thin gallery bridge: absorb may `send`; `escalate_up` human may `raises`.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- Public sentence: **ArkOrder freezes the pattern through a valve. ArkRun is how
|
|
34
|
+
the residual travels.** Skills `/ark-adopt` `/ark-place` `/ark-autopilot` deepen.
|
|
35
|
+
Doctor / status remain `notAScore`.
|
|
36
|
+
|
|
37
|
+
## 4.8.5 — 2026-08-31
|
|
38
|
+
|
|
39
|
+
**Patch** over **4.8.4**. Phase **XP** (ArkOrder × ArkRun) plus Antigravity skill
|
|
40
|
+
refresh. ArkOrder is a **library plus sensors, not a service** — that sentence
|
|
41
|
+
now has a canonical page. The runtime half (shadow / replay / compare) is
|
|
42
|
+
ArkRun and in-memory. **No required config migration.** Does not close `K01` /
|
|
43
|
+
`Z09`.
|
|
44
|
+
|
|
45
|
+
**Status: published** (on npm `latest`; see `docs/releases/4.8.5.md`).
|
|
46
|
+
|
|
47
|
+
### Added
|
|
48
|
+
- **`docs/arkorder.md`:** named APIs adopters were redesigning (`createOrderPlane`,
|
|
49
|
+
`IngestEscalate`, `Projector`, `maxXiKeys`, `ProposeResult`, `XiSchema`,
|
|
50
|
+
`xiKeys`, four verbs). Ships in the npm tarball. [ADR 0033](docs/adr/0033-arkorder-runtime-half-is-arkrun.md):
|
|
51
|
+
shadow/replay/provenance belong to ArkRun.
|
|
52
|
+
- **Information budget** (`createOrderPlane({ informationBudget })`, not a
|
|
53
|
+
config key) — a scale may not observe a denied kind
|
|
54
|
+
(`ARKORDER_INFORMATION_BUDGET`).
|
|
55
|
+
- **σ freshness, never ξ** — `createOrderPlane({ sigmaMaxAgeMs })` /
|
|
56
|
+
`σ.freshUntil`; age falls back to `release.releasedAt` when σ has no
|
|
57
|
+
timestamp. ξ keys named ttl/freshUntil/maxAge fail
|
|
58
|
+
(`ARKORDER_XI_TTL`, `ARKORDER_STALE_SIGMA`).
|
|
59
|
+
- **`IngestEscalate.target`** including `human`.
|
|
60
|
+
- **ArkRun** `shadowInformationPackage` / `compareInformationPackages` /
|
|
61
|
+
`replayInformationPackages` — in-memory, not a bus, not durable.
|
|
62
|
+
- **`--antigravity-home`:** monotonic install into `$ANTIGRAVITY_HOME/skills`
|
|
63
|
+
(default `~/.gemini/config/skills`). `--agent-homes` includes it. Unlike
|
|
64
|
+
Claude/Grok homes, this catalog is the machine floor for every workspace.
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
- Extra activation is one shape (`mode` + `managedLayers`). Roots stay distinct:
|
|
68
|
+
`arkOrder.planeRoots` vs `arkRun.kernelRoots` (`compositionRoots` alias).
|
|
69
|
+
`ark-check --sensors` lists both extras in one table.
|
|
70
|
+
- Default `--install-agent-gates` host set includes `antigravity` when nothing
|
|
71
|
+
is detected.
|
|
72
|
+
|
|
6
73
|
## 4.8.4 — 2026-08-30
|
|
7
74
|
|
|
8
|
-
**Status:
|
|
75
|
+
**Status: published** (see `docs/releases/4.8.4.md`).
|
|
9
76
|
|
|
10
77
|
**Patch** over **4.8.3**. Invariant coverage stops hiding its own limits: the scan budget and the
|
|
11
78
|
test globs are config, every discarded file is counted in the diagnostic, and coverage stops
|
|
@@ -249,7 +316,7 @@ repo paths living in strings, comments and docstrings that a rename left behind.
|
|
|
249
316
|
|
|
250
317
|
**Patch** over **4.8.2**. Persistence writes in a use-case skip the aggregate (`writes-via-aggregate`). ArkOrder **`xiKeys`** names the slow product decisions; a managed-layer Prisma/pg write of those keys is `ARKORDER_XI_FIELD_WRITE`. Dead sensors (`too-many-params`, `ingest-writes-xi`) now emit. No new skill names. Does not close `K01` / `Z09`. **No required config migration.**
|
|
251
318
|
|
|
252
|
-
**Status: published** (
|
|
319
|
+
**Status: published** (see `docs/releases/4.8.3.md`).
|
|
253
320
|
|
|
254
321
|
### Added
|
|
255
322
|
- **`writes-via-aggregate`:** tier-1 structure sensor (ADR 0032). Direct evidence = persistence driver import **and** a write token (`.insert` / `.create` / `INSERT INTO` / …). Default advisory; promotable. Absence of the rule is silent.
|
package/README.md
CHANGED
|
@@ -29,13 +29,15 @@ Works with Cursor, Claude, Codex, and Grok.
|
|
|
29
29
|
|
|
30
30
|
</div>
|
|
31
31
|
|
|
32
|
-
> **ArkGate 4.8.
|
|
32
|
+
> **ArkGate 4.8.5** is on npm `latest`. This tree is **4.8.6** (prepared patch; not published).
|
|
33
|
+
> Write. Check. Ship. Adopted = required GitHub
|
|
33
34
|
> status running `arkgate-check --strict-merge`, or an explicit `advisory-only` stance.
|
|
34
35
|
> Status is compact (`arkgate-check --doctor`; `--all` for Details). Optional **ArkRun**
|
|
35
36
|
> (`arkgate/runtime`) is an in-memory runtime — not Postgres. Optional **ArkOrder**
|
|
36
|
-
> (`arkgate/order`) stops the agent rewriting the few slow product decisions as CRUD
|
|
37
|
+
> (`arkgate/order`) stops the agent rewriting the few slow product decisions as CRUD;
|
|
38
|
+
> later pattern change is `proposeRelease` then `apply`.
|
|
37
39
|
> `@arkgate/runtime` is deprecated.
|
|
38
|
-
> [4.8.4](docs/releases/4.8.4.md) · [4.8.3](docs/releases/4.8.3.md) · [4.8.2](docs/releases/4.8.2.md) · [4.8.1](docs/releases/4.8.1.md) · [4.8.0](docs/releases/4.8.0.md) · [Docs hub](docs/README.md) · [Voice](docs/product-voice.md)
|
|
40
|
+
> [4.8.6](docs/releases/4.8.6.md) · [4.8.5](docs/releases/4.8.5.md) · [4.8.4](docs/releases/4.8.4.md) · [4.8.3](docs/releases/4.8.3.md) · [4.8.2](docs/releases/4.8.2.md) · [4.8.1](docs/releases/4.8.1.md) · [4.8.0](docs/releases/4.8.0.md) · [Docs hub](docs/README.md) · [Voice](docs/product-voice.md)
|
|
39
41
|
|
|
40
42
|
---
|
|
41
43
|
|
|
@@ -104,7 +106,7 @@ once you adopt. The other three are optional.
|
|
|
104
106
|
| **Before merge** | `arkgate-check` as a **required** CI status | Always (ArkGate) |
|
|
105
107
|
| **ArkRules** | Optional policies *inside* a layer | When you ask |
|
|
106
108
|
| **ArkRun** | Optional experimental runtime (`arkgate/runtime`) | Off unless you turn it on |
|
|
107
|
-
| **ArkOrder** | Stops the agent rewriting the few slow product decisions as CRUD (`arkgate/order`) | Off unless you turn it on |
|
|
109
|
+
| **ArkOrder** | Stops the agent rewriting the few slow product decisions as CRUD (`arkgate/order`). Valve: first `release()`, later ξ is `proposeRelease` then `apply` | Off unless you turn it on |
|
|
108
110
|
|
|
109
111
|
Layers (who may import whom) always run. ArkRules, ArkRun, and ArkOrder change no
|
|
110
112
|
inter-layer verdict when absent. Label leftovers **`[Layer]`** vs **`[ArkRules]`** vs
|
|
@@ -238,8 +240,8 @@ npx arkgate-check --path-drift --base-ref origin/main # stale paths in strings
|
|
|
238
240
|
npx arkgate-check --sensors # which sensors can EVER be enforced, and which of your rules can be promoted
|
|
239
241
|
npx arkgate-check --promote # what enforcing each advisory rule would cost, from one run
|
|
240
242
|
npx arkgate-check --strict-merge # CI / required status
|
|
241
|
-
npx arkgate-check --install-agent-gates --tools claude,cursor,codex,grok
|
|
242
|
-
# optional: refresh shared home skills (Claude/Grok/Codex; never downgrades)
|
|
243
|
+
npx arkgate-check --install-agent-gates --tools claude,cursor,codex,grok,antigravity
|
|
244
|
+
# optional: refresh shared home skills (Claude/Grok/Antigravity/Codex; never downgrades)
|
|
243
245
|
# npx arkgate-check --install-agent-gates --skills-only --agent-homes --force
|
|
244
246
|
# optional: same 13 skills via Agent Skills ecosystem (no new names)
|
|
245
247
|
# npx skills add ./node_modules/arkgate/templates/agent-skills
|
|
@@ -280,14 +282,18 @@ because “what may be the plan” was never a rule.
|
|
|
280
282
|
|
|
281
283
|
**ArkOrder** (`arkgate/order`) is that rule. Off unless you add `arkOrder`.
|
|
282
284
|
Name the slow keys (`xiKeys`: plan, protocol, cost-code bound — not `projectId`).
|
|
283
|
-
Posting an invoice is absorbed. Changing plan is
|
|
284
|
-
|
|
285
|
-
|
|
285
|
+
Posting an invoice is absorbed. Changing plan is `proposeRelease` then `apply`.
|
|
286
|
+
`refreshSigma`; ingest residual `absorb | escalate_up | hold` + `reasonCode`;
|
|
287
|
+
capacity pack as data; in-memory `ReleaseStore`; `ingestTravelAction`; ArkRun
|
|
288
|
+
`decisionTape`. A generic `update` of the plan does not land. A use-case that
|
|
289
|
+
PATCHes those keys through Prisma is named. Same npm package.
|
|
286
290
|
In-memory. Not durable. Does not replace ArkRun.
|
|
291
|
+
**ArkOrder freezes the pattern through a valve. ArkRun is how the residual travels.**
|
|
287
292
|
|
|
288
293
|
Copy [examples/arkorder-billing/](examples/arkorder-billing/) and rename the
|
|
289
294
|
three keys. Compact starters leave it off. Details:
|
|
290
|
-
[
|
|
295
|
+
[ArkOrder](docs/arkorder.md) · [configuration](docs/configuration.md) ·
|
|
296
|
+
[package surface](docs/package-surface.md).
|
|
291
297
|
|
|
292
298
|
---
|
|
293
299
|
|
|
@@ -303,7 +309,10 @@ three keys. Compact starters leave it off. Details:
|
|
|
303
309
|
| Config · package surface · TS | [configuration](docs/configuration.md) · [package-surface](docs/package-surface.md) · [typescript-support](docs/typescript-support.md) |
|
|
304
310
|
| Brownfield | [docs/brownfield-adoption.md](docs/brownfield-adoption.md) |
|
|
305
311
|
| Security | [SECURITY.md](SECURITY.md) |
|
|
306
|
-
|
|
|
312
|
+
| Tree prepared (4.8.6, not published) | [docs/releases/4.8.6.md](docs/releases/4.8.6.md) · [CHANGELOG](CHANGELOG.md) |
|
|
313
|
+
| Current published (4.8.5 on npm `latest`) | [docs/releases/4.8.5.md](docs/releases/4.8.5.md) · [CHANGELOG](CHANGELOG.md) |
|
|
314
|
+
| Prior published (4.8.4) | [docs/releases/4.8.4.md](docs/releases/4.8.4.md) |
|
|
315
|
+
| Prior published (4.8.3) | [docs/releases/4.8.3.md](docs/releases/4.8.3.md) |
|
|
307
316
|
| Prior published (4.8.2) | [docs/releases/4.8.2.md](docs/releases/4.8.2.md) |
|
|
308
317
|
| Prior published (4.8.1) | [docs/releases/4.8.1.md](docs/releases/4.8.1.md) |
|
|
309
318
|
| Prior published (4.8.0) | [docs/releases/4.8.0.md](docs/releases/4.8.0.md) |
|
package/bin/lib/agent-homes.mjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared agent home skill catalogs (Claude / Grok), Codex-parity
|
|
3
|
-
* Repo catalogs stay per-project; these homes are the
|
|
2
|
+
* Shared agent home skill catalogs (Claude / Grok / Antigravity), Codex-parity
|
|
3
|
+
* monotonic install. Repo catalogs stay per-project; these homes are the
|
|
4
|
+
* machine floor (never downgrade). Antigravity's official global catalog is
|
|
5
|
+
* `~/.gemini/config/skills` — not pruned when a project `.agents/skills` exists.
|
|
4
6
|
*/
|
|
5
7
|
import fs from 'node:fs';
|
|
6
8
|
import os from 'node:os';
|
|
@@ -23,7 +25,7 @@ import {
|
|
|
23
25
|
skillInstallLine,
|
|
24
26
|
} from './skill-write.mjs';
|
|
25
27
|
|
|
26
|
-
/** @typedef {'claude'|'grok'} AgentHomeHost */
|
|
28
|
+
/** @typedef {'claude'|'grok'|'antigravity'} AgentHomeHost */
|
|
27
29
|
|
|
28
30
|
const HOSTS = {
|
|
29
31
|
claude: {
|
|
@@ -40,6 +42,14 @@ const HOSTS = {
|
|
|
40
42
|
defaultDirName: '.grok',
|
|
41
43
|
flag: '--grok-home',
|
|
42
44
|
},
|
|
45
|
+
antigravity: {
|
|
46
|
+
id: 'antigravity',
|
|
47
|
+
label: 'Antigravity',
|
|
48
|
+
envKey: 'ANTIGRAVITY_HOME',
|
|
49
|
+
// Official global catalog is ~/.gemini/config/skills (docs/skills).
|
|
50
|
+
defaultDirName: path.join('.gemini', 'config'),
|
|
51
|
+
flag: '--antigravity-home',
|
|
52
|
+
},
|
|
43
53
|
};
|
|
44
54
|
|
|
45
55
|
export function agentHomeHostIds() {
|
|
@@ -62,6 +72,18 @@ export function grokSkillsDir(env = process.env, homeDir = os.homedir()) {
|
|
|
62
72
|
return path.join(grokHomeDir(env, homeDir), 'skills');
|
|
63
73
|
}
|
|
64
74
|
|
|
75
|
+
export function antigravityHomeDir(env = process.env, homeDir = os.homedir()) {
|
|
76
|
+
return resolveHomeDir(HOSTS.antigravity, env, homeDir);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function antigravitySkillsDir(env = process.env, homeDir = os.homedir()) {
|
|
80
|
+
return path.join(antigravityHomeDir(env, homeDir), 'skills');
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function usesDefaultAntigravityHome(env = process.env, homeDir = os.homedir()) {
|
|
84
|
+
return usesDefaultHome(HOSTS.antigravity, env, homeDir);
|
|
85
|
+
}
|
|
86
|
+
|
|
65
87
|
export function usesDefaultClaudeHome(env = process.env, homeDir = os.homedir()) {
|
|
66
88
|
return usesDefaultHome(HOSTS.claude, env, homeDir);
|
|
67
89
|
}
|
|
@@ -85,7 +107,8 @@ function usesDefaultHome(spec, env, homeDir) {
|
|
|
85
107
|
}
|
|
86
108
|
|
|
87
109
|
function skillsDirFor(host, env = process.env) {
|
|
88
|
-
|
|
110
|
+
const spec = HOSTS[host];
|
|
111
|
+
return path.join(resolveHomeDir(spec, env), 'skills');
|
|
89
112
|
}
|
|
90
113
|
|
|
91
114
|
function readHomeCatalogFloor(skillsDir) {
|
|
@@ -124,7 +147,7 @@ function homeInPlay(parity, catalogState) {
|
|
|
124
147
|
}
|
|
125
148
|
|
|
126
149
|
/**
|
|
127
|
-
* Detect Claude/Grok user-home ark-* catalogs that lag this package.
|
|
150
|
+
* Detect Claude/Grok/Antigravity user-home ark-* catalogs that lag this package.
|
|
128
151
|
* Absent homes are not debt. Stamp-only body-match is not content-behind
|
|
129
152
|
* (assessSkillCatalogParity already treats identity match as current).
|
|
130
153
|
*
|
|
@@ -199,11 +222,13 @@ export function detectAgentHomeGaps(root, env = process.env) {
|
|
|
199
222
|
/**
|
|
200
223
|
* Claude home is loaded by Claude Code and often by Cursor. Treat both as in-session.
|
|
201
224
|
* Grok home is urgent only on a Grok session (or when ARK_ACTIVE_HOST=grok).
|
|
225
|
+
* Antigravity global catalog is urgent on an Antigravity session (agy / ANTIGRAVITY).
|
|
202
226
|
*/
|
|
203
227
|
export function agentHomeConcernIsActive(host, env = process.env) {
|
|
204
228
|
const active = detectActiveAgentHost(env);
|
|
205
229
|
if (host === 'claude') return active === 'claude' || active === 'cursor' || !active;
|
|
206
230
|
if (host === 'grok') return active === 'grok' || !active;
|
|
231
|
+
if (host === 'antigravity') return active === 'antigravity' || !active;
|
|
207
232
|
return true;
|
|
208
233
|
}
|
|
209
234
|
|
|
@@ -223,6 +248,7 @@ export function agentHomeRefreshCommand(root, gap) {
|
|
|
223
248
|
* force?: boolean,
|
|
224
249
|
* claudeHome?: boolean,
|
|
225
250
|
* grokHome?: boolean,
|
|
251
|
+
* antigravityHome?: boolean,
|
|
226
252
|
* agentHomes?: boolean,
|
|
227
253
|
* json?: boolean,
|
|
228
254
|
* env?: NodeJS.ProcessEnv,
|
|
@@ -233,13 +259,22 @@ export function installRequestedAgentHomes(args) {
|
|
|
233
259
|
const env = args.env ?? process.env;
|
|
234
260
|
const wantClaude = Boolean(args.claudeHome || args.agentHomes);
|
|
235
261
|
const wantGrok = Boolean(args.grokHome || args.agentHomes);
|
|
236
|
-
|
|
262
|
+
const wantAntigravity = Boolean(args.antigravityHome || args.agentHomes);
|
|
263
|
+
if (!wantClaude && !wantGrok && !wantAntigravity) return [];
|
|
237
264
|
const skills = args.skills ?? skillTemplates();
|
|
238
265
|
const version = args.version ?? arkPackageVersion();
|
|
239
266
|
const installed = [];
|
|
240
267
|
const targets = [
|
|
241
268
|
wantClaude ? { host: 'claude', spec: HOSTS.claude, dir: claudeSkillsDir(env), usesDefault: usesDefaultClaudeHome(env) } : null,
|
|
242
269
|
wantGrok ? { host: 'grok', spec: HOSTS.grok, dir: grokSkillsDir(env), usesDefault: usesDefaultGrokHome(env) } : null,
|
|
270
|
+
wantAntigravity
|
|
271
|
+
? {
|
|
272
|
+
host: 'antigravity',
|
|
273
|
+
spec: HOSTS.antigravity,
|
|
274
|
+
dir: antigravitySkillsDir(env),
|
|
275
|
+
usesDefault: usesDefaultAntigravityHome(env),
|
|
276
|
+
}
|
|
277
|
+
: null,
|
|
243
278
|
].filter(Boolean);
|
|
244
279
|
|
|
245
280
|
for (const target of targets) {
|