@arizeai/phoenix-cli 1.9.0 → 1.10.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 (119) hide show
  1. package/README.md +82 -7
  2. package/build/authFetch.d.ts +24 -0
  3. package/build/authFetch.d.ts.map +1 -0
  4. package/build/authFetch.js +44 -0
  5. package/build/authFetch.js.map +1 -0
  6. package/build/client.d.ts.map +1 -1
  7. package/build/client.js +5 -1
  8. package/build/client.js.map +1 -1
  9. package/build/commands/api.d.ts.map +1 -1
  10. package/build/commands/api.js +12 -1
  11. package/build/commands/api.js.map +1 -1
  12. package/build/commands/auth.d.ts +4 -1
  13. package/build/commands/auth.d.ts.map +1 -1
  14. package/build/commands/auth.js +326 -13
  15. package/build/commands/auth.js.map +1 -1
  16. package/build/commands/formatSetup.d.ts +12 -0
  17. package/build/commands/formatSetup.d.ts.map +1 -1
  18. package/build/commands/formatSetup.js +32 -1
  19. package/build/commands/formatSetup.js.map +1 -1
  20. package/build/commands/setup.d.ts.map +1 -1
  21. package/build/commands/setup.js +14 -38
  22. package/build/commands/setup.js.map +1 -1
  23. package/build/commands/setupErrors.d.ts +10 -0
  24. package/build/commands/setupErrors.d.ts.map +1 -0
  25. package/build/commands/setupErrors.js +54 -0
  26. package/build/commands/setupErrors.js.map +1 -0
  27. package/build/commands/setupMcp.d.ts +15 -0
  28. package/build/commands/setupMcp.d.ts.map +1 -0
  29. package/build/commands/setupMcp.js +141 -0
  30. package/build/commands/setupMcp.js.map +1 -0
  31. package/build/config.d.ts +15 -0
  32. package/build/config.d.ts.map +1 -1
  33. package/build/config.js +54 -7
  34. package/build/config.js.map +1 -1
  35. package/build/exitCodes.d.ts +6 -0
  36. package/build/exitCodes.d.ts.map +1 -1
  37. package/build/exitCodes.js +18 -0
  38. package/build/exitCodes.js.map +1 -1
  39. package/build/index.js +2 -1
  40. package/build/index.js.map +1 -1
  41. package/build/oauth.d.ts +138 -0
  42. package/build/oauth.d.ts.map +1 -0
  43. package/build/oauth.js +465 -0
  44. package/build/oauth.js.map +1 -0
  45. package/build/oauthCallbackPage.d.ts +9 -0
  46. package/build/oauthCallbackPage.d.ts.map +1 -0
  47. package/build/oauthCallbackPage.js +111 -0
  48. package/build/oauthCallbackPage.js.map +1 -0
  49. package/build/pxi/client.d.ts.map +1 -1
  50. package/build/pxi/client.js +11 -2
  51. package/build/pxi/client.js.map +1 -1
  52. package/build/settings.d.ts +19 -0
  53. package/build/settings.d.ts.map +1 -1
  54. package/build/settings.js +21 -0
  55. package/build/settings.js.map +1 -1
  56. package/build/setup/agents/registry.d.ts +61 -0
  57. package/build/setup/agents/registry.d.ts.map +1 -1
  58. package/build/setup/agents/registry.js +52 -3
  59. package/build/setup/agents/registry.js.map +1 -1
  60. package/build/setup/copy.d.ts +32 -0
  61. package/build/setup/copy.d.ts.map +1 -1
  62. package/build/setup/copy.js +44 -0
  63. package/build/setup/copy.js.map +1 -1
  64. package/build/setup/deps/buildDefaultDeps.d.ts.map +1 -1
  65. package/build/setup/deps/buildDefaultDeps.js +2 -0
  66. package/build/setup/deps/buildDefaultDeps.js.map +1 -1
  67. package/build/setup/deps/index.d.ts +4 -0
  68. package/build/setup/deps/index.d.ts.map +1 -1
  69. package/build/setup/deps/index.js.map +1 -1
  70. package/build/setup/deps/oauthLogin.d.ts +64 -0
  71. package/build/setup/deps/oauthLogin.d.ts.map +1 -0
  72. package/build/setup/deps/oauthLogin.js +82 -0
  73. package/build/setup/deps/oauthLogin.js.map +1 -0
  74. package/build/setup/deps/prompter.d.ts +7 -0
  75. package/build/setup/deps/prompter.d.ts.map +1 -1
  76. package/build/setup/mcp/agents.d.ts +91 -0
  77. package/build/setup/mcp/agents.d.ts.map +1 -0
  78. package/build/setup/mcp/agents.js +265 -0
  79. package/build/setup/mcp/agents.js.map +1 -0
  80. package/build/setup/mcp/install.d.ts +34 -0
  81. package/build/setup/mcp/install.d.ts.map +1 -0
  82. package/build/setup/mcp/install.js +76 -0
  83. package/build/setup/mcp/install.js.map +1 -0
  84. package/build/setup/mcp/runSetupMcp.d.ts +68 -0
  85. package/build/setup/mcp/runSetupMcp.d.ts.map +1 -0
  86. package/build/setup/mcp/runSetupMcp.js +235 -0
  87. package/build/setup/mcp/runSetupMcp.js.map +1 -0
  88. package/build/setup/options.d.ts +11 -0
  89. package/build/setup/options.d.ts.map +1 -1
  90. package/build/setup/options.js +1 -0
  91. package/build/setup/options.js.map +1 -1
  92. package/build/setup/prompts/instrumentationPrompt.d.ts +7 -1
  93. package/build/setup/prompts/instrumentationPrompt.d.ts.map +1 -1
  94. package/build/setup/prompts/instrumentationPrompt.js +6 -2
  95. package/build/setup/prompts/instrumentationPrompt.js.map +1 -1
  96. package/build/setup/runSetup.d.ts +3 -0
  97. package/build/setup/runSetup.d.ts.map +1 -1
  98. package/build/setup/runSetup.js +13 -12
  99. package/build/setup/runSetup.js.map +1 -1
  100. package/build/setup/steps/establishConnection.d.ts +6 -3
  101. package/build/setup/steps/establishConnection.d.ts.map +1 -1
  102. package/build/setup/steps/establishConnection.js +120 -11
  103. package/build/setup/steps/establishConnection.js.map +1 -1
  104. package/build/setup/steps/instrumentApp.d.ts +23 -4
  105. package/build/setup/steps/instrumentApp.d.ts.map +1 -1
  106. package/build/setup/steps/instrumentApp.js +89 -41
  107. package/build/setup/steps/instrumentApp.js.map +1 -1
  108. package/build/setup/steps/offerDocsMcp.d.ts +48 -0
  109. package/build/setup/steps/offerDocsMcp.d.ts.map +1 -0
  110. package/build/setup/steps/offerDocsMcp.js +134 -0
  111. package/build/setup/steps/offerDocsMcp.js.map +1 -0
  112. package/build/setup/ui/clackPrompter.d.ts.map +1 -1
  113. package/build/setup/ui/clackPrompter.js +15 -0
  114. package/build/setup/ui/clackPrompter.js.map +1 -1
  115. package/build/setup/util/mcpConfig.d.ts +38 -0
  116. package/build/setup/util/mcpConfig.d.ts.map +1 -0
  117. package/build/setup/util/mcpConfig.js +64 -0
  118. package/build/setup/util/mcpConfig.js.map +1 -0
  119. package/package.json +3 -3
