@mobrienv/autoloop 0.10.1 → 0.11.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/.agents/skills/autoloop-memory/SKILL.md +62 -0
- package/README.md +18 -1
- package/package.json +8 -6
- package/plugins/autoloop/.claude-plugin/plugin.json +1 -1
- package/plugins/autoloop-memory/.claude-plugin/plugin.json +9 -0
- /package/{plugins/autoloop → .agents}/skills/autoloop/SKILL.md +0 -0
- /package/{plugins/autoloop → .agents}/skills/autoloop-acp/SKILL.md +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autoloop-memory
|
|
3
|
+
description: Persist and recall Autoloop loop memory — add learnings and preferences, list and find entries, and render memory into prompts. Use when the user asks to remember something across loop runs, inspect loop memory, or configure a memory plugin.
|
|
4
|
+
argument-hint: "[add|list|find|render|status|remove] [args...]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Autoloop Memory
|
|
8
|
+
|
|
9
|
+
Loop memory is the durable store a loop reads into each iteration prompt. The default plugin is `jsonl` (`.autoloop/memory.jsonl`). A loop uses memory without forking core: pick a plugin with `memory.kind` in `autoloops.toml`.
|
|
10
|
+
|
|
11
|
+
Parse `$ARGUMENTS` to choose a verb. If none, list memory.
|
|
12
|
+
|
|
13
|
+
## Verbs
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Persist
|
|
17
|
+
autoloop memory add learning "insight the next iteration should keep"
|
|
18
|
+
autoloop memory add preference Workflow "Always run tests before review.ready"
|
|
19
|
+
autoloop memory add meta smoke_iteration "2"
|
|
20
|
+
|
|
21
|
+
# Recall
|
|
22
|
+
autoloop memory list
|
|
23
|
+
autoloop memory find "pattern"
|
|
24
|
+
autoloop memory status
|
|
25
|
+
|
|
26
|
+
# Prompt-shaped render (same text the harness injects, no budget)
|
|
27
|
+
autoloop memory list
|
|
28
|
+
|
|
29
|
+
# Remove (tombstone; append-only)
|
|
30
|
+
autoloop memory remove <id>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`autoloop inspect memory` shows the same rendered block (`--format md`) or raw store (`--format json`).
|
|
34
|
+
|
|
35
|
+
## Default jsonl store
|
|
36
|
+
|
|
37
|
+
Unless `memory.kind` is set, Autoloop uses the built-in `jsonl` plugin:
|
|
38
|
+
|
|
39
|
+
- Path: `AUTOLOOP_MEMORY_FILE` or `core.memory_file` (default `.autoloop/memory.jsonl`)
|
|
40
|
+
- Entries: learning, preference, meta, tombstone
|
|
41
|
+
- Prompt injection is truncated to `memory.prompt_budget_chars` (default 8000)
|
|
42
|
+
|
|
43
|
+
`file` is a second built-in plugin with the same jsonl file store.
|
|
44
|
+
|
|
45
|
+
To **replace** jsonl with Honcho, SuperMemory, Mnemosyne, or another store, install that product's Autoloop adapter and set `memory.module`. Autoloop does not ship those products.
|
|
46
|
+
|
|
47
|
+
```toml
|
|
48
|
+
[memory]
|
|
49
|
+
kind = "honcho"
|
|
50
|
+
module = "@example/autoloop-memory-honcho" # or "./memory/honcho.cjs"
|
|
51
|
+
prompt_budget_chars = 8000
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The module exports `createMemoryPlugin({ projectDir, kind })` (or `default` / `plugin`) implementing add / list / find / render. API keys stay in the adapter env. `registerMemoryPlugin` still works in-process.
|
|
55
|
+
|
|
56
|
+
## When to write memory
|
|
57
|
+
|
|
58
|
+
- **learning** — a durable lesson discovered during a run
|
|
59
|
+
- **preference** — a categorized behavioral rule (always project-scoped)
|
|
60
|
+
- **meta** — a small key/value the next iteration should see
|
|
61
|
+
|
|
62
|
+
Do not invent a second memory product. Use these verbs against the configured plugin.
|
package/README.md
CHANGED
|
@@ -329,8 +329,25 @@ See [CLI reference](https://mikeyobrien.github.io/autoloop/reference/cli#mock-ba
|
|
|
329
329
|
- [Worktree isolation](https://mikeyobrien.github.io/autoloop/features/worktree)
|
|
330
330
|
- [Releasing](https://mikeyobrien.github.io/autoloop/development/releasing)
|
|
331
331
|
|
|
332
|
+
## Local CI / merge gate
|
|
333
|
+
|
|
334
|
+
No GitHub Actions on PRs. Prove green locally, then sign off. Full pattern:
|
|
335
|
+
[docs/ci-local.md](docs/ci-local.md).
|
|
336
|
+
|
|
337
|
+
```sh
|
|
338
|
+
npm ci
|
|
339
|
+
npm run build
|
|
340
|
+
npm run check # biome + tsc --noEmit + vitest coverage
|
|
341
|
+
|
|
342
|
+
gh extension install basecamp/gh-signoff
|
|
343
|
+
gh signoff # posts context `signoff` — required to merge
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Publish and docs deploy still run on tags / `main` (`publish-npm.yml`,
|
|
347
|
+
`docs.yml`). Do not add a PR `ci.yml` back.
|
|
348
|
+
|
|
332
349
|
## Contributing
|
|
333
350
|
|
|
334
351
|
Bug reports and pull requests are welcome at [github.com/mikeyobrien/autoloop](https://github.com/mikeyobrien/autoloop/issues).
|
|
335
352
|
|
|
336
|
-
Prerequisites for development: Node.js >= 18, npm. Run `npm install && npm run build` to get started, then `npm
|
|
353
|
+
Prerequisites for development: Node.js >= 18, npm. Run `npm install && npm run build` to get started, then `npm run check` to verify. Merge requires local proof plus `gh signoff` (see [docs/ci-local.md](docs/ci-local.md)).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mobrienv/autoloop",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Simpler, opinionated loop harness for inspectable long-running agent workflows",
|
|
6
6
|
"type": "module",
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
"bin/autoloop",
|
|
21
21
|
"dist",
|
|
22
22
|
"plugins/autoloop",
|
|
23
|
+
"plugins/autoloop-memory",
|
|
24
|
+
".agents/skills",
|
|
23
25
|
"README.md"
|
|
24
26
|
],
|
|
25
27
|
"engines": {
|
|
@@ -73,7 +75,7 @@
|
|
|
73
75
|
"docs:build": "vitepress build docs",
|
|
74
76
|
"docs:preview": "vitepress preview docs",
|
|
75
77
|
"prepare": "husky",
|
|
76
|
-
"version": "node -e \"const
|
|
78
|
+
"version": "node -e \"const fs=require('fs');const v=require('./package.json').version;for (const dir of ['plugins/autoloop','plugins/autoloop-memory']){const f=dir+'/.claude-plugin/plugin.json';const p=JSON.parse(fs.readFileSync(f,'utf8'));p.version=v;fs.writeFileSync(f,JSON.stringify(p,null,2)+'\\n')}\" && git add plugins/autoloop/.claude-plugin/plugin.json plugins/autoloop-memory/.claude-plugin/plugin.json"
|
|
77
79
|
},
|
|
78
80
|
"lint-staged": {
|
|
79
81
|
"*.{ts,js,json}": [
|
|
@@ -93,9 +95,9 @@
|
|
|
93
95
|
"vitest": "^3.0.0"
|
|
94
96
|
},
|
|
95
97
|
"dependencies": {
|
|
96
|
-
"@mobrienv/autoloop-cli": "0.
|
|
97
|
-
"@mobrienv/autoloop-core": "0.
|
|
98
|
-
"@mobrienv/autoloop-harness": "0.
|
|
99
|
-
"@mobrienv/autoloop-presets": "0.
|
|
98
|
+
"@mobrienv/autoloop-cli": "0.11.0",
|
|
99
|
+
"@mobrienv/autoloop-core": "0.11.0",
|
|
100
|
+
"@mobrienv/autoloop-harness": "0.11.0",
|
|
101
|
+
"@mobrienv/autoloop-presets": "0.11.0"
|
|
100
102
|
}
|
|
101
103
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "autoloop",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Run and operate autoloops — start runs, monitor progress, inject guidance, manage worktrees, inspect artifacts, and clean up.",
|
|
5
5
|
"homepage": "https://github.com/mikeyobrien/autoloop",
|
|
6
6
|
"repository": "https://github.com/mikeyobrien/autoloop",
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "autoloop-memory",
|
|
3
|
+
"version": "0.11.0",
|
|
4
|
+
"description": "Persist and recall Autoloop loop memory — add, list, find, and render learnings and preferences.",
|
|
5
|
+
"homepage": "https://github.com/mikeyobrien/autoloop",
|
|
6
|
+
"repository": "https://github.com/mikeyobrien/autoloop",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"keywords": ["autoloop", "memory", "ai-agents"]
|
|
9
|
+
}
|
|
File without changes
|
|
File without changes
|