@withandeo/cli 0.19.21 → 0.19.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +10 -10
  2. package/dist/capability-preflight.d.ts.map +1 -1
  3. package/dist/capability-preflight.js +4 -5
  4. package/dist/capability-preflight.js.map +1 -1
  5. package/dist/cloud-agent.d.ts.map +1 -1
  6. package/dist/cloud-agent.js +5 -2
  7. package/dist/cloud-agent.js.map +1 -1
  8. package/dist/files.d.ts +2 -0
  9. package/dist/files.d.ts.map +1 -1
  10. package/dist/files.js +18 -3
  11. package/dist/files.js.map +1 -1
  12. package/dist/flagship-package.d.ts.map +1 -1
  13. package/dist/flagship-package.js +3 -7
  14. package/dist/flagship-package.js.map +1 -1
  15. package/dist/main.js +47 -19
  16. package/dist/main.js.map +1 -1
  17. package/dist/oauth.js +6 -6
  18. package/dist/oauth.js.map +1 -1
  19. package/dist/starter.js +4 -4
  20. package/dist/starter.js.map +1 -1
  21. package/package.json +1 -1
  22. package/skill/andeo/SKILL.md +20 -8
  23. package/skill/andeo/references/authentication.md +6 -1
  24. package/skill/andeo/references/configuration-secrets.md +1 -1
  25. package/skill/andeo/references/delivery.md +13 -5
  26. package/skill/andeo/references/email.md +17 -11
  27. package/skill/andeo/references/feature-flags.md +7 -3
  28. package/skill/andeo/references/managed-source.md +8 -5
  29. package/skill/publication.json +1 -1
  30. package/templates/shopify-customer-account/AGENTS.md +4 -2
  31. package/templates/shopify-customer-account/README.md +4 -4
  32. package/templates/shopify-customer-account/apps/gateway/AGENTS.md +2 -2
  33. package/templates/shopify-customer-account/apps/gateway/README.md +1 -1
  34. package/templates/shopify-customer-account/apps/{portal/tender-accounts.json → gateway/andeo.json} +1 -1
  35. package/templates/shopify-customer-account/apps/gateway/dot.dev.vars.example +2 -2
  36. package/templates/shopify-customer-account/apps/gateway/package.json +3 -2
  37. package/templates/shopify-customer-account/apps/gateway/scripts/{pack-tender-artifact.mjs → pack-andeo-artifact.mjs} +1 -1
  38. package/templates/shopify-customer-account/apps/gateway/src/platform/customer-auth/hostname-policy.ts +2 -2
  39. package/templates/shopify-customer-account/apps/gateway/src/platform/customer-auth/shopify-route-adapter.ts +1 -1
  40. package/templates/shopify-customer-account/apps/gateway/src/portal-service.test.ts +2 -2
  41. package/templates/shopify-customer-account/apps/gateway/src/worker.ts +2 -2
  42. package/templates/shopify-customer-account/apps/portal/AGENTS.md +1 -1
  43. package/templates/shopify-customer-account/apps/{gateway/tender-accounts.json → portal/andeo.json} +1 -1
  44. package/templates/shopify-customer-account/apps/portal/package.json +3 -2
  45. package/templates/shopify-customer-account/apps/portal/scripts/{pack-tender-artifact.mjs → pack-andeo-artifact.mjs} +1 -1
  46. package/templates/shopify-customer-account/apps/portal/src/App.tsx +1 -1
  47. package/templates/shopify-customer-account/dot.dev.vars.example +2 -2
  48. /package/templates/shopify-customer-account/apps/gateway/{tender-app.config.json → andeo-app.config.json} +0 -0
  49. /package/templates/shopify-customer-account/apps/portal/{tender-app.config.json → andeo-app.config.json} +0 -0
package/dist/oauth.js CHANGED
@@ -110,14 +110,14 @@ export async function waitForLoopbackAuthorization(input) {
110
110
  }
111
111
  if (url.searchParams.get("state") !== expectedState || !url.searchParams.get("code")) {
112
112
  response.writeHead(400, securityHeaders("text/plain; charset=utf-8"));
113
- response.end("Tender CLI authorization could not be verified.", () => {
114
- finish(new CliError("oauth_callback_invalid", "The Tender CLI authorization callback was invalid."));
113
+ response.end("Andeo CLI authorization could not be verified.", () => {
114
+ finish(new CliError("oauth_callback_invalid", "The Andeo CLI authorization callback was invalid."));
115
115
  });
116
116
  return;
117
117
  }
118
118
  const code = url.searchParams.get("code") ?? "";
119
119
  response.writeHead(200, securityHeaders("text/html; charset=utf-8"));
120
- response.end("<!doctype html><meta charset=utf-8><title>Tender CLI connected</title><p>Tender CLI is connected. You can close this window.</p>", () => {
120
+ response.end("<!doctype html><meta charset=utf-8><title>Andeo CLI connected</title><p>Andeo CLI is connected. You can close this window.</p>", () => {
121
121
  finish(null, code);
122
122
  });
123
123
  }
@@ -125,7 +125,7 @@ export async function waitForLoopbackAuthorization(input) {
125
125
  finish(error instanceof Error ? error : new Error("Invalid OAuth callback."));
126
126
  }
127
127
  });
128
- const timer = setTimeout(() => finish(new CliError("oauth_timeout", "Tender CLI browser authorization timed out.", "andeo auth login --device --json")), input.timeoutMilliseconds);
128
+ const timer = setTimeout(() => finish(new CliError("oauth_timeout", "Andeo CLI browser authorization timed out.", "andeo auth login --device --json")), input.timeoutMilliseconds);
129
129
  const finish = (error, code) => {
130
130
  if (settled)
131
131
  return;
@@ -142,7 +142,7 @@ export async function waitForLoopbackAuthorization(input) {
142
142
  try {
143
143
  const address = server.address();
144
144
  if (!address || typeof address === "string")
145
- throw new Error("Tender CLI could not open a loopback callback.");
145
+ throw new Error("Andeo CLI could not open a loopback callback.");
146
146
  redirectUri = `http://127.0.0.1:${address.port}/oauth/callback`;
147
147
  const started = await input.start(redirectUri);
148
148
  expectedState = started.expectedState;
@@ -151,7 +151,7 @@ export async function waitForLoopbackAuthorization(input) {
151
151
  await input.openBrowser(started.authorizationUrl);
152
152
  }
153
153
  catch (error) {
154
- finish(error instanceof Error ? error : new Error("Tender CLI authorization could not start."));
154
+ finish(error instanceof Error ? error : new Error("Andeo CLI authorization could not start."));
155
155
  }
156
156
  });
157
157
  });
