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
|
@@ -2,36 +2,70 @@
|
|
|
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
|
-
* `akm
|
|
6
|
-
* God Module shrinks; the `main.subCommands.
|
|
5
|
+
* `akm task` command family. Extracted verbatim from src/cli.ts (WS6) so the
|
|
6
|
+
* God Module shrinks; the `main.subCommands.task` key and every subcommand's
|
|
7
7
|
* args/output shape are byte-identical. Handlers whose body is a plain
|
|
8
8
|
* `runWithJsonErrors(...) + output(...)` are migrated to `defineJsonCommand`,
|
|
9
9
|
* which emits the same JSON envelope (stdout/stderr/exit-code) as the inline
|
|
10
|
-
* form. `
|
|
11
|
-
* task's own exit code via `process.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* form. `task run` keeps a plain `defineCommand` because it forwards the
|
|
11
|
+
* task's own exit code via `process.exitCode` (F4: not `process.exit()` —
|
|
12
|
+
* that would skip pending cleanup).
|
|
13
|
+
*
|
|
14
|
+
* 0.9 CLI overhaul (S6): the group was renamed from the plural `tasks` to the
|
|
15
|
+
* singular `task` — hard break, no alias. `init`/`enable`/`disable` are
|
|
16
|
+
* dropped: the default improve-schedule task set now ships as embedded
|
|
17
|
+
* templates under src/assets/tasks/improve/ (see src/tasks/embedded.ts),
|
|
18
|
+
* seeded through the interactive `akm setup` task-review step instead of a
|
|
19
|
+
* separate CLI command, and toggling a task's enabled state is a file edit +
|
|
20
|
+
* `task sync` (tasks-sync.test.ts already proves the flip path). Every
|
|
21
|
+
* subcommand (`add`/`run`/`history`/`sync`) shares one `--bundle <bundle>`
|
|
22
|
+
* axis (S8.4 ratified `task add`'s `--target` → `--bundle`; a later Gate-1
|
|
23
|
+
* fix reverted it to match `import`/`proposal accept`, splitting the
|
|
24
|
+
* write-target axis three-vs-one against `remember`/`clone`/`improve` — the
|
|
25
|
+
* final review re-applied the ratified rename here).
|
|
14
26
|
*/
|
|
15
27
|
import { defineCommand } from "citty";
|
|
28
|
+
import { getParsedInvocation } from "../../cli/invocation.js";
|
|
16
29
|
import { parsePositiveIntFlag } from "../../cli/parse-args.js";
|
|
17
|
-
import { defineGroupCommand, defineJsonCommand, output, runWithJsonErrors } from "../../cli/shared.js";
|
|
18
|
-
import {
|
|
19
|
-
import { akmTasksAdd, akmTasksDoctor, akmTasksHistory,
|
|
30
|
+
import { defineGroupCommand, defineJsonCommand, GLOBAL_OUTPUT_ARGS, output, runWithJsonErrors } from "../../cli/shared.js";
|
|
31
|
+
import { UsageError } from "../../core/errors.js";
|
|
32
|
+
import { akmTasksAdd, akmTasksDoctor, akmTasksHistory, akmTasksRun, akmTasksSync } from "./tasks.js";
|
|
33
|
+
/** Shared `--bundle <bundle>` arg wired onto every task subcommand. */
|
|
34
|
+
const bundleArg = {
|
|
35
|
+
bundle: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Bundle to operate on (defaults to the primary/default bundle)",
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* `--target` was renamed to `--bundle` on `task` in 0.9 (S8.4). citty is
|
|
42
|
+
* non-strict, so the retired spelling is silently absorbed rather than
|
|
43
|
+
* rejected — reject it explicitly instead (mirrors improve-cli.ts /
|
|
44
|
+
* remember-cli.ts).
|
|
45
|
+
*/
|
|
46
|
+
function rejectRetiredTaskTargetFlag() {
|
|
47
|
+
if (!getParsedInvocation().hasFlag("--target"))
|
|
48
|
+
return;
|
|
49
|
+
throw new UsageError("`akm task --target` was renamed to `--bundle` in 0.9. Use `--bundle <name>` instead.", "INVALID_FLAG_VALUE");
|
|
50
|
+
}
|
|
20
51
|
const tasksAddCommand = defineJsonCommand({
|
|
21
52
|
meta: { name: "add", description: "Register a new scheduled task and install it in the OS scheduler" },
|
|
22
53
|
args: {
|
|
23
54
|
id: { type: "positional", description: "Task id (used as filename and scheduler entry)", required: true },
|
|
24
55
|
schedule: { type: "string", description: 'Cron-style schedule, e.g. "0 9 * * *" or "@daily"', required: true },
|
|
25
|
-
|
|
56
|
+
...bundleArg,
|
|
57
|
+
workflow: { type: "string", description: "Workflow ref to invoke (e.g. workflows/my-flow)" },
|
|
26
58
|
prompt: {
|
|
27
59
|
type: "string",
|
|
28
|
-
description: "Prompt for the configured agent harness — inline text, an asset ref like
|
|
60
|
+
description: "Prompt for the configured agent harness — inline text, an asset ref like agents/foo, or ./path.md",
|
|
29
61
|
},
|
|
30
62
|
command: {
|
|
31
63
|
type: "string",
|
|
32
|
-
description: 'Shell command to run on the schedule (no AI agent), e.g. "akm improve --
|
|
64
|
+
description: 'Shell command to run on the schedule (no AI agent), e.g. "akm improve --strategy frequent". Split on whitespace; quote the whole flag value.',
|
|
33
65
|
},
|
|
34
|
-
|
|
66
|
+
engine: { type: "string", description: "Engine to use for prompt targets (default: defaults.engine)" },
|
|
67
|
+
model: { type: "string", description: "Model override for prompt targets" },
|
|
68
|
+
"timeout-ms": { type: "string", description: "Positive timeout in milliseconds for prompt or command targets" },
|
|
35
69
|
params: { type: "string", description: "Workflow params as a JSON object" },
|
|
36
70
|
name: { type: "string", description: "Human-readable name for the task" },
|
|
37
71
|
"when-to-use": { type: "string", description: "Guidance on when this task runs or should be used" },
|
|
@@ -39,15 +73,24 @@ const tasksAddCommand = defineJsonCommand({
|
|
|
39
73
|
tags: { type: "string", description: "Comma-separated tags" },
|
|
40
74
|
disabled: { type: "boolean", description: "Register but leave disabled in the OS scheduler", default: false },
|
|
41
75
|
force: { type: "boolean", description: "Overwrite an existing task with the same id", default: false },
|
|
76
|
+
rebind: {
|
|
77
|
+
type: "boolean",
|
|
78
|
+
description: "Explicitly permit scheduler creation from this ineligible local invocation",
|
|
79
|
+
default: false,
|
|
80
|
+
},
|
|
42
81
|
},
|
|
43
82
|
async run({ args }) {
|
|
83
|
+
rejectRetiredTaskTargetFlag();
|
|
44
84
|
const result = await akmTasksAdd({
|
|
45
85
|
id: args.id,
|
|
46
86
|
schedule: args.schedule,
|
|
87
|
+
target: args.bundle,
|
|
47
88
|
workflow: args.workflow,
|
|
48
89
|
prompt: args.prompt,
|
|
49
90
|
command: args.command,
|
|
50
|
-
|
|
91
|
+
engine: args.engine,
|
|
92
|
+
model: args.model,
|
|
93
|
+
timeoutMs: args["timeout-ms"] === undefined ? undefined : parsePositiveIntFlag(args["timeout-ms"]),
|
|
51
94
|
params: args.params,
|
|
52
95
|
name: args.name,
|
|
53
96
|
when_to_use: args["when-to-use"],
|
|
@@ -60,86 +103,39 @@ const tasksAddCommand = defineJsonCommand({
|
|
|
60
103
|
: undefined,
|
|
61
104
|
disabled: args.disabled === true,
|
|
62
105
|
force: args.force === true,
|
|
106
|
+
rebind: args.rebind === true,
|
|
63
107
|
});
|
|
64
|
-
output("
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
const tasksInitCommand = defineJsonCommand({
|
|
68
|
-
meta: {
|
|
69
|
-
name: "init",
|
|
70
|
-
description: "Idempotently register the default improve task set (skips when CI=true)",
|
|
71
|
-
},
|
|
72
|
-
args: {
|
|
73
|
-
server: {
|
|
74
|
-
type: "boolean",
|
|
75
|
-
description: "Treat this as a server install (enables the nightly sweep). Defaults to platform detection.",
|
|
76
|
-
},
|
|
77
|
-
laptop: {
|
|
78
|
-
type: "boolean",
|
|
79
|
-
description: "Treat this as a laptop install (leaves the nightly sweep disabled).",
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
async run({ args }) {
|
|
83
|
-
const serverInstall = args.server === true ? true : args.laptop === true ? false : detectServerDefault();
|
|
84
|
-
const result = await registerDefaultTasks({ serverInstall });
|
|
85
|
-
output("tasks-init", result);
|
|
86
|
-
},
|
|
87
|
-
});
|
|
88
|
-
const tasksListCommand = defineJsonCommand({
|
|
89
|
-
meta: { name: "list", description: "List scheduled tasks in the stash" },
|
|
90
|
-
async run() {
|
|
91
|
-
const result = await akmTasksList();
|
|
92
|
-
output("tasks-list", result);
|
|
108
|
+
output("task-add", result);
|
|
93
109
|
},
|
|
94
110
|
});
|
|
95
|
-
const tasksShowCommand = defineJsonCommand({
|
|
96
|
-
meta: { name: "show", description: "Show a parsed task definition" },
|
|
97
|
-
args: { id: { type: "positional", description: "Task id or task:<id>", required: true } },
|
|
98
|
-
async run({ args }) {
|
|
99
|
-
const { id } = parseTaskRef(args.id);
|
|
100
|
-
const result = await akmTasksShow(id);
|
|
101
|
-
output("tasks-show", result);
|
|
102
|
-
},
|
|
103
|
-
});
|
|
104
|
-
const tasksRemoveCommand = defineJsonCommand({
|
|
105
|
-
meta: { name: "remove", description: "Delete a task file and uninstall it from the OS scheduler" },
|
|
106
|
-
args: { id: { type: "positional", description: "Task id", required: true } },
|
|
107
|
-
async run({ args }) {
|
|
108
|
-
const { id } = parseTaskRef(args.id);
|
|
109
|
-
const result = await akmTasksRemove(id);
|
|
110
|
-
output("tasks-remove", result);
|
|
111
|
-
},
|
|
112
|
-
});
|
|
113
|
-
function makeTasksToggleCommand(enabled) {
|
|
114
|
-
const verb = enabled ? "enable" : "disable";
|
|
115
|
-
const description = enabled
|
|
116
|
-
? "Enable a previously-disabled task"
|
|
117
|
-
: "Disable a task in the OS scheduler without removing the file";
|
|
118
|
-
return defineJsonCommand({
|
|
119
|
-
meta: { name: verb, description },
|
|
120
|
-
args: { id: { type: "positional", description: "Task id", required: true } },
|
|
121
|
-
async run({ args }) {
|
|
122
|
-
const { id } = parseTaskRef(args.id);
|
|
123
|
-
const result = await akmTasksSetEnabled(id, enabled);
|
|
124
|
-
output(`tasks-${verb}`, result);
|
|
125
|
-
},
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const tasksEnableCommand = makeTasksToggleCommand(true);
|
|
129
|
-
const tasksDisableCommand = makeTasksToggleCommand(false);
|
|
130
111
|
const tasksRunCommand = defineCommand({
|
|
131
112
|
meta: {
|
|
132
113
|
name: "run",
|
|
133
114
|
description: "Execute a task now (this is what cron / launchd / schtasks invoke at the scheduled time)",
|
|
134
115
|
},
|
|
135
|
-
|
|
116
|
+
// Raw defineCommand (it forwards the task's exit code), so the global output
|
|
117
|
+
// flags are declared here or `--format md nightly` loses the task id.
|
|
118
|
+
args: {
|
|
119
|
+
...GLOBAL_OUTPUT_ARGS,
|
|
120
|
+
id: { type: "positional", description: "Task id", required: true },
|
|
121
|
+
...bundleArg,
|
|
122
|
+
scheduled: { type: "boolean", description: "Internal marker for scheduler-generated runs", default: false },
|
|
123
|
+
},
|
|
136
124
|
async run({ args }) {
|
|
137
125
|
await runWithJsonErrors(async () => {
|
|
138
|
-
|
|
139
|
-
const envelope = await akmTasksRun(id
|
|
140
|
-
|
|
126
|
+
rejectRetiredTaskTargetFlag();
|
|
127
|
+
const envelope = await akmTasksRun(args.id, {
|
|
128
|
+
scheduled: args.scheduled === true,
|
|
129
|
+
...(args.bundle !== undefined ? { target: args.bundle } : {}),
|
|
130
|
+
});
|
|
131
|
+
output("task-run", envelope);
|
|
132
|
+
// F4: was `process.exit(envelope.exitCode)`, terminating synchronously
|
|
133
|
+
// and skipping any pending cleanup (this command forwards a run task's
|
|
134
|
+
// own exit code, so it can be any value, not just 0/1). output() has
|
|
135
|
+
// already run and this is the last statement, so process.exitCode +
|
|
136
|
+
// the implicit return is equivalent without the synchronous cutoff.
|
|
141
137
|
if (envelope.exitCode !== 0)
|
|
142
|
-
process.
|
|
138
|
+
process.exitCode = envelope.exitCode;
|
|
143
139
|
});
|
|
144
140
|
},
|
|
145
141
|
});
|
|
@@ -148,21 +144,32 @@ const tasksHistoryCommand = defineJsonCommand({
|
|
|
148
144
|
args: {
|
|
149
145
|
id: { type: "string", description: "Filter to one task id" },
|
|
150
146
|
limit: { type: "string", description: "Maximum rows to return (default 50)" },
|
|
147
|
+
...bundleArg,
|
|
151
148
|
},
|
|
152
149
|
async run({ args }) {
|
|
150
|
+
rejectRetiredTaskTargetFlag();
|
|
153
151
|
const limit = parsePositiveIntFlag(args.limit ?? undefined);
|
|
154
|
-
const result = await akmTasksHistory({ id: args.id, limit });
|
|
155
|
-
output("
|
|
152
|
+
const result = await akmTasksHistory({ id: args.id, limit, target: args.bundle });
|
|
153
|
+
output("task-history", result);
|
|
156
154
|
},
|
|
157
155
|
});
|
|
158
156
|
const tasksSyncCommand = defineJsonCommand({
|
|
159
157
|
meta: {
|
|
160
158
|
name: "sync",
|
|
161
|
-
description: "Reconcile the on-disk task files with the OS scheduler",
|
|
159
|
+
description: "Reconcile the on-disk task files of a bundle with the OS scheduler",
|
|
162
160
|
},
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
args: {
|
|
162
|
+
...bundleArg,
|
|
163
|
+
rebind: {
|
|
164
|
+
type: "boolean",
|
|
165
|
+
description: "Replace installed bindings with the current invocation",
|
|
166
|
+
default: false,
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
async run({ args }) {
|
|
170
|
+
rejectRetiredTaskTargetFlag();
|
|
171
|
+
const result = await akmTasksSync({}, args.bundle, { rebind: args.rebind === true });
|
|
172
|
+
output("task-sync", result);
|
|
166
173
|
},
|
|
167
174
|
});
|
|
168
175
|
const tasksDoctorCommand = defineJsonCommand({
|
|
@@ -170,32 +177,27 @@ const tasksDoctorCommand = defineJsonCommand({
|
|
|
170
177
|
name: "doctor",
|
|
171
178
|
description: "Report the active scheduler backend, akm bin path, log dir, and supported schedule subset",
|
|
172
179
|
},
|
|
180
|
+
args: {},
|
|
173
181
|
async run() {
|
|
174
182
|
const result = await akmTasksDoctor();
|
|
175
|
-
output("
|
|
183
|
+
output("task-doctor", result);
|
|
176
184
|
},
|
|
177
185
|
});
|
|
178
|
-
export const
|
|
186
|
+
export const taskCommand = defineGroupCommand({
|
|
179
187
|
meta: {
|
|
180
|
-
name: "
|
|
181
|
-
|
|
182
|
-
description: "Schedule workflows or prompts via the OS-native scheduler (cron / launchd / schtasks)",
|
|
188
|
+
name: "task",
|
|
189
|
+
description: "Schedule recurring commands, prompts, and workflows through the OS scheduler (cron / launchd / schtasks)",
|
|
183
190
|
},
|
|
184
191
|
subCommands: {
|
|
185
192
|
add: tasksAddCommand,
|
|
186
|
-
init: tasksInitCommand,
|
|
187
|
-
list: tasksListCommand,
|
|
188
|
-
show: tasksShowCommand,
|
|
189
|
-
remove: tasksRemoveCommand,
|
|
190
|
-
enable: tasksEnableCommand,
|
|
191
|
-
disable: tasksDisableCommand,
|
|
192
193
|
run: tasksRunCommand,
|
|
193
194
|
history: tasksHistoryCommand,
|
|
194
195
|
sync: tasksSyncCommand,
|
|
195
196
|
doctor: tasksDoctorCommand,
|
|
196
197
|
},
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
198
|
+
// Bare `akm task` reports scheduler diagnostics. Inspection of individual
|
|
199
|
+
// tasks moved to the generic `akm search` / `akm show <bundle//tasks/id>`.
|
|
200
|
+
// No `defaultRun`: bare `akm task` is a usage error (exit 2), the canonical
|
|
201
|
+
// bare-group behavior — owner ruling 12. Run `akm task doctor` for what the
|
|
202
|
+
// bare form used to run.
|
|
201
203
|
});
|