package/README.md CHANGED
@@ -43,7 +43,7 @@ export PHOENIX_PROJECT=my-project
43
43
  export PHOENIX_API_KEY=your-api-key # if authentication is enabled
44
44
  ```
45
45
 
46
- CLI flags (`--endpoint`, `--project`, `--api-key`) override environment variables.
46
+ CLI flags (`--endpoint`, `--project`, `--api-key`) override environment variables. For interactive local use, `px auth login` stores an OAuth session in your active profile; the session acts with the permissions of the user who logged in. API keys take precedence when both are configured.
47
47
 
48
48
  | Variable | Description |
49
49
  | ---------------------------------------- | --------------------------------------------- |
@@ -78,7 +78,7 @@ px profile edit prod # open in $EDITOR, validates on save
78
78
  px profile delete prod # remove a profile (--yes to skip prompt)
79
79
  ```
80
80
 
81
- Pass `--profile <name>` to `auth status` to scope a single invocation to a profile other than the active one.
81
+ Pass `--profile <name>` to `auth login`, `auth logout`, or `auth status` to scope a single invocation to a profile other than the active one.
82
82
 
83
83
  ### Editor autocompletion via `$schema`
84
84
 
@@ -148,6 +148,14 @@ hands a coding agent (Claude Code, Codex, Cursor, OpenCode) an instrumentation
148
148
  task and waits until a real trace appears. After that it can point `px` at the
