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
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
/**
|
|
5
|
-
* `akm wiki` command family. Extracted verbatim from src/cli.ts (WS6) so the
|
|
6
|
-
* God Module shrinks; the `main.subCommands.wiki` key and every subcommand's
|
|
7
|
-
* args/output shape are byte-identical. Handlers whose body is a plain
|
|
8
|
-
* `runWithJsonErrors(...) + output(...)` are migrated to `defineJsonCommand`,
|
|
9
|
-
* which emits the same JSON envelope (stdout/stderr/exit-code) as the inline
|
|
10
|
-
* form. `wiki lint` keeps an explicit `runWithJsonErrors` because it calls
|
|
11
|
-
* `process.exit(1)` after the wrapper when findings exist.
|
|
12
|
-
*/
|
|
13
|
-
import { defineCommand } from "citty";
|
|
14
|
-
import { getStringArg, parsePositiveIntFlag } from "../cli/parse-args.js";
|
|
15
|
-
import { defineGroupCommand, defineJsonCommand, output, runWithJsonErrors } from "../cli/shared.js";
|
|
16
|
-
import { resolveStashDir } from "../core/common.js";
|
|
17
|
-
import { loadConfig, resolveConfiguredSources } from "../core/config/config.js";
|
|
18
|
-
import { ConfigError, UsageError } from "../core/errors.js";
|
|
19
|
-
import { akmAgentDispatch } from "./agent/agent-dispatch.js";
|
|
20
|
-
import { readKnowledgeInput } from "./read/knowledge.js";
|
|
21
|
-
import { buildWebsiteOptions } from "./sources/add-cli.js";
|
|
22
|
-
const wikiCreateCommand = defineJsonCommand({
|
|
23
|
-
meta: { name: "create", description: "Scaffold a new wiki under <stashDir>/wikis/<name>/" },
|
|
24
|
-
args: {
|
|
25
|
-
name: { type: "positional", description: "Wiki name (lowercase, digits, hyphens)", required: true },
|
|
26
|
-
},
|
|
27
|
-
async run({ args }) {
|
|
28
|
-
const { createWiki } = await import("../wiki/wiki.js");
|
|
29
|
-
const stashDir = resolveStashDir();
|
|
30
|
-
const result = createWiki(stashDir, args.name);
|
|
31
|
-
output("wiki-create", result);
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
const wikiRegisterCommand = defineJsonCommand({
|
|
35
|
-
meta: {
|
|
36
|
-
name: "register",
|
|
37
|
-
description: "Register an existing directory or repo as a first-class wiki without copying or mutating it; refreshes source and wiki search state immediately",
|
|
38
|
-
},
|
|
39
|
-
args: {
|
|
40
|
-
name: { type: "positional", description: "Wiki name (lowercase, digits, hyphens)", required: true },
|
|
41
|
-
ref: { type: "positional", description: "Path or repo ref for the external wiki source", required: true },
|
|
42
|
-
writable: {
|
|
43
|
-
type: "boolean",
|
|
44
|
-
description: "Mark a git-backed source as writable so changes can be pushed back",
|
|
45
|
-
default: false,
|
|
46
|
-
},
|
|
47
|
-
"max-pages": { type: "string", description: "Maximum pages to crawl for website sources (default: 50)" },
|
|
48
|
-
"max-depth": { type: "string", description: "Maximum crawl depth for website sources (default: 3)" },
|
|
49
|
-
},
|
|
50
|
-
async run({ args }) {
|
|
51
|
-
const { registerWikiSource } = await import("./sources/source-add.js");
|
|
52
|
-
const result = await registerWikiSource({
|
|
53
|
-
ref: args.ref.trim(),
|
|
54
|
-
name: args.name,
|
|
55
|
-
options: Object.keys(buildWebsiteOptions(args)).length > 0 ? buildWebsiteOptions(args) : undefined,
|
|
56
|
-
writable: args.writable,
|
|
57
|
-
});
|
|
58
|
-
output("wiki-register", result);
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
const wikiListCommand = defineJsonCommand({
|
|
62
|
-
meta: { name: "list", description: "List wikis with page/raw counts and last-modified timestamps" },
|
|
63
|
-
async run() {
|
|
64
|
-
const { listWikis } = await import("../wiki/wiki.js");
|
|
65
|
-
const stashDir = resolveStashDir();
|
|
66
|
-
const wikis = listWikis(stashDir);
|
|
67
|
-
output("wiki-list", { wikis });
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
const wikiShowCommand = defineJsonCommand({
|
|
71
|
-
meta: { name: "show", description: "Show a wiki's path, description, counts, and last 3 log entries" },
|
|
72
|
-
args: {
|
|
73
|
-
name: { type: "positional", description: "Wiki name", required: true },
|
|
74
|
-
},
|
|
75
|
-
async run({ args }) {
|
|
76
|
-
const { showWiki } = await import("../wiki/wiki.js");
|
|
77
|
-
const stashDir = resolveStashDir();
|
|
78
|
-
const result = showWiki(stashDir, args.name);
|
|
79
|
-
output("wiki-show", result);
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
const wikiRemoveCommand = defineJsonCommand({
|
|
83
|
-
meta: {
|
|
84
|
-
name: "remove",
|
|
85
|
-
description: "Remove a wiki and refresh the index. Preserves raw/ by default; pass --with-sources to also delete raw/",
|
|
86
|
-
},
|
|
87
|
-
args: {
|
|
88
|
-
name: { type: "positional", description: "Wiki name", required: true },
|
|
89
|
-
yes: {
|
|
90
|
-
type: "boolean",
|
|
91
|
-
alias: "y",
|
|
92
|
-
description: "Skip confirmation prompt (required in non-interactive shells)",
|
|
93
|
-
default: false,
|
|
94
|
-
},
|
|
95
|
-
"with-sources": {
|
|
96
|
-
type: "boolean",
|
|
97
|
-
description: "Also delete the raw/ directory (immutable ingested sources)",
|
|
98
|
-
default: false,
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
async run({ args }) {
|
|
102
|
-
const { confirmDestructive } = await import("../cli/confirm.js");
|
|
103
|
-
const confirmed = await confirmDestructive(`Remove wiki "${args.name}"? This cannot be undone.`, {
|
|
104
|
-
yes: args.yes === true,
|
|
105
|
-
});
|
|
106
|
-
if (!confirmed) {
|
|
107
|
-
process.stderr.write("Aborted.\n");
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
const withSources = args["with-sources"];
|
|
111
|
-
const { removeWiki } = await import("../wiki/wiki.js");
|
|
112
|
-
const { akmIndex } = await import("../indexer/indexer.js");
|
|
113
|
-
const stashDir = resolveStashDir();
|
|
114
|
-
const result = removeWiki(stashDir, args.name, { withSources });
|
|
115
|
-
await akmIndex({ stashDir });
|
|
116
|
-
output("wiki-remove", result);
|
|
117
|
-
},
|
|
118
|
-
});
|
|
119
|
-
const wikiPagesCommand = defineJsonCommand({
|
|
120
|
-
meta: {
|
|
121
|
-
name: "pages",
|
|
122
|
-
description: "List wiki pages (ref + frontmatter description), excluding schema/index/log/raw",
|
|
123
|
-
},
|
|
124
|
-
args: {
|
|
125
|
-
name: { type: "positional", description: "Wiki name", required: true },
|
|
126
|
-
},
|
|
127
|
-
async run({ args }) {
|
|
128
|
-
const { listPages } = await import("../wiki/wiki.js");
|
|
129
|
-
const stashDir = resolveStashDir();
|
|
130
|
-
const pages = listPages(stashDir, args.name);
|
|
131
|
-
output("wiki-pages", { wiki: args.name, pages });
|
|
132
|
-
},
|
|
133
|
-
});
|
|
134
|
-
const wikiSearchCommand = defineJsonCommand({
|
|
135
|
-
meta: {
|
|
136
|
-
name: "search",
|
|
137
|
-
description: "Search wiki pages within a single wiki (scoped wrapper over `akm search --type wiki`; excludes raw/schema/index/log and returns canonical wiki refs)",
|
|
138
|
-
},
|
|
139
|
-
args: {
|
|
140
|
-
name: { type: "positional", description: "Wiki name", required: true },
|
|
141
|
-
query: { type: "positional", description: "Search query", required: true },
|
|
142
|
-
limit: { type: "string", description: "Max hits (default 20)", required: false },
|
|
143
|
-
},
|
|
144
|
-
async run({ args }) {
|
|
145
|
-
const { resolveWikiSource, searchInWiki } = await import("../wiki/wiki.js");
|
|
146
|
-
const stashDir = resolveStashDir();
|
|
147
|
-
resolveWikiSource(stashDir, args.name);
|
|
148
|
-
const parsedLimit = args.limit ? Number(args.limit) : undefined;
|
|
149
|
-
const limit = typeof parsedLimit === "number" && Number.isFinite(parsedLimit) && parsedLimit > 0 ? parsedLimit : undefined;
|
|
150
|
-
const response = await searchInWiki({ stashDir, wikiName: args.name, query: args.query, limit });
|
|
151
|
-
output("search", response);
|
|
152
|
-
},
|
|
153
|
-
});
|
|
154
|
-
const wikiStashCommand = defineJsonCommand({
|
|
155
|
-
meta: {
|
|
156
|
-
name: "stash",
|
|
157
|
-
description: "Copy a source into wikis/<name>/raw/<slug>.md with frontmatter. Source may be a file path, URL, or '-' for stdin.",
|
|
158
|
-
},
|
|
159
|
-
args: {
|
|
160
|
-
name: { type: "positional", description: "Wiki name", required: true },
|
|
161
|
-
source: { type: "positional", description: "Source file path, URL, or '-' to read from stdin", required: true },
|
|
162
|
-
as: { type: "string", description: "Preferred slug base (defaults to source filename or first-line slug)" },
|
|
163
|
-
target: {
|
|
164
|
-
type: "string",
|
|
165
|
-
description: "Name of a writable stash source to write into instead of the default stash. Must match a configured source name (run `akm list` to see sources).",
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
async run({ args }) {
|
|
169
|
-
const { stashRaw } = await import("../wiki/wiki.js");
|
|
170
|
-
let stashDir;
|
|
171
|
-
if (args.target) {
|
|
172
|
-
// Resolve the named source to its filesystem path.
|
|
173
|
-
const cfg = loadConfig();
|
|
174
|
-
const sources = resolveConfiguredSources(cfg);
|
|
175
|
-
const match = sources.find((s) => s.name === args.target);
|
|
176
|
-
if (!match) {
|
|
177
|
-
throw new UsageError(`--target must reference a configured source name. No source named "${args.target}" found. Run \`akm list\` to see available sources.`, "INVALID_FLAG_VALUE");
|
|
178
|
-
}
|
|
179
|
-
const spec = match.source;
|
|
180
|
-
if (spec.type !== "filesystem" && spec.type !== "local") {
|
|
181
|
-
throw new ConfigError(`Source "${args.target}" is not a filesystem source and cannot be used as a wiki stash target.`, "INVALID_CONFIG_FILE", `Use a source with type "filesystem" or "local", or omit --target to use the default stash.`);
|
|
182
|
-
}
|
|
183
|
-
stashDir = spec.path;
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
stashDir = resolveStashDir();
|
|
187
|
-
}
|
|
188
|
-
const { content, preferredName } = await readKnowledgeInput(args.source, { stashDir });
|
|
189
|
-
const result = stashRaw({
|
|
190
|
-
stashDir,
|
|
191
|
-
wikiName: args.name,
|
|
192
|
-
content,
|
|
193
|
-
preferredName: args.as ?? preferredName,
|
|
194
|
-
explicitSlug: args.as !== undefined,
|
|
195
|
-
});
|
|
196
|
-
output("wiki-stash", { ok: true, wiki: args.name, source: args.source, ...result });
|
|
197
|
-
},
|
|
198
|
-
});
|
|
199
|
-
const wikiLintCommand = defineCommand({
|
|
200
|
-
meta: {
|
|
201
|
-
name: "lint",
|
|
202
|
-
description: "Structural lint for a wiki: orphans, broken xrefs, missing descriptions, uncited raws, stale index",
|
|
203
|
-
},
|
|
204
|
-
args: {
|
|
205
|
-
name: { type: "positional", description: "Wiki name", required: true },
|
|
206
|
-
},
|
|
207
|
-
async run({ args }) {
|
|
208
|
-
let findingCount = 0;
|
|
209
|
-
await runWithJsonErrors(async () => {
|
|
210
|
-
const { lintWiki } = await import("../wiki/wiki.js");
|
|
211
|
-
const stashDir = resolveStashDir();
|
|
212
|
-
const report = lintWiki(stashDir, args.name);
|
|
213
|
-
output("wiki-lint", report);
|
|
214
|
-
findingCount = report.findings.length;
|
|
215
|
-
});
|
|
216
|
-
if (findingCount > 0)
|
|
217
|
-
process.exit(1); // EXIT_GENERAL
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
const wikiIngestCommand = defineJsonCommand({
|
|
221
|
-
meta: {
|
|
222
|
-
name: "ingest",
|
|
223
|
-
description: "Dispatch an agent to execute the ingest workflow for this wiki. Uses --profile or config.defaults.agent.",
|
|
224
|
-
},
|
|
225
|
-
args: {
|
|
226
|
-
name: { type: "positional", description: "Wiki name", required: true },
|
|
227
|
-
profile: {
|
|
228
|
-
type: "string",
|
|
229
|
-
description: "Agent profile to use (default: config.defaults.agent).",
|
|
230
|
-
},
|
|
231
|
-
model: {
|
|
232
|
-
type: "string",
|
|
233
|
-
description: "Model override — accepts aliases (opus, sonnet, haiku) or exact platform model IDs.",
|
|
234
|
-
},
|
|
235
|
-
"timeout-ms": { type: "string", description: "Override the agent CLI timeout in milliseconds." },
|
|
236
|
-
},
|
|
237
|
-
async run({ args }) {
|
|
238
|
-
const { buildIngestWorkflow } = await import("../wiki/wiki.js");
|
|
239
|
-
const stashDir = resolveStashDir();
|
|
240
|
-
const built = buildIngestWorkflow(stashDir, args.name);
|
|
241
|
-
const config = loadConfig();
|
|
242
|
-
const profileName = getStringArg(args, "profile") ?? config.defaults?.agent;
|
|
243
|
-
if (!profileName) {
|
|
244
|
-
throw new UsageError("akm wiki ingest requires an agent profile. Pass --profile <name> or set defaults.agent in config.", "MISSING_REQUIRED_ARGUMENT", "Available profiles are listed under profiles.agent in your config. Run `akm config get profiles.agent` to inspect.");
|
|
245
|
-
}
|
|
246
|
-
const timeoutMs = parsePositiveIntFlag(args["timeout-ms"], "--timeout-ms");
|
|
247
|
-
const model = getStringArg(args, "model");
|
|
248
|
-
const { getDefaultLlmConfig } = await import("../core/config/config.js");
|
|
249
|
-
const dispatchResult = await akmAgentDispatch({
|
|
250
|
-
profileName,
|
|
251
|
-
agentConfig: config,
|
|
252
|
-
llmConfig: getDefaultLlmConfig(config),
|
|
253
|
-
prompt: built.workflow,
|
|
254
|
-
dispatch: {
|
|
255
|
-
prompt: built.workflow,
|
|
256
|
-
...(model !== undefined ? { model } : {}),
|
|
257
|
-
},
|
|
258
|
-
...(timeoutMs !== undefined && Number.isFinite(timeoutMs) ? { timeoutMs } : {}),
|
|
259
|
-
});
|
|
260
|
-
output("wiki-ingest", {
|
|
261
|
-
wiki: built.wiki,
|
|
262
|
-
path: built.path,
|
|
263
|
-
schemaPath: built.schemaPath,
|
|
264
|
-
dispatched: true,
|
|
265
|
-
profile: profileName,
|
|
266
|
-
agentResult: dispatchResult,
|
|
267
|
-
});
|
|
268
|
-
},
|
|
269
|
-
});
|
|
270
|
-
export const wikiCommand = defineGroupCommand({
|
|
271
|
-
meta: {
|
|
272
|
-
name: "wiki",
|
|
273
|
-
description: "Manage multiple markdown wikis (Karpathy-style). akm surfaces (lifecycle, raw/, lint, index); the agent writes pages.",
|
|
274
|
-
},
|
|
275
|
-
subCommands: {
|
|
276
|
-
create: wikiCreateCommand,
|
|
277
|
-
register: wikiRegisterCommand,
|
|
278
|
-
list: wikiListCommand,
|
|
279
|
-
show: wikiShowCommand,
|
|
280
|
-
remove: wikiRemoveCommand,
|
|
281
|
-
pages: wikiPagesCommand,
|
|
282
|
-
search: wikiSearchCommand,
|
|
283
|
-
stash: wikiStashCommand,
|
|
284
|
-
lint: wikiLintCommand,
|
|
285
|
-
ingest: wikiIngestCommand,
|
|
286
|
-
},
|
|
287
|
-
async defaultRun() {
|
|
288
|
-
// Default action: list wikis
|
|
289
|
-
const { listWikis } = await import("../wiki/wiki.js");
|
|
290
|
-
output("wiki-list", { wikis: listWikis(resolveStashDir()) });
|
|
291
|
-
},
|
|
292
|
-
});
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
-
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
-
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
/**
|
|
5
|
-
* Central registry for asset type renderer and action builder maps.
|
|
6
|
-
*
|
|
7
|
-
* Previously these maps lived in `db-search.ts` (then `local-search.ts`) and
|
|
8
|
-
* were wired into `asset-spec.ts` via a fragile `_setAssetTypeHooks` deferred
|
|
9
|
-
* callback pattern. If the search module was imported after
|
|
10
|
-
* `registerAssetType()` calls, hooks would be silently dropped.
|
|
11
|
-
*
|
|
12
|
-
* This module is a simple singleton that both `asset-spec.ts` and
|
|
13
|
-
* `db-search.ts` import from, eliminating the import-order dependency
|
|
14
|
-
* entirely.
|
|
15
|
-
*/
|
|
16
|
-
import { buildWorkflowAction } from "../../output/renderers.js";
|
|
17
|
-
/** Map asset types to their primary renderer names. */
|
|
18
|
-
export const TYPE_TO_RENDERER = {
|
|
19
|
-
script: "script-source",
|
|
20
|
-
skill: "skill-md",
|
|
21
|
-
command: "command-md",
|
|
22
|
-
agent: "agent-md",
|
|
23
|
-
knowledge: "knowledge-md",
|
|
24
|
-
lesson: "lesson-md",
|
|
25
|
-
memory: "memory-md",
|
|
26
|
-
workflow: "workflow-md",
|
|
27
|
-
env: "env-file",
|
|
28
|
-
secret: "secret-file",
|
|
29
|
-
wiki: "wiki-md",
|
|
30
|
-
task: "task-yaml",
|
|
31
|
-
session: "session-md",
|
|
32
|
-
fact: "fact-md",
|
|
33
|
-
};
|
|
34
|
-
/** Map asset types to action builder functions for search results. */
|
|
35
|
-
export const ACTION_BUILDERS = {
|
|
36
|
-
script: (ref) => `akm show ${ref} -> execute the run command`,
|
|
37
|
-
skill: (ref) => `akm show ${ref} -> follow the instructions`,
|
|
38
|
-
command: (ref) => `akm show ${ref} -> fill placeholders and dispatch`,
|
|
39
|
-
agent: (ref) => `akm show ${ref} -> dispatch with full prompt`,
|
|
40
|
-
knowledge: (ref) => `akm show ${ref} -> read reference material`,
|
|
41
|
-
lesson: (ref) => `akm show ${ref} -> read the lesson and apply when_to_use`,
|
|
42
|
-
memory: (ref) => `akm show ${ref} -> recall context`,
|
|
43
|
-
workflow: (ref) => buildWorkflowAction(ref),
|
|
44
|
-
env: (ref) => `akm show ${ref} -> inspect key names; akm env run ${ref} -- <command> -> run with the whole .env injected (prefer --clean to minimize inherited parent env; child stdout is not redacted). akm env export ${ref} --out <file> writes a sourceable script (values to a file, not stdout).`,
|
|
45
|
-
secret: (ref) => `akm show ${ref} -> name only (value never shown); akm secret path ${ref} -> file path; akm secret run ${ref} <VAR> -- <command> -> run with value injected into $VAR`,
|
|
46
|
-
wiki: (ref) => `akm show ${ref} -> read the wiki page`,
|
|
47
|
-
task: (ref) => `akm tasks show ${ref.replace(/^task:/, "")} -> inspect; akm tasks run <id> -> run now; akm tasks remove <id> -> unschedule`,
|
|
48
|
-
session: (ref) => `akm show ${ref} -> read the session summary; follow the \`access\` frontmatter to open the raw log at \`log_path\``,
|
|
49
|
-
fact: (ref) => `akm show ${ref} -> read the stash fact and apply it as durable context`,
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Register a type-to-renderer mapping.
|
|
53
|
-
*
|
|
54
|
-
* Called by `registerAssetType()` in `asset-spec.ts` when a spec includes
|
|
55
|
-
* `rendererName`, or directly by extension code.
|
|
56
|
-
*/
|
|
57
|
-
export function registerTypeRenderer(type, rendererName) {
|
|
58
|
-
TYPE_TO_RENDERER[type] = rendererName;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Register an action builder for an asset type.
|
|
62
|
-
*
|
|
63
|
-
* Called by `registerAssetType()` in `asset-spec.ts` when a spec includes
|
|
64
|
-
* `actionBuilder`, or directly by extension code.
|
|
65
|
-
*/
|
|
66
|
-
export function registerActionBuilder(type, builder) {
|
|
67
|
-
ACTION_BUILDERS[type] = builder;
|
|
68
|
-
}
|
|
69
|
-
export const defaultRendererRegistry = {
|
|
70
|
-
rendererNameFor(type) {
|
|
71
|
-
return TYPE_TO_RENDERER[type];
|
|
72
|
-
},
|
|
73
|
-
actionBuilderFor(type) {
|
|
74
|
-
return ACTION_BUILDERS[type];
|
|
75
|
-
},
|
|
76
|
-
};
|