akm-cli 0.9.30 → 0.10.261001-beta
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 +438 -0
- package/README.md +10 -10
- package/ROADMAP.md +112 -0
- package/STABILITY.md +99 -57
- package/dist/api-node.mjs +20 -0
- package/dist/api.d.ts +23 -0
- package/dist/api.js +45 -0
- package/dist/assets/hints/cli-hints-full.md +15 -29
- package/dist/assets/hints/cli-hints-short.md +2 -2
- package/dist/assets/improve-strategies/default.json +3 -3
- package/dist/assets/prompts/consolidate-pair.md +9 -7
- package/dist/assets/stash-skeleton/README.md +1 -1
- package/dist/assets/tasks/improve/akm-improve-consolidate.yml +1 -1
- package/dist/cli/shared.js +31 -48
- package/dist/cli/unknown-flags.js +6 -43
- package/dist/cli.js +8 -34
- package/dist/commands/agent/contribute-cli.js +1 -1
- package/dist/commands/completions.js +1 -2
- package/dist/commands/config-cli.js +5 -28
- package/dist/commands/env/env-cli.js +5 -5
- package/dist/commands/env/secret-cli.js +2 -2
- package/dist/commands/feedback-cli.js +75 -49
- package/dist/commands/health/checks.js +41 -16
- package/dist/commands/health/plugin-staleness.js +52 -22
- package/dist/commands/improve/autonomy-gate.js +5 -3
- package/dist/commands/improve/consolidate/chunking.js +3 -10
- package/dist/commands/improve/consolidate/continuity-check.js +4 -4
- package/dist/commands/improve/consolidate/pair-pass.js +29 -10
- package/dist/commands/improve/consolidate.js +10 -65
- package/dist/commands/improve/distill/lesson-update.js +91 -0
- package/dist/commands/improve/distill-guards.js +1 -43
- package/dist/commands/improve/distill.js +148 -21
- package/dist/commands/improve/eligibility.js +14 -1
- package/dist/commands/improve/extract-cli.js +1 -1
- package/dist/commands/improve/extract-prompt.js +17 -7
- package/dist/commands/improve/extract.js +5 -7
- package/dist/commands/improve/improve-cli.js +125 -118
- package/dist/commands/improve/improve-strategies.js +8 -12
- package/dist/commands/improve/improve.js +134 -52
- package/dist/commands/improve/loop-stages.js +18 -5
- package/dist/commands/improve/planner.js +0 -1
- package/dist/commands/improve/preparation.js +40 -99
- package/dist/commands/improve/proactive-maintenance.js +2 -2
- package/dist/commands/improve/reflect-noise.js +3 -55
- package/dist/commands/improve/reflect.js +29 -34
- package/dist/commands/improve/retrieval-queries.js +37 -0
- package/dist/commands/improve/retrieval-scope.js +2 -2
- package/dist/commands/improve/salience.js +2 -9
- package/dist/commands/improve/session-asset.js +4 -1
- package/dist/commands/improve/stage.js +23 -12
- package/dist/commands/lint/index.js +5 -20
- package/dist/commands/observability-cli.js +3 -9
- package/dist/commands/proposal/drain.js +43 -6
- package/dist/commands/proposal/proposal-cli.js +11 -31
- package/dist/commands/proposal/repository.js +20 -14
- package/dist/commands/proposal/validators/proposal-quality-validators.js +0 -3
- package/dist/commands/read/knowledge.js +3 -3
- package/dist/commands/read/remember-cli.js +0 -13
- package/dist/commands/read/search-cli.js +29 -97
- package/dist/commands/read/search.js +0 -11
- package/dist/commands/read/show.js +0 -19
- package/dist/commands/sources/plugin-upgrade.js +164 -101
- package/dist/commands/sources/sources-cli.js +1 -15
- package/dist/commands/sources/stash-cli.js +6 -14
- package/dist/commands/tasks/tasks-cli.js +4 -115
- package/dist/commands/workflow/plan.js +11 -33
- package/dist/commands/workflow-cli.js +2 -7
- package/dist/core/adapter/adapter-ids.js +1 -2
- package/dist/core/adapter/adapters/agent-skills-adapter.js +0 -4
- package/dist/core/adapter/adapters/akm-adapter.js +9 -48
- package/dist/core/adapter/adapters/akm-lint.js +10 -26
- package/dist/core/adapter/adapters/akm-metadata.js +2 -72
- package/dist/core/adapter/adapters/akm-task-adapter.js +0 -5
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +9 -28
- package/dist/core/adapter/adapters/dotenv-adapter.js +1 -20
- package/dist/core/adapter/adapters/generic-files-adapter.js +0 -10
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +0 -4
- package/dist/core/adapter/adapters/tool-dir-shared.js +0 -24
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +4 -4
- package/dist/core/adapter/recognize-match.js +3 -4
- package/dist/core/common.js +18 -2
- package/dist/core/config/config-schema.js +12 -15
- package/dist/core/config/config-types.js +6 -15
- package/dist/core/config/config-walker.js +6 -23
- package/dist/core/config/config.js +17 -80
- package/dist/core/config/engine-semantics.js +7 -3
- package/dist/core/config/schema/engines.js +7 -7
- package/dist/core/config/schema/improve-processes.js +10 -63
- package/dist/core/config/schema/improve.js +2 -21
- package/dist/core/config/schema/index-config.js +6 -39
- package/dist/core/env-secret-ref.js +2 -45
- package/dist/core/errors.js +1 -2
- package/dist/core/extra-params.js +2 -86
- package/dist/core/file-lock.js +12 -7
- package/dist/core/improve-result.js +13 -1
- package/dist/core/mutation-target.js +2 -2
- package/dist/core/paths.js +4 -0
- package/dist/core/recognition-util.js +4 -5
- package/dist/core/run-lock.js +1 -1
- package/dist/core/subprocess.js +49 -0
- package/dist/core/warn.js +21 -4
- package/dist/core/write-source.js +3 -3
- package/dist/execution/target-ref.js +1 -2
- package/dist/indexer/indexer.js +15 -6
- package/dist/indexer/passes/memory-inference.js +15 -6
- package/dist/indexer/search/db-search.js +49 -36
- package/dist/indexer/search/fts-query.js +0 -19
- package/dist/indexer/search/ranking.js +29 -1
- package/dist/indexer/usage/usage-events.js +21 -16
- package/dist/integrations/agent/engine-resolution.js +5 -2
- package/dist/integrations/agent/index.js +1 -1
- package/dist/integrations/agent/profiles.js +41 -98
- package/dist/integrations/agent/request-lowering.js +3 -3
- package/dist/integrations/harnesses/aider/index.js +5 -0
- package/dist/integrations/harnesses/amazonq/index.js +1 -0
- package/dist/integrations/harnesses/claude/config-import.js +2 -3
- package/dist/integrations/harnesses/claude/index.js +5 -0
- package/dist/integrations/harnesses/codex/index.js +1 -0
- package/dist/integrations/harnesses/copilot/index.js +1 -0
- package/dist/integrations/harnesses/gemini/index.js +1 -0
- package/dist/integrations/harnesses/index.js +18 -39
- package/dist/integrations/harnesses/opencode/agent-builder.js +60 -35
- package/dist/integrations/harnesses/opencode/config-import.js +121 -52
- package/dist/integrations/harnesses/opencode/index.js +22 -0
- package/dist/integrations/harnesses/opencode/plugin-layout.js +68 -0
- package/dist/integrations/harnesses/opencode/session-log-types.js +12 -0
- package/dist/integrations/harnesses/opencode/session-log-v1.js +72 -0
- package/dist/integrations/harnesses/opencode/session-log-v2.js +140 -0
- package/dist/integrations/harnesses/opencode/session-log.js +104 -115
- package/dist/integrations/harnesses/opencode/version.js +98 -0
- package/dist/integrations/harnesses/opencode-sdk/{harness.js → index.js} +5 -17
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +105 -206
- package/dist/integrations/harnesses/opencode-sdk/v1-adapter.js +199 -0
- package/dist/integrations/harnesses/opencode-sdk/v2-adapter.js +254 -0
- package/dist/integrations/harnesses/opencode-sdk/wire.js +66 -0
- package/dist/integrations/harnesses/openhands/index.js +1 -0
- package/dist/integrations/harnesses/pi/index.js +1 -0
- package/dist/integrations/harnesses/shared.js +2 -0
- package/dist/integrations/harnesses/types.js +2 -0
- package/dist/llm/client.js +74 -14
- package/dist/output/cli-hints.js +1 -1
- package/dist/output/context.js +10 -19
- package/dist/output/format-exempt.js +5 -8
- package/dist/output/shapes/helpers.js +1 -22
- package/dist/output/shapes/passthrough.js +0 -1
- package/dist/output/shapes.js +3 -31
- package/dist/output/stdout.js +5 -1
- package/dist/output/text/command-format.js +6 -1
- package/dist/output/text/workflow-format.js +4 -22
- package/dist/scripts/akm-migrate-node.js +15769 -16731
- package/dist/scripts/akm-migrate.js +16339 -17297
- package/dist/setup/detect.js +10 -4
- package/dist/setup/harness-config-import.js +5 -14
- package/dist/setup/setup.js +1 -1
- package/dist/setup/steps/tasks.js +12 -13
- package/dist/sources/providers/git-stash.js +94 -13
- package/dist/storage/repositories/index-utility-repository.js +2 -32
- package/dist/storage/repositories/index-vec-repository.js +4 -0
- package/dist/storage/repositories/task-history-repository.js +0 -5
- package/dist/storage/repositories/workflow-runs-repository.js +5 -15
- package/dist/tasks/embedded.js +2 -1
- package/dist/tasks/run/run-command-task.js +9 -1
- package/dist/tasks/run/run-workflow-task.js +4 -3
- package/dist/tasks/run/task-history.js +0 -2
- package/dist/tasks/run/task-log.js +38 -1
- package/dist/tasks/schedule-gates.js +39 -0
- package/dist/tasks/scheduler-binding.js +0 -16
- package/dist/tasks/scheduler-sync.js +3 -97
- package/dist/tasks/source/bounded-document.js +1 -1
- package/dist/tasks/source/task-source-v4.js +2 -12
- package/dist/tasks/task-run-reserved-flags.js +2 -31
- package/dist/workflows/authoring/authoring.js +6 -6
- package/dist/workflows/compile.js +8 -65
- package/dist/workflows/exec/child-workflow.js +22 -3
- package/dist/workflows/exec/native-executor.js +12 -147
- package/dist/workflows/exec/run-workflow.js +31 -103
- package/dist/workflows/exec/step-work.js +9 -178
- package/dist/workflows/exec/unit-dispatch.js +0 -10
- package/dist/workflows/freeze/environment.js +3 -44
- package/dist/workflows/freeze/freeze.js +8 -41
- package/dist/workflows/freeze/targets/child-workflow.js +27 -63
- package/dist/workflows/freeze/targets/command.js +2 -16
- package/dist/workflows/freeze/targets/shell.js +0 -2
- package/dist/workflows/freeze/task-bindings.js +2 -28
- package/dist/workflows/ir/params.js +12 -2
- package/dist/workflows/parser.js +82 -232
- package/dist/workflows/plan.js +1 -1
- package/dist/workflows/renderer.js +10 -19
- package/dist/workflows/runtime/run-plan.js +11 -53
- package/dist/workflows/runtime/runs.js +4 -27
- package/dist/workflows/source-files.js +12 -16
- package/dist/workflows/source-semantics.js +1 -93
- package/docs/README.md +43 -42
- package/docs/agents/README.md +15 -0
- package/docs/agents/agent-install.md +14 -0
- package/docs/architecture/0.10-process-rules.md +827 -0
- package/docs/architecture/README.md +67 -0
- package/docs/architecture/adapters.md +258 -0
- package/docs/architecture/akm-architecture-decision-history.md +2055 -0
- package/docs/architecture/akm-core-principles.md +126 -0
- package/docs/architecture/architecture.md +578 -0
- package/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md +550 -0
- package/docs/architecture/decisions/0001-no-interpolation-attached-structured-context.md +72 -0
- package/docs/architecture/decisions/0002-unit-reuse-and-input-hash-scope.md +142 -0
- package/docs/architecture/decisions/0003-child-env-allowlist-and-provenance.md +189 -0
- package/docs/architecture/decisions/0004-task-input-contract-and-flag-coercion.md +97 -0
- package/docs/architecture/decisions/0005-task-result-vocabulary-and-legacy-read-mapping.md +108 -0
- package/docs/architecture/decisions/0006-task-source-version-routing.md +124 -0
- package/docs/architecture/decisions/0007-workflow-composition-bounds.md +83 -0
- package/docs/architecture/decisions/0008-task-binding-normalization.md +88 -0
- package/docs/architecture/decisions/0009-child-run-publication-column-parity.md +80 -0
- package/docs/architecture/decisions/0010-driver-protocol-cut.md +36 -0
- package/docs/architecture/decisions/0011-engine-run-loop-invariants.md +125 -0
- package/docs/architecture/decisions/README.md +62 -0
- package/docs/architecture/improvement.md +479 -0
- package/docs/architecture/internals/classification.md +154 -0
- package/docs/architecture/internals/fresh-host-rebuild-runbook.md +40 -0
- package/docs/architecture/internals/functional-contract-patterns.md +340 -0
- package/docs/architecture/internals/health-advisories.md +110 -0
- package/docs/architecture/internals/improve-workflow.md +719 -0
- package/docs/architecture/internals/indexing.md +498 -0
- package/docs/architecture/internals/registry-network-boundary.md +57 -0
- package/docs/architecture/internals/search.md +248 -0
- package/docs/architecture/internals/storage-locations.md +943 -0
- package/docs/architecture/persisted-data-compat.md +68 -0
- package/docs/architecture/reviews/env-secret-access.md +319 -0
- package/docs/architecture/runtime-boundary-design.md +153 -0
- package/docs/architecture/specs/0.9.0-close-out-plan.md +361 -0
- package/docs/architecture/specs/0.9.0-decisions.md +532 -0
- package/docs/architecture/specs/0.9.0-docs-code-drift-register.md +745 -0
- package/docs/architecture/specs/0.9.0-open-items-register.md +135 -0
- package/docs/architecture/specs/0.9.0-public-api-issue-backlog.md +740 -0
- package/docs/architecture/specs/0.9.0-release-surface-review.md +636 -0
- package/docs/architecture/specs/agent-command-engine-model-design.md +513 -0
- package/docs/architecture/specs/akm-0.9.0-bundle-adapter-spec.md +501 -0
- package/docs/architecture/specs/akm-0.9.0-ref-grammar-decision.md +291 -0
- package/docs/architecture/specs/akm-format-neutral-bundle-workspace-spec.md +2059 -0
- package/docs/architecture/specs/di-seams-plan.md +539 -0
- package/docs/architecture/specs/driver-protocol-keep-or-cut.md +275 -0
- package/docs/architecture/specs/fact-asset-type.md +142 -0
- package/docs/architecture/specs/improve-collapse-churn-detector-design.md +634 -0
- package/docs/architecture/specs/okf-support.md +148 -0
- package/docs/architecture/specs/ref.md +329 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/README.md +72 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/findings-consolidated.md +152 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-alternatives.md +352 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-bunqueue.md +300 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-openworkflow.md +402 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-1.md +758 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-2.md +645 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-3.md +602 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-adversarial.md +27 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-architecture.md +27 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-coverage.md +74 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-security.md +15 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-adversarial.md +132 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-verification.md +147 -0
- package/docs/architecture/specs/stash-conventions-code-spec.md +275 -0
- package/docs/architecture/specs/stash-organization-conventions.md +377 -0
- package/docs/architecture/specs/task-workflow-format-unification.md +721 -0
- package/docs/architecture/specs/workflow-engine-buy-vs-build.md +231 -0
- package/docs/architecture/specs/workflow-format-unification.md +432 -0
- package/docs/architecture/testing/manual-testing-checklist.md +3411 -0
- package/docs/architecture/testing/okf-v0.2-conformance-runbook.md +924 -0
- package/docs/architecture/testing/task-workflow-manual-tests.md +1720 -0
- package/docs/architecture/testing/testing-workflow.md +446 -0
- package/docs/architecture/workflow-engine.md +223 -0
- package/docs/guides/README.md +33 -0
- package/docs/guides/author-bundles.md +310 -0
- package/docs/guides/author-workflows.md +490 -0
- package/docs/guides/bundles.md +323 -0
- package/docs/guides/capture-knowledge.md +136 -0
- package/docs/guides/claude-code-vs-akm-workflows.md +29 -0
- package/docs/guides/concepts.md +93 -0
- package/docs/guides/discover-and-load.md +158 -0
- package/docs/guides/getting-started.md +240 -0
- package/docs/guides/improve-the-library.md +247 -0
- package/docs/guides/knowledge-management.md +18 -0
- package/docs/guides/recipes/headless-install.md +97 -0
- package/docs/guides/recipes/website-source.md +28 -0
- package/docs/guides/run-workflows.md +279 -0
- package/docs/guides/scheduling.md +131 -0
- package/docs/guides/use-with-any-agent.md +174 -0
- package/docs/guides/wikis.md +81 -0
- package/docs/integration/bundling-akm.md +7 -6
- package/docs/maintainers/README.md +19 -0
- package/docs/maintainers/curate-workmap.md +335 -0
- package/docs/maintainers/eval.md +3 -0
- package/docs/maintainers/local-development.md +108 -0
- package/docs/maintainers/release-checklist.md +135 -0
- package/docs/migration/README.md +4 -2
- package/docs/migration/release-notes/0.0.13.md +1 -1
- package/docs/migration/release-notes/0.1.0.md +1 -1
- package/docs/migration/release-notes/0.10.0.md +201 -0
- package/docs/migration/release-notes/0.2.0.md +1 -1
- package/docs/migration/release-notes/0.3.0.md +1 -1
- package/docs/migration/release-notes/0.5.0.md +1 -1
- package/docs/migration/release-notes/0.6.0.md +1 -1
- package/docs/migration/release-notes/0.7.0.md +1 -1
- package/docs/migration/release-notes/0.7.3.md +2 -2
- package/docs/migration/release-notes/0.7.4.md +1 -1
- package/docs/migration/release-notes/0.7.5.md +1 -1
- package/docs/migration/release-notes/0.8.0.md +1 -1
- package/docs/migration/release-notes/0.9.0.md +1 -1
- package/docs/migration/release-notes/0.9.14.md +1 -1
- package/docs/migration/release-notes/0.9.15.md +1 -1
- package/docs/migration/release-notes/0.9.16.md +1 -1
- package/docs/migration/release-notes/0.9.17.md +1 -1
- package/docs/migration/release-notes/0.9.19.md +1 -1
- package/docs/migration/release-notes/0.9.2.md +1 -1
- package/docs/migration/release-notes/README.md +28 -31
- package/docs/migration/v0.5-to-v0.6.md +759 -0
- package/docs/migration/v0.8-to-v0.9.md +1 -1
- package/docs/migration/v0.9-to-v0.10.md +507 -0
- package/docs/plans/0.9.2-agent-command-workflow-plan.md +423 -0
- package/docs/posts/README.md +30 -0
- package/docs/posts/akm-command-tour.md +495 -0
- package/docs/posts/akm-logo-sized.webp +0 -0
- package/docs/posts/belief-aware-memory-12.md +139 -0
- package/docs/posts/config-v2-lessons-16.md +191 -0
- package/docs/posts/improve-loop-autonomous-10.md +225 -0
- package/docs/posts/improve-pipeline-debugging-0803.md +179 -0
- package/docs/posts/intro-part-01.md +76 -0
- package/docs/posts/intro-part-02.md +221 -0
- package/docs/posts/intro-part-03.md +190 -0
- package/docs/posts/intro-part-04.md +221 -0
- package/docs/posts/llm-mode-reflect-13.md +166 -0
- package/docs/posts/openpalm-built-on-akm.md +86 -0
- package/docs/posts/progressive-disclosure-06.md +129 -0
- package/docs/posts/proposal-safety-net-15.md +112 -0
- package/docs/posts/release-0.5.0.md +247 -0
- package/docs/posts/release-0.6.0.md +117 -0
- package/docs/posts/release-0.7.0.md +159 -0
- package/docs/posts/release-0.8.0.md +332 -0
- package/docs/posts/scattered-skills-05.md +100 -0
- package/docs/posts/task-assets-persistent-workflows-11.md +222 -0
- package/docs/posts/team-skills-07.md +198 -0
- package/docs/posts/wiki-agent-knowledge-08.md +223 -0
- package/docs/posts/workflows-vaults-09.md +321 -0
- package/docs/product-surface.md +54 -0
- package/docs/reference/README.md +2 -2
- package/docs/reference/api.md +65 -0
- package/docs/reference/asset-types.md +166 -0
- package/docs/reference/bundle-types.md +2 -4
- package/docs/reference/cli.md +163 -192
- package/docs/reference/configuration.md +101 -20
- package/docs/reference/data-and-telemetry.md +2 -2
- package/docs/reference/env-and-secrets.md +126 -0
- package/docs/reference/memory.md +124 -0
- package/docs/reference/refs.md +156 -0
- package/docs/reference/registry.md +489 -0
- package/docs/reference/supported-formats.md +3 -4
- package/docs/reference/tasks.md +12 -19
- package/docs/reference/website-sources.md +141 -0
- package/docs/reference/workflow-schema.md +89 -317
- package/docs/reference/workflows.md +20 -48
- package/package.json +23 -16
- package/schemas/akm-config.json +2 -243
- package/schemas/akm-task.json +2 -3
- package/schemas/akm-workflow.json +47 -84
- package/dist/assets/improve-strategies/catchup.json +0 -41
- package/dist/assets/improve-strategies/proactive-maintenance.json +0 -24
- package/dist/assets/improve-strategies/quick.json +0 -17
- package/dist/assets/improve-strategies/reflect-distill.json +0 -29
- package/dist/assets/improve-strategies/thorough.json +0 -49
- package/dist/assets/prompts/retrieval-relevance-judge.md +0 -6
- package/dist/assets/tasks/improve/akm-improve-catchup.yml +0 -6
- package/dist/assets/tasks/improve/akm-improve-frequent.yml +0 -4
- package/dist/assets/tasks/improve/akm-improve-nightly.yml +0 -4
- package/dist/cli/retired-commands.js +0 -118
- package/dist/commands/improve/retrieval-gate.js +0 -132
- package/dist/commands/tasks/validate.js +0 -176
- package/dist/core/config/legacy-source-shape-shim.js +0 -117
- package/dist/indexer/feedback/utility-policy.js +0 -75
- package/dist/integrations/harnesses/ids.js +0 -28
- package/dist/tasks/source/task-source-v3-frozen.js +0 -424
- package/dist/tasks/source/task-to-v4.js +0 -863
- package/dist/workflows/exec/worktree.js +0 -372
- package/dist/workflows/freeze/child-output-references.js +0 -83
- package/dist/workflows/freeze/identity.js +0 -22
- package/dist/workflows/freeze/targets/script.js +0 -50
- package/dist/workflows/freeze/targets/task.js +0 -124
- package/dist/workflows/github-yaml.js +0 -506
- package/dist/workflows/runtime/run-outputs.js +0 -80
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
# Registry
|
|
2
|
+
|
|
3
|
+
A registry is a searchable source of bundles that `akm` can discover and
|
|
4
|
+
install from. The default registry type is a static JSON index, but akm
|
|
5
|
+
supports pluggable **registry providers** that can connect to different
|
|
6
|
+
ecosystems (e.g. skills.sh).
|
|
7
|
+
|
|
8
|
+
## Official Registry
|
|
9
|
+
|
|
10
|
+
akm ships with the official registry pre-configured:
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
https://raw.githubusercontent.com/itlackey/akm-registry/main/index.json
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The [akm-registry](https://github.com/itlackey/akm-registry) repo publishes
|
|
17
|
+
a static `index.json` (v3 format). It merges three sources:
|
|
18
|
+
|
|
19
|
+
- npm packages with the `akm-stash` keyword
|
|
20
|
+
- GitHub repos with the `akm-stash` topic
|
|
21
|
+
- `manual-entries.json` for curated additions and overrides
|
|
22
|
+
|
|
23
|
+
To submit a bundle, either tag your repo/package as above (auto-discovery)
|
|
24
|
+
or open a pull request against `manual-entries.json` for a curated entry.
|
|
25
|
+
|
|
26
|
+
### Official onboarding bundle
|
|
27
|
+
|
|
28
|
+
In addition to the registry, akm has an official onboarding bundle —
|
|
29
|
+
[itlackey/akm-stash](https://github.com/itlackey/akm-stash) — that ships
|
|
30
|
+
skills, commands, knowledge, workflows, and a librarian subagent for
|
|
31
|
+
working with akm itself. Install it with:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
akm bundle add github:itlackey/akm-stash
|
|
35
|
+
akm index
|
|
36
|
+
akm show skills/akm-quickstart
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Managing Registries
|
|
40
|
+
|
|
41
|
+
Use the `akm registry` subcommand group to manage configured registries:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# List configured registries
|
|
45
|
+
akm registry list
|
|
46
|
+
|
|
47
|
+
# Add a third-party registry (static index)
|
|
48
|
+
akm registry add https://example.com/registry/index.json --name my-team
|
|
49
|
+
|
|
50
|
+
# Add a skills.sh registry
|
|
51
|
+
akm registry add https://skills.sh --name skills.sh --provider skills-sh
|
|
52
|
+
|
|
53
|
+
# Remove a registry by URL or name
|
|
54
|
+
akm registry remove my-team
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Registries are stored in the `registries` array in your config file:
|
|
58
|
+
|
|
59
|
+
```jsonc
|
|
60
|
+
{
|
|
61
|
+
"registries": [
|
|
62
|
+
// Static index (default provider)
|
|
63
|
+
{ "url": "https://raw.githubusercontent.com/itlackey/akm-registry/main/index.json", "name": "official" },
|
|
64
|
+
{ "url": "https://example.com/registry/index.json", "name": "my-team", "enabled": true },
|
|
65
|
+
// skills.sh provider
|
|
66
|
+
{ "url": "https://skills.sh", "name": "skills.sh", "provider": "skills-sh" }
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Each entry supports:
|
|
72
|
+
|
|
73
|
+
| Field | Type | Default | Description |
|
|
74
|
+
| --- | --- | --- | --- |
|
|
75
|
+
| `url` | string | (required) | URL of the registry index or API base |
|
|
76
|
+
| `name` | string | -- | Human-friendly label |
|
|
77
|
+
| `enabled` | boolean | `true` | Whether this registry is active |
|
|
78
|
+
| `provider` | string | `"static-index"` | Provider type (see [Registry Providers](#registry-providers)) |
|
|
79
|
+
| `options` | object | -- | Provider-specific options (passed through to the provider) |
|
|
80
|
+
|
|
81
|
+
Set `enabled: false` to temporarily disable a registry without removing it.
|
|
82
|
+
|
|
83
|
+
Registry URLs must be credential-free: AKM rejects URL userinfo such as
|
|
84
|
+
`https://user:password@example.com/index.json` before it can be saved. The
|
|
85
|
+
built-in `static-index` and `skills-sh` providers do not currently support
|
|
86
|
+
authenticated registry requests, including through `options`; publish the
|
|
87
|
+
index/API at a credential-free HTTPS endpoint or place an authenticated proxy
|
|
88
|
+
in front of it. AKM does not translate URL credentials into request headers.
|
|
89
|
+
|
|
90
|
+
Registry HTTP requests must also resolve to public network addresses. AKM
|
|
91
|
+
rejects loopback, private, link-local, metadata, and reserved destinations on
|
|
92
|
+
the initial URL and every redirect hop. This intentionally means a
|
|
93
|
+
`static-index` or `skills-sh` registry hosted only on localhost or an intranet
|
|
94
|
+
is no longer reachable in 0.9.2; publish it at a publicly routable HTTPS
|
|
95
|
+
endpoint. The only private-network compatibility exception is an npm mirror
|
|
96
|
+
explicitly selected with `AKM_NPM_REGISTRY`; metadata and tarball requests may
|
|
97
|
+
reach that configured mirror, but not link-local or cloud-metadata addresses.
|
|
98
|
+
See [Registry network boundary](../architecture/internals/registry-network-boundary.md)
|
|
99
|
+
for the complete policy and DNS guarantee.
|
|
100
|
+
|
|
101
|
+
## Searching Registries
|
|
102
|
+
|
|
103
|
+
Search registries alongside or instead of the local bundle:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Search registries only
|
|
107
|
+
akm search "deploy" --from registry
|
|
108
|
+
|
|
109
|
+
# Search both the local bundle library and registries
|
|
110
|
+
akm search "deploy" --from all
|
|
111
|
+
|
|
112
|
+
# Include asset-level results from v3 indexes
|
|
113
|
+
akm search "deploy" --from registry --assets
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Search Results
|
|
117
|
+
|
|
118
|
+
Each registry hit includes:
|
|
119
|
+
|
|
120
|
+
| Field | Description |
|
|
121
|
+
| --- | --- |
|
|
122
|
+
| `type` | Always `"registry"` |
|
|
123
|
+
| `name` | Bundle display name |
|
|
124
|
+
| `id` | Unique identifier (e.g. `npm:@scope/bundle`) |
|
|
125
|
+
| `description` | Summary from the registry |
|
|
126
|
+
| `action` | Ready-to-run next step such as `akm bundle add ... -> then search again` |
|
|
127
|
+
| `quality` | Optional provenance marker — `"generated"`, `"curated"`, or `"proposed"`. Replaces the legacy `curated` boolean removed in 0.7.0 |
|
|
128
|
+
|
|
129
|
+
Use `--detail full` to include ranking metadata like `score`.
|
|
130
|
+
|
|
131
|
+
### The `--assets` Flag
|
|
132
|
+
|
|
133
|
+
When a registry publishes a v3 index (see below), `akm search --from
|
|
134
|
+
registry` can return individual asset-level hits in addition to bundle-level
|
|
135
|
+
hits. Pass `--assets` to enable this:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
akm search "code review" --from registry --assets
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Asset hits include `assetType`, `assetName`, `description`, and the parent
|
|
142
|
+
`stash` information, so you can install the right bundle and immediately know
|
|
143
|
+
which asset to use.
|
|
144
|
+
|
|
145
|
+
## Discovery Filtering
|
|
146
|
+
|
|
147
|
+
Not every npm package or GitHub repo is an akm bundle. To keep results
|
|
148
|
+
relevant, the registry enforces tag-based filtering:
|
|
149
|
+
|
|
150
|
+
- **npm** -- Only packages whose `keywords` array includes `"akm-stash"` appear in search results.
|
|
151
|
+
- **GitHub** -- Only repositories with the topic `akm-stash` appear in search results.
|
|
152
|
+
|
|
153
|
+
> **0.6.0 breaking change:** `akm-cli >= 0.6.0` indexes only the
|
|
154
|
+
> `akm-stash` keyword / topic. The pre-0.6.0 `akm-kit` and `agentikit`
|
|
155
|
+
> keywords/topics are **not** honored as fallbacks. Publishers migrating
|
|
156
|
+
> from 0.5.x must add the new tag — see the
|
|
157
|
+
> [migration guide](../migration/v0.5-to-v0.6.md) for the step-by-step
|
|
158
|
+
> publisher checklist.
|
|
159
|
+
|
|
160
|
+
If you are publishing a bundle, add these tags so it can be discovered:
|
|
161
|
+
|
|
162
|
+
```jsonc
|
|
163
|
+
// package.json
|
|
164
|
+
{
|
|
165
|
+
"keywords": ["akm-stash", "your-other-tags"]
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
For GitHub repos, add topics via the repository settings page or the
|
|
170
|
+
`gh repo edit --add-topic akm-stash` command.
|
|
171
|
+
|
|
172
|
+
## Installing
|
|
173
|
+
|
|
174
|
+
Install a bundle with `akm bundle add` using any supported ref format:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# npm package
|
|
178
|
+
akm bundle add npm:@scope/my-bundle
|
|
179
|
+
|
|
180
|
+
# npm package (shorthand)
|
|
181
|
+
akm bundle add @scope/my-bundle
|
|
182
|
+
|
|
183
|
+
# GitHub repo
|
|
184
|
+
akm bundle add github:owner/repo
|
|
185
|
+
|
|
186
|
+
# GitHub repo at a specific tag or branch
|
|
187
|
+
akm bundle add github:owner/repo#v1.2.0
|
|
188
|
+
|
|
189
|
+
# GitHub URL
|
|
190
|
+
akm bundle add https://github.com/owner/repo
|
|
191
|
+
|
|
192
|
+
# Any git repo (GitLab, Bitbucket, Gitea, self-hosted, etc.)
|
|
193
|
+
akm bundle add git+https://gitlab.com/org/bundle
|
|
194
|
+
akm bundle add git+https://gitlab.com/org/bundle#v1.0
|
|
195
|
+
akm bundle add git+ssh://git@gitlab.com/org/bundle.git
|
|
196
|
+
|
|
197
|
+
# URLs on known git hosts are treated as git repos
|
|
198
|
+
akm bundle add https://gitlab.com/org/my-bundle
|
|
199
|
+
|
|
200
|
+
# Local directory (path or file: URI)
|
|
201
|
+
akm bundle add ./path/to/local/bundle
|
|
202
|
+
akm bundle add file:../relative/bundle
|
|
203
|
+
akm bundle add file:///absolute/path/to/bundle
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### What Happens During Install
|
|
207
|
+
|
|
208
|
+
1. **Ref parsing** -- The ref is classified as npm, GitHub/git, website, or
|
|
209
|
+
local directory. Known git hosts and `.git` URLs are git sources; other
|
|
210
|
+
HTTP(S) URLs are website sources.
|
|
211
|
+
2. **Artifact resolution** -- For npm, the latest (or requested) version
|
|
212
|
+
tarball URL is resolved. GitHub/git refs prefer a shallow clone at the
|
|
213
|
+
resolved revision so normal git credentials work; GitHub API tarballs are a
|
|
214
|
+
fallback when clone resolution is unavailable.
|
|
215
|
+
3. **Download and extract** -- The tarball is downloaded (or repo cloned) to a
|
|
216
|
+
cache directory under `~/.cache/akm/registry/` and extracted securely
|
|
217
|
+
(path traversal is rejected).
|
|
218
|
+
4. **Security audit** -- Before install completes, the extracted bundle's
|
|
219
|
+
`env`/`secret` asset **key names** are checked against a denylist of
|
|
220
|
+
process-execution-hijacking variables -- dynamic-linker hooks
|
|
221
|
+
(`LD_PRELOAD`, `DYLD_INSERT_LIBRARIES`, ...), `PATH`, shell/runtime startup
|
|
222
|
+
hooks (`BASH_ENV`, `PROMPT_COMMAND`, `NODE_OPTIONS`, `PYTHONSTARTUP`, ...),
|
|
223
|
+
and interactive-tool overrides (`EDITOR`, `PAGER`, `GIT_SSH_COMMAND`, ...).
|
|
224
|
+
`akm bundle add` **blocks the install** when a dangerous key is present unless
|
|
225
|
+
`--allow-dangerous-env-keys` is set (or you confirm at an interactive prompt).
|
|
226
|
+
This is a **key-name audit only** (plus the path-traversal rejection in step
|
|
227
|
+
3) -- akm does **not** scan source files, prompts, metadata, or install
|
|
228
|
+
scripts for prompt-injection phrases, shell pipes, or lifecycle hooks.
|
|
229
|
+
5. **Bundle root detection** -- The extracted contents are scanned for asset
|
|
230
|
+
type directories (`scripts/`, `skills/`, etc.) or a `.stash/` marker. If the
|
|
231
|
+
bundle nests its bundle under an `opencode/` subdirectory, that is detected
|
|
232
|
+
automatically.
|
|
233
|
+
6. **Selective include** -- If the package's `package.json` contains an
|
|
234
|
+
`akm.include` array, only the listed paths are copied into the
|
|
235
|
+
install cache. This lets a bundle ship a subset of its repo as the bundle.
|
|
236
|
+
7. **Config registration** -- The desired source descriptor (`path`/`git`/
|
|
237
|
+
`website`/`npm`, `writable`, the original `registryId`) is saved to
|
|
238
|
+
`config.bundles.<key>`. Resolved cache state -- id, source, ref, resolved
|
|
239
|
+
version/revision, integrity, local materialized root, and install
|
|
240
|
+
timestamp -- is recorded separately in `<dataDir>/akm.lock`, never
|
|
241
|
+
duplicated into `config.json`.
|
|
242
|
+
8. **Re-index** -- `akm index` runs automatically so the new assets appear in
|
|
243
|
+
search immediately.
|
|
244
|
+
|
|
245
|
+
### Selective Include
|
|
246
|
+
|
|
247
|
+
A bundle can declare which paths to include via `package.json`:
|
|
248
|
+
|
|
249
|
+
```jsonc
|
|
250
|
+
{
|
|
251
|
+
"akm": {
|
|
252
|
+
"include": [
|
|
253
|
+
"scripts",
|
|
254
|
+
"skills",
|
|
255
|
+
"commands"
|
|
256
|
+
]
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Only the listed paths are copied into the install cache. Paths must be
|
|
262
|
+
relative to the package root and cannot escape it. The `.git` directory is
|
|
263
|
+
always excluded.
|
|
264
|
+
|
|
265
|
+
## Managing Managed Sources
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
# List all managed sources with their status
|
|
269
|
+
akm bundle list
|
|
270
|
+
|
|
271
|
+
# Update a specific bundle to its latest version
|
|
272
|
+
akm bundle update npm:@scope/my-bundle
|
|
273
|
+
|
|
274
|
+
# Update all managed sources
|
|
275
|
+
akm bundle update --all
|
|
276
|
+
|
|
277
|
+
# Force fresh download even if version is unchanged
|
|
278
|
+
akm bundle update npm:@scope/my-bundle --force
|
|
279
|
+
akm bundle update --all --force
|
|
280
|
+
|
|
281
|
+
# Remove a bundle
|
|
282
|
+
akm bundle remove npm:@scope/my-bundle
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Cloning Assets
|
|
286
|
+
|
|
287
|
+
Managed sources are cache-managed and may be overwritten by `akm bundle update`.
|
|
288
|
+
To edit an asset from a managed source, clone it into the working bundle:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
akm clone "npm:@scope/my-bundle//scripts/deploy.sh"
|
|
292
|
+
|
|
293
|
+
# Clone with a new name
|
|
294
|
+
akm clone "npm:@scope/my-bundle//scripts/deploy.sh" --name my-deploy.sh
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
The cloned asset lives in the working bundle and takes priority over the
|
|
298
|
+
installed version in search and show.
|
|
299
|
+
|
|
300
|
+
Use `--dest` to clone to a custom directory instead of the working bundle:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
# Deploy a script directly into a project's .claude directory
|
|
304
|
+
akm clone "npm:@scope/my-bundle//scripts/deploy.sh" --dest ./project/.claude
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
The type subdirectory (`scripts/`, `skills/`, etc.) is appended automatically,
|
|
308
|
+
so the example above produces `./project/.claude/scripts/deploy.sh`.
|
|
309
|
+
|
|
310
|
+
**Remote clone without install:** If the origin in the ref points to a
|
|
311
|
+
package that is not yet installed, `akm clone` fetches it to the cache
|
|
312
|
+
automatically. Unlike `akm bundle add`, this does **not** register the package as
|
|
313
|
+
a managed source -- it only extracts the single requested asset.
|
|
314
|
+
|
|
315
|
+
## Search Priority
|
|
316
|
+
|
|
317
|
+
`akm search` and `akm show` query a single local FTS5 index that covers
|
|
318
|
+
every configured source's directory. There is no fixed lookup order —
|
|
319
|
+
results are ranked by relevance and utility, and precedence is expressed
|
|
320
|
+
through ranking rather than a per-source fan-out (see
|
|
321
|
+
[concepts.md](../guides/concepts.md#3-akm-builds-a-local-index-and-uses-progressive-disclosure)).
|
|
322
|
+
|
|
323
|
+
When two sources contain an asset with the same name, the working bundle
|
|
324
|
+
typically wins by convention because its files are usually more recent.
|
|
325
|
+
Use `akm clone` to copy an asset into your working bundle for local
|
|
326
|
+
editing — your edits then override the upstream copy in subsequent
|
|
327
|
+
searches.
|
|
328
|
+
|
|
329
|
+
## Registry Providers
|
|
330
|
+
|
|
331
|
+
akm uses a pluggable provider system for registries. Each registry entry can
|
|
332
|
+
specify a `provider` type that determines how it is searched. When omitted,
|
|
333
|
+
the provider defaults to `"static-index"`.
|
|
334
|
+
|
|
335
|
+
Registries discover installable source bundles. They never store
|
|
336
|
+
asset content directly — installing a bundle creates a regular `bundles`
|
|
337
|
+
entry that the indexer walks like any other source.
|
|
338
|
+
|
|
339
|
+
### Built-in Providers
|
|
340
|
+
|
|
341
|
+
#### `static-index` (default)
|
|
342
|
+
|
|
343
|
+
Fetches a static JSON v3 index from the configured URL and performs
|
|
344
|
+
client-side scoring. The index is cached locally with a 1-hour TTL. There is
|
|
345
|
+
currently no fallback to a stale cache row past that TTL on fetch failure —
|
|
346
|
+
`fetchCachedJson` (`src/storage/repositories/registry-index-cache-repository.ts`) only
|
|
347
|
+
consults the cache row that its own `getRegistryIndexCache` lookup returned
|
|
348
|
+
under the same TTL, and that lookup returns nothing once the row is older
|
|
349
|
+
than `maxAgeMs`, so a fetch failure after the TTL expires surfaces as an
|
|
350
|
+
error rather than serving older data.
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
akm registry add https://example.com/registry/index.json --name my-team
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
#### `skills-sh`
|
|
357
|
+
|
|
358
|
+
Searches the [skills.sh](https://skills.sh) registry using its server-side
|
|
359
|
+
search API. Results are skills from GitHub repositories indexed by skills.sh.
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
akm registry add https://skills.sh --name skills.sh --provider skills-sh
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
Key behaviors:
|
|
366
|
+
- Server-side search via `GET {url}/api/search?q={query}&limit={limit}`
|
|
367
|
+
- Hit IDs are namespaced with `"skills-sh:"` prefix to avoid collisions
|
|
368
|
+
- Scores are normalized from install counts (0-1 range)
|
|
369
|
+
- Per-query response caching with 15-minute TTL
|
|
370
|
+
- No stale-cache fallback past that TTL on network failure — same shared
|
|
371
|
+
cache mechanism as `static-index`, see the note there
|
|
372
|
+
- No authenticated-registry transport is currently supported
|
|
373
|
+
- Toggle on/off via `akm registry add https://skills.sh --name skills.sh --provider skills-sh` / `akm registry remove skills.sh` (the bare `akm enable` / `akm disable` aliases and `akm config enable|disable` were removed in 0.9.0 — use `akm registry add|remove`, the general mechanism)
|
|
374
|
+
|
|
375
|
+
To install a skill found via skills.sh, use the `ref` field (GitHub
|
|
376
|
+
`owner/repo`) with `akm bundle add`:
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
akm bundle add vercel-labs/agent-skills
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
## Hosting Your Own Registry
|
|
383
|
+
|
|
384
|
+
A registry is a static JSON file conforming to the registry index schema.
|
|
385
|
+
You can host one on any static file server, CDN, or GitHub Pages.
|
|
386
|
+
|
|
387
|
+
Minimal example:
|
|
388
|
+
|
|
389
|
+
```json
|
|
390
|
+
{
|
|
391
|
+
"version": 3,
|
|
392
|
+
"updatedAt": "2026-03-12T00:00:00Z",
|
|
393
|
+
"stashes": [
|
|
394
|
+
{
|
|
395
|
+
"id": "github:your-org/deploy-bundle",
|
|
396
|
+
"name": "deploy-bundle",
|
|
397
|
+
"description": "Deployment scripts and skills",
|
|
398
|
+
"ref": "your-org/deploy-bundle",
|
|
399
|
+
"source": "github",
|
|
400
|
+
"tags": ["deploy", "infrastructure"],
|
|
401
|
+
"assetTypes": ["script", "skill", "memory"]
|
|
402
|
+
}
|
|
403
|
+
]
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Host the file at a stable URL and have team members add it:
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
akm registry add https://your-server.com/akm-registry/index.json --name team
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
To generate the index automatically, use the maintainer script in the akm
|
|
414
|
+
repository:
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
bun scripts/build-registry-index.ts --out dist/index.json
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
This does not scan the current directory. It fans out to three discovery
|
|
421
|
+
sources -- a manually curated `manual-entries.json`, an npm registry keyword
|
|
422
|
+
search for `akm-stash`, and a GitHub topic search for `akm-stash` -- and
|
|
423
|
+
deduplicates the results into a v3 index with bundle and asset entries. You
|
|
424
|
+
can also use the tooling in the
|
|
425
|
+
[akm-registry](https://github.com/itlackey/akm-registry) repository used by the
|
|
426
|
+
official registry.
|
|
427
|
+
|
|
428
|
+
## Registry Index v3
|
|
429
|
+
|
|
430
|
+
Version 3 of the registry index schema is the only format `akm-cli >=
|
|
431
|
+
0.6.0` parses. It carries an `assets` array on each bundle entry so
|
|
432
|
+
clients can perform asset-level search without installing the bundle
|
|
433
|
+
first.
|
|
434
|
+
|
|
435
|
+
```json
|
|
436
|
+
{
|
|
437
|
+
"version": 3,
|
|
438
|
+
"updatedAt": "2026-03-12T00:00:00Z",
|
|
439
|
+
"stashes": [
|
|
440
|
+
{
|
|
441
|
+
"id": "npm:@scope/my-bundle",
|
|
442
|
+
"name": "my-bundle",
|
|
443
|
+
"description": "Scripts and skills for deployment",
|
|
444
|
+
"ref": "@scope/my-bundle",
|
|
445
|
+
"source": "npm",
|
|
446
|
+
"tags": ["deploy"],
|
|
447
|
+
"assetTypes": ["script", "skill", "memory"],
|
|
448
|
+
"assets": [
|
|
449
|
+
{ "type": "script", "name": "deploy.sh", "description": "Deploy to production" },
|
|
450
|
+
{ "type": "skill", "name": "code-review", "description": "Structured code review process" }
|
|
451
|
+
]
|
|
452
|
+
}
|
|
453
|
+
]
|
|
454
|
+
}
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
Each asset entry supports:
|
|
458
|
+
|
|
459
|
+
| Field | Required | Description |
|
|
460
|
+
| --- | --- | --- |
|
|
461
|
+
| `type` | yes | AKM's own asset type keys (`skill`, `command`, `agent`, `knowledge`, `workflow`, `script`, `memory`, `env`, `secret`, `lesson`, `task`, `session`, `fact`, `instruction` — the authority is `KNOWN_TYPES` in `src/core/recognition-util.ts`), or a foreign/adapter-owned type (e.g. an `llm-wiki` page kind). This field is not a strict validation gate, so an unrecognized type still round-trips. Note: `wiki` was retired as an AKM-owned type — the LLM Wiki structure now lives in the first-class `llm-wiki` adapter, whose page kinds are foreign types rather than an AKM-owned `wiki` type. |
|
|
462
|
+
| `name` | yes | Asset name |
|
|
463
|
+
| `description` | no | One-line summary |
|
|
464
|
+
| `tags` | no | Searchable keywords |
|
|
465
|
+
|
|
466
|
+
The 0.6.0 release dropped support for the legacy v1 / v2 indexes;
|
|
467
|
+
publishers must regenerate `index.json` with the
|
|
468
|
+
`scripts/build-registry-index.ts` maintainer script
|
|
469
|
+
or the [akm-registry](https://github.com/itlackey/akm-registry) tooling
|
|
470
|
+
(see the [v0.5 → v0.6 migration guide](../migration/v0.5-to-v0.6.md)). akm
|
|
471
|
+
treats unknown fields inside a v3 entry as forward-compatible.
|
|
472
|
+
|
|
473
|
+
## Cache Layout
|
|
474
|
+
|
|
475
|
+
Installed bundles are cached under `~/.cache/akm/registry/`
|
|
476
|
+
(`buildInstallCacheDir`, `src/sources/providers/provider-utils.ts`):
|
|
477
|
+
|
|
478
|
+
```
|
|
479
|
+
~/.cache/akm/registry/
|
|
480
|
+
npm-@scope-my-bundle/
|
|
481
|
+
1.2.3/ # the resolved version — reused across installs
|
|
482
|
+
artifact.tar.gz # Downloaded archive
|
|
483
|
+
extracted/ # Extracted contents
|
|
484
|
+
selected/ # Subset from akm.include (if applicable)
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
The version segment is the resolved version string for `npm`/`git` sources
|
|
488
|
+
(so re-installing the same version reuses the cache), or a random UUID for
|
|
489
|
+
`local` sources, which are always isolated per install.
|
|
@@ -20,7 +20,7 @@ one explicitly. 0.9.0 recognizes 11 formats.
|
|
|
20
20
|
| `claude` | `CLAUDE.md` as `instruction`; `commands/`, `agents/`, `skills/<name>/SKILL.md` as their matching types | Root `CLAUDE.md` plus at least one of `commands/`, `agents/`, `skills/` | Read-only | Point AKM at an existing Claude Code `.claude` tool directory |
|
|
21
21
|
| `opencode` | Same shape as `claude`, rooted on `AGENTS.md` | `opencode.json`/`opencode.jsonc`, or root `AGENTS.md` plus a canonical plural tool directory | Read-only | Point AKM at an existing OpenCode `.opencode` tool directory |
|
|
22
22
|
| `dotenv` | `env` entries as key names only (never values); `secret` entries as file names only (never content) | Every top-level directory is `env/` and/or `secrets/`, with at least one present | Writable, narrowly — `akm env create`/`env remove`/`secret set` only | A standalone env/secrets-only bundle |
|
|
23
|
-
| `akm-workflow` | Workflow steps, name, description, tags |
|
|
23
|
+
| `akm-workflow` | Workflow steps, name, description, tags | A top-level `.md` file with explicit `type: workflow` frontmatter | Writable — `akm workflow create` only | A standalone workflow bundle, one workflow per file |
|
|
24
24
|
| `akm-task` | Task source v4 (`version: 4`) `.yml` sources as type `task`, including local schedules/manual triggers and the exact authored YAML | A top-level `.yml` file accepted by the task source v4 parser (`version: 4`, one `uses`/`run` executable selector, optional top-level `schedule:`) | Read-only | A standalone scheduled-task bundle; `.yaml` is rejected |
|
|
25
25
|
| `llm-wiki` | `raw/` sources as `wiki-source`; `pages/` as their `pageKind` (default `note`), with resolved cross-reference links | Root `schema.md` plus a `pages/` directory | Read-only (author by writing directly into `pages/`; AKM indexes and serves the result) | [Karpathy's LLM-wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — agent-authored reference wikis |
|
|
26
26
|
| `akm` (native) | AKM's own 14 native asset types — see [Asset Types](https://github.com/itlackey/akm/blob/main/docs/reference/asset-types.md) | A `.stash` marker directory, or two-plus native subdirectories, or the fallback when nothing else matches | Fully writable — every AKM-native write command | Your working bundle, and any bundle authored as AKM's own format |
|
|
@@ -50,9 +50,8 @@ indexed, scheduled, or executed. See [Tasks](tasks.md).
|
|
|
50
50
|
|
|
51
51
|
## Workflow formats
|
|
52
52
|
|
|
53
|
-
Workflow sources are
|
|
54
|
-
|
|
55
|
-
source IR. Task sources remain `.yml` only, authored as task source v4. See
|
|
53
|
+
Workflow sources are `.md` and compile to source IR. Task sources are `.yml`
|
|
54
|
+
only, authored as task source v4. See
|
|
56
55
|
[Tasks](tasks.md) and [Workflow Schema](workflow-schema.md).
|
|
57
56
|
|
|
58
57
|
## Why this matters
|
package/docs/reference/tasks.md
CHANGED
|
@@ -251,10 +251,9 @@ redact: [TOKEN]
|
|
|
251
251
|
consumer — a native run's status comes from its exit code alone — so
|
|
252
252
|
declaring `output:` on them fails parsing with `TASK_SOURCE_INVALID`
|
|
253
253
|
instead of silently recording a contract nothing enforces.
|
|
254
|
-
- A
|
|
255
|
-
`uses: tasks/<ref>`
|
|
256
|
-
|
|
257
|
-
for how a workflow step's `with:` binds a v4 task's declared `inputs:`.
|
|
254
|
+
- A workflow step cannot target a task: the GitHub-shaped YAML workflow format
|
|
255
|
+
that carried `uses: tasks/<ref>` was removed in 0.10. A task runs a workflow
|
|
256
|
+
(`uses: workflows/<ref>`), not the other way round.
|
|
258
257
|
|
|
259
258
|
### Input flags
|
|
260
259
|
|
|
@@ -280,10 +279,8 @@ workflow step's own composition uses); for every other target — `run:`
|
|
|
280
279
|
shell, `scripts/<ref>`, `commands/<ref>` — the values are validated and then
|
|
281
280
|
**discarded**. `akm task run`'s own flags never populate an
|
|
282
281
|
`AKM_TASK_INPUTS` environment variable or a `## Task inputs` prompt block.
|
|
283
|
-
Those two surfaces
|
|
284
|
-
|
|
285
|
-
`with:` binding, resolved fresh for that step's own dispatch — see
|
|
286
|
-
[`with:` on a task-composed step](workflow-schema.md#github-shaped-yaml-subset).
|
|
282
|
+
Those two surfaces existed only for a workflow step composing a task through
|
|
283
|
+
`uses: tasks/<ref>`, which was removed in 0.10.
|
|
287
284
|
A scheduled run (`schedule[].inputs`, above) reaches the target through this
|
|
288
285
|
same `akm task run` path, so it inherits the identical rule: delivered as
|
|
289
286
|
params for a `workflows/<ref>` target, otherwise validated and discarded.
|
|
@@ -401,21 +398,17 @@ for full before/after examples and recovery guidance.
|
|
|
401
398
|
|
|
402
399
|
## Operations
|
|
403
400
|
|
|
404
|
-
- `akm search --type task`
|
|
401
|
+
- `akm search --type task` and
|
|
405
402
|
`akm show tasks/<id>` inspect task assets.
|
|
406
403
|
- `akm task explain <ref>` prints a task's declared inputs, resolved target,
|
|
407
404
|
effective execution settings, and schedule bindings without running
|
|
408
405
|
anything — see [`akm task explain`](#akm-task-explain) above.
|
|
409
|
-
- `akm
|
|
410
|
-
file
|
|
411
|
-
`
|
|
412
|
-
`akm
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
command-kind task. The envelope's own `sourceVersion` field names the
|
|
416
|
-
file's declared schema version. A version 2/3 file, and a `version: 4`
|
|
417
|
-
file still carrying a retired `schedule[].enabled`, report `blocked`
|
|
418
|
-
(exit 1) naming `akm migrate apply`, which converts them.
|
|
406
|
+
- `akm lint --type tasks` reports what `akm task sync` would refuse for a task
|
|
407
|
+
file: a document that does not parse as task source v4, a version 2/3 file or
|
|
408
|
+
a `version: 4` file still carrying a retired `schedule[].enabled` (the finding
|
|
409
|
+
names `akm migrate apply`, which converts them), a cron the local scheduler
|
|
410
|
+
backend cannot parse, and a schedule entry whose `inputs` leave a required
|
|
411
|
+
input unsatisfied. It is read-only and needs no configured engine.
|
|
419
412
|
- `akm task add` validates a task source v4 document, writes it, adds its ref
|
|
420
413
|
to local scheduler activation, and syncs its bundle. `--params` renders
|
|
421
414
|
typed `inputs:` declarations instead of a `with:` bag; `--schedule` is
|