149
149
  new project and install Phoenix skills so the agent can query what you captured.
150
150
 
151
+ Along the way it offers to connect the Phoenix docs MCP server to the agent
152
+ doing the hand-off — through the agent's own CLI where it has one (`claude mcp
153
+ add`), else its per-project config file (`.cursor/mcp.json`, `opencode.json`).
154
+ Taking the offer skips the `.px/docs` download entirely — the agent searches
155
+ the docs on demand instead, which is faster to set up and cheaper in tokens.
156
+ Any failure falls back to the download. Pass `--docs-mcp` to take the offer
157
+ without being asked, `--no-docs-mcp` to never ask.
158
+
151
159
  For CI or agents, pass flags instead of answering prompts:
152
160
 
153
161
  ```bash
@@ -156,6 +164,9 @@ px setup --no-input --endpoint http://localhost:6006 --project my-app
156
164
 
157
165
  # Instrument too — requires --agent when there's no TTY to choose one
158
166
  px setup --no-input --instrument --agent claude --yolo --language python --format raw
167
+
168
+ # Same, but connect the docs MCP instead of downloading the docs
169
+ px setup --no-input --instrument --agent claude --yolo --docs-mcp --format raw
159
170
  ```
160
171
 
161
172
  Re-run pieces later with:
@@ -165,6 +176,34 @@ px setup instrument --agent codex # instrument and verify again
165
176
  px setup skills # install coding-agent skills only
166
177
  ```
167
178
 
179
+ #### `px setup mcp`
180
+
181
+ Register the Phoenix **remote MCP server** (`<endpoint>/mcp`) with a coding
182
+ agent, so the agent can search, query, and operate on your Phoenix data. The
183
+ endpoint is inferred from `--endpoint`, the active profile, or `PHOENIX_HOST` —
184
+ you never re-type it.
185
+
186
+ ```bash
187
+ px setup mcp # pick scope (global default) + agent, interactively
188
+ px setup mcp --agent codex # configure one agent
189
+ px setup mcp --agent claude --local # write this repo's config (.mcp.json)
190
+ ```
191
+
192
+ Supported agents: `claude`, `codex`, `gemini`, `cursor`, `opencode`, `vscode`.
193
+ Where an agent ships an `mcp add` (Claude, Codex, Gemini, VS Code global) the
194
+ CLI drives it; the rest get a merge into their config file (`~/.cursor/mcp.json`,
195
+ `~/.config/opencode/opencode.json`, `.vscode/mcp.json`). Scope is `--global`
196
+ (user-wide, the default) or `--local` (this repo — Codex is global-only).
197
+
198
+ Auth defaults to **OAuth**: the config is URL-only and the agent opens Phoenix's
199
+ browser login on first use. For headless clients, pass an API-key bearer header
200
+ with `--header` (repeatable):
201
+
202
+ ```bash
203
+ px setup mcp --agent codex --no-input --format raw
204
+ px setup mcp --agent claude --header 'Authorization: Bearer ${PHOENIX_API_KEY}'
205
+ ```
206
+
168
207
  ---
169
208
 
170
209
  ### `px self update`
@@ -703,19 +742,55 @@ px annotation-config get response-quality --format raw --no-progress | jq -r '.i
703
742
 
704
743
  ---
705
744
 
