@anna-ai/cli 0.1.28 → 0.1.30

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 (63) hide show
  1. package/dist/{_lifecycle-shared-BpSOfVCP.js → _lifecycle-shared-CUK2CE76.js} +1 -1
  2. package/dist/account-B6n0XkpV.js +30 -0
  3. package/dist/{agent-CaZVCPs6.js → agent-J2bELWfv.js} +1 -1
  4. package/dist/{app-bundle-upload-BhAYo6yj.js → app-bundle-upload-CPf_nGou.js} +2 -2
  5. package/dist/{app-cache-Bl7cE5fm.js → app-cache-BqnTkxUw.js} +1 -0
  6. package/dist/{apps-CCdtLmxQ.js → apps-73pdBAFE.js} +17 -1
  7. package/dist/{apps-3VcdHIBK.js → apps-BpJ-TvHP.js} +2 -2
  8. package/dist/{apps-cut-BOhg9RHy.js → apps-cut-C5SH9qZN.js} +11 -11
  9. package/dist/{apps-destructive-DWF4eTHn.js → apps-destructive-PY0wKjqu.js} +3 -3
  10. package/dist/{apps-discard-Dy3vzpCM.js → apps-discard-CfdkwUZ_.js} +11 -11
  11. package/dist/{apps-grants-DgvymPBT.js → apps-grants-BtXXiuJt.js} +2 -2
  12. package/dist/apps-publish-3wbhXfAg.js +14 -0
  13. package/dist/{apps-publish-Dgi4lBlu.js → apps-publish-B-ZVNmgn.js} +7 -7
  14. package/dist/{apps-push-DbUEFdCK.js → apps-push-Bh8zwT--.js} +12 -12
  15. package/dist/{apps-release-DJFG4BV3.js → apps-release-DNlN_8gz.js} +4 -4
  16. package/dist/apps-rename-slug-Bp-nQ_6I.js +62 -0
  17. package/dist/{apps-status-F6aVlzDW.js → apps-status-5DV9cY4A.js} +2 -2
  18. package/dist/{apps-submit-review-BVmZlhmB.js → apps-submit-review-DH-bzbDZ.js} +3 -3
  19. package/dist/{apps-sync-meta-CQQC_Heb.js → apps-sync-meta-DdPnXuIU.js} +4 -4
  20. package/dist/{apps-versions-BIKsJzIT.js → apps-versions-vGihRRje.js} +2 -2
  21. package/dist/bridge-CmoKMMcG.js +3 -0
  22. package/dist/{bundled-executas-DeBhDjd8.js → bundled-executas-06keEPP_.js} +1 -1
  23. package/dist/cli.js +61 -40
  24. package/dist/dev-C9VpI_AL.js +4 -0
  25. package/dist/{dev-DXODERsf.js → dev-aWkfWGLD.js} +5 -5
  26. package/dist/{dev-app-cache-TSjL4D4n.js → dev-app-cache-CP2P8SCZ.js} +1 -0
  27. package/dist/{doctor-DCsBgyRg.js → doctor-DnCYaREu.js} +1 -1
  28. package/dist/{executa-cache-Kx3rfQD-.js → executa-cache-B0O79Hpb.js} +1 -1
  29. package/dist/{executa-destructive-PL2ooHpZ.js → executa-destructive-8iSnfmcn.js} +3 -3
  30. package/dist/{executa-dev-Deo8ag5o.js → executa-dev-0XdBPTDy.js} +13 -10
  31. package/dist/{executa-install-BHQpOskj.js → executa-install-A-BgavhA.js} +2 -2
  32. package/dist/executa-install-Bc1WRrWu.js +7 -0
  33. package/dist/executa-publish-9XQRncyN.js +9 -0
  34. package/dist/{executa-publish-CkPAB34b.js → executa-publish-Xmm4DMO9.js} +4 -4
  35. package/dist/{executa-reads-CjGZq1yP.js → executa-reads-CjIr8BuD.js} +2 -2
  36. package/dist/{publish-BYWuujP3.js → publish-NTT1Libd.js} +10 -10
  37. package/dist/{sampling-BcML4teS.js → sampling-Cc0qaj8a.js} +92 -3
  38. package/dist/{server-F_VA-5tS.js → server-DtnMLKQS.js} +1 -1
  39. package/dist/{storage-CKTmE87u.js → storage-C95wApr2.js} +1 -1
  40. package/dist/{token-Cg7BZGp6.js → token-hGGfoge2.js} +1 -1
  41. package/dist/{working-orchestration-Pjm4YC_U.js → working-orchestration-CX0ONKIq.js} +30 -13
  42. package/package.json +1 -1
  43. package/dist/apps-publish-Do7M5je3.js +0 -14
  44. package/dist/bridge-6GIQG63S.js +0 -3
  45. package/dist/dev-CQkCFVXu.js +0 -4
  46. package/dist/executa-install-Bvf_Lvvg.js +0 -7
  47. package/dist/executa-publish-IXWSwva0.js +0 -9
  48. /package/dist/{bridge-DAY7bsje.js → bridge-DXH59CmP.js} +0 -0
  49. /package/dist/{bundled-executas-B6b8gIfp.js → bundled-executas-_H1A9M50.js} +0 -0
  50. /package/dist/{confirm-h_qMrx0I.js → confirm-BuT56E_B.js} +0 -0
  51. /package/dist/{dev-account-CGo8k9_2.js → dev-account-WXEjIE16.js} +0 -0
  52. /package/dist/{executa-cache-CXiEgFZY.js → executa-cache-Do1D7xC0.js} +0 -0
  53. /package/dist/{executa-init-DXea7yRN.js → executa-init-BCqJUZXT.js} +0 -0
  54. /package/dist/{executa-register-BUiPzPIU.js → executa-register-CMmlKyKB.js} +0 -0
  55. /package/dist/{executas-CK3er6f9.js → executas-BhFed1B-.js} +0 -0
  56. /package/dist/{fixture-BvP5umlN.js → fixture-BJqc1IfX.js} +0 -0
  57. /package/dist/{host_upload-BXeHTgJs.js → host_upload-sfo4UHlR.js} +0 -0
  58. /package/dist/{image-CSEXEfD-.js → image-Bdi4Hu0m.js} +0 -0
  59. /package/dist/{login-BGZjMAlh.js → login-CslsHbsq.js} +0 -0
  60. /package/dist/{logout-mh2_QlyM.js → logout-B4_b9ZL0.js} +0 -0
  61. /package/dist/{manifest-Bljz8Y6T.js → manifest-CMc7RM57.js} +0 -0
  62. /package/dist/{runner-BuYbm-ex.js → runner-DVu-o_U8.js} +0 -0
  63. /package/dist/{whoami-l_kIkfbI.js → whoami-ChzwOaN2.js} +0 -0
