akm-cli 0.8.2 → 0.9.0-beta.0
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 +187 -0
- package/dist/assets/help/help-proposals.md +1 -2
- package/dist/assets/hints/cli-hints-full.md +34 -19
- package/dist/assets/hints/cli-hints-short.md +1 -1
- package/dist/assets/profiles/catchup.json +13 -0
- package/dist/assets/profiles/consolidate.json +13 -0
- package/dist/assets/profiles/frequent.json +13 -0
- package/dist/assets/tasks/core/backup.yml +4 -0
- package/dist/assets/tasks/core/extract.yml +4 -0
- package/dist/assets/tasks/core/improve.yml +4 -0
- package/dist/assets/tasks/core/index-refresh.yml +4 -0
- package/dist/assets/tasks/core/sync.yml +4 -0
- package/dist/assets/tasks/core/update-stashes.yml +4 -0
- package/dist/assets/tasks/core/version-check.yml +4 -0
- package/dist/cli/config-migrate.js +6 -6
- package/dist/cli/config-validate.js +4 -4
- package/dist/cli/confirm.js +3 -3
- package/dist/cli/parse-args.js +1 -1
- package/dist/cli/shared.js +51 -14
- package/dist/cli-node.mjs +26 -0
- package/dist/cli.js +171 -3862
- package/dist/commands/{agent-dispatch.js → agent/agent-dispatch.js} +6 -6
- package/dist/commands/{agent-support.js → agent/agent-support.js} +2 -2
- package/dist/commands/agent/contribute-cli.js +200 -0
- package/dist/commands/completions.js +1 -1
- package/dist/commands/config-cli.js +240 -3
- package/dist/commands/config-edit.js +344 -0
- package/dist/commands/db-cli.js +2 -2
- package/dist/commands/env/env-cli.js +529 -0
- package/dist/commands/env/env.js +410 -0
- package/dist/commands/env/secret-cli.js +259 -0
- package/dist/commands/{secret.js → env/secret.js} +6 -47
- package/dist/commands/events.js +4 -4
- package/dist/commands/feedback-cli.js +18 -34
- package/dist/commands/graph/graph-cli.js +132 -0
- package/dist/commands/{graph.js → graph/graph.js} +22 -16
- package/dist/commands/health/checks.js +279 -0
- package/dist/commands/health.js +94 -262
- package/dist/commands/{consolidate.js → improve/consolidate.js} +48 -36
- package/dist/commands/{distill-promotion-policy.js → improve/distill-promotion-policy.js} +3 -3
- package/dist/commands/{distill.js → improve/distill.js} +39 -18
- package/dist/commands/{eval-cases.js → improve/eval-cases.js} +1 -1
- package/dist/commands/{extract-cli.js → improve/extract-cli.js} +4 -4
- package/dist/commands/{extract-prompt.js → improve/extract-prompt.js} +2 -2
- package/dist/commands/{extract.js → improve/extract.js} +185 -26
- package/dist/commands/{improve-auto-accept.js → improve/improve-auto-accept.js} +4 -4
- package/dist/commands/{improve-cli.js → improve/improve-cli.js} +44 -22
- package/dist/commands/{improve-profiles.js → improve/improve-profiles.js} +13 -7
- package/dist/commands/{improve-result-file.js → improve/improve-result-file.js} +1 -1
- package/dist/commands/{improve.js → improve/improve.js} +509 -245
- package/dist/{core → commands/improve/memory}/memory-belief.js +2 -2
- package/dist/{core → commands/improve/memory}/memory-contradiction-detect.js +5 -5
- package/dist/{core → commands/improve/memory}/memory-improve.js +4 -4
- package/dist/commands/{reflect.js → improve/reflect.js} +33 -28
- package/dist/commands/improve/session-asset.js +248 -0
- package/dist/commands/lint/agent-linter.js +1 -1
- package/dist/commands/lint/base-linter.js +55 -37
- package/dist/commands/lint/command-linter.js +1 -1
- package/dist/commands/lint/default-linter.js +1 -1
- package/dist/commands/lint/env-key-rules.js +1 -1
- package/dist/commands/lint/index.js +19 -25
- package/dist/commands/lint/knowledge-linter.js +1 -1
- package/dist/commands/lint/memory-linter.js +1 -1
- package/dist/commands/lint/registry.js +8 -8
- package/dist/commands/lint/skill-linter.js +1 -1
- package/dist/commands/lint/task-linter.js +1 -1
- package/dist/commands/lint/workflow-linter.js +1 -1
- package/dist/commands/lint.js +1 -1
- package/dist/commands/observability-cli.js +244 -0
- package/dist/commands/proposal/drain-policies.js +3 -3
- package/dist/commands/proposal/drain.js +15 -10
- package/dist/commands/proposal/proposal-cli.js +478 -0
- package/dist/commands/{proposal.js → proposal/proposal.js} +5 -5
- package/dist/commands/{propose.js → proposal/propose.js} +11 -11
- package/dist/{core → commands/proposal/validators}/proposal-quality-validators.js +8 -3
- package/dist/{core → commands/proposal/validators}/proposal-validators.js +5 -5
- package/dist/{core → commands/proposal/validators}/proposals.js +13 -7
- package/dist/commands/{curate.js → read/curate.js} +7 -7
- package/dist/commands/{knowledge.js → read/knowledge.js} +22 -9
- package/dist/commands/{registry-search.js → read/registry-search.js} +5 -5
- package/dist/commands/{remember-cli.js → read/remember-cli.js} +15 -7
- package/dist/commands/read/search-cli.js +207 -0
- package/dist/commands/{search.js → read/search.js} +22 -27
- package/dist/commands/{show.js → read/show.js} +31 -45
- package/dist/commands/registry-cli.js +8 -8
- package/dist/commands/remember.js +8 -8
- package/dist/commands/sources/add-cli.js +293 -0
- package/dist/commands/{history.js → sources/history.js} +27 -25
- package/dist/commands/{info.js → sources/info.js} +6 -6
- package/dist/commands/{init.js → sources/init.js} +6 -6
- package/dist/commands/{installed-stashes.js → sources/installed-stashes.js} +12 -12
- package/dist/commands/{migration-help.js → sources/migration-help.js} +3 -2
- package/dist/commands/{schema-repair.js → sources/schema-repair.js} +8 -8
- package/dist/commands/{self-update.js → sources/self-update.js} +10 -9
- package/dist/commands/{source-add.js → sources/source-add.js} +10 -10
- package/dist/commands/{source-clone.js → sources/source-clone.js} +7 -7
- package/dist/commands/{source-manage.js → sources/source-manage.js} +4 -4
- package/dist/commands/sources/sources-cli.js +305 -0
- package/dist/commands/sources/stash-cli.js +219 -0
- package/dist/commands/{stash-skeleton.js → sources/stash-skeleton.js} +2 -1
- package/dist/commands/tasks/default-tasks.js +173 -0
- package/dist/commands/tasks/tasks-cli.js +210 -0
- package/dist/commands/{tasks.js → tasks/tasks.js} +14 -14
- package/dist/commands/wiki-cli.js +307 -0
- package/dist/commands/workflow-cli.js +329 -0
- package/dist/core/action-contributors.js +1 -1
- package/dist/core/assert.js +40 -0
- package/dist/core/asset/asset-create.js +54 -0
- package/dist/core/{asset-ref.js → asset/asset-ref.js} +21 -4
- package/dist/core/{asset-registry.js → asset/asset-registry.js} +3 -3
- package/dist/core/{asset-spec.js → asset/asset-spec.js} +17 -31
- package/dist/core/{markdown.js → asset/markdown.js} +1 -1
- package/dist/core/{stash-meta.js → asset/stash-meta.js} +1 -1
- package/dist/core/best-effort.js +64 -0
- package/dist/core/common.js +32 -18
- package/dist/core/{config-io.js → config/config-io.js} +29 -19
- package/dist/core/{config-migration.js → config/config-migration.js} +11 -9
- package/dist/core/{config-schema.js → config/config-schema.js} +45 -1
- package/dist/core/config/config-types.js +16 -0
- package/dist/core/{config-walker.js → config/config-walker.js} +2 -2
- package/dist/core/{config.js → config/config.js} +10 -8
- package/dist/core/env-secret-ref.js +90 -0
- package/dist/core/errors.js +13 -3
- package/dist/core/events.js +27 -4
- package/dist/core/file-lock.js +1 -1
- package/dist/core/improve-types.js +48 -0
- package/dist/core/lesson-lint.js +2 -2
- package/dist/core/paths.js +2 -2
- package/dist/core/ripgrep/install.js +2 -2
- package/dist/core/ripgrep/resolve.js +2 -2
- package/dist/core/state-db.js +88 -46
- package/dist/core/text-truncation.js +148 -0
- package/dist/core/time.js +1 -1
- package/dist/core/write-source.js +98 -85
- package/dist/indexer/{db-backup.js → db/db-backup.js} +9 -24
- package/dist/indexer/{db.js → db/db.js} +126 -116
- package/dist/indexer/{graph-db.js → db/graph-db.js} +9 -4
- package/dist/indexer/{llm-cache.js → db/llm-cache.js} +15 -12
- package/dist/indexer/ensure-index.js +4 -4
- package/dist/indexer/{graph-boost.js → graph/graph-boost.js} +1 -1
- package/dist/indexer/{graph-extraction.js → graph/graph-extraction.js} +55 -13
- package/dist/indexer/indexer.js +37 -30
- package/dist/indexer/init.js +54 -0
- package/dist/indexer/manifest.js +10 -10
- package/dist/indexer/{memory-inference.js → passes/memory-inference.js} +92 -23
- package/dist/indexer/{metadata-contributors.js → passes/metadata-contributors.js} +10 -8
- package/dist/indexer/{metadata.js → passes/metadata.js} +15 -19
- package/dist/indexer/{staleness-detect.js → passes/staleness-detect.js} +53 -12
- package/dist/indexer/{db-search.js → search/db-search.js} +28 -16
- package/dist/indexer/{ranking-contributors.js → search/ranking-contributors.js} +1 -1
- package/dist/indexer/{ranking.js → search/ranking.js} +2 -2
- package/dist/indexer/{search-hit-enrichers.js → search/search-hit-enrichers.js} +3 -3
- package/dist/indexer/{search-source.js → search/search-source.js} +8 -8
- package/dist/indexer/{semantic-status.js → search/semantic-status.js} +3 -3
- package/dist/indexer/usage/unmigrated-vaults-guard.js +94 -0
- package/dist/indexer/{usage-events.js → usage/usage-events.js} +32 -0
- package/dist/indexer/{file-context.js → walk/file-context.js} +10 -15
- package/dist/indexer/{matchers.js → walk/matchers.js} +13 -9
- package/dist/indexer/{path-resolver.js → walk/path-resolver.js} +6 -6
- package/dist/indexer/{project-context.js → walk/project-context.js} +1 -1
- package/dist/indexer/{walker.js → walk/walker.js} +4 -3
- package/dist/integrations/agent/builder-shared.js +39 -0
- package/dist/integrations/agent/builders.js +14 -81
- package/dist/integrations/agent/config.js +6 -4
- package/dist/integrations/agent/detect.js +1 -1
- package/dist/integrations/agent/index.js +23 -8
- package/dist/integrations/agent/prompts.js +2 -3
- package/dist/integrations/agent/runner.js +22 -3
- package/dist/integrations/agent/spawn.js +9 -10
- package/dist/integrations/harnesses/claude/agent-builder.js +48 -0
- package/dist/integrations/harnesses/claude/config-import.js +70 -0
- package/dist/integrations/harnesses/claude/index.js +64 -0
- package/dist/integrations/{session-logs/providers/claude-code.js → harnesses/claude/session-log.js} +16 -1
- package/dist/integrations/harnesses/index.js +144 -0
- package/dist/integrations/harnesses/opencode/agent-builder.js +43 -0
- package/dist/integrations/harnesses/opencode/config-import.js +82 -0
- package/dist/integrations/harnesses/opencode/index.js +59 -0
- package/dist/integrations/{session-logs/providers/opencode.js → harnesses/opencode/session-log.js} +1 -1
- package/dist/integrations/harnesses/opencode-sdk/index.js +49 -0
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +234 -0
- package/dist/integrations/harnesses/types.js +43 -0
- package/dist/integrations/lockfile.js +7 -16
- package/dist/integrations/session-logs/index.js +82 -9
- package/dist/llm/call-ai.js +4 -4
- package/dist/llm/client.js +131 -6
- package/dist/llm/embedder.js +6 -6
- package/dist/llm/embedders/local.js +9 -22
- package/dist/llm/embedders/remote.js +2 -2
- package/dist/llm/embedders/types.js +1 -1
- package/dist/llm/graph-extract.js +31 -12
- package/dist/llm/index-passes.js +1 -1
- package/dist/llm/memory-infer.js +12 -5
- package/dist/llm/metadata-enhance.js +2 -2
- package/dist/output/context.js +6 -44
- package/dist/output/renderers.js +88 -58
- package/dist/output/shapes/curate.js +7 -3
- package/dist/output/shapes/distill.js +7 -3
- package/dist/output/shapes/env-list.js +18 -16
- package/dist/output/shapes/events.js +5 -4
- package/dist/output/shapes/helpers.js +2 -4
- package/dist/output/shapes/history.js +7 -3
- package/dist/output/shapes/passthrough.js +8 -11
- package/dist/output/shapes/{proposal-accept.js → proposal/accept.js} +7 -3
- package/dist/output/shapes/{proposal-diff.js → proposal/diff.js} +7 -3
- package/dist/output/shapes/{proposal-list.js → proposal/list.js} +7 -3
- package/dist/output/shapes/{proposal-producer.js → proposal/producer.js} +5 -4
- package/dist/output/shapes/{proposal-reject.js → proposal/reject.js} +7 -3
- package/dist/output/shapes/{proposal-show.js → proposal/show.js} +7 -3
- package/dist/output/shapes/registry-search.js +7 -3
- package/dist/output/shapes/registry.js +12 -0
- package/dist/output/shapes/search.js +7 -3
- package/dist/output/shapes/secret-list.js +18 -16
- package/dist/output/shapes/show.js +7 -3
- package/dist/output/shapes.js +55 -30
- package/dist/output/text/add.js +2 -3
- package/dist/output/text/clone.js +2 -3
- package/dist/output/text/config.js +2 -3
- package/dist/output/text/curate.js +4 -3
- package/dist/output/text/distill.js +2 -3
- package/dist/output/text/enable-disable.js +5 -4
- package/dist/output/text/env.js +13 -0
- package/dist/output/text/events.js +5 -4
- package/dist/output/text/feedback.js +4 -3
- package/dist/output/text/helpers.js +54 -39
- package/dist/output/text/history.js +2 -3
- package/dist/output/text/import.js +2 -3
- package/dist/output/text/index.js +2 -3
- package/dist/output/text/info.js +2 -3
- package/dist/output/text/init.js +2 -3
- package/dist/output/text/list.js +2 -3
- package/dist/output/text/proposal/producer.js +9 -0
- package/dist/output/text/proposal/proposal.js +13 -0
- package/dist/output/text/registry-commands.js +8 -7
- package/dist/output/text/registry.js +12 -0
- package/dist/output/text/remember.js +4 -3
- package/dist/output/text/remove.js +2 -3
- package/dist/output/text/save.js +2 -3
- package/dist/output/text/search.js +4 -3
- package/dist/output/text/show.js +4 -3
- package/dist/output/text/update.js +2 -3
- package/dist/output/text/upgrade.js +2 -3
- package/dist/output/text/wiki.js +12 -11
- package/dist/output/text/workflow.js +12 -10
- package/dist/output/text.js +66 -32
- package/dist/registry/build-index.js +11 -10
- package/dist/registry/factory.js +1 -1
- package/dist/registry/origin-resolve.js +1 -1
- package/dist/registry/providers/index.js +2 -2
- package/dist/registry/providers/skills-sh.js +91 -72
- package/dist/registry/providers/static-index.js +75 -52
- package/dist/registry/resolve.js +3 -3
- package/dist/runtime.js +242 -0
- package/dist/scripts/migrate-storage.js +1594 -673
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +240 -166
- package/dist/setup/detect.js +311 -9
- package/dist/setup/harness-config-import.js +6 -120
- package/dist/setup/setup.js +454 -43
- package/dist/sources/include.js +1 -1
- package/dist/sources/provider-factory.js +2 -2
- package/dist/sources/providers/filesystem.js +3 -3
- package/dist/sources/providers/git.js +9 -9
- package/dist/sources/providers/index.js +4 -4
- package/dist/sources/providers/npm.js +6 -6
- package/dist/sources/providers/provider-utils.js +13 -20
- package/dist/sources/providers/sync-from-ref.js +5 -5
- package/dist/sources/providers/tar-utils.js +2 -2
- package/dist/sources/providers/website.js +2 -2
- package/dist/sources/resolve.js +5 -5
- package/dist/sources/website-ingest.js +5 -5
- package/dist/storage/database.js +102 -0
- package/dist/storage/engines/sqlite-migrations.js +42 -0
- package/dist/storage/locations.js +25 -0
- package/dist/storage/repositories/index-db.js +43 -0
- package/dist/storage/repositories/workflow-runs-repository.js +141 -0
- package/dist/tasks/backends/cron.js +4 -4
- package/dist/tasks/backends/exec-utils.js +32 -0
- package/dist/tasks/backends/index.js +3 -3
- package/dist/tasks/backends/launchd.js +7 -14
- package/dist/tasks/backends/schtasks.js +7 -16
- package/dist/tasks/embedded.js +71 -0
- package/dist/tasks/parser.js +2 -2
- package/dist/tasks/resolveAkmBin.js +1 -1
- package/dist/tasks/runner.js +28 -15
- package/dist/tasks/schedule.js +1 -1
- package/dist/tasks/validator.js +7 -7
- package/dist/text-import-hook.mjs +51 -0
- package/dist/version.js +2 -1
- package/dist/wiki/wiki.js +7 -7
- package/dist/workflows/{authoring.js → authoring/authoring.js} +6 -6
- package/dist/workflows/{scope-key.js → authoring/scope-key.js} +1 -1
- package/dist/workflows/cli.js +1 -1
- package/dist/workflows/db.js +50 -32
- package/dist/workflows/parser.js +4 -4
- package/dist/workflows/renderer.js +5 -5
- package/dist/workflows/runtime/agent-identity.js +56 -0
- package/dist/workflows/runtime/checkin.js +57 -0
- package/dist/workflows/{runs.js → runtime/runs.js} +197 -101
- package/dist/workflows/validate-summary.js +82 -0
- package/docs/README.md +1 -1
- package/docs/data-and-telemetry.md +6 -6
- package/package.json +16 -8
- package/dist/commands/add-cli.js +0 -279
- package/dist/commands/env.js +0 -213
- package/dist/integrations/agent/sdk-runner.js +0 -126
- package/dist/output/shapes/vault-list.js +0 -19
- package/dist/output/text/proposal-producer.js +0 -8
- package/dist/output/text/proposal.js +0 -12
- package/dist/output/text/vault.js +0 -16
- /package/dist/core/{asset-serialize.js → asset/asset-serialize.js} +0 -0
- /package/dist/core/{frontmatter.js → asset/frontmatter.js} +0 -0
- /package/dist/core/{config-sources.js → config/config-sources.js} +0 -0
- /package/dist/indexer/{graph-dedup.js → graph/graph-dedup.js} +0 -0
- /package/dist/{core/config-types.js → indexer/passes/pass-context.js} +0 -0
- /package/dist/indexer/{search-fields.js → search/search-fields.js} +0 -0
- /package/dist/indexer/{index-context.js → walk/index-context.js} +0 -0
- /package/dist/workflows/{document-cache.js → runtime/document-cache.js} +0 -0
package/dist/output/shapes.js
CHANGED
|
@@ -8,40 +8,65 @@
|
|
|
8
8
|
* Every function in this module is side-effect free and operates on plain
|
|
9
9
|
* `Record<string, unknown>` shapes, which makes them trivial to unit test.
|
|
10
10
|
*
|
|
11
|
-
* Output shapes are
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* Output shapes are assembled EXPLICITLY here: each per-command module under
|
|
12
|
+
* `src/output/shapes/` EXPORTS a pure `OutputShapeEntry[]` (no top-level
|
|
13
|
+
* side effect), and this barrel imports those exports and registers them in a
|
|
14
|
+
* single deterministic, order-independent pass (`BUILT_IN_OUTPUT_SHAPES`).
|
|
15
|
+
* Dropping a module from the assembly array is a COMPILE error, not a silent
|
|
16
|
+
* runtime gap. The central `shapeForCommand` dispatcher looks up the registry
|
|
17
|
+
* and throws for unknown commands (v1 spec §9 — exhaustive registry, no silent
|
|
18
|
+
* fallback).
|
|
15
19
|
*/
|
|
16
|
-
import { UsageError } from "../core/errors";
|
|
17
|
-
import {
|
|
20
|
+
import { UsageError } from "../core/errors.js";
|
|
21
|
+
import { curateShapes } from "./shapes/curate.js";
|
|
22
|
+
import { distillShapes } from "./shapes/distill.js";
|
|
23
|
+
import { envListShapes } from "./shapes/env-list.js";
|
|
24
|
+
import { eventsShapes } from "./shapes/events.js";
|
|
25
|
+
import { historyShapes } from "./shapes/history.js";
|
|
26
|
+
import { passthroughShapes } from "./shapes/passthrough.js";
|
|
27
|
+
import { proposalAcceptShapes } from "./shapes/proposal/accept.js";
|
|
28
|
+
import { proposalDiffShapes } from "./shapes/proposal/diff.js";
|
|
29
|
+
import { proposalListShapes } from "./shapes/proposal/list.js";
|
|
30
|
+
import { proposalProducerShapes } from "./shapes/proposal/producer.js";
|
|
31
|
+
import { proposalRejectShapes } from "./shapes/proposal/reject.js";
|
|
32
|
+
import { proposalShowShapes } from "./shapes/proposal/show.js";
|
|
33
|
+
import { getOutputShapeHandler, registerOutputShapes } from "./shapes/registry.js";
|
|
34
|
+
import { registrySearchShapes } from "./shapes/registry-search.js";
|
|
35
|
+
import { searchShapes } from "./shapes/search.js";
|
|
36
|
+
import { secretListShapes } from "./shapes/secret-list.js";
|
|
37
|
+
import { showShapes } from "./shapes/show.js";
|
|
18
38
|
// Re-export helpers so existing imports from `shapes.ts` keep working.
|
|
19
|
-
export { capDescription, NORMAL_DESCRIPTION_LIMIT, pickFields, shapeAssetHit, shapeDistillOutput, shapeEventEntry, shapeEventsOutput, shapeHistoryEntry, shapeHistoryOutput, shapeProposalAcceptOutput, shapeProposalDiffOutput, shapeProposalEntry, shapeProposalListOutput, shapeProposalProducerOutput, shapeProposalRejectOutput, shapeProposalShowOutput, shapeRegistrySearchOutput, shapeSearchHit, shapeSearchHitForAgent, shapeSearchOutput, shapeShowOutput, truncateDescription, } from "./shapes/helpers";
|
|
39
|
+
export { capDescription, NORMAL_DESCRIPTION_LIMIT, pickFields, shapeAssetHit, shapeDistillOutput, shapeEventEntry, shapeEventsOutput, shapeHistoryEntry, shapeHistoryOutput, shapeProposalAcceptOutput, shapeProposalDiffOutput, shapeProposalEntry, shapeProposalListOutput, shapeProposalProducerOutput, shapeProposalRejectOutput, shapeProposalShowOutput, shapeRegistrySearchOutput, shapeSearchHit, shapeSearchHitForAgent, shapeSearchOutput, shapeShowOutput, truncateDescription, } from "./shapes/helpers.js";
|
|
20
40
|
// Re-export registry API so callers can use this module as the single entry
|
|
21
41
|
// point (backward compat).
|
|
22
|
-
export { deregisterOutputShape, registerOutputShape } from "./shapes/registry";
|
|
23
|
-
// ──
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
export { deregisterOutputShape, registerOutputShape } from "./shapes/registry.js";
|
|
43
|
+
// ── Explicit built-in shape assembly ──────────────────────────────────────────
|
|
44
|
+
// Each entry below is a pure exported `OutputShapeEntry[]` from a per-command
|
|
45
|
+
// module. The set is registered ONCE, deterministically, with no reliance on
|
|
46
|
+
// import order. Removing a module from this list removes its registration —
|
|
47
|
+
// and because each name is referenced statically, a deleted export fails to
|
|
48
|
+
// compile instead of silently disappearing at runtime.
|
|
49
|
+
const BUILT_IN_OUTPUT_SHAPES = [
|
|
50
|
+
...searchShapes,
|
|
51
|
+
...curateShapes,
|
|
52
|
+
...registrySearchShapes,
|
|
53
|
+
...showShapes,
|
|
54
|
+
...historyShapes,
|
|
55
|
+
...eventsShapes,
|
|
56
|
+
...proposalListShapes,
|
|
57
|
+
...proposalShowShapes,
|
|
58
|
+
...proposalAcceptShapes,
|
|
59
|
+
...proposalRejectShapes,
|
|
60
|
+
...proposalDiffShapes,
|
|
61
|
+
...proposalProducerShapes,
|
|
62
|
+
...distillShapes,
|
|
63
|
+
...envListShapes,
|
|
64
|
+
...secretListShapes,
|
|
65
|
+
// Passthrough commands are registered last so an explicit dedicated handler
|
|
66
|
+
// above always wins over the identity-stamp fallback for the same name.
|
|
67
|
+
...passthroughShapes,
|
|
68
|
+
];
|
|
69
|
+
registerOutputShapes(BUILT_IN_OUTPUT_SHAPES);
|
|
45
70
|
/**
|
|
46
71
|
* Commands whose shape handler implements the `summary` projection. For every
|
|
47
72
|
* other command, `--shape summary` is a usage error (v1 §5 — honest rejection
|
package/dist/output/text/add.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatAddPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("add", (r) => formatAddPlain(r));
|
|
4
|
+
import { formatAddPlain } from "./helpers.js";
|
|
5
|
+
export const addFormatters = [{ command: "add", handler: (r) => formatAddPlain(r) }];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatClonePlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("clone", (r) => formatClonePlain(r));
|
|
4
|
+
import { formatClonePlain } from "./helpers.js";
|
|
5
|
+
export const cloneFormatters = [{ command: "clone", handler: (r) => formatClonePlain(r) }];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatConfigPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("config", (r) => formatConfigPlain(r));
|
|
4
|
+
import { formatConfigPlain } from "./helpers.js";
|
|
5
|
+
export const configFormatters = [{ command: "config", handler: (r) => formatConfigPlain(r) }];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatCuratePlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { formatCuratePlain } from "./helpers.js";
|
|
5
|
+
export const curateFormatters = [
|
|
6
|
+
{ command: "curate", handler: (r, detail) => formatCuratePlain(r, detail) },
|
|
7
|
+
];
|
|
@@ -2,6 +2,5 @@
|
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
4
|
// Output text formatter for `akm distill <ref>` (#228).
|
|
5
|
-
import { formatDistillPlain } from "./helpers";
|
|
6
|
-
|
|
7
|
-
registerTextFormatter("distill", (r) => formatDistillPlain(r));
|
|
5
|
+
import { formatDistillPlain } from "./helpers.js";
|
|
6
|
+
export const distillFormatters = [{ command: "distill", handler: (r) => formatDistillPlain(r) }];
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatToggleComponentPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import { formatToggleComponentPlain } from "./helpers.js";
|
|
5
|
+
export const enableDisableFormatters = [
|
|
6
|
+
{ command: "enable", handler: (r) => formatToggleComponentPlain("enable", r) },
|
|
7
|
+
{ command: "disable", handler: (r) => formatToggleComponentPlain("disable", r) },
|
|
8
|
+
];
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
// Output text formatters for `akm env *` commands.
|
|
5
|
+
import { formatEnvCreatePlain, formatEnvExportPlain, formatEnvListPlain, formatEnvRemovePlain, formatEnvSetPlain, formatEnvUnsetPlain, } from "./helpers.js";
|
|
6
|
+
export const envFormatters = [
|
|
7
|
+
{ command: "env-list", handler: (r) => formatEnvListPlain(r) },
|
|
8
|
+
{ command: "env-create", handler: (r) => formatEnvCreatePlain(r) },
|
|
9
|
+
{ command: "env-export", handler: (r) => formatEnvExportPlain(r) },
|
|
10
|
+
{ command: "env-remove", handler: (r) => formatEnvRemovePlain(r) },
|
|
11
|
+
{ command: "env-set", handler: (r) => formatEnvSetPlain(r) },
|
|
12
|
+
{ command: "env-unset", handler: (r) => formatEnvUnsetPlain(r) },
|
|
13
|
+
];
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
// Output text formatters for `akm events list` / `akm events tail` (#204).
|
|
5
5
|
// Both share a renderer; `events-tail` is also called per-event by the streaming
|
|
6
6
|
// code path via `formatEventLine`.
|
|
7
|
-
import { formatEventsPlain } from "./helpers";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
import { formatEventsPlain } from "./helpers.js";
|
|
8
|
+
export const eventsFormatters = [
|
|
9
|
+
{ command: "events-list", handler: (r) => formatEventsPlain(r) },
|
|
10
|
+
{ command: "events-tail", handler: (r) => formatEventsPlain(r) },
|
|
11
|
+
];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatFeedbackPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { formatFeedbackPlain } from "./helpers.js";
|
|
5
|
+
export const feedbackFormatters = [
|
|
6
|
+
{ command: "feedback", handler: (r) => formatFeedbackPlain(r) },
|
|
7
|
+
];
|
|
@@ -135,29 +135,6 @@ export function formatRegistryBuildIndexPlain(r) {
|
|
|
135
135
|
const version = typeof r.version === "number" ? `v${r.version}` : "";
|
|
136
136
|
return `Wrote registry index ${version} (${total} kits) → ${outPath}`.replace(/\s+/g, " ").trim();
|
|
137
137
|
}
|
|
138
|
-
export function formatVaultListPlain(r) {
|
|
139
|
-
// Multi-vault listing: { vaults: [{ ref, path, keys }, ...] }
|
|
140
|
-
const vaults = Array.isArray(r.vaults) ? r.vaults : [];
|
|
141
|
-
if (vaults.length === 0) {
|
|
142
|
-
return "No vaults. Create one with `akm vault create <name>` then `akm vault set vault:<name> KEY=VALUE`.";
|
|
143
|
-
}
|
|
144
|
-
const lines = [];
|
|
145
|
-
for (const v of vaults) {
|
|
146
|
-
const ref = String(v.ref ?? "?");
|
|
147
|
-
const keys = Array.isArray(v.keys) ? v.keys.map(String) : [];
|
|
148
|
-
if (lines.length > 0)
|
|
149
|
-
lines.push("");
|
|
150
|
-
lines.push(`## ${ref}`);
|
|
151
|
-
if (keys.length === 0) {
|
|
152
|
-
lines.push("- (no keys)");
|
|
153
|
-
continue;
|
|
154
|
-
}
|
|
155
|
-
for (const key of keys) {
|
|
156
|
-
lines.push(`- ${key}`);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return lines.join("\n");
|
|
160
|
-
}
|
|
161
138
|
export function formatEnvListPlain(r) {
|
|
162
139
|
// Multi-env listing: { envs: [{ ref, path, keys }, ...] }
|
|
163
140
|
const envs = Array.isArray(r.envs) ? r.envs : [];
|
|
@@ -191,6 +168,20 @@ export function formatEnvRemovePlain(r) {
|
|
|
191
168
|
const removed = r.removed === true;
|
|
192
169
|
return removed ? `Removed env ${String(r.ref ?? "?")}` : `Env ${String(r.ref ?? "?")} was not present`;
|
|
193
170
|
}
|
|
171
|
+
export function formatEnvSetPlain(r) {
|
|
172
|
+
return `Set ${String(r.key ?? "?")} in env ${String(r.ref ?? "?")} (value not displayed)`;
|
|
173
|
+
}
|
|
174
|
+
export function formatEnvUnsetPlain(r) {
|
|
175
|
+
const removed = Array.isArray(r.removed) ? r.removed.map(String) : [];
|
|
176
|
+
const missing = Array.isArray(r.missing) ? r.missing.map(String) : [];
|
|
177
|
+
const ref = String(r.ref ?? "?");
|
|
178
|
+
const parts = [];
|
|
179
|
+
if (removed.length > 0)
|
|
180
|
+
parts.push(`Removed ${removed.join(", ")} from env ${ref}`);
|
|
181
|
+
if (missing.length > 0)
|
|
182
|
+
parts.push(`Not present in env ${ref}: ${missing.join(", ")}`);
|
|
183
|
+
return parts.join("\n") || `No keys changed in env ${ref}`;
|
|
184
|
+
}
|
|
194
185
|
export function formatWikiRegisterPlain(r) {
|
|
195
186
|
const name = String(r.name ?? r.wiki ?? "?");
|
|
196
187
|
const ref = String(r.ref ?? r.path ?? r.url ?? "?");
|
|
@@ -205,6 +196,25 @@ export function formatWorkflowValidatePlain(r) {
|
|
|
205
196
|
const stepCount = typeof r.stepCount === "number" ? r.stepCount : 0;
|
|
206
197
|
return `workflow validate: ok — ${title || pathValue} (${stepCount} step(s))`;
|
|
207
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Plain-text rendering for a step-completion that was rejected by the
|
|
201
|
+
* summary-validation gate (#506): the step stays pending and the agent gets
|
|
202
|
+
* corrective feedback on what to finish/fix.
|
|
203
|
+
*/
|
|
204
|
+
export function formatWorkflowCompleteRejectedPlain(r) {
|
|
205
|
+
const stepId = String(r.stepId ?? "?");
|
|
206
|
+
const feedback = typeof r.feedback === "string" ? r.feedback : "";
|
|
207
|
+
const missing = Array.isArray(r.missing) ? r.missing.map((m) => String(m)) : [];
|
|
208
|
+
const lines = [`workflow complete: rejected — step "${stepId}" does not meet its completion criteria`];
|
|
209
|
+
if (feedback)
|
|
210
|
+
lines.push(` feedback: ${feedback}`);
|
|
211
|
+
if (missing.length > 0) {
|
|
212
|
+
lines.push(" outstanding:");
|
|
213
|
+
for (const m of missing)
|
|
214
|
+
lines.push(` - ${m}`);
|
|
215
|
+
}
|
|
216
|
+
return lines.join("\n");
|
|
217
|
+
}
|
|
208
218
|
export function formatProposalProducerPlain(command, r) {
|
|
209
219
|
if (r.ok === false) {
|
|
210
220
|
const reason = String(r.reason ?? "unknown");
|
|
@@ -265,12 +275,29 @@ export function formatProposalShowPlain(r) {
|
|
|
265
275
|
}
|
|
266
276
|
const validation = r.validation;
|
|
267
277
|
if (validation) {
|
|
268
|
-
const ok = validation.ok === true;
|
|
269
278
|
const findings = Array.isArray(validation.findings) ? validation.findings : [];
|
|
279
|
+
// Partition findings by severity. `severity: "warn"` findings are
|
|
280
|
+
// non-blocking (the validator reports `ok: true` for a warn-only proposal),
|
|
281
|
+
// so they must read as advisory — a distinct icon/label from blocking errors.
|
|
282
|
+
const warnings = findings.filter((f) => f.severity === "warn");
|
|
283
|
+
const errors = findings.filter((f) => f.severity !== "warn");
|
|
270
284
|
lines.push("");
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
lines.push(
|
|
285
|
+
if (errors.length > 0) {
|
|
286
|
+
const warnSuffix = warnings.length > 0 ? `, ${warnings.length} warning(s)` : "";
|
|
287
|
+
lines.push(`✗ invalid (${errors.length} error(s)${warnSuffix})`);
|
|
288
|
+
}
|
|
289
|
+
else if (warnings.length > 0) {
|
|
290
|
+
lines.push(`✓ valid (${warnings.length} warning(s))`);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
lines.push("✓ valid");
|
|
294
|
+
}
|
|
295
|
+
// Errors first (blocking), then warnings (advisory, non-blocking).
|
|
296
|
+
for (const f of errors) {
|
|
297
|
+
lines.push(` ✗ error [${String(f.kind)}] ${String(f.message)}`);
|
|
298
|
+
}
|
|
299
|
+
for (const f of warnings) {
|
|
300
|
+
lines.push(` ⚠ warning [${String(f.kind)}] ${String(f.message)} (non-blocking)`);
|
|
274
301
|
}
|
|
275
302
|
}
|
|
276
303
|
const payload = p.payload;
|
|
@@ -1035,18 +1062,6 @@ export function formatWorkflowCreatePlain(r) {
|
|
|
1035
1062
|
}
|
|
1036
1063
|
return null;
|
|
1037
1064
|
}
|
|
1038
|
-
export function formatVaultCreatePlain(r) {
|
|
1039
|
-
return `Created vault ${String(r.ref ?? "?")} at ${String(r.path ?? "?")}`;
|
|
1040
|
-
}
|
|
1041
|
-
export function formatVaultSetPlain(r) {
|
|
1042
|
-
return `Set ${String(r.key ?? "?")} in ${String(r.ref ?? "?")} (value not displayed)`;
|
|
1043
|
-
}
|
|
1044
|
-
export function formatVaultUnsetPlain(r) {
|
|
1045
|
-
const removed = r.removed === true;
|
|
1046
|
-
return removed
|
|
1047
|
-
? `Removed ${String(r.key ?? "?")} from ${String(r.ref ?? "?")}`
|
|
1048
|
-
: `Key ${String(r.key ?? "?")} was not present in ${String(r.ref ?? "?")}`;
|
|
1049
|
-
}
|
|
1050
1065
|
export function formatWorkflowResumePlain(r) {
|
|
1051
1066
|
return formatWorkflowStatusPlain(r) ?? `Resumed workflow run ${String(r.id ?? r.runId ?? "?")}`;
|
|
1052
1067
|
}
|
|
@@ -2,6 +2,5 @@
|
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
4
|
// Output text formatter for `akm history` — paired with the shape in shapes/history.ts.
|
|
5
|
-
import { formatHistoryPlain } from "./helpers";
|
|
6
|
-
|
|
7
|
-
registerTextFormatter("history", (r) => formatHistoryPlain(r));
|
|
5
|
+
import { formatHistoryPlain } from "./helpers.js";
|
|
6
|
+
export const historyFormatters = [{ command: "history", handler: (r) => formatHistoryPlain(r) }];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatImportPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("import", (r) => formatImportPlain(r));
|
|
4
|
+
import { formatImportPlain } from "./helpers.js";
|
|
5
|
+
export const importFormatters = [{ command: "import", handler: (r) => formatImportPlain(r) }];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatIndexPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("index", (r) => formatIndexPlain(r));
|
|
4
|
+
import { formatIndexPlain } from "./helpers.js";
|
|
5
|
+
export const indexFormatters = [{ command: "index", handler: (r) => formatIndexPlain(r) }];
|
package/dist/output/text/info.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatInfoPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("info", (r) => formatInfoPlain(r));
|
|
4
|
+
import { formatInfoPlain } from "./helpers.js";
|
|
5
|
+
export const infoFormatters = [{ command: "info", handler: (r) => formatInfoPlain(r) }];
|
package/dist/output/text/init.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatInitPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("init", (r) => formatInitPlain(r));
|
|
4
|
+
import { formatInitPlain } from "./helpers.js";
|
|
5
|
+
export const initFormatters = [{ command: "init", handler: (r) => formatInitPlain(r) }];
|
package/dist/output/text/list.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatListPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("list", (r) => formatListPlain(r));
|
|
4
|
+
import { formatListPlain } from "./helpers.js";
|
|
5
|
+
export const listFormatters = [{ command: "list", handler: (r) => formatListPlain(r) }];
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
// Output text formatters for `akm reflect` / `akm propose` (#226).
|
|
5
|
+
import { formatProposalProducerPlain } from "../helpers.js";
|
|
6
|
+
export const proposalProducerFormatters = [
|
|
7
|
+
{ command: "reflect", handler: (r) => formatProposalProducerPlain("reflect", r) },
|
|
8
|
+
{ command: "propose", handler: (r) => formatProposalProducerPlain("propose", r) },
|
|
9
|
+
];
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
// Output text formatters for `akm proposal *` (#225).
|
|
5
|
+
import { formatProposalAcceptPlain, formatProposalDiffPlain, formatProposalDrainPlain, formatProposalListPlain, formatProposalRejectPlain, formatProposalShowPlain, } from "../helpers.js";
|
|
6
|
+
export const proposalFormatters = [
|
|
7
|
+
{ command: "proposal-list", handler: (r) => formatProposalListPlain(r) },
|
|
8
|
+
{ command: "proposal-show", handler: (r) => formatProposalShowPlain(r) },
|
|
9
|
+
{ command: "proposal-accept", handler: (r) => formatProposalAcceptPlain(r) },
|
|
10
|
+
{ command: "proposal-reject", handler: (r) => formatProposalRejectPlain(r) },
|
|
11
|
+
{ command: "proposal-diff", handler: (r) => formatProposalDiffPlain(r) },
|
|
12
|
+
{ command: "proposal-drain", handler: (r) => formatProposalDrainPlain(r) },
|
|
13
|
+
];
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
4
|
// Output text formatters for `akm registry *` commands.
|
|
5
|
-
import { formatRegistryAddPlain, formatRegistryBuildIndexPlain, formatRegistryListPlain, formatRegistryRemovePlain, formatRegistrySearchPlain, } from "./helpers";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
import { formatRegistryAddPlain, formatRegistryBuildIndexPlain, formatRegistryListPlain, formatRegistryRemovePlain, formatRegistrySearchPlain, } from "./helpers.js";
|
|
6
|
+
export const registryCommandFormatters = [
|
|
7
|
+
{ command: "registry-list", handler: (r) => formatRegistryListPlain(r) },
|
|
8
|
+
{ command: "registry-add", handler: (r) => formatRegistryAddPlain(r) },
|
|
9
|
+
{ command: "registry-remove", handler: (r) => formatRegistryRemovePlain(r) },
|
|
10
|
+
{ command: "registry-search", handler: (r, detail) => formatRegistrySearchPlain(r, detail) },
|
|
11
|
+
{ command: "registry-build-index", handler: (r) => formatRegistryBuildIndexPlain(r) },
|
|
12
|
+
];
|
|
@@ -15,6 +15,18 @@ const TEXT_FORMATTER_REGISTRY = new Map();
|
|
|
15
15
|
export function registerTextFormatter(command, handler) {
|
|
16
16
|
TEXT_FORMATTER_REGISTRY.set(command, handler);
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Register a batch of {@link TextFormatterEntry} definitions in iteration order.
|
|
20
|
+
*
|
|
21
|
+
* This is the explicit-assembly entry point used by `text.ts`: the built-in
|
|
22
|
+
* formatter set is registered by iterating a single explicit list exactly once,
|
|
23
|
+
* with no reliance on module import order.
|
|
24
|
+
*/
|
|
25
|
+
export function registerTextFormatters(entries) {
|
|
26
|
+
for (const { command, handler } of entries) {
|
|
27
|
+
TEXT_FORMATTER_REGISTRY.set(command, handler);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
18
30
|
/**
|
|
19
31
|
* Remove a previously-registered text formatter. Test-only utility.
|
|
20
32
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatRememberPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { formatRememberPlain } from "./helpers.js";
|
|
5
|
+
export const rememberFormatters = [
|
|
6
|
+
{ command: "remember", handler: (r) => formatRememberPlain(r) },
|
|
7
|
+
];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatRemovePlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("remove", (r) => formatRemovePlain(r));
|
|
4
|
+
import { formatRemovePlain } from "./helpers.js";
|
|
5
|
+
export const removeFormatters = [{ command: "remove", handler: (r) => formatRemovePlain(r) }];
|
package/dist/output/text/save.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatSavePlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("save", (r) => formatSavePlain(r));
|
|
4
|
+
import { formatSavePlain } from "./helpers.js";
|
|
5
|
+
export const saveFormatters = [{ command: "save", handler: (r) => formatSavePlain(r) }];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatSearchPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { formatSearchPlain } from "./helpers.js";
|
|
5
|
+
export const searchFormatters = [
|
|
6
|
+
{ command: "search", handler: (r, detail) => formatSearchPlain(r, detail) },
|
|
7
|
+
];
|
package/dist/output/text/show.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatShowPlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { formatShowPlain } from "./helpers.js";
|
|
5
|
+
export const showFormatters = [
|
|
6
|
+
{ command: "show", handler: (r, detail) => formatShowPlain(r, detail) },
|
|
7
|
+
];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatUpdatePlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("update", (r) => formatUpdatePlain(r));
|
|
4
|
+
import { formatUpdatePlain } from "./helpers.js";
|
|
5
|
+
export const updateFormatters = [{ command: "update", handler: (r) => formatUpdatePlain(r) }];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
-
import { formatUpgradePlain } from "./helpers";
|
|
5
|
-
|
|
6
|
-
registerTextFormatter("upgrade", (r) => formatUpgradePlain(r));
|
|
4
|
+
import { formatUpgradePlain } from "./helpers.js";
|
|
5
|
+
export const upgradeFormatters = [{ command: "upgrade", handler: (r) => formatUpgradePlain(r) }];
|
package/dist/output/text/wiki.js
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
4
|
// Output text formatters for all `akm wiki *` commands.
|
|
5
|
-
import { formatWikiCreatePlain, formatWikiIngestPlain, formatWikiLintPlain, formatWikiListPlain, formatWikiPagesPlain, formatWikiRegisterPlain, formatWikiRemovePlain, formatWikiShowPlain, formatWikiStashPlain, } from "./helpers";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
import { formatWikiCreatePlain, formatWikiIngestPlain, formatWikiLintPlain, formatWikiListPlain, formatWikiPagesPlain, formatWikiRegisterPlain, formatWikiRemovePlain, formatWikiShowPlain, formatWikiStashPlain, } from "./helpers.js";
|
|
6
|
+
export const wikiFormatters = [
|
|
7
|
+
{ command: "wiki-list", handler: (r) => formatWikiListPlain(r) },
|
|
8
|
+
{ command: "wiki-show", handler: (r) => formatWikiShowPlain(r) },
|
|
9
|
+
{ command: "wiki-create", handler: (r) => formatWikiCreatePlain(r) },
|
|
10
|
+
{ command: "wiki-remove", handler: (r) => formatWikiRemovePlain(r) },
|
|
11
|
+
{ command: "wiki-pages", handler: (r) => formatWikiPagesPlain(r) },
|
|
12
|
+
{ command: "wiki-stash", handler: (r) => formatWikiStashPlain(r) },
|
|
13
|
+
{ command: "wiki-lint", handler: (r) => formatWikiLintPlain(r) },
|
|
14
|
+
{ command: "wiki-ingest", handler: (r) => formatWikiIngestPlain(r) },
|
|
15
|
+
{ command: "wiki-register", handler: (r) => formatWikiRegisterPlain(r) },
|
|
16
|
+
];
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
4
|
// Output text formatters for all `akm workflow *` commands.
|
|
5
|
-
import { formatWorkflowCreatePlain, formatWorkflowListPlain, formatWorkflowNextPlain, formatWorkflowResumePlain, formatWorkflowStatusPlain, formatWorkflowValidatePlain, } from "./helpers";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
import { formatWorkflowCompleteRejectedPlain, formatWorkflowCreatePlain, formatWorkflowListPlain, formatWorkflowNextPlain, formatWorkflowResumePlain, formatWorkflowStatusPlain, formatWorkflowValidatePlain, } from "./helpers.js";
|
|
6
|
+
export const workflowFormatters = [
|
|
7
|
+
{ command: "workflow-start", handler: (r) => formatWorkflowStatusPlain(r) },
|
|
8
|
+
{ command: "workflow-status", handler: (r) => formatWorkflowStatusPlain(r) },
|
|
9
|
+
{ command: "workflow-complete", handler: (r) => formatWorkflowStatusPlain(r) },
|
|
10
|
+
{ command: "workflow-complete-rejected", handler: (r) => formatWorkflowCompleteRejectedPlain(r) },
|
|
11
|
+
{ command: "workflow-next", handler: (r) => formatWorkflowNextPlain(r) },
|
|
12
|
+
{ command: "workflow-list", handler: (r) => formatWorkflowListPlain(r) },
|
|
13
|
+
{ command: "workflow-create", handler: (r) => formatWorkflowCreatePlain(r) },
|
|
14
|
+
{ command: "workflow-validate", handler: (r) => formatWorkflowValidatePlain(r) },
|
|
15
|
+
{ command: "workflow-resume", handler: (r) => formatWorkflowResumePlain(r) },
|
|
16
|
+
];
|