745
+ ### `px auth login`
746
+
747
+ Log in with the browser-based OAuth flow and store tokens on the selected profile. The URL is always printed to stderr, so SSH and headless users can open it manually. OAuth CLI sessions act with the permissions of the user who logged in.
748
+
749
+ The CLI refreshes expiring access tokens automatically for REST, GraphQL, and
750
+ PXI requests. A request rejected with `401` triggers one refresh and retry;
751
+ rotated tokens are persisted back to the selected profile.
752
+
753
+ ```bash
754
+ px auth login
755
+ px auth login --no-browser
756
+ px auth login --profile staging --format raw
757
+ ```
758
+
759
+ | Option | Description | Default |
760
+ | ------------------- | -------------------------------------- | -------- |
761
+ | `--endpoint <url>` | Phoenix API endpoint | — |
762
+ | `--api-key <key>` | Phoenix API key | — |
763
+ | `--profile <name>` | Profile to store OAuth tokens in | active |
764
+ | `--no-browser` | Print URL without opening a browser | — |
765
+ | `--no-input` | Do not prompt for pasted redirect URLs | — |
766
+ | `--format <format>` | `pretty`, `json`, or `raw` | `pretty` |
767
+
768
+ ### `px auth logout`
769
+
770
+ Clear OAuth tokens from the selected profile. Logout best-effort revokes the refresh token on the server and leaves any configured API key untouched.
771
+
772
+ ```bash
773
+ px auth logout
774
+ px auth logout --profile staging
775
+ px auth logout --format raw
776
+ ```
777
+
706
778
  ### `px auth status`
707
779
 
708
- Show current Phoenix authentication status, including the configured endpoint, whether you are authenticated or anonymous, and an obscured API key.
780
+ Show current Phoenix authentication status, including the configured endpoint, credential source, identity, and OAuth access level/expiry when applicable.
709
781
 
710
782
  ```bash
711
783
  px auth status
712
784
  px auth status --endpoint http://localhost:6006
785
+ px auth status --profile staging --format raw
713
786
  ```
714
787
 
715
- | Option | Description | Default |
716
- | ------------------ | -------------------- | ------- |
717
- | `--endpoint <url>` | Phoenix API endpoint | — |
718
- | `--api-key <key>` | Phoenix API key | — |
788
+ | Option | Description | Default |
789
+ | ------------------- | -------------------------- | -------- |
790
+ | `--endpoint <url>` | Phoenix API endpoint | — |
791
+ | `--api-key <key>` | Phoenix API key | — |
792
+ | `--profile <name>` | Profile to use | active |
793
+ | `--format <format>` | `pretty`, `json`, or `raw` | `pretty` |
719
794
 
720
795
  ---
721
796
 