package/dist/cli.js CHANGED
@@ -470,7 +470,7 @@ program.command("validate").description("Run schema + ACL checks on a manifest+b
470
470
  process.exit(code);
471
471
  });
472
472
  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) => {
473
- const { runDev, parseExecutaSpec } = await import("./dev-CQkCFVXu.js");
473
+ const { runDev, parseExecutaSpec } = await import("./dev-C9VpI_AL.js");
474
474
  const cwd = opts.cwd ?? process.cwd();
475
475
  let executas;
476
476
  if (opts.executa && opts.executa.length > 0) {
@@ -505,7 +505,7 @@ program.command("dev").description("Run a local harness (in-process dispatcher +
505
505
  });
506
506
  const fixture = program.command("fixture").description("Inspect / replay harness recordings (Phase 6)");
507
507
  fixture.command("verify <file>").description("Schema + invariant checks on a harness JSONL recording").option("--json", "Emit machine-readable JSON", false).action(async (file, opts) => {
508
- const { runFixtureVerify } = await import("./fixture-BvP5umlN.js");
508
+ const { runFixtureVerify } = await import("./fixture-BJqc1IfX.js");
509
509
  const code = await runFixtureVerify({
510
510
  file,
511
511
  json: opts.json
@@ -513,7 +513,7 @@ fixture.command("verify <file>").description("Schema + invariant checks on a har
513
513
  process.exit(code);
514
514
  });
515
515
  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) => {
516
- const { runFixtureSummarize } = await import("./fixture-BvP5umlN.js");
516
+ const { runFixtureSummarize } = await import("./fixture-BJqc1IfX.js");
517
517
  const code = await runFixtureSummarize({
518
518
  file,
519
519
  json: opts.json
@@ -521,7 +521,7 @@ fixture.command("summarize <file>").description("Print a human-readable digest o
521
521
  process.exit(code);
522
522
  });
523
523
  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) => {
524
- const { runFixtureReplay } = await import("./fixture-BvP5umlN.js");
524
+ const { runFixtureReplay } = await import("./fixture-BJqc1IfX.js");
525
525
  const code = await runFixtureReplay({
526
526
  file,
527
527
  manifest: opts.manifest
@@ -529,12 +529,12 @@ fixture.command("replay <file>").description("Dry-run replay of a harness record
529
529
  process.exit(code);
530
530
  });
531
531
  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) => {
532
- const { runDoctor } = await import("./doctor-DCsBgyRg.js");
532
+ const { runDoctor } = await import("./doctor-DnCYaREu.js");
533
533
  const code = await runDoctor({ matrixNexusRoot: opts.matrixNexusRoot });
534
534
  process.exit(code);
535
535
  });
536
536
  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) => {
537
- const { runLogin } = await import("./login-BGZjMAlh.js");
537
+ const { runLogin } = await import("./login-CslsHbsq.js");
538
538
  const code = await runLogin({
539
539
  host: opts.host,
540
540
  noBrowser: opts.browser === false
@@ -542,7 +542,7 @@ program.command("login").description("Device-flow login against a nexus host; sa
542
542
  process.exit(code);
543
543
  });
544
544
  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) => {
545
- const { runLogout } = await import("./logout-mh2_QlyM.js");
545
+ const { runLogout } = await import("./logout-B4_b9ZL0.js");
546
546
  const code = await runLogout({
547
547
  host: opts.host,
548
548
  all: opts.all
@@ -550,10 +550,20 @@ program.command("logout").description("Remove a saved PAT entry").option("--host
550
550
  process.exit(code);
551
551
  });
552
552
  program.command("whoami").description("Show the current account (and any others)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
553
- const { runWhoami } = await import("./whoami-l_kIkfbI.js");
553
+ const { runWhoami } = await import("./whoami-ChzwOaN2.js");
554
554
  const code = await runWhoami({ json: opts.json });
555
555
  process.exit(code);
556
556
  });
557
+ const account = program.command("account").description("Manage your developer account (handle / namespace)");
558
+ account.command("set-handle <handle>").description("Set or rename your developer handle — the @handle namespace your apps publish under (@handle/slug). Required before creating your first app.").option("--host <url>", "Account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (handle, opts) => {
559
+ const { runAccountSetHandle } = await import("./account-B6n0XkpV.js");
560
+ const code = await runAccountSetHandle({
561
+ handle,
562
+ account: opts.host,
563
+ json: opts.json
564
+ });
565
+ process.exit(code);
566
+ });
557
567
  const executa = program.command("executa").description("Standalone Executa plugin scaffolding + local runner");
558
568
  executa.command("init <dir>").description("Scaffold a standalone Executa plugin (python | node | go)").option("--slug <slug>", "Plugin slug (lowercase, hyphens)", "").option("--template <name>", "Language template: python | node | go", "python").option("--tool-id <id>", "Override the minted tool_id (default: tool-dev-<slug>)").option("--force", "Overwrite existing dir if non-empty", false).action(async (dir, opts) => {
559
569
  const slug = opts.slug || dir.split(/[\\/]/).pop() || "my-executa";
@@ -566,7 +576,7 @@ executa.command("init <dir>").description("Scaffold a standalone Executa plugin
566
576
  console.error(`✗ unknown template "${opts.template}" — expected python | node | go`);
567
577
  process.exit(2);
568
578
  }
569
- const { runExecutaInit } = await import("./executa-init-DXea7yRN.js");
579
+ const { runExecutaInit } = await import("./executa-init-BCqJUZXT.js");
570
580
  const code = runExecutaInit({
571
581
  targetDir: dir,
572
582
  slug,
@@ -577,12 +587,12 @@ executa.command("init <dir>").description("Scaffold a standalone Executa plugin
577
587
  process.exit(code);
578
588
  });
579
589
  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) => {
580
- const { runExecutaRegister } = await import("./executa-register-BUiPzPIU.js");
590
+ const { runExecutaRegister } = await import("./executa-register-CMmlKyKB.js");
581
591
  const code = await runExecutaRegister(opts);
582
592
  process.exit(code);
583
593
  });
584
594
  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) => {
585
- const { runExecutaInstall } = await import("./executa-install-Bvf_Lvvg.js");
595
+ const { runExecutaInstall } = await import("./executa-install-Bc1WRrWu.js");
586
596
  const code = await runExecutaInstall({
587
597
  dir: opts.dir,
588
598
  toolId: opts.toolId,
@@ -592,8 +602,8 @@ executa.command("install").description("Install a local-dev shim for an Executa
592
602
  });
593
603
  process.exit(code);
594
604
  });
595
- 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) => {
596
- const { runExecutaDev } = await import("./executa-dev-Deo8ag5o.js");
605
+ 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("--sampling-unsupported-format", "Simulate a model without json_schema support — exercises responseFormat onUnsupported branches (-32010 / downgrade)").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) => {
606
+ const { runExecutaDev } = await import("./executa-dev-0XdBPTDy.js");
597
607
  const storageMode = opts.storage === void 0 ? void 0 : (() => {
598
608
  const m = opts.storage;
599
609
  if (m === "off" || m === "memory" || m === "mock" || m === "real") return m;
@@ -610,6 +620,7 @@ executa.command("dev").description("Run one Executa plugin in isolation (REPL or
610
620
  json: opts.json,
611
621
  noSampling: opts.sampling === false,
612
622
  mockSampling: opts.mockSampling,
623
+ samplingUnsupportedFormat: opts.samplingUnsupportedFormat,
613
624
  appSlug: opts.appSlug,
614
625
  samplingAccount: opts.samplingAccount,
615
626
  noAgent: opts.agent === false,
@@ -630,12 +641,22 @@ executa.command("dev").description("Run one Executa plugin in isolation (REPL or
630
641
  });
631
642
  const apps = program.command("apps").description("Anna App publish lifecycle commands");
632
643
  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) => {
633
- const { runAppsList } = await import("./apps-3VcdHIBK.js");
644
+ const { runAppsList } = await import("./apps-BpJ-TvHP.js");
634
645
  process.exit(await runAppsList({
635
646
  account: opts.account,
636
647
  json: opts.json
637
648
  }));
638
649
  });
650
+ apps.command("rename-slug <new-slug>").description("Rename an app's public slug (DRAFT/REJECTED, never-published, zero installs only). Updates local app.json + .anna/app.json on success.").option("--cwd <dir>", "Project root (default: cwd)").option("--manifest <path>", "manifest.json path", "manifest.json").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (newSlug, opts) => {
651
+ const { runAppsRenameSlug } = await import("./apps-rename-slug-Bp-nQ_6I.js");
652
+ process.exit(await runAppsRenameSlug({
653
+ newSlug,
654
+ cwd: opts.cwd,
655
+ manifest: opts.manifest,
656
+ account: opts.account,
657
+ json: opts.json
658
+ }));
659
+ });
639
660
  apps.command("publish").description("Publish or update an Anna App (manifest.json in cwd)").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 upload", 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 publish bundled executas", false).option("--no-bundled-executas", "Disable bundled-executa orchestration (legacy behaviour)").option("--no-bundle", "Skip UI bundle upload even if the manifest declares a UI").option("--bundle-dir <dir>", "UI bundle directory (default: <cwd>/bundle)").option("--account <host>", "Saved account host (default: current)").option("--json", "Emit machine-readable JSON", false).action(async (opts) => {
640
661
  if (opts.bump && ![
641
662
  "patch",
@@ -645,7 +666,7 @@ apps.command("publish").description("Publish or update an Anna App (manifest.jso
645
666
  console.error(`✗ --bump must be patch|minor|major (got: ${opts.bump})`);
646
667
  process.exit(2);
647
668
  }
648
- const { runAppsPublish } = await import("./apps-publish-Do7M5je3.js");
669
+ const { runAppsPublish } = await import("./apps-publish-3wbhXfAg.js");
649
670
  process.exit(await runAppsPublish({
650
671
  cwd: opts.cwd,
651
672
  manifest: opts.manifest,
@@ -678,7 +699,7 @@ apps.command("push").description("Upsert the mutable working draft (manifest + b
678
699
  process.exit(2);
679
700
  }
680
701
  }
681
- const { runAppsPush } = await import("./apps-push-DbUEFdCK.js");
702
+ const { runAppsPush } = await import("./apps-push-Bh8zwT--.js");
682
703
  process.exit(await runAppsPush({
683
704
  cwd: opts.cwd,
684
705
  manifest: opts.manifest,
@@ -697,7 +718,7 @@ apps.command("push").description("Upsert the mutable working draft (manifest + b
697
718
  }));
698
719
  });
699
720
  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) => {
700
- const { runAppsCut } = await import("./apps-cut-BOhg9RHy.js");
721
+ const { runAppsCut } = await import("./apps-cut-C5SH9qZN.js");
701
722
  process.exit(await runAppsCut({
702
723
  version,
703
724
  changelog: opts.changelog,
@@ -709,7 +730,7 @@ apps.command("cut <version>").description("Snapshot the working draft into an im
709
730
  }));
710
731
  });
711
732
  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) => {
712
- const { runAppsDiscard } = await import("./apps-discard-Dy3vzpCM.js");
733
+ const { runAppsDiscard } = await import("./apps-discard-CfdkwUZ_.js");
713
734
  process.exit(await runAppsDiscard({
714
735
  slug: opts.slug,
715
736
  cwd: opts.cwd,
@@ -719,7 +740,7 @@ apps.command("discard").description("Drop the mutable working draft (leaves cut
719
740
  }));
720
741
  });
721
742
  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) => {
722
- const { runAppsRelease } = await import("./apps-release-DJFG4BV3.js");
743
+ const { runAppsRelease } = await import("./apps-release-DNlN_8gz.js");
723
744
  process.exit(await runAppsRelease({
724
745
  version,
725
746
  slug: opts.slug,
@@ -731,7 +752,7 @@ apps.command("release <version>").description("Freeze & publish an existing remo
731
752
  }));
732
753
  });
733
754
  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) => {
734
- const { runAppsSyncMeta } = await import("./apps-sync-meta-CQQC_Heb.js");
755
+ const { runAppsSyncMeta } = await import("./apps-sync-meta-DdPnXuIU.js");
735
756
  process.exit(await runAppsSyncMeta({
736
757
  cwd: opts.cwd,
737
758
  manifest: opts.manifest,
@@ -741,7 +762,7 @@ apps.command("sync-meta").description("Push mutable store metadata (name/tagline
741
762
  }));
742
763
  });
743
764
  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) => {
744
- const { runAppsSubmitReview } = await import("./apps-submit-review-BVmZlhmB.js");
765
+ const { runAppsSubmitReview } = await import("./apps-submit-review-DH-bzbDZ.js");
745
766
  process.exit(await runAppsSubmitReview({
746
767
  slug,
747
768
  cwd: opts.cwd,
@@ -750,7 +771,7 @@ apps.command("submit-review [slug]").description("Move an app into review (DRAFT
750
771
  }));
751
772
  });
752
773
  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) => {
753
- const { runAppsStatus } = await import("./apps-status-F6aVlzDW.js");
774
+ const { runAppsStatus } = await import("./apps-status-5DV9cY4A.js");
754
775
  process.exit(await runAppsStatus({
755
776
  slug,
756
777
  account: opts.account,
@@ -758,7 +779,7 @@ apps.command("status <slug>").description("Show server-known state for one Anna
758
779
  }));
759
780
  });
760
781
  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) => {
761
- const { runAppsVersions } = await import("./apps-versions-BIKsJzIT.js");
782
+ const { runAppsVersions } = await import("./apps-versions-vGihRRje.js");
762
783
  process.exit(await runAppsVersions({
763
784
  slug,
764
785
  account: opts.account,
@@ -766,7 +787,7 @@ apps.command("versions <slug>").description("List all server versions of one Ann
766
787
  }));
767
788
  });
