@arizeai/phoenix-cli 1.14.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +40 -12
  2. package/build/commands/api.d.ts.map +1 -1
  3. package/build/commands/api.js +5 -8
  4. package/build/commands/api.js.map +1 -1
  5. package/build/commands/auth.js +1 -1
  6. package/build/commands/auth.js.map +1 -1
  7. package/build/commands/formatSetup.d.ts +18 -2
  8. package/build/commands/formatSetup.d.ts.map +1 -1
  9. package/build/commands/formatSetup.js +27 -5
  10. package/build/commands/formatSetup.js.map +1 -1
  11. package/build/commands/options.d.ts +3 -2
  12. package/build/commands/options.d.ts.map +1 -1
  13. package/build/commands/options.js +2 -1
  14. package/build/commands/options.js.map +1 -1
  15. package/build/commands/setup.d.ts +21 -0
  16. package/build/commands/setup.d.ts.map +1 -1
  17. package/build/commands/setup.js +37 -5
  18. package/build/commands/setup.js.map +1 -1
  19. package/build/commands/setupMcp.js +1 -1
  20. package/build/commands/setupMcp.js.map +1 -1
  21. package/build/config.d.ts +5 -2
  22. package/build/config.d.ts.map +1 -1
  23. package/build/config.js +37 -13
  24. package/build/config.js.map +1 -1
  25. package/build/exitCodes.d.ts +8 -0
  26. package/build/exitCodes.d.ts.map +1 -1
  27. package/build/exitCodes.js +8 -0
  28. package/build/exitCodes.js.map +1 -1
  29. package/build/pxi/options.d.ts +1 -1
  30. package/build/pxi/preflight.js +2 -2
  31. package/build/pxi/preflight.js.map +1 -1
  32. package/build/setup/agents/registry.d.ts.map +1 -1
  33. package/build/setup/agents/registry.js +4 -0
  34. package/build/setup/agents/registry.js.map +1 -1
  35. package/build/setup/copy.d.ts +26 -0
  36. package/build/setup/copy.d.ts.map +1 -1
  37. package/build/setup/copy.js +46 -1
  38. package/build/setup/copy.js.map +1 -1
  39. package/build/setup/mcp/runSetupMcp.js +2 -2
  40. package/build/setup/mcp/runSetupMcp.js.map +1 -1
  41. package/build/setup/options.d.ts +4 -3
  42. package/build/setup/options.d.ts.map +1 -1
  43. package/build/setup/options.js +8 -7
  44. package/build/setup/options.js.map +1 -1
  45. package/build/setup/prompts/instrumentationPrompt.d.ts.map +1 -1
  46. package/build/setup/prompts/instrumentationPrompt.js +14 -7
  47. package/build/setup/prompts/instrumentationPrompt.js.map +1 -1
  48. package/build/setup/runSetup.d.ts +21 -2
  49. package/build/setup/runSetup.d.ts.map +1 -1
  50. package/build/setup/runSetup.js +44 -7
  51. package/build/setup/runSetup.js.map +1 -1
  52. package/build/setup/steps/verifyTraces.d.ts +25 -11
  53. package/build/setup/steps/verifyTraces.d.ts.map +1 -1
  54. package/build/setup/steps/verifyTraces.js +53 -28
  55. package/build/setup/steps/verifyTraces.js.map +1 -1
  56. package/build/setup/steps/writeEnvFile.d.ts.map +1 -1
  57. package/build/setup/steps/writeEnvFile.js +7 -5
  58. package/build/setup/steps/writeEnvFile.js.map +1 -1
  59. package/package.json +6 -6
@@ -2,9 +2,10 @@
2
2
  * Input resolution for setup.
3
3
  *
4
4
  * Follows px's `resolveConfig()` precedence — flags, then env, then
