akm-cli 0.9.0-rc.9 → 0.9.1-beta.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/CHANGELOG.md +1770 -44
- package/README.md +38 -47
- package/SECURITY.md +14 -1
- package/STABILITY.md +499 -0
- package/dist/akm +148 -35
- package/dist/{akm-migrate-storage → akm-migrate} +6 -9
- package/dist/assets/hints/cli-hints-full.md +223 -95
- package/dist/assets/hints/cli-hints-short.md +85 -22
- package/dist/assets/improve-strategies/default.json +1 -1
- package/dist/assets/improve-strategies/reflect-distill.json +1 -1
- package/dist/assets/prompts/memory-infer-user.md +2 -3
- package/dist/assets/stash-skeleton/README.md +6 -5
- package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/command.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/domains.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/organization.md +20 -9
- package/dist/assets/tasks/core/extract.yml +1 -1
- package/dist/assets/tasks/core/version-check.yml +1 -1
- package/dist/assets/tasks/improve/akm-graph-refresh-weekly.yml +5 -0
- package/dist/assets/tasks/improve/akm-improve-catchup.yml +8 -0
- package/dist/assets/tasks/improve/akm-improve-consolidate.yml +5 -0
- package/dist/assets/tasks/improve/akm-improve-frequent.yml +5 -0
- package/dist/assets/tasks/improve/akm-improve-nightly.yml +5 -0
- package/dist/assets/templates/html/health.html +1 -3
- package/dist/assets/workflows/workflow-template.md +32 -15
- package/dist/cli/invocation.js +40 -15
- package/dist/cli/parse-args.js +0 -22
- package/dist/cli/retired-commands.js +121 -0
- package/dist/cli/shared.js +154 -22
- package/dist/cli/unknown-flags.js +236 -0
- package/dist/cli-node.mjs +2 -1
- package/dist/cli.js +696 -258
- package/dist/commands/agent/agent-dispatch.js +14 -3
- package/dist/commands/agent/contribute-cli.js +74 -89
- package/dist/commands/completions.js +79 -22
- package/dist/commands/config-cli.js +17 -150
- package/dist/commands/env/env-cli.js +59 -143
- package/dist/commands/env/env.js +12 -163
- package/dist/commands/env/marker-path.js +6 -0
- package/dist/commands/env/secret-cli.js +36 -66
- package/dist/commands/env/secret.js +24 -57
- package/dist/commands/feedback-cli.js +148 -88
- package/dist/commands/health/accept-rate.js +58 -0
- package/dist/commands/health/advisories.js +3 -4
- package/dist/commands/health/checks.js +85 -23
- package/dist/commands/health/html-report.js +7 -10
- package/dist/commands/health/improve-metrics.js +25 -83
- package/dist/commands/health/llm-usage.js +2 -1
- package/dist/commands/health/md-report.js +5 -9
- package/dist/commands/health/metrics.js +62 -20
- package/dist/commands/health/renderers.js +47 -0
- package/dist/commands/health/report-view-model.js +4 -5
- package/dist/commands/health/stash-exposure.js +1 -1
- package/dist/commands/health/surfaces.js +4 -122
- package/dist/commands/health/task-runs.js +3 -67
- package/dist/commands/health/types-improve.js +7 -0
- package/dist/commands/health.js +160 -35
- package/dist/commands/improve/anti-collapse.js +2 -2
- package/dist/commands/improve/autonomy-gate.js +68 -0
- package/dist/commands/improve/collapse-detector.js +41 -40
- package/dist/commands/improve/consolidate/eligibility.js +1 -23
- package/dist/commands/improve/consolidate/merge.js +4 -0
- package/dist/commands/improve/consolidate.js +140 -1000
- package/dist/commands/improve/distill/promote-memory.js +12 -12
- package/dist/commands/improve/distill/quality-gate.js +11 -6
- package/dist/commands/improve/distill.js +58 -69
- package/dist/commands/improve/eligibility.js +101 -55
- package/dist/commands/improve/extract-cli.js +14 -133
- package/dist/commands/improve/improve-cli.js +98 -114
- package/dist/commands/improve/improve-result-file.js +1 -28
- package/dist/commands/improve/improve-strategies.js +8 -5
- package/dist/commands/improve/improve.js +254 -101
- package/dist/commands/improve/locks.js +7 -0
- package/dist/commands/improve/loop-stages.js +182 -20
- package/dist/commands/improve/memory/derived-ref.js +45 -43
- package/dist/commands/improve/memory/memory-belief.js +1 -1
- package/dist/commands/improve/memory/memory-contradiction-detect.js +4 -12
- package/dist/commands/improve/memory/memory-improve.js +14 -5
- package/dist/commands/improve/outcome-loop.js +22 -65
- package/dist/commands/improve/preparation.js +114 -123
- package/dist/commands/improve/proactive-maintenance.js +2 -5
- package/dist/commands/improve/reflect.js +56 -160
- package/dist/commands/improve/run-context.js +5 -0
- package/dist/commands/improve/salience.js +11 -122
- package/dist/commands/improve/session-asset.js +4 -0
- package/dist/commands/improve/source-identity.js +10 -38
- package/dist/commands/lint/base-linter.js +51 -131
- package/dist/commands/lint/env-key-rules.js +31 -47
- package/dist/commands/lint/index.js +444 -88
- package/dist/commands/lint/types.js +22 -1
- package/dist/commands/{events.js → log.js} +33 -38
- package/dist/commands/migrate-cli.js +92 -12
- package/dist/commands/migration-tool.js +46 -0
- package/dist/commands/observability-cli.js +70 -209
- package/dist/commands/proposal/drain.js +101 -29
- package/dist/commands/proposal/proposal-cli.js +76 -48
- package/dist/commands/proposal/proposal.js +54 -18
- package/dist/commands/proposal/propose-cli.js +88 -0
- package/dist/commands/proposal/propose.js +23 -15
- package/dist/commands/proposal/repository.js +718 -279
- package/dist/commands/proposal/validators/proposal-quality-validators.js +2 -8
- package/dist/commands/proposal/validators/proposal-validators.js +55 -7
- package/dist/commands/proposal/validators/proposals.js +4 -7
- package/dist/commands/read/curate.js +34 -53
- package/dist/commands/read/knowledge.js +150 -95
- package/dist/commands/read/registry-search.js +2 -2
- package/dist/commands/read/remember-cli.js +42 -15
- package/dist/commands/read/search-cli.js +180 -78
- package/dist/commands/read/search.js +58 -43
- package/dist/commands/read/show.js +197 -141
- package/dist/commands/registry-cli.js +12 -51
- package/dist/commands/remember.js +14 -57
- package/dist/commands/sources/add-cli.js +100 -31
- package/dist/commands/sources/bundle-cli.js +166 -0
- package/dist/commands/sources/bundle-config-ops.js +7 -2
- package/dist/commands/sources/info.js +30 -7
- package/dist/commands/sources/init.js +12 -12
- package/dist/commands/sources/installed-stashes.js +387 -98
- package/dist/commands/sources/schema-repair.js +3 -2
- package/dist/commands/sources/self-update.js +131 -38
- package/dist/commands/sources/source-add.js +72 -17
- package/dist/commands/sources/source-clone.js +129 -45
- package/dist/commands/sources/source-manage.js +43 -23
- package/dist/commands/sources/sources-cli.js +57 -208
- package/dist/commands/sources/stash-cli.js +46 -53
- package/dist/commands/tasks/tasks-cli.js +91 -97
- package/dist/commands/tasks/tasks.js +284 -423
- package/dist/commands/workflow-cli.js +181 -450
- package/dist/core/abort-deadline.js +28 -0
- package/dist/core/adapter/adapters/agent-skills-adapter.js +67 -5
- package/dist/core/adapter/adapters/akm-adapter.js +60 -38
- package/dist/core/adapter/adapters/akm-lint.js +109 -42
- package/dist/core/adapter/adapters/akm-metadata.js +15 -44
- package/dist/core/adapter/adapters/akm-task-adapter.js +54 -31
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +55 -71
- package/dist/core/adapter/adapters/dotenv-adapter.js +1 -1
- package/dist/core/adapter/adapters/generic-files-adapter.js +2 -0
- package/dist/core/adapter/adapters/index.js +6 -6
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +14 -8
- package/dist/core/adapter/adapters/okf-adapter.js +187 -19
- package/dist/core/adapter/adapters/shared.js +3 -19
- package/dist/core/adapter/adapters/tool-dir-shared.js +13 -6
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +1 -0
- package/dist/core/adapter/detect-adapter.js +17 -0
- package/dist/core/adapter/recognize-match.js +6 -4
- package/dist/core/adapter/validate-context.js +214 -0
- package/dist/core/asset/akm-markdown.js +63 -0
- package/dist/core/asset/asset-placement.js +20 -6
- package/dist/core/asset/asset-ref.js +11 -9
- package/dist/core/asset/frontmatter-lint.js +30 -0
- package/dist/core/asset/frontmatter.js +29 -9
- package/dist/core/asset/markdown.js +40 -51
- package/dist/core/asset/resolve-ref.js +89 -18
- package/dist/core/asset/stash-meta.js +1 -1
- package/dist/core/bundle-id.js +51 -0
- package/dist/core/common.js +218 -44
- package/dist/core/concurrent.js +32 -0
- package/dist/core/config/config-io.js +12 -1
- package/dist/core/config/config-schema.js +35 -8
- package/dist/core/config/config-sources.js +55 -11
- package/dist/core/config/config-walker.js +25 -9
- package/dist/core/config/config.js +9 -48
- package/dist/core/config/experimental.js +21 -0
- package/dist/core/config/schema/embedding.js +5 -1
- package/dist/core/config/schema/experimental.js +30 -0
- package/dist/core/config/schema/improve-processes.js +0 -6
- package/dist/core/config/schema/improve.js +21 -3
- package/dist/core/config/schema/index-config.js +8 -15
- package/dist/core/config/schema/output.js +4 -1
- package/dist/core/config/schema/setup.js +9 -18
- package/dist/core/config/schema/sources-bundles.js +49 -33
- package/dist/core/config/schema/workflow.js +14 -3
- package/dist/core/env-secret-ref.js +76 -46
- package/dist/core/errors.js +43 -12
- package/dist/core/events.js +76 -152
- package/dist/core/file-change.js +6 -5
- package/dist/core/file-lock.js +7 -1
- package/dist/core/fs-txn.js +83 -7
- package/dist/core/git-message.js +2 -2
- package/dist/core/improve-result.js +6 -100
- package/dist/core/json-schema.js +327 -9
- package/dist/core/lesson-lint.js +1 -17
- package/dist/core/logs-db.js +2 -1
- package/dist/core/loopback.js +89 -0
- package/dist/core/migration-operation.js +33 -2
- package/dist/core/mutation-target.js +78 -0
- package/dist/core/parse.js +4 -1
- package/dist/core/path-access.js +107 -0
- package/dist/core/paths.js +17 -20
- package/dist/core/recognition-util.js +12 -14
- package/dist/core/redaction.js +98 -17
- package/dist/core/spawn-env.js +234 -0
- package/dist/core/standards/resolve-standards-context.js +2 -14
- package/dist/core/standards/resolve-stash-standards.js +2 -2
- package/dist/core/standards/resolve-type-conventions.js +2 -2
- package/dist/core/state/migrations.js +41 -18
- package/dist/core/state-db-scope.js +134 -0
- package/dist/core/state-db.js +5 -14
- package/dist/core/structured.js +1 -1
- package/dist/core/subprocess.js +182 -36
- package/dist/core/text-truncation.js +9 -5
- package/dist/core/type-presentation.js +3 -3
- package/dist/core/warn.js +0 -3
- package/dist/core/write-provenance.js +85 -0
- package/dist/core/write-source.js +778 -95
- package/dist/indexer/bundle-identity-guard.js +3 -2
- package/dist/indexer/db/graph-db.js +17 -30
- package/dist/indexer/ensure-index.js +11 -3
- package/dist/indexer/graph/graph-boost.js +9 -34
- package/dist/indexer/graph/graph-extraction.js +8 -5
- package/dist/indexer/index-writer-lock.js +53 -17
- package/dist/indexer/index-written-assets.js +33 -24
- package/dist/indexer/indexer.js +551 -253
- package/dist/indexer/installations.js +14 -96
- package/dist/indexer/passes/dir-staleness.js +16 -9
- package/dist/indexer/passes/memory-inference.js +15 -9
- package/dist/indexer/passes/metadata.js +113 -47
- package/dist/indexer/scan/doc-to-entry.js +38 -1
- package/dist/indexer/scan/drain-dir.js +13 -23
- package/dist/indexer/search/db-search.js +107 -69
- package/dist/indexer/search/fts-query.js +47 -24
- package/dist/indexer/search/ranking-contributors.js +42 -20
- package/dist/indexer/search/ranking.js +18 -99
- package/dist/indexer/search/search-fields.js +7 -2
- package/dist/indexer/search/search-source.js +82 -93
- package/dist/indexer/usage/usage-events.js +0 -89
- package/dist/indexer/walk/file-context.js +2 -1
- package/dist/indexer/walk/matchers.js +30 -43
- package/dist/indexer/walk/path-resolver.js +7 -2
- package/dist/indexer/walk/walker.js +38 -12
- package/dist/integrations/agent/builders.js +0 -6
- package/dist/integrations/agent/config.js +2 -2
- package/dist/integrations/agent/detect.js +49 -19
- package/dist/integrations/agent/engine-fallback.js +76 -0
- package/dist/integrations/agent/engine-resolution.js +24 -11
- package/dist/integrations/agent/model-aliases.js +1 -1
- package/dist/integrations/agent/profiles.js +23 -1
- package/dist/integrations/agent/prompts.js +12 -8
- package/dist/integrations/agent/runner-dispatch.js +4 -2
- package/dist/integrations/agent/runner.js +0 -1
- package/dist/integrations/agent/spawn.js +20 -93
- package/dist/integrations/github.js +1 -1
- package/dist/integrations/harnesses/aider/agent-builder.js +6 -4
- package/dist/integrations/harnesses/amazonq/agent-builder.js +7 -4
- package/dist/integrations/harnesses/claude/session-log.js +0 -10
- package/dist/integrations/harnesses/codex/agent-builder.js +5 -2
- package/dist/integrations/harnesses/copilot/agent-builder.js +5 -3
- package/dist/integrations/harnesses/gemini/agent-builder.js +5 -3
- package/dist/integrations/harnesses/index.js +3 -7
- package/dist/integrations/harnesses/opencode/agent-builder.js +21 -2
- package/dist/integrations/harnesses/opencode/session-log.js +0 -15
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +13 -4
- package/dist/integrations/harnesses/openhands/agent-builder.js +9 -6
- package/dist/integrations/harnesses/pi/agent-builder.js +6 -4
- package/dist/integrations/lockfile.js +132 -8
- package/dist/integrations/session-logs/index.js +3 -28
- package/dist/llm/client.js +136 -100
- package/dist/llm/embedders/remote.js +13 -5
- package/dist/llm/feature-gate.js +4 -12
- package/dist/llm/graph-extract.js +5 -11
- package/dist/llm/memory-infer.js +144 -1
- package/dist/llm/metadata-enhance.js +5 -7
- package/dist/llm/structured-call.js +1 -1
- package/dist/llm/usage-persist.js +26 -5
- package/dist/llm/usage-telemetry.js +25 -2
- package/dist/output/cli-hints.js +1 -2
- package/dist/output/context.js +22 -7
- package/dist/output/format-exempt.js +80 -0
- package/dist/output/generic-render.js +259 -0
- package/dist/output/render-registry.js +57 -0
- package/dist/output/renderers.js +14 -36
- package/dist/output/shapes/curate.js +10 -1
- package/dist/output/shapes/events.js +12 -7
- package/dist/output/shapes/helpers.js +56 -83
- package/dist/output/shapes/migrate.js +8 -0
- package/dist/output/shapes/passthrough.js +7 -41
- package/dist/output/shapes/proposal/producer.js +15 -7
- package/dist/output/shapes.js +2 -9
- package/dist/output/text/{init.js → bundle-create.js} +3 -1
- package/dist/output/text/bundle-show.js +7 -0
- package/dist/output/text/command-format.js +164 -96
- package/dist/output/text/env.js +1 -3
- package/dist/output/text/events.js +8 -7
- package/dist/output/text/health-format.js +103 -0
- package/dist/output/text/health.js +7 -0
- package/dist/output/text/helpers.js +10 -8
- package/dist/output/text/lint-format.js +56 -0
- package/dist/{migrate-storage-node.mjs → output/text/lint.js} +2 -5
- package/dist/output/text/migrate.js +88 -0
- package/dist/output/text/proposal/producer.js +4 -2
- package/dist/output/text/proposal-format.js +44 -72
- package/dist/output/text/registry-commands.js +1 -2
- package/dist/output/text/show-directives.js +15 -7
- package/dist/output/text/status-list.js +32 -0
- package/dist/output/text/{save.js → sync.js} +2 -2
- package/dist/output/text/workflow-format.js +24 -203
- package/dist/output/text/workflow.js +1 -7
- package/dist/output/text.js +16 -17
- package/dist/registry/factory.js +4 -6
- package/dist/registry/origin-resolve.js +16 -27
- package/dist/registry/providers/skills-sh.js +3 -3
- package/dist/registry/providers/static-index.js +13 -23
- package/dist/registry/resolve.js +42 -7
- package/dist/registry/semver.js +34 -84
- package/dist/runtime.js +2 -23
- package/dist/scripts/akm-migrate-node.js +60972 -0
- package/dist/scripts/akm-migrate.js +60310 -0
- package/dist/setup/detect.js +42 -15
- package/dist/setup/registry-stash-loader.js +2 -2
- package/dist/setup/setup.js +236 -136
- package/dist/setup/steps/connection.js +7 -9
- package/dist/setup/steps/platforms.js +9 -9
- package/dist/setup/steps/semantic.js +15 -3
- package/dist/setup/steps/sources.js +12 -13
- package/dist/setup/steps/stashdir.js +2 -3
- package/dist/setup/steps/tasks.js +237 -120
- package/dist/sources/freshness.js +1 -1
- package/dist/sources/provider-factory.js +11 -17
- package/dist/sources/providers/filesystem.js +2 -3
- package/dist/sources/providers/git-install.js +278 -34
- package/dist/sources/providers/git-provider.js +25 -23
- package/dist/sources/providers/git-stash.js +414 -106
- package/dist/sources/providers/git.js +2 -2
- package/dist/sources/providers/npm.js +16 -19
- package/dist/sources/providers/provider-utils.js +7 -4
- package/dist/sources/providers/sync-from-ref.js +3 -9
- package/dist/sources/providers/website.js +6 -1
- package/dist/sources/resolve.js +6 -5
- package/dist/sources/snapshot-fetchers/bluesky.js +146 -0
- package/dist/sources/snapshot-fetchers/content-extract.js +566 -0
- package/dist/sources/snapshot-fetchers/fetcher-util.js +41 -0
- package/dist/sources/snapshot-fetchers/github.js +100 -0
- package/dist/sources/snapshot-fetchers/host-guard.js +291 -0
- package/dist/sources/snapshot-fetchers/registry.js +17 -1
- package/dist/sources/snapshot-fetchers/robots.js +348 -0
- package/dist/sources/snapshot-fetchers/rss.js +282 -0
- package/dist/sources/snapshot-fetchers/secret-seam.js +42 -0
- package/dist/sources/snapshot-fetchers/website-ingest.js +686 -282
- package/dist/sources/snapshot-fetchers/x.js +910 -0
- package/dist/storage/database.js +13 -1
- package/dist/storage/engines/sqlite-migrations.js +23 -111
- package/dist/storage/managed-db.js +21 -2
- package/dist/storage/repositories/canaries-repository.js +1 -1
- package/dist/storage/repositories/events-repository.js +27 -11
- package/dist/storage/repositories/improve-runs-repository.js +6 -12
- package/dist/storage/repositories/index-connection.js +44 -8
- package/dist/storage/repositories/index-entries-repository.js +157 -241
- package/dist/storage/repositories/index-entry-mapper.js +15 -11
- package/dist/storage/repositories/index-fts-repository.js +5 -2
- package/dist/storage/repositories/index-llm-cache-repository.js +0 -1
- package/dist/storage/repositories/index-meta-repository.js +2 -3
- package/dist/storage/repositories/index-schema.js +10 -25
- package/dist/storage/repositories/index-utility-repository.js +15 -28
- package/dist/storage/repositories/index-vec-repository.js +6 -1
- package/dist/storage/repositories/outcome-repository.js +119 -0
- package/dist/storage/repositories/proposals-repository.js +296 -59
- package/dist/storage/repositories/registry-cache.js +19 -0
- package/dist/storage/repositories/salience-repository.js +172 -0
- package/dist/storage/repositories/task-history-repository.js +15 -13
- package/dist/storage/repositories/workflow-runs-repository.js +118 -53
- package/dist/tasks/backends/cron.js +105 -15
- package/dist/tasks/backends/index.js +1 -1
- package/dist/tasks/backends/launchd.js +85 -38
- package/dist/tasks/backends/schtasks.js +135 -15
- package/dist/tasks/embedded.js +56 -40
- package/dist/tasks/log-redaction.js +156 -0
- package/dist/tasks/parser.js +87 -160
- package/dist/tasks/resolve-akm-bin.js +137 -59
- package/dist/tasks/runner.js +209 -44
- package/dist/tasks/scheduler-invocation.js +220 -10
- package/dist/tasks/schema.js +89 -1
- package/dist/tasks/task-id.js +1 -3
- package/dist/tasks/validator.js +20 -6
- package/dist/workflows/authoring/authoring.js +94 -143
- package/dist/workflows/authoring/scope-key.js +1 -1
- package/dist/workflows/concurrency-policy.js +95 -1
- package/dist/workflows/exec/dispatch-redaction.js +114 -0
- package/dist/workflows/exec/exec-unit.js +542 -0
- package/dist/workflows/exec/frozen-judge.js +130 -32
- package/dist/workflows/exec/native-executor.js +513 -274
- package/dist/workflows/exec/param-secrets.js +12 -11
- package/dist/workflows/exec/run-workflow.js +496 -237
- package/dist/workflows/exec/step-work.js +616 -412
- package/dist/workflows/exec/unit-dispatch.js +34 -0
- package/dist/workflows/exec/unit-writer.js +53 -13
- package/dist/workflows/exec/worktree.js +454 -41
- package/dist/workflows/ir/compile.js +166 -271
- package/dist/workflows/ir/freeze.js +119 -42
- package/dist/workflows/ir/params.js +135 -11
- package/dist/workflows/ir/plan-hash.js +1 -1
- package/dist/workflows/ir/schema.js +129 -45
- package/dist/workflows/parser.js +1070 -307
- package/dist/workflows/program/expressions.js +20 -208
- package/dist/workflows/program/schema.js +31 -10
- package/dist/workflows/renderer.js +123 -68
- package/dist/workflows/resource-limits.js +184 -0
- package/dist/workflows/runtime/checkin.js +3 -3
- package/dist/workflows/runtime/plan-classifier.js +16 -75
- package/dist/workflows/runtime/runs.js +331 -132
- package/dist/workflows/runtime/unit-checkin.js +1 -1
- package/dist/workflows/runtime/unit-phases.js +2 -2
- package/dist/workflows/runtime/workflow-asset-loader.js +232 -83
- package/dist/workflows/schema.js +1 -11
- package/dist/workflows/validate-summary.js +47 -38
- package/dist/workflows/validator.js +21 -62
- package/docs/README.md +110 -0
- package/docs/migration/README.md +8 -0
- package/docs/migration/release-notes/0.7.0.md +11 -11
- package/docs/migration/release-notes/0.9.0.md +209 -27
- package/docs/migration/v0.7-to-v0.8.md +48 -48
- package/docs/migration/v0.8-to-v0.9.md +567 -209
- package/docs/migration/v0.9.0-troubleshooting.md +561 -0
- package/docs/reference/README.md +19 -0
- package/docs/reference/bundle-types.md +19 -0
- package/docs/reference/cli.md +2342 -0
- package/docs/reference/configuration.md +371 -0
- package/docs/reference/data-and-telemetry.md +129 -46
- package/docs/reference/supported-formats.md +50 -0
- package/docs/reference/workflow-schema.md +1014 -0
- package/docs/reference/workflows.md +51 -0
- package/package.json +31 -13
- package/schemas/akm-asset-envelope.json +93 -0
- package/schemas/akm-config.json +89 -128
- package/schemas/akm-task.json +27 -5
- package/schemas/akm-workflow.json +157 -81
- package/dist/assets/tasks/core/backup.yml +0 -5
- package/dist/assets/tasks/graph-refresh-weekly.yml +0 -10
- package/dist/cli/config-migrate.js +0 -1878
- package/dist/cli/config-validate.js +0 -41
- package/dist/commands/backup-cli.js +0 -56
- package/dist/commands/bundle/bundle-cli.js +0 -68
- package/dist/commands/bundle/bundle.js +0 -219
- package/dist/commands/graph/graph-cli.js +0 -124
- package/dist/commands/graph/graph.js +0 -489
- package/dist/commands/improve/extract-watch.js +0 -140
- package/dist/commands/mv-cli.js +0 -1221
- package/dist/commands/sources/history.js +0 -201
- package/dist/commands/tasks/default-tasks.js +0 -186
- package/dist/core/migration-backup.js +0 -1231
- package/dist/indexer/usage/unmigrated-vaults-guard.js +0 -95
- package/dist/llm/memory-infer-impl.js +0 -138
- package/dist/migrate/legacy/config-source-migration.js +0 -257
- package/dist/migrate/legacy/content-migration.js +0 -350
- package/dist/migrate/legacy/legacy-layout.js +0 -779
- package/dist/migrate/legacy/legacy-paths.js +0 -25
- package/dist/migrate/legacy/legacy-stash-json.js +0 -80
- package/dist/migrate/legacy/proposal-fs-import.js +0 -168
- package/dist/migrate/legacy/task-target-ref-migration.js +0 -278
- package/dist/migrate/legacy/three-db-cutover.js +0 -845
- package/dist/migrate/legacy/workflow-migrations-bodies.js +0 -52
- package/dist/migrate/legacy/workflow-migrations-frozen.js +0 -21
- package/dist/migrate/legacy-ref-grammar.js +0 -214
- package/dist/output/shapes/distill.js +0 -14
- package/dist/output/shapes/history.js +0 -11
- package/dist/output/text/distill.js +0 -6
- package/dist/output/text/enable-disable.js +0 -8
- package/dist/output/text/history.js +0 -6
- package/dist/registry/build-index.js +0 -382
- package/dist/schemas/akm-config.json +0 -4704
- package/dist/schemas/akm-task.json +0 -87
- package/dist/schemas/akm-workflow.json +0 -372
- package/dist/scripts/migrate-storage.js +0 -3816
- package/dist/workflows/authoring/workflow-program-template.yaml +0 -31
- package/dist/workflows/cli.js +0 -53
- package/dist/workflows/exec/brief.js +0 -481
- package/dist/workflows/exec/report.js +0 -1460
- package/dist/workflows/exec/watch.js +0 -116
- package/dist/workflows/program/parser.js +0 -813
- package/dist/workflows/program/project.js +0 -104
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
AKM reads one user configuration file: `$XDG_CONFIG_HOME/akm/config.json`
|
|
4
|
+
(normally `~/.config/akm/config.json` on Linux and macOS, or
|
|
5
|
+
`%APPDATA%\akm\config.json` on Windows). Set `AKM_CONFIG_DIR` to override the
|
|
6
|
+
directory. Project `.akm/config.json` files are not merged.
|
|
7
|
+
|
|
8
|
+
## Version 0.9
|
|
9
|
+
|
|
10
|
+
A present configuration file must set `configVersion` to exactly `"0.9.0"`.
|
|
11
|
+
Missing, older, newer, numeric, and malformed versions are rejected by ordinary
|
|
12
|
+
commands without rewriting the file. `akm migrate status` reports config and
|
|
13
|
+
database state independently; it exits nonzero when migration is blocked.
|
|
14
|
+
`akm migrate apply` installs an operator-prepared 0.9 config and applies pending
|
|
15
|
+
database migrations, but it never guesses profile-to-engine mappings. See [the
|
|
16
|
+
migration guide](../migration/v0.8-to-v0.9.md) before editing an existing
|
|
17
|
+
installation.
|
|
18
|
+
|
|
19
|
+
Canonical config and durable database access fail closed while a restore or
|
|
20
|
+
migration-apply operation is incomplete. Use `akm migrate status` to inspect it
|
|
21
|
+
and `akm migrate apply` to retry; do not delete migration control files manually.
|
|
22
|
+
|
|
23
|
+
AKM 0.8 does not provide these migration commands. To cross from 0.8 to 0.9,
|
|
24
|
+
prepare the target and an independent filesystem backup first, install or stage
|
|
25
|
+
the 0.9 binary manually, then invoke that new binary with `migrate apply
|
|
26
|
+
--config`. Do not use `upgrade --migration-config` from 0.8; that installed 0.8
|
|
27
|
+
code cannot enforce safeguards introduced by 0.9.
|
|
28
|
+
|
|
29
|
+
```jsonc
|
|
30
|
+
{
|
|
31
|
+
"configVersion": "0.9.0",
|
|
32
|
+
"$schema": "https://itlackey.github.io/akm/schemas/akm-config.json",
|
|
33
|
+
"engines": {
|
|
34
|
+
"fast": {
|
|
35
|
+
"kind": "llm",
|
|
36
|
+
"endpoint": "http://localhost:11434/v1/chat/completions",
|
|
37
|
+
"model": "qwen3",
|
|
38
|
+
"apiKey": "${LOCAL_LLM_API_KEY}"
|
|
39
|
+
},
|
|
40
|
+
"reviewer": {
|
|
41
|
+
"kind": "agent",
|
|
42
|
+
"platform": "opencode",
|
|
43
|
+
"model": "anthropic/claude-sonnet-4-6"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"defaults": {
|
|
47
|
+
"engine": "reviewer",
|
|
48
|
+
"llmEngine": "fast",
|
|
49
|
+
"improveStrategy": "default"
|
|
50
|
+
},
|
|
51
|
+
"workflow": {
|
|
52
|
+
"maxConcurrency": 8,
|
|
53
|
+
"judgeEngine": "reviewer"
|
|
54
|
+
},
|
|
55
|
+
"improve": {
|
|
56
|
+
"strategies": {
|
|
57
|
+
"nightly": {
|
|
58
|
+
"engine": "fast",
|
|
59
|
+
"processes": {
|
|
60
|
+
"reflect": {},
|
|
61
|
+
"memoryInference": { "model": "qwen3-small", "llm": { "temperature": 0.1 } }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Engines
|
|
70
|
+
|
|
71
|
+
`engines` is the only public execution map. An engine name is lowercase
|
|
72
|
+
kebab-case, at most 63 characters, and cannot start with `akm-`.
|
|
73
|
+
|
|
74
|
+
| Kind | Required fields | Use |
|
|
75
|
+
| --- | --- | --- |
|
|
76
|
+
| `llm` | `endpoint`, `model` | OpenAI-compatible chat completions |
|
|
77
|
+
| `agent` | `platform` | A registered dispatch-capable harness |
|
|
78
|
+
|
|
79
|
+
LLM endpoints must be complete `http://` or `https://` chat-completions URLs
|
|
80
|
+
ending in `/chat/completions`, without userinfo, query, or fragment. API keys
|
|
81
|
+
are symbolic only: `$VAR` or `${VAR}`. AKM resolves them only at dispatch.
|
|
82
|
+
|
|
83
|
+
An agent engine may set `bin`, `args`, `workspace`, `model`, `timeoutMs`, and
|
|
84
|
+
`modelAliases`. Only `platform: "opencode-sdk"` may set `llmEngine`; it names
|
|
85
|
+
the LLM engine used as that SDK engine's fallback connection.
|
|
86
|
+
|
|
87
|
+
`platform: "opencode-sdk"` needs the **`opencode` binary** on PATH (or a `bin`
|
|
88
|
+
pointing at it). akm bundles `@opencode-ai/sdk`, but that package is an HTTP
|
|
89
|
+
client with no dependencies — it spawns `opencode serve` and talks to it — so
|
|
90
|
+
the npm dependency alone does not make the platform usable. Install the binary
|
|
91
|
+
with `npm i -g opencode-ai` or opencode's own installer.
|
|
92
|
+
|
|
93
|
+
Config-root `modelAliases` resolve by exact engine/platform column first, then
|
|
94
|
+
the shared `llm` column for direct and fallback LLM engines, then `"*"`. The
|
|
95
|
+
resolved exact model is used consistently by direct dispatch, SDK fallback,
|
|
96
|
+
health evidence, and frozen workflow plans.
|
|
97
|
+
|
|
98
|
+
`defaults.engine` names an LLM or agent engine. `defaults.llmEngine` must name
|
|
99
|
+
an LLM engine. There is no first-engine fallback: an unset `defaults.engine`
|
|
100
|
+
never resolves to some arbitrary entry in `engines`. It resolves instead to a
|
|
101
|
+
synthesized, config-free `opencode-sdk` engine when the `opencode` binary is on
|
|
102
|
+
PATH — announced once per run, and preempted by any `opencode-sdk` engine you
|
|
103
|
+
configure yourself. Naming an engine that is not configured is always an error
|
|
104
|
+
and is never rescued by that fallback.
|
|
105
|
+
|
|
106
|
+
Index passes select engines through `index.defaults.engine` or
|
|
107
|
+
`index.<pass>.engine`. Per-pass `model`, `timeoutMs`, and `llm` fields are
|
|
108
|
+
invocation overrides; `enabled: false` disables that pass. Connection fields
|
|
109
|
+
such as `endpoint`, `provider`, and `apiKey` belong only on named engines.
|
|
110
|
+
|
|
111
|
+
`workflow.maxConcurrency` is the native workflow engine ceiling. An explicit
|
|
112
|
+
value is clamped to `1..64`. When absent, AKM derives the cap once from the CPU
|
|
113
|
+
count (`min(16, max(1, cores - 2))`) and freezes it into the run plan, so resume
|
|
114
|
+
does not change policy on a different host or after config edits.
|
|
115
|
+
|
|
116
|
+
`workflow.defaultMapConcurrency` is the width a `map` step freezes when it
|
|
117
|
+
declares no `concurrency:` of its own. Unset means **4** — map steps are
|
|
118
|
+
parallel by default as of 0.9.1. An explicit value is clamped to `1..64`; set
|
|
119
|
+
it to `1` to restore the pre-0.9.1 serial-by-default fan-out for every workflow
|
|
120
|
+
on this machine. It is only a default: an authored `map.concurrency` always
|
|
121
|
+
wins, and it never raises a step past `workflow.maxConcurrency`, the selected
|
|
122
|
+
engine's `concurrency`, or the host CPU cap. An LLM engine that declares no
|
|
123
|
+
`engines.<name>.concurrency` gets **1** on a loopback endpoint (a local model
|
|
124
|
+
server holds one loaded model) and **4** on a remote one.
|
|
125
|
+
|
|
126
|
+
`workflow.judgeEngine` names the LLM or agent engine used to verify every
|
|
127
|
+
non-empty workflow `### gate` rubric. It is required when a workflow declares
|
|
128
|
+
completion criteria and is frozen into each new run, so later config edits do
|
|
129
|
+
not change an in-flight run's verifier. Missing, failed, or malformed verifier
|
|
130
|
+
results reject the gate; criteria are never silently bypassed.
|
|
131
|
+
|
|
132
|
+
## Strategies
|
|
133
|
+
|
|
134
|
+
Improve presets live under `improve.strategies`; invoke one with
|
|
135
|
+
`akm improve --strategy <name>`. The selection order is `--strategy`,
|
|
136
|
+
`defaults.improveStrategy`, then built-in `default`. A strategy and each process
|
|
137
|
+
can select `engine`, `model`, `timeoutMs`, and LLM request overrides:
|
|
138
|
+
|
|
139
|
+
```jsonc
|
|
140
|
+
{
|
|
141
|
+
"improve": {
|
|
142
|
+
"strategies": {
|
|
143
|
+
"nightly": {
|
|
144
|
+
"engine": "fast",
|
|
145
|
+
"processes": {
|
|
146
|
+
"reflect": { "llm": { "temperature": 0.2 } },
|
|
147
|
+
"graphExtraction": { "model": "qwen3-small" }
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
LLM-only improve processes require an LLM engine; an explicit invalid or
|
|
156
|
+
incompatible engine never falls back to another engine. Built-in strategies
|
|
157
|
+
are complete presets. User-defined strategies inherit omitted fields from the
|
|
158
|
+
built-in `default` strategy before applying their own overrides.
|
|
159
|
+
|
|
160
|
+
The shipped `default` and `frequent` strategies keep improve-stage session
|
|
161
|
+
extraction off. `proactiveMaintenance` is off in `default` and
|
|
162
|
+
`reflect-distill`; run `akm improve --strategy proactive-maintenance` to use the
|
|
163
|
+
dedicated opt-in preset. Because strategies inherit from `default`, a preset
|
|
164
|
+
that omits either process also inherits the off value. User strategy overrides
|
|
165
|
+
are applied last, so an explicit `enabled: true` still opts the selected
|
|
166
|
+
strategy in.
|
|
167
|
+
|
|
168
|
+
These improve-stage defaults do not gate explicit standalone extraction through
|
|
169
|
+
`akm proposal extract --type <harness>` or `akm proposal extract --auto`. The interactive
|
|
170
|
+
scheduled-task step also continues to offer the bundled `core/extract` template
|
|
171
|
+
as an unselected opt-in; it is not installed merely because the template is
|
|
172
|
+
bundled.
|
|
173
|
+
|
|
174
|
+
## Indexing
|
|
175
|
+
|
|
176
|
+
`index.indexBodyOpening` defaults to `false`. When enabled, AKM captures the
|
|
177
|
+
first prose paragraph of each Markdown asset body, capped at 280 characters,
|
|
178
|
+
into the lowest-weight search content and embedding text. Secret and env files
|
|
179
|
+
are never read for this field, and session-kind memories are excluded.
|
|
180
|
+
|
|
181
|
+
Changing this option changes indexed text. Run `akm index --full` after
|
|
182
|
+
toggling it so all entries and embeddings are rebuilt consistently. If the
|
|
183
|
+
setting differs from the state used to build the current index, AKM warns until
|
|
184
|
+
that full rebuild completes.
|
|
185
|
+
|
|
186
|
+
## Semantic search
|
|
187
|
+
|
|
188
|
+
`semanticSearchMode` (top-level, `"off" | "auto"`, default `"off"`) gates
|
|
189
|
+
embedding-based search. `"auto"` lets AKM set up embeddings (which downloads
|
|
190
|
+
a local model unless you point `embedding` at a remote provider) and falls
|
|
191
|
+
back to keyword-only FTS if the embedding runtime is unavailable; `"off"`
|
|
192
|
+
disables semantic search outright and search is always keyword-only FTS.
|
|
193
|
+
The default is `"off"` so a bare or headless install (`akm bundle create`, `--yes`,
|
|
194
|
+
`--config`) never silently downloads the local embedding model on first
|
|
195
|
+
index.
|
|
196
|
+
The interactive `akm setup` wizard pre-selects semantic search **on**
|
|
197
|
+
regardless of this default, and warns that choosing it downloads the model
|
|
198
|
+
unless a remote `embedding` config is provided.
|
|
199
|
+
|
|
200
|
+
```jsonc
|
|
201
|
+
{ "semanticSearchMode": "off" }
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
`embedding` configures the connection used for semantic search and
|
|
205
|
+
`akm improve`'s memory-inference/consolidate passes when they call an
|
|
206
|
+
embedding model: `provider`, `endpoint`, `model`, `apiKey` (symbolic
|
|
207
|
+
reference, same rules as engine `apiKey`), `dimension`, `localModel`,
|
|
208
|
+
`maxTokens`, `batchSize`, `chunkSize`, `contextLength`, and
|
|
209
|
+
`ollamaOptions.num_ctx`.
|
|
210
|
+
|
|
211
|
+
## Search tuning
|
|
212
|
+
|
|
213
|
+
`search` tunes ranking, not behavior an ordinary user needs to touch:
|
|
214
|
+
|
|
215
|
+
| Key | Purpose |
|
|
216
|
+
| --- | --- |
|
|
217
|
+
| `search.minScore` | Drop results below this score |
|
|
218
|
+
| `search.defaultExcludeTypes` | Asset types excluded from results by default |
|
|
219
|
+
|
|
220
|
+
### Graph boost search tuning
|
|
221
|
+
|
|
222
|
+
| Key | Purpose |
|
|
223
|
+
| --- | --- |
|
|
224
|
+
| `search.graphBoost.*` | Entity-graph relevance boost: `directBoostPerEntity`/`directBoostCap` (directly related entities), `hopBoostPerEntity`/`hopBoostCap` (multi-hop, capped at `maxHops` ≤ 3), `confidenceMode` (`off`\|`blend`\|`multiply`, default `blend`), `confidenceWeight` (0–1, default `0.2`) |
|
|
225
|
+
|
|
226
|
+
## Feedback
|
|
227
|
+
|
|
228
|
+
`feedback` shapes the `akm feedback` taxonomy:
|
|
229
|
+
|
|
230
|
+
| Key | Purpose |
|
|
231
|
+
| --- | --- |
|
|
232
|
+
| `feedback.requireReason` | Whether `akm feedback --negative` without `--reason`/`--failure-mode` is a hard error. **Defaults to `true`** when unset — set `false` to downgrade the check to a warning instead |
|
|
233
|
+
| `feedback.allowedFailureModes` | Restrict `--failure-mode` values accepted by `akm feedback`. Curated set (also the default when unset): `incorrect`, `outdated`, `dangerous`, `incomplete`, `redundant` |
|
|
234
|
+
|
|
235
|
+
## Bundles and write target
|
|
236
|
+
|
|
237
|
+
`bundles` (replacing the retired `stashDir`/`sources[]`/`installed[]` trio)
|
|
238
|
+
and `defaultBundle` are the 0.9 source configuration shape — see
|
|
239
|
+
[Concepts](https://github.com/itlackey/akm/blob/main/docs/guides/concepts.md) and the [CLI reference](cli.md) for the
|
|
240
|
+
full bundle model (`path`, `git`, `website`, `npm`, `writable`, `registryId`,
|
|
241
|
+
`components`). `defaultBundle` must name a key in `bundles` when set. A
|
|
242
|
+
bundle's `components.<id>.adapter` key pins it to a specific format adapter
|
|
243
|
+
instead of relying on auto-detection — see [Bundle Types](bundle-types.md)
|
|
244
|
+
for the full adapter list and what each one reads/writes.
|
|
245
|
+
|
|
246
|
+
### defaultWriteTarget
|
|
247
|
+
|
|
248
|
+
`defaultWriteTarget` names the bundle that write commands (`akm remember`,
|
|
249
|
+
`akm env`/`secret create`, `akm improve`, etc.) fall back to when no
|
|
250
|
+
explicit destination flag is given and the command isn't already scoped to a
|
|
251
|
+
specific source. It must name a configured bundle; setting it with no
|
|
252
|
+
`bundles` configured, or naming an unconfigured bundle, is rejected at
|
|
253
|
+
`config set` (or config load) time. The full write-target resolution order
|
|
254
|
+
is the command's destination flag (`--bundle` on `remember`/`clone`/
|
|
255
|
+
`improve`, `--target` on `env`/`secret create`) -> `defaultWriteTarget` ->
|
|
256
|
+
working bundle (`defaultBundle`) -> `ConfigError`.
|
|
257
|
+
|
|
258
|
+
### Memory scope
|
|
259
|
+
|
|
260
|
+
`akm remember`'s scope flags (`--user`, `--agent`, `--run`, `--channel`)
|
|
261
|
+
write four canonical top-level frontmatter keys on the memory file:
|
|
262
|
+
`scope_user`, `scope_agent`, `scope_run`, `scope_channel` (one key per
|
|
263
|
+
non-empty scope value; string values). This is not a config-file setting —
|
|
264
|
+
it is documented here because it is the multi-tenant/multi-agent contract
|
|
265
|
+
that `akm search --filter` and `akm show --filter` read back:
|
|
266
|
+
`--filter user=<id>` / `--filter agent=<id>` / `--filter run=<id>` /
|
|
267
|
+
`--filter channel=<name>` (repeatable) narrow results/resolution to assets
|
|
268
|
+
whose frontmatter scope matches, without changing ranking. A memory with
|
|
269
|
+
only scope flags and no tags is valid — the tag-required check is
|
|
270
|
+
independent of scope. `--scope` was removed in 0.9.0 with no alias; use
|
|
271
|
+
`--filter`.
|
|
272
|
+
|
|
273
|
+
`archiveRetentionDays` (default `90` when unset) controls how long a pending
|
|
274
|
+
proposal is kept before `akm improve`'s maintenance pass archives it (status
|
|
275
|
+
`rejected`, reason `"expired: no action within retention window"`) — `akm
|
|
276
|
+
proposal` itself has no archive/expire verb. Setting it to `0` or less
|
|
277
|
+
disables expiry entirely.
|
|
278
|
+
|
|
279
|
+
## Registries
|
|
280
|
+
|
|
281
|
+
`registries` (top-level array, distinct from `bundles`) lists remote package
|
|
282
|
+
registries `akm registry`/`akm bundle add` can search and install from.
|
|
283
|
+
Each entry is `{ url, name?, enabled?, provider?, options? }`; `provider`
|
|
284
|
+
defaults to `"static-index"`. See [Registries](https://github.com/itlackey/akm/blob/main/docs/reference/registry.md) for the full
|
|
285
|
+
field reference and provider list.
|
|
286
|
+
|
|
287
|
+
## Output defaults
|
|
288
|
+
|
|
289
|
+
`output.format` (one of `json`\|`yaml`\|`text`\|`jsonl`\|`md`\|`html`,
|
|
290
|
+
default `json`) and `output.detail` (`brief`\|`normal`\|`full`, default
|
|
291
|
+
`brief`) set the CLI's default `--format`/`--detail` when the flags are
|
|
292
|
+
omitted. Per-command flags always override these.
|
|
293
|
+
|
|
294
|
+
## Setup-derived recommendations
|
|
295
|
+
|
|
296
|
+
`setup` is reserved for configuration derived by `akm setup`. It currently
|
|
297
|
+
holds no keys — the `setup.taskSchedules` sub-key was removed in 0.9.0 after
|
|
298
|
+
nothing in the setup flow or the tasks subsystem was found to read or write
|
|
299
|
+
it. Scheduling lives in the tasks subsystem (`akm task`).
|
|
300
|
+
|
|
301
|
+
## Experimental opt-ins
|
|
302
|
+
|
|
303
|
+
`experimental` holds explicit opt-ins for behavior outside the 0.9
|
|
304
|
+
stability contract (see [STABILITY.md](../../STABILITY.md) for full
|
|
305
|
+
classification). Every key defaults to **off**; an absent `experimental`
|
|
306
|
+
section, an absent key, and an explicit `false` all read identically as off.
|
|
307
|
+
|
|
308
|
+
```jsonc
|
|
309
|
+
{
|
|
310
|
+
"experimental": {
|
|
311
|
+
"improveAutonomy": false
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
- **`experimental.improveAutonomy`** — gates only the autonomous
|
|
317
|
+
`memoryInference`, `triagePromote`, and `memoryCleanup` lanes. `akm improve`
|
|
318
|
+
itself always runs; this only gates mutations without a human in the loop.
|
|
319
|
+
Consolidation is not gated: it remains advisory and emits reviewable
|
|
320
|
+
proposals. `sync.push` is deliberately **not** gated by this key.
|
|
321
|
+
|
|
322
|
+
## Managing Config
|
|
323
|
+
|
|
324
|
+
```sh
|
|
325
|
+
akm config list
|
|
326
|
+
akm config get engines.fast
|
|
327
|
+
akm config set engines.fast '{"kind":"llm","endpoint":"http://localhost:11434/v1/chat/completions","model":"qwen3"}'
|
|
328
|
+
akm config set engines.fast.apiKey '$LOCAL_LLM_API_KEY'
|
|
329
|
+
akm config unset engines.old
|
|
330
|
+
akm migrate status
|
|
331
|
+
akm migrate status --config ./prepared-0.9.json
|
|
332
|
+
akm migrate apply --config ./prepared-0.9.json --dry-run
|
|
333
|
+
akm migrate apply --config ./prepared-0.9.json
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Object values passed to `config set` deep-merge with their current value.
|
|
337
|
+
Arrays replace, `null` is only valid for nullable fields, and `config unset` is
|
|
338
|
+
the only deletion operation. `configVersion` cannot be set or unset with the
|
|
339
|
+
generic walker.
|
|
340
|
+
|
|
341
|
+
## Environment
|
|
342
|
+
|
|
343
|
+
| Variable | Purpose |
|
|
344
|
+
| --- | --- |
|
|
345
|
+
| `AKM_CONFIG_DIR` | Override the user config directory (or set `XDG_CONFIG_HOME`) |
|
|
346
|
+
| `AKM_ENGINE_<NAME>_API_KEY` | Fallback credential for LLM engine `<name>` |
|
|
347
|
+
| `AKM_LLM_API_KEY` | Fallback only for the selected `defaults.llmEngine` |
|
|
348
|
+
| `AKM_EMBED_API_KEY` | Embedding credential |
|
|
349
|
+
| `AKM_BUNDLE_DIR` | Override the bundle directory |
|
|
350
|
+
| `AKM_DATA_DIR` | Override the data directory — durable `index.db`/`workflow.db`/`state.db`, `akm.lock`, config backups (or set `XDG_DATA_HOME`) |
|
|
351
|
+
| `AKM_CACHE_DIR` | Override the cache directory — regenerable caches (or set `XDG_CACHE_HOME`) |
|
|
352
|
+
| `AKM_STATE_DIR` | Override the state directory — task-scheduler invocation state (or set `XDG_STATE_HOME`) |
|
|
353
|
+
| `AKM_SQLITE_JOURNAL_MODE` | SQLite journal mode: `WAL` (default), `DELETE`, or `TRUNCATE` |
|
|
354
|
+
| `AKM_VERBOSE` | Truthy value enables the same diagnostics as `--verbose` |
|
|
355
|
+
| `AKM_DEBUG` | `1` prints a stack trace on unexpected internal errors |
|
|
356
|
+
|
|
357
|
+
For an engine named `fast`, its fallback variable is
|
|
358
|
+
`AKM_ENGINE_FAST_API_KEY`. An explicit `apiKey` symbolic reference is
|
|
359
|
+
authoritative and does not fall through to another variable.
|
|
360
|
+
|
|
361
|
+
Use `AKM_SQLITE_JOURNAL_MODE=DELETE` or `TRUNCATE` when WAL is unavailable,
|
|
362
|
+
such as on some NFS/SMB mounts. With the default `WAL` setting, AKM detects a
|
|
363
|
+
network filesystem for the data directory and falls back to `DELETE`.
|
|
364
|
+
|
|
365
|
+
## Retired Configuration
|
|
366
|
+
|
|
367
|
+
`profiles`, `llm`, `agent`, `features`, `stashes`, `defaults.llm`,
|
|
368
|
+
`defaults.agent`, and `defaults.improve` are rejected in 0.9. Recreate the
|
|
369
|
+
configuration using `engines`, `defaults.engine`, `defaults.llmEngine`, and
|
|
370
|
+
`improve.strategies`; AKM deliberately does not infer or rename ambiguous
|
|
371
|
+
profile identities.
|