768
789
  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) => {
769
- const { runAppsGrants } = await import("./apps-grants-DgvymPBT.js");
790
+ const { runAppsGrants } = await import("./apps-grants-BtXXiuJt.js");
770
791
  process.exit(await runAppsGrants({
771
792
  slug,
772
793
  account: opts.account,
@@ -774,7 +795,7 @@ apps.command("grants <slug>").description("Show currently granted scopes/quota f
774
795
  }));
775
796
  });
776
797
  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) => {
777
- const { runAppsUnpublish } = await import("./apps-destructive-DWF4eTHn.js");
798
+ const { runAppsUnpublish } = await import("./apps-destructive-PY0wKjqu.js");
778
799
  process.exit(await runAppsUnpublish({
779
800
  slug,
780
801
  yes: opts.yes,
@@ -784,7 +805,7 @@ apps.command("unpublish <slug>").description("Flip a PUBLISHED app back to APPRO
784
805
  }));
785
806
  });
786
807
  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) => {
787
- const { runAppsArchive } = await import("./apps-destructive-DWF4eTHn.js");
808
+ const { runAppsArchive } = await import("./apps-destructive-PY0wKjqu.js");
788
809
  process.exit(await runAppsArchive({
789
810
  slug,
790
811
  yes: opts.yes,
@@ -794,7 +815,7 @@ apps.command("archive <slug>").description("Archive an Anna App (hides it from e
794
815
  }));
795
816
  });
