akm-cli 0.9.0-rc.1 → 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 +1190 -52
- 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/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 +13 -9
- package/dist/commands/env/env-cli.js +76 -159
- 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/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 +75 -228
- 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 -855
- 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/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 -73
- 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 -58
- 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 +8 -3
- package/dist/integrations/agent/profiles.js +6 -99
- package/dist/integrations/agent/prompts.js +46 -18
- package/dist/integrations/agent/runner-dispatch.js +78 -13
- package/dist/integrations/agent/runner.js +76 -208
- package/dist/integrations/agent/spawn.js +48 -279
- package/dist/integrations/harnesses/aider/agent-builder.js +9 -8
- package/dist/integrations/harnesses/aider/index.js +2 -12
- package/dist/integrations/harnesses/amazonq/agent-builder.js +10 -16
- package/dist/integrations/harnesses/amazonq/index.js +3 -17
- package/dist/integrations/harnesses/claude/agent-builder.js +2 -3
- package/dist/integrations/harnesses/claude/config-import.js +1 -3
- package/dist/integrations/harnesses/claude/index.js +1 -14
- package/dist/integrations/harnesses/claude/session-log.js +27 -75
- package/dist/integrations/harnesses/codex/agent-builder.js +8 -7
- package/dist/integrations/harnesses/codex/index.js +2 -13
- package/dist/integrations/harnesses/copilot/agent-builder.js +9 -9
- package/dist/integrations/harnesses/copilot/index.js +1 -13
- package/dist/integrations/harnesses/gemini/agent-builder.js +8 -9
- package/dist/integrations/harnesses/gemini/index.js +1 -13
- package/dist/integrations/harnesses/ids.js +24 -0
- package/dist/integrations/harnesses/index.js +31 -33
- 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 +1 -18
- package/dist/integrations/harnesses/opencode/session-log.js +67 -125
- package/dist/integrations/harnesses/opencode-sdk/harness.js +3 -17
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +274 -191
- package/dist/integrations/harnesses/openhands/agent-builder.js +12 -10
- package/dist/integrations/harnesses/openhands/index.js +2 -12
- package/dist/integrations/harnesses/pi/agent-builder.js +11 -18
- package/dist/integrations/harnesses/pi/index.js +3 -16
- package/dist/integrations/harnesses/shared.js +17 -0
- package/dist/integrations/harnesses/types.js +38 -34
- package/dist/integrations/lockfile.js +211 -24
- package/dist/integrations/session-logs/index.js +24 -40
- 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 +15 -281
- 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 +8 -40
- 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 -1375
- 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 +1 -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 +68 -35
- 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/workflows/authoring/authoring.js +96 -148
- package/dist/workflows/authoring/scope-key.js +1 -1
- package/dist/workflows/cli.js +0 -20
- package/dist/workflows/concurrency-policy.js +15 -0
- package/dist/workflows/exec/brief.js +25 -59
- package/dist/workflows/exec/frozen-judge.js +47 -0
- package/dist/workflows/exec/native-executor.js +157 -94
- package/dist/workflows/exec/report.js +365 -200
- package/dist/workflows/exec/run-workflow.js +46 -40
- package/dist/workflows/exec/scheduler.js +12 -41
- package/dist/workflows/exec/step-work.js +239 -205
- package/dist/workflows/exec/workflow-engine-gate.js +67 -0
- package/dist/workflows/ir/compile.js +141 -283
- package/dist/workflows/ir/freeze.js +233 -0
- package/dist/workflows/ir/plan-hash.js +40 -5
- package/dist/workflows/ir/schema.js +537 -1
- package/dist/workflows/parser.js +878 -306
- package/dist/workflows/program/expressions.js +20 -208
- package/dist/workflows/program/schema.js +7 -10
- package/dist/workflows/renderer.js +99 -121
- package/dist/workflows/resource-limits.js +22 -0
- package/dist/workflows/runtime/checkin.js +1 -1
- package/dist/workflows/runtime/plan-classifier.js +131 -0
- package/dist/workflows/runtime/runs.js +200 -113
- package/dist/workflows/runtime/unit-checkin.js +1 -1
- package/dist/workflows/runtime/unit-phases.js +20 -0
- package/dist/workflows/runtime/workflow-asset-loader.js +235 -97
- package/dist/workflows/schema.js +1 -11
- package/dist/workflows/validate-summary.js +4 -26
- 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/{dist/schemas → schemas}/akm-workflow.json +127 -82
- 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 -316
- 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 -1414
- 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 -25
- 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/schemas/akm-config.json +0 -14225
- package/dist/scripts/migrate-storage.js +0 -13169
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +0 -10169
- 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/authoring/workflow-program-template.yaml +0 -31
- package/dist/workflows/db.js +0 -350
- package/dist/workflows/exec/watch.js +0 -116
- package/dist/workflows/program/parser.js +0 -760
- package/dist/workflows/program/project.js +0 -105
- package/docs/data-and-telemetry.md +0 -227
- package/docs/migration/release-notes/0.9.0-beta.60.md +0 -19
- /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/registry.js +0 -0
- /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/youtube.js +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://itlackey.github.io/akm/schemas/akm-task.json",
|
|
4
|
+
"title": "AKM Scheduled Task",
|
|
5
|
+
"description": "Strict version-2 YAML task definition. Exactly one target is required.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["version", "schedule"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"version": { "const": 2 },
|
|
11
|
+
"name": { "type": "string" },
|
|
12
|
+
"description": { "type": "string" },
|
|
13
|
+
"when_to_use": { "type": "string" },
|
|
14
|
+
"tags": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
15
|
+
"schedule": { "type": "string", "minLength": 1 },
|
|
16
|
+
"enabled": { "type": "boolean" },
|
|
17
|
+
"workflow": { "type": "string", "minLength": 1 },
|
|
18
|
+
"prompt": { "type": "string", "minLength": 1 },
|
|
19
|
+
"command": {
|
|
20
|
+
"oneOf": [
|
|
21
|
+
{ "type": "string", "minLength": 1 },
|
|
22
|
+
{ "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"params": { "type": "object" },
|
|
26
|
+
"engine": { "type": "string", "minLength": 1 },
|
|
27
|
+
"model": { "type": "string", "minLength": 1 },
|
|
28
|
+
"timeoutMs": { "type": ["integer", "null"], "minimum": 1 },
|
|
29
|
+
"llm": { "$ref": "#/definitions/llm" }
|
|
30
|
+
},
|
|
31
|
+
"oneOf": [
|
|
32
|
+
{
|
|
33
|
+
"required": ["workflow"],
|
|
34
|
+
"not": { "anyOf": [{ "required": ["prompt"] }, { "required": ["command"] }, { "required": ["engine"] }, { "required": ["model"] }, { "required": ["timeoutMs"] }, { "required": ["llm"] }] }
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"required": ["prompt"],
|
|
38
|
+
"not": { "anyOf": [{ "required": ["workflow"] }, { "required": ["command"] }, { "required": ["params"] }] }
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"required": ["command"],
|
|
42
|
+
"not": { "anyOf": [{ "required": ["workflow"] }, { "required": ["prompt"] }, { "required": ["params"] }, { "required": ["engine"] }, { "required": ["model"] }, { "required": ["llm"] }] }
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"definitions": {
|
|
46
|
+
"llm": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"properties": {
|
|
50
|
+
"temperature": { "type": "number" },
|
|
51
|
+
"maxTokens": { "type": "integer", "minimum": 1 },
|
|
52
|
+
"supportsJsonSchema": { "type": "boolean" },
|
|
53
|
+
"extraParams": { "$ref": "#/definitions/extraParams" },
|
|
54
|
+
"contextLength": { "type": "integer", "minimum": 1 },
|
|
55
|
+
"enableThinking": { "type": "boolean" }
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"extraParams": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"description": "Provider-specific request fields. Top-level AKM-owned fields are forbidden; credential-shaped keys are forbidden recursively after lowercase/non-alphanumeric normalization.",
|
|
61
|
+
"propertyNames": {
|
|
62
|
+
"not": {
|
|
63
|
+
"enum": ["model", "messages", "temperature", "maxtokens", "responseformat", "stream", "streamoptions", "enablethinking", "chattemplatekwargs", "authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"additionalProperties": { "$ref": "#/definitions/extraParamValue" },
|
|
67
|
+
"x-akm-protectedTopLevelNormalizedKeys": ["model", "messages", "temperature", "maxtokens", "responseformat", "stream", "streamoptions", "enablethinking", "chattemplatekwargs"],
|
|
68
|
+
"x-akm-recursivelyForbiddenNormalizedKeys": ["authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
69
|
+
},
|
|
70
|
+
"extraParamValue": {
|
|
71
|
+
"anyOf": [
|
|
72
|
+
{ "type": ["string", "number", "boolean", "null"] },
|
|
73
|
+
{ "type": "array", "items": { "$ref": "#/definitions/extraParamValue" } },
|
|
74
|
+
{
|
|
75
|
+
"type": "object",
|
|
76
|
+
"propertyNames": {
|
|
77
|
+
"not": {
|
|
78
|
+
"enum": ["authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"additionalProperties": { "$ref": "#/definitions/extraParamValue" },
|
|
82
|
+
"x-akm-recursivelyForbiddenNormalizedKeys": ["authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://itlackey.github.io/akm/schemas/akm-workflow.json",
|
|
4
|
-
"title": "AKM Workflow
|
|
5
|
-
"description": "
|
|
4
|
+
"title": "AKM Workflow",
|
|
5
|
+
"description": "Unified akm workflow frontmatter (workflow-format-unification). One markdown asset: the standard AKM asset envelope (type/description/tags/when_to_use/xrefs/updated/timestamp + the OKF v0.2 machine-stamped families) plus the orchestration graph. Per-step prose instructions and gate rubrics live in the markdown body, joined to this graph by step id — see docs/reference/workflows.md. Hand-authored alongside src/workflows/program/schema.ts; the enum vocabularies and patterns here are pinned against the TypeScript constants by tests/integration/workflows/schema-drift.test.ts.",
|
|
6
6
|
"type": "object",
|
|
7
|
-
"required": ["
|
|
7
|
+
"required": ["steps"],
|
|
8
8
|
"additionalProperties": false,
|
|
9
9
|
"properties": {
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
},
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
10
|
+
"type": { "$ref": "akm-asset-envelope.json#/definitions/type" },
|
|
11
|
+
"description": { "$ref": "akm-asset-envelope.json#/definitions/description" },
|
|
12
|
+
"tags": { "$ref": "akm-asset-envelope.json#/definitions/tags" },
|
|
13
|
+
"when_to_use": { "$ref": "akm-asset-envelope.json#/definitions/when_to_use" },
|
|
14
|
+
"xrefs": { "$ref": "akm-asset-envelope.json#/definitions/xrefs" },
|
|
15
|
+
"updated": { "$ref": "akm-asset-envelope.json#/definitions/updated" },
|
|
16
|
+
"timestamp": { "$ref": "akm-asset-envelope.json#/definitions/timestamp" },
|
|
17
|
+
"generated": { "$ref": "akm-asset-envelope.json#/definitions/generated" },
|
|
18
|
+
"verified": { "$ref": "akm-asset-envelope.json#/definitions/verified" },
|
|
19
|
+
"provenance": { "$ref": "akm-asset-envelope.json#/definitions/provenance" },
|
|
20
|
+
"status": { "$ref": "akm-asset-envelope.json#/definitions/status" },
|
|
21
|
+
"stale_after": { "$ref": "akm-asset-envelope.json#/definitions/stale_after" },
|
|
23
22
|
"params": {
|
|
24
23
|
"type": "object",
|
|
25
|
-
"
|
|
24
|
+
"maxProperties": 128,
|
|
25
|
+
"description": "Run parameters: param name -> JSON Schema declaration. Names must be params.<name>-addressable identifiers.",
|
|
26
26
|
"propertyNames": {
|
|
27
27
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
28
28
|
},
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"steps": {
|
|
40
40
|
"type": "array",
|
|
41
41
|
"minItems": 1,
|
|
42
|
+
"maxItems": 256,
|
|
42
43
|
"items": {
|
|
43
44
|
"$ref": "#/definitions/step"
|
|
44
45
|
}
|
|
@@ -48,7 +49,12 @@
|
|
|
48
49
|
"identifier": {
|
|
49
50
|
"type": "string",
|
|
50
51
|
"pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
|
|
51
|
-
"description": "Step id: a letter or underscore first, then letters, digits, underscores, or dashes (no dots, no leading digit). This is exactly the
|
|
52
|
+
"description": "Step id: a letter or underscore first, then letters, digits, underscores, or dashes (no dots, no leading digit). This is exactly the steps.<id>.output-addressable grammar; dots are reserved for the .output path separator and the engine's internal <stepId>.gate node id."
|
|
53
|
+
},
|
|
54
|
+
"reference": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"description": "A bare reference string: params.<name> or steps.<id>.output(.<ident>|[<int>])*. No ${{ }} delimiters — every position this appears in is a whole-value frontmatter field. Full grammar validation happens at compile time, not here."
|
|
52
58
|
},
|
|
53
59
|
"timeout": {
|
|
54
60
|
"description": "Duration: \"<n>ms\" | \"<n>s\" | \"<n>m\" | \"none\" (bare integers are milliseconds).",
|
|
@@ -63,20 +69,56 @@
|
|
|
63
69
|
}
|
|
64
70
|
]
|
|
65
71
|
},
|
|
66
|
-
"runner": {
|
|
67
|
-
"description": "Execution backend for a unit; inherit defers to the run-level default.",
|
|
68
|
-
"enum": ["llm", "agent", "sdk", "inherit"]
|
|
69
|
-
},
|
|
70
72
|
"onError": {
|
|
71
73
|
"description": "Failure policy: fail the step on the first unit failure (default), or record failures and let the gate decide.",
|
|
72
74
|
"enum": ["fail", "continue"]
|
|
73
75
|
},
|
|
76
|
+
"llm": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"additionalProperties": false,
|
|
79
|
+
"properties": {
|
|
80
|
+
"temperature": { "type": "number" },
|
|
81
|
+
"max_tokens": { "type": "integer", "minimum": 1 },
|
|
82
|
+
"supports_json_schema": { "type": "boolean" },
|
|
83
|
+
"extra_params": { "$ref": "#/definitions/extraParams" },
|
|
84
|
+
"context_length": { "type": "integer", "minimum": 1 },
|
|
85
|
+
"enable_thinking": { "type": "boolean" }
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"extraParams": {
|
|
89
|
+
"type": "object",
|
|
90
|
+
"description": "Provider-specific request fields. Top-level AKM-owned fields are forbidden; credential-shaped keys are forbidden recursively after lowercase/non-alphanumeric normalization.",
|
|
91
|
+
"propertyNames": {
|
|
92
|
+
"not": {
|
|
93
|
+
"enum": ["model", "messages", "temperature", "maxtokens", "responseformat", "stream", "streamoptions", "enablethinking", "chattemplatekwargs", "authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"additionalProperties": { "$ref": "#/definitions/extraParamValue" },
|
|
97
|
+
"x-akm-protectedTopLevelNormalizedKeys": ["model", "messages", "temperature", "maxtokens", "responseformat", "stream", "streamoptions", "enablethinking", "chattemplatekwargs"],
|
|
98
|
+
"x-akm-recursivelyForbiddenNormalizedKeys": ["authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
99
|
+
},
|
|
100
|
+
"extraParamValue": {
|
|
101
|
+
"anyOf": [
|
|
102
|
+
{ "type": ["string", "number", "boolean", "null"] },
|
|
103
|
+
{ "type": "array", "items": { "$ref": "#/definitions/extraParamValue" } },
|
|
104
|
+
{
|
|
105
|
+
"type": "object",
|
|
106
|
+
"propertyNames": {
|
|
107
|
+
"not": {
|
|
108
|
+
"enum": ["authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"additionalProperties": { "$ref": "#/definitions/extraParamValue" },
|
|
112
|
+
"x-akm-recursivelyForbiddenNormalizedKeys": ["authorization", "headers", "apikey", "token", "password", "secret", "cookie", "setcookie"]
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
74
116
|
"reducer": {
|
|
75
117
|
"description": "How a map step folds per-item unit results into the step artifact.",
|
|
76
118
|
"enum": ["collect", "vote"]
|
|
77
119
|
},
|
|
78
120
|
"isolation": {
|
|
79
|
-
"description": "Filesystem isolation for file-mutating units
|
|
121
|
+
"description": "Filesystem isolation for file-mutating units.",
|
|
80
122
|
"enum": ["none", "worktree"]
|
|
81
123
|
},
|
|
82
124
|
"failureReason": {
|
|
@@ -133,6 +175,7 @@
|
|
|
133
175
|
"max_units": {
|
|
134
176
|
"type": "integer",
|
|
135
177
|
"minimum": 1,
|
|
178
|
+
"maximum": 10000,
|
|
136
179
|
"description": "Ceiling on total dispatched units across the run (seeded from journaled unit rows)."
|
|
137
180
|
}
|
|
138
181
|
}
|
|
@@ -142,8 +185,9 @@
|
|
|
142
185
|
"description": "Run-level defaults, overridable per unit.",
|
|
143
186
|
"additionalProperties": false,
|
|
144
187
|
"properties": {
|
|
145
|
-
"
|
|
146
|
-
"
|
|
188
|
+
"engine": {
|
|
189
|
+
"type": "string",
|
|
190
|
+
"minLength": 1
|
|
147
191
|
},
|
|
148
192
|
"model": {
|
|
149
193
|
"type": "string",
|
|
@@ -155,27 +199,29 @@
|
|
|
155
199
|
},
|
|
156
200
|
"on_error": {
|
|
157
201
|
"$ref": "#/definitions/onError"
|
|
202
|
+
},
|
|
203
|
+
"llm": {
|
|
204
|
+
"$ref": "#/definitions/llm"
|
|
158
205
|
}
|
|
159
206
|
}
|
|
160
207
|
},
|
|
161
208
|
"unit": {
|
|
162
209
|
"type": "object",
|
|
163
|
-
"description": "
|
|
164
|
-
"required": ["instructions"],
|
|
210
|
+
"description": "Optional dispatch-override bag for a unit/map step. A step with none of these carries the run's engine/model/timeout defaults verbatim.",
|
|
165
211
|
"additionalProperties": false,
|
|
166
212
|
"properties": {
|
|
167
|
-
"
|
|
168
|
-
"$ref": "#/definitions/runner"
|
|
169
|
-
},
|
|
170
|
-
"profile": {
|
|
213
|
+
"engine": {
|
|
171
214
|
"type": "string",
|
|
172
215
|
"minLength": 1,
|
|
173
|
-
"description": "
|
|
216
|
+
"description": "Named engine selected at workflow start."
|
|
174
217
|
},
|
|
175
218
|
"model": {
|
|
176
219
|
"type": "string",
|
|
177
220
|
"minLength": 1
|
|
178
221
|
},
|
|
222
|
+
"llm": {
|
|
223
|
+
"$ref": "#/definitions/llm"
|
|
224
|
+
},
|
|
179
225
|
"timeout": {
|
|
180
226
|
"$ref": "#/definitions/timeout"
|
|
181
227
|
},
|
|
@@ -185,11 +231,6 @@
|
|
|
185
231
|
"on_error": {
|
|
186
232
|
"$ref": "#/definitions/onError"
|
|
187
233
|
},
|
|
188
|
-
"instructions": {
|
|
189
|
-
"type": "string",
|
|
190
|
-
"minLength": 1,
|
|
191
|
-
"description": "Instruction template. ${{ … }} expressions are parsed against the closed grammar: params.<name> | steps.<id>.output.<path> | item | item_index."
|
|
192
|
-
},
|
|
193
234
|
"output": {
|
|
194
235
|
"$ref": "#/definitions/jsonSchemaObject"
|
|
195
236
|
},
|
|
@@ -208,14 +249,13 @@
|
|
|
208
249
|
},
|
|
209
250
|
"map": {
|
|
210
251
|
"type": "object",
|
|
211
|
-
"description": "Fan the
|
|
212
|
-
"required": ["over"
|
|
252
|
+
"description": "Fan the step out over a reference-addressed item list.",
|
|
253
|
+
"required": ["over"],
|
|
213
254
|
"additionalProperties": false,
|
|
214
255
|
"properties": {
|
|
215
256
|
"over": {
|
|
216
|
-
"
|
|
217
|
-
"
|
|
218
|
-
"description": "${{ … }} expression naming the producer of the item list (e.g. ${{ steps.discover.output.files }})."
|
|
257
|
+
"$ref": "#/definitions/reference",
|
|
258
|
+
"description": "Reference naming the producer of the item list (e.g. steps.discover.output.files)."
|
|
219
259
|
},
|
|
220
260
|
"concurrency": {
|
|
221
261
|
"type": "integer",
|
|
@@ -230,23 +270,35 @@
|
|
|
230
270
|
}
|
|
231
271
|
}
|
|
232
272
|
},
|
|
273
|
+
"routeBranch": {
|
|
274
|
+
"type": "object",
|
|
275
|
+
"required": ["match", "step"],
|
|
276
|
+
"additionalProperties": false,
|
|
277
|
+
"properties": {
|
|
278
|
+
"match": {
|
|
279
|
+
"type": ["string", "number", "boolean"]
|
|
280
|
+
},
|
|
281
|
+
"step": {
|
|
282
|
+
"$ref": "#/definitions/identifier"
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
},
|
|
233
286
|
"route": {
|
|
234
287
|
"type": "object",
|
|
235
|
-
"description": "Route on an explicit
|
|
288
|
+
"description": "Route on an explicit reference input to a LATER step. Targets must come after the routing step.",
|
|
236
289
|
"required": ["input", "when"],
|
|
237
290
|
"additionalProperties": false,
|
|
238
291
|
"properties": {
|
|
239
292
|
"input": {
|
|
240
|
-
"
|
|
241
|
-
"
|
|
242
|
-
"description": "${{ … }} expression naming the value to route on."
|
|
293
|
+
"$ref": "#/definitions/reference",
|
|
294
|
+
"description": "Reference naming the value to route on."
|
|
243
295
|
},
|
|
244
296
|
"when": {
|
|
245
|
-
"type": "
|
|
246
|
-
"
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"$ref": "#/definitions/
|
|
297
|
+
"type": "array",
|
|
298
|
+
"minItems": 1,
|
|
299
|
+
"maxItems": 256,
|
|
300
|
+
"items": {
|
|
301
|
+
"$ref": "#/definitions/routeBranch"
|
|
250
302
|
}
|
|
251
303
|
},
|
|
252
304
|
"default": {
|
|
@@ -256,42 +308,34 @@
|
|
|
256
308
|
},
|
|
257
309
|
"gate": {
|
|
258
310
|
"type": "object",
|
|
259
|
-
"description": "
|
|
260
|
-
"required": ["criteria"],
|
|
311
|
+
"description": "Optional validation-loop configuration. The rubric itself lives in the body under a `### gate` sub-heading inside the step's section; omitted or empty rubric text skips validation.",
|
|
261
312
|
"additionalProperties": false,
|
|
262
313
|
"properties": {
|
|
263
|
-
"criteria": {
|
|
264
|
-
"type": "array",
|
|
265
|
-
"minItems": 1,
|
|
266
|
-
"items": {
|
|
267
|
-
"type": "string",
|
|
268
|
-
"minLength": 1
|
|
269
|
-
}
|
|
270
|
-
},
|
|
271
314
|
"max_loops": {
|
|
272
315
|
"type": "integer",
|
|
273
316
|
"minimum": 1,
|
|
274
|
-
"description": "Evaluator-optimizer loop bound
|
|
275
|
-
},
|
|
276
|
-
"required": {
|
|
277
|
-
"type": "boolean",
|
|
278
|
-
"description": "When true, the gate must be judged: if no summary-validation judge is available (offline / misconfigured LLM), the step BLOCKS for a human instead of failing open and silently passing. Absent = fail-open default. The engine's --require-gates flag applies this to every criteria-bearing gate for one invocation."
|
|
317
|
+
"description": "Evaluator-optimizer loop bound."
|
|
279
318
|
}
|
|
280
319
|
}
|
|
281
320
|
},
|
|
321
|
+
"inputs": {
|
|
322
|
+
"type": "array",
|
|
323
|
+
"minItems": 1,
|
|
324
|
+
"maxItems": 64,
|
|
325
|
+
"items": {
|
|
326
|
+
"$ref": "#/definitions/reference"
|
|
327
|
+
},
|
|
328
|
+
"description": "Prior-step artifacts this unit/map step consumes, as reference strings (sub-paths legal). Attached to the dispatched unit as structured context; never spliced into instructions."
|
|
329
|
+
},
|
|
282
330
|
"step": {
|
|
283
331
|
"type": "object",
|
|
284
|
-
"description": "One step of the gated spine.
|
|
332
|
+
"description": "One step of the gated spine. A step with no map/route is a unit step (bare `{id: ...}` is the complete minimal declaration). At most one of map/route.",
|
|
285
333
|
"required": ["id"],
|
|
286
334
|
"additionalProperties": false,
|
|
287
335
|
"properties": {
|
|
288
336
|
"id": {
|
|
289
337
|
"$ref": "#/definitions/identifier"
|
|
290
338
|
},
|
|
291
|
-
"title": {
|
|
292
|
-
"type": "string",
|
|
293
|
-
"minLength": 1
|
|
294
|
-
},
|
|
295
339
|
"unit": {
|
|
296
340
|
"$ref": "#/definitions/unit"
|
|
297
341
|
},
|
|
@@ -301,6 +345,9 @@
|
|
|
301
345
|
"route": {
|
|
302
346
|
"$ref": "#/definitions/route"
|
|
303
347
|
},
|
|
348
|
+
"inputs": {
|
|
349
|
+
"$ref": "#/definitions/inputs"
|
|
350
|
+
},
|
|
304
351
|
"output": {
|
|
305
352
|
"$ref": "#/definitions/jsonSchemaObject"
|
|
306
353
|
},
|
|
@@ -310,17 +357,15 @@
|
|
|
310
357
|
},
|
|
311
358
|
"allOf": [
|
|
312
359
|
{
|
|
313
|
-
"
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
]
|
|
360
|
+
"not": { "required": ["map", "route"] }
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"if": { "required": ["route"] },
|
|
364
|
+
"then": { "not": { "anyOf": [{ "required": ["unit"] }, { "required": ["map"] }, { "required": ["inputs"] }] } }
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"if": { "required": ["map"] },
|
|
368
|
+
"then": { "not": { "required": ["unit"] } }
|
|
324
369
|
}
|
|
325
370
|
]
|
|
326
371
|
}
|
package/dist/akm-migrate-storage
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
3
|
-
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
-
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
-
|
|
6
|
-
case "$0" in
|
|
7
|
-
*/*) SCRIPT_PATH=$0 ;;
|
|
8
|
-
*)
|
|
9
|
-
SCRIPT_PATH=$(command -v -- "$0" 2>/dev/null || true)
|
|
10
|
-
if [ -z "$SCRIPT_PATH" ]; then
|
|
11
|
-
echo "akm-migrate-storage launcher could not resolve its own path." >&2
|
|
12
|
-
exit 127
|
|
13
|
-
fi
|
|
14
|
-
;;
|
|
15
|
-
esac
|
|
16
|
-
|
|
17
|
-
if command -v readlink >/dev/null 2>&1; then
|
|
18
|
-
while [ -L "$SCRIPT_PATH" ]; do
|
|
19
|
-
LINK_TARGET=$(readlink "$SCRIPT_PATH")
|
|
20
|
-
case "$LINK_TARGET" in
|
|
21
|
-
/*) SCRIPT_PATH=$LINK_TARGET ;;
|
|
22
|
-
*) SCRIPT_PATH=${SCRIPT_PATH%/*}/$LINK_TARGET ;;
|
|
23
|
-
esac
|
|
24
|
-
done
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
SCRIPT_DIR=$(CDPATH= cd -- "${SCRIPT_PATH%/*}" && pwd)
|
|
28
|
-
|
|
29
|
-
if command -v bun >/dev/null 2>&1; then
|
|
30
|
-
exec bun "$SCRIPT_DIR/scripts/migrate-storage.js" "$@"
|
|
31
|
-
fi
|
|
32
|
-
|
|
33
|
-
if command -v node >/dev/null 2>&1; then
|
|
34
|
-
exec node "$SCRIPT_DIR/migrate-storage-node.mjs" "$@"
|
|
35
|
-
fi
|
|
36
|
-
|
|
37
|
-
echo "akm-migrate-storage requires Bun or Node.js >= 20.12.0 on PATH." >&2
|
|
38
|
-
exit 127
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Usage:
|
|
2
|
-
akm proposal accept <id>
|
|
3
|
-
|
|
4
|
-
Description:
|
|
5
|
-
Accept a proposal and promote it into the stash.
|
|
6
|
-
|
|
7
|
-
(`akm accept` is a deprecated alias for `akm proposal accept`; it warns on
|
|
8
|
-
stderr and is removed in 0.9.0.)
|
|
9
|
-
|
|
10
|
-
Examples:
|
|
11
|
-
akm proposal accept proposal_123
|
|
12
|
-
akm proposal accept proposal_123 --target team-stash
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
Usage:
|
|
2
|
-
akm improve
|
|
3
|
-
akm improve <type>
|
|
4
|
-
akm improve <ref>
|
|
5
|
-
|
|
6
|
-
Description:
|
|
7
|
-
Analyze existing AKM assets and generate improvement proposals.
|
|
8
|
-
|
|
9
|
-
Modes:
|
|
10
|
-
akm improve
|
|
11
|
-
Improve all eligible assets in the current scope.
|
|
12
|
-
|
|
13
|
-
akm improve <type>
|
|
14
|
-
Improve all assets of a given type.
|
|
15
|
-
Example: akm improve memory
|
|
16
|
-
|
|
17
|
-
akm improve <ref>
|
|
18
|
-
Improve one specific asset.
|
|
19
|
-
Example: akm improve workflow:release-checklist
|
|
20
|
-
|
|
21
|
-
What it does:
|
|
22
|
-
- reviews feedback and recent history
|
|
23
|
-
- proposes edits to existing assets
|
|
24
|
-
- distills lessons where useful
|
|
25
|
-
- promotes durable skill lessons into skill reference-doc proposals when justified
|
|
26
|
-
- cleans and consolidates memories
|
|
27
|
-
- writes results to the proposal queue
|
|
28
|
-
|
|
29
|
-
Options:
|
|
30
|
-
--task <text> Add extra guidance for this improvement pass
|
|
31
|
-
--dry-run Show planned actions without generating proposals
|
|
32
|
-
--target <source> Override the write target for accepted proposals
|
|
33
|
-
--auto-accept[=<value>]
|
|
34
|
-
Confidence threshold (0-100) for auto-accepting proposals.
|
|
35
|
-
Default when flag is absent: ON at threshold 90 (all sub-processes).
|
|
36
|
-
--auto-accept same as --auto-accept=90
|
|
37
|
-
--auto-accept=<N> integer 0-100; accept proposals at or above N
|
|
38
|
-
--auto-accept=safe alias for 90 (back-compat, not deprecated)
|
|
39
|
-
--auto-accept=false disable auto-accept for all sub-processes;
|
|
40
|
-
reflect/distill proposals go to the queue and
|
|
41
|
-
consolidation will prompt interactively on HTTP paths
|
|
42
|
-
Note: until proposals carry real confidence scores, any non-`false`
|
|
43
|
-
value behaves like the legacy "safe" mode (whole-batch auto-accept).
|
|
44
|
-
--profile <name> Improve profile to apply. Built-ins: default, quick,
|
|
45
|
-
thorough, memory-focus, frequent, catchup, consolidate,
|
|
46
|
-
graph-refresh, synthesize, reflect-distill,
|
|
47
|
-
proactive-maintenance, recombine-only. User-defined
|
|
48
|
-
profiles under `profiles.improve.<name>` in config are
|
|
49
|
-
also accepted. Profiles bundle process gating, type
|
|
50
|
-
filters, and run-level autoAccept/limit defaults. Falls
|
|
51
|
-
back to `defaults.improve` in config, then to "default".
|
|
52
|
-
An unknown name is a hard error listing the valid names
|
|
53
|
-
(no silent fallback to default).
|
|
54
|
-
Sync behavior by profile: default and thorough enable
|
|
55
|
-
auto-commit + push; quick and memory-focus skip sync.
|
|
56
|
-
--sync Commit (and optionally push) the git-backed primary
|
|
57
|
-
stash when the run finishes. Use --no-sync to disable.
|
|
58
|
-
Default: per profile config (enabled for default and
|
|
59
|
-
thorough, disabled for quick and memory-focus).
|
|
60
|
-
--push Push after the end-of-run sync commit when the stash
|
|
61
|
-
is writable and has a remote configured. Use --no-push
|
|
62
|
-
to commit only. Default: per profile config (true when
|
|
63
|
-
sync is enabled).
|
|
64
|
-
--consolidate-recovery <mode>
|
|
65
|
-
Recovery mode for stale consolidate journals: abort (default) or clean
|
|
66
|
-
--require-feedback-signal
|
|
67
|
-
Only process refs with recent feedback signal events
|
|
68
|
-
--min-retrieval-count <n>
|
|
69
|
-
Retrieval fallback threshold when no recent feedback exists (default: 5)
|
|
70
|
-
--json-to-stdout Emit the full JSON result on stdout (legacy behaviour).
|
|
71
|
-
(0.8.0+: full result is recorded in the improve_runs table of
|
|
72
|
-
state.db and stdout is empty; use --json-to-stdout for the prior
|
|
73
|
-
behaviour, e.g. `akm improve --json-to-stdout | jq`.)
|
|
74
|
-
|
|
75
|
-
Examples:
|
|
76
|
-
akm improve
|
|
77
|
-
akm improve memory
|
|
78
|
-
akm improve skill
|
|
79
|
-
akm improve skill:code-review
|
|
80
|
-
akm improve workflow:incident-response --task "reduce duplication"
|
|
81
|
-
akm improve --profile quick
|
|
82
|
-
akm improve --profile memory-focus
|
|
83
|
-
akm improve --no-sync
|
|
84
|
-
akm improve --no-push
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
Usage:
|
|
2
|
-
akm proposal list
|
|
3
|
-
|
|
4
|
-
Description:
|
|
5
|
-
List proposal queue entries.
|
|
6
|
-
|
|
7
|
-
(The flat `akm proposals` alias was removed in 0.9.0 — use `akm proposal list`.)
|
|
8
|
-
|
|
9
|
-
Options:
|
|
10
|
-
--status <status> Filter by pending, accepted, or rejected
|
|
11
|
-
--type <type> Filter by asset type
|
|
12
|
-
--ref <ref> Filter by exact asset ref
|
|
13
|
-
|
|
14
|
-
Examples:
|
|
15
|
-
akm proposal list
|
|
16
|
-
akm proposal list --status pending
|
|
17
|
-
akm proposal list --type skill
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
Usage:
|
|
2
|
-
akm propose <type> <name> --task "..."
|
|
3
|
-
akm propose <type> <name> --file <path>
|
|
4
|
-
|
|
5
|
-
Description:
|
|
6
|
-
Create a proposal for a brand-new AKM asset.
|
|
7
|
-
|
|
8
|
-
Input:
|
|
9
|
-
--task <text> Inline task or prompt text
|
|
10
|
-
--file <path> Read task or prompt text from a file
|
|
11
|
-
|
|
12
|
-
Rules:
|
|
13
|
-
Exactly one of --task or --file is required.
|
|
14
|
-
|
|
15
|
-
Examples:
|
|
16
|
-
akm propose skill release-auditor --task "review release artifacts before publish"
|
|
17
|
-
akm propose workflow hotfix-triage --file ./prompts/hotfix-triage.md
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Usage:
|
|
2
|
-
akm proposal reject <id> --reason "..."
|
|
3
|
-
|
|
4
|
-
Description:
|
|
5
|
-
Reject a proposal and record the reason.
|
|
6
|
-
|
|
7
|
-
(`akm reject` is a deprecated alias for `akm proposal reject`; it warns on
|
|
8
|
-
stderr and is removed in 0.9.0.)
|
|
9
|
-
|
|
10
|
-
Examples:
|
|
11
|
-
akm proposal reject proposal_123 --reason "duplicates existing workflow"
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"description": "Frequent extract + inference pass — sessions, memory inference, graph, reflect.",
|
|
3
|
-
"processes": {
|
|
4
|
-
"reflect": { "enabled": true },
|
|
5
|
-
"distill": { "enabled": false },
|
|
6
|
-
"consolidate": { "enabled": false },
|
|
7
|
-
"memoryInference": { "enabled": true },
|
|
8
|
-
"graphExtraction": { "enabled": true },
|
|
9
|
-
"extract": { "enabled": true, "minNewSessions": 3, "triage": { "enabled": true, "minScore": 2 } },
|
|
10
|
-
"triage": { "enabled": false }
|
|
11
|
-
},
|
|
12
|
-
"sync": { "enabled": true, "push": true }
|
|
13
|
-
}
|