akm-cli 0.9.0-rc.8 → 0.9.0
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 +1063 -44
- package/README.md +51 -25
- package/SECURITY.md +14 -1
- package/STABILITY.md +497 -0
- package/dist/akm +148 -35
- package/dist/{akm-migrate-storage → akm-migrate} +6 -9
- package/dist/assets/hints/cli-hints-full.md +223 -95
- package/dist/assets/hints/cli-hints-short.md +85 -22
- package/dist/assets/improve-strategies/default.json +1 -1
- package/dist/assets/improve-strategies/reflect-distill.json +1 -1
- package/dist/assets/prompts/memory-infer-user.md +2 -3
- package/dist/assets/stash-skeleton/README.md +6 -5
- package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/command.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/domains.md +2 -0
- package/dist/assets/stash-skeleton/facts/conventions/organization.md +20 -9
- package/dist/assets/tasks/core/extract.yml +1 -1
- package/dist/assets/tasks/core/version-check.yml +1 -1
- package/dist/assets/tasks/improve/akm-graph-refresh-weekly.yml +5 -0
- package/dist/assets/tasks/improve/akm-improve-catchup.yml +8 -0
- package/dist/assets/tasks/improve/akm-improve-consolidate.yml +5 -0
- package/dist/assets/tasks/improve/akm-improve-frequent.yml +5 -0
- package/dist/assets/tasks/improve/akm-improve-nightly.yml +5 -0
- package/dist/assets/templates/html/health.html +1 -3
- package/dist/assets/workflows/workflow-template.md +32 -15
- package/dist/cli/invocation.js +40 -15
- package/dist/cli/parse-args.js +0 -22
- package/dist/cli/retired-commands.js +121 -0
- package/dist/cli/shared.js +154 -22
- package/dist/cli/unknown-flags.js +236 -0
- package/dist/cli-node.mjs +2 -1
- package/dist/cli.js +696 -258
- package/dist/commands/agent/agent-dispatch.js +14 -3
- package/dist/commands/agent/contribute-cli.js +73 -88
- package/dist/commands/completions.js +79 -22
- package/dist/commands/config-cli.js +17 -150
- package/dist/commands/env/env-cli.js +59 -143
- package/dist/commands/env/env.js +12 -163
- package/dist/commands/env/marker-path.js +6 -0
- package/dist/commands/env/secret-cli.js +36 -66
- package/dist/commands/env/secret.js +24 -57
- package/dist/commands/feedback-cli.js +141 -87
- package/dist/commands/health/accept-rate.js +58 -0
- package/dist/commands/health/advisories.js +3 -4
- package/dist/commands/health/checks.js +85 -23
- package/dist/commands/health/html-report.js +7 -10
- package/dist/commands/health/improve-metrics.js +25 -83
- package/dist/commands/health/md-report.js +5 -9
- package/dist/commands/health/metrics.js +62 -20
- package/dist/commands/health/renderers.js +47 -0
- package/dist/commands/health/report-view-model.js +4 -5
- package/dist/commands/health/stash-exposure.js +1 -1
- package/dist/commands/health/surfaces.js +3 -48
- package/dist/commands/health/task-runs.js +3 -67
- package/dist/commands/health/types-improve.js +7 -0
- package/dist/commands/health.js +99 -28
- package/dist/commands/improve/anti-collapse.js +2 -2
- package/dist/commands/improve/autonomy-gate.js +68 -0
- package/dist/commands/improve/collapse-detector.js +41 -40
- package/dist/commands/improve/consolidate/eligibility.js +1 -23
- package/dist/commands/improve/consolidate/merge.js +4 -0
- package/dist/commands/improve/consolidate.js +140 -1000
- package/dist/commands/improve/distill/promote-memory.js +12 -12
- package/dist/commands/improve/distill/quality-gate.js +6 -6
- package/dist/commands/improve/distill.js +58 -69
- package/dist/commands/improve/eligibility.js +105 -57
- package/dist/commands/improve/extract-cli.js +14 -133
- package/dist/commands/improve/improve-cli.js +98 -114
- package/dist/commands/improve/improve-result-file.js +1 -28
- package/dist/commands/improve/improve-strategies.js +8 -5
- package/dist/commands/improve/improve.js +128 -91
- package/dist/commands/improve/loop-stages.js +182 -20
- package/dist/commands/improve/memory/derived-ref.js +45 -43
- package/dist/commands/improve/memory/memory-belief.js +1 -1
- package/dist/commands/improve/memory/memory-contradiction-detect.js +4 -12
- package/dist/commands/improve/memory/memory-improve.js +6 -5
- package/dist/commands/improve/outcome-loop.js +22 -65
- package/dist/commands/improve/preparation.js +114 -123
- package/dist/commands/improve/proactive-maintenance.js +2 -5
- package/dist/commands/improve/reflect.js +56 -160
- package/dist/commands/improve/salience.js +11 -122
- package/dist/commands/improve/source-identity.js +10 -38
- package/dist/commands/lint/base-linter.js +20 -124
- package/dist/commands/lint/env-key-rules.js +31 -47
- package/dist/commands/lint/index.js +249 -43
- package/dist/commands/{events.js → log.js} +33 -38
- package/dist/commands/migrate-cli.js +92 -12
- package/dist/commands/migration-tool.js +46 -0
- package/dist/commands/observability-cli.js +70 -209
- package/dist/commands/proposal/drain.js +101 -29
- package/dist/commands/proposal/proposal-cli.js +76 -48
- package/dist/commands/proposal/proposal.js +54 -18
- package/dist/commands/proposal/propose-cli.js +88 -0
- package/dist/commands/proposal/propose.js +23 -15
- package/dist/commands/proposal/repository.js +701 -278
- package/dist/commands/proposal/validators/proposal-quality-validators.js +2 -8
- package/dist/commands/proposal/validators/proposal-validators.js +55 -7
- package/dist/commands/proposal/validators/proposals.js +4 -7
- package/dist/commands/read/curate.js +34 -53
- package/dist/commands/read/knowledge.js +150 -95
- package/dist/commands/read/registry-search.js +2 -2
- package/dist/commands/read/remember-cli.js +42 -15
- package/dist/commands/read/search-cli.js +180 -78
- package/dist/commands/read/search.js +58 -43
- package/dist/commands/read/show.js +197 -141
- package/dist/commands/registry-cli.js +12 -51
- package/dist/commands/remember.js +14 -57
- package/dist/commands/sources/add-cli.js +100 -31
- package/dist/commands/sources/bundle-cli.js +166 -0
- package/dist/commands/sources/bundle-config-ops.js +7 -2
- package/dist/commands/sources/info.js +18 -5
- package/dist/commands/sources/init.js +12 -12
- package/dist/commands/sources/installed-stashes.js +382 -98
- package/dist/commands/sources/schema-repair.js +3 -2
- package/dist/commands/sources/self-update.js +131 -38
- package/dist/commands/sources/source-add.js +72 -17
- package/dist/commands/sources/source-clone.js +129 -45
- package/dist/commands/sources/source-manage.js +43 -23
- package/dist/commands/sources/sources-cli.js +57 -208
- package/dist/commands/sources/stash-cli.js +46 -53
- package/dist/commands/tasks/tasks-cli.js +91 -97
- package/dist/commands/tasks/tasks.js +276 -421
- package/dist/commands/workflow-cli.js +175 -450
- package/dist/core/adapter/adapters/akm-adapter.js +47 -28
- package/dist/core/adapter/adapters/akm-lint.js +42 -27
- package/dist/core/adapter/adapters/akm-metadata.js +15 -44
- package/dist/core/adapter/adapters/akm-task-adapter.js +15 -13
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +55 -71
- package/dist/core/adapter/adapters/dotenv-adapter.js +1 -1
- package/dist/core/adapter/adapters/generic-files-adapter.js +2 -0
- package/dist/core/adapter/adapters/index.js +6 -6
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +14 -8
- package/dist/core/adapter/adapters/okf-adapter.js +187 -19
- package/dist/core/adapter/adapters/shared.js +3 -19
- package/dist/core/adapter/adapters/tool-dir-shared.js +8 -3
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +1 -0
- package/dist/core/adapter/detect-adapter.js +17 -0
- package/dist/core/adapter/recognize-match.js +6 -4
- package/dist/core/adapter/validate-context.js +214 -0
- package/dist/core/asset/akm-markdown.js +63 -0
- package/dist/core/asset/asset-placement.js +20 -6
- package/dist/core/asset/asset-ref.js +11 -9
- package/dist/core/asset/frontmatter-lint.js +30 -0
- package/dist/core/asset/frontmatter.js +37 -9
- package/dist/core/asset/markdown.js +40 -51
- package/dist/core/asset/resolve-ref.js +89 -18
- package/dist/core/asset/stash-meta.js +1 -1
- package/dist/core/bundle-id.js +51 -0
- package/dist/core/common.js +152 -38
- package/dist/core/config/config-io.js +12 -1
- package/dist/core/config/config-schema.js +35 -8
- package/dist/core/config/config-sources.js +55 -11
- package/dist/core/config/config-walker.js +25 -9
- package/dist/core/config/config.js +9 -48
- package/dist/core/config/experimental.js +21 -0
- package/dist/core/config/schema/embedding.js +5 -1
- package/dist/core/config/schema/experimental.js +30 -0
- package/dist/core/config/schema/improve-processes.js +0 -6
- package/dist/core/config/schema/improve.js +21 -3
- package/dist/core/config/schema/index-config.js +8 -15
- package/dist/core/config/schema/output.js +4 -1
- package/dist/core/config/schema/setup.js +9 -18
- package/dist/core/config/schema/sources-bundles.js +49 -33
- package/dist/core/config/schema/workflow.js +3 -3
- package/dist/core/env-secret-ref.js +76 -46
- package/dist/core/errors.js +18 -12
- package/dist/core/events.js +46 -128
- package/dist/core/file-change.js +6 -5
- package/dist/core/fs-txn.js +83 -7
- package/dist/core/git-message.js +2 -2
- package/dist/core/improve-result.js +1 -100
- package/dist/core/lesson-lint.js +1 -17
- package/dist/core/logs-db.js +2 -1
- package/dist/core/migration-operation.js +16 -0
- package/dist/core/mutation-target.js +78 -0
- package/dist/core/parse.js +4 -1
- package/dist/core/paths.js +17 -20
- package/dist/core/recognition-util.js +12 -14
- package/dist/core/redaction.js +34 -0
- package/dist/core/standards/resolve-standards-context.js +2 -14
- package/dist/core/standards/resolve-stash-standards.js +2 -2
- package/dist/core/standards/resolve-type-conventions.js +2 -2
- package/dist/core/state/migrations.js +41 -18
- package/dist/core/state-db.js +5 -14
- package/dist/core/structured.js +1 -1
- package/dist/core/subprocess.js +6 -4
- package/dist/core/text-truncation.js +9 -5
- package/dist/core/type-presentation.js +3 -3
- package/dist/core/warn.js +0 -3
- package/dist/core/write-source.js +771 -95
- package/dist/indexer/bundle-identity-guard.js +3 -2
- package/dist/indexer/db/graph-db.js +0 -24
- package/dist/indexer/ensure-index.js +1 -0
- package/dist/indexer/graph/graph-boost.js +9 -34
- package/dist/indexer/graph/graph-extraction.js +8 -5
- package/dist/indexer/index-writer-lock.js +53 -17
- package/dist/indexer/index-written-assets.js +16 -22
- package/dist/indexer/indexer.js +497 -239
- package/dist/indexer/installations.js +14 -96
- package/dist/indexer/passes/dir-staleness.js +16 -9
- package/dist/indexer/passes/memory-inference.js +11 -9
- package/dist/indexer/passes/metadata.js +113 -47
- package/dist/indexer/scan/doc-to-entry.js +38 -1
- package/dist/indexer/scan/drain-dir.js +13 -23
- package/dist/indexer/search/db-search.js +99 -54
- package/dist/indexer/search/fts-query.js +47 -24
- package/dist/indexer/search/ranking-contributors.js +42 -20
- package/dist/indexer/search/ranking.js +18 -99
- package/dist/indexer/search/search-fields.js +7 -2
- package/dist/indexer/search/search-source.js +82 -93
- package/dist/indexer/usage/usage-events.js +0 -89
- package/dist/indexer/walk/file-context.js +2 -1
- package/dist/indexer/walk/matchers.js +30 -43
- package/dist/indexer/walk/path-resolver.js +7 -2
- package/dist/indexer/walk/walker.js +38 -12
- package/dist/integrations/agent/builders.js +0 -6
- package/dist/integrations/agent/config.js +2 -2
- package/dist/integrations/agent/detect.js +49 -19
- package/dist/integrations/agent/engine-fallback.js +76 -0
- package/dist/integrations/agent/profiles.js +14 -0
- package/dist/integrations/agent/prompts.js +12 -8
- package/dist/integrations/agent/runner-dispatch.js +4 -2
- package/dist/integrations/agent/runner.js +0 -1
- package/dist/integrations/agent/spawn.js +5 -6
- package/dist/integrations/github.js +1 -1
- package/dist/integrations/harnesses/aider/agent-builder.js +6 -4
- package/dist/integrations/harnesses/amazonq/agent-builder.js +7 -4
- package/dist/integrations/harnesses/claude/session-log.js +0 -10
- package/dist/integrations/harnesses/codex/agent-builder.js +5 -2
- package/dist/integrations/harnesses/copilot/agent-builder.js +5 -3
- package/dist/integrations/harnesses/gemini/agent-builder.js +5 -3
- package/dist/integrations/harnesses/index.js +3 -7
- package/dist/integrations/harnesses/opencode/agent-builder.js +21 -2
- package/dist/integrations/harnesses/opencode/session-log.js +0 -15
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +13 -4
- package/dist/integrations/harnesses/openhands/agent-builder.js +9 -6
- package/dist/integrations/harnesses/pi/agent-builder.js +6 -4
- package/dist/integrations/lockfile.js +101 -6
- package/dist/integrations/session-logs/index.js +3 -28
- package/dist/llm/client.js +136 -100
- package/dist/llm/embedders/remote.js +13 -5
- package/dist/llm/feature-gate.js +4 -12
- package/dist/llm/graph-extract.js +5 -11
- package/dist/llm/memory-infer.js +144 -1
- package/dist/llm/metadata-enhance.js +5 -7
- package/dist/llm/structured-call.js +1 -1
- package/dist/llm/usage-persist.js +26 -5
- package/dist/llm/usage-telemetry.js +25 -2
- package/dist/output/cli-hints.js +1 -2
- package/dist/output/context.js +22 -7
- package/dist/output/format-exempt.js +80 -0
- package/dist/output/generic-render.js +259 -0
- package/dist/output/render-registry.js +57 -0
- package/dist/output/renderers.js +14 -36
- package/dist/output/shapes/curate.js +10 -1
- package/dist/output/shapes/events.js +12 -7
- package/dist/output/shapes/helpers.js +56 -83
- package/dist/output/shapes/migrate.js +8 -0
- package/dist/output/shapes/passthrough.js +7 -41
- package/dist/output/shapes/proposal/producer.js +15 -7
- package/dist/output/shapes.js +2 -9
- package/dist/output/text/{init.js → bundle-create.js} +3 -1
- package/dist/output/text/bundle-show.js +7 -0
- package/dist/output/text/command-format.js +164 -96
- package/dist/output/text/env.js +1 -3
- package/dist/output/text/events.js +8 -7
- package/dist/output/text/health-format.js +103 -0
- package/dist/output/text/health.js +7 -0
- package/dist/output/text/helpers.js +10 -8
- package/dist/output/text/lint-format.js +43 -0
- package/dist/output/text/{save.js → lint.js} +2 -2
- package/dist/output/text/migrate.js +88 -0
- package/dist/output/text/proposal/producer.js +4 -2
- package/dist/output/text/proposal-format.js +44 -72
- package/dist/output/text/registry-commands.js +1 -2
- package/dist/output/text/show-directives.js +15 -7
- package/dist/output/text/status-list.js +32 -0
- package/dist/output/text/sync.js +5 -0
- package/dist/output/text/workflow-format.js +24 -203
- package/dist/output/text/workflow.js +1 -7
- package/dist/output/text.js +16 -17
- package/dist/registry/factory.js +4 -6
- package/dist/registry/origin-resolve.js +16 -27
- package/dist/registry/providers/skills-sh.js +3 -3
- package/dist/registry/providers/static-index.js +13 -23
- package/dist/registry/resolve.js +42 -7
- package/dist/registry/semver.js +34 -84
- package/dist/runtime.js +2 -23
- package/dist/scripts/akm-migrate-node.js +60290 -0
- package/dist/scripts/akm-migrate.js +59628 -0
- package/dist/setup/detect.js +42 -15
- package/dist/setup/registry-stash-loader.js +2 -2
- package/dist/setup/setup.js +236 -136
- package/dist/setup/steps/connection.js +7 -9
- package/dist/setup/steps/platforms.js +9 -9
- package/dist/setup/steps/semantic.js +15 -3
- package/dist/setup/steps/sources.js +12 -13
- package/dist/setup/steps/stashdir.js +2 -3
- package/dist/setup/steps/tasks.js +237 -120
- package/dist/sources/freshness.js +1 -1
- package/dist/sources/provider-factory.js +11 -17
- package/dist/sources/providers/filesystem.js +2 -3
- package/dist/sources/providers/git-install.js +278 -34
- package/dist/sources/providers/git-provider.js +25 -23
- package/dist/sources/providers/git-stash.js +395 -106
- package/dist/sources/providers/git.js +2 -2
- package/dist/sources/providers/npm.js +16 -19
- package/dist/sources/providers/provider-utils.js +7 -4
- package/dist/sources/providers/sync-from-ref.js +3 -9
- package/dist/sources/providers/website.js +6 -1
- package/dist/sources/resolve.js +6 -5
- package/dist/sources/snapshot-fetchers/bluesky.js +146 -0
- package/dist/sources/snapshot-fetchers/content-extract.js +566 -0
- package/dist/sources/snapshot-fetchers/fetcher-util.js +41 -0
- package/dist/sources/snapshot-fetchers/github.js +100 -0
- package/dist/sources/snapshot-fetchers/host-guard.js +291 -0
- package/dist/sources/snapshot-fetchers/registry.js +17 -1
- package/dist/sources/snapshot-fetchers/robots.js +348 -0
- package/dist/sources/snapshot-fetchers/rss.js +282 -0
- package/dist/sources/snapshot-fetchers/secret-seam.js +42 -0
- package/dist/sources/snapshot-fetchers/website-ingest.js +566 -268
- package/dist/sources/snapshot-fetchers/x.js +910 -0
- package/dist/storage/database.js +7 -0
- package/dist/storage/engines/sqlite-migrations.js +23 -111
- package/dist/storage/managed-db.js +2 -2
- package/dist/storage/repositories/canaries-repository.js +1 -1
- package/dist/storage/repositories/events-repository.js +27 -11
- package/dist/storage/repositories/improve-runs-repository.js +6 -12
- package/dist/storage/repositories/index-connection.js +17 -6
- package/dist/storage/repositories/index-entries-repository.js +151 -240
- package/dist/storage/repositories/index-entry-mapper.js +15 -11
- package/dist/storage/repositories/index-fts-repository.js +5 -2
- package/dist/storage/repositories/index-llm-cache-repository.js +0 -1
- package/dist/storage/repositories/index-meta-repository.js +2 -3
- package/dist/storage/repositories/index-schema.js +10 -25
- package/dist/storage/repositories/index-utility-repository.js +15 -28
- package/dist/storage/repositories/index-vec-repository.js +6 -1
- package/dist/storage/repositories/outcome-repository.js +119 -0
- package/dist/storage/repositories/proposals-repository.js +296 -59
- package/dist/storage/repositories/registry-cache.js +19 -0
- package/dist/storage/repositories/salience-repository.js +172 -0
- package/dist/storage/repositories/task-history-repository.js +15 -13
- package/dist/storage/repositories/workflow-runs-repository.js +52 -40
- package/dist/tasks/backends/cron.js +105 -15
- package/dist/tasks/backends/index.js +1 -1
- package/dist/tasks/backends/launchd.js +85 -38
- package/dist/tasks/backends/schtasks.js +135 -15
- package/dist/tasks/embedded.js +56 -40
- package/dist/tasks/parser.js +7 -157
- package/dist/tasks/resolve-akm-bin.js +137 -59
- package/dist/tasks/runner.js +79 -42
- package/dist/tasks/scheduler-invocation.js +220 -10
- package/dist/tasks/schema.js +24 -1
- package/dist/tasks/task-id.js +1 -3
- package/dist/tasks/validator.js +20 -6
- package/dist/workflows/authoring/authoring.js +94 -143
- package/dist/workflows/authoring/scope-key.js +1 -1
- package/dist/workflows/exec/frozen-judge.js +28 -2
- package/dist/workflows/exec/native-executor.js +77 -57
- package/dist/workflows/exec/param-secrets.js +9 -9
- package/dist/workflows/exec/run-workflow.js +133 -79
- package/dist/workflows/exec/step-work.js +219 -346
- package/dist/{migrate-storage-node.mjs → workflows/exec/unit-dispatch.js} +1 -5
- package/dist/workflows/ir/compile.js +141 -270
- package/dist/workflows/ir/freeze.js +40 -30
- package/dist/workflows/ir/params.js +135 -11
- package/dist/workflows/ir/plan-hash.js +1 -1
- package/dist/workflows/ir/schema.js +25 -26
- package/dist/workflows/parser.js +872 -307
- package/dist/workflows/program/expressions.js +20 -208
- package/dist/workflows/program/schema.js +7 -10
- package/dist/workflows/renderer.js +95 -68
- package/dist/workflows/resource-limits.js +2 -0
- package/dist/workflows/runtime/checkin.js +3 -3
- package/dist/workflows/runtime/plan-classifier.js +16 -75
- package/dist/workflows/runtime/runs.js +186 -127
- package/dist/workflows/runtime/unit-checkin.js +1 -1
- package/dist/workflows/runtime/unit-phases.js +2 -2
- package/dist/workflows/runtime/workflow-asset-loader.js +232 -83
- package/dist/workflows/schema.js +1 -11
- package/dist/workflows/validate-summary.js +30 -36
- package/dist/workflows/validator.js +21 -62
- package/docs/README.md +68 -0
- package/docs/migration/README.md +8 -0
- package/docs/migration/release-notes/0.7.0.md +11 -11
- package/docs/migration/release-notes/0.9.0.md +208 -27
- package/docs/migration/v0.7-to-v0.8.md +46 -47
- package/docs/migration/v0.8-to-v0.9.md +564 -208
- package/docs/migration/v0.9.0-troubleshooting.md +561 -0
- package/docs/reference/README.md +12 -0
- package/docs/reference/cli.md +2253 -0
- package/docs/reference/configuration.md +358 -0
- package/docs/reference/data-and-telemetry.md +105 -42
- package/docs/reference/workflows.md +647 -0
- package/package.json +22 -11
- package/schemas/akm-asset-envelope.json +93 -0
- package/schemas/akm-config.json +81 -128
- package/schemas/akm-workflow.json +74 -73
- package/dist/assets/tasks/core/backup.yml +0 -5
- package/dist/assets/tasks/graph-refresh-weekly.yml +0 -10
- package/dist/cli/config-migrate.js +0 -1806
- package/dist/cli/config-validate.js +0 -41
- package/dist/commands/backup-cli.js +0 -56
- package/dist/commands/bundle/bundle-cli.js +0 -68
- package/dist/commands/bundle/bundle.js +0 -219
- package/dist/commands/graph/graph-cli.js +0 -124
- package/dist/commands/graph/graph.js +0 -489
- package/dist/commands/improve/extract-watch.js +0 -140
- package/dist/commands/mv-cli.js +0 -1221
- package/dist/commands/sources/history.js +0 -201
- package/dist/commands/tasks/default-tasks.js +0 -186
- package/dist/core/migration-backup.js +0 -1234
- package/dist/indexer/usage/unmigrated-vaults-guard.js +0 -95
- package/dist/llm/memory-infer-impl.js +0 -138
- package/dist/migrate/legacy/config-source-migration.js +0 -223
- package/dist/migrate/legacy/content-migration.js +0 -305
- package/dist/migrate/legacy/legacy-layout.js +0 -779
- package/dist/migrate/legacy/legacy-paths.js +0 -25
- package/dist/migrate/legacy/legacy-stash-json.js +0 -72
- package/dist/migrate/legacy/proposal-fs-import.js +0 -168
- package/dist/migrate/legacy/task-target-ref-migration.js +0 -272
- package/dist/migrate/legacy/three-db-cutover.js +0 -841
- package/dist/migrate/legacy/workflow-migrations-bodies.js +0 -52
- package/dist/migrate/legacy/workflow-migrations-frozen.js +0 -21
- package/dist/migrate/legacy-ref-grammar.js +0 -214
- package/dist/output/shapes/distill.js +0 -14
- package/dist/output/shapes/history.js +0 -11
- package/dist/output/text/distill.js +0 -6
- package/dist/output/text/enable-disable.js +0 -8
- package/dist/output/text/history.js +0 -6
- package/dist/registry/build-index.js +0 -382
- package/dist/schemas/akm-config.json +0 -4704
- package/dist/schemas/akm-task.json +0 -87
- package/dist/schemas/akm-workflow.json +0 -372
- package/dist/scripts/migrate-storage.js +0 -3816
- package/dist/workflows/authoring/workflow-program-template.yaml +0 -31
- package/dist/workflows/cli.js +0 -53
- package/dist/workflows/exec/brief.js +0 -481
- package/dist/workflows/exec/report.js +0 -1460
- package/dist/workflows/exec/watch.js +0 -116
- package/dist/workflows/program/parser.js +0 -813
- package/dist/workflows/program/project.js +0 -104
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
/**
|
|
5
|
-
* Frozen `ensureBaseSchema` baseline DDL — the `workflow_runs` /
|
|
6
|
-
* `workflow_run_steps` tables as `openWorkflowDatabase` created them before
|
|
7
|
-
* evaluating the migration list. Idempotent (`CREATE TABLE IF NOT EXISTS`), so
|
|
8
|
-
* running it against an existing workflow.db is a no-op.
|
|
9
|
-
*/
|
|
10
|
-
export const FROZEN_WORKFLOW_BASE_SCHEMA_DDL = "\n CREATE TABLE IF NOT EXISTS workflow_runs (\n id TEXT PRIMARY KEY,\n workflow_ref TEXT NOT NULL,\n workflow_entry_id INTEGER,\n workflow_title TEXT NOT NULL,\n status TEXT NOT NULL CHECK (status IN ('active', 'completed', 'blocked', 'failed')),\n params_json TEXT NOT NULL DEFAULT '{}',\n current_step_id TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n completed_at TEXT\n );\n\n CREATE INDEX IF NOT EXISTS idx_workflow_runs_ref ON workflow_runs(workflow_ref);\n CREATE INDEX IF NOT EXISTS idx_workflow_runs_status ON workflow_runs(status);\n\n CREATE TABLE IF NOT EXISTS workflow_run_steps (\n run_id TEXT NOT NULL,\n step_id TEXT NOT NULL,\n step_title TEXT NOT NULL,\n instructions TEXT NOT NULL,\n completion_json TEXT,\n sequence_index INTEGER NOT NULL,\n status TEXT NOT NULL CHECK (status IN ('pending', 'completed', 'blocked', 'failed', 'skipped')),\n notes TEXT,\n evidence_json TEXT,\n completed_at TEXT,\n PRIMARY KEY (run_id, step_id),\n FOREIGN KEY (run_id) REFERENCES workflow_runs(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_workflow_run_steps_run_sequence\n ON workflow_run_steps(run_id, sequence_index);\n ";
|
|
11
|
-
/**
|
|
12
|
-
* Frozen `{ id, up }` snapshot of the 10 `WORKFLOW_MIGRATIONS` bodies at the akm
|
|
13
|
-
* 0.9.0 pre-cutover HEAD. Order is significant — it is the exact append-only
|
|
14
|
-
* migration order `runSqliteMigrations` applies against a pre-cutover
|
|
15
|
-
* workflow.db.
|
|
16
|
-
*/
|
|
17
|
-
export const FROZEN_WORKFLOW_MIGRATIONS = [
|
|
18
|
-
{
|
|
19
|
-
id: "001-add-scope-key",
|
|
20
|
-
up: "\n ALTER TABLE workflow_runs ADD COLUMN scope_key TEXT;\n\n CREATE INDEX IF NOT EXISTS idx_workflow_runs_scope_ref_status\n ON workflow_runs(scope_key, workflow_ref, status);\n ",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: "002-add-agent-identity",
|
|
24
|
-
up: "\n ALTER TABLE workflow_runs ADD COLUMN agent_harness TEXT;\n ALTER TABLE workflow_runs ADD COLUMN agent_session_id TEXT;\n\n CREATE INDEX IF NOT EXISTS idx_workflow_runs_agent_session\n ON workflow_runs(agent_harness, agent_session_id);\n ",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: "003-checkin-and-step-summary",
|
|
28
|
-
up: "\n ALTER TABLE workflow_runs ADD COLUMN checkin_armed_at TEXT;\n ALTER TABLE workflow_run_steps ADD COLUMN summary TEXT;\n ",
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
id: "004-workflow-run-units",
|
|
32
|
-
up: "\n CREATE TABLE IF NOT EXISTS workflow_run_units (\n run_id TEXT NOT NULL,\n unit_id TEXT NOT NULL,\n step_id TEXT,\n node_id TEXT NOT NULL,\n parent_unit_id TEXT,\n phase TEXT,\n runner TEXT,\n model TEXT,\n status TEXT NOT NULL CHECK (status IN ('pending', 'running', 'completed', 'failed', 'skipped')),\n input_hash TEXT,\n result_json TEXT,\n tokens INTEGER,\n failure_reason TEXT,\n worktree_path TEXT,\n started_at TEXT,\n finished_at TEXT,\n PRIMARY KEY (run_id, unit_id),\n FOREIGN KEY (run_id) REFERENCES workflow_runs(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_workflow_run_units_run_step\n ON workflow_run_units(run_id, step_id);\n ",
|
|
33
|
-
},
|
|
34
|
-
{ id: "005-unit-session-id", up: "\n ALTER TABLE workflow_run_units ADD COLUMN session_id TEXT;\n " },
|
|
35
|
-
{
|
|
36
|
-
id: "006-frozen-plan-and-lease",
|
|
37
|
-
up: "\n ALTER TABLE workflow_runs ADD COLUMN plan_json TEXT;\n ALTER TABLE workflow_runs ADD COLUMN plan_hash TEXT;\n ALTER TABLE workflow_runs ADD COLUMN engine_lease_until TEXT;\n ALTER TABLE workflow_runs ADD COLUMN engine_lease_holder TEXT;\n ",
|
|
38
|
-
},
|
|
39
|
-
{ id: "007-unit-last-checkin", up: "\n ALTER TABLE workflow_run_units ADD COLUMN last_checkin_at TEXT;\n " },
|
|
40
|
-
{
|
|
41
|
-
id: "008-unit-attempts",
|
|
42
|
-
up: "\n ALTER TABLE workflow_run_units ADD COLUMN attempts INTEGER NOT NULL DEFAULT 1;\n ",
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: "009-unit-claim",
|
|
46
|
-
up: "\n ALTER TABLE workflow_run_units ADD COLUMN claim_holder TEXT;\n ALTER TABLE workflow_run_units ADD COLUMN claim_expires_at TEXT;\n ",
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
id: "010-ir-v3-engine",
|
|
50
|
-
up: "\n ALTER TABLE workflow_runs ADD COLUMN plan_ir_version INTEGER;\n ALTER TABLE workflow_run_units ADD COLUMN engine TEXT;\n ",
|
|
51
|
-
},
|
|
52
|
-
];
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
/**
|
|
5
|
-
* Frozen `{ id, checksum }` snapshot of `WORKFLOW_MIGRATIONS` at the akm 0.9.0
|
|
6
|
-
* pre-cutover HEAD. Order is significant — it is the exact ordered ledger
|
|
7
|
-
* prefix that `inspectSealedMigrationLedger` asserts against a backed-up
|
|
8
|
-
* `workflow.db`.
|
|
9
|
-
*/
|
|
10
|
-
export const WORKFLOW_MIGRATIONS_CHECKSUMS = [
|
|
11
|
-
{ id: "001-add-scope-key", checksum: "1147ac9875ab87fcef446ffc24f405e65d0230ab041aa160a997746f9a63fa38" },
|
|
12
|
-
{ id: "002-add-agent-identity", checksum: "4fd912886ee0a54e0eb19f019bbe44e0da9344193a7ad9984d4182f74bd823c1" },
|
|
13
|
-
{ id: "003-checkin-and-step-summary", checksum: "dff0184eb8f8cb5e104ea311f4816b263b96679d13d7117e0b66eab589f2f51b" },
|
|
14
|
-
{ id: "004-workflow-run-units", checksum: "5b58d50274a557bf6bffdff3cfc622ed7c90b1383d44d183af3d50a30cd4970b" },
|
|
15
|
-
{ id: "005-unit-session-id", checksum: "ddd01c2788f3c5fd2829fcb9349285f47f9f7245efe9382fe3819020bca823e9" },
|
|
16
|
-
{ id: "006-frozen-plan-and-lease", checksum: "6df7a0079a718a9a46b88533e5f2e00baa5d9f55a0540a5ed0680c422a915eed" },
|
|
17
|
-
{ id: "007-unit-last-checkin", checksum: "a839af5677548f5cb37f9ff39218aecb639e9278909386568f3f7fb4add641dc" },
|
|
18
|
-
{ id: "008-unit-attempts", checksum: "a125dd744dd4eb3f5251a2e713dfdc257c4d5950b025563a8d6ea1d290da2b45" },
|
|
19
|
-
{ id: "009-unit-claim", checksum: "885e2c28fca0e98e51e45e7e26d1598a6ff1a2e873a17bf6184b3dd4b6d5613c" },
|
|
20
|
-
{ id: "010-ir-v3-engine", checksum: "89bd2d741b3961bebcfcf6fafc826033001954be9125585911787cff2bb8a34c" },
|
|
21
|
-
];
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
/**
|
|
5
|
-
* MIGRATE HOME for the pre-0.9.0 `[origin//]type:name` ref grammar and the
|
|
6
|
-
* dual-grammar bridge that keeps STORED durable refs (state.db usage events,
|
|
7
|
-
* proposals, salience rows, workflow runs, index `entry_ref` rows) parseable
|
|
8
|
-
* while they still carry the legacy spelling.
|
|
9
|
-
*
|
|
10
|
-
* Everything here retires with the Chunk-8 §11.4 one-time state.db re-key: once
|
|
11
|
-
* every durable row is re-keyed to `bundle//conceptId`, the legacy grammar and
|
|
12
|
-
* this whole module are deleted. Chunk-8's content-migration + §11.4 re-key
|
|
13
|
-
* passes consume these functions directly.
|
|
14
|
-
*
|
|
15
|
-
* ── Cycle-safety (HARD constraint) ──
|
|
16
|
-
*
|
|
17
|
-
* Self-contained leaf: imports only sibling core leaves (`asset-ref`,
|
|
18
|
-
* `asset-placement`), the `recognition-util` sink, and the `core/errors` sink.
|
|
19
|
-
* It NEVER imports `resolve-ref` (the input-boundary layer), so it cannot join
|
|
20
|
-
* an import cycle. The permanent D-R2 reverse table lives in `resolve-ref.ts`
|
|
21
|
-
* (`typeNameFromConceptId`); this module carries its own private transient copy
|
|
22
|
-
* ({@link conceptIdToLegacyParts}) for stored-ref parsing so it stays a leaf.
|
|
23
|
-
*/
|
|
24
|
-
import path from "node:path";
|
|
25
|
-
import { stashDirFor, typeForStashDir } from "../core/asset/asset-placement.js";
|
|
26
|
-
import { isBundleSlug, parseBundleRef } from "../core/asset/asset-ref.js";
|
|
27
|
-
import { NotFoundError, UsageError } from "../core/errors.js";
|
|
28
|
-
import { DEPRECATED_REJECTED_TYPES } from "../core/recognition-util.js";
|
|
29
|
-
/** Accepted spelling aliases mapping to a canonical asset type. */
|
|
30
|
-
const TYPE_ALIASES = {
|
|
31
|
-
environment: "env",
|
|
32
|
-
};
|
|
33
|
-
// ── Construction ─────────────────────────────────────────────────────────────
|
|
34
|
-
/**
|
|
35
|
-
* Build a legacy ref string from components.
|
|
36
|
-
*
|
|
37
|
-
* Examples:
|
|
38
|
-
* makeAssetRef("script", "deploy.sh") → "script:deploy.sh"
|
|
39
|
-
* makeAssetRef("script", "deploy.sh", "npm:@scope/pkg")→ "npm:@scope/pkg//script:deploy.sh"
|
|
40
|
-
* makeAssetRef("skill", "code-review", "local") → "local//skill:code-review"
|
|
41
|
-
*/
|
|
42
|
-
export function makeAssetRef(type, name, origin) {
|
|
43
|
-
validateName(name);
|
|
44
|
-
const normalized = normalizeName(name);
|
|
45
|
-
const asset = `${type}:${normalized}`;
|
|
46
|
-
if (!origin)
|
|
47
|
-
return asset;
|
|
48
|
-
return `${origin}//${asset}`;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Serialize a parsed {@link AssetRef} back to its canonical `[origin//]type:name`
|
|
52
|
-
* string form. `refToString(parseAssetRef(s))` round-trips for any `s` that
|
|
53
|
-
* `parseAssetRef` accepts.
|
|
54
|
-
*/
|
|
55
|
-
export function refToString(ref) {
|
|
56
|
-
return makeAssetRef(ref.type, ref.name, ref.origin);
|
|
57
|
-
}
|
|
58
|
-
// ── Parsing ──────────────────────────────────────────────────────────────────
|
|
59
|
-
function parseLegacyAssetRef(ref, allowRetiredTypes) {
|
|
60
|
-
const trimmed = ref.trim();
|
|
61
|
-
if (!trimmed)
|
|
62
|
-
throw new UsageError("Empty ref.", "MISSING_REQUIRED_ARGUMENT");
|
|
63
|
-
let origin;
|
|
64
|
-
let body = trimmed;
|
|
65
|
-
const boundary = trimmed.indexOf("//");
|
|
66
|
-
if (boundary >= 0) {
|
|
67
|
-
origin = trimmed.slice(0, boundary);
|
|
68
|
-
body = trimmed.slice(boundary + 2);
|
|
69
|
-
if (!origin)
|
|
70
|
-
throw new UsageError("Empty origin in ref.", "MISSING_REQUIRED_ARGUMENT");
|
|
71
|
-
}
|
|
72
|
-
const colon = body.indexOf(":");
|
|
73
|
-
if (colon <= 0) {
|
|
74
|
-
throw new UsageError(`Invalid ref "${trimmed}". Expected [origin//]type:name, e.g. skill:deploy or knowledge:guide.md`, "MISSING_REQUIRED_ARGUMENT");
|
|
75
|
-
}
|
|
76
|
-
const rawType = body.slice(0, colon);
|
|
77
|
-
const rawName = body.slice(colon + 1);
|
|
78
|
-
// The `vault` asset type was removed in 0.9.0. Point callers at its
|
|
79
|
-
// replacements rather than failing with a generic unknown-type error.
|
|
80
|
-
if (!allowRetiredTypes && rawType === "vault") {
|
|
81
|
-
throw new UsageError("The `vault` asset type was removed in 0.9.0 — use `env:` (whole .env config) or `secret:` (a single value).", "MISSING_REQUIRED_ARGUMENT");
|
|
82
|
-
}
|
|
83
|
-
// Type aliases: `environment:` is an accepted spelling of the canonical `env:` type.
|
|
84
|
-
const resolvedType = TYPE_ALIASES[rawType] ?? rawType;
|
|
85
|
-
// Open type token (chunk 1.5, D1.5-6): any other non-empty type is valid ref
|
|
86
|
-
// data (foreign/adapter types included) EXCEPT the deliberately-removed set.
|
|
87
|
-
if (!allowRetiredTypes && DEPRECATED_REJECTED_TYPES.has(resolvedType)) {
|
|
88
|
-
throw new UsageError(`Invalid asset type: "${rawType}".`, "MISSING_REQUIRED_ARGUMENT");
|
|
89
|
-
}
|
|
90
|
-
validateName(rawName);
|
|
91
|
-
const name = normalizeName(rawName);
|
|
92
|
-
return { type: resolvedType, name, origin: origin || undefined };
|
|
93
|
-
}
|
|
94
|
-
/** Parse a legacy ref string in the format `[origin//]type:name`. */
|
|
95
|
-
export function parseAssetRef(ref) {
|
|
96
|
-
return parseLegacyAssetRef(ref, false);
|
|
97
|
-
}
|
|
98
|
-
// ── Validation (private copies — kept self-contained) ────────────────────────
|
|
99
|
-
function validateName(name) {
|
|
100
|
-
if (!name)
|
|
101
|
-
throw new UsageError("Empty asset name.", "MISSING_REQUIRED_ARGUMENT");
|
|
102
|
-
if (name.includes("\0"))
|
|
103
|
-
throw new UsageError("Null byte in asset name.", "MISSING_REQUIRED_ARGUMENT");
|
|
104
|
-
if (/^[A-Za-z]:/.test(name))
|
|
105
|
-
throw new UsageError("Windows drive path in asset name.", "MISSING_REQUIRED_ARGUMENT");
|
|
106
|
-
const normalized = path.posix.normalize(name.replace(/\\/g, "/"));
|
|
107
|
-
if (path.posix.isAbsolute(normalized))
|
|
108
|
-
throw new UsageError("Absolute path in asset name.", "MISSING_REQUIRED_ARGUMENT");
|
|
109
|
-
if (normalized === ".." || normalized.startsWith("../")) {
|
|
110
|
-
throw new UsageError("Path traversal in asset name.", "MISSING_REQUIRED_ARGUMENT");
|
|
111
|
-
}
|
|
112
|
-
const segments = normalized.split("/");
|
|
113
|
-
if (segments.some((seg) => seg === "." || seg === "..")) {
|
|
114
|
-
throw new UsageError("Asset name cannot contain relative path segments.", "MISSING_REQUIRED_ARGUMENT");
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
function normalizeName(name) {
|
|
118
|
-
return path.posix.normalize(name.replace(/\\/g, "/"));
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Classify a raw ref string as the new `[bundle//]conceptId` grammar or the
|
|
122
|
-
* pre-0.9.0 `[origin//]type:name` grammar (D-R5 charset dispatch).
|
|
123
|
-
*
|
|
124
|
-
* NEW grammar iff EITHER:
|
|
125
|
-
* - it has a `prefix//tail` split whose `prefix` is a LEGAL bundle slug (no
|
|
126
|
-
* `/ : . #` or whitespace) AND `tail` carries no `type:`-style colon; OR
|
|
127
|
-
* - it is a bare conceptId (no `//`, no `:`).
|
|
128
|
-
*
|
|
129
|
-
* LEGACY otherwise: `owner/repo//skill:x` / `npm:@scope/pkg//skill:x` have
|
|
130
|
-
* ILLEGAL bundle-slug prefixes, and `local//skill:x` has a legal prefix but a
|
|
131
|
-
* colon in the tail — all three land as legacy.
|
|
132
|
-
*/
|
|
133
|
-
export function classifyRefGrammar(raw) {
|
|
134
|
-
const trimmed = raw.trim();
|
|
135
|
-
const boundary = trimmed.indexOf("//");
|
|
136
|
-
if (boundary >= 0) {
|
|
137
|
-
const prefix = trimmed.slice(0, boundary);
|
|
138
|
-
const tail = trimmed.slice(boundary + 2);
|
|
139
|
-
return isBundleSlug(prefix) && !tail.includes(":") ? "bundle" : "legacy";
|
|
140
|
-
}
|
|
141
|
-
return trimmed.includes(":") ? "legacy" : "bundle";
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* D-R2 static-table translation of a legacy `type`/`name` pair to its qualified
|
|
145
|
-
* conceptId `<stash-subdir>/<name>` (bare-name fallback for a foreign type with
|
|
146
|
-
* no placement stash-subdir). Mirrors the indexer's conceptId derivation.
|
|
147
|
-
*/
|
|
148
|
-
export function legacyConceptId(type, name) {
|
|
149
|
-
const stashDir = stashDirFor(type);
|
|
150
|
-
return stashDir !== undefined ? `${stashDir}/${name}` : name;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Reverse of {@link legacyConceptId}: split a qualified conceptId
|
|
154
|
-
* (`<stash-subdir>/<name>`) back to its legacy `type`/`name`, or `undefined`
|
|
155
|
-
* when the leading segment is not a known stash subdir. Transient private copy
|
|
156
|
-
* of the permanent `typeNameFromConceptId` (resolve-ref.ts) so this leaf stays
|
|
157
|
-
* self-contained; retires with the state.db re-key.
|
|
158
|
-
*/
|
|
159
|
-
function conceptIdToLegacyParts(conceptId) {
|
|
160
|
-
const slash = conceptId.indexOf("/");
|
|
161
|
-
if (slash <= 0)
|
|
162
|
-
return undefined;
|
|
163
|
-
const type = typeForStashDir(conceptId.slice(0, slash));
|
|
164
|
-
if (type === undefined)
|
|
165
|
-
return undefined;
|
|
166
|
-
return { type, name: conceptId.slice(slash + 1) };
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Translate a raw legacy `[origin//]type:name` ref to its {@link BundleRef}
|
|
170
|
-
* spelling: conceptId via {@link legacyConceptId}, and `bundle` from the origin
|
|
171
|
-
* when the origin is a legal bundle slug (a `registryId`, D-R5 rule 2). A
|
|
172
|
-
* `local`/`stash`/path origin is not a stored bundle id, so it stays short.
|
|
173
|
-
*/
|
|
174
|
-
export function legacyRefToBundleRef(raw) {
|
|
175
|
-
const parsed = parseAssetRef(raw);
|
|
176
|
-
const conceptId = legacyConceptId(parsed.type, parsed.name);
|
|
177
|
-
const bundle = parsed.origin !== undefined && parsed.origin !== "local" && parsed.origin !== "stash" && isBundleSlug(parsed.origin)
|
|
178
|
-
? parsed.origin
|
|
179
|
-
: undefined;
|
|
180
|
-
return { bundle, conceptId };
|
|
181
|
-
}
|
|
182
|
-
// ── Stored-ref dual parser (Chunk-8: retire with the state.db one-time re-key) ─
|
|
183
|
-
/**
|
|
184
|
-
* Parse a STORED durable ref that may be written in EITHER the new
|
|
185
|
-
* `[bundle//]conceptId` grammar OR the pre-0.9.0 `[origin//]type:name` grammar,
|
|
186
|
-
* returning today's {@link AssetRef} value-object shape.
|
|
187
|
-
*
|
|
188
|
-
* Stored state (usage events, proposals, salience rows, workflow runs, index
|
|
189
|
-
* `entry_ref` rows) keeps its legacy spelling until the Chunk-8 §11.4 one-time
|
|
190
|
-
* re-key, so every reader that parses a durable ref must accept BOTH grammars —
|
|
191
|
-
* this is the safe superset of `parseRefInput` (input boundaries are new-only).
|
|
192
|
-
*
|
|
193
|
-
* Mapping mirrors the pre-flip input bridge exactly:
|
|
194
|
-
* - legacy input → historical syntax parser (including retired types).
|
|
195
|
-
* - new `conceptId` → `type`/`name` via the D-R2 reverse table.
|
|
196
|
-
* - new `bundle` → `origin`.
|
|
197
|
-
* - `#fragment` → rejected (no stored ref carries one).
|
|
198
|
-
*/
|
|
199
|
-
export function parseStoredRef(raw) {
|
|
200
|
-
if (classifyRefGrammar(raw) === "legacy") {
|
|
201
|
-
// Durable state may predate the removal of a type. Retired but structurally
|
|
202
|
-
// valid refs are expected orphans; current user input remains strict.
|
|
203
|
-
return parseLegacyAssetRef(raw, true);
|
|
204
|
-
}
|
|
205
|
-
const ref = parseBundleRef(raw);
|
|
206
|
-
if (ref.fragment !== undefined) {
|
|
207
|
-
throw new UsageError(`Export fragment "#${ref.fragment}" is not accepted here — drop it from "${raw.trim()}".`, "INVALID_FLAG_VALUE");
|
|
208
|
-
}
|
|
209
|
-
const legacy = conceptIdToLegacyParts(ref.conceptId);
|
|
210
|
-
if (legacy === undefined) {
|
|
211
|
-
throw new NotFoundError(`Unrecognized asset ref "${raw.trim()}": conceptId "${ref.conceptId}" has no known asset-type prefix.`, "ASSET_NOT_FOUND");
|
|
212
|
-
}
|
|
213
|
-
return { type: legacy.type, name: legacy.name, origin: ref.bundle };
|
|
214
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
// Output shape registration for `akm distill <ref>` (#228). The shape is
|
|
5
|
-
// simple — outcome + ids + optional payload — so `brief` strips the full
|
|
6
|
-
// proposal blob, `normal` keeps the headline fields, and `full` projects
|
|
7
|
-
// everything for downstream automation.
|
|
8
|
-
import { shapeDistillOutput } from "./helpers.js";
|
|
9
|
-
export const distillShapes = [
|
|
10
|
-
{
|
|
11
|
-
command: "distill",
|
|
12
|
-
handler: (result, detail) => shapeDistillOutput(result, detail),
|
|
13
|
-
},
|
|
14
|
-
];
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
// Output shape registration for `akm history` — paired with the text renderer in text.ts.
|
|
5
|
-
import { shapeHistoryOutput } from "./helpers.js";
|
|
6
|
-
export const historyShapes = [
|
|
7
|
-
{
|
|
8
|
-
command: "history",
|
|
9
|
-
handler: (result, detail) => shapeHistoryOutput(result, detail),
|
|
10
|
-
},
|
|
11
|
-
];
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
// Output text formatter for `akm distill <ref>` (#228).
|
|
5
|
-
import { formatDistillPlain } from "./helpers.js";
|
|
6
|
-
export const distillFormatters = [{ command: "distill", handler: (r) => formatDistillPlain(r) }];
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatToggleComponentPlain } from "./helpers.js";
|
|
5
|
-
export const enableDisableFormatters = [
|
|
6
|
-
{ command: "enable", handler: (r) => formatToggleComponentPlain("enable", r) },
|
|
7
|
-
{ command: "disable", handler: (r) => formatToggleComponentPlain("disable", r) },
|
|
8
|
-
];
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
// Output text formatter for `akm history` — paired with the shape in shapes/history.ts.
|
|
5
|
-
import { formatHistoryPlain } from "./helpers.js";
|
|
6
|
-
export const historyFormatters = [{ command: "history", handler: (r) => formatHistoryPlain(r) }];
|