akm-cli 0.9.0-rc.5 → 0.9.0-rc.7
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 +116 -26
- package/README.md +7 -7
- package/SECURITY.md +11 -10
- package/dist/akm +2 -2
- package/dist/akm-migrate-storage +2 -2
- package/dist/assets/hints/cli-hints-full.md +60 -73
- package/dist/assets/hints/cli-hints-short.md +8 -12
- package/dist/assets/improve-strategies/default.json +5 -7
- package/dist/assets/improve-strategies/frequent.json +2 -2
- package/dist/assets/improve-strategies/proactive-maintenance.json +2 -2
- package/dist/assets/improve-strategies/quick.json +1 -1
- package/dist/assets/improve-strategies/reflect-distill.json +3 -3
- package/dist/assets/improve-strategies/thorough.json +1 -1
- package/dist/assets/prompts/consolidate-system.md +5 -5
- package/dist/assets/prompts/extract-session.md +2 -6
- package/dist/assets/prompts/reflect-llm-framed-contract.md +11 -0
- package/dist/assets/prompts/reflect-llm-schema-contract.md +3 -0
- package/dist/assets/prompts/reflect-output-repair.md +3 -0
- package/dist/assets/stash-skeleton/README.md +10 -11
- package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +1 -1
- package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +1 -1
- package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +1 -1
- package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +2 -2
- package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +2 -2
- package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +1 -1
- package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +2 -2
- package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +1 -1
- package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +18 -18
- package/dist/assets/stash-skeleton/facts/conventions/domains.md +8 -9
- package/dist/assets/stash-skeleton/facts/conventions/organization.md +13 -15
- package/dist/assets/tasks/core/extract.yml +2 -2
- package/dist/assets/tasks/core/improve.yml +1 -1
- package/dist/assets/templates/html/health.html +2 -3
- package/dist/cli/config-migrate.js +1328 -101
- package/dist/cli/invocation.js +255 -0
- package/dist/cli/parse-args.js +20 -83
- package/dist/cli/shared.js +15 -37
- package/dist/cli.js +18 -49
- package/dist/commands/agent/agent-dispatch.js +2 -2
- package/dist/commands/agent/contribute-cli.js +5 -4
- package/dist/commands/bundle/bundle-cli.js +68 -0
- package/dist/commands/bundle/bundle.js +219 -0
- package/dist/commands/completions.js +2 -2
- package/dist/commands/config-cli.js +6 -3
- package/dist/commands/env/env-binding.js +13 -9
- package/dist/commands/env/env-cli.js +49 -48
- package/dist/commands/env/secret-cli.js +24 -10
- package/dist/commands/events.js +2 -2
- package/dist/commands/feedback-cli.js +59 -33
- package/dist/commands/graph/graph.js +6 -4
- package/dist/commands/health/advisories.js +4 -4
- package/dist/commands/health/html-report.js +190 -593
- package/dist/commands/health/improve-metrics.js +240 -188
- package/dist/commands/health/metrics.js +9 -17
- package/dist/commands/health/report-view-model.js +509 -0
- package/dist/commands/health/surfaces.js +6 -3
- package/dist/commands/health/types-checks.js +4 -0
- package/dist/commands/health/types-improve.js +22 -0
- package/dist/commands/health/types-metrics.js +4 -0
- package/dist/commands/health/types-result.js +7 -0
- package/dist/commands/health/types-runs.js +4 -0
- package/dist/commands/health/types-session-log.js +4 -0
- package/dist/commands/health/types-windows.js +4 -0
- package/dist/commands/health/types.js +26 -21
- package/dist/commands/health/windows.js +1 -2
- package/dist/commands/health.js +219 -161
- package/dist/commands/improve/collapse-detector.js +25 -14
- package/dist/commands/improve/consolidate/chunking.js +7 -5
- package/dist/commands/improve/consolidate.js +640 -740
- package/dist/commands/improve/content-hash.js +39 -0
- package/dist/commands/improve/distill/content-repair.js +4 -10
- package/dist/commands/improve/distill/promote-memory.js +73 -47
- package/dist/commands/improve/distill/quality-gate.js +30 -15
- package/dist/commands/improve/distill-promotion-policy.js +24 -885
- package/dist/commands/improve/distill.js +564 -341
- package/dist/commands/improve/eligibility.js +75 -36
- package/dist/commands/improve/extract-cli.js +6 -6
- package/dist/commands/improve/extract-prompt.js +5 -34
- package/dist/commands/improve/extract.js +524 -358
- package/dist/commands/improve/feedback-valence.js +2 -12
- package/dist/commands/improve/improve-cli.js +11 -20
- package/dist/commands/improve/improve-result-file.js +7 -6
- package/dist/commands/improve/improve-run-types.js +4 -0
- package/dist/commands/improve/improve-strategies.js +3 -9
- package/dist/commands/improve/improve.js +781 -668
- package/dist/commands/improve/locks.js +6 -2
- package/dist/commands/improve/loop-stages.js +938 -965
- package/dist/commands/improve/memory/derived-ref.js +122 -0
- package/dist/commands/improve/memory/memory-contradiction-detect.js +35 -38
- package/dist/commands/improve/memory/memory-improve.js +24 -37
- package/dist/commands/improve/outcome-loop.js +13 -33
- package/dist/commands/improve/preparation.js +886 -692
- package/dist/commands/improve/proactive-maintenance.js +33 -3
- package/dist/commands/improve/proposal-envelope.js +31 -0
- package/dist/commands/improve/reflect.js +962 -549
- package/dist/commands/improve/run-context.js +119 -0
- package/dist/commands/improve/salience.js +8 -4
- package/dist/commands/improve/session-asset.js +7 -3
- package/dist/commands/improve/shared.js +14 -40
- package/dist/commands/improve/source-identity.js +39 -26
- package/dist/commands/improve/triage.js +20 -17
- package/dist/commands/lint/base-linter.js +288 -295
- package/dist/commands/lint/index.js +132 -19
- package/dist/commands/mv-cli.js +257 -234
- package/dist/commands/observability-cli.js +2 -1
- package/dist/commands/proposal/diff-format.js +50 -0
- package/dist/commands/proposal/drain-policies.js +0 -6
- package/dist/commands/proposal/drain.js +17 -16
- package/dist/commands/proposal/proposal-cli.js +40 -77
- package/dist/commands/proposal/proposal-types.js +56 -0
- package/dist/commands/proposal/proposal.js +39 -1
- package/dist/commands/proposal/propose.js +41 -19
- package/dist/commands/proposal/repository.js +566 -486
- package/dist/commands/proposal/validators/proposal-quality-validators.js +22 -6
- package/dist/commands/proposal/validators/proposal-validators.js +6 -5
- package/dist/commands/proposal/validators/proposals.js +5 -4
- package/dist/commands/read/curate.js +50 -28
- package/dist/commands/read/knowledge.js +25 -16
- package/dist/commands/read/remember-cli.js +12 -4
- package/dist/commands/read/search-cli.js +33 -33
- package/dist/commands/read/search.js +68 -55
- package/dist/commands/read/show.js +54 -135
- package/dist/commands/remember.js +7 -5
- package/dist/commands/sources/add-cli.js +10 -24
- package/dist/commands/sources/bundle-config-ops.js +58 -0
- package/dist/commands/sources/history.js +13 -8
- package/dist/commands/sources/info.js +10 -11
- package/dist/commands/sources/init.js +12 -21
- package/dist/commands/sources/installed-stashes.js +151 -138
- package/dist/commands/sources/schema-repair.js +5 -3
- package/dist/commands/sources/self-update.js +9 -7
- package/dist/commands/sources/source-add.js +116 -154
- package/dist/commands/sources/source-clone.js +33 -14
- package/dist/commands/sources/source-manage.js +43 -32
- package/dist/commands/sources/sources-cli.js +12 -7
- package/dist/commands/sources/stash-cli.js +12 -5
- package/dist/commands/sources/stash-skeleton.js +1 -1
- package/dist/commands/tasks/default-tasks.js +13 -13
- package/dist/commands/tasks/tasks-cli.js +3 -3
- package/dist/commands/tasks/tasks.js +71 -31
- package/dist/commands/workflow-cli.js +22 -26
- package/dist/core/action-contributors.js +1 -1
- package/dist/core/activation-policy.js +49 -0
- package/dist/core/adapter/adapters/agent-skills-adapter.js +181 -0
- package/dist/core/adapter/adapters/akm-adapter.js +509 -0
- package/dist/core/adapter/adapters/akm-lint.js +381 -0
- package/dist/core/adapter/adapters/akm-metadata.js +416 -0
- package/dist/core/adapter/adapters/akm-task-adapter.js +150 -0
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +196 -0
- package/dist/core/adapter/adapters/claude-adapter.js +61 -0
- package/dist/core/adapter/adapters/dotenv-adapter.js +187 -0
- package/dist/core/adapter/adapters/generic-files-adapter.js +117 -0
- package/dist/core/adapter/adapters/index.js +80 -0
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +413 -0
- package/dist/core/adapter/adapters/okf-adapter.js +223 -0
- package/dist/core/adapter/adapters/opencode-adapter.js +68 -0
- package/dist/core/adapter/adapters/shared.js +286 -0
- package/dist/core/adapter/adapters/tool-dir-shared.js +212 -0
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +154 -0
- package/dist/core/adapter/bundle-adapter.js +4 -0
- package/dist/core/adapter/recognize-match.js +42 -0
- package/dist/core/adapter/registry.js +56 -0
- package/dist/core/adapter/types.js +4 -0
- package/dist/core/asset/asset-placement.js +229 -0
- package/dist/core/asset/asset-ref.js +107 -78
- package/dist/core/asset/asset-serialize.js +20 -0
- package/dist/core/asset/frontmatter.js +1 -1
- package/dist/core/asset/resolve-ref.js +223 -0
- package/dist/core/asset/stash-meta.js +1 -1
- package/dist/core/common.js +141 -49
- package/dist/core/config/config-io.js +0 -108
- package/dist/core/config/config-schema.js +94 -1039
- package/dist/core/config/config-sources.js +115 -36
- package/dist/core/config/config-types.js +16 -11
- package/dist/core/config/config-walker.js +4 -2
- package/dist/core/config/config.js +21 -26
- package/dist/core/config/engine-semantics.js +0 -4
- package/dist/core/config/schema/embedding.js +38 -0
- package/dist/core/config/schema/engines.js +116 -0
- package/dist/core/config/schema/feedback.js +31 -0
- package/dist/core/config/schema/improve-processes.js +395 -0
- package/dist/core/config/schema/improve.js +76 -0
- package/dist/core/config/schema/index-config.js +183 -0
- package/dist/core/config/schema/output.js +15 -0
- package/dist/core/config/schema/primitives.js +94 -0
- package/dist/core/config/schema/search.js +30 -0
- package/dist/core/config/schema/setup.js +27 -0
- package/dist/core/config/schema/sources-bundles.js +164 -0
- package/dist/core/config/schema/workflow.js +29 -0
- package/dist/core/env-secret-ref.js +113 -8
- package/dist/core/errors.js +1 -1
- package/dist/core/events-types.js +4 -0
- package/dist/core/file-change.js +16 -0
- package/dist/core/fs-txn.js +316 -0
- package/dist/core/git-message.js +59 -0
- package/dist/core/improve-result.js +9 -1
- package/dist/core/logs-db.js +1 -1
- package/dist/core/migration-backup.js +335 -162
- package/dist/core/paths.js +3 -6
- package/dist/core/platform.js +10 -0
- package/dist/core/recognition-util.js +130 -0
- package/dist/core/redaction.js +2 -2
- package/dist/core/standards/resolve-standards-context.js +47 -64
- package/dist/core/standards/resolve-type-conventions.js +3 -3
- package/dist/core/state/migrations.js +201 -8
- package/dist/core/state-db.js +38 -2
- package/dist/core/subprocess.js +303 -0
- package/dist/core/time.js +20 -0
- package/dist/core/type-presentation.js +130 -0
- package/dist/core/write-source.js +38 -67
- package/dist/indexer/bundle-identity-guard.js +91 -0
- package/dist/indexer/db/graph-db.js +1 -1
- package/dist/indexer/db/llm-cache.js +1 -1
- package/dist/indexer/ensure-index.js +28 -10
- package/dist/indexer/graph/graph-boost.js +28 -24
- package/dist/indexer/graph/graph-extraction.js +5 -6
- package/dist/indexer/graph/graph-types.js +4 -0
- package/dist/indexer/index-written-assets.js +44 -17
- package/dist/indexer/indexer.js +289 -153
- package/dist/indexer/init.js +18 -25
- package/dist/indexer/installations.js +224 -0
- package/dist/indexer/passes/dir-staleness.js +2 -1
- package/dist/indexer/passes/memory-inference.js +8 -4
- package/dist/indexer/passes/metadata.js +96 -243
- package/dist/indexer/scan/doc-to-entry.js +123 -0
- package/dist/indexer/scan/drain-dir.js +144 -0
- package/dist/indexer/search/db-search.js +171 -99
- package/dist/indexer/search/fts-query.js +1 -1
- package/dist/indexer/search/ranking-contributors.js +57 -7
- package/dist/indexer/search/ranking-types.js +4 -0
- package/dist/indexer/search/ranking.js +31 -6
- package/dist/indexer/search/search-attribution.js +67 -0
- package/dist/indexer/search/search-hit-enrichers.js +30 -40
- package/dist/indexer/search/search-source.js +109 -52
- package/dist/indexer/search/semantic-status.js +4 -1
- package/dist/indexer/usage/unmigrated-vaults-guard.js +2 -1
- package/dist/indexer/usage/usage-events.js +72 -9
- package/dist/indexer/walk/file-context.js +1 -44
- package/dist/indexer/walk/matchers.js +16 -32
- package/dist/indexer/walk/path-resolver.js +6 -5
- package/dist/indexer/walk/walker.js +4 -2
- package/dist/integrations/agent/engine-resolution.js +22 -0
- package/dist/integrations/agent/model-aliases.js +1 -1
- package/dist/integrations/agent/prompts.js +35 -11
- package/dist/integrations/agent/spawn.js +41 -270
- package/dist/integrations/harnesses/aider/agent-builder.js +2 -2
- package/dist/integrations/harnesses/aider/index.js +2 -11
- package/dist/integrations/harnesses/amazonq/agent-builder.js +1 -9
- package/dist/integrations/harnesses/amazonq/index.js +3 -16
- package/dist/integrations/harnesses/claude/config-import.js +1 -3
- package/dist/integrations/harnesses/claude/index.js +1 -12
- package/dist/integrations/harnesses/claude/session-log.js +27 -65
- package/dist/integrations/harnesses/codex/agent-builder.js +1 -2
- package/dist/integrations/harnesses/codex/index.js +2 -12
- package/dist/integrations/harnesses/copilot/agent-builder.js +2 -3
- package/dist/integrations/harnesses/copilot/index.js +1 -12
- package/dist/integrations/harnesses/gemini/agent-builder.js +1 -3
- package/dist/integrations/harnesses/gemini/index.js +1 -12
- package/dist/integrations/harnesses/ids.js +24 -0
- package/dist/integrations/harnesses/index.js +27 -2
- package/dist/integrations/harnesses/opencode/config-import.js +1 -3
- package/dist/integrations/harnesses/opencode/index.js +1 -12
- package/dist/integrations/harnesses/opencode/session-log.js +67 -110
- package/dist/integrations/harnesses/opencode-sdk/harness.js +2 -11
- package/dist/integrations/harnesses/openhands/agent-builder.js +3 -3
- package/dist/integrations/harnesses/openhands/index.js +2 -11
- package/dist/integrations/harnesses/pi/agent-builder.js +3 -11
- package/dist/integrations/harnesses/pi/index.js +3 -15
- package/dist/integrations/harnesses/shared.js +17 -0
- package/dist/integrations/harnesses/types.js +37 -2
- package/dist/integrations/lockfile.js +36 -0
- package/dist/integrations/session-logs/index.js +21 -12
- package/dist/integrations/session-logs/provider-base.js +113 -0
- package/dist/llm/embedders/deterministic.js +2 -2
- package/dist/llm/embedders/remote.js +8 -4
- package/dist/llm/graph-extract.js +7 -2
- package/dist/llm/metadata-enhance.js +43 -26
- package/dist/llm/structured-call.js +15 -7
- package/dist/migrate/legacy/config-source-migration.js +223 -0
- package/dist/migrate/legacy/content-migration.js +305 -0
- package/dist/migrate/legacy/legacy-layout.js +779 -0
- package/dist/migrate/legacy/legacy-paths.js +25 -0
- package/dist/migrate/legacy/legacy-stash-json.js +72 -0
- package/dist/migrate/legacy/proposal-fs-import.js +168 -0
- package/dist/migrate/legacy/task-target-ref-migration.js +272 -0
- package/dist/migrate/legacy/three-db-cutover.js +841 -0
- package/dist/migrate/legacy/workflow-migrations-bodies.js +52 -0
- package/dist/migrate/legacy/workflow-migrations-frozen.js +21 -0
- package/dist/migrate/legacy-ref-grammar.js +209 -0
- package/dist/output/command-registry.js +27 -0
- package/dist/output/html-render.js +11 -16
- package/dist/output/renderers.js +32 -276
- package/dist/output/shapes/passthrough.js +3 -9
- package/dist/output/shapes/registry.js +12 -6
- package/dist/output/text/command-format.js +547 -0
- package/dist/output/text/helpers.js +15 -1377
- package/dist/output/text/proposal-format.js +230 -0
- package/dist/output/text/registry.js +12 -6
- package/dist/output/text/show-directives.js +107 -0
- package/dist/output/text/show-format.js +103 -0
- package/dist/output/text/workflow-format.js +345 -0
- package/dist/output/text.js +1 -3
- package/dist/registry/build-index.js +13 -17
- package/dist/registry/providers/static-index.js +2 -2
- package/dist/registry/resolve.js +4 -90
- package/dist/registry/semver.js +93 -0
- package/dist/runtime.js +90 -0
- package/dist/schemas/akm-config.json +2956 -14890
- package/dist/scripts/migrate-storage.js +2312 -19643
- package/dist/setup/detect.js +5 -7
- package/dist/setup/engine-config.js +2 -1
- package/dist/setup/registry-stash-loader.js +1 -1
- package/dist/setup/semantic-assets.js +12 -9
- package/dist/setup/setup.js +109 -39
- package/dist/setup/steps/connection-shared.js +120 -0
- package/dist/setup/steps/connection.js +50 -274
- package/dist/setup/steps/platforms.js +1 -0
- package/dist/setup/steps/sources.js +13 -6
- package/dist/setup/steps/stashdir.js +5 -2
- package/dist/sources/freshness.js +39 -0
- package/dist/sources/providers/git-provider.js +29 -33
- package/dist/sources/providers/git-stash.js +10 -5
- package/dist/sources/providers/provider-utils.js +40 -18
- package/dist/sources/providers/website.js +1 -1
- package/dist/sources/resolve.js +5 -5
- package/dist/sources/snapshot-fetchers/types.js +4 -0
- package/dist/sources/{website-ingest.js → snapshot-fetchers/website-ingest.js} +105 -39
- package/dist/storage/database.js +47 -3
- package/dist/storage/engines/sqlite-migrations.js +34 -16
- package/dist/storage/locations.js +1 -2
- package/dist/storage/repositories/improve-runs-repository.js +0 -20
- package/dist/storage/repositories/index-connection.js +80 -0
- package/dist/storage/repositories/index-db.js +4 -3
- package/dist/storage/repositories/index-entries-repository.js +952 -0
- package/dist/{indexer/db/entry-mapper.js → storage/repositories/index-entry-mapper.js} +15 -2
- package/dist/storage/repositories/index-entry-types.js +4 -0
- package/dist/storage/repositories/index-fts-repository.js +164 -0
- package/dist/storage/repositories/index-llm-cache-repository.js +109 -0
- package/dist/storage/repositories/index-meta-repository.js +50 -0
- package/dist/{indexer/db/schema.js → storage/repositories/index-schema.js} +241 -100
- package/dist/storage/repositories/index-sql.js +12 -0
- package/dist/storage/repositories/index-utility-repository.js +369 -0
- package/dist/storage/repositories/index-vec-repository.js +245 -0
- package/dist/storage/repositories/proposals-repository.js +41 -50
- package/dist/storage/repositories/registry-cache.js +1 -1
- package/dist/storage/repositories/workflow-runs-repository.js +17 -11
- package/dist/tasks/backends/cron.js +5 -5
- package/dist/tasks/backends/exec-utils.js +21 -0
- package/dist/tasks/backends/index.js +6 -9
- package/dist/tasks/backends/launchd.js +16 -17
- package/dist/tasks/backends/schtasks.js +33 -41
- package/dist/tasks/backends/types.js +4 -0
- package/dist/tasks/parser.js +25 -5
- package/dist/tasks/runner.js +33 -39
- package/dist/tasks/validator.js +5 -6
- package/dist/workflows/authoring/authoring.js +8 -11
- package/dist/workflows/exec/brief.js +10 -7
- package/dist/workflows/exec/report.js +261 -156
- package/dist/workflows/exec/run-workflow.js +2 -1
- package/dist/workflows/exec/step-work.js +3 -9
- package/dist/workflows/program/parser.js +4 -60
- package/dist/workflows/renderer.js +11 -60
- package/dist/workflows/runtime/checkin.js +1 -1
- package/dist/workflows/runtime/plan-classifier.js +7 -4
- package/dist/workflows/runtime/runs.js +11 -10
- package/dist/workflows/runtime/unit-checkin.js +1 -1
- package/dist/workflows/runtime/unit-phases.js +20 -0
- package/dist/workflows/runtime/workflow-asset-loader.js +27 -16
- package/dist/workflows/validate-summary.js +2 -2
- package/dist/workflows/validator.js +18 -2
- package/docs/migration/release-notes/0.9.0.md +45 -3
- package/docs/migration/v0.8-to-v0.9.md +466 -262
- package/docs/{data-and-telemetry.md → reference/data-and-telemetry.md} +61 -17
- package/package.json +10 -9
- package/schemas/akm-config.json +2956 -14890
- package/dist/assets/help/help-accept.md +0 -12
- package/dist/assets/help/help-improve.md +0 -87
- package/dist/assets/help/help-proposals.md +0 -17
- package/dist/assets/help/help-propose.md +0 -17
- package/dist/assets/help/help-reject.md +0 -11
- package/dist/assets/improve-strategies/recombine-only.json +0 -23
- package/dist/assets/improve-strategies/synthesize.json +0 -17
- package/dist/assets/prompts/procedural-system.md +0 -44
- package/dist/assets/prompts/recombine-system.md +0 -40
- package/dist/assets/prompts/staleness-detect-system.md +0 -6
- package/dist/assets/templates/html/default.html +0 -78
- package/dist/assets/templates/html/vendor/echarts.min.js +0 -45
- package/dist/assets/wiki/index-template.md +0 -12
- package/dist/assets/wiki/ingest-workflow-template.md +0 -83
- package/dist/assets/wiki/log-template.md +0 -8
- package/dist/assets/wiki/schema-template.md +0 -61
- package/dist/commands/improve/calibration.js +0 -161
- package/dist/commands/improve/dedup.js +0 -482
- package/dist/commands/improve/hot-probation.js +0 -45
- package/dist/commands/improve/improve-auto-accept.js +0 -262
- package/dist/commands/improve/procedural.js +0 -403
- package/dist/commands/improve/recombine.js +0 -843
- package/dist/commands/improve/schema-similarity-gate.js +0 -168
- package/dist/commands/lint/agent-linter.js +0 -44
- package/dist/commands/lint/command-linter.js +0 -44
- package/dist/commands/lint/default-linter.js +0 -16
- package/dist/commands/lint/fact-linter.js +0 -39
- package/dist/commands/lint/knowledge-linter.js +0 -16
- package/dist/commands/lint/memory-linter.js +0 -61
- package/dist/commands/lint/registry.js +0 -41
- package/dist/commands/lint/skill-linter.js +0 -45
- package/dist/commands/lint/task-linter.js +0 -50
- package/dist/commands/lint/workflow-linter.js +0 -81
- package/dist/commands/proposal/legacy-import.js +0 -115
- package/dist/commands/wiki-cli.js +0 -291
- package/dist/core/asset/asset-registry.js +0 -76
- package/dist/core/asset/asset-spec.js +0 -316
- package/dist/core/eval/rank-metrics.js +0 -113
- package/dist/core/ripgrep/install.js +0 -163
- package/dist/core/ripgrep/resolve.js +0 -81
- package/dist/indexer/db/db.js +0 -1585
- package/dist/indexer/manifest.js +0 -170
- package/dist/indexer/passes/metadata-contributors.js +0 -31
- package/dist/integrations/harnesses/opencode-sdk/index.js +0 -25
- package/dist/output/text/wiki.js +0 -16
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +0 -18229
- package/dist/scripts/migrations/v16-to-v17.js +0 -141
- package/dist/storage/repositories/consolidation-repository.js +0 -38
- package/dist/storage/repositories/recombine-repository.js +0 -213
- package/dist/wiki/wiki-templates.js +0 -15
- package/dist/wiki/wiki.js +0 -1013
- package/dist/workflows/db.js +0 -413
- package/docs/migration/release-notes/0.9.0-beta.60.md +0 -19
- /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/registry.js +0 -0
- /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/youtube.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,10 +4,79 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.9.0] - 2026-07-20
|
|
8
|
+
|
|
9
|
+
0.9.0 is the format-neutral **bundle / adapter** refactor: it replaces the flat
|
|
10
|
+
asset-type registry with per-format adapters, adopts one canonical ref grammar,
|
|
11
|
+
and consolidates the durable databases and config. This section supersedes the
|
|
12
|
+
earlier `0.9.0-rc.1` / `0.9.0-beta.*` development entries below.
|
|
13
|
+
|
|
14
|
+
### Breaking changes & migration
|
|
15
|
+
|
|
16
|
+
- **Installed non-akm bundles reclassify on your next `akm index`.** The
|
|
17
|
+
indexer now dispatches each installed bundle's *detected* adapter (Claude
|
|
18
|
+
tool dirs, LLM wikis, website snapshots, agent-skills packs, …) instead of
|
|
19
|
+
recognizing everything with the akm-stash adapter. Entries in such bundles
|
|
20
|
+
change type and ref spelling to the owning adapter's own scheme the first
|
|
21
|
+
time you reindex. No action needed — the index is a regenerable cache and
|
|
22
|
+
rebuilds itself — but searches/saved refs into those bundles may resolve to
|
|
23
|
+
the new spellings afterwards.
|
|
24
|
+
- **Ref grammar cutover — `type:name` → `[bundle//]conceptId`.** Every ref is
|
|
25
|
+
now a subdir-qualified concept id inside its bundle (`skills/code-review`,
|
|
26
|
+
`memories/vpn-note`, `env/prod`), optionally prefixed with a `bundle//`
|
|
27
|
+
installation slug and suffixed with `#fragment`. Durable state stores the
|
|
28
|
+
fully-qualified `bundle//conceptId`; the short bundle-omitted form is accepted
|
|
29
|
+
input only (resolved against `defaultBundle`, then installation-priority
|
|
30
|
+
order). The pre-0.9.0 `[origin//]type:name` grammar is removed — there is no
|
|
31
|
+
compatibility parser; the frozen migrator in `src/migrate/legacy/` is the only
|
|
32
|
+
place it survives.
|
|
33
|
+
- **Explicit, journaled, crash-resumable cutover (`akm migrate apply`).** The
|
|
34
|
+
migrator re-keys all durable state to the new spelling, folds the former
|
|
35
|
+
`workflow.db` into `state.db` (four databases down to three: `state.db` /
|
|
36
|
+
`index.db` / a separate `logs.db`), and migrates config from the flat
|
|
37
|
+
`stashDir` / `sources` / `installed` / `wikiName` keys to `bundles` /
|
|
38
|
+
`defaultBundle`. A verified, installation-scoped **backup manifest v3**
|
|
39
|
+
(covering the pre-rescue `index.db`) is taken before any ledger is sealed;
|
|
40
|
+
expected orphans are quarantined, integrity failures fail closed, and the
|
|
41
|
+
whole cutover resumes idempotently after a crash. Normal commands refuse an
|
|
42
|
+
un-migrated or divergent durable schema rather than migrating as a side effect.
|
|
43
|
+
The retired `stashDir` / `sources` / `installed` keys are **hard-rejected** by
|
|
44
|
+
the 0.9.0 config schema whenever present (the error names `akm migrate apply`);
|
|
45
|
+
registry-installed bundles keep only their desired locator (`git`/`npm` +
|
|
46
|
+
`registryId`) in config, with resolved cache state living exclusively in the
|
|
47
|
+
lockfile.
|
|
48
|
+
- **`index.md` / `log.md` are reserved structural files.** Per the Open
|
|
49
|
+
Knowledge Format, `index.md` (directory listing) and `log.md` (update history)
|
|
50
|
+
are never indexed as concepts and are never valid write / `mv` targets at any
|
|
51
|
+
bundle depth. Existing stash files with those names are excluded from the
|
|
52
|
+
index (and renamed by the content migration when they hold a real concept).
|
|
53
|
+
- **`vault` asset type removed.** Use `env` (a whole `.env` group; key names
|
|
54
|
+
surfaced, values never) and `secret` (a single sensitive value), addressed as
|
|
55
|
+
`env/<name>` and `secrets/<name>`. `akm-migrate-storage` still performs the
|
|
56
|
+
non-destructive `vaults/` → `env/` copy for older stashes.
|
|
57
|
+
- **0.8-era CLI aliases removed.** The flat proposal verbs (`akm proposals`,
|
|
58
|
+
`akm accept`, `akm reject`, `akm diff`, `akm revert`, `akm show proposal`),
|
|
59
|
+
`akm save`, top-level `akm enable` / `akm disable`, `akm events`,
|
|
60
|
+
`--detail summary|agent`, `--for-agent`, `--note`, and `--source` (on
|
|
61
|
+
accept/reject/history) are gone — use the canonical spellings documented in
|
|
62
|
+
`STABILITY.md`.
|
|
63
|
+
|
|
64
|
+
See `docs/migration/v0.8-to-v0.9.md` and
|
|
65
|
+
`docs/migration/release-notes/0.9.0.md` for the full upgrade procedure.
|
|
8
66
|
|
|
9
67
|
### Added
|
|
10
68
|
|
|
69
|
+
- **Local downstream value attribution for memory inference and graph
|
|
70
|
+
extraction.** Private search-hit sidecars now write versioned, source-qualified
|
|
71
|
+
per-entry `usage_events.metadata` for emitted MI direct/surface value and the
|
|
72
|
+
active graph contributor's positive applied/capped contribution. Current plain
|
|
73
|
+
traffic is marked as control, brief/replaced MI surfaces and graph ablations do
|
|
74
|
+
not claim attribution, and nested curate reads avoid duplicate show rows. The
|
|
75
|
+
read-only `akm-eval-attribution-rollup` separates user-only exposure,
|
|
76
|
+
selection/show consumption, current controls, and historical unattributed rows
|
|
77
|
+
without emitting bodies, query text, or provenance content. Graph contribution
|
|
78
|
+
is an input attribution signal, not a causal claim that rank changed. No table,
|
|
79
|
+
migration, dashboard, or health schema was added.
|
|
11
80
|
- **Explicit, crash-resumable 0.9 migration coordination.** `akm migrate
|
|
12
81
|
status` classifies config, `state.db`, and `workflow.db` independently;
|
|
13
82
|
`akm migrate apply [--config <prepared>]` creates a verified,
|
|
@@ -165,7 +234,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
165
234
|
exceeding it warns on stderr but still writes. Additionally, a type-root
|
|
166
235
|
write (no `--path`, flat name) into a stash carrying convention facts now
|
|
167
236
|
returns an additive `hint` output key pointing at the stash's placement
|
|
168
|
-
conventions (`
|
|
237
|
+
conventions (`facts/conventions/organization` when that fact exists), so CLI
|
|
169
238
|
writers see the conventions that LLM flows already receive by injection.
|
|
170
239
|
- **`--supersedes <ref>` on `akm remember` and `akm import` — atomic
|
|
171
240
|
correction + demotion of the superseded asset.** The stash conventions'
|
|
@@ -195,9 +264,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
195
264
|
parser. On a git write target the demotion is ordered before the
|
|
196
265
|
batch-at-boundary commit, so the correction and the demoted old asset land
|
|
197
266
|
in one commit.
|
|
198
|
-
- **Ref-prefix search queries — `akm search "<
|
|
267
|
+
- **Ref-prefix search queries — `akm search "<subdir>/<prefix>/"` now enumerates
|
|
199
268
|
that subtree.** A query shaped like a ref prefix (trailing slash required:
|
|
200
|
-
`
|
|
269
|
+
`memories/projectA/`; a bare `memories/` lists the whole type) translates to a
|
|
201
270
|
typed index enumeration narrowed to entry names under the prefix, instead of
|
|
202
271
|
degenerating into the AND-token FTS query its sanitized form used to produce
|
|
203
272
|
(`"memory projectA"` — noise, since `entry_type` is not an FTS column). The
|
|
@@ -207,15 +276,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
207
276
|
composes with `--limit`, `--belief`, `--filter`, and named `--source`
|
|
208
277
|
narrowing exactly like the existing empty-query enumeration — hits carry the
|
|
209
278
|
fixed browse score `1` in deterministic listing order, not a relevance
|
|
210
|
-
ranking. The parsed type is explicit intent: a bare `
|
|
279
|
+
ranking. The parsed type is explicit intent: a bare `sessions/` enumerates
|
|
211
280
|
sessions just like `--type session` (the default session exclusion is an
|
|
212
281
|
untyped-path policy), while an explicit `--type` flag always wins over the
|
|
213
282
|
type parsed from the query (the branch fires only on untyped searches). A
|
|
214
|
-
full ref without the trailing slash (`
|
|
283
|
+
full ref without the trailing slash (`memories/projectA/auth-tip`) stays an
|
|
215
284
|
ordinary keyword search — resolving a single ref is `akm show`'s job.
|
|
216
285
|
**Stable-surface note:** `akm search` is Stable; this changes results for a
|
|
217
286
|
query shape that previously returned noise or nothing. A user literally
|
|
218
|
-
keyword-searching for the string `
|
|
287
|
+
keyword-searching for the string `memories/x/` loses the old fuzzy token
|
|
219
288
|
behavior — accepted as negligible.
|
|
220
289
|
- **The `category:` frontmatter key is now captured into the index** as
|
|
221
290
|
`entry.category` (entry_json only — no schema migration). The key already
|
|
@@ -223,8 +292,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
223
292
|
fact linter, but the indexer never captured it, so no category-keyed search
|
|
224
293
|
or ranking policy was implementable. Captured for all markdown asset types
|
|
225
294
|
alongside `beliefState` (trimmed; blank/non-string values ignored; no
|
|
226
|
-
default invented),
|
|
227
|
-
|
|
295
|
+
default invented), captured directly onto the index entry. Search results
|
|
296
|
+
and ranking are unchanged — this is capture
|
|
228
297
|
only (a unit test pins that `category` never enters the FTS search
|
|
229
298
|
fields). **Requires a reindex to take effect** for existing entries. The
|
|
230
299
|
companion rank-time demotion of `category: convention` facts on untyped
|
|
@@ -301,6 +370,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
301
370
|
|
|
302
371
|
### Changed
|
|
303
372
|
|
|
373
|
+
- **Improve-stage extraction and proactive maintenance now ship opt-in.** The
|
|
374
|
+
built-in `default` and `frequent` strategies resolve extract off, while
|
|
375
|
+
`default` and `reflect-distill` resolve `proactiveMaintenance` off. The
|
|
376
|
+
dedicated `proactive-maintenance` strategy remains enabled. Built-ins such as
|
|
377
|
+
`thorough` that omit these fields inherit the new `default` off values; user
|
|
378
|
+
overrides are merged last, so explicit `enabled: true` values still win.
|
|
379
|
+
Standalone extraction remains independent of the improve-stage toggle but
|
|
380
|
+
still requires `--type <harness>` or `--auto`. The bundled, unselected
|
|
381
|
+
`core/extract` task now uses `akm extract --auto`; existing scheduled tasks
|
|
382
|
+
with invalid bare `akm extract` commands must be updated explicitly.
|
|
383
|
+
- **Indexing dispatches each bundle's detected adapter.** The indexer's per-
|
|
384
|
+
directory scan now resolves the component's adapter (`adapterForId`) and runs
|
|
385
|
+
THAT adapter's `recognize`, instead of always using the `akm` adapter. A
|
|
386
|
+
component whose adapter id is unknown is skipped with a warning. Adapter-owned
|
|
387
|
+
filtering moves the AKM-stash sensitive/infra exclusions (env/secret
|
|
388
|
+
`.sensitive`-marker skips, the legacy `vaults/` skip, wiki infra files) out of
|
|
389
|
+
the core scan and into the `akm` adapter's own recognition, so each adapter
|
|
390
|
+
owns its bundle's filtering. **Reindex note:** any non-`akm` bundle that was
|
|
391
|
+
previously probed as one adapter id but still recognized by `akm` will
|
|
392
|
+
re-index under its own adapter on the next `akm index` — the index is a
|
|
393
|
+
regenerable cache, so no migration is required.
|
|
304
394
|
- **Improve target identity is now end-to-end and source-qualified.** Explicit
|
|
305
395
|
targets govern reads, generated proposals, triage promotion, consolidation,
|
|
306
396
|
retrieval signals, cooldowns, and replay state. Duplicate bare refs in other
|
|
@@ -313,7 +403,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
313
403
|
- **Directory (scope/domain) tokens now always merge into `tags` at index
|
|
314
404
|
time**, even when an asset sets explicit `tags:` frontmatter. Previously
|
|
315
405
|
explicit tags suppressed all path-derived tags, so a nested asset like
|
|
316
|
-
`
|
|
406
|
+
`memories/projectA/auth-tip` with `tags: [auth]` silently lost the exact
|
|
317
407
|
tag-match ranking boost for its scope token unless the author restated it.
|
|
318
408
|
The merged tokens come from the canonical ref subpath
|
|
319
409
|
(`extractDirTagsFromName`), which also fixes the flat-walk indexing path
|
|
@@ -375,7 +465,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
375
465
|
keys (`name`, `updated` were missing); removed the documented-but-nonexistent
|
|
376
466
|
`akm workflow step` alias from `docs/features/workflows.md`.
|
|
377
467
|
|
|
378
|
-
## [0.9.0]
|
|
468
|
+
## [0.9.0-rc.1] - 2026-06-30
|
|
379
469
|
|
|
380
470
|
### Fixed
|
|
381
471
|
|
|
@@ -514,7 +604,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
514
604
|
convention, or `.meta/index.md` files. Seeding stays absent-only and never
|
|
515
605
|
overwrites a user-edited file. (#646)
|
|
516
606
|
|
|
517
|
-
## [0.9.0-beta.36]
|
|
607
|
+
## [0.9.0-beta.36] - 2026-06-22
|
|
518
608
|
|
|
519
609
|
### Added
|
|
520
610
|
|
|
@@ -549,7 +639,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
549
639
|
- Corrected a prompt/validator drift where the distill system prompt asked for an
|
|
550
640
|
80–200 char description while the gate enforced 20–400. (#645)
|
|
551
641
|
|
|
552
|
-
## [0.9.0-beta.35]
|
|
642
|
+
## [0.9.0-beta.35] - 2026-06-21
|
|
553
643
|
|
|
554
644
|
### Fixed
|
|
555
645
|
|
|
@@ -577,7 +667,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
577
667
|
LLM call per processed session (the session summary); set it to `false` to halve
|
|
578
668
|
per-session extract cost. Unchanged/skipped sessions still cost zero.
|
|
579
669
|
|
|
580
|
-
## [0.9.0-beta.34]
|
|
670
|
+
## [0.9.0-beta.34] - 2026-06-21
|
|
581
671
|
|
|
582
672
|
### Fixed
|
|
583
673
|
|
|
@@ -592,7 +682,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
592
682
|
and falls back to the JSON layout. Verified end-to-end through the plugin's
|
|
593
683
|
`session.idle` hook.
|
|
594
684
|
|
|
595
|
-
## [0.9.0-beta.33]
|
|
685
|
+
## [0.9.0-beta.33] - 2026-06-21
|
|
596
686
|
|
|
597
687
|
### Fixed
|
|
598
688
|
|
|
@@ -608,7 +698,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
608
698
|
already-extracted session with zero LLM calls) and only `--force` re-extracts. This
|
|
609
699
|
makes a session-end hook firing `extract --session-id <id>` precise AND idempotent.
|
|
610
700
|
|
|
611
|
-
## [0.9.0-beta.32]
|
|
701
|
+
## [0.9.0-beta.32] - 2026-06-21
|
|
612
702
|
|
|
613
703
|
### Added
|
|
614
704
|
|
|
@@ -634,7 +724,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
634
724
|
with freshly-read timestamp maps INSIDE the lock (`filterProactiveDue`), dropping
|
|
635
725
|
refs a concurrent run already reflected.
|
|
636
726
|
|
|
637
|
-
## [0.9.0-beta.31]
|
|
727
|
+
## [0.9.0-beta.31] - 2026-06-20
|
|
638
728
|
|
|
639
729
|
### Changed
|
|
640
730
|
|
|
@@ -647,7 +737,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
647
737
|
On the live stash this turns the recombine cluster set from generic 66–171-member
|
|
648
738
|
buckets into tight topical clusters (`auth`, `architecture`, `patterns`, …).
|
|
649
739
|
|
|
650
|
-
## [0.9.0-beta.30]
|
|
740
|
+
## [0.9.0-beta.30] - 2026-06-20
|
|
651
741
|
|
|
652
742
|
### Changed / Fixed
|
|
653
743
|
|
|
@@ -666,7 +756,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
666
756
|
membership-overlap (≥ 0.7) and reuses its stable ref, so the streak accumulates
|
|
667
757
|
through membership drift. First/non-overlapping induction is unchanged.
|
|
668
758
|
|
|
669
|
-
## [0.9.0-beta.29]
|
|
759
|
+
## [0.9.0-beta.29] - 2026-06-20
|
|
670
760
|
|
|
671
761
|
### Reverted
|
|
672
762
|
|
|
@@ -674,7 +764,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
674
764
|
`akm fact` CLI shipped in beta.28 was reverted pending rework. Phase 1 (#629, the
|
|
675
765
|
`fact` asset type itself) remains in place.
|
|
676
766
|
|
|
677
|
-
## [0.9.0-beta.27]
|
|
767
|
+
## [0.9.0-beta.27] - 2026-06-20
|
|
678
768
|
|
|
679
769
|
All new behavior is **opt-in / default-preserving** — default runs are byte-identical.
|
|
680
770
|
|
|
@@ -720,7 +810,7 @@ All new behavior is **opt-in / default-preserving** — default runs are byte-id
|
|
|
720
810
|
hang/timeout** (the busy-spin can rarely fire even at `--parallel=1`) and never
|
|
721
811
|
on a real test failure, so genuine red tests still fail fast and are never masked.
|
|
722
812
|
|
|
723
|
-
## [0.9.0-beta.26]
|
|
813
|
+
## [0.9.0-beta.26] - 2026-06-20
|
|
724
814
|
|
|
725
815
|
### Added
|
|
726
816
|
|
|
@@ -737,7 +827,7 @@ All new behavior is **opt-in / default-preserving** — default runs are byte-id
|
|
|
737
827
|
Azure Container Apps). New docs section "Hosting AKM databases on a network share
|
|
738
828
|
(NFS/SMB)" in `docs/configuration.md`.
|
|
739
829
|
|
|
740
|
-
## [0.9.0-beta.25]
|
|
830
|
+
## [0.9.0-beta.25] - 2026-06-19
|
|
741
831
|
|
|
742
832
|
Completes the recombine / extract-efficiency / graph thread. All new improve
|
|
743
833
|
passes are **opt-in (default off)**, so default behavior is unchanged.
|
|
@@ -775,20 +865,20 @@ passes are **opt-in (default off)**, so default behavior is unchanged.
|
|
|
775
865
|
sandbox dirs left by force-killed workers — eliminating the tmpfs accumulation
|
|
776
866
|
that caused intermittent `EEXIST: epoll_ctl` test flakes.
|
|
777
867
|
|
|
778
|
-
## [0.9.0-beta.20]
|
|
868
|
+
## [0.9.0-beta.20] - 2026-06-18
|
|
779
869
|
|
|
780
870
|
### Fixed
|
|
781
871
|
|
|
782
872
|
- **`akm update --all` no longer fails for writable `github:` entries stored as `source:"git"`**. `updateRegistryEntry` was using `synced.source` (re-derived from the ref scheme as `"github"`) instead of the existing `entry.source`, causing the config validator to reject `writable:true` on every update cycle.
|
|
783
873
|
|
|
784
|
-
## [0.9.0-beta.19]
|
|
874
|
+
## [0.9.0-beta.19] - 2026-06-17
|
|
785
875
|
|
|
786
876
|
### Fixed
|
|
787
877
|
|
|
788
878
|
- **`akm feedback` now completes in ~0.3s** (was 3+ minutes). Root cause: the command was calling `ensureIndex` with `mode: "blocking"` inside `withIndexWriterLease`, triggering a full reindex on every feedback call. Fix: removed the `ensureIndex` call entirely (feedback only needs the index to exist, not be current — a stale index is fine for ref lookup); removed the application-level writer lock (SQLite WAL + `busy_timeout=30s` handles concurrent access with `akm improve`); added a fast DB-exists guard with a clear error for first-time users.
|
|
789
879
|
- **`akm health --format html` now completes in ~11s** (was ~18s). Root cause: `akmHealth()` was called twice — once for the main result and once to get `deltas`. Fix: merged into a single call passing both `groupBy: "run"` and `windowCompare` together.
|
|
790
880
|
|
|
791
|
-
## [0.9.0-beta.18]
|
|
881
|
+
## [0.9.0-beta.18] - 2026-06-17
|
|
792
882
|
|
|
793
883
|
### Changed
|
|
794
884
|
|
|
@@ -1240,7 +1330,7 @@ proposal and log storage, `--format html` output, and per-stage LLM telemetry.
|
|
|
1240
1330
|
|
|
1241
1331
|
### Added
|
|
1242
1332
|
|
|
1243
|
-
- **Cross-runtime: akm now runs on Node.js >=
|
|
1333
|
+
- **Cross-runtime: akm now runs on Node.js >= 22 in addition to Bun** (#560,
|
|
1244
1334
|
#465). A two-file runtime boundary (`src/storage/database.ts` owns SQLite via
|
|
1245
1335
|
`bun:sqlite` on Bun / `better-sqlite3` on Node; `src/runtime.ts` owns every
|
|
1246
1336
|
`Bun.*` API) contains all runtime-specific code, enforced by a lint guard so it
|
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ curl -fsSL https://github.com/itlackey/akm/releases/latest/download/install.sh |
|
|
|
24
24
|
irm https://github.com/itlackey/akm/releases/latest/download/install.ps1 | iex
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
**Option 2 — npm package (requires [Node.js](https://nodejs.org) >=
|
|
27
|
+
**Option 2 — npm package (requires [Node.js](https://nodejs.org) >= 22):**
|
|
28
28
|
|
|
29
29
|
```sh
|
|
30
30
|
npm install -g akm-cli
|
|
@@ -47,7 +47,7 @@ binaries are runtime-free.
|
|
|
47
47
|
akm setup # Guided setup: configure, initialize, and index
|
|
48
48
|
akm add github:owner/repo # Add a stash from GitHub
|
|
49
49
|
akm search "deploy" # Find assets across all sources
|
|
50
|
-
akm show
|
|
50
|
+
akm show scripts/deploy.sh # View details and run command
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
## Why akm?
|
|
@@ -92,11 +92,11 @@ Manage stashes with `akm list`, `akm update --all`, and `akm remove`.
|
|
|
92
92
|
|
|
93
93
|
Full docs, CLI reference, and guides are available on [GitHub](https://github.com/itlackey/akm):
|
|
94
94
|
|
|
95
|
-
- [Getting Started](https://github.com/itlackey/akm/blob/main/docs/getting-started.md)
|
|
96
|
-
- [CLI Reference](https://github.com/itlackey/akm/blob/main/docs/cli.md)
|
|
97
|
-
- [Configuration](https://github.com/itlackey/akm/blob/main/docs/configuration.md)
|
|
98
|
-
- [Stash Maker's Guide](https://github.com/itlackey/akm/blob/main/docs/stash-makers.md)
|
|
99
|
-
- [Registry](https://github.com/itlackey/akm/blob/main/docs/registry.md)
|
|
95
|
+
- [Getting Started](https://github.com/itlackey/akm/blob/main/docs/guides/getting-started.md)
|
|
96
|
+
- [CLI Reference](https://github.com/itlackey/akm/blob/main/docs/reference/cli.md)
|
|
97
|
+
- [Configuration](https://github.com/itlackey/akm/blob/main/docs/reference/configuration.md)
|
|
98
|
+
- [Stash Maker's Guide](https://github.com/itlackey/akm/blob/main/docs/guides/stash-makers.md)
|
|
99
|
+
- [Registry](https://github.com/itlackey/akm/blob/main/docs/reference/registry.md)
|
|
100
100
|
|
|
101
101
|
## License
|
|
102
102
|
|
package/SECURITY.md
CHANGED
|
@@ -31,7 +31,7 @@ shell commands (via scripts, workflows, and agent dispatch), and talks to
|
|
|
31
31
|
explicitly configured external services (LLM endpoints, git remotes, npm,
|
|
32
32
|
HTTP sources). It does **not** ship telemetry, send data to anyone by
|
|
33
33
|
default, or open network listeners. See
|
|
34
|
-
[`docs/data-and-telemetry.md`](docs/data-and-telemetry.md) for the on-disk
|
|
34
|
+
[`docs/reference/data-and-telemetry.md`](docs/reference/data-and-telemetry.md) for the on-disk
|
|
35
35
|
inventory.
|
|
36
36
|
|
|
37
37
|
Several akm surfaces execute user-controlled code or data with the full
|
|
@@ -43,19 +43,19 @@ bugs, but you should be aware of them:
|
|
|
43
43
|
Workflow steps run in your shell with your PATH and your environment
|
|
44
44
|
variables — including any secrets you have exported or loaded via
|
|
45
45
|
`akm env run` / `akm secret run`. **Only add workflow sources you trust.** See
|
|
46
|
-
[`docs/
|
|
47
|
-
code"](docs/
|
|
46
|
+
[`docs/reference/workflows.md` — "Security: workflow sources are executed
|
|
47
|
+
code"](docs/reference/workflows.md#security-workflow-sources-are-executed-code)
|
|
48
48
|
for the full discussion.
|
|
49
49
|
|
|
50
50
|
### Scripts execute shell commands
|
|
51
51
|
|
|
52
|
-
`akm show
|
|
52
|
+
`akm show scripts/<name>` returns a `run:` command line the user (or an
|
|
53
53
|
integrating agent) then executes. The same trust model applies: scripts you
|
|
54
54
|
install from third-party stashes are third-party code.
|
|
55
55
|
|
|
56
56
|
### Agents and commands embed user-authored prompts
|
|
57
57
|
|
|
58
|
-
`akm show
|
|
58
|
+
`akm show agents/<name>` and `akm show commands/<name>` return prompt
|
|
59
59
|
templates and system prompts that an LLM will execute. A malicious stash
|
|
60
60
|
maintainer could write a system prompt that instructs the LLM to read
|
|
61
61
|
sensitive files in your working tree and exfiltrate them via the LLM
|
|
@@ -70,11 +70,12 @@ files to source control. Normal `akm env` and `akm secret` output never echoes
|
|
|
70
70
|
values; materialize values only at the command boundary with `akm env run`,
|
|
71
71
|
`akm secret run`, or `akm secret path`.
|
|
72
72
|
|
|
73
|
-
### Improve / propose
|
|
73
|
+
### Improve / propose send asset content to the configured LLM
|
|
74
74
|
|
|
75
|
-
`akm improve
|
|
76
|
-
consolidate` can send asset frontmatter and body to the
|
|
77
|
-
by the command, strategy, or current defaults. LLM
|
|
75
|
+
`akm improve` (whose strategies run processes such as reflect, distill, and
|
|
76
|
+
consolidate) and `akm propose` can send asset frontmatter and body to the
|
|
77
|
+
named LLM engine selected by the command, strategy, or current defaults. LLM
|
|
78
|
+
connections live under
|
|
78
79
|
`engines.<name>` in `~/.config/akm/config.json`. If you configure a third-party
|
|
79
80
|
LLM, your asset content goes to that third party. Use a local engine endpoint
|
|
80
81
|
(for example, `http://localhost:11434/v1/chat/completions` via Ollama) for assets
|
|
@@ -82,7 +83,7 @@ containing secrets or private notes.
|
|
|
82
83
|
|
|
83
84
|
## Known non-issues
|
|
84
85
|
|
|
85
|
-
- **The `akm-cli` npm package requires Node.js >=
|
|
86
|
+
- **The `akm-cli` npm package requires Node.js >= 22 as its bootstrap.** A
|
|
86
87
|
working Bun >= 1.0 is preferred for execution when it is also on `PATH`; old,
|
|
87
88
|
unusable, or absent Bun installations fall back to Node.js. Bun does not
|
|
88
89
|
remove the package's Node.js requirement. Standalone binaries are
|
package/dist/akm
CHANGED
|
@@ -8,8 +8,8 @@ import { fileURLToPath } from "node:url";
|
|
|
8
8
|
|
|
9
9
|
if (!process.versions.bun) {
|
|
10
10
|
const [major = 0, minor = 0] = process.versions.node.split(".").map(Number);
|
|
11
|
-
if (major <
|
|
12
|
-
console.error("The akm-cli npm package requires Node.js >=
|
|
11
|
+
if (major < 22) {
|
|
12
|
+
console.error("The akm-cli npm package requires Node.js >= 22 to bootstrap.");
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
15
|
}
|
package/dist/akm-migrate-storage
CHANGED
|
@@ -8,8 +8,8 @@ import { fileURLToPath } from "node:url";
|
|
|
8
8
|
|
|
9
9
|
if (!process.versions.bun) {
|
|
10
10
|
const [major = 0, minor = 0] = process.versions.node.split(".").map(Number);
|
|
11
|
-
if (major <
|
|
12
|
-
console.error("The akm-cli npm package requires Node.js >=
|
|
11
|
+
if (major < 22) {
|
|
12
|
+
console.error("The akm-cli npm package requires Node.js >= 22 to bootstrap.");
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
15
|
}
|