@arizeai/phoenix-cli 1.8.1 → 1.9.1

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 (281) hide show
  1. package/README.md +88 -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/cli.d.ts.map +1 -1
  7. package/build/cli.js +2 -1
  8. package/build/cli.js.map +1 -1
  9. package/build/client.d.ts +5 -1
  10. package/build/client.d.ts.map +1 -1
  11. package/build/client.js +6 -1
  12. package/build/client.js.map +1 -1
  13. package/build/commands/annotationConfig.d.ts.map +1 -1
  14. package/build/commands/annotationConfig.js.map +1 -1
  15. package/build/commands/{annotationMutationUtils.d.ts → annotationMutations.d.ts} +1 -1
  16. package/build/commands/annotationMutations.d.ts.map +1 -0
  17. package/build/commands/{annotationMutationUtils.js → annotationMutations.js} +1 -1
  18. package/build/commands/annotationMutations.js.map +1 -0
  19. package/build/commands/api.d.ts.map +1 -1
  20. package/build/commands/api.js +12 -1
  21. package/build/commands/api.js.map +1 -1
  22. package/build/commands/auth.d.ts +5 -2
  23. package/build/commands/auth.d.ts.map +1 -1
  24. package/build/commands/auth.js +332 -25
  25. package/build/commands/auth.js.map +1 -1
  26. package/build/commands/dataset.d.ts.map +1 -1
  27. package/build/commands/dataset.js.map +1 -1
  28. package/build/commands/docs.d.ts +51 -0
  29. package/build/commands/docs.d.ts.map +1 -1
  30. package/build/commands/docs.js +86 -37
  31. package/build/commands/docs.js.map +1 -1
  32. package/build/commands/experiment.d.ts.map +1 -1
  33. package/build/commands/experiment.js.map +1 -1
  34. package/build/commands/fetchSpanAnnotations.d.ts +14 -0
  35. package/build/commands/fetchSpanAnnotations.d.ts.map +1 -0
  36. package/build/commands/fetchSpanAnnotations.js +57 -0
  37. package/build/commands/fetchSpanAnnotations.js.map +1 -0
  38. package/build/commands/fetchTraceAnnotations.d.ts +14 -0
  39. package/build/commands/fetchTraceAnnotations.d.ts.map +1 -0
  40. package/build/commands/fetchTraceAnnotations.js +57 -0
  41. package/build/commands/fetchTraceAnnotations.js.map +1 -0
  42. package/build/commands/formatAnnotationMutation.d.ts +1 -1
  43. package/build/commands/formatAnnotationMutation.d.ts.map +1 -1
  44. package/build/commands/formatNoteMutation.d.ts +1 -1
  45. package/build/commands/formatNoteMutation.d.ts.map +1 -1
  46. package/build/commands/formatSetup.d.ts +56 -0
  47. package/build/commands/formatSetup.d.ts.map +1 -0
  48. package/build/commands/formatSetup.js +73 -0
  49. package/build/commands/formatSetup.js.map +1 -0
  50. package/build/commands/index.d.ts +4 -3
  51. package/build/commands/index.d.ts.map +1 -1
  52. package/build/commands/index.js +4 -3
  53. package/build/commands/index.js.map +1 -1
  54. package/build/commands/{noteMutationUtils.d.ts → noteMutations.d.ts} +1 -1
  55. package/build/commands/noteMutations.d.ts.map +1 -0
  56. package/build/commands/{noteMutationUtils.js → noteMutations.js} +1 -1
  57. package/build/commands/noteMutations.js.map +1 -0
  58. package/build/commands/options.d.ts +248 -0
  59. package/build/commands/options.d.ts.map +1 -0
  60. package/build/commands/options.js +16 -0
  61. package/build/commands/options.js.map +1 -0
  62. package/build/commands/profile.d.ts.map +1 -1
  63. package/build/commands/profile.js +3 -11
  64. package/build/commands/profile.js.map +1 -1
  65. package/build/commands/project.d.ts.map +1 -1
  66. package/build/commands/project.js +0 -1
  67. package/build/commands/project.js.map +1 -1
  68. package/build/commands/prompt.d.ts.map +1 -1
  69. package/build/commands/prompt.js.map +1 -1
  70. package/build/commands/self.d.ts.map +1 -1
  71. package/build/commands/self.js.map +1 -1
  72. package/build/commands/session.d.ts.map +1 -1
  73. package/build/commands/session.js +4 -4
  74. package/build/commands/session.js.map +1 -1
  75. package/build/commands/{sessionAnnotationsCommand.d.ts → sessionAnnotations.d.ts} +1 -1
  76. package/build/commands/sessionAnnotations.d.ts.map +1 -0
  77. package/build/commands/{sessionAnnotationsCommand.js → sessionAnnotations.js} +1 -1
  78. package/build/commands/sessionAnnotations.js.map +1 -0
  79. package/build/commands/setup.d.ts +19 -0
  80. package/build/commands/setup.d.ts.map +1 -0
  81. package/build/commands/setup.js +249 -0
  82. package/build/commands/setup.js.map +1 -0
  83. package/build/commands/span.d.ts.map +1 -1
  84. package/build/commands/span.js +5 -5
  85. package/build/commands/span.js.map +1 -1
  86. package/build/commands/spanAnnotations.d.ts +6 -13
  87. package/build/commands/spanAnnotations.d.ts.map +1 -1
  88. package/build/commands/spanAnnotations.js +154 -47
  89. package/build/commands/spanAnnotations.js.map +1 -1
  90. package/build/commands/trace.d.ts.map +1 -1
  91. package/build/commands/trace.js +6 -6
  92. package/build/commands/trace.js.map +1 -1
  93. package/build/commands/traceAnnotations.d.ts +6 -13
  94. package/build/commands/traceAnnotations.d.ts.map +1 -1
  95. package/build/commands/traceAnnotations.js +157 -47
  96. package/build/commands/traceAnnotations.js.map +1 -1
  97. package/build/config.d.ts +15 -0
  98. package/build/config.d.ts.map +1 -1
  99. package/build/config.js +54 -7
  100. package/build/config.js.map +1 -1
  101. package/build/curl.d.ts +17 -0
  102. package/build/curl.d.ts.map +1 -1
  103. package/build/curl.js.map +1 -1
  104. package/build/exitCodes.d.ts +6 -0
  105. package/build/exitCodes.d.ts.map +1 -1
  106. package/build/exitCodes.js +18 -0
  107. package/build/exitCodes.js.map +1 -1
  108. package/build/index.js +2 -1
  109. package/build/index.js.map +1 -1
  110. package/build/oauth.d.ts +138 -0
  111. package/build/oauth.d.ts.map +1 -0
  112. package/build/oauth.js +465 -0
  113. package/build/oauth.js.map +1 -0
  114. package/build/oauthCallbackPage.d.ts +9 -0
  115. package/build/oauthCallbackPage.d.ts.map +1 -0
  116. package/build/oauthCallbackPage.js +111 -0
  117. package/build/oauthCallbackPage.js.map +1 -0
  118. package/build/optionParsers.d.ts +12 -0
  119. package/build/optionParsers.d.ts.map +1 -1
  120. package/build/optionParsers.js +15 -0
  121. package/build/optionParsers.js.map +1 -1
  122. package/build/pxi/App.d.ts.map +1 -1
  123. package/build/pxi/App.js +4 -0
  124. package/build/pxi/App.js.map +1 -1
  125. package/build/pxi/client.d.ts.map +1 -1
  126. package/build/pxi/client.js +11 -2
  127. package/build/pxi/client.js.map +1 -1
  128. package/build/pxi/options.d.ts +98 -0
  129. package/build/pxi/options.d.ts.map +1 -1
  130. package/build/pxi/options.js.map +1 -1
  131. package/build/settings.d.ts +19 -0
  132. package/build/settings.d.ts.map +1 -1
  133. package/build/settings.js +25 -0
  134. package/build/settings.js.map +1 -1
  135. package/build/setup/agents/registry.d.ts +135 -0
  136. package/build/setup/agents/registry.d.ts.map +1 -0
  137. package/build/setup/agents/registry.js +174 -0
  138. package/build/setup/agents/registry.js.map +1 -0
  139. package/build/setup/copy.d.ts +199 -0
  140. package/build/setup/copy.d.ts.map +1 -0
  141. package/build/setup/copy.js +334 -0
  142. package/build/setup/copy.js.map +1 -0
  143. package/build/setup/deps/buildDefaultDeps.d.ts +13 -0
  144. package/build/setup/deps/buildDefaultDeps.d.ts.map +1 -0
  145. package/build/setup/deps/buildDefaultDeps.js +31 -0
  146. package/build/setup/deps/buildDefaultDeps.js.map +1 -0
  147. package/build/setup/deps/clipboard.d.ts +12 -0
  148. package/build/setup/deps/clipboard.d.ts.map +1 -0
  149. package/build/setup/deps/clipboard.js +30 -0
  150. package/build/setup/deps/clipboard.js.map +1 -0
  151. package/build/setup/deps/clock.d.ts +10 -0
  152. package/build/setup/deps/clock.d.ts.map +1 -0
  153. package/build/setup/deps/clock.js +11 -0
  154. package/build/setup/deps/clock.js.map +1 -0
  155. package/build/setup/deps/context.d.ts +28 -0
  156. package/build/setup/deps/context.d.ts.map +1 -0
  157. package/build/setup/deps/context.js +24 -0
  158. package/build/setup/deps/context.js.map +1 -0
  159. package/build/setup/deps/docs.d.ts +41 -0
  160. package/build/setup/deps/docs.d.ts.map +1 -0
  161. package/build/setup/deps/docs.js +33 -0
  162. package/build/setup/deps/docs.js.map +1 -0
  163. package/build/setup/deps/index.d.ts +46 -0
  164. package/build/setup/deps/index.d.ts.map +1 -0
  165. package/build/setup/deps/index.js +16 -0
  166. package/build/setup/deps/index.js.map +1 -0
  167. package/build/setup/deps/oauthLogin.d.ts +64 -0
  168. package/build/setup/deps/oauthLogin.d.ts.map +1 -0
  169. package/build/setup/deps/oauthLogin.js +82 -0
  170. package/build/setup/deps/oauthLogin.js.map +1 -0
  171. package/build/setup/deps/phoenixClient.d.ts +22 -0
  172. package/build/setup/deps/phoenixClient.d.ts.map +1 -0
  173. package/build/setup/deps/phoenixClient.js +17 -0
  174. package/build/setup/deps/phoenixClient.js.map +1 -0
  175. package/build/setup/deps/processes.d.ts +28 -0
  176. package/build/setup/deps/processes.d.ts.map +1 -0
  177. package/build/setup/deps/processes.js +58 -0
  178. package/build/setup/deps/processes.js.map +1 -0
  179. package/build/setup/deps/prompter.d.ts +49 -0
  180. package/build/setup/deps/prompter.d.ts.map +1 -0
  181. package/build/setup/deps/prompter.js +10 -0
  182. package/build/setup/deps/prompter.js.map +1 -0
  183. package/build/setup/errors.d.ts +27 -0
  184. package/build/setup/errors.d.ts.map +1 -0
  185. package/build/setup/errors.js +36 -0
  186. package/build/setup/errors.js.map +1 -0
  187. package/build/setup/options.d.ts +124 -0
  188. package/build/setup/options.d.ts.map +1 -0
  189. package/build/setup/options.js +64 -0
  190. package/build/setup/options.js.map +1 -0
  191. package/build/setup/prompts/instrumentationPrompt.d.ts +48 -0
  192. package/build/setup/prompts/instrumentationPrompt.d.ts.map +1 -0
  193. package/build/setup/prompts/instrumentationPrompt.js +68 -0
  194. package/build/setup/prompts/instrumentationPrompt.js.map +1 -0
  195. package/build/setup/runSetup.d.ts +48 -0
  196. package/build/setup/runSetup.d.ts.map +1 -0
  197. package/build/setup/runSetup.js +213 -0
  198. package/build/setup/runSetup.js.map +1 -0
  199. package/build/setup/steps/chooseEndpoint.d.ts +36 -0
  200. package/build/setup/steps/chooseEndpoint.d.ts.map +1 -0
  201. package/build/setup/steps/chooseEndpoint.js +125 -0
  202. package/build/setup/steps/chooseEndpoint.js.map +1 -0
  203. package/build/setup/steps/confirmGitSafety.d.ts +17 -0
  204. package/build/setup/steps/confirmGitSafety.d.ts.map +1 -0
  205. package/build/setup/steps/confirmGitSafety.js +73 -0
  206. package/build/setup/steps/confirmGitSafety.js.map +1 -0
  207. package/build/setup/steps/establishConnection.d.ts +32 -0
  208. package/build/setup/steps/establishConnection.d.ts.map +1 -0
  209. package/build/setup/steps/establishConnection.js +252 -0
  210. package/build/setup/steps/establishConnection.js.map +1 -0
  211. package/build/setup/steps/installTooling.d.ts +28 -0
  212. package/build/setup/steps/installTooling.d.ts.map +1 -0
  213. package/build/setup/steps/installTooling.js +79 -0
  214. package/build/setup/steps/installTooling.js.map +1 -0
  215. package/build/setup/steps/instrumentApp.d.ts +60 -0
  216. package/build/setup/steps/instrumentApp.d.ts.map +1 -0
  217. package/build/setup/steps/instrumentApp.js +179 -0
  218. package/build/setup/steps/instrumentApp.js.map +1 -0
  219. package/build/setup/steps/offerDocsMcp.d.ts +48 -0
  220. package/build/setup/steps/offerDocsMcp.d.ts.map +1 -0
  221. package/build/setup/steps/offerDocsMcp.js +133 -0
  222. package/build/setup/steps/offerDocsMcp.js.map +1 -0
  223. package/build/setup/steps/offerPxProfile.d.ts +20 -0
  224. package/build/setup/steps/offerPxProfile.d.ts.map +1 -0
  225. package/build/setup/steps/offerPxProfile.js +95 -0
  226. package/build/setup/steps/offerPxProfile.js.map +1 -0
  227. package/build/setup/steps/prefetchDocs.d.ts +24 -0
  228. package/build/setup/steps/prefetchDocs.d.ts.map +1 -0
  229. package/build/setup/steps/prefetchDocs.js +49 -0
  230. package/build/setup/steps/prefetchDocs.js.map +1 -0
  231. package/build/setup/steps/verifyTraces.d.ts +44 -0
  232. package/build/setup/steps/verifyTraces.d.ts.map +1 -0
  233. package/build/setup/steps/verifyTraces.js +119 -0
  234. package/build/setup/steps/verifyTraces.js.map +1 -0
  235. package/build/setup/steps/writeEnvFile.d.ts +19 -0
  236. package/build/setup/steps/writeEnvFile.d.ts.map +1 -0
  237. package/build/setup/steps/writeEnvFile.js +50 -0
  238. package/build/setup/steps/writeEnvFile.js.map +1 -0
  239. package/build/setup/ui/clackPrompter.d.ts +11 -0
  240. package/build/setup/ui/clackPrompter.d.ts.map +1 -0
  241. package/build/setup/ui/clackPrompter.js +122 -0
  242. package/build/setup/ui/clackPrompter.js.map +1 -0
  243. package/build/setup/ui/selectBoolean.d.ts +18 -0
  244. package/build/setup/ui/selectBoolean.d.ts.map +1 -0
  245. package/build/setup/ui/selectBoolean.js +14 -0
  246. package/build/setup/ui/selectBoolean.js.map +1 -0
  247. package/build/setup/util/gitignoreCoverage.d.ts +24 -0
  248. package/build/setup/util/gitignoreCoverage.d.ts.map +1 -0
  249. package/build/setup/util/gitignoreCoverage.js +43 -0
  250. package/build/setup/util/gitignoreCoverage.js.map +1 -0
  251. package/build/setup/util/mcpConfig.d.ts +31 -0
  252. package/build/setup/util/mcpConfig.d.ts.map +1 -0
  253. package/build/setup/util/mcpConfig.js +62 -0
  254. package/build/setup/util/mcpConfig.js.map +1 -0
  255. package/build/setup/util/paths.d.ts +6 -0
  256. package/build/setup/util/paths.d.ts.map +1 -0
  257. package/build/setup/util/paths.js +23 -0
  258. package/build/setup/util/paths.js.map +1 -0
  259. package/build/setup/util/redact.d.ts +12 -0
  260. package/build/setup/util/redact.d.ts.map +1 -0
  261. package/build/setup/util/redact.js +31 -0
  262. package/build/setup/util/redact.js.map +1 -0
  263. package/build/validation/endpoint.d.ts +19 -0
  264. package/build/validation/endpoint.d.ts.map +1 -0
  265. package/build/validation/endpoint.js +39 -0
  266. package/build/validation/endpoint.js.map +1 -0
  267. package/package.json +15 -12
  268. package/build/commands/annotationMutationUtils.d.ts.map +0 -1
  269. package/build/commands/annotationMutationUtils.js.map +0 -1
  270. package/build/commands/noteMutationUtils.d.ts.map +0 -1
  271. package/build/commands/noteMutationUtils.js.map +0 -1
  272. package/build/commands/sessionAnnotationsCommand.d.ts.map +0 -1
  273. package/build/commands/sessionAnnotationsCommand.js.map +0 -1
  274. package/build/commands/spanAnnotationsCommand.d.ts +0 -7
  275. package/build/commands/spanAnnotationsCommand.d.ts.map +0 -1
  276. package/build/commands/spanAnnotationsCommand.js +0 -164
  277. package/build/commands/spanAnnotationsCommand.js.map +0 -1
  278. package/build/commands/traceAnnotationsCommand.d.ts +0 -7
  279. package/build/commands/traceAnnotationsCommand.d.ts.map +0 -1
  280. package/build/commands/traceAnnotationsCommand.js +0 -167
  281. package/build/commands/traceAnnotationsCommand.js.map +0 -1
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Merge an MCP server entry into an agent's project-scoped JSON config.
3
+ *
4
+ * A merge, never a rewrite: servers the user already has stay untouched, and
5
+ * an existing entry under the same server name is replaced — which is what
6
+ * makes a setup re-run idempotent. A file that exists but does not parse is
7
+ * refused rather than clobbered; the caller degrades to the docs download.
8
+ */
9
+ import * as fs from "node:fs";
10
+ import * as path from "node:path";
11
+ function isPlainObject(value) {
12
+ return typeof value === "object" && value !== null && !Array.isArray(value);
13
+ }
14
+ /**
15
+ * Both config shapes are container → server name → server config, so two
16
+ * levels of key-sets merge and everything below is replaced. Merging deeper
17
+ * would leave e.g. a `command` from an old stdio-style entry alongside the
18
+ * new `url` — a hybrid the agent may resolve to the stale command.
19
+ */
20
+ const MERGE_LEVELS = 2;
21
+ function mergeLevels(base, patch, levels) {
22
+ const merged = { ...base };
23
+ for (const [key, patchValue] of Object.entries(patch)) {
24
+ const baseValue = merged[key];
25
+ merged[key] =
26
+ levels > 1 && isPlainObject(baseValue) && isPlainObject(patchValue)
27
+ ? mergeLevels(baseValue, patchValue, levels - 1)
28
+ : patchValue;
29
+ }
30
+ return merged;
31
+ }
32
+ /** Thrown when the target file exists but is not a JSON object. */
33
+ export class McpConfigUnreadableError extends Error {
34
+ constructor(relativePath, detail) {
35
+ super(`${relativePath} exists but could not be parsed (${detail})`);
36
+ this.name = "McpConfigUnreadableError";
37
+ }
38
+ }
39
+ export function writeMcpConfig({ directory, relativePath, patch, createDefaults, }) {
40
+ const filePath = path.join(directory, relativePath);
41
+ let existing = createDefaults ?? {};
42
+ if (fs.existsSync(filePath)) {
43
+ let parsed;
44
+ try {
45
+ parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"));
46
+ }
47
+ catch (error) {
48
+ throw new McpConfigUnreadableError(relativePath, error instanceof Error ? error.message : String(error));
49
+ }
50
+ if (!isPlainObject(parsed)) {
51
+ throw new McpConfigUnreadableError(relativePath, "not a JSON object");
52
+ }
53
+ existing = parsed;
54
+ }
55
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
56
+ // Write-then-rename so a crash mid-write can never truncate a config the
57
+ // user already had.
58
+ const tempPath = `${filePath}.px-setup-tmp`;
59
+ fs.writeFileSync(tempPath, `${JSON.stringify(mergeLevels(existing, patch, MERGE_LEVELS), null, 2)}\n`, "utf-8");
60
+ fs.renameSync(tempPath, filePath);
61
+ }
62
+ //# sourceMappingURL=mcpConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfig.js","sourceRoot":"","sources":["../../../src/setup/util/mcpConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAoBlC,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,WAAW,CAClB,IAA6B,EAC7B,KAA8B,EAC9B,MAAc;IAEd,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC;YACT,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC;gBACjE,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;gBAChD,CAAC,CAAC,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,YAAoB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,YAAY,oCAAoC,MAAM,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,EACT,YAAY,EACZ,KAAK,EACL,cAAc,GACK;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEpD,IAAI,QAAQ,GAA4B,cAAc,IAAI,EAAE,CAAC;IAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAChC,YAAY,EACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,wBAAwB,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACxE,CAAC;QACD,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,GAAG,QAAQ,eAAe,CAAC;IAC5C,EAAE,CAAC,aAAa,CACd,QAAQ,EACR,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1E,OAAO,CACR,CAAC;IACF,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Path humanization for setup output: cwd-relative if under cwd, else
3
+ * ~/-relative, else basename.
4
+ */
5
+ export declare function humanizePath(target: string, cwd: string): string;
6
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/setup/util/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAehE"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Path humanization for setup output: cwd-relative if under cwd, else
3
+ * ~/-relative, else basename.
4
+ */
5
+ import * as os from "node:os";
6
+ import * as path from "node:path";
7
+ export function humanizePath(target, cwd) {
8
+ const absolute = path.resolve(cwd, target);
9
+ const cwdRelative = path.relative(cwd, absolute);
10
+ if (cwdRelative && !cwdRelative.startsWith("..")) {
11
+ return cwdRelative;
12
+ }
13
+ if (cwdRelative === "") {
14
+ return ".";
15
+ }
16
+ const home = os.homedir();
17
+ const homeRelative = path.relative(home, absolute);
18
+ if (homeRelative && !homeRelative.startsWith("..")) {
19
+ return `~/${homeRelative}`;
20
+ }
21
+ return path.basename(absolute);
22
+ }
23
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/setup/util/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,GAAW;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,YAAY,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Secret scrubbing for all surfaced subprocess / HTTP error text.
3
+ * Applied before anything from an external process or response body reaches
4
+ * the terminal.
5
+ */
6
+ export declare function redact(text: string): string;
7
+ /**
8
+ * Redact then truncate for display. All error text from probes, HTTP
9
+ * responses, and subprocesses goes through this before being shown.
10
+ */
11
+ export declare function redactForDisplay(text: string): string;
12
+ //# sourceMappingURL=redact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../src/setup/util/redact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM3C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Secret scrubbing for all surfaced subprocess / HTTP error text.
3
+ * Applied before anything from an external process or response body reaches
4
+ * the terminal.
5
+ */
6
+ const MAX_SURFACED_LENGTH = 500;
7
+ const BEARER_PATTERN = /Bearer\s+[A-Za-z0-9\-._~+/]+=*/g;
8
+ const API_KEY_ASSIGNMENT_PATTERN = /(PHOENIX_API_KEY\s*[=:]\s*)\S+/g;
9
+ // JWT: three dot-separated base64url segments.
10
+ const JWT_PATTERN = /[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g;
11
+ // Long bare base64url runs that look like tokens.
12
+ const LONG_TOKEN_PATTERN = /[A-Za-z0-9_-]{32,}/g;
13
+ export function redact(text) {
14
+ return text
15
+ .replace(BEARER_PATTERN, "Bearer [REDACTED]")
16
+ .replace(API_KEY_ASSIGNMENT_PATTERN, "$1[REDACTED]")
17
+ .replace(JWT_PATTERN, "[REDACTED]")
18
+ .replace(LONG_TOKEN_PATTERN, "[REDACTED]");
19
+ }
20
+ /**
21
+ * Redact then truncate for display. All error text from probes, HTTP
22
+ * responses, and subprocesses goes through this before being shown.
23
+ */
24
+ export function redactForDisplay(text) {
25
+ const scrubbed = redact(text).trim();
26
+ if (scrubbed.length <= MAX_SURFACED_LENGTH) {
27
+ return scrubbed;
28
+ }
29
+ return `${scrubbed.slice(0, MAX_SURFACED_LENGTH)}…`;
30
+ }
31
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../../src/setup/util/redact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,cAAc,GAAG,iCAAiC,CAAC;AACzD,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AACrE,+CAA+C;AAC/C,MAAM,WAAW,GAAG,0DAA0D,CAAC;AAC/E,kDAAkD;AAClD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,IAAI;SACR,OAAO,CAAC,cAAc,EAAE,mBAAmB,CAAC;SAC5C,OAAO,CAAC,0BAA0B,EAAE,cAAc,CAAC;SACnD,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC;SAClC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC;AACtD,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * What counts as a Phoenix endpoint: an absolute `http://` or `https://` URL.
3
+ *
4
+ * `new URL("localhost:6006")` *parses* — protocol `localhost:`, origin "null" —
5
+ * so a try/catch around `new URL` is not enough; the scheme has to be checked.
6
+ */
7
+ export declare const ENDPOINT_REQUIREMENT = "must be a full http:// or https:// URL (e.g. https://app.phoenix.arize.com or http://localhost:6006)";
8
+ /** Tolerates surrounding whitespace. */
9
+ export declare function isEndpointUrl(value: string): boolean;
10
+ /**
11
+ * Normalize to an origin (plus any path) with no trailing slash, so a pasted
12
+ * `http://localhost:6006/` and `http://localhost:6006` are the same endpoint
13
+ * downstream.
14
+ *
15
+ * @throws TypeError if `value` is not an endpoint URL. Call `isEndpointUrl`
16
+ * first where a message is wanted rather than a throw.
17
+ */
18
+ export declare function normalizeEndpoint(value: string): string;
19
+ //# sourceMappingURL=endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/validation/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,oBAAoB,yGACuE,CAAC;AAEzG,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * What counts as a Phoenix endpoint: an absolute `http://` or `https://` URL.
3
+ *
4
+ * `new URL("localhost:6006")` *parses* — protocol `localhost:`, origin "null" —
5
+ * so a try/catch around `new URL` is not enough; the scheme has to be checked.
6
+ */
7
+ export const ENDPOINT_REQUIREMENT = "must be a full http:// or https:// URL (e.g. https://app.phoenix.arize.com or http://localhost:6006)";
8
+ /** Tolerates surrounding whitespace. */
9
+ export function isEndpointUrl(value) {
10
+ return parseEndpointUrl(value) !== undefined;
11
+ }
12
+ /**
13
+ * Normalize to an origin (plus any path) with no trailing slash, so a pasted
14
+ * `http://localhost:6006/` and `http://localhost:6006` are the same endpoint
15
+ * downstream.
16
+ *
17
+ * @throws TypeError if `value` is not an endpoint URL. Call `isEndpointUrl`
18
+ * first where a message is wanted rather than a throw.
19
+ */
20
+ export function normalizeEndpoint(value) {
21
+ const url = parseEndpointUrl(value);
22
+ if (!url) {
23
+ throw new TypeError(`Endpoint ${ENDPOINT_REQUIREMENT}`);
24
+ }
25
+ return `${url.origin}${url.pathname.replace(/\/+$/, "")}`;
26
+ }
27
+ function parseEndpointUrl(value) {
28
+ let url;
29
+ try {
30
+ url = new URL(value.trim());
31
+ }
32
+ catch {
33
+ return undefined;
34
+ }
35
+ return url.protocol === "http:" || url.protocol === "https:"
36
+ ? url
37
+ : undefined;
38
+ }
39
+ //# sourceMappingURL=endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/validation/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,sGAAsG,CAAC;AAEzG,wCAAwC;AACxC,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,gBAAgB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,SAAS,CAAC,YAAY,oBAAoB,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QAC1D,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arizeai/phoenix-cli",
3
- "version": "1.8.1",
3
+ "version": "1.9.1",
4
4
  "description": "A command-line interface for Phoenix",
5
5
  "keywords": [
6
6
  "arize",
@@ -32,28 +32,31 @@
32
32
  "types": "build/index.d.ts",
33
33
  "dependencies": {
34
34
  "@arizeai/openinference-semantic-conventions": "^2.5.0",
35
- "@clack/prompts": "^1.6.0",
36
- "ai": "^6.0.219",
35
+ "@clack/prompts": "^1.7.0",
36
+ "ai": "^6.0.222",
37
37
  "commander": "^15.0.0",
38
- "ink": "^6.8.0",
39
- "marked": "^12.0.2",
38
+ "cross-spawn": "^7.0.6",
39
+ "ignore": "^7.0.5",
40
+ "ink": "^7.1.0",
41
+ "marked": "^18.0.6",
40
42
  "marked-terminal": "^7.3.0",
41
43
  "react": "19.2.7",
42
44
  "zod": "^4.4.3",
43
- "@arizeai/phoenix-client": "6.12.2",
44
- "@arizeai/phoenix-config": "0.3.0"
45
+ "@arizeai/phoenix-client": "6.14.0",
46
+ "@arizeai/phoenix-config": "0.4.0"
45
47
  },
46
48
  "devDependencies": {
47
- "@types/node": "^25.9.4",
49
+ "@types/cross-spawn": "^6.0.6",
50
+ "@types/node": "^26.1.1",
48
51
  "@types/react": "19.2.17",
49
52
  "ink-testing-library": "^4.0.0",
50
53
  "rimraf": "^6.1.3",
51
- "tsc-alias": "^1.8.17",
52
- "tsx": "^4.22.5",
53
- "vitest": "^4.1.9"
54
+ "tsc-alias": "^1.9.0",
55
+ "tsx": "^4.23.0",
56
+ "vitest": "^4.1.10"
54
57
  },
55
58
  "engines": {
56
- "node": ">=20"
59
+ "node": ">=22"
57
60
  },
58
61
  "scripts": {
59
62
  "build": "pnpm run build:schema && tsc && tsc-alias && chmod 755 build/index.js build/pxi/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"annotationMutationUtils.d.ts","sourceRoot":"","sources":["../../src/commands/annotationMutationUtils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,CAAC;CACH;AA6DD,wBAAgB,wBAAwB,CAAC,EACvC,UAAU,EACV,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,aAAa,GACd,EAAE;IACD,UAAU,EAAE,oBAAoB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,yBAAyB,CA4D5B;AAED,wBAAgB,6BAA6B,CAAC,EAC5C,EAAE,EACF,UAAU,EACV,QAAQ,EACR,eAAe,EACf,UAAU,GACX,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,yBAAyB,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,wBAAwB,CAY3B;AAED,wBAAgB,6BAA6B,CAAC,EAC5C,UAAU,GACX,EAAE;IACD,UAAU,EAAE,oBAAoB,CAAC;CAClC,GAAG,MAAM,CAQT;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAgB9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"annotationMutationUtils.js","sourceRoot":"","sources":["../../src/commands/annotationMutationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA8B5D,SAAS,sBAAsB,CAAC,EAC9B,UAAU,GAGX;IACC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC;QACxB;YACE,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,UAAU,GAGX;IACC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,OAAO;QACL,MAAM,UAAU,aAAa,mBAAmB,gCAAgC;QAChF,MAAM,UAAU,aAAa,mBAAmB,iCAAiC;QACjF,MAAM,UAAU,aAAa,mBAAmB,qCAAqC;KACtF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,EAC9B,UAAU,EACV,aAAa,GAId;IACC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,uBAAuB,GAAG,eAAe,CAAC;QAC9C,KAAK,EAAE,aAAa;KACrB,CAAC,EAAE,WAAW,EAAE,CAAC;IAClB,IACE,uBAAuB,KAAK,OAAO;QACnC,uBAAuB,KAAK,KAAK;QACjC,uBAAuB,KAAK,MAAM,EAClC,CAAC;QACD,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,oBAAoB,CAC5B,uCAAuC,aAAa,yCAAyC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAChI,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EACvC,UAAU,EACV,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,aAAa,GAQd;IACC,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,oBAAoB,CAC5B,oCAAoC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,IAAI,eAA8B,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,eAAe,GAAG,WAAW,CAAC;gBAC5B,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAoB,CAC5B,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;IAClE,MAAM,qBAAqB,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;IAC9E,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;QACrD,UAAU;QACV,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,SAAS,GACb,eAAe,KAAK,IAAI;QACxB,eAAe,KAAK,IAAI;QACxB,qBAAqB,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,oBAAoB,CAC5B,2EAA2E,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAwC,EAAE,CAAC;IACvD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC;IACjC,CAAC;IACD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC;IACjC,CAAC;IACD,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,CAAC,WAAW,GAAG,qBAAqB,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,qBAAqB;QAClC,aAAa,EAAE,uBAAuB;QACtC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,EAC5C,EAAE,EACF,UAAU,EACV,QAAQ,EACR,eAAe,EACf,UAAU,GAOX;IACC,OAAO;QACL,EAAE;QACF,UAAU;QACV,QAAQ;QACR,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,WAAW,EAAE,eAAe,CAAC,WAAW;QACxC,aAAa,EAAE,eAAe,CAAC,aAAa;QAC5C,UAAU,EAAE,UAAU,IAAI,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,EAC5C,UAAU,GAGX;IACC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,OAAO;QACL,EAAE;QACF,WAAW;QACX,QAAQ,UAAU,aAAa,mBAAmB,+BAA+B;QACjF,QAAQ,UAAU,aAAa,mBAAmB,yDAAyD;KAC5G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG,KAA6B,CAAC;QACtD,IAAI,OAAO,eAAe,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,eAAe,CAAC,MAAM,CAAC;QAChC,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"noteMutationUtils.d.ts","sourceRoot":"","sources":["../../src/commands/noteMutationUtils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1D,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAgCD,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,IAAI,GACL,EAAE;IACD,UAAU,EAAE,cAAc,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAeT;AAED,wBAAgB,uBAAuB,CAAC,EACtC,EAAE,EACF,UAAU,EACV,QAAQ,EACR,IAAI,GACL,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,kBAAkB,CAOrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"noteMutationUtils.js","sourceRoot":"","sources":["../../src/commands/noteMutationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAS3C,SAAS,sBAAsB,CAAC,EAC9B,UAAU,GAGX;IACC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC;QACxB;YACE,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,EACvB,UAAU,GAGX;IACC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,UAAU,aAAa,mBAAmB,gBAAgB,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,UAAU,EACV,IAAI,GAIL;IACC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,oBAAoB,CAC5B,oCAAoC,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,oBAAoB,CAC5B,kEAAkE,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CACpG,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,EACtC,EAAE,EACF,UAAU,EACV,QAAQ,EACR,IAAI,GAML;IACC,OAAO;QACL,EAAE;QACF,UAAU;QACV,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionAnnotationsCommand.d.ts","sourceRoot":"","sources":["../../src/commands/sessionAnnotationsCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0LpC,wBAAgB,qCAAqC,IAAI,OAAO,CA6C/D;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAKzD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionAnnotationsCommand.js","sourceRoot":"","sources":["../../src/commands/sessionAnnotationsCommand.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function createSpanAnnotationsDeleteCommand(): Command;
3
- /**
4
- * Create the `span-annotations` command group.
5
- */
6
- export declare function createSpanAnnotationsCommand(): Command;
7
- //# sourceMappingURL=spanAnnotationsCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spanAnnotationsCommand.d.ts","sourceRoot":"","sources":["../../src/commands/spanAnnotationsCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwLpC,wBAAgB,kCAAkC,IAAI,OAAO,CA8C5D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAKtD"}
@@ -1,164 +0,0 @@
1
- import { Command } from "commander";
2
- import { createPhoenixClient, resolveProjectId } from "../client.js";
3
- import { getConfigErrorMessage, resolveConfig, validateConfig, } from "../config.js";
4
- import { assertDeletesEnabled, confirmOrExit } from "../confirm.js";
5
- import { ExitCode, getExitCodeForError } from "../exitCodes.js";
6
- import { writeError, writeOutput, writeProgress } from "../io.js";
7
- import { writeStructuredError } from "../structuredError.js";
8
- import { formatAnnotationDeleteOutput, } from "./formatAnnotationDelete.js";
9
- async function spanAnnotationsDeleteHandler(options) {
10
- // Pre-flight checks live OUTSIDE the try/catch so explicit
11
- // process.exit(INVALID_ARGUMENT) is not re-mapped to FAILURE by the
12
- // catch's getExitCodeForError fallback.
13
- try {
14
- assertDeletesEnabled();
15
- }
16
- catch (error) {
17
- writeError({
18
- message: error instanceof Error ? error.message : String(error),
19
- });
20
- process.exit(getExitCodeForError(error));
21
- }
22
- const config = resolveConfig({
23
- cliOptions: {
24
- endpoint: options.endpoint,
25
- project: options.project,
26
- apiKey: options.apiKey,
27
- },
28
- });
29
- const validation = validateConfig({ config });
30
- if (!validation.valid) {
31
- writeError({
32
- message: getConfigErrorMessage({ errors: validation.errors }),
33
- });
34
- process.exit(ExitCode.INVALID_ARGUMENT);
35
- }
36
- const projectIdentifier = config.project;
37
- if (!projectIdentifier) {
38
- writeError({ message: "Project not configured" });
39
- process.exit(ExitCode.INVALID_ARGUMENT);
40
- }
41
- const hasWindow = options.startTime !== undefined && options.endTime !== undefined;
42
- if (!options.all && !hasWindow) {
43
- writeStructuredError({
44
- format: options.format,
45
- message: "Missing required authorization: pass --all to delete every matching row, or pass both --start-time and --end-time to bound the delete to a [start, end) window.",
46
- code: "INVALID_ARGUMENT",
47
- hint: 'px span-annotations delete --identifier "$PHOENIX_CODING_IDENTIFIER" --all',
48
- });
49
- process.exit(ExitCode.INVALID_ARGUMENT);
50
- }
51
- let annotatorKind;
52
- try {
53
- annotatorKind = normalizeAnnotatorKind(options.annotatorKind);
54
- }
55
- catch (error) {
56
- writeError({
57
- message: error instanceof Error ? error.message : String(error),
58
- });
59
- process.exit(ExitCode.INVALID_ARGUMENT);
60
- }
61
- try {
62
- const client = createPhoenixClient({ config });
63
- writeProgress({
64
- message: `Resolving project: ${projectIdentifier}`,
65
- noProgress: !options.progress,
66
- });
67
- const projectId = await resolveProjectId({ client, projectIdentifier });
68
- const promptMessage = options.all
69
- ? `Delete all matching span annotations across all time?${describeNarrowers(options)}`
70
- : `Delete span annotations between ${options.startTime} and ${options.endTime}?${describeNarrowers(options)}`;
71
- await confirmOrExit({ message: promptMessage, yes: options.yes });
72
- writeProgress({
73
- message: "Deleting span annotations...",
74
- noProgress: !options.progress,
75
- });
76
- const response = await client.DELETE("/v1/projects/{project_identifier}/span_annotations", {
77
- params: {
78
- path: { project_identifier: projectId },
79
- query: {
80
- name: options.name,
81
- identifier: options.identifier,
82
- annotator_kind: annotatorKind,
83
- start_time: options.startTime,
84
- end_time: options.endTime,
85
- delete_all: options.all === true ? true : undefined,
86
- },
87
- },
88
- });
89
- if (response.error) {
90
- throw new Error(`Failed to delete span annotations: ${response.error}`);
91
- }
92
- const filter = {
93
- ...(options.identifier !== undefined && {
94
- identifier: options.identifier,
95
- }),
96
- ...(options.name !== undefined && { name: options.name }),
97
- ...(annotatorKind !== undefined && { annotator_kind: annotatorKind }),
98
- ...(options.startTime !== undefined && { start_time: options.startTime }),
99
- ...(options.endTime !== undefined && { end_time: options.endTime }),
100
- ...(options.all === true && { all: true }),
101
- };
102
- writeOutput({
103
- message: formatAnnotationDeleteOutput({
104
- result: { deleted: true, target: "span", filter },
105
- format: options.format,
106
- }),
107
- });
108
- }
109
- catch (error) {
110
- writeError({
111
- message: `Error deleting span annotations: ${error instanceof Error ? error.message : String(error)}`,
112
- });
113
- process.exit(getExitCodeForError(error));
114
- }
115
- }
116
- function normalizeAnnotatorKind(raw) {
117
- if (raw === undefined)
118
- return undefined;
119
- const value = raw.toUpperCase();
120
- if (value === "HUMAN" || value === "LLM" || value === "CODE") {
121
- return value;
122
- }
123
- throw new Error(`Invalid --annotator-kind: ${raw}. Expected one of HUMAN, LLM, CODE.`);
124
- }
125
- function describeNarrowers(options) {
126
- const parts = [];
127
- if (options.identifier)
128
- parts.push(`identifier=${options.identifier}`);
129
- if (options.name)
130
- parts.push(`name=${options.name}`);
131
- if (options.annotatorKind)
132
- parts.push(`annotator_kind=${options.annotatorKind}`);
133
- return parts.length > 0 ? ` (${parts.join(", ")})` : "";
134
- }
135
- export function createSpanAnnotationsDeleteCommand() {
136
- return new Command("delete")
137
- .description("Delete span annotations for the configured project. Requires --all or both --start-time and --end-time.")
138
- .option("--endpoint <url>", "Phoenix API endpoint")
139
- .option("--project <name>", "Project name or ID")
140
- .option("--api-key <key>", "Phoenix API key for authentication")
141
- .option("--identifier <id>", "Narrowing filter — only delete annotations with this identifier")
142
- .option("--name <name>", "Narrowing filter — only delete annotations with this name")
143
- .option("--annotator-kind <kind>", "Narrowing filter — annotator kind (HUMAN, LLM, or CODE)")
144
- .option("--start-time <iso>", "Inclusive lower bound on created_at (ISO-8601). Required together with --end-time unless --all is set.")
145
- .option("--end-time <iso>", "Exclusive upper bound on created_at (ISO-8601). Required together with --start-time unless --all is set.")
146
- .option("--all", "Authorize the delete without a time window (delete_all=true). Required if --start-time/--end-time are not set.")
147
- .option("-y, --yes", "Skip confirmation prompt")
148
- .option("--format <format>", "Output format: pretty, json, or raw", "pretty")
149
- .option("--no-progress", "Disable progress indicators")
150
- .addHelpText("after", "\nExamples:\n" +
151
- ' px span-annotations delete --identifier "$PHOENIX_CODING_IDENTIFIER" --all -y\n' +
152
- " px span-annotations delete --start-time 2026-01-01T00:00:00Z --end-time 2026-01-02T00:00:00Z\n")
153
- .action(spanAnnotationsDeleteHandler);
154
- }
155
- /**
156
- * Create the `span-annotations` command group.
157
- */
158
- export function createSpanAnnotationsCommand() {
159
- const command = new Command("span-annotations");
160
- command.description("Manage Phoenix span annotations");
161
- command.addCommand(createSpanAnnotationsDeleteCommand());
162
- return command;
163
- }
164
- //# sourceMappingURL=spanAnnotationsCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spanAnnotationsCommand.js","sourceRoot":"","sources":["../../src/commands/spanAnnotationsCommand.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function createTraceAnnotationsDeleteCommand(): Command;
3
- /**
4
- * Create the `trace-annotations` command group.
5
- */
6
- export declare function createTraceAnnotationsCommand(): Command;
7
- //# sourceMappingURL=traceAnnotationsCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traceAnnotationsCommand.d.ts","sourceRoot":"","sources":["../../src/commands/traceAnnotationsCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2LpC,wBAAgB,mCAAmC,IAAI,OAAO,CA8C7D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAKvD"}