@anna-ai/cli 0.1.22 → 0.1.23

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.
Files changed (55) hide show
  1. package/dist/{agent-Br6zY2qw.js → agent-DyXJhaZ0.js} +1 -1
  2. package/dist/{app-bundle-upload-DuLalcSt.js → app-bundle-upload-Cd4ci4rB.js} +1 -1
  3. package/dist/{apps-cut-DtEkddIk.js → apps-cut-BG6Ib3x4.js} +6 -4
  4. package/dist/{apps-destructive-DSTrcFUP.js → apps-destructive-DQIFqYE2.js} +1 -1
  5. package/dist/{apps-discard-y3_IwcbQ.js → apps-discard-BveXHAgF.js} +6 -4
  6. package/dist/{apps-publish-DfZTOxBJ.js → apps-publish-D403z305.js} +5 -5
  7. package/dist/{apps-publish-CaTCanDu.js → apps-publish-U_Y7svJw.js} +4 -4
  8. package/dist/{apps-push-B9XT2uwF.js → apps-push-x5reIQHx.js} +20 -6
  9. package/dist/{apps-release-BLH9XSxB.js → apps-release-ByIgz6lx.js} +2 -2
  10. package/dist/{apps-submit-review-DLwCxeAs.js → apps-submit-review-D-cPtZtc.js} +1 -1
  11. package/dist/{apps-sync-meta-D9eKMMUp.js → apps-sync-meta-CTHwGlzI.js} +2 -2
  12. package/dist/{bridge-BuklhzeE.js → bridge-CBew_Ytl.js} +1 -1
  13. package/dist/bridge-DZmZIWG0.js +3 -0
  14. package/dist/cli.js +57 -40
  15. package/dist/{dev-E7mqXj5S.js → dev-CyFATq6R.js} +4 -4
  16. package/dist/dev-DdjwQzJ2.js +3 -0
  17. package/dist/{doctor-DKrt-Kda.js → doctor-oqYeEjLv.js} +1 -1
  18. package/dist/{executa-destructive-COQE4Xqi.js → executa-destructive-Dpo58lxI.js} +1 -1
  19. package/dist/{executa-dev-BvS9zTpO.js → executa-dev-DFp1ckAn.js} +8 -8
  20. package/dist/executa-install-DnBG8UJA.js +90 -0
  21. package/dist/executa-install-viq3kiV7.js +6 -0
  22. package/dist/{executa-publish-Ca5V7MyA.js → executa-publish-BKFq6Hz9.js} +1 -1
  23. package/dist/{executa-publish-B88_9gbp.js → executa-publish-DaYvxbbW.js} +2 -2
  24. package/dist/{manifest-DGwRap2i.js → manifest-hXWnNFHE.js} +73 -14
  25. package/dist/{publish-C1wcf-qI.js → publish-R3JAl9Hm.js} +5 -5
  26. package/dist/{server-_IG8Igje.js → server-BzfmXVJD.js} +1 -1
  27. package/dist/{storage-CTkApNQ9.js → storage-BCj754in.js} +1 -1
  28. package/dist/test/index.js +3 -0
  29. package/dist/{working-orchestration-Dw9u1Vq0.js → working-orchestration-CIpQ_JMY.js} +51 -4
  30. package/package.json +1 -1
  31. package/templates/executa/go/main.go +4 -2
  32. package/templates/executa/node/plugin.mjs +4 -2
  33. package/templates/executa/python/__SLUG_PY___plugin.py +4 -2
  34. package/dist/bridge-Id8K8gr-.js +0 -3
  35. package/dist/dev-BS_8yoSm.js +0 -3
  36. /package/dist/{app-cache-BEM653Th.js → app-cache-TcmbIIuL.js} +0 -0
  37. /package/dist/{apps-BTn9EN0x.js → apps-B57i8xeb.js} +0 -0
  38. /package/dist/{apps-grants-BGWlpee0.js → apps-grants-D3i6GxX_.js} +0 -0
  39. /package/dist/{apps-status-DQ9RvlME.js → apps-status-BYo97Nh5.js} +0 -0
  40. /package/dist/{apps-versions-2Tmk0nsx.js → apps-versions-Ca-AAMLL.js} +0 -0
  41. /package/dist/{confirm-DxHkk9Wn.js → confirm-C-4haiIg.js} +0 -0
  42. /package/dist/{dev-account-qRaET1Cp.js → dev-account-CD6hTr7M.js} +0 -0
  43. /package/dist/{dev-app-cache-D-r6ZpEk.js → dev-app-cache-DMQLQ93-.js} +0 -0
  44. /package/dist/{executa-init-Jp-h9OI7.js → executa-init-By0kMPaF.js} +0 -0
  45. /package/dist/{executa-reads-CQ6S8gHY.js → executa-reads-cd-8ZRjI.js} +0 -0
  46. /package/dist/{executa-register-CulDtwYZ.js → executa-register-BX29VfcD.js} +0 -0
  47. /package/dist/{fixture-CYwxbiQD.js → fixture-C9VLX3os.js} +0 -0
  48. /package/dist/{host_upload-GXVkDM5M.js → host_upload-wKM0jQoL.js} +0 -0
  49. /package/dist/{image-DduR91n5.js → image-CBSlNb-9.js} +0 -0
  50. /package/dist/{login-BGqFjQwH.js → login-D4cU2Jcp.js} +0 -0
  51. /package/dist/{logout-CGIRKH3y.js → logout-DOpL3vXX.js} +0 -0
  52. /package/dist/{runner-B-hIqx5L.js → runner-4-ugGH5e.js} +0 -0
  53. /package/dist/{sampling-CXke7hq1.js → sampling-finZ8aNJ.js} +0 -0
  54. /package/dist/{token-B9JUPelx.js → token-BGjbb2aU.js} +0 -0
  55. /package/dist/{whoami-BoFLEUcp.js → whoami-DarmijoA.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { canonicalHost } from "./credentials-BTv2IfUZ.js";
2
- import { hostOf, mintAppSession, requireAccount, withCode } from "./dev-account-qRaET1Cp.js";
2
+ import { hostOf, mintAppSession, requireAccount, withCode } from "./dev-account-CD6hTr7M.js";
3
3
  import { resolve } from "node:path";
4
4
  import { existsSync, readFileSync } from "node:fs";
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { finalizeBundle, finalizeWorkingBundle, getBundle, initBundle, initWorkingBundle, uploadBundleFile, uploadWorkingBundleFile } from "./apps-B1Nd8l_t.js";
2
2
  import { CliError } from "./client-Dn9zThOd.js";
3
- import { canonicalize } from "./executa-publish-Ca5V7MyA.js";
3
+ import { canonicalize } from "./executa-publish-BKFq6Hz9.js";
4
4
  import { join, relative, sep } from "node:path";
5
5
  import { readFileSync, readdirSync, statSync } from "node:fs";
6
6
  import { createHash } from "node:crypto";
@@ -4,11 +4,13 @@ import { CliError } from "./client-Dn9zThOd.js";
4
4
  import { readExecutasLock, writeExecutasLock } from "./bundled-executas-BNOKw4kv.js";
5
5
  import "./executas-Cep6KEo0.js";
6
6
  import "./executa-cache-BFoUtb4J.js";
7
- import "./executa-publish-Ca5V7MyA.js";
8
- import "./manifest-DGwRap2i.js";
7
+ import "./executa-publish-BKFq6Hz9.js";
8
+ import "./manifest-hXWnNFHE.js";
9
9
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
10
- import "./app-cache-BEM653Th.js";
11
- import { resolveAppBySlugOrCache } from "./working-orchestration-Dw9u1Vq0.js";
10
+ import "./dev-CyFATq6R.js";
11
+ import "./executa-install-DnBG8UJA.js";
12
+ import "./app-cache-TcmbIIuL.js";
13
+ import { resolveAppBySlugOrCache } from "./working-orchestration-CIpQ_JMY.js";
12
14
  import { resolve } from "node:path";
13
15
  import { bold, cyan, dim, green, yellow } from "kleur/colors";
14
16
 
@@ -2,7 +2,7 @@ import "./credentials-BTv2IfUZ.js";
2
2
  import { archiveApp, deleteApp, findAppBySlug, unarchiveApp, unpublishApp } from "./apps-B1Nd8l_t.js";
3
3
  import { CliError } from "./client-Dn9zThOd.js";
4
4
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
5
- import { ensureDestructiveAllowed } from "./confirm-DxHkk9Wn.js";
5
+ import { ensureDestructiveAllowed } from "./confirm-C-4haiIg.js";
6
6
  import { dim, green, yellow } from "kleur/colors";
7
7
 
8
8
  //#region src/commands/apps-destructive.ts
@@ -4,11 +4,13 @@ import "./client-Dn9zThOd.js";
4
4
  import "./bundled-executas-BNOKw4kv.js";
5
5
  import "./executas-Cep6KEo0.js";
6
6
  import "./executa-cache-BFoUtb4J.js";
7
- import "./executa-publish-Ca5V7MyA.js";
8
- import "./manifest-DGwRap2i.js";
7
+ import "./executa-publish-BKFq6Hz9.js";
8
+ import "./manifest-hXWnNFHE.js";
9
9
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
10
- import "./app-cache-BEM653Th.js";
11
- import { resolveAppBySlugOrCache } from "./working-orchestration-Dw9u1Vq0.js";
10
+ import "./dev-CyFATq6R.js";
11
+ import "./executa-install-DnBG8UJA.js";
12
+ import "./app-cache-TcmbIIuL.js";
13
+ import { resolveAppBySlugOrCache } from "./working-orchestration-CIpQ_JMY.js";
12
14
  import { dim, green, yellow } from "kleur/colors";
13
15
 
14
16
  //#region src/commands/apps-discard.ts
@@ -4,11 +4,11 @@ import "./client-Dn9zThOd.js";
4
4
  import "./bundled-executas-BNOKw4kv.js";
5
5
  import "./executas-Cep6KEo0.js";
6
6
  import "./executa-cache-BFoUtb4J.js";
7
- import "./executa-publish-Ca5V7MyA.js";
8
- import "./manifest-DGwRap2i.js";
7
+ import "./executa-publish-BKFq6Hz9.js";
8
+ import "./manifest-hXWnNFHE.js";
9
9
  import "./_lifecycle-shared-sbea9HtH.js";
10
- import "./app-cache-BEM653Th.js";
11
- import "./app-bundle-upload-DuLalcSt.js";
12
- import { runAppsPublish } from "./apps-publish-CaTCanDu.js";
10
+ import "./app-cache-TcmbIIuL.js";
11
+ import "./app-bundle-upload-Cd4ci4rB.js";
12
+ import { runAppsPublish } from "./apps-publish-U_Y7svJw.js";
13
13
 
14
14
  export { runAppsPublish };
@@ -2,11 +2,11 @@ import { canonicalHost } from "./credentials-BTv2IfUZ.js";
2
2
  import { createApp, createVersion, findAppBySlug, getApp } from "./apps-B1Nd8l_t.js";
3
3
  import { CliError } from "./client-Dn9zThOd.js";
4
4
  import { parseExecutaIdOverrides, readExecutasLock, substituteBundledRefs, validateBundledHandles, writeBundleToolIdSidecar, writeExecutasLock } from "./bundled-executas-BNOKw4kv.js";
5
- import { bumpVersion, bundleHash, manifestHash, rewriteVersion, runExecutaPublish } from "./executa-publish-Ca5V7MyA.js";
6
- import { loadAppManifest } from "./manifest-DGwRap2i.js";
5
+ import { bumpVersion, bundleHash, manifestHash, rewriteVersion, runExecutaPublish } from "./executa-publish-BKFq6Hz9.js";
6
+ import { loadAppManifest } from "./manifest-hXWnNFHE.js";
7
7
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
8
- import { appCacheMatches, readAppIdentity, writeAppIdentity } from "./app-cache-BEM653Th.js";
9
- import { isExistingDir, uploadAppBundle } from "./app-bundle-upload-DuLalcSt.js";
8
+ import { appCacheMatches, readAppIdentity, writeAppIdentity } from "./app-cache-TcmbIIuL.js";
9
+ import { isExistingDir, uploadAppBundle } from "./app-bundle-upload-Cd4ci4rB.js";
10
10
  import { resolve } from "node:path";
11
11
  import { bold, cyan, dim, green, yellow } from "kleur/colors";
12
12
 
@@ -4,12 +4,14 @@ import { CliError } from "./client-Dn9zThOd.js";
4
4
  import "./bundled-executas-BNOKw4kv.js";
5
5
  import "./executas-Cep6KEo0.js";
6
6
  import "./executa-cache-BFoUtb4J.js";
7
- import { bumpVersion, bundleHash, manifestHash, rewriteVersion } from "./executa-publish-Ca5V7MyA.js";
8
- import { loadAppManifest } from "./manifest-DGwRap2i.js";
7
+ import { bumpVersion, bundleHash, manifestHash, rewriteVersion } from "./executa-publish-BKFq6Hz9.js";
8
+ import { loadAppManifest } from "./manifest-hXWnNFHE.js";
9
9
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
10
- import "./app-cache-BEM653Th.js";
11
- import { resolveAppIdentity, resolveBundledExecutas } from "./working-orchestration-Dw9u1Vq0.js";
12
- import { isExistingDir, uploadWorkingBundle } from "./app-bundle-upload-DuLalcSt.js";
10
+ import "./dev-CyFATq6R.js";
11
+ import "./executa-install-DnBG8UJA.js";
12
+ import "./app-cache-TcmbIIuL.js";
13
+ import { installLocalBundledShims, resolveAppIdentity, resolveBundledExecutas } from "./working-orchestration-CIpQ_JMY.js";
14
+ import { isExistingDir, uploadWorkingBundle } from "./app-bundle-upload-Cd4ci4rB.js";
13
15
  import { resolve } from "node:path";
14
16
  import { bold, cyan, dim, green, yellow } from "kleur/colors";
15
17
 
@@ -27,7 +29,7 @@ async function runAppsPush(opts) {
27
29
  manifest.version = next;
28
30
  manifest.metadataRaw.version = next;
29
31
  }
30
- const { publishManifestRaw } = await resolveBundledExecutas({
32
+ const { publishManifestRaw, resolved } = await resolveBundledExecutas({
31
33
  manifest,
32
34
  cwd,
33
35
  host,
@@ -40,6 +42,13 @@ async function runAppsPush(opts) {
40
42
  account: opts.account,
41
43
  json: opts.json
42
44
  });
45
+ let installedShims = [];
46
+ if (!opts.dryRun && !opts.noInstallLocal && Object.keys(resolved).length > 0) installedShims = await installLocalBundledShims({
47
+ manifest,
48
+ cwd,
49
+ resolved,
50
+ json: opts.json
51
+ });
43
52
  const identity = await resolveAppIdentity({
44
53
  client,
45
54
  cwd,
@@ -101,6 +110,7 @@ async function runAppsPush(opts) {
101
110
  first_publish: firstPublish,
102
111
  status: finalApp.status,
103
112
  dirty_vs_latest_cut: draft?.dirty_vs_latest_cut ?? null,
113
+ installed_shims: installedShims,
104
114
  bundle: bundleResult ? {
105
115
  status: bundleResult.status,
106
116
  file_count: bundleResult.fileCount,
@@ -117,6 +127,10 @@ async function runAppsPush(opts) {
117
127
  else console.log(green(` ✓ working bundle: ${bundleResult.fileCount} files, ${(bundleResult.totalBytes / 1024).toFixed(1)} KB → ${bundleResult.bundleStatus}`));
118
128
  console.log(bold(cyan(`status: ${finalApp.status}`)));
119
129
  if (draft?.dirty_vs_latest_cut) console.log(dim(` (uncommitted changes vs latest cut version)`));
130
+ if (installedShims.length > 0) {
131
+ for (const s of installedShims) console.log(green(` ✓ installed local dev shim: `) + cyan(s.tool_id));
132
+ console.log(dim(`→ click `) + cyan(`Rediscover Local`) + dim(` in the Agent's Plugin Details to load `) + (installedShims.length === 1 ? dim("it") : dim("them")));
133
+ }
120
134
  console.log(dim(`→ install & test the draft (reserved `) + cyan(`0.0.0-draft`) + dim(`) from the Developer Console`));
121
135
  console.log(dim(`→ run `) + cyan(`anna-app apps cut ${manifest.version}`) + dim(` to snapshot an immutable version`));
122
136
  return 0;
@@ -2,7 +2,7 @@ import { canonicalHost } from "./credentials-BTv2IfUZ.js";
2
2
  import { findAppBySlug, getApp, getBundle, listVersions, publishVersion } from "./apps-B1Nd8l_t.js";
3
3
  import { CliError } from "./client-Dn9zThOd.js";
4
4
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
5
- import { readAppIdentity } from "./app-cache-BEM653Th.js";
5
+ import { readAppIdentity } from "./app-cache-TcmbIIuL.js";
6
6
  import { resolve } from "node:path";
7
7
  import { bold, cyan, dim, green, yellow } from "kleur/colors";
8
8
 
@@ -58,7 +58,7 @@ async function runAppsRelease(opts) {
58
58
  if (!target) {
59
59
  if (opts.allowCreate) {
60
60
  if (!opts.json) console.log(yellow(`version ${opts.version} not found remotely; running 'apps publish' first (--allow-create)…`));
61
- const { runAppsPublish } = await import("./apps-publish-DfZTOxBJ.js");
61
+ const { runAppsPublish } = await import("./apps-publish-D403z305.js");
62
62
  const code = await runAppsPublish({
63
63
  cwd: opts.cwd,
64
64
  account: opts.account,
@@ -2,7 +2,7 @@ import { canonicalHost } from "./credentials-BTv2IfUZ.js";
2
2
  import { findAppBySlug, getApp, submitForReview } from "./apps-B1Nd8l_t.js";
3
3
  import { CliError } from "./client-Dn9zThOd.js";
4
4
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
5
- import { readAppIdentity } from "./app-cache-BEM653Th.js";
5
+ import { readAppIdentity } from "./app-cache-TcmbIIuL.js";
6
6
  import { resolve } from "node:path";
7
7
  import { bold, cyan, green } from "kleur/colors";
8
8
 
@@ -1,9 +1,9 @@
1
1
  import { canonicalHost } from "./credentials-BTv2IfUZ.js";
2
2
  import { findAppBySlug, getApp, patchApp } from "./apps-B1Nd8l_t.js";
3
3
  import { CliError } from "./client-Dn9zThOd.js";
4
- import { loadAppManifest } from "./manifest-DGwRap2i.js";
4
+ import { loadAppManifest } from "./manifest-hXWnNFHE.js";
5
5
  import { resolveClient, withErrorHandling } from "./_lifecycle-shared-sbea9HtH.js";
6
- import { readAppIdentity } from "./app-cache-BEM653Th.js";
6
+ import { readAppIdentity } from "./app-cache-TcmbIIuL.js";
7
7
  import { resolve } from "node:path";
8
8
  import { bold, cyan, dim, green } from "kleur/colors";
9
9
 
@@ -9,7 +9,7 @@ import { createInterface } from "node:readline";
9
9
  * `uvx <pkg>@<version>` so end users always run the dispatcher version
10
10
  * the CLI was tested against.
11
11
  */
12
- const PINNED_RUNTIME_VERSION = "0.2.0a6";
12
+ const PINNED_RUNTIME_VERSION = "0.2.0a7";
13
13
  /**
14
14
  * Throwable from a {@link RequestHandler} to send a structured JSON-RPC
15
15
  * error back to the python bridge with a stable string ``code`` (e.g.
@@ -0,0 +1,3 @@
1
+ import { BridgeRequestError, PINNED_RUNTIME_VERSION, PythonBridge } from "./bridge-CBew_Ytl.js";
2
+
3
+ export { PINNED_RUNTIME_VERSION, PythonBridge };
package/dist/cli.js CHANGED
@@ -137,11 +137,16 @@ function hostApiAllows(manifest, ns, method) {
137
137
  if (!manifest.ui) return false;
138
138
  if (ns === "window") return true;
139
139
  const grants = manifest.ui.host_api ?? {};
140
+ if (ns === "tools" && (method === "invoke" || method === "list")) {
141
+ const tools = grants.tools;
142
+ if (tools && tools.length > 0) return true;
143
+ const declared = (manifest.required_executas?.length ?? 0) + (manifest.optional_executas?.length ?? 0);
144
+ return declared > 0;
145
+ }
140
146
  const methods = grants[ns];
141
147
  if (!methods || methods.length === 0) return false;
142
148
  if (methods.includes("*")) return true;
143
149
  if (methods.includes(method)) return true;
144
- if (ns === "tools" && (method === "invoke" || method === "list")) return true;
145
150
  return false;
146
151
  }
147
152
  function checkHostApiAllowance(usages, manifest, bundleMethods) {
@@ -460,7 +465,7 @@ program.command("validate").description("Run schema + ACL checks on a manifest+b
460
465
  process.exit(code);
461
466
  });
462
467
  program.command("dev").description("Run a local harness (in-process dispatcher + iframe + SSE relay)").option("--manifest <path>", "manifest.json path", "manifest.json").option("--bundle <dir>", "bundle directory (default: ./bundle)").option("--slug <slug>", "App slug (overrides manifest.slug/name)").option("--view <name>", "View name to open (default: manifest default)").option("--matrix-nexus-root <path>", "matrix-nexus checkout (auto-detected if omitted; can also use $ANNA_NEXUS_ROOT)").option("--port <number>", "HTTP port", "5180").option("--user-id <id>", "Harness user_id", "1").option("--cwd <dir>", "Project root (default: cwd)").option("--no-watch", "Disable bundle file watcher (default: enabled)").option("--executa <spec>", "Explicit executa registration; repeatable. Spec: comma-separated key=value (dir=<path>[,tool_id=<id>][,type=python|node|go|binary][,command=\"<argv>\"]). When only `dir=` is given, the executa is auto-detected from executa.json / pyproject.toml / package.json / go.mod. Overrides directory auto-discovery under <manifest-dir>/executas/.", (val, prev) => prev ? [...prev, val] : [val]).option("--no-llm", "Disable LLM bridge (anna.llm/agent return llm_disabled)").option("--mock-llm <fixture>", "Serve canned LLM responses from a JSONL fixture").option("--llm-account <host>", "Saved account host to use (default: current)").option("--llm-app-slug <slug>", "Override the manifest slug used to register / look up the dev AnnaApp (default: manifest.slug)").option("--storage <mode>", "Storage backend: \"legacy\" (in-memory runtime_state, default) or \"aps\" (real nexus APS via /api/v1/storage/* — requires `anna-app login`).", "legacy").action(async (opts) => {
463
- const { runDev, parseExecutaSpec } = await import("./dev-BS_8yoSm.js");
468
+ const { runDev, parseExecutaSpec } = await import("./dev-DdjwQzJ2.js");
464
469
  const cwd = opts.cwd ?? process.cwd();
465
470
  let executas;
466
471
  if (opts.executa && opts.executa.length > 0) {
@@ -495,7 +500,7 @@ program.command("dev").description("Run a local harness (in-process dispatcher +
495
500
  });
496
501
  const fixture = program.command("fixture").description("Inspect / replay harness recordings (Phase 6)");
497
502
  fixture.command("verify <file>").description("Schema + invariant checks on a harness JSONL recording").option("--json", "Emit machine-readable JSON", false).action(async (file, opts) => {
498
- const { runFixtureVerify } = await import("./fixture-CYwxbiQD.js");
503
+ const { runFixtureVerify } = await import("./fixture-C9VLX3os.js");
499
504
  const code = await runFixtureVerify({
500
505
  file,
501
506
  json: opts.json
@@ -503,7 +508,7 @@ fixture.command("verify <file>").description("Schema + invariant checks on a har
503
508
  process.exit(code);
504
509
  });
505
510
  fixture.command("summarize <file>").description("Print a human-readable digest of a harness recording").option("--json", "Emit machine-readable JSON", false).action(async (file, opts) => {
506
- const { runFixtureSummarize } = await import("./fixture-CYwxbiQD.js");
511
+ const { runFixtureSummarize } = await import("./fixture-C9VLX3os.js");
507
512
  const code = await runFixtureSummarize({
508
513
  file,
509
514
  json: opts.json
@@ -511,7 +516,7 @@ fixture.command("summarize <file>").description("Print a human-readable digest o
511
516
  process.exit(code);
512
517
  });
513
518
  fixture.command("replay <file>").description("Dry-run replay of a harness recording (Phase 6 MVP)").option("--manifest <path>", "manifest.json path", "manifest.json").action(async (file, opts) => {
514
- const { runFixtureReplay } = await import("./fixture-CYwxbiQD.js");
519
+ const { runFixtureReplay } = await import("./fixture-C9VLX3os.js");
515
520
  const code = await runFixtureReplay({
516
521
  file,
517
522
  manifest: opts.manifest
@@ -519,12 +524,12 @@ fixture.command("replay <file>").description("Dry-run replay of a harness record
519
524
  process.exit(code);
520
525
  });
521
526
  program.command("doctor").description("Check environment for `anna-app dev` (uv, matrix-nexus, dev key)").option("--matrix-nexus-root <path>", "matrix-nexus checkout (optional)").action(async (opts) => {
522
- const { runDoctor } = await import("./doctor-DKrt-Kda.js");
527
+ const { runDoctor } = await import("./doctor-oqYeEjLv.js");
523
528
  const code = await runDoctor({ matrixNexusRoot: opts.matrixNexusRoot });
524
529
  process.exit(code);
525
530
  });
526
531
  program.command("login").description("Device-flow login against a nexus host; saves a PAT to ~/.config/anna/credentials.json").requiredOption("--host <url>", "nexus base URL, e.g. https://nexus.example.com").option("--no-browser", "Do not open a browser window automatically", false).action(async (opts) => {
527
- const { runLogin } = await import("./login-BGqFjQwH.js");
532
+ const { runLogin } = await import("./login-D4cU2Jcp.js");
528
533
  const code = await runLogin({
529
534
  host: opts.host,
530
535
  noBrowser: opts.browser === false
@@ -532,7 +537,7 @@ program.command("login").description("Device-flow login against a nexus host; sa
532
537
  process.exit(code);
533
538
  });
534
539
  program.command("logout").description("Remove a saved PAT entry").option("--host <url>", "Account to remove (default: current)").option("--all", "Remove every saved account", false).action(async (opts) => {
535
- const { runLogout } = await import("./logout-CGIRKH3y.js");
540
+ const { runLogout } = await import("./logout-DOpL3vXX.js");
536
541
  const code = await runLogout({
537
542
  host: opts.host,
538
543
  all: opts.all
@@ -540,7 +545,7 @@ program.command("logout").description("Remove a saved PAT entry").option("--host
540
545
  process.exit(code);
541
546
  });
542
547
  program.command("whoami").description("Show the current account (and any others)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
543
- const { runWhoami } = await import("./whoami-BoFLEUcp.js");
548
+ const { runWhoami } = await import("./whoami-DarmijoA.js");
544
549
  const code = await runWhoami({ json: opts.json });
545
550
  process.exit(code);
546
551
  });
@@ -556,7 +561,7 @@ executa.command("init <dir>").description("Scaffold a standalone Executa plugin
556
561
  console.error(`✗ unknown template "${opts.template}" — expected python | node | go`);
557
562
  process.exit(2);
558
563
  }
559
- const { runExecutaInit } = await import("./executa-init-Jp-h9OI7.js");
564
+ const { runExecutaInit } = await import("./executa-init-By0kMPaF.js");
560
565
  const code = runExecutaInit({
561
566
  targetDir: dir,
562
567
  slug,
@@ -566,13 +571,24 @@ executa.command("init <dir>").description("Scaffold a standalone Executa plugin
566
571
  });
567
572
  process.exit(code);
568
573
  });
569
- executa.command("register").description("Register a HARNESS AnnaApp(kind=executa) so `executa dev --storage real` (and agent / sampling / image / upload real-mode flows) can mint tokens for a local executa subprocess. Does NOT publish the executa itself — use `executa publish` for that. Lists/deletes via `apps list` / `apps delete`.").requiredOption("--tool-id <id>", "Executa tool_id (matches manifest.name)").option("--slug <slug>", "App slug (default: executa-<tool_id>; must be lowercase + hyphens)").option("--name <name>", "Human-readable display name (default: <tool_id>)").option("--account <host>", "Saved account host (default: current)").action(async (opts) => {
570
- const { runExecutaRegister } = await import("./executa-register-CulDtwYZ.js");
574
+ executa.command("register").description("Register a HARNESS AnnaApp(kind=executa) so `executa dev --storage real` (and agent / sampling / image / upload real-mode flows) can mint tokens for a local executa subprocess. Does NOT publish the executa itself — use `executa publish` for that. Lists/deletes via `apps list` / `apps delete`.").requiredOption("--tool-id <id>", "Executa tool_id (matches executa.json tool_id / executable_name)").option("--slug <slug>", "App slug (default: executa-<tool_id>; must be lowercase + hyphens)").option("--name <name>", "Human-readable display name (default: <tool_id>)").option("--account <host>", "Saved account host (default: current)").action(async (opts) => {
575
+ const { runExecutaRegister } = await import("./executa-register-BX29VfcD.js");
571
576
  const code = await runExecutaRegister(opts);
572
577
  process.exit(code);
573
578
  });
579
+ executa.command("install").description("Install a local-dev shim for an Executa under its minted tool_id so the Agent can discover it via 'Rediscover Local' (for distribution_type: local). Resolves the tool_id from .anna/executa.json (written by `executa publish` / `apps push`) unless --tool-id is given.").option("--dir <path>", "Executa project dir (default: CWD)").option("--tool-id <id>", "Install the shim under this exact id (default: minted id from .anna/executa.json, else executa.json tool_id)").option("--bin-dir <path>", "Install dir for the shim (default: ~/.anna/executa/bin)").option("--force", "Overwrite an existing shim of the same name", false).option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
580
+ const { runExecutaInstall } = await import("./executa-install-viq3kiV7.js");
581
+ const code = await runExecutaInstall({
582
+ dir: opts.dir,
583
+ toolId: opts.toolId,
584
+ binDir: opts.binDir,
585
+ force: opts.force,
586
+ json: opts.json
587
+ });
588
+ process.exit(code);
589
+ });
574
590
  executa.command("dev").description("Run one Executa plugin in isolation (REPL or one-shot describe/invoke)").option("--dir <path>", "Executa project dir (default: CWD)").option("--spec <spec>", "Override discovery: comma-separated key=value (tool_id=...,type=...,command=\"...\")").option("--describe", "Print MANIFEST and exit", false).option("--health", "Print health and exit", false).option("--invoke <tool>", "Invoke one tool and exit").option("--args <json>", "JSON object passed as tool arguments", "{}").option("--json", "One-shot: emit compact JSON (no banners)", false).option("--no-sampling", "Hard-disable sampling reverse RPC (returns sampling_disabled)").option("--mock-sampling <fixture>", "Serve canned sampling responses from a JSONL fixture (offline)").option("--app-slug <slug>", "Forward sampling to nexus on behalf of this dev AnnaApp slug").option("--sampling-account <host>", "Saved account host for nexus sampling (default: current)").option("--no-agent", "Hard-disable agent reverse RPC (returns agent_not_granted)").option("--mock-agent <fixture>", "Serve canned agent/* responses from a JSONL fixture (offline)").option("--agent-account <host>", "Saved account host for nexus agent (default: --sampling-account or current)").option("--storage <mode>", "Storage backend: off | memory | mock | real (default: memory)").option("--mock-storage <fixture>", "Serve canned storage/* + files/* responses from a JSONL fixture").option("--storage-account <host>", "Saved account host for nexus storage (default: --sampling-account or current)").option("--storage-scopes <list>", "Comma-separated scopes for real storage tokens (default: user,app,tool)").option("--no-image", "Hard-disable image reverse RPC (returns image_not_granted)").option("--mock-image <fixture>", "Serve canned image/generate + image/edit responses from a JSONL fixture").option("--image-account <host>", "Saved account host for nexus image (default: --sampling-account or current)").option("--no-upload", "Hard-disable host/uploadFile reverse RPC (returns upload_not_granted)").option("--mock-upload <fixture>", "Serve canned host/uploadFile responses from a JSONL fixture").option("--upload-account <host>", "Saved account host for nexus uploads (default: --sampling-account or current)").action(async (opts) => {
575
- const { runExecutaDev } = await import("./executa-dev-BvS9zTpO.js");
591
+ const { runExecutaDev } = await import("./executa-dev-DFp1ckAn.js");
576
592
  const storageMode = opts.storage === void 0 ? void 0 : (() => {
577
593
  const m = opts.storage;
578
594
  if (m === "off" || m === "memory" || m === "mock" || m === "real") return m;
@@ -609,7 +625,7 @@ executa.command("dev").description("Run one Executa plugin in isolation (REPL or
609
625
  });
610
626
  const apps = program.command("apps").description("Anna App publish lifecycle commands");
611
627
  apps.command("list").description("List the Anna Apps you authored, with lifecycle status").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
612
- const { runAppsList } = await import("./apps-BTn9EN0x.js");
628
+ const { runAppsList } = await import("./apps-B57i8xeb.js");
613
629
  process.exit(await runAppsList({
614
630
  account: opts.account,
615
631
  json: opts.json
@@ -624,7 +640,7 @@ apps.command("publish").description("Publish or update an Anna App (manifest.jso
624
640
  console.error(`✗ --bump must be patch|minor|major (got: ${opts.bump})`);
625
641
  process.exit(2);
626
642
  }
627
- const { runAppsPublish } = await import("./apps-publish-DfZTOxBJ.js");
643
+ const { runAppsPublish } = await import("./apps-publish-D403z305.js");
628
644
  process.exit(await runAppsPublish({
629
645
  cwd: opts.cwd,
630
646
  manifest: opts.manifest,
@@ -640,7 +656,7 @@ apps.command("publish").description("Publish or update an Anna App (manifest.jso
640
656
  json: opts.json
641
657
  }));
642
658
  });
643
- apps.command("push").description("Upsert the mutable working draft (manifest + bundle, no freeze)").option("--cwd <dir>", "Project root (default: cwd)").option("--manifest <path>", "manifest.json path", "manifest.json").option("--bump <kind>", "Bump version: patch|minor|major").option("--no-write", "Skip writing the bumped version back to disk", false).option("--dry-run", "Resolve identity + diff but don't upsert", false).option("--executa-id <handle=id>", "Override a bundled executa handle with a real tool_id (repeatable)", (val, prev) => [...prev, val], []).option("--skip-executa-publish", "Use cached/overridden tool_ids; don't recursively register bundled executas", false).option("--no-bundled-executas", "Disable bundled-executa orchestration (legacy behaviour)").option("--no-bundle", "Skip working UI bundle upload even if the manifest declares a UI").option("--bundle-dir <dir>", "UI bundle directory (default: <cwd>/bundle)").option("--if-match <revision>", "Optimistic-lock: require this working revision").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
659
+ apps.command("push").description("Upsert the mutable working draft (manifest + bundle, no freeze)").option("--cwd <dir>", "Project root (default: cwd)").option("--manifest <path>", "manifest.json path", "manifest.json").option("--bump <kind>", "Bump version: patch|minor|major").option("--no-write", "Skip writing the bumped version back to disk", false).option("--dry-run", "Resolve identity + diff but don't upsert", false).option("--executa-id <handle=id>", "Override a bundled executa handle with a real tool_id (repeatable)", (val, prev) => [...prev, val], []).option("--skip-executa-publish", "Use cached/overridden tool_ids; don't recursively register bundled executas", false).option("--no-bundled-executas", "Disable bundled-executa orchestration (legacy behaviour)").option("--no-bundle", "Skip working UI bundle upload even if the manifest declares a UI").option("--bundle-dir <dir>", "UI bundle directory (default: <cwd>/bundle)").option("--no-install-local", "Don't install local-dev shims for bundled `local` executas (skip Rediscover-Local prep)").option("--if-match <revision>", "Optimistic-lock: require this working revision").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
644
660
  if (opts.bump && ![
645
661
  "patch",
646
662
  "minor",
@@ -657,7 +673,7 @@ apps.command("push").description("Upsert the mutable working draft (manifest + b
657
673
  process.exit(2);
658
674
  }
659
675
  }
660
- const { runAppsPush } = await import("./apps-push-B9XT2uwF.js");
676
+ const { runAppsPush } = await import("./apps-push-x5reIQHx.js");
661
677
  process.exit(await runAppsPush({
662
678
  cwd: opts.cwd,
663
679
  manifest: opts.manifest,
@@ -669,13 +685,14 @@ apps.command("push").description("Upsert the mutable working draft (manifest + b
669
685
  noBundledExecutas: opts.bundledExecutas === false,
670
686
  noBundle: opts.bundle === false,
671
687
  bundleDir: opts.bundleDir,
688
+ noInstallLocal: opts.installLocal === false,
672
689
  ifMatch,
673
690
  account: opts.account,
674
691
  json: opts.json
675
692
  }));
676
693
  });
677
694
  apps.command("cut <version>").description("Snapshot the working draft into an immutable version (freeze deps)").option("--changelog <text>", "Override the working draft changelog for this version").option("--slug <slug>", "App slug (default: resolve from .anna/app.json cache)").option("--cwd <dir>", "Project root for identity cache (default: cwd)").option("--dry-run", "Resolve target but don't cut", false).option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (version, opts) => {
678
- const { runAppsCut } = await import("./apps-cut-DtEkddIk.js");
695
+ const { runAppsCut } = await import("./apps-cut-BG6Ib3x4.js");
679
696
  process.exit(await runAppsCut({
680
697
  version,
681
698
  changelog: opts.changelog,
@@ -687,7 +704,7 @@ apps.command("cut <version>").description("Snapshot the working draft into an im
687
704
  }));
688
705
  });
689
706
  apps.command("discard").description("Drop the mutable working draft (leaves cut versions intact)").option("--slug <slug>", "App slug (default: resolve from .anna/app.json cache)").option("--cwd <dir>", "Project root for identity cache (default: cwd)").option("--dry-run", "Resolve target but don't discard", false).option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
690
- const { runAppsDiscard } = await import("./apps-discard-y3_IwcbQ.js");
707
+ const { runAppsDiscard } = await import("./apps-discard-BveXHAgF.js");
691
708
  process.exit(await runAppsDiscard({
692
709
  slug: opts.slug,
693
710
  cwd: opts.cwd,
@@ -697,7 +714,7 @@ apps.command("discard").description("Drop the mutable working draft (leaves cut
697
714
  }));
698
715
  });
699
716
  apps.command("release <version>").description("Freeze & publish an existing remote version (go live)").option("--slug <slug>", "App slug (default: resolve from .anna/app.json cache)").option("--cwd <dir>", "Project root for identity cache (default: cwd)").option("--allow-create", "If the version isn't on the server, run 'apps publish' first, then release", false).option("--dry-run", "Resolve target + pre-flight but don't publish", false).option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (version, opts) => {
700
- const { runAppsRelease } = await import("./apps-release-BLH9XSxB.js");
717
+ const { runAppsRelease } = await import("./apps-release-ByIgz6lx.js");
701
718
  process.exit(await runAppsRelease({
702
719
  version,
703
720
  slug: opts.slug,
@@ -709,7 +726,7 @@ apps.command("release <version>").description("Freeze & publish an existing remo
709
726
  }));
710
727
  });
711
728
  apps.command("sync-meta").description("Push mutable store metadata (name/tagline/…) from the manifest").option("--cwd <dir>", "Project root (default: cwd)").option("--manifest <path>", "manifest.json path", "manifest.json").option("--dry-run", "Print the metadata diff but don't PATCH", false).option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
712
- const { runAppsSyncMeta } = await import("./apps-sync-meta-D9eKMMUp.js");
729
+ const { runAppsSyncMeta } = await import("./apps-sync-meta-CTHwGlzI.js");
713
730
  process.exit(await runAppsSyncMeta({
714
731
  cwd: opts.cwd,
715
732
  manifest: opts.manifest,
@@ -719,7 +736,7 @@ apps.command("sync-meta").description("Push mutable store metadata (name/tagline
719
736
  }));
720
737
  });
721
738
  apps.command("submit-review [slug]").description("Move an app into review (DRAFT/REJECTED → PENDING_REVIEW)").option("--cwd <dir>", "Project root for identity cache (default: cwd)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
722
- const { runAppsSubmitReview } = await import("./apps-submit-review-DLwCxeAs.js");
739
+ const { runAppsSubmitReview } = await import("./apps-submit-review-D-cPtZtc.js");
723
740
  process.exit(await runAppsSubmitReview({
724
741
  slug,
725
742
  cwd: opts.cwd,
@@ -728,7 +745,7 @@ apps.command("submit-review [slug]").description("Move an app into review (DRAFT
728
745
  }));
729
746
  });
730
747
  apps.command("status <slug>").description("Show server-known state for one Anna App").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
731
- const { runAppsStatus } = await import("./apps-status-DQ9RvlME.js");
748
+ const { runAppsStatus } = await import("./apps-status-BYo97Nh5.js");
732
749
  process.exit(await runAppsStatus({
733
750
  slug,
734
751
  account: opts.account,
@@ -736,7 +753,7 @@ apps.command("status <slug>").description("Show server-known state for one Anna
736
753
  }));
737
754
  });
738
755
  apps.command("versions <slug>").description("List all server versions of one Anna App").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
739
- const { runAppsVersions } = await import("./apps-versions-2Tmk0nsx.js");
756
+ const { runAppsVersions } = await import("./apps-versions-Ca-AAMLL.js");
740
757
  process.exit(await runAppsVersions({
741
758
  slug,
742
759
  account: opts.account,
@@ -744,7 +761,7 @@ apps.command("versions <slug>").description("List all server versions of one Ann
744
761
  }));
745
762
  });
746
763
  apps.command("grants <slug>").description("Show currently granted scopes/quota for one Anna App").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
747
- const { runAppsGrants } = await import("./apps-grants-BGWlpee0.js");
764
+ const { runAppsGrants } = await import("./apps-grants-D3i6GxX_.js");
748
765
  process.exit(await runAppsGrants({
749
766
  slug,
750
767
  account: opts.account,
@@ -752,7 +769,7 @@ apps.command("grants <slug>").description("Show currently granted scopes/quota f
752
769
  }));
753
770
  });
754
771
  apps.command("unpublish <slug>").description("Flip a PUBLISHED app back to APPROVED (private)").option("--yes", "Acknowledge the destructive operation", false).option("--confirm <slug>", "Slug confirmation (must match target)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
755
- const { runAppsUnpublish } = await import("./apps-destructive-DSTrcFUP.js");
772
+ const { runAppsUnpublish } = await import("./apps-destructive-DQIFqYE2.js");
756
773
  process.exit(await runAppsUnpublish({
757
774
  slug,
758
775
  yes: opts.yes,
@@ -762,7 +779,7 @@ apps.command("unpublish <slug>").description("Flip a PUBLISHED app back to APPRO
762
779
  }));
763
780
  });
764
781
  apps.command("archive <slug>").description("Archive an Anna App (hides it from end users)").option("--yes", "Acknowledge the destructive operation", false).option("--confirm <slug>", "Slug confirmation (must match target)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
765
- const { runAppsArchive } = await import("./apps-destructive-DSTrcFUP.js");
782
+ const { runAppsArchive } = await import("./apps-destructive-DQIFqYE2.js");
766
783
  process.exit(await runAppsArchive({
767
784
  slug,
768
785
  yes: opts.yes,
@@ -772,7 +789,7 @@ apps.command("archive <slug>").description("Archive an Anna App (hides it from e
772
789
  }));
773
790
  });
774
791
  apps.command("unarchive <slug>").description("Restore an archived Anna App back to APPROVED").option("--yes", "Acknowledge the operation", false).option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
775
- const { runAppsUnarchive } = await import("./apps-destructive-DSTrcFUP.js");
792
+ const { runAppsUnarchive } = await import("./apps-destructive-DQIFqYE2.js");
776
793
  process.exit(await runAppsUnarchive({
777
794
  slug,
778
795
  yes: opts.yes,
@@ -781,7 +798,7 @@ apps.command("unarchive <slug>").description("Restore an archived Anna App back
781
798
  }));
782
799
  });
783
800
  apps.command("delete <slug>").description("Hard-delete an Anna App (refused by server if installs exist)").option("--yes", "Acknowledge the destructive operation", false).option("--confirm <slug>", "Slug confirmation (must match target)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
784
- const { runAppsDelete } = await import("./apps-destructive-DSTrcFUP.js");
801
+ const { runAppsDelete } = await import("./apps-destructive-DQIFqYE2.js");
785
802
  process.exit(await runAppsDelete({
786
803
  slug,
787
804
  yes: opts.yes,
@@ -791,14 +808,14 @@ apps.command("delete <slug>").description("Hard-delete an Anna App (refused by s
791
808
  }));
792
809
  });
793
810
  executa.command("list").description("List Executas owned by the current PAT").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
794
- const { runExecutaList } = await import("./executa-reads-CQ6S8gHY.js");
811
+ const { runExecutaList } = await import("./executa-reads-cd-8ZRjI.js");
795
812
  process.exit(await runExecutaList({
796
813
  account: opts.account,
797
814
  json: opts.json
798
815
  }));
799
816
  });
800
817
  executa.command("status <ref>").description("Show server-known state for one Executa (slug or tool_id)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (ref, opts) => {
801
- const { runExecutaStatus } = await import("./executa-reads-CQ6S8gHY.js");
818
+ const { runExecutaStatus } = await import("./executa-reads-cd-8ZRjI.js");
802
819
  process.exit(await runExecutaStatus({
803
820
  ref,
804
821
  account: opts.account,
@@ -806,7 +823,7 @@ executa.command("status <ref>").description("Show server-known state for one Exe
806
823
  }));
807
824
  });
808
825
  executa.command("versions <ref>").description("List immutable version snapshots for one Executa").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (ref, opts) => {
809
- const { runExecutaVersions } = await import("./executa-reads-CQ6S8gHY.js");
826
+ const { runExecutaVersions } = await import("./executa-reads-cd-8ZRjI.js");
810
827
  process.exit(await runExecutaVersions({
811
828
  ref,
812
829
  account: opts.account,
@@ -822,7 +839,7 @@ executa.command("publish").description("Mint or update an Executa (executa.json
822
839
  console.error(`✗ --bump must be patch|minor|major (got: ${opts.bump})`);
823
840
  process.exit(2);
824
841
  }
825
- const { runExecutaPublish } = await import("./executa-publish-B88_9gbp.js");
842
+ const { runExecutaPublish } = await import("./executa-publish-DaYvxbbW.js");
826
843
  process.exit(await runExecutaPublish({
827
844
  cwd: opts.cwd,
828
845
  manifest: opts.manifest,
@@ -835,7 +852,7 @@ executa.command("publish").description("Mint or update an Executa (executa.json
835
852
  }));
836
853
  });
837
854
  executa.command("unpublish <slug>").description("Flip an Executa's visibility back to private").option("--yes", "Acknowledge the destructive operation", false).option("--confirm <slug>", "Slug confirmation (must match target)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
838
- const { runExecutaUnpublish } = await import("./executa-destructive-COQE4Xqi.js");
855
+ const { runExecutaUnpublish } = await import("./executa-destructive-Dpo58lxI.js");
839
856
  process.exit(await runExecutaUnpublish({
840
857
  slug,
841
858
  yes: opts.yes,
@@ -845,7 +862,7 @@ executa.command("unpublish <slug>").description("Flip an Executa's visibility ba
845
862
  }));
846
863
  });
847
864
  executa.command("yank <ref>").description("Hard-delete one Executa version (<slug>@<version>)").option("--yes", "Acknowledge the destructive operation", false).option("--confirm <slug>", "Slug confirmation (must match target)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (ref, opts) => {
848
- const { runExecutaYank } = await import("./executa-destructive-COQE4Xqi.js");
865
+ const { runExecutaYank } = await import("./executa-destructive-Dpo58lxI.js");
849
866
  process.exit(await runExecutaYank({
850
867
  ref,
851
868
  yes: opts.yes,
@@ -855,7 +872,7 @@ executa.command("yank <ref>").description("Hard-delete one Executa version (<slu
855
872
  }));
856
873
  });
857
874
  executa.command("delete <slug>").description("Hard-delete an Executa").option("--yes", "Acknowledge the destructive operation", false).option("--confirm <slug>", "Slug confirmation (must match target)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (slug, opts) => {
858
- const { runExecutaDelete } = await import("./executa-destructive-COQE4Xqi.js");
875
+ const { runExecutaDelete } = await import("./executa-destructive-Dpo58lxI.js");
859
876
  process.exit(await runExecutaDelete({
860
877
  slug,
861
878
  yes: opts.yes,
@@ -880,7 +897,7 @@ executa.command("cache-clear").description("Delete the local `.anna/executa.json
880
897
  });
881
898
  const token = program.command("token").description("Manage developer PATs (list / revoke / scopes)");
882
899
  token.command("list").description("List the caller's PATs (most-recent first)").option("--include-revoked", "Also show revoked PATs", false).option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
883
- const { runTokenList } = await import("./token-B9JUPelx.js");
900
+ const { runTokenList } = await import("./token-BGjbb2aU.js");
884
901
  process.exit(await runTokenList({
885
902
  includeRevoked: opts.includeRevoked,
886
903
  account: opts.account,
@@ -893,7 +910,7 @@ token.command("revoke <id>").description("Revoke one of the caller's PATs by id"
893
910
  console.error(`✗ token id must be a positive integer (got: ${id})`);
894
911
  process.exit(2);
895
912
  }
896
- const { runTokenRevoke } = await import("./token-B9JUPelx.js");
913
+ const { runTokenRevoke } = await import("./token-BGjbb2aU.js");
897
914
  process.exit(await runTokenRevoke({
898
915
  id: idNum,
899
916
  account: opts.account,
@@ -901,7 +918,7 @@ token.command("revoke <id>").description("Revoke one of the caller's PATs by id"
901
918
  }));
902
919
  });
903
920
  token.command("scopes").description("Print the available PAT scope catalogue").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
904
- const { runTokenScopes } = await import("./token-B9JUPelx.js");
921
+ const { runTokenScopes } = await import("./token-BGjbb2aU.js");
905
922
  process.exit(await runTokenScopes({
906
923
  account: opts.account,
907
924
  json: opts.json
@@ -916,7 +933,7 @@ program.command("publish").description("Auto-detect cwd and publish (apps publis
916
933
  console.error(`✗ --bump must be patch|minor|major (got: ${opts.bump})`);
917
934
  process.exit(2);
918
935
  }
919
- const { runTopLevelPublish } = await import("./publish-C1wcf-qI.js");
936
+ const { runTopLevelPublish } = await import("./publish-R3JAl9Hm.js");
920
937
  process.exit(await runTopLevelPublish({
921
938
  cwd: opts.cwd,
922
939
  bump: opts.bump,