@treeseed/cli 0.10.22 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,8 @@ const DEV_RUNTIME_OPTIONS = [
25
25
  { name: "host", flags: "--host <host>", description: "Host for the web dev server.", kind: "string" },
26
26
  { name: "port", flags: "--port <port>", description: "Port for the web dev server.", kind: "string" },
27
27
  { name: "webRuntime", flags: "--web-runtime <mode>", description: "Choose the local web runtime. Use local for Astro hot reload or provider for provider parity.", kind: "enum", values: ["auto", "local", "provider"] },
28
+ { name: "app", flags: "--app <app-id>", description: "Select a discovered Treeseed app for local dev, such as web or api.", kind: "string" },
29
+ { name: "api", flags: "--api <mode>", description: "Choose whether the web app uses a local API app or a configured remote API.", kind: "enum", values: ["auto", "local", "remote"] },
28
30
  { name: "apiHost", flags: "--api-host <host>", description: "Host used to construct the local API URL.", kind: "string" },
29
31
  { name: "apiPort", flags: "--api-port <port>", description: "Port for the local API server.", kind: "string" },
30
32
  { name: "setup", flags: "--setup <mode>", description: "Control automatic local runtime setup.", kind: "enum", values: ["auto", "check", "off"] },
@@ -377,25 +379,32 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
377
379
  { name: "hotfix", flags: "--hotfix", description: "Allow save on main for an explicit hotfix.", kind: "boolean" },
378
380
  { name: "preview", flags: "--preview", description: "Create or refresh the branch preview during save.", kind: "boolean" },
379
381
  { name: "worktreeMode", flags: "--worktree <mode>", description: "Control managed workflow worktrees.", kind: "enum", values: ["auto", "on", "off"] },
382
+ { name: "lane", flags: "--lane <mode>", description: "Select save lane: fast local checkpoint or promotion-grade hosted checks.", kind: "enum", values: ["fast", "promotion"] },
380
383
  { name: "ciMode", flags: "--ci <mode>", description: "Control hosted GitHub Actions waits.", kind: "enum", values: ["auto", "hosted", "off"] },
381
384
  { name: "verifyMode", flags: "--verify <mode>", description: "Control save verification depth.", kind: "enum", values: ["fast", "local", "hosted", "both", "skip"] },
385
+ { name: "releaseCandidate", flags: "--release-candidate <mode>", description: "Control staging save release-candidate checks.", kind: "enum", values: ["hybrid", "strict", "skip"] },
382
386
  { name: "verifyDeployedResources", flags: "--verify-deployed-resources", description: "Also wait for hosted deployment checks that verify provider resources.", kind: "boolean" },
383
387
  { name: "workspaceLinks", flags: "--workspace-links <mode>", description: "Control local workspace package links.", kind: "enum", values: ["auto", "off"] },
384
388
  { name: "plan", flags: "--plan", description: "Compute the recursive save plan without mutating any repo.", kind: "boolean" },
385
389
  { name: "dryRun", flags: "--dry-run", description: "Alias for --plan.", kind: "boolean" },
386
390
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
387
391
  ],
