akm-cli 0.9.0-rc.0 → 0.9.0-rc.13
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 +1283 -22
- package/README.md +62 -37
- package/SECURITY.md +46 -31
- package/dist/akm +162 -38
- package/dist/akm-migrate +44 -0
- package/dist/assets/backends/schtasks-template.xml +2 -1
- package/dist/assets/hints/cli-hints-full.md +268 -118
- package/dist/assets/hints/cli-hints-short.md +87 -24
- package/dist/assets/{profiles → improve-strategies}/catchup.json +3 -1
- package/dist/assets/{profiles → improve-strategies}/consolidate.json +3 -1
- package/dist/assets/{profiles → improve-strategies}/default.json +6 -7
- package/dist/assets/improve-strategies/frequent.json +15 -0
- package/dist/assets/{profiles → improve-strategies}/graph-refresh.json +4 -2
- package/dist/assets/{profiles → improve-strategies}/memory-focus.json +4 -1
- package/dist/assets/{profiles → improve-strategies}/proactive-maintenance.json +5 -5
- package/dist/assets/{profiles → improve-strategies}/quick.json +4 -2
- package/dist/assets/improve-strategies/reflect-distill.json +30 -0
- package/dist/assets/{profiles → improve-strategies}/thorough.json +1 -1
- package/dist/assets/prompts/consolidate-system.md +5 -5
- package/dist/assets/prompts/extract-session.md +2 -6
- package/dist/assets/prompts/memory-infer-user.md +2 -3
- package/dist/assets/prompts/reflect-llm-framed-contract.md +11 -0
- package/dist/assets/prompts/reflect-llm-schema-contract.md +3 -0
- package/dist/assets/prompts/reflect-output-repair.md +3 -0
- package/dist/assets/prompts/workflow-unit-preamble.md +26 -0
- package/dist/assets/stash-skeleton/README.md +38 -10
- package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +8 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/command.md +8 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +14 -1
- package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +13 -1
- package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +9 -1
- package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +11 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +9 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +9 -0
- package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +8 -0
- package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +100 -0
- package/dist/assets/stash-skeleton/facts/conventions/domains.md +64 -0
- package/dist/assets/stash-skeleton/facts/conventions/organization.md +136 -0
- package/dist/assets/tasks/core/extract.yml +3 -2
- package/dist/assets/tasks/core/improve.yml +2 -1
- package/dist/assets/tasks/core/index-refresh.yml +1 -0
- package/dist/assets/tasks/core/sync.yml +1 -0
- package/dist/assets/tasks/core/version-check.yml +2 -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 +5 -4
- package/dist/assets/workflows/workflow-template.md +31 -15
- package/dist/cli/invocation.js +279 -0
- package/dist/cli/parse-args.js +5 -90
- package/dist/cli/retired-commands.js +78 -0
- package/dist/cli/shared.js +158 -48
- package/dist/cli-node.mjs +2 -1
- package/dist/cli.js +747 -293
- package/dist/commands/agent/agent-dispatch.js +19 -18
- package/dist/commands/agent/agent-support.js +0 -24
- package/dist/commands/agent/contribute-cli.js +43 -97
- package/dist/commands/completions.js +80 -23
- package/dist/commands/config-cli.js +44 -281
- package/dist/commands/env/env-binding.js +99 -0
- package/dist/commands/env/env-cli.js +84 -224
- package/dist/commands/env/env.js +12 -163
- package/dist/commands/env/marker-path.js +6 -0
- package/dist/commands/env/secret-cli.js +45 -61
- package/dist/commands/env/secret.js +32 -62
- package/dist/commands/feedback-cli.js +179 -85
- package/dist/commands/health/accept-rate.js +58 -0
- package/dist/commands/health/advisories.js +7 -8
- package/dist/commands/health/checks.js +279 -94
- package/dist/commands/health/html-report.js +197 -578
- package/dist/commands/health/improve-metrics.js +277 -246
- package/dist/commands/health/llm-usage.js +19 -19
- package/dist/commands/health/md-report.js +16 -7
- package/dist/commands/health/metrics.js +67 -32
- package/dist/commands/health/renderers.js +47 -0
- package/dist/commands/health/report-view-model.js +508 -0
- package/dist/commands/health/stash-exposure.js +1 -1
- package/dist/commands/health/surfaces.js +16 -56
- package/dist/commands/health/task-runs.js +3 -67
- package/dist/{migrate-storage-node.mjs → commands/health/types-checks.js} +1 -5
- package/dist/commands/health/types-improve.js +29 -0
- package/dist/{output/text/save.js → commands/health/types-metrics.js} +1 -2
- package/dist/commands/health/types-result.js +7 -0
- package/dist/commands/health/types-runs.js +4 -0
- package/dist/commands/health/types-session-log.js +4 -0
- package/dist/commands/health/types-windows.js +4 -0
- package/dist/commands/health/types.js +26 -21
- package/dist/commands/health/windows.js +2 -3
- package/dist/commands/health.js +296 -167
- package/dist/commands/improve/anti-collapse.js +5 -5
- package/dist/commands/improve/autonomy-gate.js +68 -0
- package/dist/commands/improve/collapse-detector.js +65 -52
- package/dist/commands/improve/consolidate/chunking.js +9 -7
- package/dist/commands/improve/consolidate/eligibility.js +1 -23
- package/dist/commands/improve/consolidate/merge.js +4 -0
- package/dist/commands/improve/consolidate.js +454 -1354
- package/dist/commands/improve/content-hash.js +39 -0
- package/dist/commands/improve/distill/content-repair.js +4 -10
- package/dist/commands/improve/distill/promote-memory.js +89 -64
- package/dist/commands/improve/distill/quality-gate.js +118 -42
- package/dist/commands/improve/distill-guards.js +1 -1
- package/dist/commands/improve/distill-promotion-policy.js +33 -888
- package/dist/commands/improve/distill.js +607 -363
- package/dist/commands/improve/eligibility.js +165 -79
- package/dist/commands/improve/extract-cli.js +35 -126
- package/dist/commands/improve/extract-prompt.js +6 -35
- package/dist/commands/improve/extract.js +640 -391
- package/dist/commands/improve/feedback-valence.js +2 -12
- package/dist/commands/improve/improve-cli.js +134 -135
- package/dist/commands/improve/improve-result-file.js +30 -50
- package/dist/commands/improve/improve-run-types.js +4 -0
- package/dist/commands/improve/improve-strategies.js +135 -0
- package/dist/commands/improve/improve.js +904 -701
- package/dist/commands/improve/locks.js +64 -111
- package/dist/commands/improve/loop-stages.js +1110 -923
- package/dist/commands/improve/memory/derived-ref.js +124 -0
- package/dist/commands/improve/memory/memory-belief.js +79 -7
- package/dist/commands/improve/memory/memory-contradiction-detect.js +49 -52
- package/dist/commands/improve/memory/memory-improve.js +25 -37
- package/dist/commands/improve/outcome-loop.js +25 -88
- package/dist/commands/improve/preparation.js +1034 -813
- package/dist/commands/improve/proactive-maintenance.js +34 -9
- package/dist/commands/improve/proposal-envelope.js +31 -0
- package/dist/commands/improve/reflect.js +983 -794
- package/dist/commands/improve/run-context.js +119 -0
- package/dist/commands/improve/salience.js +24 -127
- package/dist/commands/improve/session-asset.js +7 -3
- package/dist/commands/improve/shared.js +14 -34
- package/dist/commands/improve/source-identity.js +28 -0
- package/dist/commands/improve/triage.js +20 -17
- package/dist/commands/lint/base-linter.js +340 -313
- package/dist/commands/lint/env-key-rules.js +31 -47
- package/dist/commands/lint/index.js +185 -30
- package/dist/commands/{events.js → log.js} +28 -38
- package/dist/commands/migrate-cli.js +54 -0
- package/dist/commands/migration-tool.js +55 -0
- package/dist/commands/observability-cli.js +70 -208
- package/dist/commands/proposal/diff-format.js +50 -0
- package/dist/commands/proposal/drain-policies.js +0 -6
- package/dist/commands/proposal/drain.js +91 -40
- package/dist/commands/proposal/proposal-cli.js +134 -132
- package/dist/commands/proposal/proposal-types.js +56 -0
- package/dist/commands/proposal/proposal.js +83 -65
- package/dist/commands/proposal/propose-cli.js +88 -0
- package/dist/commands/proposal/propose.js +105 -88
- package/dist/commands/proposal/repository.js +1303 -278
- package/dist/commands/proposal/validators/proposal-quality-validators.js +16 -6
- package/dist/commands/proposal/validators/proposal-validators.js +61 -12
- package/dist/commands/proposal/validators/proposals.js +6 -8
- package/dist/commands/read/curate.js +78 -73
- package/dist/commands/read/knowledge.js +510 -13
- package/dist/commands/read/registry-search.js +2 -2
- package/dist/commands/read/remember-cli.js +84 -15
- package/dist/commands/read/search-cli.js +203 -96
- package/dist/commands/read/search.js +126 -94
- package/dist/commands/read/show.js +226 -250
- package/dist/commands/registry-cli.js +34 -60
- package/dist/commands/remember.js +18 -57
- package/dist/commands/sources/add-cli.js +104 -49
- package/dist/commands/sources/bundle-cli.js +166 -0
- package/dist/commands/sources/bundle-config-ops.js +63 -0
- package/dist/commands/sources/info.js +27 -15
- package/dist/commands/sources/init.js +30 -40
- package/dist/commands/sources/installed-stashes.js +469 -172
- package/dist/commands/sources/migration-help.js +7 -4
- package/dist/commands/sources/schema-repair.js +10 -9
- package/dist/commands/sources/self-update.js +182 -121
- package/dist/commands/sources/source-add.js +169 -178
- package/dist/commands/sources/source-clone.js +144 -41
- package/dist/commands/sources/source-manage.js +94 -59
- package/dist/commands/sources/sources-cli.js +64 -205
- package/dist/commands/sources/stash-cli.js +91 -54
- package/dist/commands/sources/stash-skeleton.js +1 -1
- package/dist/commands/tasks/tasks-cli.js +106 -104
- package/dist/commands/tasks/tasks.js +445 -262
- package/dist/commands/workflow-cli.js +232 -121
- package/dist/core/action-contributors.js +1 -1
- package/dist/core/activation-policy.js +49 -0
- package/dist/core/adapter/adapters/agent-skills-adapter.js +181 -0
- package/dist/core/adapter/adapters/akm-adapter.js +528 -0
- package/dist/core/adapter/adapters/akm-lint.js +392 -0
- package/dist/core/adapter/adapters/akm-metadata.js +387 -0
- package/dist/core/adapter/adapters/akm-task-adapter.js +149 -0
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +180 -0
- package/dist/core/adapter/adapters/claude-adapter.js +61 -0
- package/dist/core/adapter/adapters/dotenv-adapter.js +187 -0
- package/dist/core/adapter/adapters/generic-files-adapter.js +119 -0
- package/dist/core/adapter/adapters/index.js +80 -0
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +419 -0
- package/dist/core/adapter/adapters/okf-adapter.js +391 -0
- package/dist/core/adapter/adapters/opencode-adapter.js +68 -0
- package/dist/core/adapter/adapters/shared.js +286 -0
- package/dist/core/adapter/adapters/tool-dir-shared.js +217 -0
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +155 -0
- package/dist/core/adapter/bundle-adapter.js +4 -0
- package/dist/core/adapter/detect-adapter.js +17 -0
- package/dist/core/adapter/recognize-match.js +44 -0
- package/dist/core/adapter/registry.js +56 -0
- package/dist/core/adapter/types.js +4 -0
- package/dist/core/asset/akm-markdown.js +30 -0
- package/dist/core/asset/asset-placement.js +243 -0
- package/dist/core/asset/asset-ref.js +110 -79
- package/dist/core/asset/asset-serialize.js +20 -0
- package/dist/core/asset/frontmatter.js +28 -12
- package/dist/core/asset/markdown.js +40 -51
- package/dist/core/asset/resolve-ref.js +274 -0
- package/dist/core/asset/stash-meta.js +2 -2
- package/dist/core/bundle-id.js +51 -0
- package/dist/core/common.js +281 -86
- package/dist/core/config/config-io.js +42 -128
- package/dist/core/config/config-schema.js +233 -834
- package/dist/core/config/config-sources.js +162 -39
- package/dist/core/config/config-types.js +16 -11
- package/dist/core/config/config-version.js +29 -0
- package/dist/core/config/config-walker.js +126 -37
- package/dist/core/config/config.js +154 -331
- package/dist/core/config/deep-merge.js +41 -0
- package/dist/core/config/engine-semantics.js +28 -0
- package/dist/core/config/experimental.js +21 -0
- package/dist/core/config/schema/embedding.js +38 -0
- package/dist/core/config/schema/engines.js +116 -0
- package/dist/core/config/schema/experimental.js +47 -0
- package/dist/core/config/schema/feedback.js +31 -0
- package/dist/core/config/schema/improve-processes.js +389 -0
- package/dist/core/config/schema/improve.js +94 -0
- package/dist/core/config/schema/index-config.js +176 -0
- package/dist/core/config/schema/output.js +18 -0
- package/dist/core/config/schema/primitives.js +94 -0
- package/dist/core/config/schema/search.js +30 -0
- package/dist/core/config/schema/setup.js +18 -0
- package/dist/core/config/schema/sources-bundles.js +169 -0
- package/dist/core/config/schema/workflow.js +29 -0
- package/dist/core/env-secret-ref.js +155 -20
- package/dist/core/errors.js +17 -15
- package/dist/core/events-types.js +4 -0
- package/dist/core/events.js +46 -128
- package/dist/core/extra-params.js +62 -0
- package/dist/core/file-change.js +17 -0
- package/dist/core/file-lock.js +202 -57
- package/dist/core/fs-txn.js +392 -0
- package/dist/core/git-message.js +59 -0
- package/dist/core/improve-result.js +167 -0
- package/dist/core/json-schema.js +142 -0
- package/dist/core/lesson-lint.js +1 -17
- package/dist/core/logs-db.js +1 -1
- package/dist/core/maintenance-barrier.js +135 -0
- package/dist/core/migration-operation.js +44 -0
- package/dist/core/mutation-target.js +78 -0
- package/dist/core/paths.js +22 -25
- package/dist/core/platform.js +10 -0
- package/dist/core/recognition-util.js +128 -0
- package/dist/core/redaction.js +392 -0
- package/dist/core/standards/resolve-standards-context.js +36 -65
- package/dist/core/standards/resolve-stash-standards.js +2 -2
- package/dist/core/standards/resolve-type-conventions.js +5 -5
- package/dist/core/state/migrations.js +242 -11
- package/dist/core/state-db.js +98 -10
- package/dist/core/structured.js +1 -1
- package/dist/core/subprocess.js +303 -0
- package/dist/core/text-truncation.js +9 -5
- package/dist/core/time.js +20 -0
- package/dist/core/type-presentation.js +130 -0
- package/dist/core/warn.js +0 -3
- package/dist/core/write-source.js +834 -118
- package/dist/indexer/bundle-identity-guard.js +92 -0
- package/dist/indexer/db/graph-db.js +1 -25
- package/dist/indexer/db/llm-cache.js +1 -1
- package/dist/indexer/ensure-index.js +30 -9
- package/dist/indexer/graph/graph-boost.js +9 -30
- package/dist/indexer/graph/graph-extraction.js +41 -27
- package/dist/indexer/graph/graph-types.js +4 -0
- package/dist/indexer/index-writer-lock.js +93 -49
- package/dist/indexer/index-written-assets.js +100 -53
- package/dist/indexer/indexer.js +746 -329
- package/dist/indexer/init.js +18 -25
- package/dist/indexer/installations.js +142 -0
- package/dist/indexer/passes/dir-staleness.js +18 -10
- package/dist/indexer/passes/memory-inference.js +25 -15
- package/dist/indexer/passes/metadata.js +412 -243
- package/dist/indexer/scan/doc-to-entry.js +160 -0
- package/dist/indexer/scan/drain-dir.js +134 -0
- package/dist/indexer/search/db-search.js +292 -108
- package/dist/indexer/search/fts-query.js +64 -0
- package/dist/indexer/search/ranking-contributors.js +145 -25
- package/dist/indexer/search/ranking-types.js +4 -0
- package/dist/indexer/search/ranking.js +28 -71
- package/dist/indexer/search/search-attribution.js +67 -0
- package/dist/indexer/search/search-fields.js +18 -3
- package/dist/indexer/search/search-hit-enrichers.js +30 -40
- package/dist/indexer/search/search-source.js +157 -111
- package/dist/indexer/search/semantic-status.js +4 -1
- package/dist/indexer/usage/usage-events.js +10 -30
- package/dist/indexer/walk/file-context.js +3 -45
- package/dist/indexer/walk/matchers.js +42 -34
- package/dist/indexer/walk/path-resolver.js +11 -5
- package/dist/indexer/walk/walker.js +42 -14
- package/dist/integrations/agent/builder-shared.js +7 -0
- package/dist/integrations/agent/builders.js +5 -56
- package/dist/integrations/agent/config.js +3 -143
- package/dist/integrations/agent/detect.js +17 -2
- package/dist/integrations/agent/engine-resolution.js +231 -0
- package/dist/integrations/agent/index.js +1 -2
- package/dist/integrations/agent/model-aliases.js +16 -2
- package/dist/integrations/agent/profiles.js +36 -62
- package/dist/integrations/agent/prompts.js +46 -18
- package/dist/integrations/agent/runner-dispatch.js +93 -4
- package/dist/integrations/agent/runner.js +76 -208
- package/dist/integrations/agent/spawn.js +88 -196
- package/dist/integrations/harnesses/aider/agent-builder.js +114 -0
- package/dist/integrations/harnesses/aider/index.js +48 -0
- package/dist/integrations/harnesses/aider/result-extractor.js +53 -0
- package/dist/integrations/harnesses/amazonq/agent-builder.js +147 -0
- package/dist/integrations/harnesses/amazonq/index.js +45 -0
- package/dist/integrations/harnesses/amazonq/result-extractor.js +48 -0
- package/dist/integrations/harnesses/claude/agent-builder.js +46 -8
- package/dist/integrations/harnesses/claude/config-import.js +1 -3
- package/dist/integrations/harnesses/claude/index.js +24 -35
- package/dist/integrations/harnesses/claude/result-extractor.js +52 -0
- package/dist/integrations/harnesses/claude/session-log.js +27 -75
- package/dist/integrations/harnesses/codex/agent-builder.js +138 -0
- package/dist/integrations/harnesses/codex/index.js +52 -0
- package/dist/integrations/harnesses/codex/result-extractor.js +73 -0
- package/dist/integrations/harnesses/copilot/agent-builder.js +122 -0
- package/dist/integrations/harnesses/copilot/index.js +48 -0
- package/dist/integrations/harnesses/copilot/result-extractor.js +151 -0
- package/dist/integrations/harnesses/gemini/agent-builder.js +120 -0
- package/dist/integrations/harnesses/gemini/index.js +48 -0
- package/dist/integrations/harnesses/gemini/result-extractor.js +121 -0
- package/dist/integrations/harnesses/ids.js +24 -0
- package/dist/integrations/harnesses/index.js +54 -34
- package/dist/integrations/harnesses/opencode/agent-builder.js +23 -5
- package/dist/integrations/harnesses/opencode/config-import.js +1 -3
- package/dist/integrations/harnesses/opencode/index.js +14 -32
- package/dist/integrations/harnesses/opencode/session-log.js +67 -125
- package/dist/integrations/harnesses/opencode-sdk/harness.js +51 -0
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +681 -108
- package/dist/integrations/harnesses/openhands/agent-builder.js +128 -0
- package/dist/integrations/harnesses/openhands/index.js +48 -0
- package/dist/integrations/harnesses/openhands/result-extractor.js +103 -0
- package/dist/integrations/harnesses/pi/agent-builder.js +97 -0
- package/dist/integrations/harnesses/pi/index.js +45 -0
- package/dist/integrations/harnesses/pi/result-extractor.js +135 -0
- package/dist/integrations/harnesses/shared.js +17 -0
- package/dist/integrations/harnesses/types.js +43 -32
- package/dist/integrations/lockfile.js +211 -24
- package/dist/integrations/session-logs/index.js +36 -39
- package/dist/integrations/session-logs/provider-base.js +113 -0
- package/dist/llm/client.js +182 -110
- package/dist/llm/embedders/deterministic.js +2 -2
- package/dist/llm/embedders/remote.js +21 -9
- package/dist/llm/feature-gate.js +17 -57
- package/dist/llm/graph-extract.js +12 -13
- package/dist/llm/index-passes.js +8 -42
- package/dist/llm/memory-infer.js +144 -1
- package/dist/llm/metadata-enhance.js +45 -30
- package/dist/llm/structured-call.js +16 -8
- package/dist/llm/usage-persist.js +30 -5
- package/dist/llm/usage-telemetry.js +59 -6
- package/dist/output/cli-hints.js +1 -2
- package/dist/output/command-registry.js +27 -0
- package/dist/output/context.js +22 -7
- package/dist/output/format-exempt.js +80 -0
- package/dist/output/generic-render.js +251 -0
- package/dist/output/html-render.js +11 -16
- package/dist/output/render-registry.js +57 -0
- package/dist/output/renderers.js +14 -279
- package/dist/output/shapes/curate.js +10 -1
- package/dist/output/shapes/events.js +12 -7
- package/dist/output/shapes/helpers.js +58 -84
- package/dist/output/shapes/passthrough.js +11 -39
- package/dist/output/shapes/proposal/producer.js +15 -7
- package/dist/output/shapes/registry.js +12 -6
- package/dist/output/shapes.js +0 -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 +562 -0
- package/dist/output/text/env.js +1 -3
- package/dist/output/text/events.js +8 -7
- package/dist/output/text/helpers.js +15 -1164
- package/dist/output/text/proposal/producer.js +4 -2
- package/dist/output/text/proposal-format.js +202 -0
- package/dist/output/text/registry-commands.js +1 -2
- package/dist/output/text/registry.js +12 -6
- package/dist/output/text/show-directives.js +117 -0
- package/dist/output/text/show-format.js +103 -0
- package/dist/output/text/sync.js +5 -0
- package/dist/output/text/workflow-format.js +332 -0
- package/dist/output/text/workflow.js +3 -2
- package/dist/output/text.js +10 -19
- 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 +15 -25
- package/dist/registry/resolve.js +43 -94
- package/dist/registry/semver.js +43 -0
- package/dist/runtime.js +81 -12
- package/dist/scripts/akm-migrate.js +35529 -0
- package/dist/setup/detect.js +5 -7
- package/dist/setup/detected-engines.js +136 -0
- package/dist/setup/engine-config.js +100 -0
- package/dist/setup/registry-stash-loader.js +3 -3
- package/dist/setup/semantic-assets.js +12 -9
- package/dist/setup/setup.js +444 -208
- package/dist/setup/steps/connection-shared.js +120 -0
- package/dist/setup/steps/connection.js +108 -305
- package/dist/setup/steps/platforms.js +13 -12
- package/dist/setup/steps/semantic.js +15 -3
- package/dist/setup/steps/sources.js +21 -15
- package/dist/setup/steps/stashdir.js +6 -4
- package/dist/setup/steps/tasks.js +236 -119
- package/dist/setup/steps.js +3 -2
- package/dist/sources/freshness.js +39 -0
- 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 +54 -56
- package/dist/sources/providers/git-stash.js +420 -91
- package/dist/sources/providers/git.js +2 -2
- package/dist/sources/providers/npm.js +16 -19
- package/dist/sources/providers/provider-utils.js +47 -22
- package/dist/sources/providers/sync-from-ref.js +3 -9
- package/dist/sources/providers/website.js +2 -2
- package/dist/sources/resolve.js +11 -10
- package/dist/sources/snapshot-fetchers/types.js +4 -0
- package/dist/sources/{website-ingest.js → snapshot-fetchers/website-ingest.js} +110 -41
- package/dist/storage/database.js +60 -4
- package/dist/storage/engines/sqlite-migrations.js +156 -5
- package/dist/storage/locations.js +1 -2
- package/dist/storage/repositories/canaries-repository.js +1 -1
- package/dist/storage/repositories/events-repository.js +51 -11
- package/dist/storage/repositories/improve-runs-repository.js +6 -32
- package/dist/storage/repositories/index-connection.js +79 -0
- package/dist/storage/repositories/index-db.js +4 -3
- package/dist/storage/repositories/index-entries-repository.js +863 -0
- package/dist/{indexer/db/entry-mapper.js → storage/repositories/index-entry-mapper.js} +19 -2
- package/dist/storage/repositories/index-entry-types.js +4 -0
- package/dist/storage/repositories/index-fts-repository.js +167 -0
- package/dist/storage/repositories/index-llm-cache-repository.js +108 -0
- package/dist/storage/repositories/index-meta-repository.js +49 -0
- package/dist/{indexer/db/schema.js → storage/repositories/index-schema.js} +226 -100
- package/dist/storage/repositories/index-sql.js +12 -0
- package/dist/storage/repositories/index-utility-repository.js +356 -0
- package/dist/storage/repositories/index-vec-repository.js +250 -0
- package/dist/storage/repositories/outcome-repository.js +119 -0
- package/dist/storage/repositories/proposals-repository.js +317 -75
- package/dist/storage/repositories/registry-cache.js +1 -1
- package/dist/storage/repositories/salience-repository.js +172 -0
- package/dist/storage/repositories/task-history-repository.js +110 -3
- package/dist/storage/repositories/workflow-runs-repository.js +240 -19
- package/dist/tasks/backends/cron.js +169 -46
- package/dist/tasks/backends/exec-utils.js +76 -3
- package/dist/tasks/backends/index.js +6 -9
- package/dist/tasks/backends/launchd.js +292 -55
- package/dist/tasks/backends/schtasks.js +557 -70
- package/dist/tasks/backends/types.js +4 -0
- package/dist/tasks/command-executable.js +93 -0
- package/dist/tasks/embedded.js +56 -38
- package/dist/tasks/parser.js +156 -64
- package/dist/tasks/resolve-akm-bin.js +144 -51
- package/dist/tasks/runner.js +377 -209
- package/dist/tasks/schedule.js +108 -19
- package/dist/tasks/scheduler-invocation.js +296 -0
- package/dist/tasks/schema.js +1 -1
- package/dist/tasks/task-id.js +35 -0
- package/dist/tasks/validator.js +30 -16
- package/dist/text-import-hook.mjs +1 -1
- package/dist/workflows/authoring/authoring.js +104 -43
- package/dist/workflows/authoring/scope-key.js +1 -1
- package/dist/workflows/cli.js +0 -16
- package/dist/workflows/concurrency-policy.js +15 -0
- package/dist/workflows/exec/brief.js +450 -0
- package/dist/workflows/exec/frozen-judge.js +47 -0
- package/dist/workflows/exec/native-executor.js +1038 -0
- package/dist/workflows/exec/param-secrets.js +115 -0
- package/dist/workflows/exec/report.js +1460 -0
- package/dist/workflows/exec/run-workflow.js +602 -0
- package/dist/workflows/exec/scheduler.js +71 -0
- package/dist/workflows/exec/step-work.js +1190 -0
- package/dist/workflows/exec/unit-writer.js +23 -0
- package/dist/workflows/exec/workflow-engine-gate.js +67 -0
- package/dist/workflows/exec/worktree.js +171 -0
- package/dist/workflows/ir/compile.js +246 -0
- package/dist/workflows/ir/freeze.js +233 -0
- package/dist/workflows/ir/params.js +54 -0
- package/dist/workflows/ir/plan-hash.js +68 -0
- package/dist/workflows/ir/schema.js +540 -0
- package/dist/workflows/parser.js +878 -304
- package/dist/workflows/program/expressions.js +181 -0
- package/dist/workflows/program/schema.js +51 -0
- package/dist/workflows/renderer.js +100 -45
- package/dist/workflows/resource-limits.js +22 -0
- package/dist/workflows/runtime/agent-identity.js +59 -14
- package/dist/workflows/runtime/checkin.js +1 -1
- package/dist/workflows/runtime/plan-classifier.js +131 -0
- package/dist/workflows/runtime/runs.js +376 -119
- package/dist/workflows/runtime/unit-checkin.js +45 -0
- package/dist/workflows/runtime/unit-phases.js +20 -0
- package/dist/workflows/runtime/workflow-asset-loader.js +241 -40
- package/dist/workflows/schema.js +1 -11
- package/dist/workflows/validate-summary.js +2 -3
- package/dist/workflows/validator.js +52 -30
- package/docs/README.md +42 -78
- package/docs/migration/README.md +8 -0
- package/docs/migration/release-notes/0.6.0.md +1 -1
- package/docs/migration/release-notes/0.7.0.md +9 -8
- package/docs/migration/release-notes/0.9.0.md +158 -14
- package/docs/migration/v0.7-to-v0.8.md +46 -47
- package/docs/migration/v0.8-to-v0.9.md +844 -0
- package/docs/reference/README.md +12 -0
- package/docs/reference/data-and-telemetry.md +333 -0
- package/package.json +21 -17
- package/schemas/akm-asset-envelope.json +93 -0
- package/schemas/akm-config.json +4636 -0
- package/schemas/akm-task.json +87 -0
- package/schemas/akm-workflow.json +373 -0
- package/dist/akm-migrate-storage +0 -38
- package/dist/assets/help/help-accept.md +0 -12
- package/dist/assets/help/help-improve.md +0 -84
- package/dist/assets/help/help-proposals.md +0 -17
- package/dist/assets/help/help-propose.md +0 -17
- package/dist/assets/help/help-reject.md +0 -11
- package/dist/assets/profiles/frequent.json +0 -13
- package/dist/assets/profiles/recombine-only.json +0 -21
- package/dist/assets/profiles/reflect-distill.json +0 -30
- package/dist/assets/profiles/synthesize.json +0 -15
- package/dist/assets/prompts/procedural-system.md +0 -44
- package/dist/assets/prompts/recombine-system.md +0 -40
- package/dist/assets/prompts/staleness-detect-system.md +0 -6
- package/dist/assets/tasks/core/backup.yml +0 -4
- package/dist/assets/tasks/graph-refresh-weekly.yml +0 -10
- package/dist/assets/templates/html/default.html +0 -78
- package/dist/assets/templates/html/vendor/echarts.min.js +0 -45
- package/dist/assets/wiki/index-template.md +0 -12
- package/dist/assets/wiki/ingest-workflow-template.md +0 -83
- package/dist/assets/wiki/log-template.md +0 -8
- package/dist/assets/wiki/schema-template.md +0 -61
- package/dist/cli/config-migrate.js +0 -150
- package/dist/cli/config-validate.js +0 -39
- package/dist/commands/graph/graph-cli.js +0 -124
- package/dist/commands/graph/graph.js +0 -487
- package/dist/commands/improve/calibration.js +0 -161
- package/dist/commands/improve/dedup.js +0 -482
- package/dist/commands/improve/extract-watch.js +0 -140
- package/dist/commands/improve/hot-probation.js +0 -45
- package/dist/commands/improve/improve-auto-accept.js +0 -276
- package/dist/commands/improve/improve-profiles.js +0 -168
- package/dist/commands/improve/procedural.js +0 -398
- package/dist/commands/improve/recombine.js +0 -818
- package/dist/commands/improve/schema-similarity-gate.js +0 -168
- package/dist/commands/lint/agent-linter.js +0 -44
- package/dist/commands/lint/command-linter.js +0 -44
- package/dist/commands/lint/default-linter.js +0 -16
- package/dist/commands/lint/fact-linter.js +0 -39
- package/dist/commands/lint/knowledge-linter.js +0 -16
- package/dist/commands/lint/memory-linter.js +0 -61
- package/dist/commands/lint/registry.js +0 -41
- package/dist/commands/lint/skill-linter.js +0 -45
- package/dist/commands/lint/task-linter.js +0 -50
- package/dist/commands/lint/workflow-linter.js +0 -81
- package/dist/commands/proposal/legacy-import.js +0 -115
- package/dist/commands/sources/history.js +0 -196
- package/dist/commands/tasks/default-tasks.js +0 -186
- package/dist/commands/wiki-cli.js +0 -292
- package/dist/core/asset/asset-registry.js +0 -76
- package/dist/core/asset/asset-spec.js +0 -259
- package/dist/core/config/config-migration.js +0 -602
- package/dist/core/deep-merge.js +0 -38
- package/dist/core/eval/rank-metrics.js +0 -113
- package/dist/core/ripgrep/install.js +0 -163
- package/dist/core/ripgrep/resolve.js +0 -81
- package/dist/indexer/db/db.js +0 -1413
- package/dist/indexer/manifest.js +0 -170
- package/dist/indexer/passes/metadata-contributors.js +0 -31
- package/dist/indexer/usage/unmigrated-vaults-guard.js +0 -94
- package/dist/integrations/harnesses/opencode-sdk/index.js +0 -49
- package/dist/llm/call-ai.js +0 -62
- package/dist/llm/memory-infer-impl.js +0 -138
- 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/output/text/wiki.js +0 -16
- package/dist/registry/build-index.js +0 -386
- package/dist/scripts/migrate-storage.js +0 -19108
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +0 -9411
- package/dist/scripts/migrations/v16-to-v17.js +0 -141
- package/dist/setup/legacy-config.js +0 -106
- package/dist/storage/repositories/consolidation-repository.js +0 -38
- package/dist/storage/repositories/recombine-repository.js +0 -213
- package/dist/wiki/wiki-templates.js +0 -15
- package/dist/wiki/wiki.js +0 -1012
- package/dist/workflows/db.js +0 -215
- package/docs/data-and-telemetry.md +0 -226
- /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/registry.js +0 -0
- /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/youtube.js +0 -0
|
@@ -11,11 +11,12 @@ export function shapeProposalProducerOutput(result, detail) {
|
|
|
11
11
|
...(result.ref !== undefined ? { ref: result.ref } : {}),
|
|
12
12
|
...(result.type !== undefined ? { type: result.type } : {}),
|
|
13
13
|
...(result.name !== undefined ? { name: result.name } : {}),
|
|
14
|
+
...(result.engine !== undefined ? { engine: result.engine } : {}),
|
|
14
15
|
...(result.exitCode !== undefined ? { exitCode: result.exitCode } : {}),
|
|
15
16
|
};
|
|
16
17
|
if (detail === "full") {
|
|
17
18
|
return {
|
|
18
|
-
schemaVersion: result.schemaVersion
|
|
19
|
+
schemaVersion: result.schemaVersion,
|
|
19
20
|
...base,
|
|
20
21
|
...(result.stdout !== undefined ? { stdout: result.stdout } : {}),
|
|
21
22
|
...(result.stderr !== undefined ? { stderr: result.stderr } : {}),
|
|
@@ -23,16 +24,16 @@ export function shapeProposalProducerOutput(result, detail) {
|
|
|
23
24
|
}
|
|
24
25
|
return base;
|
|
25
26
|
}
|
|
26
|
-
const proposal = result.proposal
|
|
27
|
+
const proposal = result.proposal;
|
|
27
28
|
const base = {
|
|
28
|
-
ok:
|
|
29
|
+
ok: result.ok,
|
|
29
30
|
ref: result.ref,
|
|
30
|
-
...(result.
|
|
31
|
+
...(result.engine !== undefined ? { engine: result.engine } : {}),
|
|
31
32
|
...(typeof result.durationMs === "number" ? { durationMs: result.durationMs } : {}),
|
|
32
33
|
proposal: shapeProposalEntry(proposal, detail === "brief" ? "normal" : detail),
|
|
33
34
|
};
|
|
34
35
|
if (detail === "full") {
|
|
35
|
-
return { schemaVersion: result.schemaVersion
|
|
36
|
+
return { schemaVersion: result.schemaVersion, ...base };
|
|
36
37
|
}
|
|
37
38
|
return base;
|
|
38
39
|
}
|
|
@@ -42,8 +43,7 @@ export function shapeProposalEntry(entry, detail) {
|
|
|
42
43
|
}
|
|
43
44
|
if (detail === "normal") {
|
|
44
45
|
// `confidence` and `gateDecision` (#577) explain why a proposal is pending,
|
|
45
|
-
// so they are projected at `normal` for `akm proposal list/show`
|
|
46
|
-
// optional and absent on legacy proposals.
|
|
46
|
+
// so they are projected at `normal` for `akm proposal list/show` when present.
|
|
47
47
|
return pickFields(entry, [
|
|
48
48
|
"id",
|
|
49
49
|
"ref",
|
|
@@ -73,74 +73,54 @@ export function shapeProposalEntry(entry, detail) {
|
|
|
73
73
|
]);
|
|
74
74
|
}
|
|
75
75
|
export function shapeProposalListOutput(result, detail) {
|
|
76
|
-
const proposals =
|
|
76
|
+
const proposals = result.proposals;
|
|
77
77
|
const shaped = proposals.map((p) => shapeProposalEntry(p, detail));
|
|
78
78
|
const base = {
|
|
79
|
-
totalCount: result.totalCount
|
|
79
|
+
totalCount: result.totalCount,
|
|
80
80
|
proposals: shaped,
|
|
81
81
|
};
|
|
82
82
|
if (detail === "full") {
|
|
83
|
-
return { schemaVersion: result.schemaVersion
|
|
83
|
+
return { schemaVersion: result.schemaVersion, ...base };
|
|
84
84
|
}
|
|
85
85
|
return base;
|
|
86
86
|
}
|
|
87
87
|
export function shapeProposalShowOutput(result, detail) {
|
|
88
|
-
const proposal = result.proposal
|
|
88
|
+
const proposal = result.proposal;
|
|
89
89
|
const validation = result.validation;
|
|
90
90
|
const base = {
|
|
91
91
|
proposal: shapeProposalEntry(proposal, detail === "brief" ? "normal" : detail),
|
|
92
92
|
...(validation ? { validation } : {}),
|
|
93
93
|
};
|
|
94
94
|
if (detail === "full") {
|
|
95
|
-
return { schemaVersion: result.schemaVersion
|
|
95
|
+
return { schemaVersion: result.schemaVersion, ...base };
|
|
96
96
|
}
|
|
97
97
|
return base;
|
|
98
98
|
}
|
|
99
99
|
export function shapeProposalAcceptOutput(result, detail) {
|
|
100
|
-
const proposal = result.proposal
|
|
100
|
+
const proposal = result.proposal;
|
|
101
101
|
const base = {
|
|
102
|
-
ok: result.ok
|
|
102
|
+
ok: result.ok,
|
|
103
103
|
id: result.id,
|
|
104
104
|
ref: result.ref,
|
|
105
105
|
assetPath: result.assetPath,
|
|
106
106
|
proposal: shapeProposalEntry(proposal, detail === "brief" ? "normal" : detail),
|
|
107
107
|
};
|
|
108
108
|
if (detail === "full") {
|
|
109
|
-
return { schemaVersion: result.schemaVersion
|
|
109
|
+
return { schemaVersion: result.schemaVersion, ...base };
|
|
110
110
|
}
|
|
111
111
|
return base;
|
|
112
112
|
}
|
|
113
113
|
export function shapeProposalRejectOutput(result, detail) {
|
|
114
|
-
const proposal = result.proposal
|
|
114
|
+
const proposal = result.proposal;
|
|
115
115
|
const base = {
|
|
116
|
-
ok: result.ok
|
|
116
|
+
ok: result.ok,
|
|
117
117
|
id: result.id,
|
|
118
118
|
ref: result.ref,
|
|
119
119
|
...(result.reason !== undefined ? { reason: result.reason } : {}),
|
|
120
120
|
proposal: shapeProposalEntry(proposal, detail === "brief" ? "normal" : detail),
|
|
121
121
|
};
|
|
122
122
|
if (detail === "full") {
|
|
123
|
-
return { schemaVersion: result.schemaVersion
|
|
124
|
-
}
|
|
125
|
-
return base;
|
|
126
|
-
}
|
|
127
|
-
export function shapeDistillOutput(result, detail) {
|
|
128
|
-
const proposal = result.proposal;
|
|
129
|
-
if (detail === "brief") {
|
|
130
|
-
return pickFields(result, ["ok", "outcome", "inputRef", "lessonRef", "proposalId", "message"]);
|
|
131
|
-
}
|
|
132
|
-
const base = {
|
|
133
|
-
ok: result.ok ?? true,
|
|
134
|
-
outcome: result.outcome,
|
|
135
|
-
inputRef: result.inputRef,
|
|
136
|
-
lessonRef: result.lessonRef,
|
|
137
|
-
...(result.proposalId !== undefined ? { proposalId: result.proposalId } : {}),
|
|
138
|
-
...(result.message !== undefined ? { message: result.message } : {}),
|
|
139
|
-
...(Array.isArray(result.findings) && result.findings.length > 0 ? { findings: result.findings } : {}),
|
|
140
|
-
...(proposal ? { proposal: shapeProposalEntry(proposal, detail) } : {}),
|
|
141
|
-
};
|
|
142
|
-
if (detail === "full") {
|
|
143
|
-
return { schemaVersion: result.schemaVersion ?? 1, ...base };
|
|
123
|
+
return { schemaVersion: result.schemaVersion, ...base };
|
|
144
124
|
}
|
|
145
125
|
return base;
|
|
146
126
|
}
|
|
@@ -153,7 +133,7 @@ export function shapeProposalDiffOutput(result, detail) {
|
|
|
153
133
|
...(result.targetPath !== undefined ? { targetPath: result.targetPath } : {}),
|
|
154
134
|
};
|
|
155
135
|
if (detail === "full") {
|
|
156
|
-
return { schemaVersion: result.schemaVersion
|
|
136
|
+
return { schemaVersion: result.schemaVersion, ...base };
|
|
157
137
|
}
|
|
158
138
|
return base;
|
|
159
139
|
}
|
|
@@ -163,8 +143,14 @@ export function shapeEventsOutput(result, detail) {
|
|
|
163
143
|
const base = {
|
|
164
144
|
...(result.ref !== undefined ? { ref: result.ref } : {}),
|
|
165
145
|
...(result.type !== undefined ? { type: result.type } : {}),
|
|
146
|
+
...(result.run !== undefined ? { run: result.run } : {}),
|
|
166
147
|
...(result.since !== undefined ? { since: result.since } : {}),
|
|
167
148
|
...(typeof result.sinceOffset === "number" ? { sinceOffset: result.sinceOffset } : {}),
|
|
149
|
+
// D-38: echo `--limit` through the shaped envelope too — `akmEventsList`
|
|
150
|
+
// already conditionally includes it in its raw result (see
|
|
151
|
+
// src/commands/events.ts) only when the caller passed it, so this mirrors
|
|
152
|
+
// that same "present only if requested" convention.
|
|
153
|
+
...(typeof result.limit === "number" ? { limit: result.limit } : {}),
|
|
168
154
|
totalCount: result.totalCount ?? shapedEvents.length,
|
|
169
155
|
events: shapedEvents,
|
|
170
156
|
};
|
|
@@ -189,45 +175,6 @@ export function shapeEventEntry(entry, detail) {
|
|
|
189
175
|
// full: project everything the reader emits.
|
|
190
176
|
return pickFields(entry, ["id", "schemaVersion", "eventType", "ref", "ts", "metadata"]);
|
|
191
177
|
}
|
|
192
|
-
export function shapeHistoryOutput(result, detail) {
|
|
193
|
-
const entries = Array.isArray(result.entries) ? result.entries : [];
|
|
194
|
-
const shapedEntries = entries.map((entry) => shapeHistoryEntry(entry, detail));
|
|
195
|
-
if (detail === "full") {
|
|
196
|
-
return {
|
|
197
|
-
schemaVersion: result.schemaVersion ?? 1,
|
|
198
|
-
...(result.ref !== undefined ? { ref: result.ref } : {}),
|
|
199
|
-
...(result.since !== undefined ? { since: result.since } : {}),
|
|
200
|
-
totalCount: result.totalCount ?? shapedEntries.length,
|
|
201
|
-
entries: shapedEntries,
|
|
202
|
-
// `sources` lists the event sources included in this response.
|
|
203
|
-
// Always contains "usage_events"; also "events.jsonl" when
|
|
204
|
-
// --include-proposals was specified.
|
|
205
|
-
...(Array.isArray(result.sources) ? { sources: result.sources } : {}),
|
|
206
|
-
...(Array.isArray(result.warnings) && result.warnings.length > 0 ? { warnings: result.warnings } : {}),
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
return {
|
|
210
|
-
...(result.ref !== undefined ? { ref: result.ref } : {}),
|
|
211
|
-
...(result.since !== undefined ? { since: result.since } : {}),
|
|
212
|
-
totalCount: result.totalCount ?? shapedEntries.length,
|
|
213
|
-
entries: shapedEntries,
|
|
214
|
-
...(Array.isArray(result.sources) ? { sources: result.sources } : {}),
|
|
215
|
-
...(Array.isArray(result.warnings) && result.warnings.length > 0 ? { warnings: result.warnings } : {}),
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
export function shapeHistoryEntry(entry, detail) {
|
|
219
|
-
if (detail === "brief") {
|
|
220
|
-
// signal is load-bearing for feedback rows (positive/negative) so we
|
|
221
|
-
// project it even at brief — without it the entry is ambiguous.
|
|
222
|
-
// source lets callers verify filter correctness (e.g. --source user).
|
|
223
|
-
return pickFields(entry, ["eventType", "ref", "signal", "source", "createdAt"]);
|
|
224
|
-
}
|
|
225
|
-
if (detail === "normal") {
|
|
226
|
-
return pickFields(entry, ["eventType", "ref", "signal", "source", "query", "createdAt"]);
|
|
227
|
-
}
|
|
228
|
-
// full: return everything the reader emits.
|
|
229
|
-
return pickFields(entry, ["id", "eventType", "ref", "entryId", "query", "signal", "source", "metadata", "createdAt"]);
|
|
230
|
-
}
|
|
231
178
|
export function shapeSearchOutput(result, detail, shape = "human") {
|
|
232
179
|
const forAgent = shape === "agent";
|
|
233
180
|
const hits = Array.isArray(result.hits) ? result.hits : [];
|
|
@@ -248,11 +195,10 @@ export function shapeSearchOutput(result, detail, shape = "human") {
|
|
|
248
195
|
if (detail === "full") {
|
|
249
196
|
return {
|
|
250
197
|
schemaVersion: result.schemaVersion,
|
|
251
|
-
|
|
198
|
+
bundleDir: result.bundleDir,
|
|
252
199
|
source: result.source,
|
|
253
200
|
hits: shapedHits,
|
|
254
201
|
...(shapedRegistryHits.length > 0 ? { registryHits: shapedRegistryHits } : {}),
|
|
255
|
-
...(result.semanticSearch ? { semanticSearch: result.semanticSearch } : {}),
|
|
256
202
|
...(result.tip ? { tip: result.tip } : {}),
|
|
257
203
|
...(result.warnings ? { warnings: result.warnings } : {}),
|
|
258
204
|
...(result.timing ? { timing: result.timing } : {}),
|
|
@@ -330,7 +276,21 @@ export function shapeSearchHit(hit, detail) {
|
|
|
330
276
|
}
|
|
331
277
|
/** Agent-optimized search hit: only fields an LLM agent needs to decide and act */
|
|
332
278
|
export function shapeSearchHitForAgent(hit) {
|
|
333
|
-
const picked = pickFields(hit, [
|
|
279
|
+
const picked = pickFields(hit, [
|
|
280
|
+
"name",
|
|
281
|
+
"ref",
|
|
282
|
+
"type",
|
|
283
|
+
"path",
|
|
284
|
+
"editable",
|
|
285
|
+
"editHint",
|
|
286
|
+
"description",
|
|
287
|
+
"action",
|
|
288
|
+
"score",
|
|
289
|
+
"estimatedTokens",
|
|
290
|
+
"keys",
|
|
291
|
+
]);
|
|
292
|
+
if (picked.editable !== false)
|
|
293
|
+
delete picked.editHint;
|
|
334
294
|
return capDescription(picked, NORMAL_DESCRIPTION_LIMIT);
|
|
335
295
|
}
|
|
336
296
|
export function capDescription(hit, limit) {
|
|
@@ -349,9 +309,13 @@ export function truncateDescription(description, limit) {
|
|
|
349
309
|
}
|
|
350
310
|
export function shapeShowOutput(result, detail, shape = "human") {
|
|
351
311
|
if (shape === "agent") {
|
|
352
|
-
|
|
312
|
+
const shaped = pickFields(result, [
|
|
353
313
|
"type",
|
|
354
314
|
"name",
|
|
315
|
+
"ref",
|
|
316
|
+
"path",
|
|
317
|
+
"editable",
|
|
318
|
+
"editHint",
|
|
355
319
|
"description",
|
|
356
320
|
"action",
|
|
357
321
|
"content",
|
|
@@ -371,11 +335,18 @@ export function shapeShowOutput(result, detail, shape = "human") {
|
|
|
371
335
|
"keys",
|
|
372
336
|
"related",
|
|
373
337
|
]);
|
|
338
|
+
if (shaped.editable !== false)
|
|
339
|
+
delete shaped.editHint;
|
|
340
|
+
return shaped;
|
|
374
341
|
}
|
|
375
342
|
if (shape === "summary") {
|
|
376
343
|
return pickFields(result, [
|
|
377
344
|
"type",
|
|
378
345
|
"name",
|
|
346
|
+
// ref is present on every show shape (human/summary/agent) — it is the
|
|
347
|
+
// canonical identity of the asset, not an agent-only convenience field
|
|
348
|
+
// (R-020).
|
|
349
|
+
"ref",
|
|
379
350
|
"description",
|
|
380
351
|
"tags",
|
|
381
352
|
"parameters",
|
|
@@ -390,6 +361,8 @@ export function shapeShowOutput(result, detail, shape = "human") {
|
|
|
390
361
|
const base = pickFields(result, [
|
|
391
362
|
"type",
|
|
392
363
|
"name",
|
|
364
|
+
// ref is always projected, same as path/editable below (R-020).
|
|
365
|
+
"ref",
|
|
393
366
|
"origin",
|
|
394
367
|
"action",
|
|
395
368
|
"description",
|
|
@@ -410,8 +383,9 @@ export function shapeShowOutput(result, detail, shape = "human") {
|
|
|
410
383
|
"activeRun",
|
|
411
384
|
"keys",
|
|
412
385
|
"related",
|
|
413
|
-
// path and editable are always projected
|
|
414
|
-
//
|
|
386
|
+
// ref, path, and editable are always projected — at every --detail level,
|
|
387
|
+
// not just --detail full — so JSON consumers can locate and edit the
|
|
388
|
+
// asset without needing --detail full (QA #7 / D-14).
|
|
415
389
|
"path",
|
|
416
390
|
"editable",
|
|
417
391
|
]);
|
|
@@ -21,33 +21,20 @@ function makeStampHandler(command) {
|
|
|
21
21
|
const PASSTHROUGH_COMMANDS = [
|
|
22
22
|
"add",
|
|
23
23
|
"agent-result",
|
|
24
|
+
"bundle-create",
|
|
25
|
+
"bundle-show",
|
|
24
26
|
"clone",
|
|
25
27
|
"config",
|
|
26
|
-
"disable",
|
|
27
|
-
"enable",
|
|
28
28
|
"env-create",
|
|
29
29
|
"env-export",
|
|
30
30
|
"env-remove",
|
|
31
|
-
"env-set",
|
|
32
|
-
"env-unset",
|
|
33
31
|
"feedback",
|
|
34
|
-
"graph-entities",
|
|
35
|
-
"graph-entity",
|
|
36
|
-
"graph-export",
|
|
37
|
-
"graph-orphans",
|
|
38
|
-
"graph-related",
|
|
39
|
-
"graph-relations",
|
|
40
|
-
"graph-summary",
|
|
41
|
-
"graph-update",
|
|
42
32
|
"extract",
|
|
43
33
|
"health",
|
|
44
34
|
"improve",
|
|
45
|
-
"improve-canary",
|
|
46
|
-
"lessons-coverage",
|
|
47
35
|
"import",
|
|
48
36
|
"index",
|
|
49
37
|
"info",
|
|
50
|
-
"init",
|
|
51
38
|
"lint",
|
|
52
39
|
"list",
|
|
53
40
|
"proposal-accept-batch",
|
|
@@ -55,47 +42,32 @@ const PASSTHROUGH_COMMANDS = [
|
|
|
55
42
|
"proposal-reject-batch",
|
|
56
43
|
"proposal-revert",
|
|
57
44
|
"registry-add",
|
|
58
|
-
"registry-build-index",
|
|
59
45
|
"registry-list",
|
|
60
46
|
"registry-remove",
|
|
61
47
|
"remember",
|
|
62
48
|
"remove",
|
|
63
|
-
"save",
|
|
64
49
|
"secret-set",
|
|
65
|
-
"secret-remove",
|
|
66
50
|
"setup",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"tasks-list",
|
|
74
|
-
"tasks-remove",
|
|
75
|
-
"tasks-run",
|
|
76
|
-
"tasks-show",
|
|
77
|
-
"tasks-sync",
|
|
51
|
+
"sync",
|
|
52
|
+
"task-add",
|
|
53
|
+
"task-doctor",
|
|
54
|
+
"task-history",
|
|
55
|
+
"task-run",
|
|
56
|
+
"task-sync",
|
|
78
57
|
"update",
|
|
79
58
|
"upgrade",
|
|
80
|
-
"wiki-create",
|
|
81
|
-
"wiki-ingest",
|
|
82
|
-
"wiki-lint",
|
|
83
|
-
"wiki-list",
|
|
84
|
-
"wiki-pages",
|
|
85
|
-
"wiki-register",
|
|
86
|
-
"wiki-remove",
|
|
87
|
-
"wiki-show",
|
|
88
|
-
"wiki-stash",
|
|
89
59
|
"workflow-abandon",
|
|
60
|
+
"workflow-brief",
|
|
90
61
|
"workflow-complete",
|
|
91
62
|
"workflow-complete-rejected",
|
|
92
63
|
"workflow-create",
|
|
93
64
|
"workflow-list",
|
|
94
65
|
"workflow-next",
|
|
66
|
+
"workflow-report",
|
|
95
67
|
"workflow-resume",
|
|
68
|
+
"workflow-run",
|
|
96
69
|
"workflow-start",
|
|
97
70
|
"workflow-status",
|
|
98
|
-
"workflow-validate",
|
|
99
71
|
];
|
|
100
72
|
export const passthroughShapes = PASSTHROUGH_COMMANDS.map((command) => ({
|
|
101
73
|
command,
|
|
@@ -1,12 +1,20 @@
|
|
|
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
|
-
// Output shape registration for `akm
|
|
5
|
-
//
|
|
6
|
-
//
|
|
4
|
+
// Output shape registration for `akm proposal new` (#226; formerly the
|
|
5
|
+
// top-level `akm propose`, moved under `proposal` in the 0.9 CLI overhaul, S8).
|
|
6
|
+
// Shares the proposal-producer envelope shape (success carries a proposal
|
|
7
|
+
// entry; failure carries an AgentFailureReason discriminant) with the
|
|
8
|
+
// internal `akmReflect` result shape — but `reflect` has no standalone CLI
|
|
9
|
+
// verb and never reaches the output() chokepoint (reflect.ts is called
|
|
10
|
+
// directly by the improve loop, not through this registry), so only
|
|
11
|
+
// `proposal new` is registered here.
|
|
12
|
+
//
|
|
13
|
+
// Deliberately phrased WITHOUT the literal call spelling: the registry
|
|
14
|
+
// completeness scanner (tests/integration/output-shape-registry-completeness.ts)
|
|
15
|
+
// greps sources for that exact pattern to find commands needing a shape, and
|
|
16
|
+
// it does not skip comments — so writing the spelling here to explain the
|
|
17
|
+
// absence would re-summon the very registration this comment says is gone.
|
|
7
18
|
import { shapeProposalProducerOutput } from "../helpers.js";
|
|
8
19
|
const handler = (result, detail) => shapeProposalProducerOutput(result, detail);
|
|
9
|
-
export const proposalProducerShapes = [
|
|
10
|
-
{ command: "reflect", handler },
|
|
11
|
-
{ command: "propose", handler },
|
|
12
|
-
];
|
|
20
|
+
export const proposalProducerShapes = [{ command: "proposal-new", handler }];
|
|
@@ -1,7 +1,15 @@
|
|
|
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
|
+
* Output shape registry.
|
|
6
|
+
*
|
|
7
|
+
* Separated from `shapes.ts` so per-command shape modules can import
|
|
8
|
+
* `registerOutputShape` without creating a circular dependency back into
|
|
9
|
+
* the main shapes module.
|
|
10
|
+
*/
|
|
11
|
+
import { createCommandRegistry } from "../command-registry.js";
|
|
12
|
+
const OUTPUT_SHAPE_REGISTRY = createCommandRegistry();
|
|
5
13
|
/**
|
|
6
14
|
* Register an output shape handler for a command name.
|
|
7
15
|
*
|
|
@@ -13,7 +21,7 @@ const OUTPUT_SHAPE_REGISTRY = new Map();
|
|
|
13
21
|
* ```
|
|
14
22
|
*/
|
|
15
23
|
export function registerOutputShape(command, handler) {
|
|
16
|
-
OUTPUT_SHAPE_REGISTRY.
|
|
24
|
+
OUTPUT_SHAPE_REGISTRY.register(command, handler);
|
|
17
25
|
}
|
|
18
26
|
/**
|
|
19
27
|
* Register a batch of {@link OutputShapeEntry} definitions in iteration order.
|
|
@@ -23,15 +31,13 @@ export function registerOutputShape(command, handler) {
|
|
|
23
31
|
* with no reliance on module import order.
|
|
24
32
|
*/
|
|
25
33
|
export function registerOutputShapes(entries) {
|
|
26
|
-
|
|
27
|
-
OUTPUT_SHAPE_REGISTRY.set(command, handler);
|
|
28
|
-
}
|
|
34
|
+
OUTPUT_SHAPE_REGISTRY.registerAll(entries);
|
|
29
35
|
}
|
|
30
36
|
/**
|
|
31
37
|
* Remove a previously-registered output shape. Test-only utility.
|
|
32
38
|
*/
|
|
33
39
|
export function deregisterOutputShape(command) {
|
|
34
|
-
OUTPUT_SHAPE_REGISTRY.
|
|
40
|
+
OUTPUT_SHAPE_REGISTRY.deregister(command);
|
|
35
41
|
}
|
|
36
42
|
/**
|
|
37
43
|
* Look up a registered output shape handler by command name.
|
package/dist/output/shapes.js
CHANGED
|
@@ -19,10 +19,8 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { UsageError } from "../core/errors.js";
|
|
21
21
|
import { curateShapes } from "./shapes/curate.js";
|
|
22
|
-
import { distillShapes } from "./shapes/distill.js";
|
|
23
22
|
import { envListShapes } from "./shapes/env-list.js";
|
|
24
23
|
import { eventsShapes } from "./shapes/events.js";
|
|
25
|
-
import { historyShapes } from "./shapes/history.js";
|
|
26
24
|
import { passthroughShapes } from "./shapes/passthrough.js";
|
|
27
25
|
import { proposalAcceptShapes } from "./shapes/proposal/accept.js";
|
|
28
26
|
import { proposalDiffShapes } from "./shapes/proposal/diff.js";
|
|
@@ -35,11 +33,6 @@ import { registrySearchShapes } from "./shapes/registry-search.js";
|
|
|
35
33
|
import { searchShapes } from "./shapes/search.js";
|
|
36
34
|
import { secretListShapes } from "./shapes/secret-list.js";
|
|
37
35
|
import { showShapes } from "./shapes/show.js";
|
|
38
|
-
// Re-export helpers so existing imports from `shapes.ts` keep working.
|
|
39
|
-
export { capDescription, NORMAL_DESCRIPTION_LIMIT, pickFields, shapeAssetHit, shapeDistillOutput, shapeEventEntry, shapeEventsOutput, shapeHistoryEntry, shapeHistoryOutput, shapeProposalAcceptOutput, shapeProposalDiffOutput, shapeProposalEntry, shapeProposalListOutput, shapeProposalProducerOutput, shapeProposalRejectOutput, shapeProposalShowOutput, shapeRegistrySearchOutput, shapeSearchHit, shapeSearchHitForAgent, shapeSearchOutput, shapeShowOutput, truncateDescription, } from "./shapes/helpers.js";
|
|
40
|
-
// Re-export registry API so callers can use this module as the single entry
|
|
41
|
-
// point (backward compat).
|
|
42
|
-
export { deregisterOutputShape, registerOutputShape } from "./shapes/registry.js";
|
|
43
36
|
// ── Explicit built-in shape assembly ──────────────────────────────────────────
|
|
44
37
|
// Each entry below is a pure exported `OutputShapeEntry[]` from a per-command
|
|
45
38
|
// module. The set is registered ONCE, deterministically, with no reliance on
|
|
@@ -51,7 +44,6 @@ const BUILT_IN_OUTPUT_SHAPES = [
|
|
|
51
44
|
...curateShapes,
|
|
52
45
|
...registrySearchShapes,
|
|
53
46
|
...showShapes,
|
|
54
|
-
...historyShapes,
|
|
55
47
|
...eventsShapes,
|
|
56
48
|
...proposalListShapes,
|
|
57
49
|
...proposalShowShapes,
|
|
@@ -59,7 +51,6 @@ const BUILT_IN_OUTPUT_SHAPES = [
|
|
|
59
51
|
...proposalRejectShapes,
|
|
60
52
|
...proposalDiffShapes,
|
|
61
53
|
...proposalProducerShapes,
|
|
62
|
-
...distillShapes,
|
|
63
54
|
...envListShapes,
|
|
64
55
|
...secretListShapes,
|
|
65
56
|
// Passthrough commands are registered last so an explicit dedicated handler
|
|
@@ -2,4 +2,6 @@
|
|
|
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
|
import { formatInitPlain } from "./helpers.js";
|
|
5
|
-
export const
|
|
5
|
+
export const bundleCreateFormatters = [
|
|
6
|
+
{ command: "bundle-create", handler: (r) => formatInitPlain(r) },
|
|
7
|
+
];
|
|
@@ -0,0 +1,7 @@
|
|
|
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 { formatBundleShowPlain } from "./helpers.js";
|
|
5
|
+
export const bundleShowFormatters = [
|
|
6
|
+
{ command: "bundle-show", handler: (r) => formatBundleShowPlain(r) },
|
|
7
|
+
];
|