@garaje/base 0.1.0 → 0.1.2
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/README.md +59 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,10 +1,61 @@
|
|
|
1
1
|
# @garaje/base
|
|
2
2
|
|
|
3
|
-
The
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
The **agent-side substrate** for the [garaje](https://www.npmjs.com/package/garaje)
|
|
4
|
+
framework, distributed as a [pi](https://pi.dev) package.
|
|
5
|
+
|
|
6
|
+
A garaje runs the pi coding agent against your codebases; `@garaje/base` is what
|
|
7
|
+
gives that agent its *garaje-specific* behavior. It ships:
|
|
8
|
+
|
|
9
|
+
- the **Garaje persona**, base **rules**, and canonical **roles**
|
|
10
|
+
(planner / implementer / reviewer / doc-writer),
|
|
11
|
+
- the base **extensions** (preset/role commands, guardrails, protected-paths
|
|
12
|
+
and command-intent guards that keep the agent from reconfiguring its own
|
|
13
|
+
container),
|
|
14
|
+
- the agent **skills** — including **park** (introspect a codebase and wire it
|
|
15
|
+
into the garaje) and **upgrade-bay** (re-park after upstream change),
|
|
16
|
+
- the generated `presets.json` and `agents/*.md` derived from the roles.
|
|
17
|
+
|
|
18
|
+
## How it's consumed
|
|
19
|
+
|
|
20
|
+
A garaje pins this package **declaratively** — you don't install or import it by
|
|
21
|
+
hand. Its `.pi/settings.json` carries a `packages` entry, and pi installs and
|
|
22
|
+
loads the package (read-only) on session start:
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"packages": [
|
|
27
|
+
{
|
|
28
|
+
"source": "npm:@garaje/base@0.1.1",
|
|
29
|
+
"extensions": ["extensions/**", "!extensions/session-name.ts"]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`garaje init` writes this pin at the CLI's own version, so a fresh garaje is
|
|
36
|
+
internally consistent by construction, and `garaje upgrade` bumps it.
|
|
37
|
+
|
|
38
|
+
## Override-only customization
|
|
39
|
+
|
|
40
|
+
The base installs **read-only**. A garaje customizes by layering local resources
|
|
41
|
+
on top — extra rules in `.agent/rules/`, project presets in `.pi/presets.json`,
|
|
42
|
+
local roles in `.pi/agents/` — which pi merges over the base at load time, with
|
|
43
|
+
local entries winning on name collisions. Because lower layers are never edited
|
|
44
|
+
in place, upgrading the framework is a version-pin bump rather than a merge, and
|
|
45
|
+
`garaje upgrade` flags any local override that now shadows or orphans a changed
|
|
46
|
+
base resource.
|
|
47
|
+
|
|
48
|
+
## Harness portability
|
|
49
|
+
|
|
50
|
+
`@garaje/base` is specifically the **pi adapter** for garaje. The framework's
|
|
51
|
+
harness seam is deliberately thin: targeting a different agent harness means
|
|
52
|
+
shipping a different base package, not rewriting the framework. Role and rule
|
|
53
|
+
*content* is portable Markdown, so it carries across.
|
|
54
|
+
|
|
55
|
+
A pi package contributes **extensions, prompts, roles, rules, and skills** to a
|
|
56
|
+
session (packages contribute resources, not host settings). Released in lockstep
|
|
57
|
+
with the `garaje` CLI.
|
|
58
|
+
|
|
59
|
+
## License
|
|
60
|
+
|
|
61
|
+
MIT
|