@m8t-stack/cli 0.2.27 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -931,7 +931,7 @@ var init_foundry_agents = __esm({
931
931
  "use strict";
932
932
  init_http();
933
933
  init_errors();
934
- METADATA_SOURCE = "m8t-stack-POC";
934
+ METADATA_SOURCE = "m8t";
935
935
  FOUNDRY_SCOPE2 = "https://ai.azure.com/.default";
936
936
  API = "v1";
937
937
  }
@@ -1177,7 +1177,7 @@ async function enableHostedBrain(args) {
1177
1177
  // survive the relink version; the managed fields are re-asserted over the
1178
1178
  // spread, and createCoderVersion applies the `brain` arg last.
1179
1179
  ...current.metadata,
1180
- source: "m8t-stack-POC",
1180
+ source: "m8t",
1181
1181
  kind: "hosted",
1182
1182
  persona: current.metadata?.persona ?? "coding-agent",
1183
1183
  personaVersion: current.metadata?.personaVersion ?? null
@@ -1247,7 +1247,7 @@ var init_enable_hosted_brain = __esm({
1247
1247
  import { Builtins, Cli } from "clipanion";
1248
1248
 
1249
1249
  // src/lib/package-version.ts
1250
- var CLI_VERSION = "0.2.27";
1250
+ var CLI_VERSION = "0.2.28";
1251
1251
 
1252
1252
  // src/lib/render-error.ts
1253
1253
  init_errors();
@@ -1412,7 +1412,7 @@ var BACKEND_RULES = [
1412
1412
  {
1413
1413
  code: "UPSTREAM_FAILED",
1414
1414
  reason: "kv_secret_malformed",
1415
- hint: () => "the Key Vault secret for this binding is in an unexpected shape. Manual cleanup may be required \u2014 contact your m8t-stack admin."
1415
+ hint: () => "the Key Vault secret for this binding is in an unexpected shape. Manual cleanup may be required \u2014 contact your m8t admin."
1416
1416
  },
1417
1417
  // NOTE: cascade_partial_failure is handled INLINE in the bind remove +
1418
1418
  // bind cleanup command files (the rendering needs the structured
@@ -1477,15 +1477,15 @@ var LOCAL_RULES = {
1477
1477
  // Task 15+16
1478
1478
  KV_URI_NOT_FOUND: "Pass `--kv-uri` or set `AZURE_KEYVAULT_URI` / `KEYVAULT_URI`.",
1479
1479
  // Task 13 — brain-link
1480
- LINK_NO_INSTALLATION_ID: "Internal error \u2014 the CLI command must poll for the installation id before calling linkBrain. Report at https://github.com/m8t-stack/m8t-stack-poc/issues.",
1480
+ LINK_NO_INSTALLATION_ID: "Internal error \u2014 the CLI command must poll for the installation id before calling linkBrain. Report at https://github.com/m8t/m8t/issues.",
1481
1481
  // Task 16 — brain link command
1482
- M8T_REPO_ROOT_MISSING: "Re-run `m8t install` from a fresh m8t-stack checkout \u2014 the post-install hook writes ~/.m8t-stack/repo-root.",
1482
+ M8T_REPO_ROOT_MISSING: "Re-run `m8t install` from a fresh m8t checkout \u2014 the post-install hook writes ~/.m8t/repo-root.",
1483
1483
  // Task 14 — persona-render
1484
- PERSONA_PATH_NOT_ABSOLUTE: "The persona path in ~/.m8t-stack/foundry/<worker>.yaml must be absolute. Re-deploy the worker via the architect.",
1484
+ PERSONA_PATH_NOT_ABSOLUTE: "The persona path in ~/.m8t/foundry/<worker>.yaml must be absolute. Re-deploy the worker via the architect.",
1485
1485
  // Task 9 — persona-render
1486
- PERSONA_PLACEHOLDER_UNSATISFIED: "Re-deploy the worker via the architect to repopulate fillableFieldValues, OR edit ~/.m8t-stack/foundry/<worker>.yaml manually.",
1486
+ PERSONA_PLACEHOLDER_UNSATISFIED: "Re-deploy the worker via the architect to repopulate fillableFieldValues, OR edit ~/.m8t/foundry/<worker>.yaml manually.",
1487
1487
  // Task 9 — persona-render
1488
- PERSONA_READ_FAILED: "Verify the persona path in ~/.m8t-stack/foundry/<worker>.yaml; the architect should have populated it at deploy time.",
1488
+ PERSONA_READ_FAILED: "Verify the persona path in ~/.m8t/foundry/<worker>.yaml; the architect should have populated it at deploy time.",
1489
1489
  // ── pre-existing entries ──────────────────────────────────────────────────
1490
1490
  AUTH_NOT_SIGNED_IN: "you are not signed in to Azure \u2014 run 'az login' first.",
1491
1491
  AUTH_EXPIRED: "your Azure login expired \u2014 run 'az login' to re-authenticate.",
@@ -11747,7 +11747,7 @@ import * as path2 from "path";
11747
11747
  import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
11748
11748
  function configDir() {
11749
11749
  const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
11750
- return path2.join(home, ".m8t-stack");
11750
+ return path2.join(home, ".m8t");
11751
11751
  }
11752
11752
  function getConfigPath() {
11753
11753
  return path2.join(configDir(), "cli-config.yaml");
@@ -11810,7 +11810,7 @@ async function discoverGateway(opts) {
11810
11810
  const candidates = [];
11811
11811
  try {
11812
11812
  for await (const app of client.containerApps.listBySubscription()) {
11813
- if (app.tags?.["m8t-stack"] !== "gateway") continue;
11813
+ if (app.tags?.m8t !== "gateway") continue;
11814
11814
  const fqdn2 = app.configuration?.ingress?.fqdn;
11815
11815
  const envs = app.template?.containers?.[0]?.env ?? [];
11816
11816
  const envMap = /* @__PURE__ */ new Map();
@@ -11839,7 +11839,7 @@ async function discoverGateway(opts) {
11839
11839
  if (candidates.length === 0) {
11840
11840
  throw new LocalCliError({
11841
11841
  code: "GATEWAY_DISCOVERY_ZERO",
11842
- message: `No m8t-stack deployment found in subscription ${subscriptionId}.`,
11842
+ message: `No m8t deployment found in subscription ${subscriptionId}.`,
11843
11843
  hint: "If the deployment is in another subscription, run 'az account set --subscription <name>'."
11844
11844
  });
11845
11845
  }
@@ -11850,8 +11850,8 @@ async function discoverGateway(opts) {
11850
11850
  if (pool.length === 0) {
11851
11851
  throw new LocalCliError({
11852
11852
  code: "GATEWAY_DISCOVERY_RG_NOT_FOUND",
11853
- message: `No m8t-stack gateway found in resource group '${opts.resourceGroup}' (subscription ${subscriptionId}).`,
11854
- hint: `m8t-stack gateways in this subscription: ${candidates.map((c) => c.resourceGroup).join(", ")}.`
11853
+ message: `No m8t gateway found in resource group '${opts.resourceGroup}' (subscription ${subscriptionId}).`,
11854
+ hint: `m8t gateways in this subscription: ${candidates.map((c) => c.resourceGroup).join(", ")}.`
11855
11855
  });
11856
11856
  }
11857
11857
  }
@@ -11860,7 +11860,7 @@ async function discoverGateway(opts) {
11860
11860
  chosen = pool[0];
11861
11861
  } else if (opts.interactive) {
11862
11862
  const resourceId = await select({
11863
- message: `Multiple m8t-stack deployments found in subscription ${subscriptionId}. Choose one:`,
11863
+ message: `Multiple m8t deployments found in subscription ${subscriptionId}. Choose one:`,
11864
11864
  choices: pool.map((c) => ({
11865
11865
  name: `${c.name} (rg=${c.resourceGroup}, ${c.location})`,
11866
11866
  value: c.resourceId
@@ -11877,7 +11877,7 @@ async function discoverGateway(opts) {
11877
11877
  } else {
11878
11878
  throw new LocalCliError({
11879
11879
  code: "GATEWAY_DISCOVERY_MULTIPLE",
11880
- message: `Multiple m8t-stack gateways found in subscription ${subscriptionId}: ${pool.map((c) => `${c.name} (rg=${c.resourceGroup}, ${c.location})`).join("; ")}.`,
11880
+ message: `Multiple m8t gateways found in subscription ${subscriptionId}: ${pool.map((c) => `${c.name} (rg=${c.resourceGroup}, ${c.location})`).join("; ")}.`,
11881
11881
  hint: `Re-run with --resource-group <rg> to pick one (e.g. --resource-group ${pool[0].resourceGroup}).`
11882
11882
  });
11883
11883
  }
@@ -11965,7 +11965,7 @@ var BindAddCommand = class extends M8tCommand {
11965
11965
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
11966
11966
  });
11967
11967
  resourceGroup = Option.String("--resource-group", {
11968
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
11968
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
11969
11969
  });
11970
11970
  async executeCommand() {
11971
11971
  if (!this.worker) {
@@ -12048,7 +12048,7 @@ var BindCleanupCommand = class extends M8tCommand {
12048
12048
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12049
12049
  });
12050
12050
  resourceGroup = Option2.String("--resource-group", {
12051
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12051
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12052
12052
  });
12053
12053
  async executeCommand() {
12054
12054
  if (this.bindingId && this.allOrphaned) {
@@ -12189,7 +12189,7 @@ var BindListCommand = class extends M8tCommand {
12189
12189
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12190
12190
  });
12191
12191
  resourceGroup = Option3.String("--resource-group", {
12192
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12192
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12193
12193
  });
12194
12194
  async executeCommand() {
12195
12195
  const mode = resolveOutputMode(
@@ -12269,7 +12269,7 @@ var BindRemoveCommand = class extends M8tCommand {
12269
12269
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12270
12270
  });
12271
12271
  resourceGroup = Option4.String("--resource-group", {
12272
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12272
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12273
12273
  });
12274
12274
  async executeCommand() {
12275
12275
  const mode = resolveOutputMode(
@@ -12348,7 +12348,7 @@ var BindShowCommand = class extends M8tCommand {
12348
12348
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12349
12349
  });
12350
12350
  resourceGroup = Option5.String("--resource-group", {
12351
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12351
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12352
12352
  });
12353
12353
  async executeCommand() {
12354
12354
  const mode = resolveOutputMode(
@@ -12422,7 +12422,7 @@ var FOUNDRY_CONFIG_KEYS = ["tenantId", "clientId", "projectEndpoint"];
12422
12422
  var UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
12423
12423
  function configDir2() {
12424
12424
  const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
12425
- return path3.join(home, ".m8t-stack");
12425
+ return path3.join(home, ".m8t");
12426
12426
  }
12427
12427
  function getFoundryConfigPath() {
12428
12428
  return path3.join(configDir2(), "config.yaml");
@@ -12539,7 +12539,7 @@ init_errors();
12539
12539
  var ConfigSetCommand = class extends M8tCommand {
12540
12540
  static paths = [["config", "set"]];
12541
12541
  static usage = Command8.Usage({
12542
- description: "Set a value in ~/.m8t-stack/config.yaml (tenantId | clientId | projectEndpoint)."
12542
+ description: "Set a value in ~/.m8t/config.yaml (tenantId | clientId | projectEndpoint)."
12543
12543
  });
12544
12544
  key = Option7.String();
12545
12545
  value = Option7.String();
@@ -12574,7 +12574,7 @@ import { Command as Command9, Option as Option8 } from "clipanion";
12574
12574
  var ConfigShowCommand = class extends M8tCommand {
12575
12575
  static paths = [["config", "show"]];
12576
12576
  static usage = Command9.Usage({
12577
- description: "Show ~/.m8t-stack/config.yaml (tenant/client/project) + the cached gateway.",
12577
+ description: "Show ~/.m8t/config.yaml (tenant/client/project) + the cached gateway.",
12578
12578
  details: "Displays the Foundry config (config.yaml) and the gateway discovery cache (cli-config.yaml)."
12579
12579
  });
12580
12580
  output = Option8.String("--output");
@@ -12648,7 +12648,7 @@ var TeamAddCommand = class extends M8tCommand {
12648
12648
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12649
12649
  });
12650
12650
  resourceGroup = Option9.String("--resource-group", {
12651
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12651
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12652
12652
  });
12653
12653
  async executeCommand() {
12654
12654
  const identities = {};
@@ -12741,7 +12741,7 @@ var TeamAddIdentityCommand = class extends M8tCommand {
12741
12741
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12742
12742
  });
12743
12743
  resourceGroup = Option10.String("--resource-group", {
12744
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12744
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12745
12745
  });
12746
12746
  async executeCommand() {
12747
12747
  const identities = {};
@@ -12801,7 +12801,7 @@ var TeamListCommand = class extends M8tCommand {
12801
12801
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12802
12802
  });
12803
12803
  resourceGroup = Option11.String("--resource-group", {
12804
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12804
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12805
12805
  });
12806
12806
  async executeCommand() {
12807
12807
  const mode = resolveOutputMode(
@@ -12870,7 +12870,7 @@ var TeamRemoveCommand = class extends M8tCommand {
12870
12870
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12871
12871
  });
12872
12872
  resourceGroup = Option12.String("--resource-group", {
12873
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12873
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12874
12874
  });
12875
12875
  async executeCommand() {
12876
12876
  const mode = resolveOutputMode(
@@ -12934,7 +12934,7 @@ var TeamRemoveIdentityCommand = class extends M8tCommand {
12934
12934
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12935
12935
  });
12936
12936
  resourceGroup = Option13.String("--resource-group", {
12937
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
12937
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
12938
12938
  });
12939
12939
  async executeCommand() {
12940
12940
  const channels = [];
@@ -12997,7 +12997,7 @@ var TeamShowCommand = class extends M8tCommand {
12997
12997
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
12998
12998
  });
12999
12999
  resourceGroup = Option14.String("--resource-group", {
13000
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
13000
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
13001
13001
  });
13002
13002
  async executeCommand() {
13003
13003
  const mode = resolveOutputMode(
@@ -13492,8 +13492,8 @@ var BrainAppCreateCommand = class extends M8tCommand {
13492
13492
  });
13493
13493
  }
13494
13494
  const org = this.org;
13495
- const pemOut = typeof this.pemOut === "string" ? this.pemOut : path4.join(os.homedir(), ".m8t-stack", "github-app.pem");
13496
- const credsOut = typeof this.credsOut === "string" ? this.credsOut : path4.join(os.homedir(), ".m8t-stack", "github-app.json");
13495
+ const pemOut = typeof this.pemOut === "string" ? this.pemOut : path4.join(os.homedir(), ".m8t", "github-app.pem");
13496
+ const credsOut = typeof this.credsOut === "string" ? this.credsOut : path4.join(os.homedir(), ".m8t", "github-app.json");
13497
13497
  const port = Number(this.port);
13498
13498
  const onProgress = (m) => this.context.stderr.write(` ${colors.dim(m)}
13499
13499
  `);
@@ -13591,7 +13591,7 @@ function discoverKvUri(env, override) {
13591
13591
  });
13592
13592
  }
13593
13593
  function tryResolveRepoRoot() {
13594
- const marker = path5.join(os2.homedir(), ".m8t-stack", "repo-root");
13594
+ const marker = path5.join(os2.homedir(), ".m8t", "repo-root");
13595
13595
  if (!fs5.existsSync(marker)) return null;
13596
13596
  const root = fs5.readFileSync(marker, "utf8").trim();
13597
13597
  return root.length > 0 ? root : null;
@@ -13601,7 +13601,7 @@ function resolveRepoRoot() {
13601
13601
  if (root === null) {
13602
13602
  throw new LocalCliError({
13603
13603
  code: "M8T_REPO_ROOT_MISSING",
13604
- message: "~/.m8t-stack/repo-root marker missing \u2014 m8t install never completed."
13604
+ message: "~/.m8t/repo-root marker missing \u2014 m8t install never completed."
13605
13605
  });
13606
13606
  }
13607
13607
  return root;
@@ -13756,7 +13756,7 @@ import * as path6 from "path";
13756
13756
  import * as os3 from "os";
13757
13757
  import { parse as parseYaml3, stringify as stringifyYaml3 } from "yaml";
13758
13758
  function agentYamlPath(agentName, home = os3.homedir()) {
13759
- return path6.join(home, ".m8t-stack", "foundry", `${agentName}.yaml`);
13759
+ return path6.join(home, ".m8t", "foundry", `${agentName}.yaml`);
13760
13760
  }
13761
13761
  function readAgentYaml(agentName, home) {
13762
13762
  const file = agentYamlPath(agentName, home);
@@ -13837,7 +13837,7 @@ function renderPersonaBody(personaPath, fillableFieldValues, instanceName) {
13837
13837
  throw new LocalCliError({
13838
13838
  code: "PERSONA_PLACEHOLDER_UNSATISFIED",
13839
13839
  message: `Persona '${personaPath}' has un-substituted placeholders: ${names.join(", ")}`,
13840
- hint: `Add these to fillableFieldValues in ~/.m8t-stack/foundry/<agent>.yaml, or re-deploy the agent via the architect to repopulate.`
13840
+ hint: `Add these to fillableFieldValues in ~/.m8t/foundry/<agent>.yaml, or re-deploy the agent via the architect to repopulate.`
13841
13841
  });
13842
13842
  }
13843
13843
  const out = rendered.replace(/\s+$/, "");
@@ -14685,7 +14685,7 @@ var BrainCreateCommand = class extends M8tCommand {
14685
14685
  static paths = [["brain", "create"]];
14686
14686
  static usage = Command18.Usage({
14687
14687
  description: "Create a new brain repo from brain-template/ (optionally seeded) and link it to <worker>.",
14688
- details: "Copies ~/.m8t-stack/repo-root/brain-template/ to a tmp dir, optionally overlays brain-seeds/<name>/ (via --seed), stages it as a git repo, runs gh repo create --source --push, then the link cascade. Default --repo-name: <worker>-brain. Default visibility: private.",
14688
+ details: "Copies ~/.m8t/repo-root/brain-template/ to a tmp dir, optionally overlays brain-seeds/<name>/ (via --seed), stages it as a git repo, runs gh repo create --source --push, then the link cascade. Default --repo-name: <worker>-brain. Default visibility: private.",
14689
14689
  examples: [
14690
14690
  ["Create + link with defaults", "$0 brain create cmo --owner orkeren21"],
14691
14691
  ["Custom name + public", "$0 brain create cmo --owner orkeren21 --repo-name cmo-second-brain --public"],
@@ -15110,7 +15110,7 @@ async function listM8tAgents(args) {
15110
15110
  if (!raw.name && !raw.id) continue;
15111
15111
  const name = String(raw.name ?? raw.id);
15112
15112
  const md = raw.metadata ?? raw.versions?.latest?.metadata ?? {};
15113
- if (md.source === "m8t-stack-POC") {
15113
+ if (md.source === "m8t") {
15114
15114
  result.push({ name, metadata: md });
15115
15115
  }
15116
15116
  }
@@ -15270,12 +15270,12 @@ async function unlinkBrain(args) {
15270
15270
  if (yaml?.personaPath) {
15271
15271
  let personaPath = yaml.personaPath;
15272
15272
  if (!personaPath.startsWith("/")) {
15273
- const marker = path11.join(args.home ?? os5.homedir(), ".m8t-stack", "repo-root");
15273
+ const marker = path11.join(args.home ?? os5.homedir(), ".m8t", "repo-root");
15274
15274
  if (!fs12.existsSync(marker)) {
15275
15275
  throw new LocalCliError({
15276
15276
  code: "PERSONA_PATH_NOT_ABSOLUTE",
15277
15277
  message: `personaPath '${personaPath}' is relative and the repo-root marker is missing.`,
15278
- hint: "Re-run 'm8t install' from a fresh m8t-stack checkout (writes ~/.m8t-stack/repo-root) \u2014 or edit the personaPath to absolute."
15278
+ hint: "Re-run 'm8t install' from a fresh m8t checkout (writes ~/.m8t/repo-root) \u2014 or edit the personaPath to absolute."
15279
15279
  });
15280
15280
  }
15281
15281
  personaPath = path11.join(fs12.readFileSync(marker, "utf8").trim(), personaPath);
@@ -15629,7 +15629,7 @@ var AgentDeployAdvisorCommand = class extends M8tCommand {
15629
15629
  description: "Azure subscription ID. Defaults to the current az account."
15630
15630
  });
15631
15631
  repoRootFlag = Option22.String("--repo-root", {
15632
- description: "Path to the m8t-stack repo checkout. Defaults to the ~/.m8t-stack/repo-root marker."
15632
+ description: "Path to the m8t repo checkout. Defaults to the ~/.m8t/repo-root marker."
15633
15633
  });
15634
15634
  output = Option22.String("--output", {
15635
15635
  description: "Output format: pretty (default) or json."
@@ -15641,7 +15641,7 @@ var AgentDeployAdvisorCommand = class extends M8tCommand {
15641
15641
  throw new LocalCliError({
15642
15642
  code: "USAGE",
15643
15643
  message: "--persona is required (e.g. --persona startup-advisor).",
15644
- hint: "Pass the persona directory name under personas/ in your m8t-stack checkout."
15644
+ hint: "Pass the persona directory name under personas/ in your m8t checkout."
15645
15645
  });
15646
15646
  }
15647
15647
  if (!agentName) {
@@ -16170,7 +16170,7 @@ var AgentRemoveCommand = class extends M8tCommand {
16170
16170
  subscription = Option23.String("--subscription");
16171
16171
  kvUri = Option23.String("--kv-uri");
16172
16172
  resourceGroup = Option23.String("--resource-group", {
16173
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
16173
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
16174
16174
  });
16175
16175
  output = Option23.String("--output");
16176
16176
  async executeCommand() {
@@ -16305,7 +16305,7 @@ function resolveBridgeUrl(opts) {
16305
16305
  throw new LocalCliError({
16306
16306
  code: "A2A_NO_GATEWAY_URL",
16307
16307
  message: "Could not resolve the gateway URL for the A2A bridge.",
16308
- hint: "Pass --gateway-url https://<gateway-fqdn>, set M8T_GATEWAY_URL, or add a gatewayUrl key to ~/.m8t-stack/config.yaml."
16308
+ hint: "Pass --gateway-url https://<gateway-fqdn>, set M8T_GATEWAY_URL, or add a gatewayUrl key to ~/.m8t/config.yaml."
16309
16309
  });
16310
16310
  }
16311
16311
  return `${base}${A2A_PATH}`;
@@ -16317,7 +16317,7 @@ function clean(v) {
16317
16317
  return t.length ? t : void 0;
16318
16318
  }
16319
16319
  function readConfigGatewayUrl(home) {
16320
- const cfg = path13.join(home ?? os6.homedir(), ".m8t-stack", "config.yaml");
16320
+ const cfg = path13.join(home ?? os6.homedir(), ".m8t", "config.yaml");
16321
16321
  if (!fs16.existsSync(cfg)) return void 0;
16322
16322
  try {
16323
16323
  const o = parseYaml8(fs16.readFileSync(cfg, "utf8"));
@@ -16538,7 +16538,7 @@ function checkArchitectDrift() {
16538
16538
  match: false,
16539
16539
  sourceVersion: "",
16540
16540
  installedVersion: "",
16541
- advice: `Source persona not found at ${sourcePath}. Check ~/.m8t-stack/repo-root points at a valid checkout.`
16541
+ advice: `Source persona not found at ${sourcePath}. Check ~/.m8t/repo-root points at a valid checkout.`
16542
16542
  };
16543
16543
  }
16544
16544
  const sourceVersion = readVersionFrontmatter(sourcePath);
@@ -16980,7 +16980,7 @@ async function assertPlatformLive(opts) {
16980
16980
  if (e.code === "GATEWAY_DISCOVERY_ZERO") {
16981
16981
  throw new LocalCliError({
16982
16982
  code: "PLATFORM_NOT_LIVE",
16983
- message: "The m8t-stack platform isn't deployed yet \u2014 there is no gateway in this subscription.",
16983
+ message: "The m8t platform isn't deployed yet \u2014 there is no gateway in this subscription.",
16984
16984
  hint: "Deploy it first: run the local bootstrap (`m8t bootstrap launch \u2026`) and wait for `m8t bootstrap status` to reach done. If it's in another subscription, run `az account set --subscription <id>`.",
16985
16985
  cause: e
16986
16986
  });
@@ -17154,7 +17154,7 @@ var CoderDeployCommand = class extends M8tCommand {
17154
17154
  cpu: preset.cpu,
17155
17155
  memory: preset.memory,
17156
17156
  env,
17157
- metadata: { ...currentMetadata, source: "m8t-stack-POC", kind: "hosted", persona: personaName, personaVersion },
17157
+ metadata: { ...currentMetadata, source: "m8t", kind: "hosted", persona: personaName, personaVersion },
17158
17158
  onProgress
17159
17159
  });
17160
17160
  if (typeof this.brain === "string") {
@@ -17267,7 +17267,7 @@ var CoderDeployCommand = class extends M8tCommand {
17267
17267
  this.context.stdout.write(` project: ${project.projectName} (${project.region})
17268
17268
  `);
17269
17269
  this.context.stdout.write(
17270
- ` ${colors.hint("next:")} it now appears on MCP (/m8t-stack:workers), the web app, and (when --gateway-url was passed) as an a2a target.
17270
+ ` ${colors.hint("next:")} it now appears on MCP (/m8t:workers), the web app, and (when --gateway-url was passed) as an a2a target.
17271
17271
  `
17272
17272
  );
17273
17273
  return 0;
@@ -17601,7 +17601,7 @@ var AzureExecDeployCommand = class extends M8tCommand {
17601
17601
  cpu: preset.cpu,
17602
17602
  memory: preset.memory,
17603
17603
  env,
17604
- metadata: { source: "m8t-stack-POC", kind: "hosted", persona: personaName, personaVersion },
17604
+ metadata: { source: "m8t", kind: "hosted", persona: personaName, personaVersion },
17605
17605
  onProgress
17606
17606
  });
17607
17607
  onProgress?.(`granting Contributor at ${grantScope}\u2026`);
@@ -18061,7 +18061,7 @@ async function resolveReleaseContent(manifest, opts = {}) {
18061
18061
  return opts.contentDir;
18062
18062
  }
18063
18063
  const commit = manifest.platform.commit;
18064
- const cacheRoot = opts.cacheRoot ?? path19.join(os8.homedir(), ".m8t-stack", "cache");
18064
+ const cacheRoot = opts.cacheRoot ?? path19.join(os8.homedir(), ".m8t", "cache");
18065
18065
  const dest = path19.join(cacheRoot, `release-${commit}`);
18066
18066
  if (fs20.existsSync(path19.join(dest, "personas"))) return dest;
18067
18067
  const fetchImpl = opts.fetchImpl ?? fetch;
@@ -18125,7 +18125,7 @@ async function discoverStampStorage(opts) {
18125
18125
  url: `${ARM3}/subscriptions/${opts.subscriptionId}/resourceGroups/${opts.resourceGroup}/providers/Microsoft.Storage/storageAccounts?api-version=${STORAGE_API}`
18126
18126
  }) ?? {};
18127
18127
  const accounts = (list.value ?? []).filter((a) => a.properties?.primaryEndpoints?.table);
18128
- const chosen = accounts.find((a) => a.tags?.["m8t-stack"] === "storage") ?? accounts.find((a) => a.tags?.["m8t-stack:role"] === "gateway" || a.tags?.["m8t-stack:role"] === "ledger") ?? (accounts.length === 1 ? accounts[0] : void 0);
18128
+ const chosen = accounts.find((a) => a.tags?.m8t === "storage") ?? accounts.find((a) => a.tags?.["m8t:role"] === "gateway" || a.tags?.["m8t:role"] === "ledger") ?? (accounts.length === 1 ? accounts[0] : void 0);
18129
18129
  const tableEndpoint = chosen?.properties?.primaryEndpoints?.table?.replace(/\/$/, "");
18130
18130
  if (!tableEndpoint || !chosen?.id || !chosen.name) {
18131
18131
  throw new LocalCliError({
@@ -18280,7 +18280,7 @@ function buildBicepParams(p) {
18280
18280
  return params;
18281
18281
  }
18282
18282
  async function resolveRepoRoot2(home = os9.homedir()) {
18283
- const marker = path20.join(home, ".m8t-stack", "repo-root");
18283
+ const marker = path20.join(home, ".m8t", "repo-root");
18284
18284
  try {
18285
18285
  const root = (await fs21.readFile(marker, "utf8")).trim();
18286
18286
  if (!root) throw new Error("empty");
@@ -18288,8 +18288,8 @@ async function resolveRepoRoot2(home = os9.homedir()) {
18288
18288
  } catch {
18289
18289
  throw new LocalCliError({
18290
18290
  code: "DEPLOY_NO_REPO_ROOT",
18291
- message: "~/.m8t-stack/repo-root marker is missing or empty.",
18292
- hint: "Run 'm8t install' from an m8t-stack checkout (it writes the marker), or run 'm8t deploy' from the repo."
18291
+ message: "~/.m8t/repo-root marker is missing or empty.",
18292
+ hint: "Run 'm8t install' from an m8t checkout (it writes the marker), or run 'm8t deploy' from the repo."
18293
18293
  });
18294
18294
  }
18295
18295
  }
@@ -18353,7 +18353,7 @@ async function ensureResourceGroup(name, location) {
18353
18353
  await runAz(["group", "show", "--name", name, "--output", "json"]).catch(() => "") || "null"
18354
18354
  );
18355
18355
  if (existing) return;
18356
- await runAz(["group", "create", "--name", name, "--location", location, "--tags", "m8t-stack=deployment"]);
18356
+ await runAz(["group", "create", "--name", name, "--location", location, "--tags", "m8t=deployment"]);
18357
18357
  }
18358
18358
  function resolveAcrPullIdentity(opts) {
18359
18359
  return opts.explicit ?? "";
@@ -18825,13 +18825,13 @@ var PlatformStatusCommand = class extends M8tCommand {
18825
18825
  });
18826
18826
  subscription = Option29.String("--subscription");
18827
18827
  resourceGroup = Option29.String("--resource-group", {
18828
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
18828
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
18829
18829
  });
18830
18830
  to = Option29.String("--to", {
18831
18831
  description: "Check status against a pinned platform version (defaults to the current release channel)."
18832
18832
  });
18833
18833
  contentDir = Option29.String("--content-dir", {
18834
- description: "Path to a local m8t-stack repo checkout (skips the tarball tree-SHA fetch)."
18834
+ description: "Path to a local m8t repo checkout (skips the tarball tree-SHA fetch)."
18835
18835
  });
18836
18836
  manifestUrl = Option29.String("--manifest-url", {
18837
18837
  description: "Fetch the release manifest from this URL instead of the release channel."
@@ -19559,7 +19559,7 @@ var PlatformUpdateCommand = class extends M8tCommand {
19559
19559
  });
19560
19560
  subscription = Option30.String("--subscription");
19561
19561
  resourceGroup = Option30.String("--resource-group", {
19562
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
19562
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
19563
19563
  });
19564
19564
  to = Option30.String("--to", {
19565
19565
  description: "Pin the platform version to converge to (defaults to the current release channel)."
@@ -19575,7 +19575,7 @@ var PlatformUpdateCommand = class extends M8tCommand {
19575
19575
  description: "Required with --force-infra \u2014 the existing deployment's resource-name suffix (avoids provisioning duplicates)."
19576
19576
  });
19577
19577
  contentDir = Option30.String("--content-dir", {
19578
- description: "Path to a local m8t-stack repo checkout (skips the tarball fetch + tree-drift check)."
19578
+ description: "Path to a local m8t repo checkout (skips the tarball fetch + tree-drift check)."
19579
19579
  });
19580
19580
  manifestUrl = Option30.String("--manifest-url", {
19581
19581
  description: "Fetch the release manifest from this URL instead of the release channel."
@@ -20249,7 +20249,7 @@ var PlatformEnableCostReportCommand = class extends M8tCommand {
20249
20249
  });
20250
20250
  subscription = Option31.String("--subscription");
20251
20251
  resourceGroup = Option31.String("--resource-group", {
20252
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
20252
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
20253
20253
  });
20254
20254
  acsEndpoint = Option31.String("--acs-endpoint", { required: true, description: "ACS data-plane endpoint, e.g. https://acs-<name>.communication.azure.com/" });
20255
20255
  acsSender = Option31.String("--acs-sender", { required: true, description: "Managed-domain sender address, e.g. DoNotReply@<guid>.azurecomm.net" });
@@ -20341,7 +20341,7 @@ var PlatformEnableAutoUpdateCommand = class extends M8tCommand {
20341
20341
  });
20342
20342
  subscription = Option32.String("--subscription");
20343
20343
  resourceGroup = Option32.String("--resource-group", {
20344
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
20344
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
20345
20345
  });
20346
20346
  suffix = Option32.String("--suffix", {
20347
20347
  description: "The existing deployment's resource-name suffix. Required when it cannot be recovered from system/infra-params or the live gateway."
@@ -20485,7 +20485,7 @@ import { Command as Command36, Option as Option33 } from "clipanion";
20485
20485
 
20486
20486
  // src/lib/app-reg.ts
20487
20487
  init_errors();
20488
- var APP_NAME = "m8t-stack-webapp";
20488
+ var APP_NAME = "m8t-webapp";
20489
20489
  var AZURE_CLI_FIRST_PARTY_APP_ID = "04b07795-8ddb-461a-bbee-02f9e1bf7b46";
20490
20490
  var FOUNDRY_SP_APP_ID = "18a66f5f-dbdf-4c17-9dd7-1634712a9cbe";
20491
20491
  var USER_IMPERSONATION_SCOPE_ID = "1a7925b5-f871-417a-9b8b-303f9f29fa10";
@@ -20525,10 +20525,10 @@ async function ensureExposeAnApi(appId, appObjectId) {
20525
20525
  id: scopeId,
20526
20526
  value: "user_impersonation",
20527
20527
  type: "User",
20528
- adminConsentDescription: "Allow the application to access m8t-stack on behalf of the signed-in user.",
20529
- adminConsentDisplayName: "Access m8t-stack",
20530
- userConsentDescription: "Allow the application to access m8t-stack on your behalf.",
20531
- userConsentDisplayName: "Access m8t-stack",
20528
+ adminConsentDescription: "Allow the application to access m8t on behalf of the signed-in user.",
20529
+ adminConsentDisplayName: "Access m8t",
20530
+ userConsentDescription: "Allow the application to access m8t on your behalf.",
20531
+ userConsentDisplayName: "Access m8t",
20532
20532
  isEnabled: true
20533
20533
  }
20534
20534
  ];
@@ -20885,7 +20885,7 @@ var DeployCommand = class extends M8tCommand {
20885
20885
  static paths = [["deploy"]];
20886
20886
  static usage = Command36.Usage({
20887
20887
  description: "Deploy (or update) the m8t gateway/webapp stack via Bicep.",
20888
- details: "Ensures the Entra app reg (or pass --client-id to reuse an existing one \u2014 required if you can't create app regs), writes ~/.m8t-stack/config.yaml, ensures the resource group, and runs deploy/main.bicep. The repo is located via ~/.m8t-stack/repo-root."
20888
+ details: "Ensures the Entra app reg (or pass --client-id to reuse an existing one \u2014 required if you can't create app regs), writes ~/.m8t/config.yaml, ensures the resource group, and runs deploy/main.bicep. The repo is located via ~/.m8t/repo-root."
20889
20889
  });
20890
20890
  subscription = Option33.String("--subscription");
20891
20891
  resourceGroup = Option33.String("--resource-group", "rg-m8t-stack");
@@ -20934,7 +20934,7 @@ var DeployCommand = class extends M8tCommand {
20934
20934
  throw new LocalCliError({
20935
20935
  code: "DEPLOY_NO_FOUNDRY_ENDPOINT",
20936
20936
  message: "No Foundry endpoint provided.",
20937
- hint: "Pass --foundry-endpoint <url> or set projectEndpoint in ~/.m8t-stack/config.yaml (m8t config set / m8t switch)."
20937
+ hint: "Pass --foundry-endpoint <url> or set projectEndpoint in ~/.m8t/config.yaml (m8t config set / m8t switch)."
20938
20938
  });
20939
20939
  }
20940
20940
  if (this.whatIf) {
@@ -20943,7 +20943,7 @@ var DeployCommand = class extends M8tCommand {
20943
20943
  throw new LocalCliError({
20944
20944
  code: "DEPLOY_WHATIF_NO_CLIENT",
20945
20945
  message: "--what-if needs a client id but none was provided or configured.",
20946
- hint: "Pass --client-id <appId>, or run from a host with ~/.m8t-stack/config.yaml."
20946
+ hint: "Pass --client-id <appId>, or run from a host with ~/.m8t/config.yaml."
20947
20947
  });
20948
20948
  }
20949
20949
  const foundryResourceId2 = await resolveFoundryResourceId(foundryEndpoint, this.foundryResourceId);
@@ -21564,7 +21564,7 @@ var WhoamiCommand = class extends M8tCommand {
21564
21564
  description: "Azure subscription ID to discover gateway in (defaults to active az subscription)."
21565
21565
  });
21566
21566
  resourceGroup = Option37.String("--resource-group", {
21567
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
21567
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
21568
21568
  });
21569
21569
  async executeCommand() {
21570
21570
  const mode = resolveOutputMode(
@@ -21752,7 +21752,7 @@ function checkFoundryConfig(cfg) {
21752
21752
  return {
21753
21753
  name: "config.yaml",
21754
21754
  status: "FAIL",
21755
- detail: "missing or invalid ~/.m8t-stack/config.yaml",
21755
+ detail: "missing or invalid ~/.m8t/config.yaml",
21756
21756
  remediation: "m8t switch (or m8t config set tenantId|clientId|projectEndpoint <value>)"
21757
21757
  };
21758
21758
  }
@@ -21876,27 +21876,46 @@ function checkRepoRoot(probe) {
21876
21876
  return {
21877
21877
  name: "brain repo-root",
21878
21878
  status: "FAIL",
21879
- detail: "~/.m8t-stack/repo-root marker missing \u2014 m8t install never completed",
21880
- remediation: 're-run the m8t-stack install (writes ~/.m8t-stack/repo-root), or: printf %s "$(git -C <m8t-stack-poc-checkout> rev-parse --show-toplevel)" > ~/.m8t-stack/repo-root'
21879
+ detail: "~/.m8t/repo-root marker missing \u2014 m8t install never completed",
21880
+ remediation: 're-run the m8t install (writes ~/.m8t/repo-root), or: printf %s "$(git -C <m8t-checkout> rev-parse --show-toplevel)" > ~/.m8t/repo-root'
21881
21881
  };
21882
21882
  }
21883
21883
  if (!probe.isDir) {
21884
21884
  return {
21885
21885
  name: "brain repo-root",
21886
21886
  status: "FAIL",
21887
- detail: `~/.m8t-stack/repo-root \u2192 ${probe.path} \u2014 that path does not exist or is not a directory`,
21888
- remediation: 'the m8t-stack checkout moved or was deleted; point the marker at the current checkout: printf %s "$(git -C <m8t-stack-poc-checkout> rev-parse --show-toplevel)" > ~/.m8t-stack/repo-root'
21887
+ detail: `~/.m8t/repo-root \u2192 ${probe.path} \u2014 that path does not exist or is not a directory`,
21888
+ remediation: 'the m8t checkout moved or was deleted; point the marker at the current checkout: printf %s "$(git -C <m8t-checkout> rev-parse --show-toplevel)" > ~/.m8t/repo-root'
21889
21889
  };
21890
21890
  }
21891
21891
  if (!probe.isGitCheckout) {
21892
21892
  return {
21893
21893
  name: "brain repo-root",
21894
21894
  status: "WARN",
21895
- detail: `~/.m8t-stack/repo-root \u2192 ${probe.path} exists but is not a git checkout (no .git) \u2014 brain-loader template + persona paths may be stale`,
21896
- remediation: "point the marker at the m8t-stack-poc git checkout (it reads targets/foundry/brain-loader.md from there)"
21895
+ detail: `~/.m8t/repo-root \u2192 ${probe.path} exists but is not a git checkout (no .git) \u2014 brain-loader template + persona paths may be stale`,
21896
+ remediation: "point the marker at the m8t git checkout (it reads targets/foundry/brain-loader.md from there)"
21897
21897
  };
21898
21898
  }
21899
- return { name: "brain repo-root", status: "PASS", detail: `~/.m8t-stack/repo-root \u2192 ${probe.path}` };
21899
+ return { name: "brain repo-root", status: "PASS", detail: `~/.m8t/repo-root \u2192 ${probe.path}` };
21900
+ }
21901
+ function checkLegacyStateDir(probe) {
21902
+ if (!probe.legacyExists) {
21903
+ return { name: "state dir", status: "PASS", detail: "no legacy ~/.m8t-stack folder" };
21904
+ }
21905
+ if (!probe.currentExists) {
21906
+ return {
21907
+ name: "state dir",
21908
+ status: "WARN",
21909
+ detail: "found legacy ~/.m8t-stack but no ~/.m8t \u2014 the state folder was renamed to ~/.m8t",
21910
+ remediation: "mv ~/.m8t-stack ~/.m8t"
21911
+ };
21912
+ }
21913
+ return {
21914
+ name: "state dir",
21915
+ status: "WARN",
21916
+ detail: "legacy ~/.m8t-stack exists alongside ~/.m8t \u2014 only ~/.m8t is read",
21917
+ remediation: "review ~/.m8t-stack for anything you still need, then remove it"
21918
+ };
21900
21919
  }
21901
21920
 
21902
21921
  // src/commands/doctor.ts
@@ -21963,7 +21982,7 @@ async function resolveAccountLocation(accountId) {
21963
21982
  }
21964
21983
  }
21965
21984
  function probeRepoRoot() {
21966
- const marker = path28.join(os11.homedir(), ".m8t-stack", "repo-root");
21985
+ const marker = path28.join(os11.homedir(), ".m8t", "repo-root");
21967
21986
  if (!fs26.existsSync(marker)) {
21968
21987
  return { markerExists: false, path: null, isDir: false, isGitCheckout: false };
21969
21988
  }
@@ -21983,6 +22002,12 @@ function probeRepoRoot() {
21983
22002
  const isGitCheckout = isDir && fs26.existsSync(path28.join(repoPath, ".git"));
21984
22003
  return { markerExists: true, path: repoPath, isDir, isGitCheckout };
21985
22004
  }
22005
+ function probeLegacyStateDir() {
22006
+ return {
22007
+ legacyExists: fs26.existsSync(path28.join(os11.homedir(), ".m8t-stack")),
22008
+ currentExists: fs26.existsSync(path28.join(os11.homedir(), ".m8t"))
22009
+ };
22010
+ }
21986
22011
  var DoctorCommand = class extends M8tCommand {
21987
22012
  static paths = [["doctor"]];
21988
22013
  static usage = Command42.Usage({
@@ -21991,7 +22016,7 @@ var DoctorCommand = class extends M8tCommand {
21991
22016
  output = Option39.String("--output");
21992
22017
  agent = Option39.String("--agent");
21993
22018
  resourceGroup = Option39.String("--resource-group", {
21994
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
22019
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
21995
22020
  });
21996
22021
  async executeCommand() {
21997
22022
  const mode = resolveOutputMode(
@@ -22025,6 +22050,7 @@ var DoctorCommand = class extends M8tCommand {
22025
22050
  emit(checkFoundryConfig(foundry));
22026
22051
  emit(checkTenantAlignment(az, foundry));
22027
22052
  emit(checkRepoRoot(probeRepoRoot()));
22053
+ emit(checkLegacyStateDir(probeLegacyStateDir()));
22028
22054
  checking("gateway");
22029
22055
  let gw = { ok: false, detail: "not probed" };
22030
22056
  try {
@@ -22114,7 +22140,7 @@ import * as path29 from "path";
22114
22140
  import { parse as parseYaml11, stringify as stringifyYaml4 } from "yaml";
22115
22141
  function profilesDir() {
22116
22142
  const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
22117
- return path29.join(home, ".m8t-stack", "profiles");
22143
+ return path29.join(home, ".m8t", "profiles");
22118
22144
  }
22119
22145
  function getProfilePath(name) {
22120
22146
  return path29.join(profilesDir(), `${path29.basename(name)}.yaml`);
@@ -22364,7 +22390,7 @@ var OpenCommand = class extends M8tCommand {
22364
22390
  print = Option41.Boolean("--print", false);
22365
22391
  output = Option41.String("--output");
22366
22392
  resourceGroup = Option41.String("--resource-group", {
22367
- description: "m8t-stack resource group to disambiguate the gateway (multi-deployment subscriptions)."
22393
+ description: "m8t resource group to disambiguate the gateway (multi-deployment subscriptions)."
22368
22394
  });
22369
22395
  async executeCommand() {
22370
22396
  const mode = resolveOutputMode(
@@ -23173,7 +23199,7 @@ async function runPipeline(args) {
23173
23199
  ({ items, fetchError } = await fetchItems(sources.conversations, recoveredId));
23174
23200
  if (g.source === "a2a" && !fetchError && items.length > 0 && sources.conversations.retrieveApp) {
23175
23201
  const app = await sources.conversations.retrieveApp(recoveredId);
23176
- if (app !== "m8t-stack-a2a") {
23202
+ if (app !== "m8t-a2a") {
23177
23203
  didRecover = false;
23178
23204
  items = [];
23179
23205
  conversationId = void 0;
@@ -24508,13 +24534,13 @@ async function discoverLedgerResources(opts) {
24508
24534
  url: `${ARM4}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.Storage/storageAccounts?api-version=${STORAGE_API2}`
24509
24535
  });
24510
24536
  const accounts = storage.filter((a) => a.properties?.primaryEndpoints?.table);
24511
- const ledgerAcct = accounts.find((a) => (a.tags?.["m8t-stack:role"] ?? a.properties?.tags?.["m8t-stack:role"]) === "ledger") ?? (accounts.length === 1 ? accounts[0] : void 0);
24537
+ const ledgerAcct = accounts.find((a) => (a.tags?.["m8t:role"] ?? a.properties?.tags?.["m8t:role"]) === "ledger") ?? (accounts.length === 1 ? accounts[0] : void 0);
24512
24538
  const ledgerTableEndpoint = ledgerAcct?.properties?.primaryEndpoints?.table?.replace(/\/$/, "");
24513
24539
  if (!ledgerTableEndpoint) {
24514
24540
  throw new LocalCliError({
24515
24541
  code: "DREAM_LEDGER_STORAGE_NOT_FOUND",
24516
24542
  message: `No AgentLedger storage account found in resource group ${resourceGroup}.`,
24517
- hint: `Found: ${accounts.map((a) => a.name).join(", ") || "(none)"}. Tag the ledger account 'm8t-stack:role=ledger'.`
24543
+ hint: `Found: ${accounts.map((a) => a.name).join(", ") || "(none)"}. Tag the ledger account 'm8t:role=ledger'.`
24518
24544
  });
24519
24545
  }
24520
24546
  const ws = await authedJsonPagedValues({
@@ -25394,7 +25420,7 @@ function buildPreflightBanner(who) {
25394
25420
  "\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557",
25395
25421
  "\u2551 \u26D4 STOP \u2014 READ THIS BEFORE CONTINUING \u2551",
25396
25422
  "\u2551 \u2551",
25397
- "\u2551 Installing m8t-stack creates real Azure resources in YOUR \u2551",
25423
+ "\u2551 Installing m8t creates real Azure resources in YOUR \u2551",
25398
25424
  "\u2551 subscription and assigns roles. To do that, the account you just \u2551",
25399
25425
  "\u2551 signed in with MUST be: \u2551",
25400
25426
  "\u2551 \u2551",
@@ -25418,7 +25444,7 @@ function buildPreflightBanner(who) {
25418
25444
  var BootstrapPreflightCommand = class extends M8tCommand {
25419
25445
  static paths = [["bootstrap", "preflight"]];
25420
25446
  static usage = Command48.Usage({
25421
- description: "Loudly verify you can install m8t-stack (Owner/UAA + directory admin) and hard-stop if not.",
25447
+ description: "Loudly verify you can install m8t (Owner/UAA + directory admin) and hard-stop if not.",
25422
25448
  details: "Step 1 of `m8t bootstrap`. Prints an unmissable admin-credentials notice, then checks: Owner or User Access Administrator at subscription scope (hard requirement), directory-admin capability to register the app (or pass --client-id), and registers Microsoft.ContainerInstance. Exits non-zero with the exact failing check + remedy.",
25423
25449
  examples: [
25424
25450
  ["Run the preflight", "$0 bootstrap preflight"],
@@ -25442,7 +25468,7 @@ var BootstrapPreflightCommand = class extends M8tCommand {
25442
25468
  }
25443
25469
  if (!clientId) {
25444
25470
  const appReg = await checkAppRegCapability(oid);
25445
- this.context.stdout.write(line(appReg.ok, "Directory admin \u2014 can register the m8t-stack app", "first-run app registration"));
25471
+ this.context.stdout.write(line(appReg.ok, "Directory admin \u2014 can register the m8t app", "first-run app registration"));
25446
25472
  if (!appReg.ok) {
25447
25473
  this.context.stderr.write(failBlock(
25448
25474
  appReg.inconclusive ? "Couldn't verify your directory admin role (Microsoft Graph denied the read \u2014 common for guest accounts)." : "You don't hold a directory admin role (Application / Cloud Application / Global Administrator).",
@@ -25504,7 +25530,7 @@ async function ensureResourceGroup2(opts) {
25504
25530
  "--subscription",
25505
25531
  opts.subscriptionId,
25506
25532
  "--tags",
25507
- "m8t-stack=deployment",
25533
+ "m8t=deployment",
25508
25534
  "--only-show-errors"
25509
25535
  ]);
25510
25536
  }
@@ -25710,7 +25736,7 @@ import * as fs29 from "fs/promises";
25710
25736
  import * as os13 from "os";
25711
25737
  import * as path31 from "path";
25712
25738
  function stateDir(home) {
25713
- return path31.join(home, ".m8t-stack");
25739
+ return path31.join(home, ".m8t");
25714
25740
  }
25715
25741
  function statePath(home) {
25716
25742
  return path31.join(stateDir(home), "bootstrap.json");
@@ -25734,19 +25760,19 @@ async function writeBootstrapState(state, home = os13.homedir()) {
25734
25760
  // src/commands/bootstrap/launch.ts
25735
25761
  var DEFAULT_RG = "rg-m8t-stack";
25736
25762
  var DEFAULT_INSTALLER = "ghcr.io/m8t-labs/m8t-installer";
25737
- var DEFAULT_INSTALLER_TAG = "v0.1.32";
25763
+ var DEFAULT_INSTALLER_TAG = "v0.1.33";
25738
25764
  var ACI_NAME = "m8t-installer";
25739
25765
  var MI_NAME = "m8t-installer-mi";
25740
25766
  var BootstrapLaunchCommand = class extends M8tCommand {
25741
25767
  static paths = [["bootstrap", "launch"]];
25742
25768
  static usage = Command49.Usage({
25743
25769
  description: "Create + authorize the installer managed identity, then kick the cloud installer.",
25744
- details: "Step 2 of `m8t bootstrap` (run after `preflight`). Ensures the resource group, creates the m8t-stack app registration (or uses --client-id), creates a user-assigned managed identity granted Owner at subscription scope, and launches the published m8t-installer image as an ACI run-to-completion job under that identity. Writes ~/.m8t-stack/bootstrap.json for `status`/`reap`/`finish`.",
25770
+ details: "Step 2 of `m8t bootstrap` (run after `preflight`). Ensures the resource group, creates the m8t app registration (or uses --client-id), creates a user-assigned managed identity granted Owner at subscription scope, and launches the published m8t-installer image as an ACI run-to-completion job under that identity. Writes ~/.m8t/bootstrap.json for `status`/`reap`/`finish`.",
25745
25771
  examples: [
25746
25772
  ["Launch in eastus2", "$0 bootstrap launch --location eastus2"],
25747
25773
  ["BYO app registration", "$0 bootstrap launch --location eastus2 --client-id <appId>"],
25748
- ["Pin a specific installer tag", "$0 bootstrap launch --location eastus2 --installer-tag v0.1.32"],
25749
- ["Override the full installer image ref", "$0 bootstrap launch --location eastus2 --installer-image ghcr.io/m8t-labs/m8t-installer:v0.1.32"]
25774
+ ["Pin a specific installer tag", "$0 bootstrap launch --location eastus2 --installer-tag v0.1.33"],
25775
+ ["Override the full installer image ref", "$0 bootstrap launch --location eastus2 --installer-image ghcr.io/m8t-labs/m8t-installer:v0.1.33"]
25750
25776
  ]
25751
25777
  });
25752
25778
  location = Option46.String("--location");
@@ -25775,7 +25801,7 @@ var BootstrapLaunchCommand = class extends M8tCommand {
25775
25801
  const subscriptionId = (typeof this.subscription === "string" ? this.subscription : void 0) ?? account.subscriptionId;
25776
25802
  const out = (m) => this.context.stderr.write(` ${colors.dim(m)}
25777
25803
  `);
25778
- const credsPath = typeof this.githubAppCreds === "string" ? this.githubAppCreds : path32.join(os14.homedir(), ".m8t-stack", "github-app.json");
25804
+ const credsPath = typeof this.githubAppCreds === "string" ? this.githubAppCreds : path32.join(os14.homedir(), ".m8t", "github-app.json");
25779
25805
  let githubApp;
25780
25806
  if (fs30.existsSync(credsPath)) {
25781
25807
  let parsed;
@@ -25811,7 +25837,7 @@ var BootstrapLaunchCommand = class extends M8tCommand {
25811
25837
  }
25812
25838
  out("registering Microsoft.ContainerInstance\u2026");
25813
25839
  await registerContainerInstance(subscriptionId);
25814
- out("resolving the m8t-stack app registration\u2026");
25840
+ out("resolving the m8t app registration\u2026");
25815
25841
  const appReg = await ensureAppReg({ tenantId: account.tenantId, clientId: clientIdOpt });
25816
25842
  out(`ensuring resource group ${resourceGroup}\u2026`);
25817
25843
  await ensureResourceGroup2({ name: resourceGroup, location, subscriptionId });
@@ -25902,7 +25928,7 @@ var BootstrapStatusCommand = class extends M8tCommand {
25902
25928
  if (!state) {
25903
25929
  throw new LocalCliError({
25904
25930
  code: "BOOTSTRAP_NO_STATE",
25905
- message: "No bootstrap is in flight (no ~/.m8t-stack/bootstrap.json).",
25931
+ message: "No bootstrap is in flight (no ~/.m8t/bootstrap.json).",
25906
25932
  hint: "Run 'm8t bootstrap launch --location <region>' first."
25907
25933
  });
25908
25934
  }
@@ -26353,7 +26379,7 @@ function composeFounderIdentityNote(id) {
26353
26379
 
26354
26380
  // src/lib/company-profile-seed.ts
26355
26381
  function readGithubAppCreds(credsPath) {
26356
- const p = credsPath ?? path33.join(os15.homedir(), ".m8t-stack", "github-app.json");
26382
+ const p = credsPath ?? path33.join(os15.homedir(), ".m8t", "github-app.json");
26357
26383
  try {
26358
26384
  return JSON.parse(readFileSync20(p, "utf8"));
26359
26385
  } catch {
@@ -26418,7 +26444,7 @@ async function applyProfileToBrain(args) {
26418
26444
  });
26419
26445
  }
26420
26446
  function spawnDetachedSeedWatch() {
26421
- const logPath = path33.join(os15.homedir(), ".m8t-stack", "seed-profile.log");
26447
+ const logPath = path33.join(os15.homedir(), ".m8t", "seed-profile.log");
26422
26448
  const fd = openSync(logPath, "a");
26423
26449
  try {
26424
26450
  const child = spawn6(process.execPath, [process.argv[1] ?? "", "bootstrap", "seed-profile", "--watch"], {
@@ -26497,7 +26523,7 @@ var BootstrapFinishCommand = class extends M8tCommand {
26497
26523
  static paths = [["bootstrap", "finish"]];
26498
26524
  static usage = Command52.Usage({
26499
26525
  description: "Point your local tools at the now-live platform (repo-root marker, discovery cache, next steps).",
26500
- details: "Final step of `m8t bootstrap` (after the install reaches done). Writes ~/.m8t-stack/repo-root, points your local tools at the live gateway, and \u2014 if you completed the onboarding questionnaire \u2014 seeds your brain-backed advisor's brain with your company profile (best-effort; never blocks finish). Run `m8t bootstrap seed-profile` to seed manually later.",
26526
+ details: "Final step of `m8t bootstrap` (after the install reaches done). Writes ~/.m8t/repo-root, points your local tools at the live gateway, and \u2014 if you completed the onboarding questionnaire \u2014 seeds your brain-backed advisor's brain with your company profile (best-effort; never blocks finish). Run `m8t bootstrap seed-profile` to seed manually later.",
26501
26527
  examples: [["Finish local", "$0 bootstrap finish --repo-root /path/to/m8t"]]
26502
26528
  });
26503
26529
  repoRoot = Option49.String("--repo-root");
@@ -26517,7 +26543,7 @@ var BootstrapFinishCommand = class extends M8tCommand {
26517
26543
  });
26518
26544
  }
26519
26545
  const repoRoot = (typeof this.repoRoot === "string" ? this.repoRoot : void 0) ?? process.cwd();
26520
- const markerDir = path34.join(os16.homedir(), ".m8t-stack");
26546
+ const markerDir = path34.join(os16.homedir(), ".m8t");
26521
26547
  await fs31.mkdir(markerDir, { recursive: true });
26522
26548
  await fs31.writeFile(path34.join(markerDir, "repo-root"), `${repoRoot}
26523
26549
  `, "utf8");
@@ -26577,7 +26603,7 @@ var BootstrapFinishCommand = class extends M8tCommand {
26577
26603
  this.context.stdout.write(renderInstallSummary({ webappUrl, brainOrg }) + "\n");
26578
26604
  this.context.stdout.write(
26579
26605
  `${colors.field("Optional local tooling for your coding agent:")}
26580
- \u2022 Talk to your deployed workers from agent sessions (e.g. /stacey) \u2014 install the m8t-stack plugin: guides/install/m8t-stack.md.
26606
+ \u2022 Talk to your deployed workers from agent sessions (e.g. /stacey) \u2014 install the m8t plugin: guides/install/m8t-plugin.md.
26581
26607
  \u2022 Azure-capable MCP servers (microsoft/azure-skills, Microsoft Learn) \u2014 see the optional steps in guides/install.md.
26582
26608
  \u2022 Deploy workers conversationally with the opt-in persona skills \u2014 see guides/workers.md.
26583
26609
  \u2022 Make sure your m8t CLI is current: npm i -g @m8t-stack/cli@latest
@@ -26836,14 +26862,14 @@ async function installWebDeps(repoRoot) {
26836
26862
  await runInherit("pnpm", ["install"], repoRoot, "BOOTSTRAP_UI_INSTALL_FAILED");
26837
26863
  }
26838
26864
  function onboardingUiPaths(home = os17.homedir()) {
26839
- const dir = path35.join(home, ".m8t-stack");
26865
+ const dir = path35.join(home, ".m8t");
26840
26866
  return {
26841
26867
  logPath: path35.join(dir, "onboarding-ui.log"),
26842
26868
  pidPath: path35.join(dir, "onboarding-ui.pid")
26843
26869
  };
26844
26870
  }
26845
26871
  function onboardingRelayPaths(home = os17.homedir()) {
26846
- const dir = path35.join(home, ".m8t-stack");
26872
+ const dir = path35.join(home, ".m8t");
26847
26873
  return {
26848
26874
  logPath: path35.join(dir, "onboarding-relay.log"),
26849
26875
  pidPath: path35.join(dir, "onboarding-relay.pid")
@@ -27037,7 +27063,7 @@ var BootstrapUiCommand = class extends M8tCommand {
27037
27063
  if (!state) {
27038
27064
  throw new LocalCliError({
27039
27065
  code: "BOOTSTRAP_NO_STATE",
27040
- message: "No bootstrap is in flight (no ~/.m8t-stack/bootstrap.json).",
27066
+ message: "No bootstrap is in flight (no ~/.m8t/bootstrap.json).",
27041
27067
  hint: "Run 'm8t bootstrap launch --location <region>' first."
27042
27068
  });
27043
27069
  }
@@ -27053,8 +27079,8 @@ var BootstrapUiCommand = class extends M8tCommand {
27053
27079
  this.context.stderr.write(` ${colors.dim(m)}
27054
27080
  `);
27055
27081
  };
27056
- if (fs33.existsSync(path36.join(os18.homedir(), ".m8t-stack", "config.yaml"))) {
27057
- out(colors.error("\u26A0 an existing ~/.m8t-stack/config.yaml will override the onboarding app registration in apps/web \u2014 if Microsoft sign-in fails, move it aside and retry."));
27082
+ if (fs33.existsSync(path36.join(os18.homedir(), ".m8t", "config.yaml"))) {
27083
+ out(colors.error("\u26A0 an existing ~/.m8t/config.yaml will override the onboarding app registration in apps/web \u2014 if Microsoft sign-in fails, move it aside and retry."));
27058
27084
  }
27059
27085
  const credential2 = new DefaultAzureCredential20();
27060
27086
  const account = await getAzAccount();
@@ -27177,7 +27203,7 @@ var BootstrapSeedProfileCommand = class extends M8tCommand {
27177
27203
  credsPath: typeof this.githubAppCreds === "string" ? this.githubAppCreds : void 0
27178
27204
  });
27179
27205
  if (!ctx) {
27180
- this.context.stderr.write(` ${colors.dim("no GitHub App creds (~/.m8t-stack/github-app.json) \u2014 no brain to seed; skipping.")}
27206
+ this.context.stderr.write(` ${colors.dim("no GitHub App creds (~/.m8t/github-app.json) \u2014 no brain to seed; skipping.")}
27181
27207
  `);
27182
27208
  return 0;
27183
27209
  }
@@ -27217,7 +27243,7 @@ var BootstrapSeedProfileCommand = class extends M8tCommand {
27217
27243
  // src/cli.ts
27218
27244
  var cli = new Cli({
27219
27245
  binaryName: "m8t",
27220
- binaryLabel: "m8t CLI \u2014 manage m8t-stack deployments",
27246
+ binaryLabel: "m8t CLI \u2014 manage m8t deployments",
27221
27247
  binaryVersion: CLI_VERSION
27222
27248
  });
27223
27249
  cli.register(Builtins.HelpCommand);