@fingerskier/augment 0.3.0 → 0.3.1
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 +114 -5
- package/dist/daemon/client.js +18 -9
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/http.js +50 -24
- package/dist/daemon/http.js.map +1 -1
- package/dist/daemon/lifetime-lock.d.ts +22 -0
- package/dist/daemon/lifetime-lock.js +94 -0
- package/dist/daemon/lifetime-lock.js.map +1 -0
- package/dist/daemon/main.js +2 -1
- package/dist/daemon/main.js.map +1 -1
- package/dist/db.d.ts +2 -1
- package/dist/db.js +12 -6
- package/dist/db.js.map +1 -1
- package/dist/opencode/plugin.d.ts +22 -0
- package/dist/opencode/plugin.js +135 -0
- package/dist/opencode/plugin.js.map +1 -0
- package/dist/pi/extension.d.ts +58 -0
- package/dist/pi/extension.js +432 -0
- package/dist/pi/extension.js.map +1 -0
- package/dist/service.d.ts +1 -0
- package/dist/service.js +9 -0
- package/dist/service.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/docs/FEATURES.md +45 -1
- package/integrations/pi/skills/augment-context/SKILL.md +59 -0
- package/package.json +40 -3
package/docs/FEATURES.md
CHANGED
|
@@ -146,6 +146,49 @@ Run without a clone via `npx -y @fingerskier/augment <command>`:
|
|
|
146
146
|
hook over stdin JSON. Host-wired by `install`; rarely called directly.
|
|
147
147
|
- `help` — full usage.
|
|
148
148
|
|
|
149
|
+
## Pi Package
|
|
150
|
+
|
|
151
|
+
The npm package is also a first-class Pi package (`keywords: ["pi-package"]` and
|
|
152
|
+
a `pi` manifest in `package.json`). `pi install npm:@fingerskier/augment` loads:
|
|
153
|
+
|
|
154
|
+
- `dist/pi/extension.js` — a Pi extension that registers namespaced
|
|
155
|
+
`augment_*` tools and slash commands.
|
|
156
|
+
- `integrations/pi/skills/augment-context/SKILL.md` — Pi-specific workflow
|
|
157
|
+
guidance using the `augment_*` tool names.
|
|
158
|
+
|
|
159
|
+
The Pi extension does not replace built-ins such as `read`; MCP `read` is exposed
|
|
160
|
+
as `augment_read_memory`. It lazily connects to the shared daemon from tools and
|
|
161
|
+
session events (no background resources start in the extension factory), warms
|
|
162
|
+
`init_project` on `session_start`, injects recalled task context on
|
|
163
|
+
`before_agent_start`, and reminds or follows up after non-trivial turns to
|
|
164
|
+
persist durable work.
|
|
165
|
+
|
|
166
|
+
Pi tools:
|
|
167
|
+
|
|
168
|
+
- `augment_init_project`, `augment_list_projects`
|
|
169
|
+
- `augment_search`, `augment_project_context`, `augment_read_memory`
|
|
170
|
+
- `augment_upsert`, `augment_link`, `augment_list_links`, `augment_unlink`
|
|
171
|
+
- `augment_tally`, `augment_sleep_candidates`
|
|
172
|
+
- `augment_memory_insights`, `augment_memory_graph`
|
|
173
|
+
|
|
174
|
+
Pi commands:
|
|
175
|
+
|
|
176
|
+
- `/augment-context [query]`
|
|
177
|
+
- `/augment-persist [summary]`
|
|
178
|
+
- `/augment-dashboard [--no-open]`
|
|
179
|
+
- `/augment-tally [verdict] [--surface S] [--note ...]`
|
|
180
|
+
- `/augment-sleep`
|
|
181
|
+
|
|
182
|
+
Pi-specific environment variables:
|
|
183
|
+
|
|
184
|
+
- `AUGMENT_PI_AUTO_CONTEXT=inject|reminder|off` (default `inject`).
|
|
185
|
+
- `AUGMENT_PI_AUTO_PERSIST=reminder|followup|off` (default `reminder`).
|
|
186
|
+
- `AUGMENT_PI_CONTEXT_LIMIT` (default `5`).
|
|
187
|
+
- `AUGMENT_PI_CONTEXT_MAX_CHARS` (default `12000`).
|
|
188
|
+
|
|
189
|
+
The existing Claude and Codex installers, MCP server, daemon, CLI, and hook flow
|
|
190
|
+
remain unchanged.
|
|
191
|
+
|
|
149
192
|
## Lifecycle Hooks
|
|
150
193
|
|
|
151
194
|
Both installed integrations wire the same `hooks/hooks.json` (Claude Code and
|
|
@@ -487,7 +530,8 @@ Both installers also provision the shared hook runtime once via
|
|
|
487
530
|
run through a direct `node <entry>` invocation (tens of milliseconds) instead of
|
|
488
531
|
an npm bootstrap on every event. If npm is unavailable at install time the
|
|
489
532
|
installer prints the manual command; hooks fail open (silent no-ops) until it is
|
|
490
|
-
run.
|
|
533
|
+
run. This installer path is independent of the [Pi Package](#pi-package) manifest
|
|
534
|
+
and remains the supported setup for Claude Code and Codex.
|
|
491
535
|
|
|
492
536
|
## Deferred
|
|
493
537
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: augment-context
|
|
3
|
+
description: Use Augment local memories from Pi to gather and persist project context during coding sessions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Augment Context for Pi
|
|
7
|
+
|
|
8
|
+
Use this skill when working in a repository with the `@fingerskier/augment` Pi package installed.
|
|
9
|
+
|
|
10
|
+
## Session Start
|
|
11
|
+
|
|
12
|
+
1. Use injected Augment memory if it is already present.
|
|
13
|
+
2. If no injected memory appears, call `augment_project_context` with the user's task summary.
|
|
14
|
+
3. Read exact memories with `augment_read_memory` when search results identify likely governing context.
|
|
15
|
+
|
|
16
|
+
## Before Code Changes
|
|
17
|
+
|
|
18
|
+
1. Call `augment_search` for the file, component, command, error, or behavior being touched.
|
|
19
|
+
2. If work depends on a prior decision, read and follow the relevant `SPEC` or `ARCH` memory.
|
|
20
|
+
3. If no relevant memory exists but the task creates a durable requirement or decision, create one before implementation.
|
|
21
|
+
|
|
22
|
+
## Memory Triggers
|
|
23
|
+
|
|
24
|
+
Call `augment_upsert` whenever one of these durable events happens:
|
|
25
|
+
|
|
26
|
+
- A requirement, API contract, data model, or tool contract is clarified: use `SPEC`.
|
|
27
|
+
- An implementation approach, tradeoff, transport choice, persistence model, or architecture decision is made: use `ARCH`.
|
|
28
|
+
- A bug, risk, failing behavior, or blocker is discovered: use `ISSUE`.
|
|
29
|
+
- Follow-up work is intentionally deferred: use `TODO`.
|
|
30
|
+
- A meaningful implementation milestone is completed: use `WORK`.
|
|
31
|
+
- A test scenario, regression case, or verification rule is learned: use `SPEC` or `WORK`, whichever is more durable.
|
|
32
|
+
|
|
33
|
+
Call `augment_init_project` first when you need the `project_id` for `augment_upsert`.
|
|
34
|
+
|
|
35
|
+
## Links
|
|
36
|
+
|
|
37
|
+
After creating or updating a memory:
|
|
38
|
+
|
|
39
|
+
1. Use `augment_link` when a memory implements, depends on, blocks, parents, or relates to another memory.
|
|
40
|
+
2. Prefer linking new `WORK` notes to the `SPEC`, `ARCH`, `ISSUE`, or `TODO` they address.
|
|
41
|
+
3. Prefer relative memory paths for durable cross-machine identity; numeric ids are local handles.
|
|
42
|
+
|
|
43
|
+
## Session Finish
|
|
44
|
+
|
|
45
|
+
For almost every session that did real work (skip only pure Q&A, read-only inspection, or trivial mechanical ops like commit-only turns):
|
|
46
|
+
|
|
47
|
+
1. Upsert a concise `WORK` memory with what changed, key files, and verification.
|
|
48
|
+
2. Upsert or update `TODO` memories for known remaining work.
|
|
49
|
+
3. Link the final `WORK` memory to the relevant planning/decision memories.
|
|
50
|
+
|
|
51
|
+
## Guardrails
|
|
52
|
+
|
|
53
|
+
- Do not store secrets, credentials, tokens, or private keys.
|
|
54
|
+
- Do not store huge logs, dependency dumps, generated files, or full source files.
|
|
55
|
+
- Keep each memory focused; split large notes before calling `augment_upsert`.
|
|
56
|
+
- Treat numeric memory IDs as local handles. Relative paths are the durable identity.
|
|
57
|
+
- Use returned search text directly as context; do not ask Augment to summarize.
|
|
58
|
+
- Default to upserting when a turn did real work. When unsure, upsert.
|
|
59
|
+
- Do not create memories for facts already obvious from the current diff, or that duplicate an existing memory; update the existing memory instead.
|
package/package.json
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fingerskier/augment",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Local RAG memory system for coding agents",
|
|
5
|
-
"
|
|
6
|
-
|
|
5
|
+
"keywords": [
|
|
6
|
+
"pi-package",
|
|
7
|
+
"pi",
|
|
8
|
+
"opencode",
|
|
9
|
+
"memory",
|
|
10
|
+
"rag",
|
|
11
|
+
"mcp",
|
|
12
|
+
"coding-agent"
|
|
13
|
+
],
|
|
14
|
+
"type": "module",
|
|
15
|
+
"main": "./dist/opencode/plugin.js",
|
|
16
|
+
"types": "./dist/opencode/plugin.d.ts",
|
|
17
|
+
"publishConfig": {
|
|
7
18
|
"access": "public"
|
|
8
19
|
},
|
|
9
20
|
"bin": {
|
|
@@ -11,6 +22,14 @@
|
|
|
11
22
|
"augment-daemon": "./dist/bin/augment-daemon.js",
|
|
12
23
|
"augment-mcp": "./dist/bin/augment-mcp.js"
|
|
13
24
|
},
|
|
25
|
+
"pi": {
|
|
26
|
+
"extensions": [
|
|
27
|
+
"./dist/pi/extension.js"
|
|
28
|
+
],
|
|
29
|
+
"skills": [
|
|
30
|
+
"./integrations/pi/skills"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
14
33
|
"files": [
|
|
15
34
|
"dist",
|
|
16
35
|
"docs",
|
|
@@ -26,6 +45,22 @@
|
|
|
26
45
|
"prepack": "npm run check",
|
|
27
46
|
"prepublishOnly": "npm run check"
|
|
28
47
|
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"@earendil-works/pi-ai": "*",
|
|
50
|
+
"@earendil-works/pi-coding-agent": "*",
|
|
51
|
+
"typebox": "*"
|
|
52
|
+
},
|
|
53
|
+
"peerDependenciesMeta": {
|
|
54
|
+
"@earendil-works/pi-ai": {
|
|
55
|
+
"optional": true
|
|
56
|
+
},
|
|
57
|
+
"@earendil-works/pi-coding-agent": {
|
|
58
|
+
"optional": true
|
|
59
|
+
},
|
|
60
|
+
"typebox": {
|
|
61
|
+
"optional": true
|
|
62
|
+
}
|
|
63
|
+
},
|
|
29
64
|
"dependencies": {
|
|
30
65
|
"@huggingface/transformers": "^3.8.0",
|
|
31
66
|
"@libsql/client": "^0.15.15",
|
|
@@ -36,8 +71,10 @@
|
|
|
36
71
|
"zod": "^3.25.76"
|
|
37
72
|
},
|
|
38
73
|
"devDependencies": {
|
|
74
|
+
"@opencode-ai/plugin": "^1.17.15",
|
|
39
75
|
"@types/node": "^24.3.0",
|
|
40
76
|
"tsx": "^4.20.5",
|
|
77
|
+
"typebox": "^1.1.38",
|
|
41
78
|
"typescript": "^5.9.2"
|
|
42
79
|
},
|
|
43
80
|
"engines": {
|