akm-cli 0.10.261013-beta → 0.10.261014-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 +494 -3
- package/README.md +15 -0
- package/SECURITY.md +9 -8
- package/STABILITY.md +45 -49
- package/dist/assets/hints/cli-hints-full.md +15 -12
- package/dist/assets/opencode/akm-plugin.js +177 -0
- package/dist/assets/stash-skeleton/README.md +1 -1
- package/dist/assets/tasks/core/improve.yml +1 -1
- package/dist/assets/tasks/improve/akm-improve-consolidate.yml +1 -1
- package/dist/assets/ui/config.js +27 -10
- package/dist/assets/workflows/workflow-template.md +2 -2
- package/dist/cli/clack.js +3 -1
- package/dist/cli/selection.js +33 -0
- package/dist/cli/shared.js +14 -1
- package/dist/cli/unknown-flags.js +6 -37
- package/dist/cli.js +69 -48
- package/dist/commands/agent/agent-dispatch.js +17 -25
- package/dist/commands/agent/contribute-cli.js +9 -8
- package/dist/commands/command/command-cli.js +4 -8
- package/dist/commands/command/command-execution.js +25 -39
- package/dist/commands/completions.js +1 -1
- package/dist/commands/config-cli.js +14 -5
- package/dist/commands/env/child-env.js +12 -14
- package/dist/commands/env/env-cli.js +2 -2
- package/dist/commands/env/secret-cli.js +2 -2
- package/dist/commands/health/checks.js +10 -849
- package/dist/commands/health/connections-and-harnesses-check.js +109 -0
- package/dist/commands/health/egress.js +3 -3
- package/dist/commands/health/html-report.js +9 -10
- package/dist/commands/health/plugin-staleness.js +18 -11
- package/dist/commands/health/report-view-model.js +16 -12
- package/dist/commands/health/semantic-search-check.js +85 -0
- package/dist/commands/health/type-directory-check.js +0 -3
- package/dist/commands/health.js +30 -42
- package/dist/commands/improve/consolidate/pair-pass.js +10 -25
- package/dist/commands/improve/consolidate.js +10 -15
- package/dist/commands/improve/distill.js +5 -15
- package/dist/commands/improve/eligibility.js +1 -1
- package/dist/commands/improve/execution.js +37 -40
- package/dist/commands/improve/extract-cli.js +6 -11
- package/dist/commands/improve/extract-prompt.js +2 -2
- package/dist/commands/improve/extract.js +67 -97
- package/dist/commands/improve/improve-cli.js +22 -128
- package/dist/commands/improve/improve-report.js +1 -1
- package/dist/commands/improve/improve-strategies.js +25 -108
- package/dist/commands/improve/improve.js +10 -14
- package/dist/commands/improve/loop-stages.js +3 -0
- package/dist/commands/improve/memory/memory-improve.js +1 -1
- package/dist/commands/improve/preparation.js +8 -13
- package/dist/commands/improve/reflect.js +203 -332
- package/dist/commands/improve/retrieval-scope.js +1 -1
- package/dist/commands/improve/session-asset.js +3 -2
- package/dist/commands/improve/stage.js +87 -115
- package/dist/commands/lint/base-linter.js +3 -3
- package/dist/commands/lint/index.js +2 -2
- package/dist/commands/models-cli.js +103 -63
- package/dist/commands/proposal/drain.js +26 -39
- package/dist/commands/proposal/proposal-cli.js +14 -18
- package/dist/commands/proposal/propose-cli.js +4 -2
- package/dist/commands/proposal/propose.js +37 -64
- package/dist/commands/proposal/repository.js +17 -17
- package/dist/commands/proposal/validators/proposal-validators.js +2 -2
- package/dist/commands/read/curate.js +10 -6
- package/dist/commands/read/registry-search.js +2 -48
- package/dist/commands/read/search-cli.js +1 -8
- package/dist/commands/read/search.js +5 -6
- package/dist/commands/read/show.js +2 -4
- package/dist/commands/remember.js +25 -40
- package/dist/commands/sources/bundle-config-ops.js +2 -2
- package/dist/commands/sources/info.js +12 -1
- package/dist/commands/sources/init.js +1 -1
- package/dist/commands/sources/installed-stashes.js +2 -2
- package/dist/commands/sources/migration-help.js +1 -1
- package/dist/commands/sources/plugin-upgrade.js +8 -15
- package/dist/commands/sources/schema-repair.js +4 -8
- package/dist/commands/sources/source-add.js +2 -2
- package/dist/commands/sources/source-manage.js +4 -4
- package/dist/commands/targets.js +175 -0
- package/dist/commands/tasks/explain.js +103 -68
- package/dist/commands/tasks/tasks-cli.js +9 -11
- package/dist/commands/tasks/tasks.js +37 -41
- package/dist/commands/ui/api.js +11 -3
- package/dist/commands/ui/redact.js +1 -27
- package/dist/commands/ui/workspace-actions.js +1 -1
- package/dist/commands/workflow/plan.js +1 -1
- package/dist/commands/workflow-cli.js +3 -4
- package/dist/core/adapter/adapters/agent-skills-adapter.js +10 -11
- package/dist/core/adapter/adapters/akm-adapter.js +33 -38
- package/dist/core/adapter/adapters/akm-lint.js +7 -8
- package/dist/core/adapter/adapters/akm-task-adapter.js +3 -3
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +5 -5
- package/dist/core/adapter/adapters/claude-adapter.js +1 -1
- package/dist/core/adapter/adapters/dotenv-adapter.js +3 -3
- package/dist/core/adapter/adapters/generic-files-adapter.js +5 -5
- package/dist/core/adapter/adapters/index.js +3 -4
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +12 -14
- package/dist/core/adapter/adapters/okf-adapter.js +8 -10
- package/dist/core/adapter/adapters/opencode-adapter.js +1 -1
- package/dist/core/adapter/adapters/shared.js +3 -3
- package/dist/core/adapter/adapters/tool-dir-shared.js +7 -25
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +3 -3
- package/dist/core/adapter/detect-adapter.js +1 -1
- package/dist/core/adapter/execution-source.js +13 -35
- package/dist/core/adapter/registry.js +1 -1
- package/dist/core/adapter/validate-context.js +2 -4
- package/dist/core/asset/asset-placement.js +1 -1
- package/dist/core/asset/asset-ref.js +3 -3
- package/dist/core/closest-match.js +37 -0
- package/dist/core/common.js +33 -5
- package/dist/core/config/config-io.js +26 -18
- package/dist/core/config/config-schema.js +19 -106
- package/dist/core/config/config-sources.js +3 -3
- package/dist/core/config/config-types.js +4 -4
- package/dist/core/config/config-walker.js +50 -77
- package/dist/core/config/config.js +385 -93
- package/dist/core/config/convert-engine-references.js +114 -0
- package/dist/core/config/convert-engines-shared.js +40 -0
- package/dist/core/config/convert-engines.js +300 -0
- package/dist/core/config/convert-models-overlay.js +137 -0
- package/dist/core/config/credentials.js +304 -0
- package/dist/core/config/engine-semantics.js +3 -3
- package/dist/core/config/migrate-keys.js +222 -0
- package/dist/core/config/model-aliases.js +37 -0
- package/dist/core/config/models-file.js +34 -0
- package/dist/core/config/retired-engines.js +53 -0
- package/dist/core/config/schema/connections.js +41 -0
- package/dist/core/config/schema/embedding.js +2 -2
- package/dist/core/config/schema/harnesses.js +41 -0
- package/dist/core/config/schema/improve-processes.js +9 -28
- package/dist/core/config/schema/improve.js +36 -1
- package/dist/core/config/schema/index-config.js +18 -20
- package/dist/core/config/schema/primitives.js +41 -22
- package/dist/core/config/schema/search.js +6 -11
- package/dist/core/config/schema/sources-bundles.js +7 -7
- package/dist/core/config/schema/workflow.js +2 -6
- package/dist/core/config/unusable-entries.js +66 -0
- package/dist/core/content-safety.js +3 -6
- package/dist/core/endpoint-url.js +47 -0
- package/dist/core/errors.js +9 -15
- package/dist/core/extra-params.js +3 -3
- package/dist/core/improve-result.js +8 -9
- package/dist/core/json-schema.js +1 -1
- package/dist/core/lesson-lint.js +1 -1
- package/dist/core/llm-inference.js +80 -0
- package/dist/core/parse.js +2 -2
- package/dist/core/paths.js +32 -4
- package/dist/core/recognition-util.js +8 -10
- package/dist/core/redaction.js +78 -52
- package/dist/core/state/migrations.js +17 -22
- package/dist/core/structured.js +2 -68
- package/dist/core/subprocess.js +63 -22
- package/dist/core/type-presentation.js +10 -14
- package/dist/execution/input-contract.js +3 -6
- package/dist/execution/notices.js +49 -0
- package/dist/execution/resolved-request.js +24 -40
- package/dist/execution/source.js +21 -45
- package/dist/execution/target-ref.js +2 -2
- package/dist/indexer/bundle-identity-guard.js +6 -5
- package/dist/indexer/ensure-index.js +1 -1
- package/dist/indexer/index-writer-lock.js +1 -1
- package/dist/indexer/indexer.js +19 -6
- package/dist/indexer/installations.js +11 -14
- package/dist/indexer/materialize-embeddings.js +20 -16
- package/dist/indexer/passes/memory-inference.js +21 -50
- package/dist/indexer/passes/metadata.js +5 -5
- package/dist/indexer/scan/doc-to-entry.js +1 -1
- package/dist/indexer/scan/drain-dir.js +6 -8
- package/dist/indexer/search/db-search.js +9 -7
- package/dist/indexer/search/search-source.js +40 -22
- package/dist/indexer/usage/usage-events.js +2 -3
- package/dist/indexer/walk/index-context.js +2 -1
- package/dist/indexer/walk/matchers.js +3 -11
- package/dist/indexer/walk/walker.js +14 -4
- package/dist/integrations/agent/akm-read-tools.js +81 -0
- package/dist/integrations/agent/config.js +1 -1
- package/dist/integrations/agent/detect.js +32 -36
- package/dist/integrations/agent/execution.js +130 -428
- package/dist/integrations/agent/index.js +1 -1
- package/dist/integrations/agent/profiles.js +24 -28
- package/dist/integrations/agent/prompts.js +17 -30
- package/dist/integrations/agent/request-lowering.js +67 -101
- package/dist/integrations/agent/resolution.js +332 -0
- package/dist/integrations/agent/runner-dispatch.js +154 -178
- package/dist/integrations/agent/runner.js +20 -72
- package/dist/integrations/agent/runtime-port.js +4 -0
- package/dist/integrations/agent/runtime.js +10 -0
- package/dist/integrations/agent/spawn.js +65 -190
- package/dist/integrations/harnesses/aider/index.js +19 -39
- package/dist/integrations/harnesses/amazonq/index.js +17 -32
- package/dist/integrations/harnesses/claude/index.js +59 -28
- package/dist/integrations/harnesses/claude/session-log.js +7 -5
- package/dist/integrations/harnesses/codex/index.js +19 -31
- package/dist/integrations/harnesses/copilot/index.js +17 -35
- package/dist/integrations/harnesses/gemini/index.js +18 -34
- package/dist/integrations/harnesses/harness.js +36 -0
- package/dist/integrations/harnesses/index.js +20 -51
- package/dist/integrations/harnesses/opencode/agent-builder.js +132 -100
- package/dist/integrations/harnesses/opencode/index.js +11 -33
- package/dist/integrations/harnesses/opencode/roots.js +50 -0
- package/dist/integrations/harnesses/opencode/runtime/binary.js +206 -0
- package/dist/integrations/harnesses/opencode/runtime/command.js +152 -0
- package/dist/integrations/harnesses/opencode/runtime/index.js +177 -0
- package/dist/integrations/harnesses/opencode/runtime/tar.js +107 -0
- package/dist/integrations/harnesses/opencode/session-log-v1.js +15 -7
- package/dist/integrations/harnesses/opencode/session-log-v2.js +72 -48
- package/dist/integrations/harnesses/opencode/session-log.js +58 -137
- package/dist/integrations/harnesses/opencode/version.js +34 -53
- package/dist/integrations/harnesses/openhands/index.js +13 -37
- package/dist/integrations/harnesses/pi/index.js +21 -32
- package/dist/integrations/lockfile.js +1 -1
- package/dist/integrations/session-logs/index.js +11 -31
- package/dist/llm/client.js +93 -111
- package/dist/llm/embedder.js +19 -34
- package/dist/llm/embedders/connection.js +31 -0
- package/dist/llm/embedders/local-model-files.js +56 -0
- package/dist/llm/embedders/local.js +146 -115
- package/dist/llm/embedders/remote.js +26 -24
- package/dist/llm/embedders/types.js +1 -1
- package/dist/llm/index-passes.js +33 -39
- package/dist/llm/memory-infer.js +67 -77
- package/dist/llm/model-list.js +35 -0
- package/dist/llm/rerank-client.js +8 -14
- package/dist/llm/structured-call.js +45 -99
- package/dist/llm/structured.js +60 -0
- package/dist/output/renderers.js +2 -7
- package/dist/output/shapes/helpers.js +18 -42
- package/dist/output/shapes/passthrough.js +1 -0
- package/dist/output/shapes.js +1 -7
- package/dist/output/text/command-format.js +29 -37
- package/dist/output/text/health-format.js +8 -2
- package/dist/output/text/helpers.js +1 -1
- package/dist/output/text/migrate.js +12 -0
- package/dist/output/text/models.js +3 -2
- package/dist/output/text/registry-commands.js +1 -2
- package/dist/output/text/show-format.js +0 -2
- package/dist/output/text/targets-table.js +70 -0
- package/dist/output/text/workflow-format.js +7 -8
- package/dist/output/text.js +1 -1
- package/dist/registry/providers/skills-sh.js +1 -28
- package/dist/registry/providers/static-index.js +1 -71
- package/dist/runtime.js +6 -2
- package/dist/scripts/akm-migrate-node.js +5280 -4263
- package/dist/scripts/akm-migrate.js +5280 -4263
- package/dist/setup/detect.js +28 -273
- package/dist/setup/endpoint.js +36 -0
- package/dist/setup/semantic-assets.js +13 -19
- package/dist/setup/setup-flags.js +77 -0
- package/dist/setup/setup-plan.js +144 -0
- package/dist/setup/setup.js +134 -358
- package/dist/setup/steps/connection-shared.js +49 -101
- package/dist/setup/steps/connection.js +121 -524
- package/dist/setup/steps/embeddings.js +151 -0
- package/dist/setup/steps/harnesses.js +118 -0
- package/dist/setup/steps/platforms.js +2 -81
- package/dist/setup/steps.js +10 -0
- package/dist/setup/summary.js +67 -0
- package/dist/sources/freshness.js +16 -21
- package/dist/sources/providers/git-provider.js +2 -9
- package/dist/sources/providers/provider-utils.js +1 -5
- package/dist/sources/snapshot-fetchers/robots.js +11 -12
- package/dist/sources/snapshot-fetchers/website-ingest.js +8 -15
- package/dist/standalone/onnxruntime-library.js +52 -0
- package/dist/storage/repositories/improve-ledger-repository.js +1 -1
- package/dist/storage/repositories/improve-runs-repository.js +0 -13
- package/dist/storage/repositories/index-entries-repository.js +2 -2
- package/dist/storage/repositories/workflow-runs-repository.js +8 -15
- package/dist/storage/sqlite-read-snapshot.js +33 -29
- package/dist/tasks/log-redaction.js +7 -119
- package/dist/tasks/prepare/prepare-support.js +5 -5
- package/dist/tasks/prepare/prepare.js +5 -5
- package/dist/tasks/prepare/script-capture.js +3 -5
- package/dist/tasks/run/attempt-lifecycle.js +17 -35
- package/dist/tasks/run/load-task.js +8 -13
- package/dist/tasks/run/run-command-task.js +15 -10
- package/dist/tasks/run/run-native-task.js +8 -13
- package/dist/tasks/run/run-task.js +5 -8
- package/dist/tasks/run/run-workflow-task.js +12 -19
- package/dist/tasks/run/task-history.js +9 -17
- package/dist/tasks/run/task-log.js +1 -5
- package/dist/tasks/scheduler-invocation.js +13 -18
- package/dist/tasks/source/bounded-document.js +31 -76
- package/dist/tasks/source/project-v4.js +5 -3
- package/dist/tasks/source/task-input-diagnostics.js +3 -4
- package/dist/tasks/source/task-source-v4.js +47 -68
- package/dist/tasks/source-v3.js +2 -5
- package/dist/tasks/task-run-reserved-flags.js +1 -2
- package/dist/workflows/authoring/authoring.js +2 -7
- package/dist/workflows/concurrency-policy.js +4 -4
- package/dist/workflows/exec/child-workflow.js +0 -2
- package/dist/workflows/exec/dispatch-redaction.js +14 -83
- package/dist/workflows/exec/environment.js +2 -3
- package/dist/workflows/exec/exec-unit.js +10 -59
- package/dist/workflows/exec/frozen-judge.js +10 -26
- package/dist/workflows/exec/native-executor.js +56 -45
- package/dist/workflows/exec/run-workflow.js +7 -24
- package/dist/workflows/exec/step-work.js +9 -14
- package/dist/workflows/exec/unit-dispatch.js +6 -13
- package/dist/workflows/freeze/freeze.js +14 -32
- package/dist/workflows/freeze/step-values.js +5 -11
- package/dist/workflows/freeze/targets/command.js +3 -6
- package/dist/workflows/freeze/task-bindings.js +0 -1
- package/dist/workflows/parser.js +44 -34
- package/dist/workflows/plan.js +3 -1
- package/dist/workflows/renderer.js +6 -5
- package/dist/workflows/resource-limits.js +2 -2
- package/dist/workflows/runtime/run-plan.js +2 -1
- package/dist/workflows/runtime/runs.js +14 -9
- package/docs/README.md +10 -16
- package/docs/architecture/README.md +2 -37
- package/docs/architecture/adapters.md +2 -2
- package/docs/architecture/akm-core-principles.md +256 -118
- package/docs/architecture/architecture.md +282 -98
- package/docs/architecture/improvement.md +8 -2
- package/docs/architecture/internals/classification.md +1 -3
- package/docs/architecture/internals/fresh-host-rebuild-runbook.md +7 -6
- package/docs/architecture/internals/health-advisories.md +35 -74
- package/docs/architecture/internals/improve-workflow.md +27 -26
- package/docs/architecture/internals/indexing.md +3 -3
- package/docs/architecture/internals/storage-locations.md +45 -12
- package/docs/architecture/persisted-data-compat.md +9 -6
- package/docs/architecture/specs/okf-support.md +9 -11
- package/docs/architecture/specs/ref.md +7 -9
- package/docs/architecture/testing/testing-workflow.md +164 -42
- package/docs/architecture/workflow-engine.md +17 -14
- package/docs/guides/README.md +0 -1
- package/docs/guides/author-bundles.md +1 -3
- package/docs/guides/author-workflows.md +61 -73
- package/docs/guides/bundles.md +4 -5
- package/docs/guides/discover-and-load.md +1 -1
- package/docs/guides/getting-started.md +49 -3
- package/docs/guides/improve-the-library.md +10 -4
- package/docs/guides/recipes/headless-install.md +11 -16
- package/docs/guides/run-workflows.md +6 -9
- package/docs/guides/scheduling.md +2 -2
- package/docs/guides/use-with-any-agent.md +20 -22
- package/docs/integration/bundling-akm.md +19 -9
- package/docs/maintainers/README.md +0 -3
- package/docs/migration/README.md +10 -3
- package/docs/migration/release-notes/0.10.0.md +81 -16
- 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.9.0.md +1 -1
- package/docs/migration/release-notes/README.md +1 -1
- package/docs/migration/v0.9-to-v0.10.md +295 -59
- package/docs/migration/v0.9.1-to-v0.9.2.md +6 -5
- package/docs/posts/config-v2-lessons-16.md +1 -1
- package/docs/posts/llm-mode-reflect-13.md +1 -1
- package/docs/posts/release-0.6.0.md +11 -11
- package/docs/posts/release-0.8.0.md +4 -4
- package/docs/posts/workflows-vaults-09.md +1 -1
- package/docs/reference/README.md +1 -1
- package/docs/reference/asset-types.md +2 -2
- package/docs/reference/cli.md +356 -279
- package/docs/reference/configuration.md +569 -557
- package/docs/reference/data-and-telemetry.md +8 -5
- package/docs/reference/env-and-secrets.md +11 -5
- package/docs/reference/refs.md +3 -20
- package/docs/reference/registry.md +6 -27
- package/docs/reference/supported-formats.md +1 -1
- package/docs/reference/tasks.md +11 -8
- package/docs/reference/ui-api.md +11 -6
- package/docs/reference/workflow-schema.md +106 -134
- package/docs/reference/workflows.md +4 -6
- package/package.json +9 -11
- package/schemas/akm-config.json +1696 -2922
- package/schemas/akm-task.json +2 -0
- package/schemas/akm-workflow.json +36 -9
- package/ROADMAP.md +0 -112
- package/dist/assets/models.json +0 -35
- package/dist/commands/health/engine-usage.js +0 -45
- package/dist/core/config/schema/engines.js +0 -160
- package/dist/core/config/schema/execution.js +0 -23
- package/dist/core/spawn-env.js +0 -268
- package/dist/integrations/agent/builder-shared.js +0 -33
- package/dist/integrations/agent/builders.js +0 -43
- package/dist/integrations/agent/engine-fallback.js +0 -59
- package/dist/integrations/agent/engine-resolution.js +0 -335
- package/dist/integrations/agent/model-map.js +0 -475
- package/dist/integrations/harnesses/aider/agent-builder.js +0 -107
- package/dist/integrations/harnesses/aider/result-extractor.js +0 -53
- package/dist/integrations/harnesses/amazonq/agent-builder.js +0 -138
- package/dist/integrations/harnesses/amazonq/result-extractor.js +0 -48
- package/dist/integrations/harnesses/claude/agent-builder.js +0 -106
- package/dist/integrations/harnesses/claude/config-import.js +0 -67
- package/dist/integrations/harnesses/claude/result-extractor.js +0 -67
- package/dist/integrations/harnesses/codex/agent-builder.js +0 -150
- package/dist/integrations/harnesses/codex/result-extractor.js +0 -110
- package/dist/integrations/harnesses/copilot/agent-builder.js +0 -117
- package/dist/integrations/harnesses/copilot/result-extractor.js +0 -178
- package/dist/integrations/harnesses/gemini/agent-builder.js +0 -114
- package/dist/integrations/harnesses/gemini/result-extractor.js +0 -149
- package/dist/integrations/harnesses/opencode/config-import.js +0 -149
- package/dist/integrations/harnesses/opencode/model-config.js +0 -33
- package/dist/integrations/harnesses/opencode/model-work-agent.js +0 -115
- package/dist/integrations/harnesses/opencode/session-log-types.js +0 -12
- package/dist/integrations/harnesses/opencode-sdk/index.js +0 -44
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +0 -1052
- package/dist/integrations/harnesses/opencode-sdk/v1-adapter.js +0 -199
- package/dist/integrations/harnesses/opencode-sdk/v2-adapter.js +0 -254
- package/dist/integrations/harnesses/opencode-sdk/wire.js +0 -66
- package/dist/integrations/harnesses/openhands/agent-builder.js +0 -120
- package/dist/integrations/harnesses/openhands/result-extractor.js +0 -135
- package/dist/integrations/harnesses/pi/agent-builder.js +0 -89
- package/dist/integrations/harnesses/pi/result-extractor.js +0 -168
- package/dist/integrations/harnesses/shared.js +0 -18
- package/dist/integrations/harnesses/types.js +0 -55
- package/dist/llm/feature-gate.js +0 -115
- package/dist/output/shapes/models-list.js +0 -16
- package/dist/output/shapes/registry-search.js +0 -10
- package/dist/setup/detected-engines.js +0 -136
- package/dist/setup/engine-config.js +0 -97
- package/dist/setup/harness-config-import.js +0 -47
- package/dist/setup/providers.js +0 -14
- package/dist/setup/steps/semantic.js +0 -39
- package/dist/workflows/exec/lowering-notices.js +0 -23
- package/docs/architecture/0.10-process-rules.md +0 -832
- package/docs/architecture/akm-architecture-decision-history.md +0 -2055
- package/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md +0 -544
- package/docs/architecture/decisions/0001-no-interpolation-attached-structured-context.md +0 -72
- package/docs/architecture/decisions/0002-unit-reuse-and-input-hash-scope.md +0 -142
- package/docs/architecture/decisions/0003-child-env-allowlist-and-provenance.md +0 -187
- package/docs/architecture/decisions/0004-task-input-contract-and-flag-coercion.md +0 -97
- package/docs/architecture/decisions/0005-task-result-vocabulary-and-legacy-read-mapping.md +0 -108
- package/docs/architecture/decisions/0006-task-source-version-routing.md +0 -124
- package/docs/architecture/decisions/0007-workflow-composition-bounds.md +0 -83
- package/docs/architecture/decisions/0008-task-binding-normalization.md +0 -88
- package/docs/architecture/decisions/0009-child-run-publication-column-parity.md +0 -80
- package/docs/architecture/decisions/0010-driver-protocol-cut.md +0 -36
- package/docs/architecture/decisions/0011-engine-run-loop-invariants.md +0 -125
- package/docs/architecture/decisions/README.md +0 -62
- package/docs/architecture/internals/functional-contract-patterns.md +0 -340
- package/docs/architecture/internals/registry-network-boundary.md +0 -57
- package/docs/architecture/internals/search.md +0 -248
- package/docs/architecture/reviews/env-secret-access.md +0 -319
- package/docs/architecture/runtime-boundary-design.md +0 -153
- package/docs/architecture/specs/0.9.0-close-out-plan.md +0 -361
- package/docs/architecture/specs/0.9.0-decisions.md +0 -532
- package/docs/architecture/specs/0.9.0-docs-code-drift-register.md +0 -745
- package/docs/architecture/specs/0.9.0-open-items-register.md +0 -135
- package/docs/architecture/specs/0.9.0-public-api-issue-backlog.md +0 -740
- package/docs/architecture/specs/0.9.0-release-surface-review.md +0 -636
- package/docs/architecture/specs/agent-command-engine-model-design.md +0 -513
- package/docs/architecture/specs/akm-0.9.0-bundle-adapter-spec.md +0 -501
- package/docs/architecture/specs/akm-0.9.0-ref-grammar-decision.md +0 -291
- package/docs/architecture/specs/akm-format-neutral-bundle-workspace-spec.md +0 -2059
- package/docs/architecture/specs/di-seams-plan.md +0 -539
- package/docs/architecture/specs/driver-protocol-keep-or-cut.md +0 -275
- package/docs/architecture/specs/fact-asset-type.md +0 -142
- package/docs/architecture/specs/improve-collapse-churn-detector-design.md +0 -634
- package/docs/architecture/specs/reviews/task-workflow-unification/README.md +0 -72
- package/docs/architecture/specs/reviews/task-workflow-unification/findings-consolidated.md +0 -152
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-alternatives.md +0 -352
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-bunqueue.md +0 -300
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-openworkflow.md +0 -402
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-1.md +0 -758
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-2.md +0 -645
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-3.md +0 -602
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-adversarial.md +0 -27
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-architecture.md +0 -27
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-coverage.md +0 -74
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-security.md +0 -15
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-adversarial.md +0 -132
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-verification.md +0 -147
- package/docs/architecture/specs/stash-conventions-code-spec.md +0 -275
- package/docs/architecture/specs/stash-organization-conventions.md +0 -377
- package/docs/architecture/specs/task-workflow-format-unification.md +0 -721
- package/docs/architecture/specs/workflow-engine-buy-vs-build.md +0 -231
- package/docs/architecture/specs/workflow-format-unification.md +0 -432
- package/docs/architecture/testing/manual-testing-checklist.md +0 -3379
- package/docs/architecture/testing/okf-v0.2-conformance-runbook.md +0 -924
- package/docs/architecture/testing/task-workflow-manual-tests.md +0 -1702
- package/docs/guides/claude-code-vs-akm-workflows.md +0 -29
- package/docs/guides/knowledge-management.md +0 -18
- package/docs/maintainers/curate-workmap.md +0 -335
- package/docs/migration/v0.5-to-v0.6.md +0 -759
- package/docs/migration/v0.7-to-v0.8.md +0 -1378
- package/docs/plans/0.9.2-agent-command-workflow-plan.md +0 -423
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
import { SHIPPED_ALIAS } from "../../core/config/model-aliases.js";
|
|
4
5
|
import { UsageError } from "../../core/errors.js";
|
|
6
|
+
import { mergeNotices } from "../../execution/notices.js";
|
|
5
7
|
import { createInlineResolvedCommand, createResolvedCommand, createResolvedPersona, } from "../../execution/resolved-request.js";
|
|
6
8
|
import { isPortableExecutionAgentSelector, } from "../../execution/source.js";
|
|
7
9
|
import { recordIndexedShowUsage } from "../../indexer/usage/show-usage.js";
|
|
8
10
|
import { resolveUsageEventSource } from "../../indexer/usage/usage-events.js";
|
|
9
|
-
import {
|
|
10
|
-
import { buildExecution, resolveExecution, } from "../../integrations/agent/execution.js";
|
|
11
|
+
import { buildExecution, currentLayer, resolveExecution, shippedAlias, } from "../../integrations/agent/execution.js";
|
|
11
12
|
import { runExecution } from "../../integrations/agent/runner-dispatch.js";
|
|
12
13
|
import { parseBuiltinCommandAction } from "./builtin-action.js";
|
|
13
14
|
import { loadAdapterExecutionSource, } from "./execution-source-loader.js";
|
|
@@ -106,18 +107,22 @@ export async function prepareCommandInvocation(options) {
|
|
|
106
107
|
renderedPersona = rendered;
|
|
107
108
|
}
|
|
108
109
|
const persona = renderedPersona ? createResolvedPersona(renderedPersona) : selectedAgent.present ? null : undefined;
|
|
110
|
+
const layers = [
|
|
111
|
+
shippedAlias(SHIPPED_ALIAS.agent),
|
|
112
|
+
...(renderedPersona
|
|
113
|
+
? [{ id: renderedPersona.identity.ref, kind: "agent", values: renderedPersona.defaults }]
|
|
114
|
+
: []),
|
|
115
|
+
{ id: renderedCommand?.identity.ref ?? "inline-command", kind: "command", values: commandDefaults },
|
|
116
|
+
...(options.invocationDefaults
|
|
117
|
+
? [{ id: "invocation-defaults", kind: "invocation-defaults", values: options.invocationDefaults }]
|
|
118
|
+
: []),
|
|
119
|
+
...(options.current ? [currentLayer(options.current)] : []),
|
|
120
|
+
];
|
|
109
121
|
return resolveExecution({
|
|
110
122
|
command,
|
|
111
123
|
config: options.config,
|
|
112
124
|
...(persona !== undefined ? { persona } : {}),
|
|
113
|
-
|
|
114
|
-
commandLayer: {
|
|
115
|
-
id: renderedCommand?.identity.ref ?? "inline-command",
|
|
116
|
-
values: commandDefaults,
|
|
117
|
-
},
|
|
118
|
-
...(options.invocationDefaults ? { invocationDefaults: options.invocationDefaults } : {}),
|
|
119
|
-
...(options.current ? { current: options.current } : {}),
|
|
120
|
-
...(options.modelMap ? { modelMap: options.modelMap } : {}),
|
|
125
|
+
layers,
|
|
121
126
|
});
|
|
122
127
|
}
|
|
123
128
|
function compareText(left, right) {
|
|
@@ -126,38 +131,27 @@ function compareText(left, right) {
|
|
|
126
131
|
const DIAGNOSTIC_PROVENANCE_FIELDS = new Set([
|
|
127
132
|
"/inference",
|
|
128
133
|
"agent",
|
|
129
|
-
"authorization",
|
|
130
134
|
"command",
|
|
131
|
-
"engine",
|
|
132
|
-
"engine.requested",
|
|
133
135
|
"model",
|
|
134
136
|
"outputSchema",
|
|
135
137
|
"persona",
|
|
136
138
|
"runtime.environment",
|
|
137
|
-
"runtime.settings",
|
|
138
139
|
"runtime.timeoutMs",
|
|
139
140
|
"runtime.workspace",
|
|
140
|
-
"
|
|
141
|
+
"target",
|
|
141
142
|
]);
|
|
142
143
|
const DIAGNOSTIC_NOTICE_FIELDS = new Set([
|
|
143
144
|
"agent",
|
|
144
145
|
"command.content",
|
|
145
|
-
"command.extensions",
|
|
146
146
|
"conversation",
|
|
147
|
-
"engine",
|
|
148
|
-
"engine.extensions",
|
|
149
|
-
"extensions",
|
|
150
147
|
"inference",
|
|
151
148
|
"model",
|
|
152
149
|
"outputSchema",
|
|
153
150
|
"persona",
|
|
154
|
-
"persona.extensions",
|
|
155
151
|
"runtime.environment",
|
|
156
|
-
"runtime.extensions",
|
|
157
|
-
"runtime.settings",
|
|
158
152
|
"runtime.timeoutMs",
|
|
159
153
|
"runtime.workspace",
|
|
160
|
-
"
|
|
154
|
+
"target",
|
|
161
155
|
]);
|
|
162
156
|
function canonicalDiagnosticProvenanceField(field) {
|
|
163
157
|
if (field.startsWith("/inference/"))
|
|
@@ -219,20 +213,15 @@ function safeDiagnosticNotice(notice) {
|
|
|
219
213
|
severity: "info",
|
|
220
214
|
adapter: notice.adapter,
|
|
221
215
|
field: "persona",
|
|
222
|
-
message: "The selected
|
|
216
|
+
message: "The selected harness has no native persona channel; AKM composed the persona into the prompt.",
|
|
223
217
|
});
|
|
224
218
|
default:
|
|
225
219
|
return undefined;
|
|
226
220
|
}
|
|
227
221
|
}
|
|
228
222
|
function diagnosticNotices(notices) {
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
const safe = safeDiagnosticNotice(notice);
|
|
232
|
-
if (safe)
|
|
233
|
-
canonical.set(JSON.stringify(safe), safe);
|
|
234
|
-
}
|
|
235
|
-
return Object.freeze([...canonical.values()].sort((left, right) => compareText(JSON.stringify(left), JSON.stringify(right))));
|
|
223
|
+
const safe = notices.flatMap((notice) => safeDiagnosticNotice(notice) ?? []);
|
|
224
|
+
return Object.freeze([...(mergeNotices(safe) ?? [])].sort((left, right) => compareText(JSON.stringify(left), JSON.stringify(right))));
|
|
236
225
|
}
|
|
237
226
|
/**
|
|
238
227
|
* Build a prepared invocation and project only safe structural diagnostics.
|
|
@@ -245,7 +234,7 @@ export function inspectPreparedCommandInvocation(prepared) {
|
|
|
245
234
|
shape: "command-dry-run",
|
|
246
235
|
ok: true,
|
|
247
236
|
dryRun: true,
|
|
248
|
-
engine: prepared.request.
|
|
237
|
+
engine: prepared.request.target.name,
|
|
249
238
|
provenance: diagnosticProvenance(prepared.provenance),
|
|
250
239
|
notices: diagnosticNotices(built.notices),
|
|
251
240
|
};
|
|
@@ -270,22 +259,19 @@ function resultEnvelope(result, engine, warnings, notices) {
|
|
|
270
259
|
export async function dispatchPreparedCommandInvocation(prepared, options = {}) {
|
|
271
260
|
const { request } = prepared;
|
|
272
261
|
const built = buildExecution(request, prepared.runner);
|
|
273
|
-
const selectedEngine = request.
|
|
262
|
+
const selectedEngine = request.target.name;
|
|
274
263
|
const result = await runExecution(built, runOptionsFor(options));
|
|
275
264
|
const consumedRefs = new Set();
|
|
276
265
|
if (request.command.source)
|
|
277
266
|
consumedRefs.add(request.command.source.ref);
|
|
278
267
|
if (request.persona)
|
|
279
268
|
consumedRefs.add(request.persona.source.ref);
|
|
280
|
-
//
|
|
281
|
-
//
|
|
282
|
-
// byte-identical to the pre-P1b bare resolveUsageEventSource() call (P-07's
|
|
283
|
-
// own default is "user").
|
|
269
|
+
// options.eventSource is only a FALLBACK — an ambient AKM_EVENT_SOURCE still
|
|
270
|
+
// wins. Absent, the default is "user".
|
|
284
271
|
const eventSource = resolveUsageEventSource(process.env, options.eventSource ?? "user");
|
|
285
272
|
for (const ref of consumedRefs)
|
|
286
273
|
recordIndexedShowUsage(ref, eventSource);
|
|
287
|
-
|
|
288
|
-
return resultEnvelope(result, selectedEngine, announcement ? [announcement] : [], built.notices);
|
|
274
|
+
return resultEnvelope(result, selectedEngine, [], built.notices);
|
|
289
275
|
}
|
|
290
276
|
export async function executeCommandInvocation(options, dispatchOptions = {}) {
|
|
291
277
|
return dispatchPreparedCommandInvocation(await prepareCommandInvocation(options), dispatchOptions);
|
|
@@ -58,7 +58,7 @@ function walkCommandTree(cmd, parentPath = "") {
|
|
|
58
58
|
const valueFlags = [];
|
|
59
59
|
if (cmd.args) {
|
|
60
60
|
for (const [flagName, arg] of Object.entries(cmd.args)) {
|
|
61
|
-
if (arg.type === "positional")
|
|
61
|
+
if (arg.type === "positional" || arg.hidden === true)
|
|
62
62
|
continue;
|
|
63
63
|
flags.push(`--${flagName}`);
|
|
64
64
|
if (arg.type === "boolean" && arg.default === true)
|
|
@@ -9,14 +9,15 @@
|
|
|
9
9
|
* zero lines here — the walker handles get/set/unset/coercion uniformly.
|
|
10
10
|
*
|
|
11
11
|
* `configVersion` is controlled by the config lifecycle. All execution
|
|
12
|
-
* settings use their canonical
|
|
12
|
+
* settings use their canonical connection, harness and strategy paths; retired aliases are not
|
|
13
13
|
* rewritten at this boundary.
|
|
14
14
|
*/
|
|
15
15
|
import { isDeepStrictEqual } from "node:util";
|
|
16
16
|
import { defineGroupCommand, defineJsonCommand, output } from "../cli/shared.js";
|
|
17
17
|
import { isRecord } from "../core/common.js";
|
|
18
|
-
import { DEFAULT_CONFIG, getConfigValueSource, loadConfig, mutateConfig, parseAndValidateConfigText, resolveConfigRefSource, } from "../core/config/config.js";
|
|
18
|
+
import { DEFAULT_CONFIG, getConfigValueSource, loadConfig, mutateConfig, parseAndValidateConfigText, resolveConfigRefSource, unusableEntryAt, } from "../core/config/config.js";
|
|
19
19
|
import { configGet, configSet, configUnset, unknownKeyHint } from "../core/config/config-walker.js";
|
|
20
|
+
import { isEnvReference } from "../core/config/schema/primitives.js";
|
|
20
21
|
import { UsageError } from "../core/errors.js";
|
|
21
22
|
import { getConfigPath } from "../core/paths.js";
|
|
22
23
|
import { formatRegistryUrl } from "../core/registry-url.js";
|
|
@@ -31,11 +32,13 @@ export function unsetConfigValue(config, key) {
|
|
|
31
32
|
return configUnset(config, key);
|
|
32
33
|
}
|
|
33
34
|
export function listConfig(config) {
|
|
34
|
-
//
|
|
35
|
+
// Sources live in `bundles` (spread from config); the
|
|
35
36
|
// retired top-level `sources[]` array is no longer surfaced.
|
|
36
37
|
return redactConfigValue({ ...DEFAULT_CONFIG, ...config });
|
|
37
38
|
}
|
|
38
39
|
function redactConfigValue(value, path = []) {
|
|
40
|
+
if (path.at(-1) === "apiKey" && typeof value === "string" && !isEnvReference(value))
|
|
41
|
+
return undefined;
|
|
39
42
|
if (typeof value === "string" && isRegistryUrlPath(path))
|
|
40
43
|
return formatRegistryUrl(value);
|
|
41
44
|
if (Array.isArray(value))
|
|
@@ -44,8 +47,7 @@ function redactConfigValue(value, path = []) {
|
|
|
44
47
|
return value;
|
|
45
48
|
const result = {};
|
|
46
49
|
for (const [key, child] of Object.entries(value)) {
|
|
47
|
-
if (key !== "apiKey" ||
|
|
48
|
-
(typeof child === "string" && /^\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[A-Za-z_][A-Za-z0-9_]*\})$/.test(child))) {
|
|
50
|
+
if (key !== "apiKey" || (typeof child === "string" && isEnvReference(child))) {
|
|
49
51
|
result[key] = redactConfigValue(child, [...path, key]);
|
|
50
52
|
}
|
|
51
53
|
}
|
|
@@ -195,6 +197,13 @@ export const configCommand = defineGroupCommand({
|
|
|
195
197
|
if (source.startsWith("extends:")) {
|
|
196
198
|
throw new UsageError(`Config key "${args.key}" is inherited from ${source} and cannot be unset here.`, "TARGET_NOT_UPDATABLE", `Override it locally with "akm config set ${args.key} <value>", or edit the base file directly.`);
|
|
197
199
|
}
|
|
200
|
+
// An entry the reader drops is not in the config `unsetConfigValue` sees, so it would no-op and say ok.
|
|
201
|
+
const ignored = unusableEntryAt(args.key);
|
|
202
|
+
if (ignored) {
|
|
203
|
+
throw new UsageError(`Config key "${args.key}" is inside ${ignored.kind} "${ignored.name}", which akm ignores (${ignored.why}), so \`akm config\` cannot edit it.`, "TARGET_NOT_UPDATABLE", ignored.inFile
|
|
204
|
+
? `Remove or fix the ${ignored.group}.${ignored.name} entry in ${getConfigPath()} by hand.`
|
|
205
|
+
: `${getConfigPath()} is still in the retired engines form: run \`akm migrate apply\` first, then fix or remove the entry.`);
|
|
206
|
+
}
|
|
198
207
|
const result = mutateConfig((current) => unsetConfigValue(current, args.key), { absentNoop: true });
|
|
199
208
|
const updated = result.config;
|
|
200
209
|
if (!args.silent) {
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* What `env run --clean` / `secret run --clean` keeps of the parent environment. The user typed
|
|
6
|
+
* the flag to get a minimal one; without the last eight names Windows cannot create the process.
|
|
7
|
+
*/
|
|
5
8
|
const CLEAN_ENV_ALLOWLIST = [
|
|
6
9
|
"HOME",
|
|
7
10
|
"PATH",
|
|
@@ -31,6 +34,14 @@ const CLEAN_ENV_ALLOWLIST = [
|
|
|
31
34
|
"TZ",
|
|
32
35
|
"NO_COLOR",
|
|
33
36
|
"COLORTERM",
|
|
37
|
+
"SystemRoot",
|
|
38
|
+
"SystemDrive",
|
|
39
|
+
"WINDIR",
|
|
40
|
+
"COMSPEC",
|
|
41
|
+
"PATHEXT",
|
|
42
|
+
"USERPROFILE",
|
|
43
|
+
"HOMEDRIVE",
|
|
44
|
+
"HOMEPATH",
|
|
34
45
|
];
|
|
35
46
|
export function buildChildEnv(parentEnv, options) {
|
|
36
47
|
const base = options.clean ? {} : { ...parentEnv };
|
|
@@ -39,19 +50,6 @@ export function buildChildEnv(parentEnv, options) {
|
|
|
39
50
|
if (parentEnv[key] !== undefined)
|
|
40
51
|
base[key] = parentEnv[key];
|
|
41
52
|
}
|
|
42
|
-
// The allowlist above is POSIX-shaped. On Windows a child started without
|
|
43
|
-
// SystemRoot/COMSPEC/PATHEXT and friends frequently cannot start at all —
|
|
44
|
-
// which is why every other spawn path in the codebase applies this floor
|
|
45
|
-
// (see spawnEnvNamesFor). `env run --clean` / `secret run --clean` did not,
|
|
46
|
-
// so clean-mode injection was unusable there. The floor is names the OS
|
|
47
|
-
// requires of any child, not user configuration, so it does not weaken what
|
|
48
|
-
// "clean" means about inherited secrets.
|
|
49
|
-
if (process.platform === "win32") {
|
|
50
|
-
for (const key of WIN32_SPAWN_ENV_FLOOR) {
|
|
51
|
-
if (parentEnv[key] !== undefined)
|
|
52
|
-
base[key] = parentEnv[key];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
53
|
}
|
|
56
54
|
for (const key of options.inherit) {
|
|
57
55
|
if (parentEnv[key] !== undefined)
|
|
@@ -237,8 +237,8 @@ async function runEnvInjected(target, opts) {
|
|
|
237
237
|
throw err;
|
|
238
238
|
}
|
|
239
239
|
// R-067: was `process.exit(result.status ?? 0)`, which terminates the
|
|
240
|
-
// process synchronously and skips the `finally {
|
|
241
|
-
//
|
|
240
|
+
// process synchronously and skips the `finally { disposeLlmUsageSink(); }`
|
|
241
|
+
// block in src/cli.ts's `runCommand` — even
|
|
242
242
|
// on the success path, since this call was unconditional. Setting
|
|
243
243
|
// `process.exitCode` and returning lets cleanup run while still exiting
|
|
244
244
|
// with the child's exact status once the event loop drains, matching the
|
|
@@ -207,8 +207,8 @@ const secretRunCommand = defineJsonCommand({
|
|
|
207
207
|
throw err;
|
|
208
208
|
}
|
|
209
209
|
// R-067: was `process.exit(result.status ?? 0)`, unconditional even on
|
|
210
|
-
// the success path — it skipped the `finally {
|
|
211
|
-
//
|
|
210
|
+
// the success path — it skipped the `finally { disposeLlmUsageSink(); }`
|
|
211
|
+
// cleanup in src/cli.ts's `runCommand`.
|
|
212
212
|
// Setting `process.exitCode` and returning still exits with the child's
|
|
213
213
|
// exact status once the event loop drains, but lets cleanup run first —
|
|
214
214
|
// same pattern `emitJsonError` (src/cli/shared.ts) already established.
|