@@ -0,0 +1,24 @@
1
+ import type { PhoenixConfig } from "./config.js";
2
+ import type { OAuthTokens } from "./settings.js";
3
+ type OAuthConfig = PhoenixConfig & {
4
+ endpoint: string;
5
+ oauthTokens: OAuthTokens;
6
+ profileName: string;
7
+ };
8
+ export declare function hasOAuthCredentials(config: PhoenixConfig): config is OAuthConfig;
9
+ /**
10
+ * Create a fetch implementation backed by the OAuth session in a CLI profile.
11
+ * Refreshed tokens are persisted by the profile token provider.
12
+ *
13
+ * @param options - OAuth fetch configuration.
14
+ * @param options.config - Resolved CLI config containing an OAuth session.
15
+ * @param options.fetch - Fetch implementation used to send requests.
16
+ * @param options.settingsPath - Optional settings path override for tests.
17
+ */
18
+ export declare function createOAuthFetch({ config, fetch: fetchImpl, settingsPath, }: {
19
+ config: OAuthConfig;
20
+ fetch?: typeof fetch;
21
+ settingsPath?: string;
22
+ }): typeof fetch;
23
+ export {};
24
+ //# sourceMappingURL=authFetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authFetch.d.ts","sourceRoot":"","sources":["../src/authFetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,WAAW,GAAG,aAAa,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,GACpB,MAAM,IAAI,WAAW,CAEvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,KAAK,EAAE,SAAiB,EACxB,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,KAAK,CA4Bf"}
@@ -0,0 +1,44 @@
1
+ import { createAuthFetch } from "@arizeai/phoenix-client";
2
+ import { AuthRequiredError } from "./exitCodes.js";
3
+ import { isOAuthTokenExpiring, refreshOAuthTokensForProfile } from "./oauth.js";
4
+ export function hasOAuthCredentials(config) {
5
+ return Boolean(config.endpoint && config.oauthTokens && config.profileName);
6
+ }
7
+ /**
8
+ * Create a fetch implementation backed by the OAuth session in a CLI profile.
9
+ * Refreshed tokens are persisted by the profile token provider.
10
+ *
11
+ * @param options - OAuth fetch configuration.
12
+ * @param options.config - Resolved CLI config containing an OAuth session.
13
+ * @param options.fetch - Fetch implementation used to send requests.
14
+ * @param options.settingsPath - Optional settings path override for tests.
15
+ */
16
+ export function createOAuthFetch({ config, fetch: fetchImpl = fetch, settingsPath, }) {
17
+ let tokens = config.oauthTokens;
18
+ const authFetch = createAuthFetch({
19
+ fetch: fetchImpl,
20
+ getAccessToken: async ({ forceRefresh }) => {
21
+ if (forceRefresh || isOAuthTokenExpiring({ tokens })) {
22
+ tokens = await refreshOAuthTokensForProfile({
23
+ endpoint: config.endpoint,
24
+ profileName: config.profileName,
25
+ currentTokens: tokens,
26
+ force: forceRefresh,
27
+ fetchImpl,
28
+ settingsPath,
29
+ });
30
+ }
31
+ return tokens.accessToken;
32
+ },
33
+ onUnauthorized: () => {
34
+ throw new AuthRequiredError("Session expired. Run: px auth login");
35
+ },
36
+ });
37
+ return function oauthFetch(input, init) {
38
+ const request = new Request(input, init);
39
+ const headers = new Headers(config.headers);
40
+ request.headers.forEach((value, key) => headers.set(key, value));
41
+ return authFetch(new Request(request, { headers }));
42
+ };
43
+ }
44
+ //# sourceMappingURL=authFetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authFetch.js","sourceRoot":"","sources":["../src/authFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAS7E,MAAM,UAAU,mBAAmB,CACjC,MAAqB;IAErB,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,KAAK,EAAE,SAAS,GAAG,KAAK,EACxB,YAAY,GAKb;IACC,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;IAChC,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;YACzC,IAAI,YAAY,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBACrD,MAAM,GAAG,MAAM,4BAA4B,CAAC;oBAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,aAAa,EAAE,MAAM;oBACrB,KAAK,EAAE,YAAY;oBACnB,SAAS;oBACT,YAAY;iBACb,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,CAAC;QACD,cAAc,EAAE,GAAG,EAAE;YACnB,MAAM,IAAI,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;QACrE,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,SAAS,UAAU,CAAC,KAAwB,EAAE,IAAkB;QACrE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,KAAK,GACN,EAAE,0BAA0B,GAAG,aAAa,CAsB5C;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAWD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,iBAAiB,GAClB,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B3C;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAWD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,iBAAiB,GAClB,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC3C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,KAAK,GACN,EAAE,0BAA0B,GAAG,aAAa,CAwB5C;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAWD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,iBAAiB,GAClB,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B3C;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAWD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,iBAAiB,GAClB,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC3C"}
package/build/client.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { createClient } from "@arizeai/phoenix-client";
2
+ import { createOAuthFetch, hasOAuthCredentials } from "./authFetch.js";
2
3
  /**
3
4
  * Create a Phoenix client from configuration
4
5
  */
