akm-cli 0.9.28-alpha.1 → 0.9.28-alpha.10
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 +176 -0
- package/STABILITY.md +44 -17
- package/dist/assets/hints/cli-hints-full.md +6 -2
- package/dist/assets/hints/cli-hints-short.md +1 -0
- package/dist/assets/templates/html/metrics.html +977 -0
- package/dist/cli/shared.js +5 -4
- package/dist/cli.js +11 -1
- package/dist/commands/command/command-execution.js +1 -0
- package/dist/commands/health/accept-rate.js +8 -4
- package/dist/commands/health/html-report.js +3 -8
- package/dist/commands/health/llm-usage.js +17 -6
- package/dist/commands/health/renderers.js +4 -4
- package/dist/commands/improve/consolidate/pair-pass.js +12 -1
- package/dist/commands/improve/distill.js +6 -0
- package/dist/commands/improve/extract-cli.js +1 -1
- package/dist/commands/improve/improve-report.js +4 -2
- package/dist/commands/improve/improve.js +22 -10
- package/dist/commands/metrics/collect.js +439 -0
- package/dist/commands/metrics/html-report.js +82 -0
- package/dist/commands/metrics/md-report.js +44 -0
- package/dist/commands/metrics/metrics-cli.js +213 -0
- package/dist/commands/metrics/report-view.js +243 -0
- package/dist/commands/metrics/types.js +4 -0
- package/dist/commands/read/search.js +5 -0
- package/dist/commands/sources/plugin-upgrade.js +431 -0
- package/dist/commands/sources/self-update.js +27 -5
- package/dist/commands/sources/sources-cli.js +23 -11
- package/dist/commands/workflow-cli.js +1 -1
- package/dist/core/adapter/adapters/akm-adapter.js +5 -1
- package/dist/core/config/schema/engines.js +10 -2
- package/dist/core/spawn-env.js +13 -0
- package/dist/core/trash.js +73 -0
- package/dist/indexer/indexer.js +64 -14
- package/dist/indexer/usage/usage-events.js +3 -1
- package/dist/indexer/walk/matchers.js +3 -2
- package/dist/integrations/agent/engine-resolution.js +1 -0
- package/dist/integrations/agent/execution.js +9 -1
- package/dist/integrations/agent/profiles.js +2 -2
- package/dist/integrations/agent/request-lowering.js +2 -2
- package/dist/integrations/harnesses/claude/agent-builder.js +0 -1
- package/dist/integrations/harnesses/ids.js +12 -10
- package/dist/integrations/harnesses/opencode/agent-builder.js +0 -1
- package/dist/integrations/harnesses/opencode-sdk/harness.js +0 -1
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +155 -52
- package/dist/integrations/session-logs/pre-filter.js +1 -0
- package/dist/llm/usage-persist.js +22 -11
- package/dist/llm/usage-telemetry.js +4 -0
- package/dist/output/html-render.js +15 -8
- package/dist/output/shapes/passthrough.js +1 -0
- package/dist/output/text/command-format.js +27 -1
- package/dist/output/text/metrics.js +39 -0
- package/dist/output/text.js +2 -0
- package/dist/scripts/akm-migrate-node.js +335 -27
- package/dist/scripts/akm-migrate.js +335 -27
- package/dist/storage/repositories/index-utility-repository.js +24 -0
- package/dist/storage/repositories/metrics-repository.js +80 -0
- package/dist/tasks/run/run-command-task.js +1 -1
- package/docs/README.md +1 -0
- package/docs/integration/bundling-akm.md +6 -1
- package/docs/reference/cli.md +187 -8
- package/docs/reference/configuration.md +9 -3
- package/docs/reference/data-and-telemetry.md +42 -8
- package/package.json +1 -1
- package/schemas/akm-config.json +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,182 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.9.28-alpha.10] - 2026-10-08
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **An `opencode-sdk` dispatch no longer hangs when OpenCode asks for a permission (#1104).** The runner never
|
|
14
|
+
answered permission requests, so a tool call that needed one (OpenCode's default `external_directory: ask`,
|
|
15
|
+
e.g. reading the plugin's `/tmp/akm-opencode/curated/<session>.md`) stayed `running` until the dispatch
|
|
16
|
+
timed out. The runner now rejects each request of its session, and of the sub-sessions it spawns, exactly as
|
|
17
|
+
a non-interactive `opencode run` does ("auto-rejecting"), so the model gets a refusal it can work around;
|
|
18
|
+
each request is recorded in the dispatch's `stderr`, and the event subscription is closed when the dispatch
|
|
19
|
+
ends. Grant access in the agent's `permission` config to allow it instead.
|
|
20
|
+
|
|
21
|
+
## [0.9.28-alpha.9] - 2026-10-08
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **The `opencode-sdk` server receives `OPENCODE_API_KEY` and `OPENCODE_CONFIG`.** It was started with only the
|
|
26
|
+
common baseline and the XDG names, so a provider that reads its key from the environment (OpenCode Go) failed
|
|
27
|
+
with `UnknownError: Unexpected server error` where `opencode run` worked. The `opencode` CLI profile and the
|
|
28
|
+
SDK server now share one list of OpenCode names; a different key value starts another server.
|
|
29
|
+
|
|
30
|
+
- **`akm upgrade --next` no longer fails OpenCode as "older than `@latest`" (#1089).** akm-plugins' stable
|
|
31
|
+
versions concatenate a timestamp into the patch (`0.9.27202610072331`), so by semver every prerelease build
|
|
32
|
+
(`0.9.28-alpha.8.202610081938`) sorted below stable and `akm-opencode@next` was always rejected. `@next` is
|
|
33
|
+
now judged by the `akm-cli` it pins against the one `@latest` pins; plugin versions are only compared for
|
|
34
|
+
equality (is the cache already this build?).
|
|
35
|
+
|
|
36
|
+
## [0.9.28-alpha.8] - 2026-10-08
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
|
|
40
|
+
- **`opencode-sdk` runs keep their OpenCode session (#1100).** The SDK runner deleted the session after every
|
|
41
|
+
dispatch, so a workflow, task or `akm agent` run left no transcript in OpenCode's history to debug or to learn
|
|
42
|
+
from, unlike `opencode run`. The session is now kept; a dispatch akm gives up on (timeout or abort) is still
|
|
43
|
+
aborted on the server so it stops calling the model. The OpenCode session id is on the `akm agent` / command
|
|
44
|
+
result as `sessionId` and in the task log line, as workflow steps already carried it.
|
|
45
|
+
|
|
46
|
+
## [0.9.28-alpha.7] - 2026-10-08
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- **An agent engine can name a default `agent`.** `engines.<name>.agent` (`opencode`, `opencode-sdk`, `claude`)
|
|
51
|
+
is the native agent the engine runs when a request names none, so an `opencode-sdk` engine, which takes no
|
|
52
|
+
`args`, can run e.g. `akm-workflow` for workflows and tasks. A request's own agent wins, a persona is kept,
|
|
53
|
+
and model work keeps its confined agent. See [Configuration](docs/reference/configuration.md) (#1049).
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- **Stability tiers for 0.10's stabilization work.** Experimental: the built-in
|
|
58
|
+
improve strategies other than `default` and `consolidate` (`quick`,
|
|
59
|
+
`reflect-distill`, `thorough`, `catchup`), the proactive-maintenance and
|
|
60
|
+
high-salience lanes, and session extraction (`akm proposal extract`).
|
|
61
|
+
Evolving and now listed: `akm command run` and `akm models`; every agent
|
|
62
|
+
harness (the `opencode` CLI path, `copilot`, `pi`, `gemini`, `aider`,
|
|
63
|
+
`amazonq`, `openhands` included) and the `okf`, `llm-wiki` and
|
|
64
|
+
`generic-files` adapters are named Evolving. `akm upgrade`'s plugin step and
|
|
65
|
+
`--next` are targeted to become Stable before the 0.9 series ends.
|
|
66
|
+
|
|
67
|
+
- **Workflows are Experimental.** The `akm workflow` commands (`run`, `status`,
|
|
68
|
+
`list`, `create`, `resume`, `abandon`, `plan`), the workflow asset format and
|
|
69
|
+
the engine move to Experimental in STABILITY.md and the help text, for the rest
|
|
70
|
+
of 0.9 and all of 0.10, which stabilizes the feature and then promotes it or
|
|
71
|
+
removes it. Nothing changes in how they run.
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
|
|
75
|
+
- **Consolidate's pair pass no longer retires a knowledge note in favour of a memory (#1092).** Knowledge is the
|
|
76
|
+
reviewed form and a memory is raw capture, often the very memory the note was promoted from, yet a `duplicate`,
|
|
77
|
+
`supersedes` or `subsumed` verdict could retire `knowledge/...` for `memories/...` (a `.derived` memory counts as a
|
|
78
|
+
memory). When the verdict would do that and the judge lists no claim held only by the memory, the memory is retired
|
|
79
|
+
in favour of the note instead, through the same guards and staging as any memory retirement; when the memory holds
|
|
80
|
+
a claim of its own, nothing is minted and the pair is counted as a no-action verdict. A memory is still retired in
|
|
81
|
+
favour of a knowledge note, and knowledge against knowledge is unchanged.
|
|
82
|
+
|
|
83
|
+
## [0.9.28-alpha.6] - 2026-10-08
|
|
84
|
+
|
|
85
|
+
### Fixed
|
|
86
|
+
|
|
87
|
+
- **The #1063 fix now reaches files that have not changed (#1063).** An incremental `akm index` skips a
|
|
88
|
+
directory whose files are unchanged, so a reference file already filed as a command stayed
|
|
89
|
+
`commands/skills/<name>/...` until `akm index --full`. The `akm` adapter's version, which is part of each
|
|
90
|
+
directory's freshness, is bumped, so the next `akm index` after upgrading re-files those rows once (about 18
|
|
91
|
+
entries in a 18,000-entry library) and drops their old refs. Reading every directory once makes that run slower
|
|
92
|
+
(about 27 s against 2 s on that library) and re-embeds the entries whose embedding hash was written by an older
|
|
93
|
+
release (about 8,000 of them); later runs cost what they did before.
|
|
94
|
+
|
|
95
|
+
## [0.9.28-alpha.5] - 2026-10-08
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
|
|
99
|
+
- **`akm upgrade --next` installs the `@next` prerelease of akm and its OpenCode plugin.** The CLI target is
|
|
100
|
+
the `next` dist-tag of `akm-cli` when it is newer than the latest stable release, else the stable release
|
|
101
|
+
(never a downgrade); npm/Bun/pnpm installs name that exact version and binary installs take its GitHub
|
|
102
|
+
release. The OpenCode lockstep and cache refresh follow `akm-opencode@next` when the OpenCode config's
|
|
103
|
+
`plugin` list names it (akm never edits that config); with a bare `"akm-opencode"` the entry is `skipped`
|
|
104
|
+
with a message saying to set `"plugin": ["akm-opencode@next"]`, and lockstep stays on the `@latest` pin.
|
|
105
|
+
Missing, older-than-`@latest` or unpinned `@next` fails closed like the stable lockstep. Claude Code and
|
|
106
|
+
Codex are unchanged (no prerelease channel). The result gains `channel`. Works with `--check`, `--force`
|
|
107
|
+
and `-q`. See [`akm upgrade`](docs/reference/cli.md#prereleases-next).
|
|
108
|
+
|
|
109
|
+
## [0.9.28-alpha.4] - 2026-10-08
|
|
110
|
+
|
|
111
|
+
### Added
|
|
112
|
+
|
|
113
|
+
- **`akm upgrade` also updates the akm plugin of each installed harness (#1007).** After the CLI step
|
|
114
|
+
it refreshes Claude Code (`claude plugin marketplace update`, then `claude plugin update`) and
|
|
115
|
+
Codex (`codex plugin marketplace upgrade`) when the `akm-plugins` marketplace is configured and the
|
|
116
|
+
plugin is installed, and replaces a stale cached `akm-opencode` (moved to the trash, then re-fetched
|
|
117
|
+
by `opencode debug config`) unless OpenCode is running, in which case it is `deferred`. It only
|
|
118
|
+
updates: a missing plugin is never installed. The result gains `plugins` (one `outcome` per harness:
|
|
119
|
+
`updated`, `current`, `skipped`, `deferred`, `failed`; under `--check`, which changes nothing,
|
|
120
|
+
`pending` for OpenCode and `unknown` for Claude Code and Codex, whose check needs a fetch) and a failed plugin exits 1. With the OpenCode plugin present the CLI moves to the akm-cli
|
|
121
|
+
that `akm-opencode@latest` pins instead of the newest release, reported under `lockstep`; if the pin
|
|
122
|
+
cannot be read the CLI is held where it is rather than moved ahead of the plugin. The
|
|
123
|
+
Containers entrypoint and the Codex hook trust entries are documented under
|
|
124
|
+
[`akm upgrade`](docs/reference/cli.md#upgrade).
|
|
125
|
+
|
|
126
|
+
### Fixed
|
|
127
|
+
|
|
128
|
+
- **A skill's reference file with a shell `$1` is no longer indexed as a command (#1063).** A file under
|
|
129
|
+
`skills/**` other than `SKILL.md` that showed `local var="$1"` in a code block was retyped to
|
|
130
|
+
`commands/skills/<name>/...`. A skill's folder now counts as a declared context, as `memories/` and the other typed
|
|
131
|
+
directories already did, so the file stays a skill resource (`knowledge/skills/<name>/...`). A `$1` under
|
|
132
|
+
`commands/` or in a loose file is still a command.
|
|
133
|
+
|
|
134
|
+
## [0.9.28-alpha.3] - 2026-10-08
|
|
135
|
+
|
|
136
|
+
### Changed
|
|
137
|
+
|
|
138
|
+
- A consolidate pair-pass retire proposal now records the judge's claim lists in its `retirement` metadata as `onlyInRetired` and `onlyInSuccessor`, named by role rather than by the judge's A/B, so what the judge found only on each side survives past the run. Proposals minted before this lack both fields; no row is added for a pair akm keeps.
|
|
139
|
+
|
|
140
|
+
- A distill lesson the quality gate rejects or sends to review now keeps its text: the `distill_invoked` event and the distill result carry `rejectedContent`, cut to 2000 characters (the judge prompt's cap). Before, a rejected lesson left only its score and reason. It stays local in `state.db`.
|
|
141
|
+
|
|
142
|
+
## [0.9.28-alpha.2] - 2026-10-08
|
|
143
|
+
|
|
144
|
+
### Added
|
|
145
|
+
|
|
146
|
+
- **`akm metrics` (experimental) reports what akm has recorded, in every `--format`.** One
|
|
147
|
+
read-only command covers asset usage (searches, shows, curates, selects, the
|
|
148
|
+
queries that returned nothing), feedback with its reasons and tags, utility
|
|
149
|
+
and outcome scores, LLM tokens, latency, task runs,
|
|
150
|
+
proposals and workflow token spend. `--since` (default `30d`) sets the window start; the window ends now, counts
|
|
151
|
+
`user`-source usage and keeps the top 20 of every ranked list. The
|
|
152
|
+
window rows (usage rows as recorded, LLM calls summed per day, engine, model, process and stage) ride along with
|
|
153
|
+
`--format html` and `--detail full`. A window
|
|
154
|
+
longer than a store's retention says so in `notes`.
|
|
155
|
+
|
|
156
|
+
- **`akm metrics` renders as text and Markdown.** `--format text` prints aligned
|
|
157
|
+
Usage, Feedback, Utility, LLM, Index, Tasks, Proposals and Workflows sections
|
|
158
|
+
with top-N tables (cut to 5 at `--detail brief`); `--format md` prints one
|
|
159
|
+
heading per section with GFM tables.
|
|
160
|
+
|
|
161
|
+
- **`akm metrics --format html` writes a self-contained dashboard.** The page
|
|
162
|
+
carries the window's raw rows, so you can filter by date, bundle, source and
|
|
163
|
+
event type, sort the tables, open an asset to see its timeline, queries and
|
|
164
|
+
feedback, and download any table as CSV, all in the browser. Charts load
|
|
165
|
+
ECharts from the same CDN tag as `akm health --report`. A page keeps the most
|
|
166
|
+
recent 50,000 usage rows and says so when it cuts older ones.
|
|
167
|
+
|
|
168
|
+
### Changed
|
|
169
|
+
|
|
170
|
+
- **LLM usage is recorded for every command.** `akm index`, curate, workflow,
|
|
171
|
+
agent dispatch and `akm command run` now persist their `llm_usage` events
|
|
172
|
+
like `improve` and `proposal drain` already did; before, a call made outside
|
|
173
|
+
those two was dropped. An improve run still keeps its own sink and the
|
|
174
|
+
process-wide one resumes when it ends.
|
|
175
|
+
|
|
176
|
+
- Search latency is recorded in the search summary usage row (`totalMs`, plus `rankMs` and `embedMs` when present), and every `akm index` run appends an `index_completed` event with its phase timings.
|
|
177
|
+
|
|
178
|
+
### Fixed
|
|
179
|
+
|
|
180
|
+
- **Usage-event retention no longer deletes a day early.** The purge on `akm index`
|
|
181
|
+
compared the space-separated `created_at` against an ISO cutoff, so every row on
|
|
182
|
+
the cutoff's date was removed up to 24 hours before its 90 days were up. Both
|
|
183
|
+
sides are now normalized before the comparison.
|
|
184
|
+
|
|
9
185
|
## [0.9.28-alpha.1] - 2026-10-08
|
|
10
186
|
|
|
11
187
|
### Fixed
|
package/STABILITY.md
CHANGED
|
@@ -46,6 +46,7 @@ enumeration of the whole `proposal` noun group.
|
|
|
46
46
|
| `akm setup` | Stable | |
|
|
47
47
|
| `akm index` | Stable | |
|
|
48
48
|
| `akm health` | Evolving | Exit codes are Evolving; report *content* and rendered `md`/`html` layout are Experimental — do not script against report layout. |
|
|
49
|
+
| `akm metrics` | Experimental | New in 0.9.28. Report content, JSON shape and the `html` dashboard may change. |
|
|
49
50
|
| `akm info` | Stable | |
|
|
50
51
|
| `akm bundle create` | Stable | |
|
|
51
52
|
| `akm bundle add` | Stable | |
|
|
@@ -53,17 +54,17 @@ enumeration of the whole `proposal` noun group.
|
|
|
53
54
|
| `akm bundle show` | Evolving | See note above. |
|
|
54
55
|
| `akm bundle remove` | Stable | |
|
|
55
56
|
| `akm bundle update` | Stable | |
|
|
56
|
-
| `akm upgrade` | Evolving | |
|
|
57
|
+
| `akm upgrade` | Evolving | The plugin step and `--next` (0.9.28) are being verified on real hosts to become Stable before the 0.9 series ends. |
|
|
57
58
|
| `akm search` | Stable | |
|
|
58
59
|
| `akm curate` | Stable | |
|
|
59
60
|
| `akm show` | Stable | |
|
|
60
|
-
| `akm workflow status` |
|
|
61
|
-
| `akm workflow plan` |
|
|
62
|
-
| `akm workflow list` |
|
|
63
|
-
| `akm workflow create` |
|
|
64
|
-
| `akm workflow resume` |
|
|
65
|
-
| `akm workflow abandon` |
|
|
66
|
-
| `akm workflow run` |
|
|
61
|
+
| `akm workflow status` | Experimental | `--all-scopes` added in 0.9.15 (#942), additive. |
|
|
62
|
+
| `akm workflow plan` | Experimental | New in 0.9.2; secret-free provenance output; envelope shape may change. |
|
|
63
|
+
| `akm workflow list` | Experimental | `--all-scopes` and a top-level `scopeKey` envelope field added in 0.9.15 (#942), both additive. |
|
|
64
|
+
| `akm workflow create` | Experimental | |
|
|
65
|
+
| `akm workflow resume` | Experimental | |
|
|
66
|
+
| `akm workflow abandon` | Experimental | |
|
|
67
|
+
| `akm workflow run` | Experimental | Canonical start/resume/execute command. |
|
|
67
68
|
| `akm remember` | Stable | |
|
|
68
69
|
| `akm import` | Stable | |
|
|
69
70
|
| `akm sync` | Stable | |
|
|
@@ -82,6 +83,8 @@ enumeration of the whole `proposal` noun group.
|
|
|
82
83
|
| `akm feedback` | Stable | |
|
|
83
84
|
| `akm log` | Evolving | |
|
|
84
85
|
| `akm agent` | Evolving | |
|
|
86
|
+
| `akm command run` | Evolving | Runs stored command templates through the same agent dispatch as `akm agent`. |
|
|
87
|
+
| `akm models` | Evolving | `list` and `copy-defaults` for model intent aliases. |
|
|
85
88
|
| `akm lint` | Evolving | |
|
|
86
89
|
| `akm improve` | Evolving | Review-first by default; mutating lanes require `experimental.improveAutonomy` — see below. |
|
|
87
90
|
| `akm proposal list` | Stable | See reconciliation note above. |
|
|
@@ -92,7 +95,7 @@ enumeration of the whole `proposal` noun group.
|
|
|
92
95
|
| `akm proposal reopen` | Evolving | New in 0.9.19; undoes a rejection. |
|
|
93
96
|
| `akm proposal revert` | Evolving | |
|
|
94
97
|
| `akm proposal drain` | Evolving | |
|
|
95
|
-
| `akm proposal extract` |
|
|
98
|
+
| `akm proposal extract` | Experimental | Former top-level `akm extract`. Session extraction quality is still being measured (0.10, #1094). |
|
|
96
99
|
| `akm proposal new` | Evolving | Former top-level `akm propose`. |
|
|
97
100
|
| `akm help` | Stable | |
|
|
98
101
|
| `akm help agents` | Stable | |
|
|
@@ -290,9 +293,8 @@ CHANGELOG with a migration note.
|
|
|
290
293
|
- **Workflow plan** — `akm workflow plan <ref>`, new in 0.9.2: zero-write
|
|
291
294
|
compile+freeze introspection (the canonical step graph, task/child
|
|
292
295
|
expansion, input bindings, and lowering notices for a workflow, without
|
|
293
|
-
starting or publishing a run). The envelope shape may still change
|
|
294
|
-
|
|
295
|
-
`abandon`) and `run` are unaffected.
|
|
296
|
+
starting or publishing a run). The envelope shape may still change. Like every
|
|
297
|
+
`workflow` verb it is Experimental from 0.9.28 (see Experimental below).
|
|
296
298
|
- **Events / log** — `akm log` is the event-stream surface (0.9.0: the
|
|
297
299
|
asset-scoped `akm history` surface, and `log`'s own `tail` subcommand, were
|
|
298
300
|
both removed; `log` is now a leaf command — the former `list` surface).
|
|
@@ -301,7 +303,8 @@ CHANGELOG with a migration note.
|
|
|
301
303
|
commands/agents, knowledge, YAML workflows, tasks, env/secret files, scripts,
|
|
302
304
|
OKF and LLM-wiki knowledge bases). Config is keyed by `bundles` and
|
|
303
305
|
`defaultBundle`. The adapter set, bundle-recognition rules, and the
|
|
304
|
-
`bundles` config shape may still shift
|
|
306
|
+
`bundles` config shape may still shift; the `okf`, `llm-wiki` and
|
|
307
|
+
`generic-files` adapters in particular are Evolving. Bundles are inspected through
|
|
305
308
|
`akm bundle list` / `akm bundle show <name>` and enumerated through
|
|
306
309
|
`akm search "bundle//"`. (An earlier `akm bundle items` noun group was
|
|
307
310
|
removed in 0.9.0 as duplicative of `akm search`; the current `akm bundle`
|
|
@@ -317,9 +320,15 @@ CHANGELOG with a migration note.
|
|
|
317
320
|
`log.md` / `raw/` / `pages/` and its ingest flow); wiki pages are addressed
|
|
318
321
|
as ordinary concepts inside their bundle. Adapter behavior and page
|
|
319
322
|
conventions are still iterating.
|
|
320
|
-
- **Agent dispatch** — `akm agent`
|
|
321
|
-
`
|
|
322
|
-
`
|
|
323
|
+
- **Agent dispatch** — `akm agent` and `akm command run`. Supported backends:
|
|
324
|
+
`claude`, `opencode-sdk` (the primary OpenCode interface), `codex`, and the
|
|
325
|
+
`opencode` CLI path, `copilot`, `pi`, `gemini`, `aider`, `amazonq`,
|
|
326
|
+
`openhands`. Every harness is Evolving: the harness implementation is being
|
|
327
|
+
reworked so harnesses are easy to add, remove and update (0.10), and the
|
|
328
|
+
`opencode` CLI dispatch path is a deprecation candidate once `opencode-sdk`
|
|
329
|
+
covers it. The set will grow.
|
|
330
|
+
- **Model aliases** — `akm models list|copy-defaults` and the intent-alias
|
|
331
|
+
defaults they expose.
|
|
323
332
|
- **Proposal queue** — quality classifications (`accepted`, `pending`,
|
|
324
333
|
`proposed`, `rejected`, `archived`) are stable; the JSON shape of a
|
|
325
334
|
proposal record may add fields.
|
|
@@ -329,7 +338,9 @@ CHANGELOG with a migration note.
|
|
|
329
338
|
lives outside the CLI, in `scripts/build-registry-index.ts`.
|
|
330
339
|
- **Upgrade** — `akm upgrade`. Checksum verification is not optional; the
|
|
331
340
|
recovery hatch is the `AKM_UPGRADE_SKIP_CHECKSUM` environment variable
|
|
332
|
-
(Internal), not a flag.
|
|
341
|
+
(Internal), not a flag. The harness plugin step and `--next` (new in 0.9.28)
|
|
342
|
+
are targeted to become Stable before the 0.9 series ends, once verified on
|
|
343
|
+
real hosts.
|
|
333
344
|
- **Lint** — `akm lint`. The rule set and finding shapes iterate; the
|
|
334
345
|
`--fail-on-flagged` CI contract and the exit codes are stable.
|
|
335
346
|
- **Health** — `akm health` and its exit codes (0 pass / 4 warn / 1 fail) are
|
|
@@ -341,6 +352,15 @@ CHANGELOG with a migration note.
|
|
|
341
352
|
Subject to change without notice within minor releases. Not yet recommended
|
|
342
353
|
for scripted use.
|
|
343
354
|
|
|
355
|
+
- **Workflows** — the whole `akm workflow` surface (`run`, `status`, `list`,
|
|
356
|
+
`create`, `resume`, `abandon`, `plan`), the workflow asset format and the
|
|
357
|
+
workflow engine are Experimental from 0.9.28 and throughout 0.10. The 0.10
|
|
358
|
+
series stabilizes the feature and trims what is not useful, then either
|
|
359
|
+
promotes it out of Experimental or removes it if stabilization does not
|
|
360
|
+
produce a quality feature.
|
|
361
|
+
- **`akm metrics`** — new in 0.9.28. What it reports, its JSON shape and the
|
|
362
|
+
`--format html` dashboard may change in any release; do not script against
|
|
363
|
+
them.
|
|
344
364
|
- **`lesson` asset type** — schema (`when_to_use`, `description`) is
|
|
345
365
|
stable, but lesson-distillation triggers and ranking are tuning targets.
|
|
346
366
|
- **`--shape agent` and `--shape summary`** — the output-projection axis
|
|
@@ -357,6 +377,13 @@ for scripted use.
|
|
|
357
377
|
- **Memory belief-state transitions** — `captureMode`, `beliefState`,
|
|
358
378
|
contradiction edges, and the consolidate journal are observable but
|
|
359
379
|
the algorithm that writes them is tuning across patch releases.
|
|
380
|
+
- **Improve built-in strategies and lanes** — the built-in strategies other
|
|
381
|
+
than `default` and `consolidate` (`quick`, `reflect-distill`, `thorough`,
|
|
382
|
+
`catchup`) and the proactive-maintenance and high-salience lanes. 0.10
|
|
383
|
+
measures each and keeps, folds or removes it (#1094).
|
|
384
|
+
- **Session extraction** — `akm proposal extract` and the `extract` process:
|
|
385
|
+
what it extracts, its quality gates and its output may change while 0.10
|
|
386
|
+
measures it (#1094).
|
|
360
387
|
- **Improve tuning config** — `improve.strategies.*.processes.*` (per-process
|
|
361
388
|
engines, limits, gates, and the anti-collapse / CLS / fidelity knobs) and
|
|
362
389
|
the `index.*` per-pass config. The 0.9.x series is explicitly still settling
|
|
@@ -329,8 +329,9 @@ akm bundle list # List all sources
|
|
|
329
329
|
akm lint # Structural lint over the bundle; exits 0 regardless of findings
|
|
330
330
|
akm lint --fix # Auto-fix Tier 1 issues
|
|
331
331
|
akm lint --fail-on-flagged # Exit non-zero when summary.flagged > 0 (CI-friendly)
|
|
332
|
-
akm upgrade # Upgrade akm using its install method
|
|
333
|
-
akm upgrade --check #
|
|
332
|
+
akm upgrade # Upgrade akm using its install method, then update installed harness plugins
|
|
333
|
+
akm upgrade --check # Report pending CLI and plugin updates, changing nothing
|
|
334
|
+
akm upgrade --next # Follow prereleases (@next); OpenCode needs "akm-opencode@next" in its plugin list
|
|
334
335
|
akm help migrate 0.6.0 # Print migration notes for a release (or: latest)
|
|
335
336
|
akm help bundle # Print options and subcommands for one command
|
|
336
337
|
akm help agents --full # Print this reference
|
|
@@ -416,6 +417,9 @@ akm agent --model sonnet --prompt "..." # Model override (aliases or exa
|
|
|
416
417
|
akm info # Capabilities, bundle dir, index stats, semantic-search status
|
|
417
418
|
akm health # Runtime diagnostics; exit 0 ok / 4 warn / 1 fail
|
|
418
419
|
akm health --report # Adds accept-rate metrics
|
|
420
|
+
akm metrics # Usage, feedback, utility, LLM tokens, tasks, workflows (last 30d, read-only)
|
|
421
|
+
akm metrics --since 7d # Narrow the window
|
|
422
|
+
akm metrics --format html --output metrics.html # Self-contained dashboard with the window's rows (filter, sort, export CSV)
|
|
419
423
|
akm log # Append-only event stream (mutations, feedback, indexing)
|
|
420
424
|
akm log --ref <ref> # One asset's event trail
|
|
421
425
|
akm log --since @offset:<id> # Durable row-id cursor — poll this to follow the stream
|
|
@@ -47,6 +47,7 @@ akm clone <ref> # Copy an asset to the working bun
|
|
|
47
47
|
akm sync # Commit (and push if writable remote) changes in the primary bundle (--no-push to commit only)
|
|
48
48
|
akm improve --no-sync # Run improve without the end-of-run auto-commit
|
|
49
49
|
akm improve --no-push # Auto-commit but skip push for this run
|
|
50
|
+
akm metrics --since 7d # What was searched, shown and rated, and which assets went unused (--format html: dashboard)
|
|
50
51
|
akm search "<query>" --from registry # Search all registries (registry search was folded into search)
|
|
51
52
|
```
|
|
52
53
|
|