388
- examples: ["treeseed save", 'treeseed save "add search filters"', "treeseed save --preview", "treeseed save --plan", 'treeseed save --hotfix "fix production form submit"'],
392
+ examples: ["treeseed save", 'treeseed save "add search filters"', "treeseed save --preview", "treeseed save --lane promotion", "treeseed save --release-candidate strict", "treeseed save --plan", 'treeseed save --hotfix "fix production form submit"'],
389
393
  help: {
390
394
  workflowPosition: "checkpoint work",
391
395
  longSummary: [
392
396
  "Save is the main task-branch checkpoint command. It verifies, commits, syncs, pushes, and can refresh the task preview so the branch remains in a clean, reviewable state.",
393
- "Use it instead of ad hoc manual git-and-preview sequences when you want the standard Treeseed task-save behavior."
397
+ "Use it instead of ad hoc manual git-and-preview sequences when you want the standard Treeseed task-save behavior.",
398
+ "Save has two lanes. The default fast lane is for routine integrated checkpoints. The explicit promotion lane is for checkpoints that should wait for hosted gates and strict release-candidate proof."
394
399
  ],
395
400
  whenToUse: [
396
401
  "Use this after a meaningful unit of work on a task branch.",
402
+ "Use the default fast lane for routine code, docs, and low-risk package checkpoints where local lockfile validation and lightweight release-candidate checks are enough.",
403
+ "Use `--verify local` when a fast-lane checkpoint should also run package-local verification before pushing.",
397
404
  "Use `--preview` when the branch preview should be refreshed as part of the save operation.",
405
+ "Use `--lane promotion` when a save should wait for hosted gates and strict release-candidate checks like a promotion rehearsal.",
398
406
  "Use `--verify-deployed-resources` on staging or production branches when the checkpoint should wait for deployed provider resources to be verified.",
407
+ "Use `--release-candidate strict` on staging when dependency topology changed and you want a full clean-install rehearsal even if the cache says hybrid is enough.",
399
408
  "Use `--hotfix` only when you are intentionally saving from `main` for an explicit production hotfix flow."
400
409
  ],
401
410
  beforeYouRun: [
@@ -405,15 +414,21 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
405
414
  outcomes: [
406
415
  "Verifies and commits current work using a generated commit message.",
407
416
  "Syncs and pushes branch state.",
417
+ "Fast lane saves dependency-ordered repos without hosted CI/deploy waits or strict clean-install rehearsal unless another option requests them.",
418
+ "Promotion lane waits for hosted gates on staging and uses strict release-candidate checks by default.",
408
419
  "Optionally refreshes preview infrastructure if requested."
409
420
  ],
410
421
  examples: [
411
- example("treeseed save", "Generated checkpoint", "Verify, commit, and push the current task branch with a generated message."),
422
+ example("treeseed save", "Fast checkpoint", "Commit and push the current task branch through the default fast lane."),
412
423
  example('treeseed save "add search filters"', "Checkpoint with a hint", "Feed a short hint into commit-message generation without replacing the generated message."),
424
+ example('treeseed save --verify local "add search filters"', "Fast checkpoint with local verification", "Keep hosted waits off while running package-local verification before pushing."),
425
+ example('treeseed save --lane promotion "prove dependency topology"', "Promotion-grade checkpoint", "Wait for hosted staging gates and strict release-candidate proof before returning."),
413
426
  example("treeseed save --preview", "Checkpoint plus preview refresh", "Include preview refresh when the save should update the branch environment."),
414
427
  example('treeseed save --hotfix "fix production form submit"', "Explicit hotfix save", "Allow a save from main when the work is a deliberate hotfix path.", { why: "Use sparingly and only when the workflow intentionally bypasses the usual task-branch rule." })
415
428
  ],
416
429
  warnings: [
430
+ "Fast lane is intentionally optimized for iteration. Use `stage`, `release`, or `save --lane promotion` when hosted proof is required.",
431
+ "`--verify local` can still be expensive because package-local verify scripts may run builds, unit tests, and smoke tests even though hosted gates remain off.",
417
432
  "`--hotfix` deliberately loosens the normal task-branch safety model. Keep it exceptional."
418
433
  ],
419
434
  relatedDetails: [
@@ -659,9 +674,11 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
659
674
  ["doctor", command({
660
675
  options: [
661
676
  { name: "fix", flags: "--fix", description: "Apply safe local repairs before rerunning diagnostics.", kind: "boolean" },
677
+ { name: "live", flags: "--live", description: "Include read-only live provider and hosted service checks.", kind: "boolean" },
678
+ { name: "hostedServices", flags: "--hosted-services", description: "Include config-driven hosted service checks.", kind: "boolean" },
662
679
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
663
680
  ],
664
- examples: ["treeseed doctor", "treeseed doctor --fix --json"],
681
+ examples: ["treeseed doctor", "treeseed doctor --live --json", "treeseed doctor --fix --json"],
665
682
  help: {
666
683
  workflowPosition: "validate",
667
684
  longSummary: [
@@ -669,7 +686,8 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
669
686
  ],
670
687
  whenToUse: [
671
688
  "Use this when other commands are failing or when onboarding a machine and you want a readiness report.",
672
- "Use `--fix` when you want Treeseed to apply safe local repairs before rerunning diagnostics."
689
+ "Use `--fix` when you want Treeseed to apply safe local repairs before rerunning diagnostics.",
690
+ "Use `--live` or `--hosted-services` before staging or release when Railway, Cloudflare, and DNS resources should be checked from configuration."
673
691
  ],
674
692
  outcomes: [
675
693
  "Reports readiness issues and what must be fixed immediately.",
@@ -677,6 +695,7 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
677
695
  ],
678
696
  examples: [
679
697
  example("treeseed doctor", "Run diagnostics only", "Inspect the current machine and workspace without making repairs."),
698
+ example("treeseed doctor --live --json", "Check hosted services", "Include config-driven hosted service checks in JSON diagnostics."),
680
699
  example("treeseed doctor --fix", "Repair safe local issues", "Apply safe fixes first and then rerun diagnostics."),
681
700
  example("treeseed doctor --fix --json", "Integrate diagnostics with automation", "Emit structured diagnostics and repair results for scripts or agents.")
682
701
  ],
@@ -752,7 +771,7 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
752
771
  ["auth:login", command({
753
772
  options: [
754
773
  { name: "host", flags: "--host <id>", description: "Override the configured remote host id for this login.", kind: "string" },
755
- { name: "market", flags: "--market <id-or-url>", description: "Limit catalog lookup to one configured market id or direct market API URL. Without this, search/install uses the integrated catalog from all configured catalog markets.", kind: "string" },
774
+ { name: "market", flags: "--market <id-or-url>", description: "Limit catalog lookup to one configured market id or direct API URL. Without this, search/install uses the integrated catalog from all configured catalog markets.", kind: "string" },
756
775
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
757
776
  ],
758
777
  examples: ["treeseed auth:login"],
@@ -760,7 +779,7 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
760
779
  longSummary: ["Auth:login authenticates the CLI against the configured Treeseed API so later provider-aware and remote-aware workflows can run without missing-credential failures."],
761
780
  examples: [
762
781
  example("treeseed auth:login", "Log in with the default host", "Authenticate the CLI against the configured default Treeseed API host."),
763
- example("treeseed auth:login --market local", "Log in to local dev", "Authenticate against the local Treeseed API at TREESEED_MARKET_API_BASE_URL or http://127.0.0.1:3000."),
782
+ example("treeseed auth:login --market local", "Log in to local dev", "Authenticate against the local Treeseed API at TREESEED_API_BASE_URL or http://127.0.0.1:3000."),
764
783
  example("treeseed auth:login --host production", "Target a specific host id", "Override the configured default host for this login session."),
765
784
  example("treeseed auth:login --json", "Automate auth workflows", "Emit structured auth results where supported for scripts and agents.")
766
785
  ]
@@ -771,7 +790,7 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
771
790
  ["auth:logout", command({
772
791
  options: [
773
792
  { name: "host", flags: "--host <id>", description: "Override the configured remote host id to clear.", kind: "string" },
774
- { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct market API URL.", kind: "string" },
793
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
775
794
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
776
795
  ],
777
796
  examples: ["treeseed auth:logout"],
@@ -788,7 +807,7 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
788
807
  })],
789
808
  ["auth:whoami", command({
790
809
  options: [
791
- { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct market API URL.", kind: "string" },
810
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
792
811
  { name: "allMarkets", flags: "--all-markets", description: "Show locally stored identities for all configured markets.", kind: "boolean" },
793
812
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
794
813
  ],
@@ -888,7 +907,7 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
888
907
  { name: "id", description: "Template id for show or validate.", required: false }
889
908
  ],
890
909
  options: [
891
- { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct market API URL.", kind: "string" },
910
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
892
911
  { name: "version", flags: "--version <version>", description: "Artifact version for market template install.", kind: "string" },
893
912
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
894
913
  ],
@@ -1122,12 +1141,13 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
1122
1141
  { name: "worktreeMode", flags: "--worktree <mode>", description: "Control managed workflow worktrees.", kind: "enum", values: ["auto", "on", "off"] },
1123
1142
  { name: "ciMode", flags: "--ci <mode>", description: "Control hosted GitHub Actions waits.", kind: "enum", values: ["auto", "hosted", "off"] },
1124
1143
  { name: "workspaceLinks", flags: "--workspace-links <mode>", description: "Control local workspace package links.", kind: "enum", values: ["auto", "off"] },
1144
+ { name: "verifyDeployedResources", flags: "--verify-deployed-resources", description: "Force production deployment checks to verify provider resources before release returns.", kind: "boolean" },
1125
1145
  { name: "fresh", flags: "--fresh", description: "Start a new release instead of auto-resuming stale failed release runs.", kind: "boolean" },
1126
1146
  { name: "plan", flags: "--plan", description: "Compute the recursive release plan without mutating any repo.", kind: "boolean" },
1127
1147
  { name: "dryRun", flags: "--dry-run", description: "Alias for --plan.", kind: "boolean" },
1128
1148
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1129
1149
  ],
1130
- examples: ["treeseed release --patch", "treeseed release --minor", "treeseed release --repair-version-line --target-version-line 0.10 --plan", "treeseed release --patch --fresh"],
1150
+ examples: ["treeseed release --patch", "treeseed release --minor --verify-deployed-resources", "treeseed release --repair-version-line --target-version-line 0.10 --plan", "treeseed release --patch --fresh"],
1131
1151
  notes: ["Requires exactly one bump flag unless --repair-version-line is used."],
1132
1152
  help: {
1133
1153
  workflowPosition: "promote to production",
@@ -1136,7 +1156,8 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
1136
1156
  ],
1137
1157
  whenToUse: [
1138
1158
  "Use this only when staging is the approved source for production promotion.",
1139
- "Choose exactly one bump flag so the release version reflects the intended change size, or use --repair-version-line to repair package line drift."
1159
+ "Choose exactly one bump flag so the release version reflects the intended change size, or use --repair-version-line to repair package line drift.",
1160
+ "Use `--verify-deployed-resources` when production provider resources must be checked before the release returns."
1140
1161
  ],
1141
1162
  beforeYouRun: [
1142
1163
  "Confirm staging is in the state you want to promote.",
@@ -1148,7 +1169,7 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
1148
1169
  ],
1149
1170
  examples: [
1150
1171
  example("treeseed release --patch", "Patch release", "Promote staging to production with the next patch version."),
1151
- example("treeseed release --minor", "Minor release", "Promote staging with the next minor version bump."),
1172
+ example("treeseed release --minor --verify-deployed-resources", "Minor release with hosted checks", "Promote staging with the next minor version bump and verify production provider resources."),
1152
1173
  example("treeseed release --repair-version-line --target-version-line 0.10 --json", "Repair package line drift", "Publish only packages below the selected public package release line."),
1153
1174
  example("treeseed release --patch --json", "Automate release tracking", "Emit structured release output for tooling that records deployments and version changes.")
1154
1175
  ],
@@ -1165,19 +1186,20 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
1165
1186
  handlerName: "release"
1166
1187
  })],
1167
1188
  ["destroy", command({
1168
- usage: "treeseed destroy --environment <local|staging|prod> [--plan|--dry-run] [--delete-data] [--force] [--skip-confirmation] [--confirm <slug>] [--remove-build-artifacts]",
1189
+ usage: "treeseed destroy --environment <local|staging|prod> [--plan|--dry-run] [--delete-data] [--sweep-treeseed] [--force] [--skip-confirmation] [--confirm <slug>] [--remove-build-artifacts]",
1169
1190
  options: [
1170
1191
  { name: "environment", flags: "--environment <scope>", description: "Select the persistent environment to destroy.", kind: "enum", values: ["local", "staging", "prod"] },
1171
1192
  { name: "plan", flags: "--plan", description: "Compute the destroy plan without mutating the environment.", kind: "boolean" },
1172
1193
  { name: "dryRun", flags: "--dry-run", description: "Alias for --plan.", kind: "boolean" },
1173
1194
  { name: "deleteData", flags: "--delete-data", description: "Also delete data repositories such as PostgreSQL, D1, and R2 for the target environment.", kind: "boolean" },
1195
+ { name: "sweepTreeseed", flags: "--sweep-treeseed", description: "Sweep all TreeSeed-owned Cloudflare and Railway resources across persistent environments. Requires careful provider verification.", kind: "boolean" },
1174
1196
  { name: "force", flags: "--force", description: "Force worker deletion when supported.", kind: "boolean" },
1175
1197
  { name: "skipConfirmation", flags: "--skip-confirmation", description: "Skip the interactive confirmation prompt.", kind: "boolean" },
1176
1198
  { name: "confirm", flags: "--confirm <slug>", description: "Provide the expected slug confirmation non-interactively.", kind: "string" },
1177
1199
  { name: "removeBuildArtifacts", flags: "--remove-build-artifacts", description: "Also remove local build artifacts after destroy.", kind: "boolean" },
1178
1200
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1179
1201
  ],
1180
- examples: ["treeseed destroy --environment staging --delete-data --plan", "treeseed destroy --environment prod --delete-data --confirm example --skip-confirmation"],
1202
+ examples: ["treeseed destroy --environment staging --delete-data --plan", "treeseed destroy --environment staging --delete-data --sweep-treeseed --force --confirm example --skip-confirmation"],
1181
1203
  notes: ["Only for persistent environments. Task cleanup belongs to treeseed close.", "This command is destructive and requires explicit confirmation."],
1182
1204
  help: {
1183
1205
  workflowPosition: "tear down environment",
@@ -1226,15 +1248,15 @@ const CLI_COMMAND_OVERLAYS = /* @__PURE__ */ new Map([
1226
1248
  ],
1227
1249
  beforeYouRun: [
1228
1250
  "Run from the tenant or workspace root you want to develop.",
1229
- "From the Market repo root, dev automatically starts the local Market API, managed local PostgreSQL, and Market operations runner alongside the web UI.",
1251
+ "From the Market repo root, dev automatically starts the local API, managed local PostgreSQL, and Treeseed operations runner alongside the web UI.",
1230
1252
  "Use `dev start` for worktree-scoped background instance management that AI agents can discover and stop later.",
1231
1253
  "Use `--plan --json` when you want to inspect fixed web/API/runner commands, setup steps, readiness checks, watched paths, and restart policy without starting services.",
1232
- "Use `--reset` when you want a fresh local D1 database, Market PostgreSQL state, Mailpit inbox, generated worker bundle, and Wrangler temp output without deleting configuration.",
1254
+ "Use `--reset` when you want a fresh local D1 database, Treeseed PostgreSQL state, Mailpit inbox, generated worker bundle, and Wrangler temp output without deleting configuration.",
1233
1255
  "Dev prints the local web URL after readiness; it does not open a browser unless you pass `--open on` or `--open auto`.",
1234
1256
  "Keep the foreground process running while you test. Press Ctrl+C to stop the supervised stack and free the local ports."
1235
1257
  ],
1236
1258
  examples: [
1237
- example("treeseed dev", "Start local Market development", "Run web, API, managed PostgreSQL setup, and the Market operations runner locally."),
1259
+ example("treeseed dev", "Start local Market development", "Run web, API, managed PostgreSQL setup, and the Treeseed operations runner locally."),
1238
1260
  example("treeseed dev start", "Start a managed worktree instance", "Launch the same dev runtime detached, write worktree-local PID/log/state files, and return after readiness."),
1239
1261
  example("treeseed dev status --all --json", "Inspect all worktree instances", "List managed dev instances discovered through the repository-family index."),
1240
1262
  example("treeseed dev logs", "Show managed dev logs", "Print the current worktree managed dev log file."),
@@ -1445,7 +1467,7 @@ const CLI_ONLY_OPERATION_SPECS = [
1445
1467
  { name: "environments", flags: "--environments <list>", description: "Comma-separated environments to select from the manifest.", kind: "string" },
1446
1468
  { name: "plan", flags: "--plan", description: "Generate a deterministic plan without applying it. This is the Phase 1 default.", kind: "boolean" },
1447
1469
  { name: "validate", flags: "--validate", description: "Validate the manifest and selected environments without printing plan actions.", kind: "boolean" },
1448
- { name: "apply", flags: "--apply", description: "Apply local seeds directly or governed staging/production seeds through the market API.", kind: "boolean" },
1470
+ { name: "apply", flags: "--apply", description: "Apply local seeds directly or governed staging/production seeds through the API.", kind: "boolean" },
1449
1471
  { name: "market", flags: "--market <market>", description: "Market profile or URL for staging and production seed operations.", kind: "string" },
1450
1472
  { name: "host", flags: "--host <host>", description: "Compatibility alias for --market.", kind: "string" },
1451
1473
  { name: "approvalRequest", flags: "--approval-request <id>", description: "Approved production seed apply request id.", kind: "string" },
@@ -1490,7 +1512,7 @@ const CLI_ONLY_OPERATION_SPECS = [
1490
1512
  "`--apply --environments prod` is blocked until a matching approval request is approved."
1491
1513
  ],
1492
1514
  relatedDetails: [
1493
- related("projects", "Use `projects` after Phase 2 apply work lands to inspect created projects through the market API."),
1515
+ related("projects", "Use `projects` after Phase 2 apply work lands to inspect created projects through the API."),
1494
1516
  related("capacity", "Use `capacity` to inspect existing provider and grant state outside the seed planner.")
1495
1517
  ]
1496
1518
  },
@@ -1508,11 +1530,12 @@ const CLI_ONLY_OPERATION_SPECS = [
1508
1530
  description: "Run a read-only or explicit repair audit for Repository, Web, Processing, and Email hosting setup.",
1509
1531
  provider: "default",
1510
1532
  related: ["status", "config", "save", "release"],
1511
- usage: "treeseed audit hosting [--environment current|local|staging|prod] [--repair] [--json]",
1533
+ usage: "treeseed audit hosting [--environment current|local|staging|prod] [--repair] [--live] [--json]",
1512
1534
  arguments: [{ name: "target", description: "Audit target. Use hosting.", required: false }],
1513
1535
  options: [
1514
1536
  { name: "environment", flags: "--environment <environment>", description: "Audit environment. Defaults to current branch mapping.", kind: "enum", values: ["current", "local", "staging", "prod"] },
1515
1537
  { name: "repair", flags: "--repair", description: "Explicitly reconcile missing platform/provider resources.", kind: "boolean" },
1538
+ { name: "live", flags: "--live", description: "Collect live Railway and HTTP observations for hosted service checks.", kind: "boolean" },
1516
1539
  { name: "hostKinds", flags: "--host-kinds <kinds>", description: "Comma-separated host kinds to audit.", kind: "string" },
1517
1540
  { name: "json", flags: "--json", description: "Emit the hosting audit report as JSON.", kind: "boolean" }
1518
1541
  ],
@@ -1618,14 +1641,14 @@ const CLI_ONLY_OPERATION_SPECS = [
1618
1641
  name: "market",
1619
1642
  aliases: [],
1620
1643
  group: "Utilities",
1621
- summary: "Manage configured Treeseed market API endpoints.",
1622
- description: "List, add, select, remove, and inspect market API profiles stored in local machine configuration.",
1644
+ summary: "Manage configured Treeseed API endpoints.",
1645
+ description: "List, add, select, remove, and inspect API profiles stored in local machine configuration.",
1623
1646
  provider: "default",
1624
1647
  related: ["auth:login", "teams", "projects"],
1625
1648
  usage: "treeseed market [list|add|use|remove|status]",
1626
1649
  arguments: [{ name: "action", description: "Market action.", required: false }],
1627
1650
  options: [
1628
- { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct market API URL.", kind: "string" },
1651
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
1629
1652
  { name: "label", flags: "--label <label>", description: "Display label for market add.", kind: "string" },
1630
1653
  { name: "kind", flags: "--kind <kind>", description: "Market kind for market add.", kind: "enum", values: ["central", "specialized"] },
1631
1654
  { name: "team", flags: "--team <team-id>", description: "Team id for a specialized market profile.", kind: "string" },
@@ -1633,7 +1656,7 @@ const CLI_ONLY_OPERATION_SPECS = [
1633
1656
  ],
1634
1657
  examples: ["treeseed market list", "treeseed market add enterprise https://market.example.com", "treeseed market use central"],
1635
1658
  help: {
1636
- longSummary: ["Market manages local Treeseed market API profiles. It never serves market behavior itself; it only selects endpoints the SDK market client should call."],
1659
+ longSummary: ["Market manages local Treeseed API profiles. It never serves market behavior itself; it only selects endpoints the SDK market client should call."],
1637
1660
  whenToUse: ["Use this when you need to add an enterprise market, switch back to central, or inspect which market endpoint CLI commands will target."],
1638
1661
  beforeYouRun: ["Decide whether you are managing the always-available central profile or a team-specific specialized market profile."],
1639
1662
  automationNotes: ["Use `--json` when scripts need the active market id, URL, and configured profiles."]
@@ -1649,19 +1672,19 @@ const CLI_ONLY_OPERATION_SPECS = [
1649
1672
  aliases: [],
1650
1673
  group: "Utilities",
1651
1674
  summary: "Inspect teams from the selected market.",
1652
- description: "List teams, select a team context, and inspect team membership through the market API client.",
1675
+ description: "List teams, select a team context, and inspect team membership through the API client.",
1653
1676
  provider: "default",
1654
1677
  related: ["market", "auth:login", "projects"],
1655
1678
  usage: "treeseed teams [list|use|members]",
1656
1679
  arguments: [{ name: "action", description: "Teams action.", required: false }],
1657
1680
  options: [
1658
- { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct market API URL.", kind: "string" },
1681
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
1659
1682
  { name: "team", flags: "--team <team-id>", description: "Team id for member lookup.", kind: "string" },
1660
1683
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1661
1684
  ],
1662
1685
  examples: ["treeseed teams list", "treeseed teams members team_123"],
1663
1686
  help: {
1664
- longSummary: ["Teams reads team membership data from the selected market API using the SDK market client."],
1687
+ longSummary: ["Teams reads team membership data from the selected API using the SDK market client."],
1665
1688
  whenToUse: ["Use this after login to confirm team membership or inspect who belongs to a market-owned team."],
1666
1689
  beforeYouRun: ["Authenticate to the selected market with `treeseed auth:login --market <id>` before reading private team data."],
1667
1690
  automationNotes: ["Use `--json` for scripts that need stable team or member arrays."]
@@ -1677,7 +1700,7 @@ const CLI_ONLY_OPERATION_SPECS = [
1677
1700
  aliases: [],
1678
1701
  group: "Utilities",
1679
1702
  summary: "Inspect projects, project hosts, and web deployment operations from the selected market.",
1680
- description: "List market projects, inspect access and host bindings, and queue project host or web deployment operations through the Market API.",
1703
+ description: "List market projects, inspect access and host bindings, and queue project host or web deployment operations through the API.",
1681
1704
  provider: "default",
1682
1705
  related: ["market", "teams", "config"],
1683
1706
  usage: "treeseed projects [list|access|hosts|deploy|publish|monitor|deployments|deployment]",
@@ -1687,7 +1710,7 @@ const CLI_ONLY_OPERATION_SPECS = [
1687
1710
  { name: "deployment-id", description: "Deployment id for deployment detail, retry, resume, or cancel.", required: false }
1688
1711
  ],
1689
1712
  options: [
1690
- { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct market API URL.", kind: "string" },
1713
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
1691
1714
  { name: "team", flags: "--team <team-id>", description: "Limit project list to a team.", kind: "string" },
1692
1715
  { name: "environment", flags: "--environment <environment>", description: "Deployment environment for project web actions.", kind: "enum", values: ["staging", "prod"] },
1693
1716
  { name: "wait", flags: "--wait", description: "Poll the queued deployment until it reaches a terminal state.", kind: "boolean" },
@@ -1715,7 +1738,7 @@ const CLI_ONLY_OPERATION_SPECS = [
1715
1738
  "treeseed projects deployment project_123 dep_123"
1716
1739
  ],
1717
1740
  help: {
1718
- longSummary: ["Projects reads project, host binding, access, and deployment state from the selected market API using the SDK market client."],
1741
+ longSummary: ["Projects reads project, host binding, access, and deployment state from the selected API using the SDK market client."],
1719
1742
  whenToUse: ["Use this to inspect projects, audit or replace launch host bindings, queue staging or production web deployment operations, and inspect the same state shown in the Market UI."],
1720
1743
  beforeYouRun: ["Authenticate to the market with `treeseed auth:login --market <selector>` and know the project id before queueing deployment work."],
1721
1744
  automationNotes: ["Use `--json` to capture project lists, deployment records, events, and wait results for automation."],
@@ -1738,7 +1761,7 @@ const CLI_ONLY_OPERATION_SPECS = [
1738
1761
  usage: "treeseed capacity [doctor|register|plan|migrate|up|down|restart|logs|status|build|test-local]",
1739
1762
  arguments: [{ name: "action", description: "Capacity action.", required: false }],
1740
1763
  options: [
1741
- { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct market API URL.", kind: "string" },
1764
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
1742
1765
  { name: "provider", flags: "--provider <provider-id>", description: "Provider id or local provider selector for diagnostics.", kind: "string" },
1743
1766
  { name: "team", flags: "--team <team-id>", description: "Team id for Market capacity migration.", kind: "string" },
1744
1767
  { name: "project", flags: "--project <project-id>", description: "Project id for Market capacity plan or allocation migration.", kind: "string" },
@@ -1784,19 +1807,262 @@ const CLI_ONLY_OPERATION_SPECS = [
1784
1807
  executionMode: "handler",
1785
1808
  handlerName: "capacity"
1786
1809
  },
1810
+ {
1811
+ id: "hosting",
1812
+ name: "hosting",
1813
+ aliases: [],
1814
+ group: "Utilities",
1815
+ summary: "Plan, apply, verify, and inspect the Treeseed hosting graph.",
1816
+ description: "Resolve host-agnostic service types into environment-specific host bindings for local dev, staging, and production.",
1817
+ provider: "default",
1818
+ related: ["status", "dev", "config", "stage", "release"],
1819
+ usage: "treeseed hosting [status|plan|apply|verify|destroy] [--environment local|staging|prod] [--app web|api] [--service api] [--json]",
1820
+ arguments: [{ name: "action", description: "Hosting action.", required: false }],
1821
+ options: [
1822
+ { name: "environment", flags: "--environment <scope>", description: "Hosting environment to resolve.", kind: "enum", values: ["local", "staging", "prod"] },
1823
+ { name: "app", flags: "--app <app-id>", description: "Limit hosting graph work to one discovered Treeseed application, such as web or api.", kind: "string" },
1824
+ { name: "service", flags: "--service <service-id>", description: "Limit hosting graph work to one service id. Repeat or comma-separate for multiple services.", kind: "string" },
1825
+ { name: "placement", flags: "--placement <placement>", description: "Limit hosting graph work to one service placement.", kind: "string" },
1826
+ { name: "host", flags: "--host <host-id>", description: "Limit hosting graph work to one host id.", kind: "string" },
1827
+ { name: "live", flags: "--live", description: "Request live provider verification where supported.", kind: "boolean" },
1828
+ { name: "dryRun", flags: "--dry-run", description: "Force apply to render a non-mutating dry-run result.", kind: "boolean" },
1829
+ { name: "execute", flags: "--execute", description: "Allow hosting apply to call adapter apply methods for the selected environment.", kind: "boolean" },
1830
+ { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1831
+ ],
1832
+ examples: [
1833
+ "treeseed hosting status --environment local",
1834
+ "treeseed hosting plan --environment staging --json",
1835
+ "treeseed hosting plan --environment staging --app web --json",
1836
+ "treeseed hosting plan --environment staging --app api --json",
1837
+ "treeseed hosting plan --environment staging --service api --json",
1838
+ "treeseed hosting verify --environment prod --json",
1839
+ "treeseed hosting apply --environment staging --app api --execute --json",
1840
+ "treeseed hosting destroy --environment staging --app api --execute --json"
1841
+ ],
1842
+ help: {
1843
+ longSummary: ["Hosting resolves Treeseed application profiles into service placements, service types, host capabilities, and provider/local resources."],
1844
+ whenToUse: ["Use this before dev, stage, or release when you need to inspect host bindings, missing capabilities, or TreeDX/public federation placement."],
1845
+ beforeYouRun: ["Run from the Treeseed workspace. Use `--json` for automation. `apply` is dry-run unless `--execute` is passed."],
1846
+ automationNotes: ["The JSON report includes placements, units, selected hosts, required capabilities, project groups, and verification checks without secret values."]
1847
+ },
1848
+ helpVisible: true,
1849
+ helpFeatured: true,
1850
+ executionMode: "handler",
1851
+ handlerName: "hosting"
1852
+ },
1853
+ {
1854
+ id: "reconcile",
1855
+ name: "reconcile",
1856
+ aliases: [],
1857
+ group: "Utilities",
1858
+ summary: "Run canonical reconciliation platform diagnostics.",
1859
+ description: "Exercise SDK-owned reconciliation reports, live provider coverage, and exact-state postconditions.",
1860
+ provider: "default",
1861
+ related: ["hosting", "config", "stage", "release"],
1862
+ usage: "treeseed reconcile test-live [--mode smoke|acceptance|cleanup] [--provider railway|cloudflare|github|local|all] [--environment local|staging|prod] [--yes] [--json]",
1863
+ arguments: [{ name: "action", description: "Reconcile diagnostic action. Use test-live.", required: false }],
1864
+ options: [
1865
+ { name: "provider", flags: "--provider <provider>", description: "Provider live-test scope. Use railway, cloudflare, github, local, or all.", kind: "string" },
1866
+ { name: "mode", flags: "--mode <mode>", description: "Live-test mode. Smoke is read-only; acceptance and cleanup mutate isolated provider resources and require --yes.", kind: "enum", values: ["smoke", "acceptance", "cleanup"] },
1867
+ { name: "environment", flags: "--environment <scope>", description: "Environment to test.", kind: "enum", values: ["local", "staging", "prod"] },
1868
+ { name: "yes", flags: "--yes", description: "Confirm acceptance or cleanup mode may create and delete real isolated provider resources.", kind: "boolean" },
1869
+ { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1870
+ ],
1871
+ examples: [
1872
+ "treeseed reconcile test-live --provider local --json",
1873
+ "treeseed reconcile test-live --provider railway --environment staging --json",
1874
+ "treeseed reconcile test-live --provider all --environment staging --json",
1875
+ "treeseed reconcile test-live --mode acceptance --provider railway --environment staging --yes --json",
1876
+ "treeseed reconcile test-live --mode cleanup --provider all --environment staging --yes --json"
1877
+ ],
1878
+ help: {
1879
+ longSummary: ["Reconcile diagnostics prove that provider adapters implement the canonical SDK lifecycle. Smoke mode is fast and read-only. Acceptance mode creates, updates, verifies, and destroys isolated resources. Cleanup mode removes leftover isolated live-test resources. Missing provider coverage is reported as blocking drift, not skipped success."],
1880
+ whenToUse: ["Use this before staging or release promotions when provider tokens are configured, or when adding a new provider/resource adapter."],
1881
+ beforeYouRun: ["Run from the Treeseed workspace. Provider tests use encrypted Treeseed config values and deterministic isolated prefixes."],
1882
+ automationNotes: ["The JSON report contains desiredGraph, observedGraph, actions, postconditions, blockedDrift, providerLimitations, liveVerification, and ok for each selected provider."]
1883
+ },
1884
+ helpVisible: true,
1885
+ helpFeatured: false,
1886
+ executionMode: "handler",
1887
+ handlerName: "reconcile"
1888
+ },
1889
+ {
1890
+ id: "ready",
1891
+ name: "ready",
1892
+ aliases: [],
1893
+ group: "Workflow",
1894
+ summary: "Check whether an environment is ready for staging or release.",
1895
+ description: "Runs deployment graph readiness, hosted service checks, and Treeseed operations runner smoke diagnostics before expensive workflow promotion.",
1896
+ provider: "default",
1897
+ related: ["hosting", "stage", "release", "doctor"],
1898
+ usage: "treeseed ready <local|staging|prod> [--live] [--strict] [--json]",
1899
+ arguments: [{ name: "environment", description: "Environment to check.", required: false }],
1900
+ options: [
1901
+ { name: "environment", flags: "--environment <scope>", description: "Environment to check.", kind: "enum", values: ["local", "staging", "prod"] },
1902
+ { name: "live", flags: "--live", description: "Include live provider and HTTP checks.", kind: "boolean" },
1903
+ { name: "strict", flags: "--strict", description: "Fail when required live observations are unavailable.", kind: "boolean" },
1904
+ { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1905
+ ],
1906
+ examples: [
1907
+ "treeseed ready staging --json",
1908
+ "treeseed ready prod --json"
1909
+ ],
1910
+ help: {
1911
+ longSummary: ["Ready is the fail-fast preflight for stage and release. It checks the effective hosting graph, provider state, HTTP health, and runner operation processing before a workflow spends time on deploys."],
1912
+ whenToUse: ["Run before stage or release, especially after hosting config or package boundary changes."],
1913
+ beforeYouRun: ["Run from the Treeseed workspace. Use `ready local` for static local checks, and use staging or prod only when provider credentials are available for live checks."],
1914
+ automationNotes: ["Use --json for stable readiness output. Staging and prod default to live strict checks."]
1915
+ },
1916
+ helpVisible: true,
1917
+ helpFeatured: true,
1918
+ executionMode: "handler",
1919
+ handlerName: "ready"
1920
+ },
1921
+ {
1922
+ id: "operations",
1923
+ name: "operations",
1924
+ aliases: [],
1925
+ group: "Utilities",
1926
+ summary: "Run Treeseed operation-runner diagnostics.",
1927
+ description: "Queues a diagnostic Market platform operation and verifies that the deployed operations runner claims and completes it.",
1928
+ provider: "default",
1929
+ related: ["hosting", "ready", "stage"],
1930
+ usage: "treeseed operations smoke [--environment staging|prod] [--service operationsRunner] [--json]",
1931
+ arguments: [{ name: "action", description: "Operations action.", required: false }],
1932
+ options: [
1933
+ { name: "environment", flags: "--environment <scope>", description: "Environment to smoke test.", kind: "enum", values: ["staging", "prod"] },
1934
+ { name: "service", flags: "--service <service-id>", description: "Service to smoke test. Currently operationsRunner.", kind: "string" },
1935
+ { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1936
+ ],
1937
+ examples: [
1938
+ "treeseed operations smoke --environment staging --service operationsRunner --json"
1939
+ ],
1940
+ help: {
1941
+ longSummary: ["Operations smoke proves that the API, database, and operations runner work together before TreeDX/bootstrap workflows queue real work."],
1942
+ whenToUse: ["Run when staging deploys time out with queued operations or before release resource verification."],
1943
+ beforeYouRun: ["Run after the API and operations runner are deployed. Ensure the selected environment has the API base URL and service credentials configured through Treeseed config."],
1944
+ automationNotes: ["The JSON report redacts credentials and includes operation id, final status, runner id, timings, and failure remediation."]
1945
+ },
1946
+ helpVisible: true,
1947
+ helpFeatured: true,
1948
+ executionMode: "handler",
1949
+ handlerName: "operations"
1950
+ },
1951
+ {
1952
+ id: "workspace.package",
1953
+ name: "package",
1954
+ aliases: [],
1955
+ group: "Utilities",
1956
+ summary: "Run manifest-driven package development workflows.",
1957
+ description: "Plan, sync credentials for, and dispatch package development image workflows declared by checked-out package manifests such as treeseed.package.yaml.",
1958
+ provider: "default",
1959
+ related: ["config", "hosting", "db"],
1960
+ usage: "treeseed package image --package <package-id>",
1961
+ arguments: [{ name: "action", description: "Package workflow action.", required: false }],
1962
+ options: [
1963
+ { name: "package", flags: "--package <package-id>", description: "Discovered package id from treeseed.package.yaml, such as treedx.", kind: "string" },
1964
+ { name: "branch", flags: "--branch <branch>", description: "Package repository branch to publish as a development image. Defaults to staging.", kind: "string" },
1965
+ { name: "workflow", flags: "--workflow <file>", description: "GitHub Actions workflow file for package image publication. Defaults to the package manifest.", kind: "string" },
1966
+ { name: "syncConfig", flags: "--sync-config", description: "Sync package image credentials from Treeseed config into the package GitHub environment.", kind: "boolean" },
1967
+ { name: "plan", flags: "--plan", description: "Print the package image plan without dispatching GitHub Actions.", kind: "boolean" },
1968
+ { name: "execute", flags: "--execute", description: "Dispatch the package development image workflow.", kind: "boolean" },
1969
+ { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1970
+ ],
1971
+ examples: [
1972
+ "treeseed package image --package treedx --branch staging --plan --json",
1973
+ "treeseed package image --package treedx --branch staging --sync-config --json",
1974
+ "treeseed package image --package treedx --branch staging --execute --json"
1975
+ ],
1976
+ help: {
1977
+ longSummary: ["Package workflows are driven by package-local metadata instead of bespoke CLI logic. A checked-out package can declare its repository, development image workflow, hosting override, and credential requirements in treeseed.package.yaml."],
1978
+ whenToUse: ["Use this when a package such as TreeDX needs to publish a staging development image, sync package-repository GitHub environment secrets, or report the image ref that hosting reconciliation should consume."],
1979
+ beforeYouRun: ["Run `trsd config` to configure repository-scoped GitHub credentials and provider secrets. Do not pass package repository tokens or Docker Hub secrets on the command line."],
1980
+ automationNotes: ["Use `--json` to capture selected package metadata, repository credential routing, Docker Hub readiness, immutable image tags, and the hosting override command."]
1981
+ },
1982
+ helpVisible: true,
1983
+ helpFeatured: false,
1984
+ executionMode: "handler",
1985
+ handlerName: "package"
1986
+ },
1987
+ {
1988
+ id: "market.db",
1989
+ name: "db",
1990
+ aliases: [],
1991
+ group: "Utilities",
1992
+ summary: "Manage team TreeDX knowledge-library bindings.",
1993
+ description: "Inspect, provision, connect, mirror, share, publish, bind TreeDX libraries, and publish staging-safe TreeDX development images.",
1994
+ provider: "default",
1995
+ related: ["teams", "projects", "capacity"],
1996
+ usage: "treeseed db [status|provision|connect|mirrors|shares|library|topology|publish|image]",
1997
+ arguments: [{ name: "action", description: "TreeDX action.", required: false }],
1998
+ options: [
1999
+ { name: "market", flags: "--market <id-or-url>", description: "Select a configured market id or direct API URL.", kind: "string" },
2000
+ { name: "team", flags: "--team <team-id>", description: "Team id for status, provisioning, mirrors, and shares.", kind: "string" },
2001
+ { name: "project", flags: "--project <project-id>", description: "Project id for library binding and topology inspection.", kind: "string" },
2002
+ { name: "public", flags: "--public", description: "Use public federation posture for provisioning or sharing.", kind: "boolean" },
2003
+ { name: "selfHosted", flags: "--self-hosted", description: "Connect a self-hosted TreeDX URL as the primary binding.", kind: "boolean" },
2004
+ { name: "url", flags: "--url <url>", description: "TreeDX base URL for connect/provision.", kind: "string" },
2005
+ { name: "registryUrl", flags: "--registry-url <url>", description: "Optional TreeDX registry URL.", kind: "string" },
2006
+ { name: "image", flags: "--image <image-ref>", description: "TreeDX container image ref, default treeseed/treedx:latest.", kind: "string" },
2007
+ { name: "name", flags: "--name <name>", description: "Mirror display name.", kind: "string" },
2008
+ { name: "targetUrl", flags: "--target-url <url>", description: "Mirror target URL.", kind: "string" },
2009
+ { name: "targetKind", flags: "--target-kind <kind>", description: "Mirror target kind such as git or treedx.", kind: "string" },
2010
+ { name: "direction", flags: "--direction <mode>", description: "Mirror direction: pull, push, or bidirectional.", kind: "string" },
2011
+ { name: "scope", flags: "--scope <scope>", description: "Share scope: team, library, or public_federation.", kind: "string" },
2012
+ { name: "targetTeam", flags: "--target-team <team-id>", description: "Target team id for a team share.", kind: "string" },
2013
+ { name: "library", flags: "--library <library-id>", description: "TreeDX library id for project binding or share.", kind: "string" },
2014
+ { name: "instance", flags: "--instance <instance-id>", description: "TreeDX instance id for project binding.", kind: "string" },
2015
+ { name: "repository", flags: "--repository <repo-id>", description: "TreeDX repository id for project binding.", kind: "string" },
2016
+ { name: "contentRepositoryUrl", flags: "--content-repository-url <url>", description: "Linked GitHub content repository URL.", kind: "string" },
2017
+ { name: "environment", flags: "--environment <scope>", description: "Publish environment for db publish: staging or prod.", kind: "enum", values: ["staging", "prod"] },
2018
+ { name: "branch", flags: "--branch <branch>", description: "TreeDX branch to publish as a development image. Defaults to staging.", kind: "string" },
2019
+ { name: "workflow", flags: "--workflow <file>", description: "TreeDX GitHub Actions workflow file for db image. Defaults to dev-image.yml.", kind: "string" },
2020
+ { name: "syncConfig", flags: "--sync-config", description: "Sync package image credentials from Treeseed config into the package GitHub environment.", kind: "boolean" },
2021
+ { name: "plan", flags: "--plan", description: "Print the TreeDX image plan without dispatching GitHub Actions.", kind: "boolean" },
2022
+ { name: "execute", flags: "--execute", description: "Dispatch the TreeDX development image workflow.", kind: "boolean" },
2023
+ { name: "yes", flags: "--yes", description: "Confirm production db publish.", kind: "boolean" },
2024
+ { name: "dryRun", flags: "--dry-run", description: "Queue a dry-run content publish operation.", kind: "boolean" },
2025
+ { name: "reason", flags: "--reason <reason>", description: "Human-readable reason for a content publish.", kind: "string" },
2026
+ { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
2027
+ ],
2028
+ examples: [
2029
+ "treeseed db status --team team_123",
2030
+ "treeseed db provision --team team_123",
2031
+ "treeseed db provision --team team_123 --public",
2032
+ "treeseed db connect --team team_123 --url https://treedx.example.com --self-hosted",
2033
+ "treeseed db mirrors --team team_123 --name customer-copy --target-url https://treedx.customer.example",
2034
+ "treeseed db shares --team team_123 --library team/project --public",
2035
+ "treeseed db library --project project_123 --library team/project",
2036
+ "treeseed db topology --project project_123 --json",
2037
+ "treeseed db publish --project project_123 --environment staging",
2038
+ "treeseed db image --branch staging --plan --json",
2039
+ "treeseed db image --branch staging --sync-config --json",
2040
+ "treeseed db image --branch staging --execute --json"
2041
+ ],
2042
+ help: {
2043
+ longSummary: ["TreeDX commands manage the Treeseed control-plane records that bind each team to one primary knowledge-library instance, bind project content to TreeDX libraries, and publish deterministic TreeDX development images for staging reconciliation."],
2044
+ whenToUse: ["Use this when provisioning a private TreeDX, attaching a public team to federation, creating mirror/share records, inspecting project content/site/project topology, or publishing the TreeDX image that the API app should reconcile."],
2045
+ beforeYouRun: ["Log in to the selected Treeseed API first for team/project actions. For `db image --execute`, configure GitHub credentials through Treeseed-managed config. Do not pass secrets on the command line; TreeDX credentials belong in host secret managers or encrypted config."],
2046
+ automationNotes: ["Use `--json` for stable TreeDX binding, mirror, share, library, topology, and image publication records. `db image` reports the immutable `TREESEED_PUBLIC_TREEDX_IMAGE_REF` value to pass into `trsd hosting apply --app api`. Use `db image --sync-config` when a package repository needs its GitHub environment credentials reconciled from central Treeseed config."]
2047
+ },
2048
+ helpVisible: true,
2049
+ helpFeatured: false,
2050
+ executionMode: "handler",
2051
+ handlerName: "db"
2052
+ },
1787
2053
  {
1788
2054
  id: "market.packs",
1789
2055
  name: "packs",
1790
2056
  aliases: [],
1791
2057
  group: "Utilities",
1792
2058
  summary: "Search and download market knowledge packs.",
1793
- description: "Search knowledge packs and download artifact versions through the integrated market catalog or a selected market API.",
2059
+ description: "Search knowledge packs and download artifact versions through the integrated market catalog or a selected API.",
1794
2060
  provider: "default",
1795
2061
  related: ["market", "template"],
1796
2062
  usage: "treeseed packs [search|install] [id]",
1797
2063
  arguments: [{ name: "action", description: "Packs action.", required: false }],
1798
2064
  options: [
1799
- { name: "market", flags: "--market <id-or-url>", description: "Limit catalog lookup to one configured market id or direct market API URL. Without this, search/install uses the integrated catalog from all configured catalog markets.", kind: "string" },
2065
+ { name: "market", flags: "--market <id-or-url>", description: "Limit catalog lookup to one configured market id or direct API URL. Without this, search/install uses the integrated catalog from all configured catalog markets.", kind: "string" },
1800
2066
  { name: "version", flags: "--version <version>", description: "Artifact version for install.", kind: "string" },
1801
2067
  { name: "json", flags: "--json", description: "Emit machine-readable JSON instead of human-readable text.", kind: "boolean" }
1802
2068
  ],