@@ -13,11 +14,14 @@ export function createPhoenixClient({ config, fetch, }) {
13
14
  if (config.apiKey) {
14
15
  headers["Authorization"] = `Bearer ${config.apiKey}`;
15
16
  }
17
+ else if (config.oauthTokens) {
18
+ headers["Authorization"] = `Bearer ${config.oauthTokens.accessToken}`;
19
+ }
16
20
  return createClient({
17
21
  options: {
18
22
  baseUrl,
19
23
  headers,
20
- fetch,
24
+ fetch: hasOAuthCredentials(config) ? createOAuthFetch({ config }) : fetch,
21
25
  },
22
26
  });
23
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO/C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAGhE;AAyBD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAM,GACP,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;CACvB,GAAG,iBAAiB,CAepB;AA6ID,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO/C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAGhE;AAyBD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAM,GACP,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;CACvB,GAAG,iBAAiB,CAiBpB;AAoJD,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C"}
@@ -1,4 +1,5 @@
1
1
  import { Command } from "commander";
2
+ import { createOAuthFetch, hasOAuthCredentials } from "../authFetch.js";
2
3
  import { getConfigErrorMessage, resolveConfig } from "../config.js";
3
4
  import { renderCurlCommand } from "../curl.js";
4
5
  import { ExitCode, getExitCodeForError } from "../exitCodes.js";
@@ -23,6 +24,9 @@ export function buildGraphqlRequest({ query, config, }) {
23
24
  if (config.apiKey) {
24
25
  headers["Authorization"] = `Bearer ${config.apiKey}`;
25
26
  }
27
+ else if (config.oauthTokens) {
28
+ headers["Authorization"] = `Bearer ${config.oauthTokens.accessToken}`;
29
+ }
26
30
  return {
27
31
  url: `${config.endpoint?.replace(/\/$/, "")}/graphql`,
28
32
  method: "POST",
@@ -76,7 +80,10 @@ async function apiGraphqlHandler(query, options) {
76
80
  return;
77
81
  }
78
82
  // 4. POST using Node 22 built-in fetch
79
- const response = await fetch(request.url, {
83
+ const apiFetch = hasOAuthCredentials(config)
84
+ ? createOAuthFetch({ config })
85
+ : fetch;
86
+ const response = await apiFetch(request.url, {
80
87
  method: request.method,
81
88
  headers: request.headers,
82
89
  body: request.body,
@@ -85,6 +92,10 @@ async function apiGraphqlHandler(query, options) {
85
92
  writeError({
86
93
  message: `Error: HTTP ${response.status} ${response.statusText} from ${request.url}`,
87
94
  });
95
+ if (response.status === 401 && config.credentialSource === "oauth") {
96
+ writeError({ message: "Session expired. Run: px auth login" });
97
+ process.exit(ExitCode.AUTH_REQUIRED);
98
+ }
88
99
  if (response.status === 401 || response.status === 403) {
89
100
  process.exit(ExitCode.AUTH_REQUIRED);
90
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { type componentsV1 } from "@arizeai/phoenix-client";
2
2
  import { Command } from "commander";
3
+ import { type PhoenixConfig } from "../config.js";
4
+ import { type OAuthTokens } from "../settings.js";
5
+ import type { OutputFormat } from "./formatProfiles.js";
3
6
  type ViewerUser = componentsV1["schemas"]["GetViewerResponseBody"]["data"];
4
7
  /**
5
8
  * Obscure an API key for display using asterisks.
@@ -18,7 +21,7 @@ export type FetchViewerResult = FetchViewerSuccess | FetchViewerError;
18
21
  /**
19
22
  * Format auth status output in gh-style format.
20
23
  */
21
- export declare function formatAuthStatus(endpoint: string, result: FetchViewerResult, apiKey?: string, profileName?: string): string;
24
+ export declare function formatAuthStatus(endpoint: string, result: FetchViewerResult, apiKey?: string, profileName?: string, credentialSource?: PhoenixConfig["credentialSource"], oauthTokens?: OAuthTokens, format?: OutputFormat): string;
22
25
  /**
23
26
  * Create the auth command with subcommands
24
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,KAAK,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAiB3E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AA+BtE;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAqCR;AAqFD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,WAAW,CAAC;AAe9D,OAAO,EACL,KAAK,WAAW,EAQjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,KAAK,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAkC3E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAiCtE;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,gBAAgB,GAAE,aAAa,CAAC,kBAAkB,CAExC,EACV,WAAW,CAAC,EAAE,WAAW,EACzB,MAAM,GAAE,YAAuB,GAC9B,MAAM,CAsDR;AA2dD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAW3C"}