@antomanc/aginit 0.5.1 → 0.6.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.
- package/CHANGELOG.md +14 -0
- package/README.md +13 -10
- package/THIRD_PARTY_NOTICES.md +3 -3
- package/dist/adapters/agent-docs.d.ts.map +1 -1
- package/dist/adapters/agent-docs.js +4 -2
- package/dist/adapters/agent-docs.js.map +1 -1
- package/dist/adapters/agents-md.d.ts +4 -1
- package/dist/adapters/agents-md.d.ts.map +1 -1
- package/dist/adapters/agents-md.js +20 -16
- package/dist/adapters/agents-md.js.map +1 -1
- package/dist/adapters/git.d.ts.map +1 -1
- package/dist/adapters/git.js +0 -6
- package/dist/adapters/git.js.map +1 -1
- package/dist/adapters/tool-ignores.d.ts.map +1 -1
- package/dist/adapters/tool-ignores.js +25 -1
- package/dist/adapters/tool-ignores.js.map +1 -1
- package/dist/adapters/trail.d.ts +15 -0
- package/dist/adapters/{graft.d.ts.map → trail.d.ts.map} +1 -1
- package/dist/adapters/trail.js +68 -0
- package/dist/adapters/trail.js.map +1 -0
- package/dist/cli/capabilities.js +8 -8
- package/dist/cli/doctor.js +8 -8
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/main.js +13 -13
- package/dist/cli/new.d.ts +1 -1
- package/dist/cli/new.js +5 -5
- package/dist/cli/wizard.d.ts +1 -0
- package/dist/cli/wizard.d.ts.map +1 -1
- package/dist/cli/wizard.js +5 -3
- package/dist/cli/wizard.js.map +1 -1
- package/dist/config/defaults.js +1 -1
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/validation.d.ts +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +15 -3
- package/dist/config/validation.js.map +1 -1
- package/dist/detect/index.d.ts +2 -0
- package/dist/detect/index.d.ts.map +1 -1
- package/dist/detect/index.js +15 -2
- package/dist/detect/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/registry/catalog.d.ts.map +1 -1
- package/dist/registry/catalog.js +14 -10
- package/dist/registry/catalog.js.map +1 -1
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.js +5 -5
- package/dist/registry/setup.js +3 -3
- package/dist/registry/types.d.ts +3 -1
- package/dist/registry/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/agent-docs.ts +4 -2
- package/src/adapters/agents-md.ts +23 -16
- package/src/adapters/git.ts +0 -6
- package/src/adapters/tool-ignores.ts +27 -1
- package/src/adapters/trail.ts +94 -0
- package/src/cli/capabilities.ts +6 -6
- package/src/cli/doctor.ts +8 -8
- package/src/cli/main.ts +14 -14
- package/src/cli/new.ts +5 -5
- package/src/cli/wizard.ts +7 -3
- package/src/config/defaults.ts +1 -1
- package/src/config/schema.ts +2 -2
- package/src/config/validation.ts +17 -3
- package/src/detect/index.ts +15 -2
- package/src/index.ts +1 -1
- package/src/registry/catalog.ts +15 -10
- package/src/registry/index.ts +4 -4
- package/src/registry/setup.ts +4 -4
- package/src/registry/types.ts +4 -2
- package/dist/adapters/graft.d.ts +0 -15
- package/dist/adapters/graft.js +0 -58
- package/dist/adapters/graft.js.map +0 -1
- package/src/adapters/graft.ts +0 -82
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.0] - 2026-10-20
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Python projects with ruff configured (`ruff.toml`, `.ruff.toml` or `[tool.ruff]` in `pyproject.toml`) get `ruff check . && ruff format --check .` as their lint command (through `uv run` when `uv.lock` exists), and aginit adds `.agents` and `.claude` to ruff's `extend-exclude` so vendored skill scripts don't fail the project's lint. An existing `extend-exclude` gets advice instead of an edit.
|
|
8
|
+
- The wizard's setup summary names the codebase graph and its telemetry opt-out.
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **Breaking:** the codebase graph is now [Trail](https://github.com/trailhq/Trail-Code) (`@trailhq/trail-code`, bin `trail`), which replaces Graft upstream. `--no-graft` is now `--no-trail` and `--without graft` is `--without trail`. Configs saved with `codebase.graft` or a `graft` capability id load as `trail`. `trail init` migrates repos Graft wired before, and aginit removes Graft's unedited `.ignore` hint. Trail sends anonymous usage stats; opt out with `trail telemetry disable` or `DO_NOT_TRACK=1`.
|
|
13
|
+
- The Bootstrap & First Session section of `AGENTS.md` now lives inside the managed block, so aginit can keep it up to date. An unedited copy left outside the block by older versions is removed; an edited one is kept. `aginit doctor` checks for the managed block.
|
|
14
|
+
- The Task Routing row for `PRODUCT.md` appears only when the file exists or a design capability writes it.
|
|
15
|
+
- The native testing guide follows an existing `tests/` or `test/` directory, and no longer tells agents to keep tests next to the module.
|
|
16
|
+
|
|
3
17
|
## [0.5.1] - 2026-10-15
|
|
4
18
|
|
|
5
19
|
### Added
|
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ aginit sets all of this up the same way every time, and you can re-run it whenev
|
|
|
38
38
|
|---|---|
|
|
39
39
|
| **Instructions** | A lean `AGENTS.md`: invariants, the project's real commands, Karpathy guardrails, a **Task Routing** table and an **Anti-Rationalization** table. Details live in `docs/agents/testing.md`, `ui-verification.md` and `workflows.md`, which agents load only when the task needs them. A one-line `CLAUDE.md` (`@AGENTS.md`) makes Claude Code read it too |
|
|
40
40
|
| **Skills** | One methodology ([Matt Pocock skills](https://github.com/mattpocock/skills) by default, or [Superpowers](https://github.com/obra/superpowers), or none) plus [ponytail](https://github.com/DietrichGebert/ponytail), [karpathy-guidelines](https://github.com/multica-ai/andrej-karpathy-skills) and [humanizer](https://github.com/blader/humanizer). Installed in `.agents/skills/` via the [Skills CLI](https://github.com/vercel-labs/skills), linked into `.claude/skills/` |
|
|
41
|
-
| **Codebase graph** | [
|
|
41
|
+
| **Codebase graph** | [Trail](https://github.com/trailhq/Trail-Code) (formerly Graft): `trail map` and `trail ask` give agents the relevant code spans before they grep, and sessions leave shared learnings in `.trail/learnings/` |
|
|
42
42
|
| **Design** | [Impeccable](https://github.com/pbakaus/impeccable) on web and mobile (`/impeccable init`, `audit`, `polish`). It needs no Node, so it works in Flutter, Swift and Kotlin repos |
|
|
43
43
|
| **UI verification** | [agent-browser](https://github.com/vercel-labs/agent-browser) for web, [agent-device](https://github.com/callstack/agent-device) for iOS Simulator and Android Emulator. Optional: [Chrome DevTools MCP](https://github.com/ChromeDevTools/chrome-devtools-mcp), [BrowserSkill](https://github.com/Tencent/BrowserSkill) |
|
|
44
44
|
| **Testing** | Vitest (+ Playwright with a web framework) for Node projects, the host runner (`flutter test`, `cargo test`, ...) otherwise, and optionally [e2e](https://github.com/tester-army/e2e), natural-language E2E tests with a zero-cost replay cache |
|
|
@@ -63,12 +63,15 @@ and walks you through platform, methodology, design, testing, UI driver, and add
|
|
|
63
63
|
a setup summary before writing any files. Existing projects keep the package manager they
|
|
64
64
|
already use.
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
Trail is installed separately (or skip it with `--no-trail`):
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
-
npm install -g @
|
|
69
|
+
npm install -g @trailhq/trail-code
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
+
Trail sends anonymous usage stats by default. Turn them off with `trail telemetry disable` or
|
|
73
|
+
`DO_NOT_TRACK=1`. Projects set up with Graft move to Trail on the next `aginit init`.
|
|
74
|
+
|
|
72
75
|
## Commands
|
|
73
76
|
|
|
74
77
|
```
|
|
@@ -79,7 +82,7 @@ aginit list Show the capability registry and what this project e
|
|
|
79
82
|
aginit add <id|owner/repo> Enable capabilities (installs skills, refreshes AGENTS.md and docs)
|
|
80
83
|
aginit remove <id> Disable capabilities and remove their skills
|
|
81
84
|
aginit doctor Check the environment and every active capability
|
|
82
|
-
aginit update Update installed skills and rebuild the
|
|
85
|
+
aginit update Update installed skills and rebuild the Trail index
|
|
83
86
|
```
|
|
84
87
|
|
|
85
88
|
Bare `aginit` opens the wizard in a terminal and prints help elsewhere. The wizard detects your stack,
|
|
@@ -88,7 +91,7 @@ Initializing an existing directory preserves its stack; Node-only tools are hidd
|
|
|
88
91
|
`--yes`, to initialize without prompts.
|
|
89
92
|
|
|
90
93
|
Setup flags: `--preset web|cli|generic`, `--framework none|vite|next|existing`,
|
|
91
|
-
`--package-manager pnpm|npm|yarn|bun`, `--dry-run`, `--yes`, `--no-skills`, `--no-
|
|
94
|
+
`--package-manager pnpm|npm|yarn|bun`, `--dry-run`, `--yes`, `--no-skills`, `--no-trail`, `--no-git`.
|
|
92
95
|
|
|
93
96
|
Capability flags (the platform is detected; flags override it):
|
|
94
97
|
|
|
@@ -101,7 +104,7 @@ Capability flags (the platform is detected; flags override it):
|
|
|
101
104
|
| `--ui-driver` | `auto`, `agent-browser`, `agent-device`, `chrome-devtools-mcp`, `browserskill`, `none` |
|
|
102
105
|
| `--addons` | `context-mode`, `worktrunk`, `chrome-devtools-mcp`, `browserskill` (comma-separated) |
|
|
103
106
|
| `--add-skill` | any `owner/repo` skill repository (repeatable) |
|
|
104
|
-
| `--without` | any capability id, e.g. `
|
|
107
|
+
| `--without` | any capability id, e.g. `trail` or `humanizer` (repeatable) |
|
|
105
108
|
|
|
106
109
|
### Examples
|
|
107
110
|
|
|
@@ -133,7 +136,7 @@ aginit list
|
|
|
133
136
|
| --- | --- |
|
|
134
137
|
| `web` | TypeScript and Vitest, with optional Vite or Next.js scaffolding. Playwright is added when a web framework is selected. |
|
|
135
138
|
| `cli` | Node.js/TypeScript CLI with Commander, Picocolors and Vitest. |
|
|
136
|
-
| `generic` | Git, `AGENTS.md`, skills and
|
|
139
|
+
| `generic` | Git, `AGENTS.md`, skills and Trail. Leaves an existing `package.json` untouched. |
|
|
137
140
|
|
|
138
141
|
The web preset's `--framework none` (default) creates a TypeScript baseline without a bundler
|
|
139
142
|
or browser tests. `existing` keeps the framework you already have.
|
|
@@ -180,7 +183,7 @@ dependency versions and test configs, and only adds what's missing. If you alrea
|
|
|
180
183
|
different test runner, aginit adds a separate `test:unit` script instead of touching yours.
|
|
181
184
|
|
|
182
185
|
An existing `AGENTS.md` is preserved. aginit adds its managed block between
|
|
183
|
-
`<!-- aginit:start -->` and `<!-- aginit:end -->`, above
|
|
186
|
+
`<!-- aginit:start -->` and `<!-- aginit:end -->`, above Trail's block, and refreshes only that
|
|
184
187
|
block afterwards. The `docs/agents/` pages carry a marker line; delete it and aginit leaves
|
|
185
188
|
that page to you. Configs from older versions keep loading unchanged. Their capabilities are
|
|
186
189
|
inferred from `skills.sources` and the `codebase`/`browser` switches until you run
|
|
@@ -188,7 +191,7 @@ inferred from `skills.sources` and the `codebase`/`browser` switches until you r
|
|
|
188
191
|
|
|
189
192
|
## Design
|
|
190
193
|
|
|
191
|
-
- **Orchestrates, doesn't vendor.** Skills,
|
|
194
|
+
- **Orchestrates, doesn't vendor.** Skills, Trail, e2e, Vite, Next.js and Playwright come
|
|
192
195
|
from their upstream tools. aginit picks good defaults and runs them. CLIs it does not
|
|
193
196
|
install itself (agent-device, context-mode, `wt`, `bsk`) are checked, and the upstream
|
|
194
197
|
install command is printed.
|
|
@@ -196,7 +199,7 @@ inferred from `skills.sources` and the `codebase`/`browser` switches until you r
|
|
|
196
199
|
- **Honest dry-run.** `--dry-run` lists every planned operation without writing files or
|
|
197
200
|
downloading tools. (Files produced by upstream scaffolders are only known after they run.)
|
|
198
201
|
- **Fails loudly.** Invalid config is reported before any file changes. A failed scaffold
|
|
199
|
-
stops the command; missing
|
|
202
|
+
stops the command; missing Trail, a failed skill install or a failed agent-browser setup
|
|
200
203
|
exits nonzero and keeps the scaffold, so you can fix it and re-run `aginit init`.
|
|
201
204
|
- **Hands off your system.** If the Linux kernel blocks Chrome's sandbox (`No usable
|
|
202
205
|
sandbox!`), aginit tells you the sysctl fix and the narrower `--no-sandbox` option. It
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -14,9 +14,9 @@ Each integrated upstream tool is governed by its respective authors and licenses
|
|
|
14
14
|
|
|
15
15
|
## Codebase graph
|
|
16
16
|
|
|
17
|
-
- **
|
|
18
|
-
- Project: Codebase
|
|
19
|
-
- Author:
|
|
17
|
+
- **Trail** (formerly Graft)
|
|
18
|
+
- Project: Codebase context graph and team learnings CLI (`@trailhq/trail-code`, formerly `@nanonets/graft`)
|
|
19
|
+
- Author: Trail and Graft contributors
|
|
20
20
|
- License: MIT
|
|
21
21
|
- Repository: https://github.com/trailhq/Trail-Code (formerly NanoNets/context-graph-engine)
|
|
22
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-docs.d.ts","sourceRoot":"","sources":["../../src/adapters/agent-docs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAEL,oBAAoB,EAGpB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,EACN,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAQtC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAO,GACrE,cAAc,
|
|
1
|
+
{"version":3,"file":"agent-docs.d.ts","sourceRoot":"","sources":["../../src/adapters/agent-docs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAEL,oBAAoB,EAGpB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,EACN,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAQtC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAO,GACrE,cAAc,CAiBhB;AAED,eAAO,MAAM,QAAQ,QAA8B,CAAC;AACpD,eAAO,MAAM,gBAAgB,uHACoF,CAAC;AAClH,eAAO,MAAM,uBAAuB,uHACkF,CAAC;AAsDvH,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAmBpF;AAED,eAAO,MAAM,UAAU,EAAE,QAAQ,EAAgD,CAAC;AAElF,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAElD;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAS9D;AAOD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,QAAQ,EAAE,CAuBZ;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,QAAQ,EAAE,CAEpE"}
|
|
@@ -16,6 +16,7 @@ export function resolvePlatformStack(config, targetDir) {
|
|
|
16
16
|
}
|
|
17
17
|
export function projectProfile(config, options = {}) {
|
|
18
18
|
const { platform, stack } = resolvePlatformStack(config, options.targetDir);
|
|
19
|
+
const targetDir = options.targetDir ?? '.';
|
|
19
20
|
const active = activeCapabilities(config);
|
|
20
21
|
const ids = new Set(active.map((c) => c.id));
|
|
21
22
|
return {
|
|
@@ -23,11 +24,12 @@ export function projectProfile(config, options = {}) {
|
|
|
23
24
|
stack,
|
|
24
25
|
active,
|
|
25
26
|
has: (id) => ids.has(id),
|
|
26
|
-
commands: projectCommands(
|
|
27
|
+
commands: projectCommands(targetDir, stack, {
|
|
27
28
|
packageManager: config.packageManager,
|
|
28
29
|
scripts: options.scripts
|
|
29
30
|
}),
|
|
30
|
-
e2eDir: e2eDirFor(stack)
|
|
31
|
+
e2eDir: e2eDirFor(stack),
|
|
32
|
+
testDir: ['tests', 'test'].find((dir) => fs.statSync(path.join(targetDir, dir), { throwIfNoEntry: false })?.isDirectory())
|
|
31
33
|
};
|
|
32
34
|
}
|
|
33
35
|
export const DOCS_DIR = path.join('docs', 'agents');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-docs.js","sourceRoot":"","sources":["../../src/adapters/agent-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAElB,OAAO,EACP,SAAS,EAKV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C,wEAAwE;AACxE,MAAM,UAAU,oBAAoB,CAClC,MAAoB,EACpB,SAAkB;IAElB,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpG,OAAO;QACL,QAAQ,EACN,MAAM,CAAC,QAAQ;YACf,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,CAAC;QAC/F,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;KAC5F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,OAAO,GAA6D,EAAE;IAEtE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,OAAO;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"agent-docs.js","sourceRoot":"","sources":["../../src/adapters/agent-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,10 @@ export declare const AGINIT_END_PATTERN: RegExp;
|
|
|
9
9
|
* The part of AGENTS.md aginit keeps in sync with the active capabilities:
|
|
10
10
|
* guardrails, the Task Routing table and the Anti-Rationalization table.
|
|
11
11
|
*/
|
|
12
|
-
export declare function renderAgentsBlock(config: AginitConfig, profile: ProjectProfile,
|
|
12
|
+
export declare function renderAgentsBlock(config: AginitConfig, profile: ProjectProfile, options?: {
|
|
13
|
+
docs?: MicroDoc[];
|
|
14
|
+
targetDir?: string;
|
|
15
|
+
}): string;
|
|
13
16
|
export declare function generateAgentsMarkdown(config: AginitConfig, scripts?: Record<string, string>, targetDir?: string): string;
|
|
14
17
|
/** Insert or refresh the aginit block in an existing AGENTS.md, leaving everything else as written. */
|
|
15
18
|
export declare function mergeAgentsBlock(existing: string, block: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../src/adapters/agents-md.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAqC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAIL,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAUzB,eAAO,MAAM,kBAAkB,qFACgD,CAAC;AAChF,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,QAAuC,CAAC;AACzE,eAAO,MAAM,kBAAkB,QAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../src/adapters/agents-md.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAqC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAIL,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAUzB,eAAO,MAAM,kBAAkB,qFACgD,CAAC;AAChF,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,QAAuC,CAAC;AACzE,eAAO,MAAM,kBAAkB,QAAqC,CAAC;AA6BrE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,MAAM,CA4DR;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CA0CR;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBxE;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;CAAO,GAC3F,OAAO,CAqBT;AAED,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAQT;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIpE"}
|
|
@@ -20,8 +20,11 @@ const BOOTSTRAP_SECTION = [
|
|
|
20
20
|
'When the user asks to "bootstrap this project" or kicks off a new initiative:',
|
|
21
21
|
'1. Understand product intent and ask 2-3 essential questions to resolve ambiguity.',
|
|
22
22
|
'2. Draft or refine canonical context in `PRODUCT.md` and `DESIGN.md` (or `docs/adr/`).',
|
|
23
|
-
'3. Plan in small verifiable increments and implement test-first using installed skills.'
|
|
23
|
+
'3. Plan in small verifiable increments and implement test-first using installed skills.',
|
|
24
|
+
''
|
|
24
25
|
];
|
|
26
|
+
/** Older releases appended the section after the managed block; it now lives inside. */
|
|
27
|
+
const LEGACY_BOOTSTRAP = new RegExp('\\n*' + BOOTSTRAP_SECTION.join('\n').trim().replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '\\n*', 'g');
|
|
25
28
|
/** Placeholder scripts used when AGENTS.md is rendered without a package.json to read. */
|
|
26
29
|
function presetScripts(config) {
|
|
27
30
|
return config.preset === 'generic'
|
|
@@ -37,11 +40,13 @@ const table = (head, rows) => [
|
|
|
37
40
|
* The part of AGENTS.md aginit keeps in sync with the active capabilities:
|
|
38
41
|
* guardrails, the Task Routing table and the Anti-Rationalization table.
|
|
39
42
|
*/
|
|
40
|
-
export function renderAgentsBlock(config, profile,
|
|
43
|
+
export function renderAgentsBlock(config, profile, options = {}) {
|
|
44
|
+
const { docs = plannedMicroDocs(profile), targetDir } = options;
|
|
41
45
|
const hasSkills = config.skills.sources.length > 0;
|
|
42
|
-
const routing = [
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
const routing = [];
|
|
47
|
+
// Only route to PRODUCT.md when it exists or a design capability will write it.
|
|
48
|
+
if ((targetDir && fileExists(path.join(targetDir, 'PRODUCT.md'))) || profile.active.some((c) => c.category === 'design'))
|
|
49
|
+
routing.push(['Product intent, scope, target users', '`PRODUCT.md`']);
|
|
45
50
|
const order = ['design', 'codebase-graph'];
|
|
46
51
|
const rank = (c) => (order.indexOf(c.category) + order.length + 1) % (order.length + 1);
|
|
47
52
|
const direct = profile.active.filter((c) => c.routing).sort((a, b) => rank(a) - rank(b));
|
|
@@ -66,6 +71,7 @@ export function renderAgentsBlock(config, profile, docs = plannedMicroDocs(profi
|
|
|
66
71
|
`(${profile.commands.e2e && profile.has('playwright') ? '`' + profile.commands.e2e + '`' : 'integration or smoke run'}) before marking complete.`);
|
|
67
72
|
const lines = [
|
|
68
73
|
AGINIT_BLOCK_START,
|
|
74
|
+
...BOOTSTRAP_SECTION,
|
|
69
75
|
...(profile.has('karpathy-guidelines')
|
|
70
76
|
? [
|
|
71
77
|
'## Guardrails (karpathy-guidelines)',
|
|
@@ -128,9 +134,7 @@ export function generateAgentsMarkdown(config, scripts, targetDir) {
|
|
|
128
134
|
'## Essential Commands',
|
|
129
135
|
...(commandLines.length ? commandLines : ['- Add the build and test commands here once they exist.']),
|
|
130
136
|
'',
|
|
131
|
-
renderAgentsBlock(config, profile),
|
|
132
|
-
'',
|
|
133
|
-
...BOOTSTRAP_SECTION,
|
|
137
|
+
renderAgentsBlock(config, profile, { targetDir }),
|
|
134
138
|
''
|
|
135
139
|
];
|
|
136
140
|
return sections.join('\n').replace(/\n{3,}/g, '\n\n').trim() + '\n';
|
|
@@ -146,11 +150,11 @@ export function mergeAgentsBlock(existing, block) {
|
|
|
146
150
|
return existing.slice(0, startMatch.index) + block + existing.slice(endOffset);
|
|
147
151
|
}
|
|
148
152
|
}
|
|
149
|
-
// Above
|
|
150
|
-
const
|
|
151
|
-
if (
|
|
152
|
-
const
|
|
153
|
-
return existing.slice(0,
|
|
153
|
+
// Above Trail's block (graft's before it) when there is one, so Trail keeps owning the end of the file.
|
|
154
|
+
const trailMatch = existing.match(/<!--\s*(?:trail|graft):start(?:\b[^>]*)?-->/);
|
|
155
|
+
if (trailMatch && trailMatch.index !== undefined) {
|
|
156
|
+
const trail = trailMatch.index;
|
|
157
|
+
return existing.slice(0, trail).trimEnd() + '\n\n' + block + '\n\n' + existing.slice(trail);
|
|
154
158
|
}
|
|
155
159
|
return existing.trimEnd() + '\n\n' + block + '\n';
|
|
156
160
|
}
|
|
@@ -161,9 +165,9 @@ export function setupAgentsMarkdown(targetDir, config, options = {}) {
|
|
|
161
165
|
const existing = readTextFile(filePath) || '';
|
|
162
166
|
const scripts = readPackageManifest(targetDir)?.scripts;
|
|
163
167
|
const profile = projectProfile(config, { targetDir, scripts });
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
168
|
+
const legacyFree = existing.replace(LEGACY_BOOTSTRAP, '\n\n').replace(/\n+$/, '\n');
|
|
169
|
+
const block = renderAgentsBlock(config, profile, { docs: options.docs, targetDir });
|
|
170
|
+
const updated = mergeAgentsBlock(legacyFree, block);
|
|
167
171
|
if (updated === existing) {
|
|
168
172
|
if (!silent)
|
|
169
173
|
logger.dim('AGENTS.md is up to date, preserving content.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../src/adapters/agents-md.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAwB,WAAW,EAAY,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EAEd,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,eAAe,GAA2B;IAC9C,GAAG,EAAE,KAAK;IACV,eAAe,EAAE,eAAe;IAChC,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAC7B,6EAA6E,CAAC;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,oCAAoC,CAAC;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;AAErE,MAAM,iBAAiB,GAAG;IACxB,8BAA8B;IAC9B,+EAA+E;IAC/E,oFAAoF;IACpF,wFAAwF;IACxF,yFAAyF;
|
|
1
|
+
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../src/adapters/agents-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/adapters/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/adapters/git.ts"],"names":[],"mappings":"AAkCA,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,OAAO,CAAC,CA0DlB"}
|
package/dist/adapters/git.js
CHANGED
|
@@ -29,11 +29,6 @@ coverage/
|
|
|
29
29
|
test-results/
|
|
30
30
|
playwright-report/
|
|
31
31
|
blob-report/
|
|
32
|
-
|
|
33
|
-
# Codebase intelligence cache (graft builds locally, git-ignored)
|
|
34
|
-
/graft/
|
|
35
|
-
# ripgrep hint graft writes next to that cache; regenerated by \`graft build\`
|
|
36
|
-
.ignore
|
|
37
32
|
`;
|
|
38
33
|
export async function setupGit(targetDir, options = {}) {
|
|
39
34
|
const { dryRun = false, silent = false } = options;
|
|
@@ -69,7 +64,6 @@ export async function setupGit(targetDir, options = {}) {
|
|
|
69
64
|
const toAppend = [];
|
|
70
65
|
const essentialRules = [
|
|
71
66
|
'node_modules/',
|
|
72
|
-
'/graft/',
|
|
73
67
|
'.DS_Store',
|
|
74
68
|
'dist/',
|
|
75
69
|
'.env',
|
package/dist/adapters/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/adapters/git.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,iBAAiB,GAAG
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/adapters/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-ignores.d.ts","sourceRoot":"","sources":["../../src/adapters/tool-ignores.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-ignores.d.ts","sourceRoot":"","sources":["../../src/adapters/tool-ignores.ts"],"names":[],"mappings":"AAmKA;yDACyD;AACzD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,MAAM,EAAE,CAUV;AAED,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAElE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { fileExists, readTextFile, safeWriteFile } from '../utils/fs.js';
|
|
3
3
|
import { readPackageManifest } from '../config/validation.js';
|
|
4
|
+
import { ruffConfigFile } from '../detect/index.js';
|
|
4
5
|
// Vendored skill sources ship third-party JS and Markdown that the project's own
|
|
5
6
|
// linters and formatters must not check. No ignore convention is shared across tools,
|
|
6
7
|
// so each tool below says where its ignores live and how to add to them.
|
|
@@ -83,10 +84,33 @@ const biome = {
|
|
|
83
84
|
},
|
|
84
85
|
advice: (file, dirs) => `add ${dirs.map((dir) => `"!!**/${dir}"`).join(', ')} to files.includes in ${file}`
|
|
85
86
|
};
|
|
86
|
-
|
|
87
|
+
/** Ruff: extend-exclude at the top of ruff.toml, or under an existing [tool.ruff] table. */
|
|
88
|
+
const ruff = {
|
|
89
|
+
file: (project) => ruffConfigFile(project.dir),
|
|
90
|
+
missing: (text) => VENDORED_DIRS.filter((dir) => !text.includes(`"${dir}"`) && !text.includes(`'${dir}'`)),
|
|
91
|
+
patch: (text, dirs) => {
|
|
92
|
+
let start = 0;
|
|
93
|
+
if (/^\[tool\.ruff[.\]]/m.test(text)) {
|
|
94
|
+
const header = /^\[tool\.ruff\][ \t]*(#.*)?\r?\n/m.exec(text);
|
|
95
|
+
if (!header)
|
|
96
|
+
return null;
|
|
97
|
+
start = header.index + header[0].length;
|
|
98
|
+
}
|
|
99
|
+
const next = text.slice(start).search(/^\[/m);
|
|
100
|
+
const table = text.slice(start, next === -1 ? undefined : start + next);
|
|
101
|
+
if (/^\s*extend-exclude\s*=/m.test(table))
|
|
102
|
+
return null;
|
|
103
|
+
const line = `extend-exclude = [${dirs.map((dir) => `"${dir}"`).join(', ')}] # vendored agent skills (aginit)\n`;
|
|
104
|
+
return text.slice(0, start) + line + text.slice(start);
|
|
105
|
+
},
|
|
106
|
+
advice: (file, dirs) => `add extend-exclude = [${dirs.map((dir) => `"${dir}"`).join(', ')}] to ` +
|
|
107
|
+
(file === 'pyproject.toml' ? '[tool.ruff] in pyproject.toml' : file)
|
|
108
|
+
};
|
|
109
|
+
const TOOLS = [prettier, eslintIgnore, eslintFlat, biome, ruff];
|
|
87
110
|
function pendingIgnores(targetDir) {
|
|
88
111
|
const manifest = readPackageManifest(targetDir);
|
|
89
112
|
const project = {
|
|
113
|
+
dir: targetDir,
|
|
90
114
|
manifest,
|
|
91
115
|
has: (name) => Boolean(manifest?.dependencies?.[name] || manifest?.devDependencies?.[name]),
|
|
92
116
|
exists: (file) => fileExists(path.join(targetDir, file))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-ignores.js","sourceRoot":"","sources":["../../src/adapters/tool-ignores.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-ignores.js","sourceRoot":"","sources":["../../src/adapters/tool-ignores.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,iFAAiF;AACjF,sFAAsF;AACtF,yEAAyE;AACzE,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAmB7C,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,UAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;AAEjG,sDAAsD;AACtD,SAAS,UAAU,CAAC,IAAY,EAAE,IAAmC;IACnE,OAAO;QACL,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5F,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACpB,MAAM,KAAK,GAAG,qCAAqC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/F,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;KACvF,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG,UAAU,CACzB,iBAAiB,EACjB,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACvB,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACnC;QACE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5E,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9E,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CACzB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,YAAY,GAAG,UAAU,CAC7B,eAAe,EACf,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrB,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;IACvC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAC3F,CAAC;AAEF;iEACiE;AACjE,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAChB,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/F,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC3E,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,KAAK,GACT,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,KAAK,GACT,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM;YACtB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9C,CAAC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACrB,mBAAmB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,IAAI,EAAE;CACvG,CAAC;AAEF,mEAAmE;AACnE,MAAM,KAAK,GAAe;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACrE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7E,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACpB,IAAI,MAA2B,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,kDAAkD;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,CAAC,KAAK,GAAG;YACb,GAAG,MAAM,CAAC,KAAK;YACf,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;SAC7D,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACrF,iFAAiF;QACjF,OAAO,IAAI,CAAC,OAAO,CAAC,kCAAkC,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;YAC7E,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnG,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACrB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,EAAE;CACtF,CAAC;AAEF,4FAA4F;AAC5F,MAAM,IAAI,GAAe;IACvB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9C,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAChB,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IACzF,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACpB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QACxE,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvD,MAAM,IAAI,GAAG,qBAAqB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC;QAClH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACrB,yBAAyB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;QACxE,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC;CACvE,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAEhE,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,OAAO,GAAY;QACvB,GAAG,EAAE,SAAS;QACd,QAAQ;QACR,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;KACzD,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;yDACyD;AACzD,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,OAAO,GAA2C,EAAE;IAEpD,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,IAAI;YAClB,MAAM,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;;YACzE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function isTrailInstalled(): Promise<boolean>;
|
|
2
|
+
export declare function initTrail(targetDir: string, options?: {
|
|
3
|
+
dryRun?: boolean;
|
|
4
|
+
silent?: boolean;
|
|
5
|
+
claude?: boolean;
|
|
6
|
+
}): Promise<boolean>;
|
|
7
|
+
export declare function buildTrail(targetDir: string, options?: {
|
|
8
|
+
dryRun?: boolean;
|
|
9
|
+
silent?: boolean;
|
|
10
|
+
}): Promise<boolean>;
|
|
11
|
+
export declare function uninstallTrail(targetDir: string, options?: {
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
silent?: boolean;
|
|
14
|
+
}): Promise<boolean>;
|
|
15
|
+
//# sourceMappingURL=trail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"trail.d.ts","sourceRoot":"","sources":["../../src/adapters/trail.ts"],"names":[],"mappings":"AAYA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEzD;AAED,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACrE,OAAO,CAAC,OAAO,CAAC,CAuClB;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,OAAO,CAAC,CAkBlB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileExists, readTextFile, safeWriteFile } from '../utils/fs.js';
|
|
4
|
+
import { commandExists, runExecutable } from '../utils/shell.js';
|
|
5
|
+
import { logger } from '../utils/logger.js';
|
|
6
|
+
// The ripgrep hint graft wrote at the repo root; trail keeps its graph in .trail/cache.
|
|
7
|
+
const GRAFT_RIPGREP_HINT = "# graft's cards are gitignored but should stay greppable: ripgrep reads\n" +
|
|
8
|
+
'# .ignore before .gitignore, so this re-admits the tree to search only.\n' +
|
|
9
|
+
'!graft/\ngraft/.cache/\ngraft/.graph/\n';
|
|
10
|
+
export async function isTrailInstalled() {
|
|
11
|
+
return await commandExists('trail');
|
|
12
|
+
}
|
|
13
|
+
export async function initTrail(targetDir, options = {}) {
|
|
14
|
+
const { dryRun = false, silent = false, claude = true } = options;
|
|
15
|
+
const installed = dryRun || (await isTrailInstalled());
|
|
16
|
+
if (!installed) {
|
|
17
|
+
if (!silent) {
|
|
18
|
+
logger.warn('Trail CLI is not installed. Install it with `npm install -g @trailhq/trail-code`, then rerun aginit init.');
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if (!silent)
|
|
23
|
+
logger.dim('Initializing Trail context graph...');
|
|
24
|
+
// Wire Antigravity, AGENTS.md readers and (optionally) Claude Code's in-repo
|
|
25
|
+
// .claude/ + .trail/, without touching global system files (--no-global).
|
|
26
|
+
// trail init also migrates a repo graft wired before.
|
|
27
|
+
const agents = ['antigravity', 'agents', ...(claude ? ['claude'] : [])];
|
|
28
|
+
const res = await runExecutable('trail', ['init', '--no-global', '--agents', ...agents, '-y'], {
|
|
29
|
+
cwd: targetDir,
|
|
30
|
+
dryRun,
|
|
31
|
+
silent: true
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
logger.warn(`Trail initialization warning: ${res.stderr || res.stdout}`);
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
// trail init leaves graft's ripgrep hint behind; drop it when unedited.
|
|
38
|
+
const hint = path.join(targetDir, '.ignore');
|
|
39
|
+
if (!dryRun && readTextFile(hint) === GRAFT_RIPGREP_HINT)
|
|
40
|
+
fs.rmSync(hint);
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
export async function buildTrail(targetDir, options = {}) {
|
|
44
|
+
const { dryRun = false } = options;
|
|
45
|
+
const installed = dryRun || (await isTrailInstalled());
|
|
46
|
+
if (!installed)
|
|
47
|
+
return false;
|
|
48
|
+
const res = await runExecutable('trail', ['build'], { cwd: targetDir, dryRun, silent: true });
|
|
49
|
+
return res.ok;
|
|
50
|
+
}
|
|
51
|
+
export async function uninstallTrail(targetDir, options = {}) {
|
|
52
|
+
const { dryRun = false } = options;
|
|
53
|
+
const installed = dryRun || (await isTrailInstalled());
|
|
54
|
+
if (installed) {
|
|
55
|
+
await runExecutable('trail', ['uninstall'], { cwd: targetDir, dryRun, silent: true });
|
|
56
|
+
}
|
|
57
|
+
// Also clean up AGENTS.md fenced section if any remain (graft's included)
|
|
58
|
+
const agentsPath = path.join(targetDir, 'AGENTS.md');
|
|
59
|
+
if (fileExists(agentsPath)) {
|
|
60
|
+
const content = readTextFile(agentsPath) || '';
|
|
61
|
+
const cleaned = content
|
|
62
|
+
.replace(/<!-- (trail|graft):start -->[\s\S]*?<!-- \1:end -->\n?/g, '')
|
|
63
|
+
.trim();
|
|
64
|
+
safeWriteFile(agentsPath, cleaned + '\n', { overwrite: true, dryRun });
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=trail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trail.js","sourceRoot":"","sources":["../../src/adapters/trail.ts"],"names":[],"mappings":"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"}
|