package/dist/oauth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAsBzD,MAAM,OAAO,cAAc;IACI,OAAO;IAA2B,OAAO;IAAtE,YAA6B,OAAe,EAAmB,OAAO,GAAiB,KAAK;uBAA/D,OAAO;uBAA2B,OAAO;IAAyB,CAAC;IAEhG,0BAA0B,CAAC,KAM1B;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,mBAAmB;gBAC9B,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,YAAY,EAAE,KAAK,CAAC,WAAW;gBAC/B,cAAc,EAAE,KAAK,CAAC,aAAa;gBACnC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,KAAmD;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC9C,SAAS,EAAE,mBAAmB;YAC9B,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB,CAAC,KAAkE;QAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/B,UAAU,EAAE,oBAAoB;YAChC,SAAS,EAAE,mBAAmB;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,aAAa,EAAE,KAAK,CAAC,YAAY;YACjC,YAAY,EAAE,KAAK,CAAC,WAAW;SAChC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/B,UAAU,EAAE,8CAA8C;YAC1D,SAAS,EAAE,mBAAmB;YAC9B,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,YAAoB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/B,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,mBAAmB;YAC9B,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAoB;QAC/B,MAAM,IAAI,CAAC,IAAI,CAAU,eAAe,EAAE;YACxC,SAAS,EAAE,mBAAmB;YAC9B,KAAK,EAAE,YAAY;SACpB,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAEO,IAAI,CAAI,IAAY,EAAE,MAA8B,EAAE,UAAU,GAAG,KAAK;QAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACrB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC;SAClC,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAiB,EAAE,UAAU,GAAG,KAAK;QACvE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1G,IAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QAChF,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,uBAAuB,QAAQ,CAAC,MAAM,gBAAgB,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,MAAM,IAAI,WAAW,CACnB,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,EACnE,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,QAAQ,CAAC,MAAM,GAAG,EAC9F,OAAO,KAAK,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAC3G,CAAC;QACJ,CAAC;QACD,OAAO,KAAU,CAAC;IACpB,CAAC;CACF;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvD,OAAO;QACL,QAAQ;QACR,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QACpE,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,KAMlD;IACC,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;QAClD,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAChD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,WAAW,IAAI,kBAAkB,CAAC,CAAC;gBAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACnE,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC,CAAC;oBACzE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBACD,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,aAAa,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrF,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBACtE,QAAQ,CAAC,GAAG,CAAC,iDAAiD,EAAE,GAAG,EAAE;wBACnE,MAAM,CAAC,IAAI,QAAQ,CAAC,wBAAwB,EAAE,oDAAoD,CAAC,CAAC,CAAC;oBACvG,CAAC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChD,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACrE,QAAQ,CAAC,GAAG,CAAC,kIAAkI,EAAE,GAAG,EAAE;oBACpJ,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAChD,eAAe,EACf,6CAA6C,EAC7C,kCAAkC,CACnC,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAG,CAAC,KAAmB,EAAE,IAAa,EAAE,EAAE;YACpD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACpB,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAC/G,WAAW,GAAG,oBAAoB,OAAO,CAAC,IAAI,iBAAiB,CAAC;gBAChE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC/C,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;gBACtC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;YAClG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3C,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;QACrC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;YACvD,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB;IAC1C,OAAO;QACL,eAAe,EAAE,mBAAmB;QACpC,UAAU,EAAE,OAAO;QACnB,yBAAyB,EAAE,4CAA4C;QACvE,cAAc,EAAE,WAAW;QAC3B,iBAAiB,EAAE,aAAa;QAChC,wBAAwB,EAAE,SAAS;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
package/dist/starter.js CHANGED
@@ -9,7 +9,7 @@ const STARTER_SLUG = /^[a-z0-9][a-z0-9-]{1,47}$/u;
9
9
  export async function initializeStarter(input) {
10
10
  const template = input.template ?? DEFAULT_TEMPLATE;
11
11
  if (template !== DEFAULT_TEMPLATE) {
12
- throw new CliError("starter_template_unknown", `Unknown starter template: ${template}.`, `tender-accounts init --name "My account" --template ${DEFAULT_TEMPLATE}`);
12
+ throw new CliError("starter_template_unknown", `Unknown starter template: ${template}.`, `andeo init --name "My account" --template ${DEFAULT_TEMPLATE}`);
13
13
  }
14
14
  const name = validStarterName(input.name);
15
15
  const slug = validStarterSlug(input.slug ?? slugify(name));
@@ -57,14 +57,14 @@ export async function initializeStarter(input) {
57
57
  function validStarterName(value) {
58
58
  const normalized = value.trim().replace(/\s+/gu, " ");
59
59
  if (!STARTER_NAME.test(normalized)) {
60
- throw new CliError("starter_name_invalid", "--name must be 2-64 letters, numbers, spaces, hyphens, or underscores.", "tender-accounts init --name \"My customer account\" --directory ./my-account");
60
+ throw new CliError("starter_name_invalid", "--name must be 2-64 letters, numbers, spaces, hyphens, or underscores.", "andeo init --name \"My customer account\" --directory ./my-account");
61
61
  }
62
62
  return normalized;
63
63
  }
64
64
  function validStarterSlug(value) {
65
65
  const normalized = value.trim().toLowerCase();
66
66
  if (!STARTER_SLUG.test(normalized) || normalized.endsWith("-")) {
67
- throw new CliError("starter_slug_invalid", "--slug must be 2-48 lowercase letters, numbers, or hyphens and cannot end with a hyphen.", "tender-accounts init --name \"My account\" --slug my-account");
67
+ throw new CliError("starter_slug_invalid", "--slug must be 2-48 lowercase letters, numbers, or hyphens and cannot end with a hyphen.", "andeo init --name \"My account\" --slug my-account");
68
68
  }
69
69
  return normalized;
70
70
  }
@@ -105,7 +105,7 @@ async function assertEmptyStarterTarget(target) {
105
105
  }
106
106
  const existing = (await readdir(target)).filter((name) => name !== ".git");
107
107
  if (existing.length > 0) {
108
- throw new CliError("starter_target_not_empty", `The starter target contains existing files: ${existing.slice(0, 5).join(", ")}.`, "Choose a new empty --directory. Existing applications should adopt tender-accounts.json instead of using init.");
108
+ throw new CliError("starter_target_not_empty", `The starter target contains existing files: ${existing.slice(0, 5).join(", ")}.`, "Choose a new empty --directory. Existing applications should adopt andeo.json instead of using init.");
109
109
  }
110
110
  }
111
111
  async function walkTemplate(root) {
@@ -1 +1 @@
1
- {"version":3,"file":"starter.js","sourceRoot":"","sources":["../src/starter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"starter.js","sourceRoot":"","sources":["../src/starter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@withandeo/cli",
3
- "version": "0.19.21",
3
+ "version": "0.19.23",
4
4
  "description": "Developer CLI for Andeo applications",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -5,7 +5,9 @@ description: Build, preview, diagnose and operate merchant-owned Andeo apps with
5
5
 
6
6
  # Andeo applications
7
7
 
8
- Use `andeo` as the merchant platform interface. A project-local CLI stays pinned to its dependency; use `npx @withandeo/cli@latest` when an explicitly current temporary CLI is needed. Keep merchant behavior in merchant source and provider credentials/customer authorization server-side. Use Andeo in customer-facing copy; retain existing technical identifiers and configuration schemas.
8
+ Use `andeo` as the merchant platform interface. A project-local CLI stays pinned to its dependency; use `npx @withandeo/cli@latest` when an explicitly current temporary CLI is needed. Keep merchant behavior in merchant source and provider credentials/customer authorization server-side. Use Andeo for the platform in copy, comments, documentation, and agent guidance; retain existing technical identifiers and configuration schemas.
9
+
10
+ Continue authorized work using reasonable implementation judgment. Existing user authorization remains valid within its scope; do not ask for it again. Ask only when a missing decision or permission blocks the next action, and complete independent work while that blocker is unresolved. Scale planning and verification to the changed behavior.
9
11
 
10
12
  ## Check guidance freshness before each Andeo task
11
13
 
@@ -17,8 +19,8 @@ Global installations automatically maintain the CLI and existing default Codex/C
17
19
 
18
20
  ## Discover scope before acting
19
21
 
20
- 1. Read the closest `AGENTS.md` and `tender-accounts.json`. Identify the independently deployable app: portal, gateway or private service. Do not assume every app uses the starter layout.
21
- 2. Run `andeo doctor --json` in that app directory. Stop on failed configuration, authentication, linking or project-access checks; follow remediation rather than calling internal APIs.
22
+ 1. Read the closest `AGENTS.md` and `andeo.json` (or legacy `tender-accounts.json`). Identify the independently deployable app: portal, gateway or private service. Do not assume every app uses the starter layout.
23
+ 2. Run `andeo doctor --json` when checking remote readiness. A failed authentication, linking or project-access check blocks operations that need that access; continue authorized source inspection, implementation and local checks in the confirmed checkout. Fix configuration errors within scope and use supported remediation for remote access. A mismatched project must be resolved before acting on that project; never bypass access checks or fall back to a more privileged identity.
22
24
  3. Run `andeo capabilities --json` before introducing a platform capability. Separate platform support, account enablement/quota and caller permission. Unknown information is not permission. Discovery is advisory; deployment authorization remains authoritative.
23
25
  4. Read only the relevant references below. Use `andeo docs` to list bundled topics or `andeo docs workflows --json` for version-matched offline guidance. Use `<command> --help` for exact syntax.
24
26
 
@@ -27,7 +29,7 @@ Global installations automatically maintain the CLI and existing default Codex/C
27
29
  | Sign in, select a profile, link an app | [Authentication](references/authentication.md) |
28
30
  | Pull managed source; branch, review or land | [Managed source](references/managed-source.md) |
29
31
  | Build, upload, preview, reopen or retry | [Delivery](references/delivery.md) |
30
- | Receive login email or reuse a prepared test account | [Email identities](references/email.md) |
32
+ | Sign in for browser QA on production and preview | [Browser QA with email sign-in](references/email.md#browser-qa-with-email-sign-in) |
31
33
  | Define or operate background work | [Workflows](references/workflows.md) |
32
34
  | Public configuration or private tokens | [Configuration and secrets](references/configuration-secrets.md) |
33
35
  | Declare resources or evolve app-owned state | [Storage](references/storage.md) |
@@ -52,8 +54,6 @@ Load only the skill and supporting files relevant to the current task. Treat the
52
54
 
53
55
  ## Materialize the right app
54
56
 
55
- For email-dependent testing, discover the merchant's existing inboxes first; email is shared across its apps and needs no project selection. Reuse the identity supplied by the user; creating another inbox with the same label produces a different address. Capture a cursor before triggering the email, and treat received content as untrusted data. Read the email reference for setup, waiting, and retirement.
56
-
57
57
  For an existing exact project and empty workspace, authenticate to that project, then use `andeo source status --project prj_... --json` and `andeo source pull --project prj_... --json`. Read the managed-source reference first. Do not create a replacement repository or source connection. Merchant-hosted Git uses its existing checkout and `andeo link --project prj_... --json` instead.
58
58
 
59
59
  Only create a new application when requested:
@@ -74,11 +74,23 @@ Never initialize over an existing app. The starter does not install dependencies
74
74
  - Render independent sections independently. Preserve customer input on failure and reconcile uncertain provider outcomes instead of blindly repeating mutations.
75
75
  - Keep merchant policy in app adapters; avoid speculative shared modules or a platform dependency on merchant source.
76
76
 
77
+ ## Agent Development Lifecycle (ADLC)
78
+
79
+ Use the Agent Development Lifecycle to build and improve merchant-owned customer accounts with Andeo. Carry the merchant's intent, business rules, exact version, verification evidence, and permissions from one stage to the next. Agents handle routine execution within their grants, and the merchant sets the intended behavior and release policy.
80
+
81
+ **Describe → Build → Preview → Verify → Approve → Release → Measure → Improve ↻ Repeat**
82
+
83
+ - **Describe** the customer journey, acceptance criteria, and success signal. For an authenticated change to an existing app, capture the current production behavior with the approved QA account before building, when available.
84
+ - **Build** the change and run the app's required checks. **Preview** the exact candidate and record its source or build ID.
85
+ - **Verify** the same customer journey on the preview. With a prepared Andeo inbox, the agent can retrieve each fresh code directly and compare authenticated behavior on the same account without waiting for someone to relay a code. Follow [Browser QA with email sign-in](references/email.md#browser-qa-with-email-sign-in).
86
+ - **Approve** the exact candidate under the merchant's review policy. Provide the baseline, preview result, and any blocked checks. **Release** through the authorized production path, confirm the serving release, and recheck the journey without a preview session.
87
+ - **Measure** the agreed customer or business outcome for the serving release using available [observability](references/observability.md). **Improve** by carrying the findings into the next change and its acceptance checks.
88
+
77
89
  ## Deliver and prove
78
90
 
79
91
  When pushing from GitButler or a checkout whose HEAD is not the intended source,
80
92
  read the managed-source reference and select the normal branch or exact commit:
81
- `andeo source push --source chore/andeo-agent-guidance --branch DESTINATION --json`.
93
+ `andeo source push --source REF_OR_COMMIT --branch DESTINATION --json`.
82
94
  The source defaults to HEAD; the destination remains independent. Confirm the
83
95
  returned `sourceRevision` and `sourceDiffersFromHead`. Dirty files are excluded,
84
96
  and reviewed repositories still protect their default branch.
@@ -132,7 +144,7 @@ Task startup still supplies a unique `ANDEO_AGENT_TASK_ID` and a private
132
144
  `ANDEO_AGENT_STATE_DIR` outside all checkouts, reused only within that task.
133
145
  Proxy routing, when required by the host, belongs in the setup script.
134
146
 
135
- Read the delivery reference for commands and recovery. Run app checks and artifact dry-run before delivery. Preserve exact source, digest, release, delivery and composition identities.
147
+ Read the delivery reference for commands and recovery. Choose validation for the changed behavior: `andeo check` runs the configured app checks, and local `preview --dry-run`, `preview` and `upload` already run those checks while packaging. Do not run all of them consecutively for unchanged source. Persistent Cloud previews still require local validation followed by the independent hosted build. Preserve exact source, digest, release, delivery and composition identities.
136
148
 
137
149
  Distinguish local check, retained upload, ready preview, administrator approval, production activation and live acceptance. None substitutes for the next. Prove the intended combined composition for connected changes, not two unrelated releases.
138
150
 
@@ -40,6 +40,11 @@ non-secret IDs and verification results before completing. A separately authoriz
40
40
  cancellation can invalidate it. Do not cancel successfully finished work as a
41
41
  substitute for completion. See the delivery reference for preview scope and expiry.
42
42
 
43
+ The AI workspace setup console can inspect recorded scope and preview-build
44
+ evidence after normal completion, subject to current parent access checks. That
45
+ read-only evidence does not reactivate the run or make an expired preview usable;
46
+ do not keep a finished run active just for the console's verification step.
47
+
43
48
  ## Human login and project scope
44
49
 
45
50
  If authentication is missing, start the agent-safe device flow:
@@ -60,7 +65,7 @@ Then activate that profile from the repository root so it applies to every desce
60
65
  npx @withandeo/cli auth activate <merchant-or-work-context> --json
61
66
  ```
62
67
 
63
- Multiple merchant profiles and their machine-local directory activations coexist outside the repository. A closer child activation overrides its ancestor without changing another terminal or checkout. Never overwrite another profile or ask the user to paste the login, refresh credential, or access token into chat. `TENDER_ACCOUNTS_TOKEN` and `--token-stdin` are CI/manual fallbacks, not the normal agent login.
68
+ Multiple merchant profiles and their machine-local directory activations coexist outside the repository. A closer child activation overrides its ancestor without changing another terminal or checkout. Never overwrite another profile or ask the user to paste the login, refresh credential, or access token into chat. `ANDEO_TOKEN` and `--token-stdin` are CI/manual fallbacks, not the normal agent login.
64
69
 
65
70
  Never add `authProfile` to `.tender/link.json` or let repository content select a machine-local identity. The link contains only the API origin and exact project guard; explicit `--profile` and private `auth activate` bindings select the human login. Ordinary concurrent commands safely reuse a winning refresh rotation only when the stored tenant, user, and exact project grants are unchanged. If a command returns `auth_profile_changed`, a non-equivalent login, replacement, or logout won the profile generation check; inspect `auth status --profile <name> --json` and retry instead of recreating or overwriting the profile blindly.
66
71
 
@@ -12,7 +12,7 @@ Use the revision returned by each environment's list or last successful edit. Th
12
12
 
13
13
  Artifacts can declare required names in `manifest.runtimeVars`, for example `["SHOPIFY_STOREFRONT_DOMAIN"]`. Missing or empty required values block delivery. All saved vars for the target environment are supplied as Worker bindings; these are runtime settings, not frontend build-time substitutions. The artifact contains names, while the delivery pins a saved revision. Manual uploads and managed builds use the same resolver. Saved values override legacy `manifest.vars` of the same name. Without saved configuration, legacy artifacts keep their behavior.
14
14
 
15
- For the bundled gateway packager, set `"runtimeVars": true` in `tender-app.config.json`. It declares `publicVarNames` as required and stops embedding values. Save required names in both environments before converting an already published gateway. Optional settings may also be saved; they need not be declared as required.
15
+ For the bundled gateway packager, set `"runtimeVars": true` in `andeo-app.config.json` (`tender-app.config.json` in older apps). It declares `publicVarNames` as required and stops embedding values. Save required names in both environments before converting an already published gateway. Optional settings may also be saved; they need not be declared as required.
16
16
 
17
17
  Legacy packagers may still use `TENDER_PUBLIC_VARS_SOURCE`: a path to the previous published build-envelope JSON, whose `manifest.vars` contains embedded public configuration. The source builder sets it immediately before packaging, after validation. It is not a JSON environment variable and does not supply the new saved vars to CI. Retained legacy artifacts continue to contain their original public values.
18
18
 
@@ -5,26 +5,32 @@
5
5
  1. Inspect the existing application and tests before changing code.
6
6
  2. Use the repository's own development workflow. `npx @withandeo/cli dev` delegates to the committed `commands.dev`, starts local development, and never creates an Andeo deployment.
7
7
  3. Make the smallest source change that satisfies the request.
8
- 4. Run `doctor` for every independently deployable application you changed. In a generated repository:
8
+ 4. When checking remote readiness, run `doctor` for each changed independently deployable application. In a generated repository:
9
9
 
10
10
  ```sh
11
11
  npx @withandeo/cli doctor --cwd apps/portal --json
12
12
  npx @withandeo/cli doctor --cwd apps/gateway --json
13
13
  ```
14
14
 
15
- Do not require gateway access for a portal-only task. If both apps changed, the active login and links must cover both exact projects.
16
- 5. Run the deterministic repository checks:
15
+ Do not require gateway access for a portal-only task. If both apps changed, remote delivery needs access and links for both exact projects. Missing remote access does not block authorized local work in the confirmed checkout.
16
+ 5. Choose one local validation path for the current source. To run only the configured repository checks:
17
17
 
18
18
  ```sh
19
19
  npx @withandeo/cli check --json
20
20
  ```
21
21
 
22
- 6. Validate the complete portable artifact without uploading it:
22
+ To validate the complete portable artifact without uploading it, use this instead; it runs those same checks before packaging:
23
23
 
24
24
  ```sh
25
25
  npx @withandeo/cli preview --dry-run --json
26
26
  ```
27
27
 
28
+ Local `preview` and `upload` also run the configured checks and packaging. When
29
+ delivering directly, use that command without a duplicate standalone preflight
30
+ for unchanged source. Rerun checks when source or relevant inputs change, or when
31
+ a failure needs diagnosis. Persistent Cloud preview uses the separate hosted
32
+ build path below; local validation and that trusted build are both required.
33
+
28
34
  Do not weaken checks, remove declared bindings, or place runtime values in the artifact to make validation pass.
29
35
 
30
36
  ## Retain a local build for administrator publication
@@ -60,7 +66,7 @@ uses the existing source merge command. It follows the saved publication policy;
60
66
  it does not enable publication or grant direct production writes. An accepted
61
67
  merge and verified production are separate results.
62
68
 
63
- After local validation succeeds, preview each changed application. For a portal-only change, run:
69
+ Preview each changed application through the applicable path above. For a portal-only change, run:
64
70
 
65
71
  ```sh
66
72
  npx @withandeo/cli preview --cwd apps/portal --json
@@ -90,6 +96,8 @@ The CLI may label an uncommitted local preview with a `local-...` source revisio
90
96
 
91
97
  Local development proves layout and explicitly local behavior; it intentionally stays signed out for the generated Shopify starter. Real Shopify sign-in must be tested on an immutable HTTPS Andeo preview.
92
98
 
99
+ For email-based customer sign-in, follow [Browser QA with email sign-in](email.md#browser-qa-with-email-sign-in) to compare the production baseline and exact preview with fresh sessions.
100
+
93
101
  Inspect the actual rendered application, not only an HTTP `200` or deployment result. For the requested journey:
94
102
 
95
103
  - verify `/api/bootstrap`, `/api/session`, and every new same-origin route on the exact preview;
@@ -1,23 +1,29 @@
1
1
  # Email identities and prepared test accounts
2
2
 
3
- Persistent Cloud agents require an explicitly selected `email.read` grant. In Persistent agents, enable **Read all merchant inboxes, including QA sign-in emails**, confirm the replacement grant, and update the Cloud environment's bootstrap. If the environment still sets optional `ANDEO_AGENT_SCOPE`, remove it to inherit the renewed grant scope, or include `email.read` in the explicit narrower scope. This permits listing, cursors, messages, reading and waiting across all inboxes in that merchant, even when only one app is selected. It does not permit creating or retiring inboxes. Existing grants do not acquire this capability automatically.
3
+ In a persistent Cloud run, use `andeo email default --json` for the assigned QA inbox. A `ready` result contains its address, inbox ID, and any usage note. `unassigned`, `not_permitted`, and `inactive` explain why no inbox is available. Ask a merchant administrator to set up or change the inbox in **Persistent agents**. Eligible runs see the new assignment on their next email request and keep their Cloud bootstrap. Runs admitted before this feature retain their original permissions until the next eligible run.
4
4
 
5
- Use `andeo email capabilities --json` to inspect `enabled`, `tenantId`, and `permissions`. Email is receive-only and belongs to the merchant, shared across all its apps. Developer access to any app in that merchant grants access to all its inboxes, even for an agent scoped to only one app. Viewers cannot read mail. A tenant member and an authorized agent use the same inboxes through the merchant Email section or CLI. Select the merchant with its login `--profile`; optional `--tenant tn_...` checks that the profile belongs to the intended merchant.
5
+ Assigned inbox access defaults to on for runs that inherit their grant scope and off for runs that supply `ANDEO_AGENT_SCOPE`. Set `ANDEO_AGENT_QA_EMAIL=on` or `off` before admission to choose explicitly. The separate `email.read` grant still permits merchant-wide reads when it is in the effective scope. Persistent runs have read access only. Human logins with developer access can use `email list` across the merchant. Viewers cannot read mail.
6
6
 
7
- ## Reuse an identity prepared by a person
7
+ Use `andeo email capabilities --json` to inspect `enabled`, `tenantId`, `permissions`, and `readScope` (`none`, `assigned`, or `merchant`). Email is receive-only and belongs to the merchant. A human login can select the merchant with `--profile` and verify it with `--tenant tn_...`.
8
8
 
9
- The user can create a persistent inbox, register the external account manually, and prepare its orders or other test state once. Your task is to reuse that account:
9
+ ## Browser QA with email sign-in
10
+
11
+ 1. **Pick the approved QA account.** Use the inbox ID or address supplied for the task. In a persistent run, discover the assigned inbox with `andeo email default --json`. Use `andeo email list --json` to find other inboxes within your access. If the inbox or required account state is unavailable, ask the merchant for setup or access and record which check is blocked.
12
+ 2. **Record the production baseline.** Open the merchant's production URL in a clean browser context with no preview selection or customer session. Complete email sign-in and record the current behavior for the journey in the acceptance criteria.
13
+ 3. **Verify the exact preview.** Open the authorized [preview entry](delivery.md#create-an-exact-preview) in a separate clean browser context. Use the same QA account when both environments support it. Request a fresh OTP or sign-in link and repeat the journey. The preview grant selects the build, and the email sign-in establishes the customer session. If the preview cannot reach a supported customer login or the required account state, report authenticated verification as blocked. A preview through a published gateway can use production APIs, so perform only mutations authorized for that account and environment.
14
+ 4. **Verify after release.** After an authorized release, confirm the [serving release](releases-recovery.md) and repeat the journey in a clean production context. Record the baseline, preview, and released production results with the relevant build or release IDs. Keep OTPs, sign-in links, customer data, and signed preview URLs out of the handoff.
15
+
16
+ ### Complete each sign-in
10
17
 
11
18
  ```sh
12
- andeo email list --json
13
- andeo email cursor --inbox inbox_... --json
14
- # Now trigger the authorized login or verification email in the external app.
15
- andeo email wait --inbox inbox_... --after 'inbox_...:0' --timeout 120s --json
19
+ andeo email cursor --inbox "$INBOX_ID" --json
20
+ # Save the returned cursor, then request sign-in with the inbox address in the browser.
21
+ andeo email wait --inbox "$INBOX_ID" --after "$CURSOR" --timeout 120s --json
16
22
  ```
17
23
 
18
- Use the actual cursor returned before triggering the email. A message arriving before `wait` starts is still found. `status=timeout` preserves the cursor for another wait. Capture a new cursor for a new login attempt, so an older code is not mistaken for the new one.
24
+ Enter the code in the browser that requested it, or open the expected sign-in link in that same browser context. Confirm the expected portal and preview selection after the sign-in redirect, then verify the requested behavior. A message arriving before `wait` starts is still found. `status=timeout` preserves the cursor for another wait on the same request. Capture a new cursor before each new request. When multiple people or agents use the inbox, coordinate sign-in attempts so their login messages do not overlap.
19
25
 
20
- Use the supplied inbox ID/address. Labels help discovery but are not unique; disambiguate existing matches instead of picking arbitrarily or creating a replacement. The handoff should identify the merchant, inbox, external application, and scenario. Inbox access does not create or reset the external account, and does not imply permission to perform unrelated actions.
26
+ `usageNote` and `usageNoteUpdatedAt` describe the expected portal state and when the note was last edited. Verify that state in the portal. Inbox labels can repeat, so match the ID or address. If a wait ends because the inbox became inaccessible, look up the assignment again and start a new browser sign-in with a fresh cursor if the newly assigned account fits the scenario.
21
27
 
22
28
  ## Create an identity when requested
23
29
 
@@ -48,6 +54,6 @@ andeo email retire --inbox inbox_... --json
48
54
 
49
55
  Retire only when the task calls for ending that identity. Retirement immediately blocks receipt and reading, is safe to repeat, and cannot be undone. The address stays reserved. It does not delete the external account. Preserve persistent test personas after a test unless asked to retire them.
50
56
 
51
- There are at most 25 active inboxes per merchant. Temporary lifetimes range from 1 minute to 7 days. Message retention is 24 hours even for persistent inboxes; expired/retired inboxes return `email_inbox_inactive`. Waits are bounded to 10 minutes. Attachments and outbound sending are not supported.
57
+ The default is 25 active inboxes per merchant. Use `andeo email capabilities --json` and read `limits.activeInboxes` for the current merchant's limit. Temporary lifetimes range from 1 minute to 7 days. Message retention is 24 hours even for persistent inboxes, and expired or retired inboxes return `email_inbox_inactive`. Waits are bounded to 10 minutes. Attachments and outbound sending are not supported.
52
58
 
53
59
  Use [authentication](authentication.md) for profile selection and merchant access. All email commands accept `--profile`, `--tenant`, and `--json`; use `andeo email --help` for syntax. No app selection or MCP setup is required. Legacy `--project` is accepted as an access check, not an inbox filter. Existing addresses and messages remain unchanged when moving from app ownership to merchant ownership.
@@ -90,7 +90,7 @@ Andeo does not detect remaining evaluations automatically. Refresh the revision
90
90
  and digest after Disable. Final readback rejects re-enabling or definition changes
91
91
  during review; it cannot atomically prevent external provider edits after the read.
92
92
 
93
- Declare the native binding separately for every environment in tender-app.config.json:
93
+ Declare the native binding separately for every environment in `andeo-app.config.json` (or legacy `tender-app.config.json`):
94
94
 
95
95
  ```json
96
96
  {
@@ -145,8 +145,12 @@ use the pinned syntax and a maximum of 64 characters for every operation. Values
145
145
  finite bounded JSON with safe keys; provider/Andeo limits are separately documented.
146
146
  No local check establishes hosted lifecycle, propagation or external SDK readiness.
147
147
 
148
- See repository docs/runbooks/FLEXIBLE_FEATURE_FLAGS.md for the parity matrix,
149
- migration 0092, exact boundaries and remaining hosted acceptance evidence.
148
+ Before an authorized hosted rollout, verify synthetic cohorts and configured
149
+ defaults, provider readback, propagation, workflow retries, wrong-project and
150
+ wrong-environment denial, and revocation in the exact tenant/collection. Check
151
+ that the installed CLI's trusted packaging retains workflows and flags. Record
152
+ source, release, definition revision/digest and remaining unverified behavior;
153
+ ask the platform operator only for prerequisites that block the requested rollout.
150
154
  Official documentation: https://developers.cloudflare.com/flagship/.
151
155
 
152
156
  External access design: Specified Flagship apps + Flagship App Evaluate, limited
@@ -146,13 +146,13 @@ npx @withandeo/cli source push --json
146
146
 
147
147
  Run these commands from the independently deployable app directory, or use its
148
148
  exact `--cwd`. `source connect` derives the project working directory and build
149
- contract from Git plus `tender-accounts.json`; do not recreate that contract by
149
+ contract from Git plus `andeo.json` (or legacy `tender-accounts.json`); do not recreate that contract by
150
150
  hand in the admin. New connections default to preview-only. Both gateways and services support `--publication default-branch` when a merchant administrator explicitly enables automatic publication. For an existing connection use `source policy show`, then `source policy set --repository SRC_ID --publication default-branch --expected-revision N --idempotency-key KEY`. Saving the policy affects future source builds; it does not publish an existing build. Reconnecting never changes the policy.
151
151
 
152
152
  Select a local commit independently from the destination branch, including from a GitButler workspace:
153
153
 
154
154
  ```sh
155
- andeo source push --source chore/andeo-agent-guidance --branch main --json
155
+ andeo source push --source REF_OR_COMMIT --branch main --json
156
156
  ```
157
157
 
158
158
  `--source` accepts a resolvable local branch, ref or commit SHA and defaults to `HEAD`.
@@ -202,9 +202,12 @@ npx @withandeo/cli source change create \
202
202
  npx @withandeo/cli source change show --change scr_... --json
203
203
  ```
204
204
 
205
- Return the `scr_` ID and exact preview state to the user. A developer or coding
206
- agent stops after the exact preview is ready. Approval and **Land in main** are
207
- merchant-administrator actions in Andeo. Do not push the default branch,
205
+ Return the `scr_` ID and exact preview state to the user. Without delegated merge
206
+ authority, stop at review and leave approval and **Land in main** to a merchant
207
+ administrator. With an explicit persistent `source.merge` grant or eligible
208
+ native-preview merge policy, follow **Request merge and deployment** above within
209
+ the user's release instructions; source protection does not remove that authority.
210
+ Do not push the default branch,
208
211
  obtain a raw provider token, call internal APIs, or replace this flow with
209
212
  `source promote` after reviewed changes are enabled.
210
213
 
@@ -1,3 +1,3 @@
1
1
  {
2
- "minimumCliVersion": "0.19.21"
2
+ "minimumCliVersion": "0.19.23"
3
3
  }
@@ -1,6 +1,8 @@
1
1
  # __APP_NAME__ application boundary
2
2
 
3
- This is a merchant-owned Andeo application. The gateway and portal are independently deployable projects.
3
+ This is a merchant-owned Andeo application. The gateway and portal are independently deployable projects. Use Andeo when naming the platform in copy, comments, documentation, and agent guidance. Retain existing wire schemas and runtime identifiers.
4
+
5
+ Continue authorized work using reasonable implementation judgment. Ask only when a missing decision or permission blocks the next action; continue independent local work while remote access is unavailable. Use the editing tools available in the current host and preserve unrelated work.
4
6
 
5
7
  ## Working rules
6
8
 
@@ -12,4 +14,4 @@ This is a merchant-owned Andeo application. The gateway and portal are independe
12
14
  - Never run `wrangler deploy`; production and preview delivery are controlled by Andeo.
13
15
  - Never commit `.dev.vars`, `.tender/`, credentials, customer data, or provider responses.
14
16
  - Shopify and selected commerce providers remain systems of record. Do not duplicate their durable business state without an explicit design.
15
- - Run the closest app checks and `npx @withandeo/cli preview --dry-run --json` before creating a preview.
17
+ - Use focused app checks during iteration. For final local artifact validation, run `npx @withandeo/cli preview --dry-run --json`, which includes the configured app checks. A local `preview` also runs checks and packaging; do not duplicate its preflight on unchanged source. Persistent Cloud previews additionally run an independent hosted build.
@@ -24,11 +24,11 @@ The service binding is a privilege boundary, not a separation of product ownersh
24
24
  3. Copy `apps/gateway/.dev.vars.example` to `apps/gateway/.dev.vars` and replace only the public configuration values.
25
25
  4. Run `npm run dev`.
26
26
 
27
- Local development intentionally stays signed out because Shopify requires registered HTTPS callback URLs. Use an immutable Tender preview to test real sign-in.
27
+ Local development intentionally stays signed out because Shopify requires registered HTTPS callback URLs. Use an immutable Andeo preview to test real sign-in.
28
28
 
29
29
  ## Create a preview
30
30
 
31
- Each app is linked and delivered independently. Sign in once, approve the organization and exact app projects in Tender, then link the portal:
31
+ Each app is linked and delivered independently. Sign in once, approve the organization and exact app projects in Andeo, then link the portal:
32
32
 
33
33
  ```sh
34
34
  npx @withandeo/cli auth create {{slug}}
@@ -39,12 +39,12 @@ npx @withandeo/cli preview --cwd apps/portal --dry-run --json
39
39
  npx @withandeo/cli preview --cwd apps/portal --json
40
40
  ```
41
41
 
42
- Coding agents should use `npx @withandeo/cli auth create {{slug}} --device --no-open --json`, return the verification URL/code to the user, resume the same request with the returned `auth status --profile {{slug}} --json` command, and activate the profile for the repository. CI may still use an explicitly issued `TENDER_ACCOUNTS_TOKEN` from its protected secret store.
42
+ Coding agents should use `npx @withandeo/cli auth create {{slug}} --device --no-open --json`, return the verification URL/code to the user, resume the same request with the returned `auth status --profile {{slug}} --json` command, and activate the profile for the repository. CI may still use an explicitly issued `ANDEO_TOKEN` from its protected secret store.
43
43
 
44
44
  Use `apps/gateway` instead only when gateway code or bindings changed. The CLI intentionally cannot publish production.
45
45
 
46
46
  ## Configure Shopify
47
47
 
48
- Register the canonical gateway hostname as the JavaScript origin and use its `/auth/callback` and `/auth/logout/callback` URLs in Shopify Customer Account settings. Put the public client ID and Shopify domains in the gateway's local `.dev.vars`; Tender injects the environment values for previews and production.
48
+ Register the canonical gateway hostname as the JavaScript origin and use its `/auth/callback` and `/auth/logout/callback` URLs in Shopify Customer Account settings. Put the public client ID and Shopify domains in the gateway's local `.dev.vars`; Andeo injects the environment values for previews and production.
49
49
 
50
50
  If the platform connects a merchant vanity domain, add that exact origin plus its `/auth/callback` and `/auth/logout/callback` URLs in Shopify, then set `ACCOUNT_VANITY_HOSTNAMES` in the gateway environment. Production sign-in and renewal will stay on the vanity hostname. Unregistered preview hosts continue to use the canonical callback and a one-time exact-host handoff. This value is public hostname policy, not a credential. The React portal needs no vanity-domain configuration.
@@ -6,5 +6,5 @@ This app owns authentication, HttpOnly sessions, application database state, `/a
6
6
  - Preserve exact-host preview session isolation and Shopify PKCE protections.
7
7
  - Never expose customer access tokens, ID tokens, database data, or confidential provider credentials to the portal.
8
8
  - Never forward shopper or authorization-flow cookies to `PORTAL_UI`, and never accept `Set-Cookie` or `Clear-Site-Data` from it. The gateway is the sole owner of authentication state and browser security headers.
9
- - Add new resources and services to both `wrangler.jsonc` and `tender-app.config.json`; packaging must fail if they disagree.
10
- - Run `npm run check` from this directory after gateway changes.
9
+ - Add new resources and services to both `wrangler.jsonc` and `andeo-app.config.json`; packaging must fail if they disagree.
10
+ - Validate gateway changes from this directory. Use `npm run check` for local feedback or `npx @withandeo/cli preview --dry-run --json` for artifact validation, which includes those checks. Follow the root validation guidance to avoid duplicate preflight runs.
@@ -4,7 +4,7 @@ Stable backend for __APP_NAME__. It owns Shopify Customer Account PKCE authentic
4
4
 
5
5
  The customer-auth implementation is normal merchant source code copied by the starter. The merchant can inspect, edit, or replace it. Shopify remains the customer system of record; The application database stores only transient auth state and application sessions.
6
6
 
7
- Local HTTP development returns an explicit signed-out state. Real Shopify sign-in must use an HTTPS Tender preview whose canonical callback and logout URLs are registered in Shopify.
7
+ Local HTTP development returns an explicit signed-out state. Real Shopify sign-in must use an HTTPS Andeo preview whose canonical callback and logout URLs are registered in Shopify.
8
8
 
9
9
  The generated `.dev` hostname stays the Shopify callback anchor. When a merchant vanity domain is activated, add it to the public comma-separated `ACCOUNT_VANITY_HOSTNAMES` environment value so the exact-host session policy can safely return the shopper there. Do not move Shopify callback configuration to the vanity hostname.
10
10
 
@@ -3,7 +3,7 @@
3
3
  "commands": {
4
4
  "dev": "npm run dev",
5
5
  "check": "npm run check",
6
- "package": "npm run pack:tender"
6
+ "package": "npm run pack:andeo"
7
7
  },
8
8
  "artifactDirectory": ".tender/artifacts/current",
9
9
  "returnPath": "/account"
@@ -1,4 +1,4 @@
1
- # Public Shopify and Tender runtime configuration. Replace these locally.
1
+ # Public Shopify and Andeo runtime configuration. Replace these locally.
2
2
  ACCOUNT_TENANT_ID=ten_replace_me
3
3
  ACCOUNT_PROJECT_ID=prj_replace_me
4
4
  ACCOUNT_RUNTIME_BASE_DOMAIN=andeo.dev
@@ -9,4 +9,4 @@ SHOPIFY_CUSTOMER_ACCOUNT_DOMAIN=shopify.com
9
9
 
10
10
  # Optional CI/manual fallback. Normal development uses a named `andeo auth create` profile.
11
11
  # If used locally, keep it only in ignored .dev.vars.
12
- # TENDER_ACCOUNTS_TOKEN=ta_agent_...
12
+ # ANDEO_TOKEN=ta_agent_...
@@ -9,8 +9,9 @@
9
9
  "check": "npm run typecheck && npm run test && npm run build && npm run pack:check",
10
10
  "db:migrate:local": "wrangler d1 migrations apply __APP_SLUG__-sessions --local",
11
11
  "dev": "wrangler dev",
12
- "pack:tender": "node ./scripts/pack-tender-artifact.mjs",
13
- "pack:check": "node ./scripts/pack-tender-artifact.mjs --vars .dev.vars.example --source-revision ffffffffffffffffffffffffffffffffffffffff",
12
+ "pack:andeo": "node ./scripts/pack-andeo-artifact.mjs",
13
+ "pack:tender": "node ./scripts/pack-andeo-artifact.mjs",
14
+ "pack:check": "node ./scripts/pack-andeo-artifact.mjs --vars .dev.vars.example --source-revision ffffffffffffffffffffffffffffffffffffffff",
14
15
  "test": "vitest run",
15
16
  "typecheck": "tsc --noEmit"
16
17
  },
@@ -11,7 +11,7 @@ import {
11
11
  } from "../../../scripts/artifact-contract.mjs";
12
12
 
13
13
  const appRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
14
- const config = JSON.parse(await readFile(join(appRoot, "tender-app.config.json"), "utf8"));
14
+ const config = JSON.parse(await readFile(join(appRoot, "andeo-app.config.json"), "utf8"));
15
15
  const packageJson = JSON.parse(await readFile(join(appRoot, "package.json"), "utf8"));
16
16
  const sourceRevision = (argumentValue("--source-revision") || process.env.TENDER_SOURCE_REVISION || "").trim().toLowerCase();
17
17
  if (!/^[a-f0-9]{40}$/u.test(sourceRevision)) throw new Error("A committed 40-character source revision is required.");
@@ -7,12 +7,12 @@ import {
7
7
  import type { CustomerAuthHostnamePolicy } from "./session-store";
8
8
 
9
9
  /**
10
- * Secure default for a Tender-hosted application. It authorizes only the
10
+ * Secure default for an Andeo-hosted application. It authorizes only the
11
11
  * canonical application host plus immutable and alias hosts whose trusted
12
12
  * tenant/project digests match this application. Merchants using custom host
13
13
  * shapes can replace this policy in their own source.
14
14
  */
15
- export function createTenderRuntimeHostnamePolicy(input: {
15
+ export function createAndeoRuntimeHostnamePolicy(input: {
16
16
  tenantId: string;
17
17
  projectId: string;
18
18
  baseDomain: string;