akm-cli 0.7.4 → 0.8.0-rc.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 +224 -1
- package/README.md +22 -6
- package/SECURITY.md +93 -0
- package/dist/cli/config-migrate.js +144 -0
- package/dist/cli/config-validate.js +39 -0
- package/dist/cli/confirm.js +73 -0
- package/dist/cli/parse-args.js +133 -0
- package/dist/cli/shared.js +129 -0
- package/dist/cli.js +2631 -1440
- package/dist/commands/add-cli.js +279 -0
- package/dist/commands/agent-dispatch.js +110 -0
- package/dist/commands/agent-support.js +68 -0
- package/dist/commands/completions.js +3 -0
- package/dist/commands/config-cli.js +130 -534
- package/dist/commands/consolidate.js +2122 -0
- package/dist/commands/curate.js +45 -3
- package/dist/commands/db-cli.js +23 -0
- package/dist/commands/distill-promotion-policy.js +660 -0
- package/dist/commands/distill.js +1081 -73
- package/dist/commands/env.js +213 -0
- package/dist/commands/eval-cases.js +43 -0
- package/dist/commands/events.js +15 -24
- package/dist/commands/extract-cli.js +127 -0
- package/dist/commands/extract-prompt.js +204 -0
- package/dist/commands/extract.js +477 -0
- package/dist/commands/feedback-cli.js +331 -0
- package/dist/commands/graph.js +477 -0
- package/dist/commands/health.js +1302 -0
- package/dist/commands/help/help-accept.md +12 -0
- package/dist/commands/help/help-improve.md +69 -0
- package/dist/commands/help/help-proposals.md +18 -0
- package/dist/commands/help/help-propose.md +17 -0
- package/dist/commands/help/help-reject.md +11 -0
- package/dist/commands/history.js +54 -46
- package/dist/commands/improve-auto-accept.js +97 -0
- package/dist/commands/improve-cli.js +217 -0
- package/dist/commands/improve-profiles.js +166 -0
- package/dist/commands/improve-result-file.js +167 -0
- package/dist/commands/improve.js +2373 -0
- package/dist/commands/info.js +5 -2
- package/dist/commands/init.js +50 -2
- package/dist/commands/installed-stashes.js +102 -139
- package/dist/commands/knowledge.js +136 -0
- package/dist/commands/lint/agent-linter.js +49 -0
- package/dist/commands/lint/base-linter.js +479 -0
- package/dist/commands/lint/command-linter.js +49 -0
- package/dist/commands/lint/default-linter.js +16 -0
- package/dist/commands/lint/env-key-rules.js +154 -0
- package/dist/commands/lint/index.js +196 -0
- package/dist/commands/lint/knowledge-linter.js +16 -0
- package/dist/commands/lint/markdown-insertion.js +343 -0
- package/dist/commands/lint/memory-linter.js +61 -0
- package/dist/commands/lint/registry.js +36 -0
- package/dist/commands/lint/skill-linter.js +45 -0
- package/dist/commands/lint/task-linter.js +50 -0
- package/dist/commands/lint/types.js +4 -0
- package/dist/commands/lint/workflow-linter.js +56 -0
- package/dist/commands/lint.js +4 -0
- package/dist/commands/migration-help.js +3 -0
- package/dist/commands/proposal.js +67 -12
- package/dist/commands/propose.js +120 -45
- package/dist/commands/reflect.js +1104 -60
- package/dist/commands/registry-cli.js +150 -0
- package/dist/commands/registry-search.js +5 -2
- package/dist/commands/remember-cli.js +257 -0
- package/dist/commands/remember.js +70 -7
- package/dist/commands/schema-repair.js +203 -0
- package/dist/commands/search.js +115 -14
- package/dist/commands/secret.js +173 -0
- package/dist/commands/self-update.js +3 -0
- package/dist/commands/show.js +158 -60
- package/dist/commands/source-add.js +17 -45
- package/dist/commands/source-clone.js +3 -0
- package/dist/commands/source-manage.js +14 -19
- package/dist/commands/tasks.js +437 -0
- package/dist/commands/url-checker.js +42 -0
- package/dist/core/action-contributors.js +28 -0
- package/dist/core/asset-ref.js +17 -2
- package/dist/core/asset-registry.js +12 -17
- package/dist/core/asset-serialize.js +88 -0
- package/dist/core/asset-spec.js +67 -1
- package/dist/core/common.js +182 -0
- package/dist/core/concurrent.js +25 -0
- package/dist/core/config-io.js +347 -0
- package/dist/core/config-migration.js +622 -0
- package/dist/core/config-schema.js +534 -0
- package/dist/core/config-sources.js +108 -0
- package/dist/core/config-types.js +4 -0
- package/dist/core/config-walker.js +337 -0
- package/dist/core/config.js +364 -968
- package/dist/core/errors.js +42 -20
- package/dist/core/events.js +105 -135
- package/dist/core/file-lock.js +104 -0
- package/dist/core/frontmatter.js +75 -8
- package/dist/core/lesson-lint.js +3 -0
- package/dist/core/markdown.js +20 -0
- package/dist/core/memory-belief.js +62 -0
- package/dist/core/memory-contradiction-detect.js +274 -0
- package/dist/core/memory-improve.js +806 -0
- package/dist/core/parse.js +158 -0
- package/dist/core/paths.js +280 -14
- package/dist/core/proposal-quality-validators.js +380 -0
- package/dist/core/proposal-validators.js +69 -0
- package/dist/core/proposals.js +512 -42
- package/dist/core/state-db.js +1068 -0
- package/dist/core/text-truncation.js +107 -0
- package/dist/core/time.js +54 -0
- package/dist/core/tty.js +59 -0
- package/dist/core/warn.js +64 -1
- package/dist/core/write-source.js +3 -0
- package/dist/indexer/db-backup.js +391 -0
- package/dist/indexer/db-search.js +198 -489
- package/dist/indexer/db.js +990 -108
- package/dist/indexer/ensure-index.js +136 -0
- package/dist/indexer/file-context.js +3 -0
- package/dist/indexer/graph-boost.js +376 -101
- package/dist/indexer/graph-db.js +391 -0
- package/dist/indexer/graph-dedup.js +95 -0
- package/dist/indexer/graph-extraction.js +550 -114
- package/dist/indexer/index-context.js +4 -0
- package/dist/indexer/indexer.js +547 -309
- package/dist/indexer/llm-cache.js +52 -0
- package/dist/indexer/manifest.js +3 -0
- package/dist/indexer/matchers.js +167 -160
- package/dist/indexer/memory-inference.js +152 -74
- package/dist/indexer/metadata-contributors.js +29 -0
- package/dist/indexer/metadata.js +275 -196
- package/dist/indexer/path-resolver.js +92 -0
- package/dist/indexer/project-context.js +192 -0
- package/dist/indexer/ranking-contributors.js +331 -0
- package/dist/indexer/ranking.js +81 -0
- package/dist/indexer/search-fields.js +5 -9
- package/dist/indexer/search-hit-enrichers.js +111 -0
- package/dist/indexer/search-source.js +44 -10
- package/dist/indexer/semantic-status.js +6 -17
- package/dist/indexer/staleness-detect.js +447 -0
- package/dist/indexer/usage-events.js +12 -9
- package/dist/indexer/walker.js +28 -0
- package/dist/integrations/agent/builders.js +135 -0
- package/dist/integrations/agent/config.js +122 -230
- package/dist/integrations/agent/detect.js +3 -0
- package/dist/integrations/agent/index.js +7 -13
- package/dist/integrations/agent/model-aliases.js +55 -0
- package/dist/integrations/agent/profiles.js +70 -5
- package/dist/integrations/agent/prompts.js +250 -36
- package/dist/integrations/agent/runner.js +151 -0
- package/dist/integrations/agent/sdk-runner.js +126 -0
- package/dist/integrations/agent/spawn.js +183 -35
- package/dist/integrations/github.js +3 -0
- package/dist/integrations/lockfile.js +32 -69
- package/dist/integrations/session-logs/index.js +69 -0
- package/dist/integrations/session-logs/inline-refs.js +35 -0
- package/dist/integrations/session-logs/pre-filter.js +152 -0
- package/dist/integrations/session-logs/providers/claude-code.js +282 -0
- package/dist/integrations/session-logs/providers/opencode.js +258 -0
- package/dist/integrations/session-logs/types.js +4 -0
- package/dist/llm/call-ai.js +62 -0
- package/dist/llm/client.js +79 -88
- package/dist/llm/embedder.js +20 -29
- package/dist/llm/embedders/cache.js +3 -7
- package/dist/llm/embedders/local.js +42 -1
- package/dist/llm/embedders/remote.js +20 -8
- package/dist/llm/embedders/types.js +3 -7
- package/dist/llm/feature-gate.js +95 -48
- package/dist/llm/graph-extract.js +676 -72
- package/dist/llm/index-passes.js +44 -29
- package/dist/llm/memory-infer.js +80 -71
- package/dist/llm/metadata-enhance.js +42 -29
- package/dist/llm/prompts/extract-session.md +80 -0
- package/dist/llm/prompts/graph-extract-user-prompt.md +35 -0
- package/dist/output/cli-hints-full.md +292 -0
- package/dist/output/cli-hints-short.md +66 -0
- package/dist/output/cli-hints.js +7 -311
- package/dist/output/context.js +60 -8
- package/dist/output/renderers.js +306 -258
- package/dist/output/shapes/curate.js +56 -0
- package/dist/output/shapes/distill.js +10 -0
- package/dist/output/shapes/env-list.js +19 -0
- package/dist/output/shapes/events.js +11 -0
- package/dist/output/shapes/helpers.js +424 -0
- package/dist/output/shapes/history.js +7 -0
- package/dist/output/shapes/passthrough.js +102 -0
- package/dist/output/shapes/proposal-accept.js +7 -0
- package/dist/output/shapes/proposal-diff.js +7 -0
- package/dist/output/shapes/proposal-list.js +7 -0
- package/dist/output/shapes/proposal-producer.js +11 -0
- package/dist/output/shapes/proposal-reject.js +7 -0
- package/dist/output/shapes/proposal-show.js +7 -0
- package/dist/output/shapes/registry-search.js +6 -0
- package/dist/output/shapes/registry.js +30 -0
- package/dist/output/shapes/search.js +6 -0
- package/dist/output/shapes/secret-list.js +19 -0
- package/dist/output/shapes/show.js +6 -0
- package/dist/output/shapes/vault-list.js +19 -0
- package/dist/output/shapes.js +51 -511
- package/dist/output/text/add.js +6 -0
- package/dist/output/text/clone.js +6 -0
- package/dist/output/text/config.js +6 -0
- package/dist/output/text/curate.js +6 -0
- package/dist/output/text/distill.js +7 -0
- package/dist/output/text/enable-disable.js +7 -0
- package/dist/output/text/events.js +10 -0
- package/dist/output/text/feedback.js +6 -0
- package/dist/output/text/helpers.js +1039 -0
- package/dist/output/text/history.js +7 -0
- package/dist/output/text/import.js +6 -0
- package/dist/output/text/index.js +6 -0
- package/dist/output/text/info.js +6 -0
- package/dist/output/text/init.js +6 -0
- package/dist/output/text/list.js +6 -0
- package/dist/output/text/proposal-producer.js +8 -0
- package/dist/output/text/proposal.js +11 -0
- package/dist/output/text/registry-commands.js +11 -0
- package/dist/output/text/registry.js +30 -0
- package/dist/output/text/remember.js +6 -0
- package/dist/output/text/remove.js +6 -0
- package/dist/output/text/save.js +6 -0
- package/dist/output/text/search.js +6 -0
- package/dist/output/text/show.js +6 -0
- package/dist/output/text/update.js +6 -0
- package/dist/output/text/upgrade.js +6 -0
- package/dist/output/text/vault.js +16 -0
- package/dist/output/text/wiki.js +15 -0
- package/dist/output/text/workflow.js +14 -0
- package/dist/output/text.js +44 -1093
- package/dist/registry/build-index.js +3 -0
- package/dist/registry/create-provider-registry.js +3 -0
- package/dist/registry/factory.js +4 -1
- package/dist/registry/origin-resolve.js +3 -0
- package/dist/registry/providers/index.js +3 -0
- package/dist/registry/providers/skills-sh.js +71 -50
- package/dist/registry/providers/static-index.js +53 -48
- package/dist/registry/providers/types.js +3 -24
- package/dist/registry/resolve.js +11 -16
- package/dist/registry/types.js +3 -0
- package/dist/scripts/migrate-storage.js +17750 -0
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +9031 -0
- package/dist/scripts/migrations/v16-to-v17.js +141 -0
- package/dist/setup/detect.js +3 -0
- package/dist/setup/ripgrep-install.js +3 -0
- package/dist/setup/ripgrep-resolve.js +3 -0
- package/dist/setup/setup.js +775 -37
- package/dist/setup/steps.js +3 -15
- package/dist/sources/include.js +3 -0
- package/dist/sources/provider-factory.js +5 -12
- package/dist/sources/provider.js +3 -20
- package/dist/sources/providers/filesystem.js +19 -23
- package/dist/sources/providers/git.js +179 -20
- package/dist/sources/providers/index.js +3 -0
- package/dist/sources/providers/install-types.js +3 -13
- package/dist/sources/providers/npm.js +3 -4
- package/dist/sources/providers/provider-utils.js +3 -0
- package/dist/sources/providers/sync-from-ref.js +3 -11
- package/dist/sources/providers/tar-utils.js +3 -0
- package/dist/sources/providers/website.js +18 -22
- package/dist/sources/resolve.js +3 -0
- package/dist/sources/types.js +3 -0
- package/dist/sources/website-ingest.js +7 -0
- package/dist/tasks/backends/cron.js +203 -0
- package/dist/tasks/backends/exec-utils.js +28 -0
- package/dist/tasks/backends/index.js +24 -0
- package/dist/tasks/backends/launchd-template.xml +19 -0
- package/dist/tasks/backends/launchd.js +187 -0
- package/dist/tasks/backends/schtasks-template.xml +29 -0
- package/dist/tasks/backends/schtasks.js +215 -0
- package/dist/tasks/parser.js +211 -0
- package/dist/tasks/resolveAkmBin.js +87 -0
- package/dist/tasks/runner.js +458 -0
- package/dist/tasks/schedule.js +227 -0
- package/dist/tasks/schema.js +15 -0
- package/dist/tasks/validator.js +62 -0
- package/dist/version.js +3 -0
- package/dist/wiki/index-template.md +12 -0
- package/dist/wiki/ingest-workflow-template.md +54 -0
- package/dist/wiki/log-template.md +8 -0
- package/dist/wiki/schema-template.md +61 -0
- package/dist/wiki/wiki-templates.js +15 -0
- package/dist/wiki/wiki.js +13 -61
- package/dist/workflows/authoring.js +8 -25
- package/dist/workflows/cli.js +3 -0
- package/dist/workflows/db.js +141 -2
- package/dist/workflows/document-cache.js +3 -10
- package/dist/workflows/parser.js +3 -0
- package/dist/workflows/renderer.js +11 -3
- package/dist/workflows/runs.js +91 -89
- package/dist/workflows/schema.js +3 -0
- package/dist/workflows/scope-key.js +79 -0
- package/dist/workflows/validator.js +4 -8
- package/dist/workflows/workflow-template.md +24 -0
- package/docs/README.md +10 -2
- package/docs/data-and-telemetry.md +225 -0
- package/docs/migration/release-notes/0.7.0.md +1 -1
- package/docs/migration/release-notes/0.7.4.md +1 -1
- package/docs/migration/release-notes/0.7.5.md +20 -0
- package/docs/migration/release-notes/0.8.0.md +48 -0
- package/docs/migration/v0.7-to-v0.8.md +1307 -0
- package/package.json +29 -11
- package/dist/commands/install-audit.js +0 -381
- package/dist/commands/vault.js +0 -333
- package/dist/templates/wiki-templates.js +0 -100
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# AKM Data & Telemetry
|
|
2
|
+
|
|
3
|
+
AKM stores data locally on your machine. **It has no remote telemetry.** No data is sent to Anthropic, the AKM project, or any third party. This document describes exactly what AKM reads and writes on your machine.
|
|
4
|
+
|
|
5
|
+
## No Remote Data Collection
|
|
6
|
+
|
|
7
|
+
AKM does not:
|
|
8
|
+
- Send usage data, events, or crash reports to any server
|
|
9
|
+
- Contact any AKM-operated endpoint at runtime (only your own configured LLM/embedding endpoints)
|
|
10
|
+
- Include any analytics SDK or beacon
|
|
11
|
+
- Collect email, name, or any personally-identifying information
|
|
12
|
+
|
|
13
|
+
The only network requests AKM makes are:
|
|
14
|
+
1. Fetching registry metadata and stash packages from sources you explicitly configure (GitHub, npm, websites)
|
|
15
|
+
2. Calls to your configured LLM/embedding endpoint (if you enabled those features)
|
|
16
|
+
3. `akm upgrade` — fetches the latest release from GitHub releases
|
|
17
|
+
4. `akm setup` — a single DNS lookup for `github.com` to decide whether to skip network-dependent steps (Ollama detection, remote embedding probes) when offline. No HTTP request is made by this probe; if it succeeds, akm proceeds with the network-dependent steps you already configured.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Local On-Disk Surface
|
|
22
|
+
|
|
23
|
+
AKM writes to these locations on your machine. All paths follow [XDG Base Directory](https://specifications.freedesktop.org/basedir-spec/latest/) conventions on Linux/macOS and Windows conventions on Windows.
|
|
24
|
+
|
|
25
|
+
### Config Directory (`$XDG_CONFIG_HOME/akm` or `~/.config/akm/`)
|
|
26
|
+
|
|
27
|
+
| Path | Contents | Safe to delete? |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| `config.json` | Your AKM configuration: LLM endpoints, stash paths, feature flags, profiles | **No** — deleting resets all settings |
|
|
30
|
+
|
|
31
|
+
Override: set `AKM_CONFIG_DIR` or `XDG_CONFIG_HOME`.
|
|
32
|
+
|
|
33
|
+
### Data Directory (`$XDG_DATA_HOME/akm` or `~/.local/share/akm/`)
|
|
34
|
+
|
|
35
|
+
| Path | Contents | Safe to delete? |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `index.db` | Search index for all your stash assets (FTS5 + metadata) | Yes — rebuilds via `akm index --full` |
|
|
38
|
+
| `workflow.db` | Workflow run state and history | Caution — deletes run history |
|
|
39
|
+
| `state.db` | Events, proposals, task history, improve run results | **No** — deletes event log, proposal queue, improve history |
|
|
40
|
+
| `akm.lock` | Inter-process write lock | Yes — recreated automatically |
|
|
41
|
+
| `akm.lock.lck` | Lock write sentinel | Yes — recreated automatically |
|
|
42
|
+
|
|
43
|
+
Override: set `AKM_DATA_DIR` or `XDG_DATA_HOME`.
|
|
44
|
+
|
|
45
|
+
### Cache Directory (`$XDG_CACHE_HOME/akm` or `~/.cache/akm/`)
|
|
46
|
+
|
|
47
|
+
Everything in the cache is regenerable. It is safe to delete the entire cache directory; AKM will recreate what it needs on next use.
|
|
48
|
+
|
|
49
|
+
| Path | Contents | Safe to delete? |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| `config-backups/config-<timestamp>.json` | Pre-migration config snapshots (5 retained) | Yes |
|
|
52
|
+
| `config-backups/config.latest.json` | Latest backup alias | Yes |
|
|
53
|
+
| `registry/` | Downloaded registry tarballs (stash packages from npm, GitHub, etc.) | Yes — re-downloaded on next `akm add` or `akm update` |
|
|
54
|
+
| `registry-index/` | Legacy per-URL JSON cache (v0.7 artifact) | Yes — fully replaced by `index.db` in 0.8.0 |
|
|
55
|
+
| `semantic-status.json` | Semantic index build status marker | Yes |
|
|
56
|
+
| `bin/` | Downloaded AKM binary cache (used by `akm upgrade`) | Yes |
|
|
57
|
+
| `tasks/logs/` | Scheduled task log files | Yes — ephemeral logs |
|
|
58
|
+
| `tasks/history/` | Legacy task history JSONL (v0.7 migration artifact) | Yes |
|
|
59
|
+
|
|
60
|
+
Override: set `AKM_CACHE_DIR` or `XDG_CACHE_HOME`.
|
|
61
|
+
|
|
62
|
+
### Stash Directory (`~/akm/` by default, or user-configured)
|
|
63
|
+
|
|
64
|
+
| Path | Contents | Safe to delete? |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| `<stash>/` | All your asset files: agents, skills, commands, knowledge, workflows, memories, vaults, wikis, lessons | **No** — this is YOUR data |
|
|
67
|
+
| `<stash>/.akm/` | Hidden AKM metadata (v0.7 proposals, legacy runs) | Caution — check for pending proposals first |
|
|
68
|
+
|
|
69
|
+
Override: set `AKM_STASH_DIR` (or configure `stashDir` in `config.json`).
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## What Is Stored in `state.db`
|
|
74
|
+
|
|
75
|
+
`state.db` holds three categories of non-regenerable data:
|
|
76
|
+
|
|
77
|
+
### 1. Events Table
|
|
78
|
+
|
|
79
|
+
An append-only log of every mutating action you perform with AKM. Events are stored locally for self-improvement (the improve loop uses them to surface usage patterns) and for inspection via `akm events`.
|
|
80
|
+
|
|
81
|
+
**What is recorded:**
|
|
82
|
+
- `event_type` — what action was taken (see full list below)
|
|
83
|
+
- `ts` — ISO-8601 UTC timestamp
|
|
84
|
+
- `ref` — the asset ref affected (e.g. `skill:code-review`), if applicable
|
|
85
|
+
- `metadata` — structured payload specific to the event type (e.g. query text for `search`, score for `feedback`)
|
|
86
|
+
|
|
87
|
+
**What is NOT recorded:**
|
|
88
|
+
- File contents
|
|
89
|
+
- LLM prompts or responses
|
|
90
|
+
- API keys or secrets (config is not stored in events)
|
|
91
|
+
- Personal information
|
|
92
|
+
|
|
93
|
+
**Retention:** Events older than 90 days are purged automatically when `akm improve` runs its maintenance pass. Purge is controlled by `purgeOldEvents()` with a 90-day default.
|
|
94
|
+
|
|
95
|
+
**Full event type list:**
|
|
96
|
+
|
|
97
|
+
| Event type | When emitted | Key metadata fields |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| `add` | `akm add <source>` | `ref`, `provider` |
|
|
100
|
+
| `remove` | `akm remove <source>` | `ref` |
|
|
101
|
+
| `update` | `akm update [source]` | `ref` |
|
|
102
|
+
| `remember` | `akm remember <text>` | `ref` |
|
|
103
|
+
| `import` | `akm import <file>` | `ref` |
|
|
104
|
+
| `save` | `akm save <ref>` | `ref` |
|
|
105
|
+
| `feedback` | `akm feedback <ref>` | `signal` (positive/negative) |
|
|
106
|
+
| `search` | `akm search <query>` | `query`, `source`, `signal` |
|
|
107
|
+
| `curate` | `akm curate <prompt>` | `query`, `source` |
|
|
108
|
+
| `show` | `akm show <ref>` | `ref`, `type`, `name` |
|
|
109
|
+
| `select` | `akm show` after a search returning the same ref | `ref`, `entryId` |
|
|
110
|
+
| `promoted` | `akm proposal accept <id>` | `ref` |
|
|
111
|
+
| `rejected` | `akm proposal reject <id>` | `ref` |
|
|
112
|
+
| `reflect_invoked` | Start of reflect phase in `akm improve` | `ref`, profile |
|
|
113
|
+
| `reflect_completed` | Reflect phase produced a proposal | `ref` |
|
|
114
|
+
| `improve_reflect_outcome` | Per-asset reflect result | `ref`, `ok`, `durationMs`, `reason` |
|
|
115
|
+
| `propose_invoked` | `akm propose` | `ref` |
|
|
116
|
+
| `distill_invoked` | `akm distill` | |
|
|
117
|
+
| `improve_skipped` | Asset skipped by cooldown or budget | `ref`, `reason` |
|
|
118
|
+
| `improve_completed` | `akm improve` run finished | run stats |
|
|
119
|
+
| `improve_failed` | `akm improve` run errored | error |
|
|
120
|
+
| `improve_lock_recovered` | Stale lock cleared at startup | |
|
|
121
|
+
| `proposal_orphan_purge` | Stale proposals pruned | `checked`, `rejected` |
|
|
122
|
+
| `proposal_creation_rejected` | `createProposal()` validation failed | `ref`, `reason`, `source` |
|
|
123
|
+
| `proposal_expired` | Proposal expired | `ref` |
|
|
124
|
+
| `events_purged` | Old events deleted by maintenance | `purgedCount`, `retentionDays` |
|
|
125
|
+
| `workflow_started` | `akm workflow start <ref>` | `ref`, `runId` |
|
|
126
|
+
| `workflow_step_completed` | `akm workflow next` | `ref`, `runId`, `stepId` |
|
|
127
|
+
| `workflow_finished` | `akm workflow complete` | `ref`, `runId` |
|
|
128
|
+
| `schema_repair_invoked` | `akm lint --repair` triggered schema repair | `ref` |
|
|
129
|
+
| `archive_cleanup` | Archive cleanup during consolidation | |
|
|
130
|
+
|
|
131
|
+
### 2. Proposals Table
|
|
132
|
+
|
|
133
|
+
The proposal queue: pending, accepted, and rejected improvement proposals for your stash assets. Generated by `akm reflect` and the improve loop.
|
|
134
|
+
|
|
135
|
+
Contents:
|
|
136
|
+
- Proposal UUID (primary key)
|
|
137
|
+
- Target asset ref
|
|
138
|
+
- Status (pending/accepted/rejected)
|
|
139
|
+
- Source (which process generated it — e.g. `reflect`, `distill`)
|
|
140
|
+
- Full proposal content (Markdown text)
|
|
141
|
+
- Created/updated timestamps
|
|
142
|
+
|
|
143
|
+
### 3. Task History Table
|
|
144
|
+
|
|
145
|
+
A record of scheduled task runs (from `akm tasks`):
|
|
146
|
+
- Task ID, status, start/end times
|
|
147
|
+
- Log file path (the log content stays in `$CACHE/tasks/logs/`)
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## How to Inspect and Clear Local Data
|
|
152
|
+
|
|
153
|
+
### Inspect events
|
|
154
|
+
|
|
155
|
+
```sh
|
|
156
|
+
# List recent events
|
|
157
|
+
akm events list
|
|
158
|
+
|
|
159
|
+
# Stream live events (tail)
|
|
160
|
+
akm events tail
|
|
161
|
+
|
|
162
|
+
# Filter by type
|
|
163
|
+
akm events list --type search --limit 20
|
|
164
|
+
|
|
165
|
+
# Filter by asset ref
|
|
166
|
+
akm events list --ref skill:code-review
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Inspect proposals
|
|
170
|
+
|
|
171
|
+
```sh
|
|
172
|
+
# List pending proposals
|
|
173
|
+
akm proposals
|
|
174
|
+
|
|
175
|
+
# Show a specific proposal
|
|
176
|
+
akm proposals show <id>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Clear specific data
|
|
180
|
+
|
|
181
|
+
```sh
|
|
182
|
+
# Delete the search index (safe — rebuilds with akm index --full)
|
|
183
|
+
rm ~/.local/share/akm/index.db
|
|
184
|
+
|
|
185
|
+
# Delete all cached registry downloads
|
|
186
|
+
rm -rf ~/.cache/akm/registry/
|
|
187
|
+
|
|
188
|
+
# Delete config backups
|
|
189
|
+
rm -rf ~/.cache/akm/config-backups/
|
|
190
|
+
|
|
191
|
+
# Delete the events log from state.db (non-reversible)
|
|
192
|
+
# There is no akm CLI command to do this directly in 0.8.0.
|
|
193
|
+
# Use SQLite directly:
|
|
194
|
+
sqlite3 ~/.local/share/akm/state.db "DELETE FROM events;"
|
|
195
|
+
|
|
196
|
+
# Delete all proposals
|
|
197
|
+
sqlite3 ~/.local/share/akm/state.db "DELETE FROM proposals;"
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Start completely fresh (nuclear reset)
|
|
201
|
+
|
|
202
|
+
```sh
|
|
203
|
+
rm -f ~/.config/akm/config.json
|
|
204
|
+
rm -rf ~/.local/share/akm/
|
|
205
|
+
rm -rf ~/.cache/akm/
|
|
206
|
+
# Your stash files in ~/akm/ are NOT touched by the above.
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Environment Variable Overrides
|
|
212
|
+
|
|
213
|
+
You can redirect any AKM directory to a custom path:
|
|
214
|
+
|
|
215
|
+
| Variable | Overrides |
|
|
216
|
+
|---|---|
|
|
217
|
+
| `AKM_CONFIG_DIR` | Config directory (`~/.config/akm/`) |
|
|
218
|
+
| `AKM_DATA_DIR` | Data directory (`~/.local/share/akm/`) |
|
|
219
|
+
| `AKM_STATE_DIR` | State directory (`~/.local/state/akm/`) |
|
|
220
|
+
| `AKM_CACHE_DIR` | Cache directory (`~/.cache/akm/`) |
|
|
221
|
+
| `AKM_STASH_DIR` | Default stash directory (`~/akm/`) |
|
|
222
|
+
| `XDG_CONFIG_HOME` | XDG base — akm appends `/akm` |
|
|
223
|
+
| `XDG_DATA_HOME` | XDG base — akm appends `/akm` |
|
|
224
|
+
| `XDG_STATE_HOME` | XDG base — akm appends `/akm` |
|
|
225
|
+
| `XDG_CACHE_HOME` | XDG base — akm appends `/akm` |
|
|
@@ -90,7 +90,7 @@ until the user opts in. Seven keys ship in 0.7.0:
|
|
|
90
90
|
| `feedback_distillation` | `akm distill <ref>` |
|
|
91
91
|
| `embedding_fallback_score` | scorer fallback when embeddings unavailable |
|
|
92
92
|
| `memory_inference` | indexer split of pending memories into atomic facts |
|
|
93
|
-
| `graph_extraction` | indexer entity/relation extraction →
|
|
93
|
+
| `graph_extraction` | indexer entity/relation extraction → SQLite graph tables |
|
|
94
94
|
|
|
95
95
|
Every gated call site uses `tryLlmFeature(feature, config, fn, fallback)`
|
|
96
96
|
from `src/llm/feature-gate.ts`. The wrapper guarantees:
|
|
@@ -14,4 +14,4 @@ This is a patch release that fixes the publish process. No functional changes fr
|
|
|
14
14
|
- **`.stash.json` no longer drives incremental stale detection** — editing `.stash.json` alone no longer forces directories to rescan during incremental indexing.
|
|
15
15
|
- **One-shot URL ingest for `akm import` and `akm wiki stash`** — both commands now accept a single HTTP/HTTPS URL in addition to file paths and stdin. `akm import <url>` fetches the exact page, converts it to markdown, and writes it into `knowledge/` using a URL-path-derived default name. `akm wiki stash <wiki> <url>` fetches the exact page, converts it to markdown, and writes it into `wikis/<wiki>/raw/`. Neither command registers a persistent website source or crawls linked pages.
|
|
16
16
|
|
|
17
|
-
For stash authors on the 0.7.x pre-release line: `.stash.json` remains supported for compatibility in this release, but it is deprecated and will be removed in v0.8.0. That timeline is intentional: during this aggressive pre-release phase-out window, compatibility shims do not stay around until 1.0 unless they still earn their cost. Prefer frontmatter for markdown assets and structured code comments for scripts, and migrate any remaining `.stash.json` metadata before taking the 0.8 upgrade.
|
|
17
|
+
For stash authors on the 0.7.x pre-release line: `.stash.json` remains supported for compatibility in this release, but it is deprecated and will be removed in v0.8.0. That timeline is intentional: during this aggressive pre-release phase-out window, compatibility shims do not stay around until 1.0 unless they still earn their cost. Prefer frontmatter for markdown assets and structured code comments for scripts, and migrate any remaining `.stash.json` metadata before taking the 0.8 upgrade.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Migration notes for akm v0.7.5
|
|
2
|
+
|
|
3
|
+
0.7.5 is a patch release that rolls up all changes shipped on `main` after v0.7.4.
|
|
4
|
+
|
|
5
|
+
- **Workflow runs are now workspace-scoped** — ref-based workflow commands (`workflow next`, `workflow status`, `workflow list`) now resolve runs within the current project/worktree/directory instead of sharing one global active-run pool across every repo and local sandbox. This fixes cross-repo blocking and leakage for workflow refs such as `workflow:github-issues-parallel-implementer`. Direct run-id commands still target the exact run.
|
|
6
|
+
- **Workflow help/docs now explain scope semantics** — CLI help, operator docs, and workflow-facing hints now describe the current-scope behavior so teams know that ref-based run resolution is local to the current workspace.
|
|
7
|
+
- **`show` now prefers fresh index state** — stale index reads auto-refresh instead of silently falling back to a raw filesystem path, reducing search/show drift.
|
|
8
|
+
- **External agent + LLM parsing is more defensive** — reflect/propose and related local-model JSON parsing paths are hardened against malformed or partial output.
|
|
9
|
+
- **Reflect temp-file handling is safer** — draft files for reflection flows now live in OS temp space instead of the stash.
|
|
10
|
+
- **Memory inference respects token budgets** — long inputs are now trimmed to the configured LLM budget.
|
|
11
|
+
- **Vault and save follow-ups landed** — vault path/run flows and named git stash selection in `akm save` received targeted fixes and regression coverage.
|
|
12
|
+
- **Release/migration packaging is tighter** — published static files, changelog resolution, and rerunnable release automation received follow-up fixes.
|
|
13
|
+
|
|
14
|
+
No manual migration is required for most users, but note these operator-facing details:
|
|
15
|
+
|
|
16
|
+
1. If you were relying on ref-based workflow runs being globally shared across repos or directories, that behavior is gone. Use direct run IDs when you intentionally need to resume a specific run created elsewhere.
|
|
17
|
+
2. Existing older workflow runs created before the new workspace scope key was introduced are still accessible by direct run ID, but ref-based commands now prefer runs created in the current scope.
|
|
18
|
+
3. `akm help migrate latest` now resolves to 0.7.5 and uses the published `CHANGELOG.md` path.
|
|
19
|
+
|
|
20
|
+
Full changelog: https://github.com/itlackey/akm/blob/main/CHANGELOG.md
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Migration notes for akm v0.8.0
|
|
2
|
+
|
|
3
|
+
This release combines the 0.8.0 CLI/storage break with the final improve-owned
|
|
4
|
+
maintenance migration work that landed before release validation closed.
|
|
5
|
+
|
|
6
|
+
Key operator-facing changes:
|
|
7
|
+
|
|
8
|
+
- `akm index --enrich` and `akm index --re-enrich` are removed.
|
|
9
|
+
- Plain `akm index` now owns metadata enhancement only.
|
|
10
|
+
- Memory inference and graph extraction now run from `akm improve` after
|
|
11
|
+
consolidation, not from `akm index`.
|
|
12
|
+
- Graph schema redesign (DB_VERSION 12 → 13): `graph_files` re-keyed on
|
|
13
|
+
`entry_id` with FK cascade to `entries(id)`, child tables follow.
|
|
14
|
+
Upgrade drops the graph tables and repopulates them on the next
|
|
15
|
+
`akm improve` cycle; non-graph tables rebuild automatically. Run
|
|
16
|
+
`akm improve` once after the storage migration to repopulate graph data.
|
|
17
|
+
- Manual QA and sandbox guidance now require isolating `AKM_DATA_DIR` in
|
|
18
|
+
addition to `HOME`, XDG dirs, and `AKM_STASH_DIR`.
|
|
19
|
+
- `akm health` is available for post-upgrade runtime checks against `state.db`,
|
|
20
|
+
task-history integrity, agent availability, and recent improve telemetry.
|
|
21
|
+
|
|
22
|
+
Primary public command family for 0.8.0:
|
|
23
|
+
|
|
24
|
+
- `akm improve [<type>|<ref>]`
|
|
25
|
+
- `akm propose <type> <name> (--task "..." | --file <path>)`
|
|
26
|
+
- `akm proposals`
|
|
27
|
+
- `akm show proposal <id>`
|
|
28
|
+
- `akm diff proposal <id>`
|
|
29
|
+
- `akm accept <id>`
|
|
30
|
+
- `akm reject <id> --reason "..."`
|
|
31
|
+
|
|
32
|
+
Proposal-queue and improvement workflows are consolidated around this family.
|
|
33
|
+
Update scripts, prompts, docs, and agent instructions before upgrading.
|
|
34
|
+
|
|
35
|
+
Behavior changes worth noting:
|
|
36
|
+
|
|
37
|
+
- `akm search` with no query now fails with `MISSING_REQUIRED_ARGUMENT`.
|
|
38
|
+
- `akm remember --enrich` is fail-soft: if no LLM is configured, the memory is
|
|
39
|
+
still written.
|
|
40
|
+
- `akm wiki stash <wiki> <url>` once again fetches and stores URL snapshots in
|
|
41
|
+
`wikis/<name>/raw/`.
|
|
42
|
+
- `akm health --since 24h` provides a fast operator check for state-db
|
|
43
|
+
round-trip health, task-log backing, and recent improve outcomes.
|
|
44
|
+
|
|
45
|
+
Release validation status for the final 0.8.0 cut:
|
|
46
|
+
|
|
47
|
+
- Full repo test suite passed.
|
|
48
|
+
- Docker install matrix passed for both Bun and binary install paths.
|