796
817
  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) => {
797
- const { runAppsUnarchive } = await import("./apps-destructive-DWF4eTHn.js");
818
+ const { runAppsUnarchive } = await import("./apps-destructive-PY0wKjqu.js");
798
819
  process.exit(await runAppsUnarchive({
799
820
  slug,
800
821
  yes: opts.yes,
@@ -803,7 +824,7 @@ apps.command("unarchive <slug>").description("Restore an archived Anna App back
803
824
  }));
804
825
  });
805
826
  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) => {
806
- const { runAppsDelete } = await import("./apps-destructive-DWF4eTHn.js");
827
+ const { runAppsDelete } = await import("./apps-destructive-PY0wKjqu.js");
807
828
  process.exit(await runAppsDelete({
808
829
  slug,
809
830
  yes: opts.yes,
@@ -813,14 +834,14 @@ apps.command("delete <slug>").description("Hard-delete an Anna App (refused by s
813
834
  }));
814
835
  });
815
836
  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) => {
816
- const { runExecutaList } = await import("./executa-reads-CjGZq1yP.js");
837
+ const { runExecutaList } = await import("./executa-reads-CjIr8BuD.js");
817
838
  process.exit(await runExecutaList({
818
839
  account: opts.account,
819
840
  json: opts.json
820
841
  }));
821
842
  });