5
- * defaults — additionally accepting `PHOENIX_COLLECTOR_ENDPOINT` and
6
- * `PHOENIX_PROJECT_NAME` as endpoint/project aliases (#14131). There are no
7
- * setup-specific env vars. Reads env only through `RunContext.env`.
5
+ * defaults — using phoenix-config's shared base-URL precedence for the
6
+ * endpoint and `PHOENIX_PROJECT`/`PHOENIX_PROJECT_NAME` for the project
7
+ * (#14131). There are no setup-specific env vars. Reads env only through
8
+ * `RunContext.env`.
8
9
  *
9
10
  * Note the `--no-input` flag (or a non-TTY stdin) — not the presence of env
10
11
  * vars — is what opts into headless behavior: an ambient `PHOENIX_API_KEY`
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/setup/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG9D;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,IAAI,EAAE,mBAAmB,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,EAC/C,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,GAAG,IAAI,CAIP;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,YAAY,CAAC,CAAC;CACjD,GAAG,WAAW,CAsCd"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/setup/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG9D;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,IAAI,EAAE,mBAAmB,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,EAC/C,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,GAAG,IAAI,CAIP;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,YAAY,CAAC,CAAC;CACjD,GAAG,WAAW,CAoCd"}
@@ -2,14 +2,16 @@
2
2
  * Input resolution for setup.
3
3
  *
4
4
  * Follows px's `resolveConfig()` precedence — flags, then env, then
5
- * defaults — additionally accepting `PHOENIX_COLLECTOR_ENDPOINT` and
6
- * `PHOENIX_PROJECT_NAME` as endpoint/project aliases (#14131). There are no
7
- * setup-specific env vars. Reads env only through `RunContext.env`.
5
+ * defaults — using phoenix-config's shared base-URL precedence for the
6
+ * endpoint and `PHOENIX_PROJECT`/`PHOENIX_PROJECT_NAME` for the project
7
+ * (#14131). There are no setup-specific env vars. Reads env only through
8
+ * `RunContext.env`.
8
9
  *
9
10
  * Note the `--no-input` flag (or a non-TTY stdin) — not the presence of env
10
11
  * vars — is what opts into headless behavior: an ambient `PHOENIX_API_KEY`
11
12
  * in a dev shell never silently short-circuits the interactive flow.
12
13
  */
14
+ import { getBaseUrlFromValues } from "@arizeai/phoenix-config";
13
15
  import { CODING_AGENT_IDS } from "./agents/registry.js";
14
16
  import * as COPY from "./copy.js";
15
17
  import { HeadlessInputError } from "./errors.js";
@@ -29,10 +31,9 @@ export function assertAgentForHeadlessInstrument({ headless, agent, }) {
29
31
  }
30
32
  export function resolveSetupInputs({ options, context, }) {
31
33
  const { env } = context;
32
- const endpoint = options.endpoint ??
33
- env.PHOENIX_HOST ??
34
- env.PHOENIX_COLLECTOR_ENDPOINT ??
35
- undefined;
34
+ // Same variable precedence as resolveConfig and the SDKs, applied to the
35
+ // injected env copy (so no `.env.phoenix` discovery here).
36
+ const endpoint = options.endpoint ?? getBaseUrlFromValues(env);
36
37
  const project = options.project ??
37
38
  env.PHOENIX_PROJECT ??
38
39
  env.PHOENIX_PROJECT_NAME ??
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/setup/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAsB,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAgG9C;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAC/C,QAAQ,EACR,KAAK,GAIN;IACC,IAAI,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GAIR;IACC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ;QAChB,GAAG,CAAC,YAAY;QAChB,GAAG,CAAC,0BAA0B;QAC9B,SAAS,CAAC;IACZ,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;QACf,GAAG,CAAC,eAAe;QACnB,GAAG,CAAC,oBAAoB;QACxB,SAAS,CAAC;IACZ,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IAEjE,qEAAqE;IACrE,uDAAuD;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC;IAEnD,IAAI,UAAU,EAAE,CAAC;QACf,gCAAgC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS;QACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS;QACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS;QACnC,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;QAClC,UAAU;QACV,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,6DAA6D;QAC7D,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ;QAC1C,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/setup/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAsB,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAgG9C;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAC/C,QAAQ,EACR,KAAK,GAIN;IACC,IAAI,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GAIR;IACC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,yEAAyE;IACzE,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;QACf,GAAG,CAAC,eAAe;QACnB,GAAG,CAAC,oBAAoB;QACxB,SAAS,CAAC;IACZ,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IAEjE,qEAAqE;IACrE,uDAAuD;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC;IAEnD,IAAI,UAAU,EAAE,CAAC;QACf,gCAAgC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS;QACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS;QACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS;QACnC,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;QAClC,UAAU;QACV,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,6DAA6D;QAC7D,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ;QAC1C,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentationPrompt.d.ts","sourceRoot":"","sources":["../../../src/setup/prompts/instrumentationPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,yBAAyB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,EAAE,yBAAyB,GAAG,MAAM,CAuDpC"}
1
+ {"version":3,"file":"instrumentationPrompt.d.ts","sourceRoot":"","sources":["../../../src/setup/prompts/instrumentationPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,yBAAyB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,EAAE,yBAAyB,GAAG,MAAM,CA8DpC"}
@@ -13,8 +13,8 @@
13
13
  import { DOCS_MCP_SERVER_NAME } from "../agents/registry.js";
14
14
  export function buildInstrumentationPrompt({ projectName, endpoint, isDefaultEndpoint, docs, tracesUrl, authEnabled, languages = [], localDocsDir, docsMcpConfigured, }) {
15
15
  const credentialVars = authEnabled
16
- ? "PHOENIX_COLLECTOR_ENDPOINT and PHOENIX_API_KEY"
17
- : "PHOENIX_COLLECTOR_ENDPOINT";
16
+ ? "PHOENIX_COLLECTOR_ENDPOINT, PHOENIX_ENDPOINT, and PHOENIX_API_KEY"
17
+ : "PHOENIX_COLLECTOR_ENDPOINT and PHOENIX_ENDPOINT";
18
18
  const endpointRule = isDefaultEndpoint
19
19
  ? ""
20
20
  : `\n Also set the collector endpoint in code only if the quickstart says to; it is ${endpoint}.`;
@@ -47,17 +47,24 @@ Rules:
47
47
  write the API key or any secret into source code, config files, or command arguments.
48
48
  3. Configure the Phoenix project name in code: use the SDK's register call with the
49
49
  project name "${projectName}".${endpointRule}
50
- 4. Prefer auto-instrumentation packages over hand-written span wrappers. Make the smallest
50
+ 4. The endpoint variables are base URLs; \`.env.phoenix\` already sets both to the same
51
+ value. PHOENIX_COLLECTOR_ENDPOINT is where traces are exported — register() and the
52
+ OTel SDKs derive the full OTLP target from it. PHOENIX_ENDPOINT serves everything
53
+ else. Leave both set, and do not rewrite them to carry the /v1/traces path. If you
54
+ must construct an exporter that posts to exactly the URL it is given, build the full
55
+ OTLP URL in code: ${endpoint}/v1/traces. Handed a base URL, such exporters drop
56
+ every span silently.
57
+ 5. Prefer auto-instrumentation packages over hand-written span wrappers. Make the smallest
51
58
  correct change.
52
- 5. Verify your work by emitting exactly one trace: run the app briefly, or a minimal
59
+ 6. Verify your work by emitting exactly one trace: run the app briefly, or a minimal
53
60
  throwaway script that makes one real LLM call through the instrumented path, then
54
61
  delete any throwaway script. Do not run the full test suite or the build.
55
- 6. Install SDK packages with the project's existing package manager, pinned to the latest
62
+ 7. Install SDK packages with the project's existing package manager, pinned to the latest
56
63
  stable version you can verify. If this is a monorepo, note the root but only modify
57
64
  files at or below the current working directory.
58
- 7. Keep changes concise and readable. Do not restructure, reformat, or meaningfully modify
65
+ 8. Keep changes concise and readable. Do not restructure, reformat, or meaningfully modify
59
66
  existing application code.
60
- 8. Do not use the \`px\` CLI.
67
+ 9. Do not use the \`px\` CLI.
61
68
 
62
69
  When finished, end your final message with a one-line summary of the changes you made and
63
70
  this link to the project's traces: ${tracesUrl}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentationPrompt.js","sourceRoot":"","sources":["../../../src/setup/prompts/instrumentationPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAsC1D,MAAM,UAAU,0BAA0B,CAAC,EACzC,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAS,GAAG,EAAE,EACd,YAAY,EACZ,iBAAiB,GACS;IAC1B,MAAM,cAAc,GAAG,WAAW;QAChC,CAAC,CAAC,gDAAgD;QAClD,CAAC,CAAC,4BAA4B,CAAC;IACjC,MAAM,YAAY,GAAG,iBAAiB;QACpC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,sFAAsF,QAAQ,GAAG,CAAC;IACtG,MAAM,YAAY,GAChB,SAAS,CAAC,MAAM,GAAG,CAAC;QAClB,CAAC,CAAC,yBAAyB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC;QACtF,CAAC,CAAC,oIAAoI,CAAC;IAC3I,MAAM,aAAa,GAAG,YAAY;QAChC,CAAC,CAAC,2CAA2C,YAAY,4FAA4F;QACrJ,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,iBAAiB;QACnC,CAAC,CAAC,UAAU,oBAAoB,gLAAgL;QAChN,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;4CAKmC,IAAI,CAAC,gBAAgB;mDACd,IAAI,CAAC,oBAAoB;0BAClD,IAAI,CAAC,gBAAgB;uDACQ,IAAI,CAAC,iBAAiB,GAAG,aAAa,GAAG,WAAW;EACzG,YAAY;;;;yDAI2C,cAAc;;;;;;mBAMpD,WAAW,KAAK,YAAY;;;;;;;;;;;;;;qCAcV,SAAS;;;CAG7C,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"instrumentationPrompt.js","sourceRoot":"","sources":["../../../src/setup/prompts/instrumentationPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAsC1D,MAAM,UAAU,0BAA0B,CAAC,EACzC,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAS,GAAG,EAAE,EACd,YAAY,EACZ,iBAAiB,GACS;IAC1B,MAAM,cAAc,GAAG,WAAW;QAChC,CAAC,CAAC,mEAAmE;QACrE,CAAC,CAAC,iDAAiD,CAAC;IACtD,MAAM,YAAY,GAAG,iBAAiB;QACpC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,sFAAsF,QAAQ,GAAG,CAAC;IACtG,MAAM,YAAY,GAChB,SAAS,CAAC,MAAM,GAAG,CAAC;QAClB,CAAC,CAAC,yBAAyB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC;QACtF,CAAC,CAAC,oIAAoI,CAAC;IAC3I,MAAM,aAAa,GAAG,YAAY;QAChC,CAAC,CAAC,2CAA2C,YAAY,4FAA4F;QACrJ,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,iBAAiB;QACnC,CAAC,CAAC,UAAU,oBAAoB,gLAAgL;QAChN,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;4CAKmC,IAAI,CAAC,gBAAgB;mDACd,IAAI,CAAC,oBAAoB;0BAClD,IAAI,CAAC,gBAAgB;uDACQ,IAAI,CAAC,iBAAiB,GAAG,aAAa,GAAG,WAAW;EACzG,YAAY;;;;yDAI2C,cAAc;;;;;;mBAMpD,WAAW,KAAK,YAAY;;;;;;uBAMxB,QAAQ;;;;;;;;;;;;;;;qCAeM,SAAS;;;CAG7C,CAAC;AACF,CAAC"}
@@ -17,6 +17,7 @@ import type { Connection } from "./steps/establishConnection.js";
17
17
  import { type ToolingResult } from "./steps/installTooling.js";
18
18
  import { type InstrumentationLane } from "./steps/instrumentApp.js";
19
19
  import type { DocsMcpResult } from "./steps/offerDocsMcp.js";
20
+ import { type TraceVerification } from "./steps/verifyTraces.js";
20
21
  /** Everything a run did, in the shape the summary and `--format json` print. */
21
22
  export interface SetupReport {
22
23
  connection: Connection;
@@ -30,11 +31,29 @@ export interface SetupReport {
30
31
  /** The docs MCP offer, when it was made (configured replaces `docs`). */
31
32
  docsMcp?: DocsMcpResult;
32
33
  instrumentation?: InstrumentationLane;
33
- /** True once the API confirmed a trace arrived after this run started. */
34
- tracesVerified?: boolean;
34
+ /**
35
+ * How the wait for the first trace ended. Absent on a run that never
36
+ * instrumented and so had nothing to verify.
37
+ */
38
+ verification?: TraceVerification;
35
39
  tooling?: ToolingResult;
36
40
  tracesUrl: string;
37
41
  }
42
+ /**
43
+ * True once the API confirmed a trace arrived after this run started — setup's
44
+ * definition of done.
45
+ */
46
+ export declare function tracesConfirmed(report: SetupReport): boolean;
47
+ /**
48
+ * True when setup tried to verify data flow and did not get it. The one
49
+ * outcome that makes a run a failure: a `deferred` wait was the user's call,
50
+ * and an absent verification means there was nothing to verify.
51
+ *
52
+ * Every surface that reports the verdict — the closing line, the headless
53
+ * summary, the exit code — reads it from here or {@link tracesConfirmed}, so
54
+ * they cannot drift into disagreeing with each other.
55
+ */
56
+ export declare function verificationFailed(report: SetupReport): boolean;
38
57
  /** `px setup` — the whole flow. */
39
58
  export declare function runSetup(deps: SetupDeps, inputs: SetupInputs): Promise<SetupReport>;
40
59
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runSetup.d.ts","sourceRoot":"","sources":["../../src/setup/runSetup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sCAAsC;IACtC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,yEAAyE;IACzE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,mCAAmC;AACnC,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CA8CtB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,WAAW,CAAC,CAetB;AAED,4EAA4E;AAC5E,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,aAAa,CAAC,CAexB"}
1
+ {"version":3,"file":"runSetup.d.ts","sourceRoot":"","sources":["../../src/setup/runSetup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAG9B,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sCAAsC;IACtC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,yEAAyE;IACzE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE/D;AAeD,mCAAmC;AACnC,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CA8CtB;AAqBD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,WAAW,CAAC,CAetB;AAED,4EAA4E;AAC5E,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,aAAa,CAAC,CAexB"}
@@ -21,8 +21,27 @@ import { establishConnection } from "./steps/establishConnection.js";
21
21
  import { offerToolingInstalls, } from "./steps/installTooling.js";
22
22
  import { instrumentApp } from "./steps/instrumentApp.js";
23
23
  import { offerPxProfile } from "./steps/offerPxProfile.js";
24
- import { hasSpansInSkewWindow, waitForFirstTrace, tracesUrl, } from "./steps/verifyTraces.js";
24
+ import { skewWindowIsClear, waitForFirstTrace, tracesUrl, } from "./steps/verifyTraces.js";
25
25
  import { ENV_FILE_NAME, writeEnvFile } from "./steps/writeEnvFile.js";
26
+ /**
27
+ * True once the API confirmed a trace arrived after this run started — setup's
28
+ * definition of done.
29
+ */
30
+ export function tracesConfirmed(report) {
31
+ return report.verification === "verified";
32
+ }
33
+ /**
34
+ * True when setup tried to verify data flow and did not get it. The one
35
+ * outcome that makes a run a failure: a `deferred` wait was the user's call,
36
+ * and an absent verification means there was nothing to verify.
37
+ *
38
+ * Every surface that reports the verdict — the closing line, the headless
39
+ * summary, the exit code — reads it from here or {@link tracesConfirmed}, so
40
+ * they cannot drift into disagreeing with each other.
41
+ */
42
+ export function verificationFailed(report) {
43
+ return report.verification === "notVerified";
44
+ }
26
45
  /**
27
46
  * Detect the installed agents — but only when the lane is still open. `--agent`
28
47
  * pins it, and the pinned agent probes its own binary, so the sweep's four
@@ -68,9 +87,27 @@ export async function runSetup(deps, inputs) {
68
87
  : COPY.PRODUCTION.bodyAuthOff, COPY.PRODUCTION.title);
69
88
  // Untitled: the outro below already says it, and closes the rail.
70
89
  deps.prompter.note(COPY.OUTRO_BODY);
71
- deps.prompter.outro(COPY.OUTRO_TITLE);
90
+ deps.prompter.outro(outroTitle(report));
72
91
  return { ...report, tooling };
73
92
  }
93
+ /**
94
+ * The closing line, which is the last thing left on screen and so the run's
95
+ * verdict as the user reads it. It has to follow the verification outcome: the
96
+ * notes above it are informational either way, and closing on "You're set up."
97
+ * after an unverified hand-off is a success claim setup did not earn.
98
+ *
99
+ * A deferred wait gets the same honest title as a failed one — the user chose
100
+ * to stop watching, which does not make tracing confirmed working. Only the
101
+ * exit code distinguishes them, because only that has a caller to mislead.
102
+ *
103
+ * A run that never instrumented has nothing to verify and keeps the plain
104
+ * title — registering is all it was asked to do.
105
+ */
106
+ function outroTitle(report) {
107
+ return report.verification && !tracesConfirmed(report)
108
+ ? COPY.OUTRO_TITLE_NOT_VERIFIED
109
+ : COPY.OUTRO_TITLE;
110
+ }
74
111
  /**
75
112
  * `px setup instrument` — the instrumentation slice, re-runnable on a repo that
76
113
  * is already registered. Registration still runs: it is idempotent, and it is
@@ -87,7 +124,7 @@ export async function runInstrument(deps, resolved) {
87
124
  }
88
125
  const report = await registerAndInstrument(deps, inputs, { agentDetection });
89
126
  if (!inputs.headless) {
90
- deps.prompter.outro(COPY.OUTRO_TITLE);
127
+ deps.prompter.outro(outroTitle(report));
91
128
  }
92
129
  return report;
93
130
  }
@@ -129,7 +166,7 @@ async function registerAndInstrument(deps, inputs, { agentDetection }) {
129
166
  // Any span already visible inside the clock-skew window predates this run —
130
167
  // verification must then require spans strictly after the start time, or a
131
168
  // pre-existing trace would falsely verify the hand-off.
132
- const hadRecentSpans = await hasSpansInSkewWindow(deps, connection, {
169
+ const allowClockSkew = await skewWindowIsClear(deps, connection, {
133
170
  sinceMs: startedAt,
134
171
  });
135
172
  // The docs steps live inside instrumentApp, after its lane choice: the docs
@@ -154,9 +191,9 @@ async function registerAndInstrument(deps, inputs, { agentDetection }) {
154
191
  // arriving, not the agent's own claim that it finished. It is reported, not
155
192
  // thrown on: the connection and hand-off files are real work worth keeping
156
193
  // even when no trace showed up.
157
- const tracesVerified = await waitForFirstTrace(deps, connection, {
194
+ const verification = await waitForFirstTrace(deps, connection, {
158
195
  sinceMs: startedAt,
159
- allowClockSkew: !hadRecentSpans,
196
+ allowClockSkew,
160
197
  headless: inputs.headless,
161
198
  });
162
199
  return {
@@ -168,7 +205,7 @@ async function registerAndInstrument(deps, inputs, { agentDetection }) {
168
205
  files: [...base.files, ...(docsMcp?.files ?? [])],
169
206
  gitignored: [...base.gitignored, ...(docs?.gitignoreAppended ?? [])],
170
207
  instrumentation,
171
- tracesVerified,
208
+ verification,
172
209
  };
173
210
  }
174
211
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runSetup.js","sourceRoot":"","sources":["../../src/setup/runSetup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runSetup.js","sourceRoot":"","sources":["../../src/setup/runSetup.ts"],"names":[],"mappings":"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"}
@@ -14,31 +14,45 @@ import type { Connection } from "./establishConnection.js";
14
14
  */
15
15
  export declare function tracesUrl(connection: Connection): string;
16
16
  /**
17
- * True when the project already has spans inside the clock-skew window at
18
- * `sinceMs`. Checked before instrumentation begins: any span visible at that
19
- * point predates this run, so verification must not credit the skew window.
17
+ * True when the clock-skew window at `sinceMs` is known to be empty, and so
18
+ * safe for verification to count as part of this run.
19
+ *
20
+ * Checked before instrumentation begins: any span already visible at that
21
+ * point predates this run, so verification must not credit the window. An
22
+ * indeterminate probe answers false for the same reason — widening the window
23
+ * on an answer we could not get would let a span from before this run satisfy
24
+ * verification, which is the false success this whole step exists to prevent.
20
25
  */
21
- export declare function hasSpansInSkewWindow(deps: Pick<SetupDeps, "createClient">, connection: Connection, { sinceMs }: {
26
+ export declare function skewWindowIsClear(deps: Pick<SetupDeps, "createClient">, connection: Connection, { sinceMs }: {
22
27
  sinceMs: number;
23
28
  }): Promise<boolean>;
24
29
  /**
25
- * Watch for the first trace since `sinceMs`. Resolves true when a span is
26
- * observed via the API, false when the wait ends without one — the user gave
27
- * up at the timeout prompt, or, in a headless run, the first window elapsed.
30
+ * How the wait for the first trace ended.
31
+ *
32
+ * `deferred` is the outcome that is not a failure: the user was asked whether
33
+ * to keep watching and chose to stop. Verification was withdrawn, not attempted
34
+ * and lost, so setup must not report it as a broken setup — the escape hatch
35
+ * says "everything else is already configured" and means it.
36
+ */
37
+ export type TraceVerification = "verified" | "notVerified" | "deferred";
38
+ /**
39
+ * Watch for the first trace since `sinceMs`.
28
40
  *
29
41
  * The "keep watching?" prompt is the only thing that can extend the wait, so a
30
42
  * headless run gets exactly one window: there is no terminal to ask on, and
31
- * looping forever would hang an unattended caller.
43
+ * looping forever would hang an unattended caller. That also means only an
44
+ * interactive run can return `deferred` — a headless timeout is nobody's
45
+ * decision.
32
46
  *
33
47
  * @param args.sinceMs - instrumentation start; only spans after it count.
34
48
  * @param args.allowClockSkew - widen the window by the skew tolerance. Pass
35
- * false when the project had spans before instrumentation began (see
36
- * `hasSpansInSkewWindow`), so stale spans cannot satisfy verification.
49
+ * false unless the window was confirmed empty before instrumentation began
50
+ * (see {@link skewWindowIsClear}), so stale spans cannot satisfy verification.
37
51
  * @param args.headless - no prompting; give up after one window.
38
52
  */
39
53
  export declare function waitForFirstTrace(deps: Pick<SetupDeps, "clock" | "createClient" | "prompter">, connection: Connection, { sinceMs, allowClockSkew, headless, }: {
40
54
  sinceMs: number;
41
55
  allowClockSkew?: boolean;
42
56
  headless?: boolean;
43
- }): Promise<boolean>;
57
+ }): Promise<TraceVerification>;
44
58
  //# sourceMappingURL=verifyTraces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTraces.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/verifyTraces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQxD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAIxD;AAOD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACrC,UAAU,EAAE,UAAU,EACtB,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/B,OAAO,CAAC,OAAO,CAAC,CAMlB;AA0DD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC,EAC5D,UAAU,EAAE,UAAU,EACtB,EACE,OAAO,EACP,cAAqB,EACrB,QAAgB,GACjB,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACnE,OAAO,CAAC,OAAO,CAAC,CAoClB"}
1
+ {"version":3,"file":"verifyTraces.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/verifyTraces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQxD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAIxD;AAOD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACrC,UAAU,EAAE,UAAU,EACtB,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAiFD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC,EAC5D,UAAU,EAAE,UAAU,EACtB,EACE,OAAO,EACP,cAAqB,EACrB,QAAgB,GACjB,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACnE,OAAO,CAAC,iBAAiB,CAAC,CA2C5B"}
@@ -6,6 +6,7 @@
6
6
  * only consulted at the timeout escape hatch ("keep watching / finish
7
7
  * anyway") — never asked to eyeball the UI as the definition of done.
8
8
  */
9
+ import { HttpError } from "@arizeai/phoenix-client";
9
10
  import * as COPY from "../copy.js";
10
11
  const POLL_INTERVAL_MS = 2_000;
11
12
  const POLL_WINDOW_MS = 60_000;
@@ -24,12 +25,18 @@ function searchStartTime(sinceMs, skewMs) {
24
25
  return new Date(sinceMs - skewMs).toISOString();
25
26
  }
26
27
  /**
27
- * True when the project already has spans inside the clock-skew window at
28
- * `sinceMs`. Checked before instrumentation begins: any span visible at that
29
- * point predates this run, so verification must not credit the skew window.
28
+ * True when the clock-skew window at `sinceMs` is known to be empty, and so
29
+ * safe for verification to count as part of this run.
30
+ *
31
+ * Checked before instrumentation begins: any span already visible at that
32
+ * point predates this run, so verification must not credit the window. An
33
+ * indeterminate probe answers false for the same reason — widening the window
34
+ * on an answer we could not get would let a span from before this run satisfy
35
+ * verification, which is the false success this whole step exists to prevent.
30
36
  */
31
- export async function hasSpansInSkewWindow(deps, connection, { sinceMs }) {
32
- return hasNewSpans(spanSearchClient(deps, connection), connection.projectName, searchStartTime(sinceMs, START_TIME_SKEW_MS));
37
+ export async function skewWindowIsClear(deps, connection, { sinceMs }) {
38
+ const probe = await probeForNewSpans(spanSearchClient(deps, connection), connection.projectName, searchStartTime(sinceMs, START_TIME_SKEW_MS));
39
+ return probe === "none";
33
40
  }
34
41
  function spanSearchClient(deps, connection) {
35
42
  return deps.createClient({
@@ -37,12 +44,8 @@ function spanSearchClient(deps, connection) {
37
44
  apiKey: connection.apiKey,
38
45
  });
39
46
  }
40
- /**
41
- * One span-search request. Any failure is a "not yet": a 404 means the project
42
- * has no spans to have created it, and a network hiccup mid-poll should keep
43
- * setup watching rather than abort it.
44
- */
45
- async function hasNewSpans(client, projectName, startTime) {
47
+ /** One span-search request. */
48
+ async function probeForNewSpans(client, projectName, startTime) {
46
49
  try {
47
50
  const { data } = await client.GET("/v1/projects/{project_identifier}/spans", {
48
51
  params: {
@@ -51,38 +54,53 @@ async function hasNewSpans(client, projectName, startTime) {
51
54
  },
52
55
  signal: AbortSignal.timeout(POLL_REQUEST_TIMEOUT_MS),
53
56
  });
54
- return (data?.data.length ?? 0) > 0;
57
+ return (data?.data.length ?? 0) > 0 ? "found" : "none";
55
58
  }
56
- catch {
57
- return false;
59
+ catch (error) {
60
+ // The client's middleware turns every non-2xx into an HttpError, so a
61
+ // status is only reachable from here. A 404 is a definite "none": the
62
+ // project does not exist, so nothing has ever been delivered to it.
63
+ // Everything else — an auth rejection, a 5xx, a timeout, a dropped
64
+ // socket — is an answer we did not get.
65
+ return error instanceof HttpError && error.status === 404
66
+ ? "none"
67
+ : "unknown";
58
68
  }
59
69
  }
60
- /** Poll until a span arrives or the window elapses. */
70
+ /**
71
+ * Poll until a span arrives or the window elapses, and report how it ended.
72
+ *
73
+ * The terminal probe is returned rather than a bare boolean so the caller can
74
+ * tell "Phoenix says there are no spans" from "Phoenix never answered" — the
75
+ * difference between the user's app not emitting and setup being unable to
76
+ * look, which need different remediation.
77
+ */
61
78
  async function pollWindow(deps, client, connection, startTime) {
62
79
  const deadline = deps.clock.now() + POLL_WINDOW_MS;
63
80
  for (;;) {
64
- if (await hasNewSpans(client, connection.projectName, startTime)) {
65
- return true;
81
+ const probe = await probeForNewSpans(client, connection.projectName, startTime);
82
+ if (probe === "found") {
83
+ return probe;
66
84
  }
67
85
  if (deps.clock.now() >= deadline) {
68
- return false;
86
+ return probe;
69
87
  }
70
88
  await deps.clock.sleep(POLL_INTERVAL_MS);
71
89
  }
72
90
  }
73
91
  /**
74
- * Watch for the first trace since `sinceMs`. Resolves true when a span is
75
- * observed via the API, false when the wait ends without one — the user gave
76
- * up at the timeout prompt, or, in a headless run, the first window elapsed.
92
+ * Watch for the first trace since `sinceMs`.
77
93
  *
78
94
  * The "keep watching?" prompt is the only thing that can extend the wait, so a
79
95
  * headless run gets exactly one window: there is no terminal to ask on, and
80
- * looping forever would hang an unattended caller.
96
+ * looping forever would hang an unattended caller. That also means only an
97
+ * interactive run can return `deferred` — a headless timeout is nobody's
98
+ * decision.
81
99
  *
82
100
  * @param args.sinceMs - instrumentation start; only spans after it count.
83
101
  * @param args.allowClockSkew - widen the window by the skew tolerance. Pass
84
- * false when the project had spans before instrumentation began (see
85
- * `hasSpansInSkewWindow`), so stale spans cannot satisfy verification.
102
+ * false unless the window was confirmed empty before instrumentation began
103
+ * (see {@link skewWindowIsClear}), so stale spans cannot satisfy verification.
86
104
  * @param args.headless - no prompting; give up after one window.
87
105
  */
88
106
  export async function waitForFirstTrace(deps, connection, { sinceMs, allowClockSkew = true, headless = false, }) {
@@ -91,13 +109,20 @@ export async function waitForFirstTrace(deps, connection, { sinceMs, allowClockS
91
109
  const client = spanSearchClient(deps, connection);
92
110
  deps.prompter.note(COPY.VERIFY.waitingBody(url), COPY.VERIFY.title);
93
111
  for (;;) {
94
- if (await pollWindow(deps, client, connection, startTime)) {
112
+ const probe = await pollWindow(deps, client, connection, startTime);
113
+ if (probe === "found") {
95
114
  deps.prompter.line(COPY.VERIFY.received(url));
96
- return true;
115
+ return "verified";
116
+ }
117
+ // Say which problem this is. "No trace arrived" sends the user to look at
118
+ // their exporter; an unanswered probe means setup could not look at all,
119
+ // and pointing them at instrumentation would be a wild goose chase.
120
+ if (probe === "unknown") {
121
+ deps.prompter.line(COPY.VERIFY.unreachable(connection.endpoint));
97
122
  }
98
123
  if (headless) {
99
124
  deps.prompter.line(COPY.VERIFY.notVerifiedHeadless(url));
100
- return false;
125
+ return "notVerified";
101
126
  }
102
127
  const keepWatching = await deps.prompter.select({
103
128
  message: COPY.VERIFY.timeoutMessage,
@@ -112,7 +137,7 @@ export async function waitForFirstTrace(deps, connection, { sinceMs, allowClockS
112
137
  });
113
138
  if (!keepWatching) {
114
139
  deps.prompter.note(COPY.VERIFY.notVerifiedBody(url), COPY.VERIFY.notVerifiedTitle);
115
- return false;
140
+ return "deferred";
116
141
  }
117
142
  }
118
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTraces.js","sourceRoot":"","sources":["../../../src/setup/steps/verifyTraces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyTraces.js","sourceRoot":"","sources":["../../../src/setup/steps/verifyTraces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"writeEnvFile.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/writeEnvFile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAY5C,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAU7E;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC,EAC1C,UAAU,EAAE,UAAU,EACtB,EAAE,eAAe,EAAE,EAAE;IAAE,eAAe,EAAE,OAAO,CAAA;CAAE,GAChD,kBAAkB,CAmBpB"}
1
+ {"version":3,"file":"writeEnvFile.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/writeEnvFile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAY5C,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAa7E;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC,EAC1C,UAAU,EAAE,UAAU,EACtB,EAAE,eAAe,EAAE,EAAE;IAAE,eAAe,EAAE,OAAO,CAAA;CAAE,GAChD,kBAAkB,CAmBpB"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import * as fs from "node:fs";
9
9
  import * as path from "node:path";
10
+ import { connectionEnv } from "../agents/registry.js";
10
11
  import * as COPY from "../copy.js";
11
12
  import { ensureGitignored } from "../util/gitignoreCoverage.js";
12
13
  export const ENV_FILE_NAME = ".env.phoenix";
@@ -20,14 +21,15 @@ function quoteEnvValue(value) {
20
21
  return `"${value.replace(/[\\"$`]/g, (char) => `\\${char}`)}"`;
21
22
  }
22
23
  export function renderEnvFile(connection, isoDate) {
24
+ // connectionEnv() owns the Connection → env-var mapping; this file only
25
+ // adds the header and shell quoting.
23
26
  const lines = [
24
27
  COPY.ENV_FILE.fileHeaderEnv(isoDate),
25
- `PHOENIX_COLLECTOR_ENDPOINT=${quoteEnvValue(connection.endpoint)}`,
26
- `PHOENIX_PROJECT_NAME=${quoteEnvValue(connection.projectName)}`,
28
+ "# Both are base URLs for the same server here — keep both. Tracing reads",
29
+ "# only PHOENIX_COLLECTOR_ENDPOINT, while the API clients and `px` read",
30
+ "# PHOENIX_ENDPOINT (falling back to the collector one when it is unset).",
31
+ ...Object.entries(connectionEnv(connection)).map(([key, value]) => `${key}=${quoteEnvValue(value)}`),
27
32
  ];
28
- if (connection.apiKey) {
29
- lines.push(`PHOENIX_API_KEY=${quoteEnvValue(connection.apiKey)}`);
30
- }
31
33
  return `${lines.join("\n")}\n`;
32
34
  }
33
35
  export function writeEnvFile(deps, connection, { isGitRepository }) {
@@ -1 +1 @@
1
- {"version":3,"file":"writeEnvFile.js","sourceRoot":"","sources":["../../../src/setup/steps/writeEnvFile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAsB,EAAE,OAAe;IACnE,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QACpC,8BAA8B,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAClE,wBAAwB,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;KAChE,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,mBAAmB,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAOD,MAAM,UAAU,YAAY,CAC1B,IAA0C,EAC1C,UAAsB,EACtB,EAAE,eAAe,EAAgC;IAEjD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE/D,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;QAChE,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,wEAAwE;IACxE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEjC,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;QAC3B,SAAS,EAAE,CAAC,aAAa,CAAC;QAC1B,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"writeEnvFile.js","sourceRoot":"","sources":["../../../src/setup/steps/writeEnvFile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAsB,EAAE,OAAe;IACnE,wEAAwE;IACxE,qCAAqC;IACrC,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QACpC,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAC9C,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CACnD;KACF,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAOD,MAAM,UAAU,YAAY,CAC1B,IAA0C,EAC1C,UAAsB,EACtB,EAAE,eAAe,EAAgC;IAEjD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE/D,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;QAChE,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,wEAAwE;IACxE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEjC,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;QAC3B,SAAS,EAAE,CAAC,aAAa,CAAC;QAC1B,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC"}