akm-cli 0.8.6 → 0.8.14
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 +442 -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/assets/templates/html/default.html +78 -0
- package/dist/assets/templates/html/health.html +560 -0
- package/dist/assets/templates/html/vendor/echarts.min.js +45 -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 +72 -19
- package/dist/cli-node.mjs +26 -0
- package/dist/cli.js +206 -3866
- 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 +230 -3
- 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/html-report.js +448 -0
- package/dist/commands/health.js +189 -266
- package/dist/commands/{consolidate.js → improve/consolidate.js} +63 -38
- 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} +221 -26
- package/dist/commands/{improve-auto-accept.js → improve/improve-auto-accept.js} +30 -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} +672 -292
- 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/improve/reflect-noise.js +0 -0
- package/dist/commands/{reflect.js → improve/reflect.js} +58 -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 +87 -15
- package/dist/commands/proposal/proposal-cli.js +490 -0
- package/dist/commands/{proposal.js → proposal/proposal.js} +17 -6
- 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 +374 -345
- 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 +14 -10
- 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} +50 -7
- 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/logs-db.js +304 -0
- 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 +195 -60
- 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} +128 -118
- 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} +141 -33
- 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} +32 -5
- 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 +146 -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/llm/usage-persist.js +77 -0
- package/dist/llm/usage-telemetry.js +103 -0
- package/dist/output/context.js +9 -46
- package/dist/output/html-render.js +73 -0
- 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 +19 -5
- 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 +123 -40
- 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 +1654 -683
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +254 -168
- 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 +127 -31
- 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 +54 -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 +17 -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
|
@@ -41,7 +41,21 @@ export function shapeProposalEntry(entry, detail) {
|
|
|
41
41
|
return pickFields(entry, ["id", "ref", "status", "source", "createdAt"]);
|
|
42
42
|
}
|
|
43
43
|
if (detail === "normal") {
|
|
44
|
-
|
|
44
|
+
// `confidence` and `gateDecision` (#577) explain why a proposal is pending,
|
|
45
|
+
// so they are projected at `normal` for `akm proposal list/show` — both are
|
|
46
|
+
// optional and absent on legacy proposals.
|
|
47
|
+
return pickFields(entry, [
|
|
48
|
+
"id",
|
|
49
|
+
"ref",
|
|
50
|
+
"status",
|
|
51
|
+
"source",
|
|
52
|
+
"sourceRun",
|
|
53
|
+
"createdAt",
|
|
54
|
+
"updatedAt",
|
|
55
|
+
"confidence",
|
|
56
|
+
"gateDecision",
|
|
57
|
+
"review",
|
|
58
|
+
]);
|
|
45
59
|
}
|
|
46
60
|
// full: project everything including the payload.
|
|
47
61
|
return pickFields(entry, [
|
|
@@ -52,6 +66,8 @@ export function shapeProposalEntry(entry, detail) {
|
|
|
52
66
|
"sourceRun",
|
|
53
67
|
"createdAt",
|
|
54
68
|
"updatedAt",
|
|
69
|
+
"confidence",
|
|
70
|
+
"gateDecision",
|
|
55
71
|
"payload",
|
|
56
72
|
"review",
|
|
57
73
|
]);
|
|
@@ -297,7 +313,7 @@ export function shapeSearchHit(hit, detail) {
|
|
|
297
313
|
}
|
|
298
314
|
// Stash hit (local or remote)
|
|
299
315
|
// `ref` is included at `brief` so agents can run `akm show <ref>` without
|
|
300
|
-
// needing --detail full or --
|
|
316
|
+
// needing --detail full or --shape agent (REC-03).
|
|
301
317
|
if (detail === "brief")
|
|
302
318
|
return pickFields(hit, ["type", "name", "ref", "action", "estimatedTokens", "keys"]);
|
|
303
319
|
if (detail === "normal") {
|
|
@@ -399,9 +415,7 @@ export function shapeShowOutput(result, detail, shape = "human") {
|
|
|
399
415
|
"related",
|
|
400
416
|
// path and editable are always projected so JSON consumers can locate and
|
|
401
417
|
// edit the asset without needing --detail full (QA #7).
|
|
402
|
-
|
|
403
|
-
// into structured JSON output (security fix M3).
|
|
404
|
-
...(result.type === "vault" ? [] : ["path"]),
|
|
418
|
+
"path",
|
|
405
419
|
"editable",
|
|
406
420
|
]);
|
|
407
421
|
if (detail !== "full") {
|
|
@@ -2,6 +2,10 @@
|
|
|
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 shape registration for `akm history` — paired with the text renderer in text.ts.
|
|
5
|
-
import { shapeHistoryOutput } from "./helpers";
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { shapeHistoryOutput } from "./helpers.js";
|
|
6
|
+
export const historyShapes = [
|
|
7
|
+
{
|
|
8
|
+
command: "history",
|
|
9
|
+
handler: (result, detail) => shapeHistoryOutput(result, detail),
|
|
10
|
+
},
|
|
11
|
+
];
|
|
@@ -1,11 +1,6 @@
|
|
|
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
|
-
// Identity-passthrough commands — registered here so the registry stays
|
|
5
|
-
// exhaustive (v1 spec §9). Each result object is already shaped at the
|
|
6
|
-
// command boundary; the registry just confirms there's no surprise
|
|
7
|
-
// command name slipping through.
|
|
8
|
-
import { registerOutputShape } from "./registry";
|
|
9
4
|
// #484: stamp schemaVersion + shape discriminator on passthrough envelopes so
|
|
10
5
|
// third-party consumers can pin a schema version and dispatch on shape uniformly.
|
|
11
6
|
// Idempotent — never overwrites an existing schemaVersion or shape field.
|
|
@@ -34,6 +29,8 @@ const PASSTHROUGH_COMMANDS = [
|
|
|
34
29
|
"env-create",
|
|
35
30
|
"env-export",
|
|
36
31
|
"env-remove",
|
|
32
|
+
"env-set",
|
|
33
|
+
"env-unset",
|
|
37
34
|
"feedback",
|
|
38
35
|
"graph-entities",
|
|
39
36
|
"graph-entity",
|
|
@@ -72,6 +69,7 @@ const PASSTHROUGH_COMMANDS = [
|
|
|
72
69
|
"tasks-doctor",
|
|
73
70
|
"tasks-enable",
|
|
74
71
|
"tasks-history",
|
|
72
|
+
"tasks-init",
|
|
75
73
|
"tasks-list",
|
|
76
74
|
"tasks-remove",
|
|
77
75
|
"tasks-run",
|
|
@@ -79,9 +77,6 @@ const PASSTHROUGH_COMMANDS = [
|
|
|
79
77
|
"tasks-sync",
|
|
80
78
|
"update",
|
|
81
79
|
"upgrade",
|
|
82
|
-
"vault-create",
|
|
83
|
-
"vault-set",
|
|
84
|
-
"vault-unset",
|
|
85
80
|
"wiki-create",
|
|
86
81
|
"wiki-ingest",
|
|
87
82
|
"wiki-lint",
|
|
@@ -92,6 +87,7 @@ const PASSTHROUGH_COMMANDS = [
|
|
|
92
87
|
"wiki-show",
|
|
93
88
|
"wiki-stash",
|
|
94
89
|
"workflow-complete",
|
|
90
|
+
"workflow-complete-rejected",
|
|
95
91
|
"workflow-create",
|
|
96
92
|
"workflow-list",
|
|
97
93
|
"workflow-next",
|
|
@@ -100,6 +96,7 @@ const PASSTHROUGH_COMMANDS = [
|
|
|
100
96
|
"workflow-status",
|
|
101
97
|
"workflow-validate",
|
|
102
98
|
];
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
export const passthroughShapes = PASSTHROUGH_COMMANDS.map((command) => ({
|
|
100
|
+
command,
|
|
101
|
+
handler: makeStampHandler(command),
|
|
102
|
+
}));
|
|
@@ -2,6 +2,10 @@
|
|
|
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 shape registration for `akm proposal accept` (#225).
|
|
5
|
-
import { shapeProposalAcceptOutput } from "
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { shapeProposalAcceptOutput } from "../helpers.js";
|
|
6
|
+
export const proposalAcceptShapes = [
|
|
7
|
+
{
|
|
8
|
+
command: "proposal-accept",
|
|
9
|
+
handler: (result, detail) => shapeProposalAcceptOutput(result, detail),
|
|
10
|
+
},
|
|
11
|
+
];
|
|
@@ -2,6 +2,10 @@
|
|
|
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 shape registration for `akm proposal diff` (#225).
|
|
5
|
-
import { shapeProposalDiffOutput } from "
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { shapeProposalDiffOutput } from "../helpers.js";
|
|
6
|
+
export const proposalDiffShapes = [
|
|
7
|
+
{
|
|
8
|
+
command: "proposal-diff",
|
|
9
|
+
handler: (result, detail) => shapeProposalDiffOutput(result, detail),
|
|
10
|
+
},
|
|
11
|
+
];
|
|
@@ -2,6 +2,10 @@
|
|
|
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 shape registration for `akm proposal list` (#225).
|
|
5
|
-
import { shapeProposalListOutput } from "
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { shapeProposalListOutput } from "../helpers.js";
|
|
6
|
+
export const proposalListShapes = [
|
|
7
|
+
{
|
|
8
|
+
command: "proposal-list",
|
|
9
|
+
handler: (result, detail) => shapeProposalListOutput(result, detail),
|
|
10
|
+
},
|
|
11
|
+
];
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
// Output shape registration for `akm reflect` and `akm propose` (#226).
|
|
5
5
|
// Both share the proposal-producer envelope shape (success carries a proposal
|
|
6
6
|
// entry; failure carries an AgentFailureReason discriminant).
|
|
7
|
-
import { shapeProposalProducerOutput } from "
|
|
8
|
-
import { registerOutputShape } from "./registry";
|
|
7
|
+
import { shapeProposalProducerOutput } from "../helpers.js";
|
|
9
8
|
const handler = (result, detail) => shapeProposalProducerOutput(result, detail);
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
export const proposalProducerShapes = [
|
|
10
|
+
{ command: "reflect", handler },
|
|
11
|
+
{ command: "propose", handler },
|
|
12
|
+
];
|
|
@@ -2,6 +2,10 @@
|
|
|
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 shape registration for `akm proposal reject` (#225).
|
|
5
|
-
import { shapeProposalRejectOutput } from "
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { shapeProposalRejectOutput } from "../helpers.js";
|
|
6
|
+
export const proposalRejectShapes = [
|
|
7
|
+
{
|
|
8
|
+
command: "proposal-reject",
|
|
9
|
+
handler: (result, detail) => shapeProposalRejectOutput(result, detail),
|
|
10
|
+
},
|
|
11
|
+
];
|
|
@@ -2,6 +2,10 @@
|
|
|
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 shape registration for `akm proposal show` (#225).
|
|
5
|
-
import { shapeProposalShowOutput } from "
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { shapeProposalShowOutput } from "../helpers.js";
|
|
6
|
+
export const proposalShowShapes = [
|
|
7
|
+
{
|
|
8
|
+
command: "proposal-show",
|
|
9
|
+
handler: (result, detail) => shapeProposalShowOutput(result, detail),
|
|
10
|
+
},
|
|
11
|
+
];
|
|
@@ -1,6 +1,10 @@
|
|
|
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 { shapeRegistrySearchOutput } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { shapeRegistrySearchOutput } from "./helpers.js";
|
|
5
|
+
export const registrySearchShapes = [
|
|
6
|
+
{
|
|
7
|
+
command: "registry-search",
|
|
8
|
+
handler: (result, detail) => shapeRegistrySearchOutput(result, detail),
|
|
9
|
+
},
|
|
10
|
+
];
|
|
@@ -15,6 +15,18 @@ const OUTPUT_SHAPE_REGISTRY = new Map();
|
|
|
15
15
|
export function registerOutputShape(command, handler) {
|
|
16
16
|
OUTPUT_SHAPE_REGISTRY.set(command, handler);
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Register a batch of {@link OutputShapeEntry} definitions in iteration order.
|
|
20
|
+
*
|
|
21
|
+
* This is the explicit-assembly entry point used by `shapes.ts`: the built-in
|
|
22
|
+
* shape set is registered by iterating a single explicit list exactly once,
|
|
23
|
+
* with no reliance on module import order.
|
|
24
|
+
*/
|
|
25
|
+
export function registerOutputShapes(entries) {
|
|
26
|
+
for (const { command, handler } of entries) {
|
|
27
|
+
OUTPUT_SHAPE_REGISTRY.set(command, handler);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
18
30
|
/**
|
|
19
31
|
* Remove a previously-registered output shape. Test-only utility.
|
|
20
32
|
*/
|
|
@@ -1,6 +1,10 @@
|
|
|
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 { shapeSearchOutput } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { shapeSearchOutput } from "./helpers.js";
|
|
5
|
+
export const searchShapes = [
|
|
6
|
+
{
|
|
7
|
+
command: "search",
|
|
8
|
+
handler: (result, detail, shape) => shapeSearchOutput(result, detail, shape),
|
|
9
|
+
},
|
|
10
|
+
];
|
|
@@ -1,19 +1,21 @@
|
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
4
|
+
export const secretListShapes = [
|
|
5
|
+
{
|
|
6
|
+
command: "secret-list",
|
|
7
|
+
handler: (result) => {
|
|
8
|
+
const r = result;
|
|
9
|
+
const secrets = Array.isArray(r.secrets) ? r.secrets : [];
|
|
10
|
+
return {
|
|
11
|
+
...r,
|
|
12
|
+
shape: r.shape ?? "secret-list",
|
|
13
|
+
schemaVersion: r.schemaVersion ?? 1,
|
|
14
|
+
secrets: secrets.map((s) => {
|
|
15
|
+
const { path: _path, ...rest } = s;
|
|
16
|
+
return rest;
|
|
17
|
+
}),
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
];
|
|
@@ -1,6 +1,10 @@
|
|
|
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 { shapeShowOutput } from "./helpers";
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { shapeShowOutput } from "./helpers.js";
|
|
5
|
+
export const showShapes = [
|
|
6
|
+
{
|
|
7
|
+
command: "show",
|
|
8
|
+
handler: (result, detail, shape) => shapeShowOutput(result, detail, shape),
|
|
9
|
+
},
|
|
10
|
+
];
|
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
|
+
];
|