822
843
  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) => {
823
- const { runExecutaStatus } = await import("./executa-reads-CjGZq1yP.js");
844
+ const { runExecutaStatus } = await import("./executa-reads-CjIr8BuD.js");
824
845
  process.exit(await runExecutaStatus({
825
846
  ref,
826
847
  account: opts.account,
@@ -828,7 +849,7 @@ executa.command("status <ref>").description("Show server-known state for one Exe
828
849
  }));
829
850
  });
830
851
  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) => {
831
- const { runExecutaVersions } = await import("./executa-reads-CjGZq1yP.js");
852
+ const { runExecutaVersions } = await import("./executa-reads-CjIr8BuD.js");
832
853
  process.exit(await runExecutaVersions({
833
854
  ref,
834
855
  account: opts.account,
@@ -844,7 +865,7 @@ executa.command("publish").description("Mint or update an Executa (executa.json
844
865
  console.error(`✗ --bump must be patch|minor|major (got: ${opts.bump})`);
845
866
  process.exit(2);
846
867
  }
847
- const { runExecutaPublish } = await import("./executa-publish-IXWSwva0.js");
868
+ const { runExecutaPublish } = await import("./executa-publish-9XQRncyN.js");
848
869
  process.exit(await runExecutaPublish({
849
870
  cwd: opts.cwd,
850
871
  manifest: opts.manifest,
@@ -857,7 +878,7 @@ executa.command("publish").description("Mint or update an Executa (executa.json
857
878
  }));
858
879
  });
859
880
  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) => {
860
- const { runExecutaUnpublish } = await import("./executa-destructive-PL2ooHpZ.js");
881
+ const { runExecutaUnpublish } = await import("./executa-destructive-8iSnfmcn.js");
861
882
  process.exit(await runExecutaUnpublish({
862
883
  slug,
863
884
  yes: opts.yes,
@@ -867,7 +888,7 @@ executa.command("unpublish <slug>").description("Flip an Executa's visibility ba
867
888
  }));
868
889
  });
869
890
  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) => {
870
- const { runExecutaYank } = await import("./executa-destructive-PL2ooHpZ.js");
891
+ const { runExecutaYank } = await import("./executa-destructive-8iSnfmcn.js");
871
892
  process.exit(await runExecutaYank({
872
893
  ref,
873
894
  yes: opts.yes,
@@ -877,7 +898,7 @@ executa.command("yank <ref>").description("Hard-delete one Executa version (<slu
877
898
  }));
878
899
  });
879
900
  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) => {
880
- const { runExecutaDelete } = await import("./executa-destructive-PL2ooHpZ.js");
901
+ const { runExecutaDelete } = await import("./executa-destructive-8iSnfmcn.js");
881
902
  process.exit(await runExecutaDelete({
882
903
  slug,
883
904
  yes: opts.yes,
@@ -889,7 +910,7 @@ executa.command("delete <slug>").description("Hard-delete an Executa").option("-
889
910
  executa.command("cache-clear").description("Delete the local `.anna/executa.json` identity cache. Use after the server-side Executa has been deleted/recreated, or when switching host. Next `executa publish` will re-mint via the idempotency key.").option("--cwd <dir>", "Project root (default: cwd)").action(async (opts) => {
890
911
  const { resolve: resolve$1 } = await import("node:path");
891
912
  const { existsSync: existsSync$1 } = await import("node:fs");
892
- const { executaCachePath, invalidateExecutaCache } = await import("./executa-cache-Kx3rfQD-.js");
913
+ const { executaCachePath, invalidateExecutaCache } = await import("./executa-cache-B0O79Hpb.js");
893
914
  const cwd = resolve$1(opts.cwd ?? process.cwd());
894
915
  const p = executaCachePath(cwd);
895
916
  if (!existsSync$1(p)) {
@@ -902,7 +923,7 @@ executa.command("cache-clear").description("Delete the local `.anna/executa.json
902
923
  });
903
924
  const token = program.command("token").description("Manage developer PATs (list / revoke / scopes)");
904
925
  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) => {
905
- const { runTokenList } = await import("./token-Cg7BZGp6.js");
926
+ const { runTokenList } = await import("./token-hGGfoge2.js");
906
927
  process.exit(await runTokenList({
907
928
  includeRevoked: opts.includeRevoked,
908
929
  account: opts.account,
@@ -915,7 +936,7 @@ token.command("revoke <id>").description("Revoke one of the caller's PATs by id"
915
936
  console.error(`✗ token id must be a positive integer (got: ${id})`);
916
937
  process.exit(2);
917
938
  }
918
- const { runTokenRevoke } = await import("./token-Cg7BZGp6.js");
939
+ const { runTokenRevoke } = await import("./token-hGGfoge2.js");
919
940
  process.exit(await runTokenRevoke({
920
941
  id: idNum,
921
942
  account: opts.account,
@@ -923,7 +944,7 @@ token.command("revoke <id>").description("Revoke one of the caller's PATs by id"
923
944
  }));
924
945
  });
925
946
  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) => {
926
- const { runTokenScopes } = await import("./token-Cg7BZGp6.js");
947
+ const { runTokenScopes } = await import("./token-hGGfoge2.js");
927
948
  process.exit(await runTokenScopes({
928
949
  account: opts.account,
929
950
  json: opts.json
@@ -938,7 +959,7 @@ program.command("publish").description("Auto-detect cwd and publish (apps publis
938
959
  console.error(`✗ --bump must be patch|minor|major (got: ${opts.bump})`);
939
960
  process.exit(2);
940
961
  }
941
- const { runTopLevelPublish } = await import("./publish-BYWuujP3.js");
962
+ const { runTopLevelPublish } = await import("./publish-NTT1Libd.js");
942
963
  process.exit(await runTopLevelPublish({
943
964
  cwd: opts.cwd,
944
965
  bump: opts.bump,
@@ -0,0 +1,4 @@
1
+ import "./nexus-root-BlPwOusj.js";
2
+ import { parseExecutaSpec, runDev } from "./dev-aWkfWGLD.js";
3
+
4
+ export { parseExecutaSpec, runDev };
@@ -49,8 +49,8 @@ async function runDev(opts) {
49
49
  }
50
50
  process.env.ANNA_APP_RUNTIME_STORAGE_MODE = "aps";
51
51
  }
52
- const { PythonBridge, PINNED_RUNTIME_VERSION } = await import("./bridge-6GIQG63S.js");
53
- const { HarnessServer } = await import("./server-F_VA-5tS.js");
52
+ const { PythonBridge, PINNED_RUNTIME_VERSION } = await import("./bridge-CmoKMMcG.js");
53
+ const { HarnessServer } = await import("./server-DtnMLKQS.js");
54
54
  const bridge = new PythonBridge({
55
55
  mode,
56
56
  matrixNexusRoot: matrixNexusRoot ?? void 0,
@@ -90,7 +90,7 @@ async function runDev(opts) {
90
90
  if (executas.length > 0) console.log(` executas ${dim(executas.map((e) => e.tool_id).join(", "))}`);
91
91
  const bundledResolved = resolveBundledHandles(dirname(manifestPath), executas);
92
92
  if (Object.keys(bundledResolved).length > 0) {
93
- const { substituteBundledRefs, writeBundleToolIdSidecar } = await import("./bundled-executas-DeBhDjd8.js");
93
+ const { substituteBundledRefs, writeBundleToolIdSidecar } = await import("./bundled-executas-06keEPP_.js");
94
94
  try {
95
95
  manifest = substituteBundledRefs(manifest, bundledResolved);
96
96
  writeBundleToolIdSidecar(bundleDir, bundledResolved);
@@ -161,7 +161,7 @@ async function runDev(opts) {
161
161
  */
162
162
  async function resolveRealLlm(args) {
163
163
  const { getAccount } = await import("./credentials-Chkoidh5.js");
164
- const { ensureDevAppRegistered } = await import("./dev-app-cache-TSjL4D4n.js");
164
+ const { ensureDevAppRegistered } = await import("./dev-app-cache-CP2P8SCZ.js");
165
165
  const acc = getAccount(args.account);
166
166
  if (!acc) {
167
167
  console.error(red("✗ no developer PAT on disk — run `anna-app login --host <nexus-url>` first.\n (or use `--no-llm` / `--mock-llm <fixture>` to develop offline.)"));
@@ -190,7 +190,7 @@ async function resolveRealLlm(args) {
190
190
  account: args.account,
191
191
  appSlug: entry.slug,
192
192
  onAppSlugNotFound: async () => {
193
- const { invalidateDevAppCache } = await import("./dev-app-cache-TSjL4D4n.js");
193
+ const { invalidateDevAppCache } = await import("./dev-app-cache-CP2P8SCZ.js");
194
194
  invalidateDevAppCache(args.cwd);
195
195
  const fresh = getAccount(args.account);
196
196
  if (!fresh) throw new Error("PAT not found while re-registering dev app — run `anna-app login` again");
@@ -58,6 +58,7 @@ async function registerDevApp(args) {
58
58
  });
59
59
  if (!res.ok) {
60
60
  const text = await res.text().catch(() => "");
61
+ if (res.status === 409 && text.includes("HANDLE_REQUIRED")) throw new Error("developer handle required before registering a dev app — run `anna-app account set-handle <handle>` first.");
61
62
  throw new Error(`/dev/apps/register failed: HTTP ${res.status} ${text}`);
62
63
  }
63
64
  return await res.json();
@@ -1,5 +1,5 @@
1
1
  import { findMatrixNexusRoot, nexusSchemaDir } from "./nexus-root-BlPwOusj.js";
2
- import { PINNED_RUNTIME_VERSION } from "./bridge-DAY7bsje.js";
2
+ import { PINNED_RUNTIME_VERSION } from "./bridge-DXH59CmP.js";
3
3
  import { resolve } from "node:path";
4
4
  import { existsSync, statSync } from "node:fs";
5
5
  import { spawnSync } from "node:child_process";
@@ -1,4 +1,4 @@
1
1
  import "./credentials-BTv2IfUZ.js";
2
- import { executaCacheMatches, executaCachePath, invalidateExecutaCache, mintIdempotencyKey, readExecutaIdentity, writeExecutaIdentity } from "./executa-cache-CXiEgFZY.js";
2
+ import { executaCacheMatches, executaCachePath, invalidateExecutaCache, mintIdempotencyKey, readExecutaIdentity, writeExecutaIdentity } from "./executa-cache-Do1D7xC0.js";
3
3
 
4
4
  export { executaCachePath, invalidateExecutaCache };
@@ -1,8 +1,8 @@
1
1
  import "./credentials-BTv2IfUZ.js";
2
2
  import { CliError } from "./client-D-_z1ALk.js";
3
- import { deleteMyTool, listMyTools, listToolVersions, unpublishTool, yankToolVersion } from "./executas-CK3er6f9.js";
4
- import { resolveClient, withErrorHandling } from "./_lifecycle-shared-BpSOfVCP.js";
5
- import { ensureDestructiveAllowed } from "./confirm-h_qMrx0I.js";
3
+ import { resolveClient, withErrorHandling } from "./_lifecycle-shared-CUK2CE76.js";
4
+ import { deleteMyTool, listMyTools, listToolVersions, unpublishTool, yankToolVersion } from "./executas-BhFed1B-.js";
5
+ import { ensureDestructiveAllowed } from "./confirm-BuT56E_B.js";
6
6
  import { dim, green, yellow } from "kleur/colors";
7
7
 
8
8
  //#region src/commands/executa-destructive.ts
@@ -1,5 +1,5 @@
1
1
  import "./nexus-root-BlPwOusj.js";
2
- import { parseExecutaSpec } from "./dev-DXODERsf.js";
2
+ import { parseExecutaSpec } from "./dev-aWkfWGLD.js";
3
3
  import { isAbsolute, resolve } from "node:path";
4
4
  import { existsSync } from "node:fs";
5
5
  import { bold, cyan, dim, green, red, yellow } from "kleur/colors";
@@ -35,7 +35,7 @@ async function runExecutaDev(opts) {
35
35
  const oneShot = !!(opts.describe || opts.health || opts.invoke);
36
36
  const quiet = oneShot && (opts.json ?? false);
37
37
  const { getAccount } = await import("./credentials-Chkoidh5.js");
38
- const { ensureDevExecutaRegistered } = await import("./dev-app-cache-TSjL4D4n.js");
38
+ const { ensureDevExecutaRegistered } = await import("./dev-app-cache-CP2P8SCZ.js");
39
39
  const needsRealMint = !opts.noSampling && !opts.mockSampling || !opts.noAgent && !opts.mockAgent || !opts.noImage && !opts.mockImage || !opts.noUpload && !opts.mockUpload || opts.storage === "real";
40
40
  let effectiveAppSlug = opts.appSlug;
41
41
  let autoRegistered = false;
@@ -57,16 +57,19 @@ async function runExecutaDev(opts) {
57
57
  }
58
58
  }
59
59
  }
60
- const { SamplingBridge } = await import("./sampling-BcML4teS.js");
60
+ const { SamplingBridge } = await import("./sampling-Cc0qaj8a.js");
61
+ const simulateUnsupportedResponseFormat = opts.samplingUnsupportedFormat;
61
62
  const sampling = opts.noSampling ? new SamplingBridge({ mode: "off" }) : opts.mockSampling ? new SamplingBridge({
62
63
  mode: "mock",
63
- mockFile: opts.mockSampling
64
+ mockFile: opts.mockSampling,
65
+ simulateUnsupportedResponseFormat
64
66
  }) : effectiveAppSlug ? new SamplingBridge({
65
67
  mode: "real",
66
68
  account: opts.samplingAccount,
67
- appSlug: effectiveAppSlug
69
+ appSlug: effectiveAppSlug,
70
+ simulateUnsupportedResponseFormat
68
71
  }) : new SamplingBridge({ mode: "off" });
69
- const { AgentBridge } = await import("./agent-CaZVCPs6.js");
72
+ const { AgentBridge } = await import("./agent-J2bELWfv.js");
70
73
  const agent = opts.noAgent ? new AgentBridge({ mode: "off" }) : opts.mockAgent ? new AgentBridge({
71
74
  mode: "mock",
72
75
  mockFile: opts.mockAgent
@@ -75,7 +78,7 @@ async function runExecutaDev(opts) {
75
78
  account: opts.agentAccount ?? opts.samplingAccount,
76
79
  appSlug: effectiveAppSlug
77
80
  }) : new AgentBridge({ mode: "off" });
78
- const { StorageBridge } = await import("./storage-CKTmE87u.js");
81
+ const { StorageBridge } = await import("./storage-C95wApr2.js");
79
82
  const storageMode = opts.storage ?? (opts.mockStorage ? "mock" : "memory");
80
83
  const storage = new StorageBridge({
81
84
  mode: storageMode,
@@ -85,8 +88,8 @@ async function runExecutaDev(opts) {
85
88
  scopes: opts.storageScopes ? opts.storageScopes.split(",").map((s) => s.trim()).filter(Boolean) : void 0,
86
89
  pluginName: parsed.tool_id
87
90
  });
88
- const { ExecutaRunner } = await import("./runner-BuYbm-ex.js");
89
- const { ImageBridge } = await import("./image-CSEXEfD-.js");
91
+ const { ExecutaRunner } = await import("./runner-DVu-o_U8.js");
92
+ const { ImageBridge } = await import("./image-Bdi4Hu0m.js");
90
93
  const image = opts.noImage ? new ImageBridge({ mode: "off" }) : opts.mockImage ? new ImageBridge({
91
94
  mode: "mock",
92
95
  mockFile: opts.mockImage
@@ -95,7 +98,7 @@ async function runExecutaDev(opts) {
95
98
  account: opts.imageAccount ?? opts.samplingAccount,
96
99
  appSlug: effectiveAppSlug
97
100
  }) : new ImageBridge({ mode: "off" });
98
- const { HostUploadBridge } = await import("./host_upload-BXeHTgJs.js");
101
+ const { HostUploadBridge } = await import("./host_upload-sfo4UHlR.js");
99
102
  const hostUpload = opts.noUpload ? new HostUploadBridge({ mode: "off" }) : opts.mockUpload ? new HostUploadBridge({
100
103
  mode: "mock",
101
104
  mockFile: opts.mockUpload
@@ -1,5 +1,5 @@
1
- import { readExecutaIdentity } from "./executa-cache-CXiEgFZY.js";
2
- import { parseExecutaSpec } from "./dev-DXODERsf.js";
1
+ import { readExecutaIdentity } from "./executa-cache-Do1D7xC0.js";
2
+ import { parseExecutaSpec } from "./dev-aWkfWGLD.js";
3
3
  import { isAbsolute, join, resolve } from "node:path";
4
4
  import { chmodSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
5
5
  import { bold, cyan, dim, green, red, yellow } from "kleur/colors";
@@ -0,0 +1,7 @@
1
+ import "./credentials-BTv2IfUZ.js";
2
+ import "./nexus-root-BlPwOusj.js";
3
+ import "./executa-cache-Do1D7xC0.js";
4
+ import "./dev-aWkfWGLD.js";
5
+ import { runExecutaInstall } from "./executa-install-A-BgavhA.js";
6
+
7
+ export { runExecutaInstall };
@@ -0,0 +1,9 @@
1
+ import "./credentials-BTv2IfUZ.js";
2
+ import "./client-D-_z1ALk.js";
3
+ import "./_lifecycle-shared-CUK2CE76.js";
4
+ import "./executas-BhFed1B-.js";
5
+ import "./executa-cache-Do1D7xC0.js";
6
+ import { runExecutaPublish } from "./executa-publish-Xmm4DMO9.js";
7
+ import "./manifest-CMc7RM57.js";
8
+
9
+ export { runExecutaPublish };
@@ -1,9 +1,9 @@
1
1
  import { canonicalHost } from "./credentials-BTv2IfUZ.js";
2
2
  import { CliError } from "./client-D-_z1ALk.js";
3
- import { commitDraft, createDraft, getMySkill, getMyTool, listToolVersions, publishToolVersion, setSkillVisibility, setToolVisibility, updateMySkill, updateMyTool } from "./executas-CK3er6f9.js";
4
- import { executaCacheMatches, invalidateExecutaCache, mintIdempotencyKey, readExecutaIdentity, writeExecutaIdentity } from "./executa-cache-CXiEgFZY.js";
5
- import { loadExecutaManifest } from "./manifest-Bljz8Y6T.js";
6
- import { resolveClient, withErrorHandling } from "./_lifecycle-shared-BpSOfVCP.js";
3
+ import { resolveClient, withErrorHandling } from "./_lifecycle-shared-CUK2CE76.js";
4
+ import { commitDraft, createDraft, getMySkill, getMyTool, listToolVersions, publishToolVersion, setSkillVisibility, setToolVisibility, updateMySkill, updateMyTool } from "./executas-BhFed1B-.js";
5
+ import { executaCacheMatches, invalidateExecutaCache, mintIdempotencyKey, readExecutaIdentity, writeExecutaIdentity } from "./executa-cache-Do1D7xC0.js";
6
+ import { loadExecutaManifest } from "./manifest-CMc7RM57.js";
7
7
  import { join, relative, resolve, sep } from "node:path";
8
8
  import { readFileSync, readdirSync, statSync, writeFileSync } from "node:fs";
9
9
  import { bold, cyan, dim, green, yellow } from "kleur/colors";
@@ -1,7 +1,7 @@
1
1
  import "./credentials-BTv2IfUZ.js";
2
2
  import { CliError } from "./client-D-_z1ALk.js";
3
- import { getMyTool, listMyTools, listToolVersions } from "./executas-CK3er6f9.js";
4
- import { resolveClient, withErrorHandling } from "./_lifecycle-shared-BpSOfVCP.js";
3
+ import { resolveClient, withErrorHandling } from "./_lifecycle-shared-CUK2CE76.js";
4
+ import { getMyTool, listMyTools, listToolVersions } from "./executas-BhFed1B-.js";
5
5
  import { bold, cyan, dim, green } from "kleur/colors";
6
6
 
7
7
  //#region src/commands/executa-reads.ts